From 8cbf2f47adb23613ac24087ddeea742d608df4b8 Mon Sep 17 00:00:00 2001 From: Zane Kaminski Date: Wed, 16 Aug 2023 05:11:25 -0400 Subject: [PATCH] RC? --- CPLD/LCMXO2-1200HC/.run_manager.ini | 9 - CPLD/LCMXO2-1200HC/.setting.ini | 4 - CPLD/LCMXO2-1200HC/RAM2GS_LCMXO2_1200HC.ldf | 17 - CPLD/LCMXO2-1200HC/RAM2GS_LCMXO2_1200HC.lpf | 68 - CPLD/LCMXO2-1200HC/RAM2GS_LCMXO2_1200HC1.sty | 205 - .../pn230815050136.tcr | 5 - .../pn230815052235.tcr | 5 - CPLD/LCMXO2-1200HC/impl1/.build_status | 62 - .../.vdbs/RAM2GS_LCMXO2_1200HC_impl1_map.vdb | Bin 70832 -> 0 bytes CPLD/LCMXO2-1200HC/impl1/.vdbs/RAM2GS_rtl.vdb | Bin 74348 -> 0 bytes .../LCMXO2-1200HC/impl1/.vdbs/RAM2GS_tech.vdb | Bin 67455 -> 0 bytes CPLD/LCMXO2-1200HC/impl1/.vdbs/dbStat.txt | 1 - .../impl1/RAM2GS_LCMXO2_1200HC_impl1.alt | 75 - .../impl1/RAM2GS_LCMXO2_1200HC_impl1.arearep | 21 - .../impl1/RAM2GS_LCMXO2_1200HC_impl1.bgn | 86 - .../RAM2GS_LCMXO2_1200HC_impl1.dir/5_1.ncd | Bin 197895 -> 0 bytes .../RAM2GS_LCMXO2_1200HC_impl1.dir/5_1.pad | 309 - .../RAM2GS_LCMXO2_1200HC_impl1.dir/5_1.par | 301 - .../5_1_par.asd | 38 - .../RAM2GS_LCMXO2_1200HC_impl1.par | 28 - .../impl1/RAM2GS_LCMXO2_1200HC_impl1.drc | 1 - .../impl1/RAM2GS_LCMXO2_1200HC_impl1.jed | 2779 -- .../impl1/RAM2GS_LCMXO2_1200HC_impl1.log | 4 - .../impl1/RAM2GS_LCMXO2_1200HC_impl1.lpf | 4 - .../impl1/RAM2GS_LCMXO2_1200HC_impl1.lsedata | 6331 --- .../impl1/RAM2GS_LCMXO2_1200HC_impl1.mrp | 402 - .../impl1/RAM2GS_LCMXO2_1200HC_impl1.mt | 9 - .../impl1/RAM2GS_LCMXO2_1200HC_impl1.ncd | Bin 197895 -> 0 bytes .../impl1/RAM2GS_LCMXO2_1200HC_impl1.ngd | Bin 156243 -> 0 bytes .../impl1/RAM2GS_LCMXO2_1200HC_impl1.p2t | 9 - .../impl1/RAM2GS_LCMXO2_1200HC_impl1.p3t | 5 - .../impl1/RAM2GS_LCMXO2_1200HC_impl1.pad | 309 - .../impl1/RAM2GS_LCMXO2_1200HC_impl1.par | 329 - .../impl1/RAM2GS_LCMXO2_1200HC_impl1.prf | 80 - .../impl1/RAM2GS_LCMXO2_1200HC_impl1.pt | 10 - .../impl1/RAM2GS_LCMXO2_1200HC_impl1.t2b | 5 - .../impl1/RAM2GS_LCMXO2_1200HC_impl1.tw1 | 349 - .../impl1/RAM2GS_LCMXO2_1200HC_impl1.twr | 2163 - .../impl1/RAM2GS_LCMXO2_1200HC_impl1_bgn.html | 152 - .../RAM2GS_LCMXO2_1200HC_impl1_iotiming.html | 204 - ...RAM2GS_LCMXO2_1200HC_impl1_lattice.synproj | 41 - .../impl1/RAM2GS_LCMXO2_1200HC_impl1_map.asd | 15 - .../impl1/RAM2GS_LCMXO2_1200HC_impl1_map.cam | 88 - .../impl1/RAM2GS_LCMXO2_1200HC_impl1_map.hrr | 10 - .../impl1/RAM2GS_LCMXO2_1200HC_impl1_map.ncd | Bin 140118 -> 0 bytes .../RAM2GS_LCMXO2_1200HC_impl1_mapvho.sdf | 3176 -- .../RAM2GS_LCMXO2_1200HC_impl1_mapvo.sdf | 3176 -- .../impl1/RAM2GS_LCMXO2_1200HC_impl1_mapvo.vo | 3692 -- .../impl1/RAM2GS_LCMXO2_1200HC_impl1_mrp.html | 425 - .../impl1/RAM2GS_LCMXO2_1200HC_impl1_pad.html | 374 - .../impl1/RAM2GS_LCMXO2_1200HC_impl1_par.html | 397 - .../RAM2GS_LCMXO2_1200HC_impl1_summary.html | 83 - .../impl1/RAM2GS_LCMXO2_1200HC_impl1_tw1.html | 430 - .../impl1/RAM2GS_LCMXO2_1200HC_impl1_twr.html | 2244 - CPLD/LCMXO2-1200HC/impl1/RAM2GS_drc.log | 16 - CPLD/LCMXO2-1200HC/impl1/RAM2GS_lse.twr | 297 - .../impl1/RAM2GS_lse_lsetwr.html | 362 - CPLD/LCMXO2-1200HC/impl1/RAM2GS_prim.v | 802 - CPLD/LCMXO2-1200HC/impl1/automake.log | 859 - .../impl1/hdla_gen_hierarchy.html | 9 - CPLD/LCMXO2-1200HC/impl1/impl1.xcf | 55 - .../impl1/ram2gs_lcmxo2_1200hc_impl1.ior | 139 - .../impl1/ram2gs_lcmxo2_1200hc_impl1_trce.asd | 13 - CPLD/LCMXO2-1200HC/impl1/synthesis.log | 239 - CPLD/LCMXO2-1200HC/impl1/synthesis_lse.html | 304 - CPLD/LCMXO2-1200HC/impl1/xxx_lse_cp_file_list | 250 - CPLD/LCMXO2-1200HC/impl1/xxx_lse_sign_file | 250 - CPLD/LCMXO2-640HC/.setting.ini | 4 +- CPLD/LCMXO2-640HC/.spreadsheet_view.ini | 6 +- CPLD/LCMXO2-640HC/RAM2GS_LCMXO2_640HC.ldf | 5 +- CPLD/LCMXO2-640HC/RAM2GS_LCMXO2_640HC.lpf | 74 +- CPLD/LCMXO2-640HC/RAM2GS_LCMXO2_640HC1.sty | 10 +- .../pn230816015720.tcr | 79 + CPLD/LCMXO2-640HC/impl1/.build_status | 57 +- .../impl1/RAM2GS_LCMXO2_640HC_impl1.alt | 78 +- .../impl1/RAM2GS_LCMXO2_640HC_impl1.areasrr | 29 + .../impl1/RAM2GS_LCMXO2_640HC_impl1.bgn | 4 +- .../RAM2GS_LCMXO2_640HC_impl1.dir/5_1.ncd | Bin 194841 -> 204561 bytes .../RAM2GS_LCMXO2_640HC_impl1.dir/5_1.pad | 298 +- .../RAM2GS_LCMXO2_640HC_impl1.dir/5_1.par | 139 +- .../RAM2GS_LCMXO2_640HC_impl1.dir/5_1_par.asd | 25 +- .../RAM2GS_LCMXO2_640HC_impl1.par | 6 +- .../impl1/RAM2GS_LCMXO2_640HC_impl1.edi | 2989 ++ .../impl1/RAM2GS_LCMXO2_640HC_impl1.fse | 0 .../impl1/RAM2GS_LCMXO2_640HC_impl1.htm | 9 + .../impl1/RAM2GS_LCMXO2_640HC_impl1.jed | 720 +- .../impl1/RAM2GS_LCMXO2_640HC_impl1.mrp | 282 +- .../impl1/RAM2GS_LCMXO2_640HC_impl1.ncd | Bin 194841 -> 204561 bytes .../impl1/RAM2GS_LCMXO2_640HC_impl1.ngd | Bin 156242 -> 153585 bytes .../impl1/RAM2GS_LCMXO2_640HC_impl1.ngo | Bin 0 -> 75951 bytes .../impl1/RAM2GS_LCMXO2_640HC_impl1.pad | 298 +- .../impl1/RAM2GS_LCMXO2_640HC_impl1.par | 145 +- .../impl1/RAM2GS_LCMXO2_640HC_impl1.prf | 87 +- .../impl1/RAM2GS_LCMXO2_640HC_impl1.srd | Bin 0 -> 22959 bytes .../impl1/RAM2GS_LCMXO2_640HC_impl1.srf | 964 + .../impl1/RAM2GS_LCMXO2_640HC_impl1.srm | Bin 0 -> 30417 bytes .../impl1/RAM2GS_LCMXO2_640HC_impl1.srr | 964 + .../impl1/RAM2GS_LCMXO2_640HC_impl1.srr.db | Bin 0 -> 16384 bytes .../impl1/RAM2GS_LCMXO2_640HC_impl1.srs | Bin 0 -> 10332 bytes .../impl1/RAM2GS_LCMXO2_640HC_impl1.tw1 | 308 +- .../impl1/RAM2GS_LCMXO2_640HC_impl1.twr | 2687 +- .../impl1/RAM2GS_LCMXO2_640HC_impl1_bgn.html | 4 +- .../impl1/RAM2GS_LCMXO2_640HC_impl1_cck.rpt | 155 + .../RAM2GS_LCMXO2_640HC_impl1_cck.rpt.db | Bin 0 -> 8192 bytes .../RAM2GS_LCMXO2_640HC_impl1_iotiming.html | 177 +- .../impl1/RAM2GS_LCMXO2_640HC_impl1_map.asd | 10 +- .../impl1/RAM2GS_LCMXO2_640HC_impl1_map.cam | 100 +- .../impl1/RAM2GS_LCMXO2_640HC_impl1_map.hrr | 8 +- .../impl1/RAM2GS_LCMXO2_640HC_impl1_map.ncd | Bin 137575 -> 149601 bytes .../RAM2GS_LCMXO2_640HC_impl1_mapvho.sdf | 4355 +- .../RAM2GS_LCMXO2_640HC_impl1_mapvho.vho | 37054 +++++++-------- .../impl1/RAM2GS_LCMXO2_640HC_impl1_mapvo.sdf | 4355 +- .../impl1/RAM2GS_LCMXO2_640HC_impl1_mapvo.vo | 5297 ++- .../impl1/RAM2GS_LCMXO2_640HC_impl1_mrp.html | 274 +- ...AM2GS_LCMXO2_640HC_impl1_multi_srs_gen.htm | 9 + .../impl1/RAM2GS_LCMXO2_640HC_impl1_ngd.asd | 1 + .../impl1/RAM2GS_LCMXO2_640HC_impl1_pad.html | 298 +- .../impl1/RAM2GS_LCMXO2_640HC_impl1_par.html | 145 +- .../impl1/RAM2GS_LCMXO2_640HC_impl1_scck.rpt | 59 + .../RAM2GS_LCMXO2_640HC_impl1_scck.rpt.db | Bin 0 -> 8192 bytes .../RAM2GS_LCMXO2_640HC_impl1_summary.html | 4 +- .../RAM2GS_LCMXO2_640HC_impl1_synplify.html | 1029 + .../RAM2GS_LCMXO2_640HC_impl1_synplify.lpf | 24 + .../RAM2GS_LCMXO2_640HC_impl1_synplify.tcl | 65 + ...AM2GS_LCMXO2_640HC_impl1_synplify_tmp2.lpf | 0 ...AM2GS_LCMXO2_640HC_impl1_synplify_tmp4.lpf | 0 ...AM2GS_LCMXO2_640HC_impl1_synplify_tmp8.lpf | 0 .../impl1/RAM2GS_LCMXO2_640HC_impl1_tw1.html | 332 +- .../impl1/RAM2GS_LCMXO2_640HC_impl1_twr.html | 2711 +- CPLD/LCMXO2-640HC/impl1/automake.log | 821 +- .../backup/RAM2GS_LCMXO2_640HC_impl1.srr | 911 + CPLD/LCMXO2-640HC/impl1/dm/layer0.xdm | 35 + CPLD/LCMXO2-640HC/impl1/impl1.areasrr | 29 + CPLD/LCMXO2-640HC/impl1/impl1.edi | 2989 ++ CPLD/LCMXO2-640HC/impl1/impl1.fse | 0 CPLD/LCMXO2-640HC/impl1/impl1.htm | 9 + CPLD/LCMXO2-640HC/impl1/impl1.srd | Bin 0 -> 22971 bytes CPLD/LCMXO2-640HC/impl1/impl1.srm | Bin 0 -> 30371 bytes CPLD/LCMXO2-640HC/impl1/impl1.srr | 1158 + CPLD/LCMXO2-640HC/impl1/impl1.srr.db | Bin 0 -> 16384 bytes CPLD/LCMXO2-640HC/impl1/impl1.srs | Bin 0 -> 10256 bytes CPLD/LCMXO2-640HC/impl1/impl1.xcf | 8 +- CPLD/LCMXO2-640HC/impl1/impl1_cck.rpt | 155 + CPLD/LCMXO2-640HC/impl1/impl1_cck.rpt.db | Bin 0 -> 8192 bytes CPLD/LCMXO2-640HC/impl1/impl1_scck.rpt | 59 + CPLD/LCMXO2-640HC/impl1/impl1_scck.rpt.db | Bin 0 -> 8192 bytes CPLD/LCMXO2-640HC/impl1/impl1_syn.prj | 76 + CPLD/LCMXO2-640HC/impl1/impl1_synplify.lpf | 24 + .../impl1/impl1_synplify_tmp2.lpf | 0 .../impl1/impl1_synplify_tmp4.lpf | 0 .../impl1/impl1_synplify_tmp8.lpf | 0 CPLD/LCMXO2-640HC/impl1/launch_synplify.tcl | 55 + .../impl1/ram2gs_lcmxo2_640hc_impl1.ior | 177 +- .../impl1/ram2gs_lcmxo2_640hc_impl1_trce.asd | 16 +- CPLD/LCMXO2-640HC/impl1/run_options.txt | 81 + CPLD/LCMXO2-640HC/impl1/scratchproject.prs | 80 + CPLD/LCMXO2-640HC/impl1/stdout.log | 89 + CPLD/LCMXO2-640HC/impl1/stdout.log.bak.1 | 89 + CPLD/LCMXO2-640HC/impl1/stdout.log.bak.2 | 89 + CPLD/LCMXO2-640HC/impl1/stdout.log.bak.3 | 89 + CPLD/LCMXO2-640HC/impl1/stdout.log.bak.4 | 89 + CPLD/LCMXO2-640HC/impl1/stdout.log.bak.5 | 88 + CPLD/LCMXO2-640HC/impl1/synlog.tcl | 1 + ...M2GS_LCMXO2_640HC_impl1_comp.rt.csv.rptmap | 1 + .../RAM2GS_LCMXO2_640HC_impl1_compiler.srr | 108 + .../RAM2GS_LCMXO2_640HC_impl1_compiler.srr.db | Bin 0 -> 8192 bytes ...2GS_LCMXO2_640HC_impl1_compiler.srr.rptmap | 1 + .../RAM2GS_LCMXO2_640HC_impl1_fpga_mapper.srr | 657 + ...M2GS_LCMXO2_640HC_impl1_fpga_mapper.srr.db | Bin 0 -> 8192 bytes .../RAM2GS_LCMXO2_640HC_impl1_fpga_mapper.szr | Bin 0 -> 20755 bytes ...AM2GS_LCMXO2_640HC_impl1_multi_srs_gen.srr | 28 + ...GS_LCMXO2_640HC_impl1_multi_srs_gen.srr.db | Bin 0 -> 8192 bytes .../RAM2GS_LCMXO2_640HC_impl1_premap.srr | 162 + .../RAM2GS_LCMXO2_640HC_impl1_premap.srr.db | Bin 0 -> 8192 bytes .../RAM2GS_LCMXO2_640HC_impl1_premap.szr | Bin 0 -> 12443 bytes .../RAM2GS_LCMXO2_640HC_impl1_premap.xck | 4 + .../impl1/synlog/impl1_comp.rt.csv.rptmap | 1 + .../impl1/synlog/impl1_compiler.srr | 112 + .../impl1/synlog/impl1_compiler.srr.db | Bin 0 -> 8192 bytes .../impl1/synlog/impl1_compiler.srr.rptmap | 1 + .../impl1/synlog/impl1_fpga_mapper.srr | 841 + .../impl1/synlog/impl1_fpga_mapper.srr.db | Bin 0 -> 8192 bytes .../impl1/synlog/impl1_fpga_mapper.szr | Bin 0 -> 21850 bytes .../impl1/synlog/impl1_multi_srs_gen.srr | 29 + .../impl1/synlog/impl1_multi_srs_gen.srr.db | Bin 0 -> 8192 bytes .../impl1/synlog/impl1_premap.srr | 163 + .../impl1/synlog/impl1_premap.srr.db | Bin 0 -> 8192 bytes .../impl1/synlog/impl1_premap.szr | Bin 0 -> 12410 bytes .../impl1/synlog/impl1_premap.xck | 4 + .../impl1/synlog/incr_compile.rpt.rptmap | 1 + .../impl1/synlog/layer0.tlg.rptmap | 1 + ...M2GS_LCMXO2_640HC_impl1_compiler_notes.txt | 5 + ..._LCMXO2_640HC_impl1_fpga_mapper_errors.txt | 0 ...S_LCMXO2_640HC_impl1_fpga_mapper_notes.txt | 19 + ..._640HC_impl1_fpga_mapper_resourceusage.rpt | 27 + ...CMXO2_640HC_impl1_fpga_mapper_warnings.txt | 6 + ...LCMXO2_640HC_impl1_premap_combined_clk.rpt | 24 + ...AM2GS_LCMXO2_640HC_impl1_premap_errors.txt | 0 ...RAM2GS_LCMXO2_640HC_impl1_premap_notes.txt | 27 + ...2GS_LCMXO2_640HC_impl1_premap_warnings.txt | 1 + .../synlog/report/impl1_compiler_notes.txt | 9 + .../report/impl1_fpga_mapper_errors.txt | 0 .../synlog/report/impl1_fpga_mapper_notes.txt | 20 + .../impl1_fpga_mapper_resourceusage.rpt | 27 + .../report/impl1_fpga_mapper_warnings.txt | 6 + .../report/impl1_premap_combined_clk.rpt | 24 + .../synlog/report/impl1_premap_errors.txt | 0 .../synlog/report/impl1_premap_notes.txt | 27 + .../synlog/report/impl1_premap_warnings.txt | 1 + .../impl1/synlog/report/metrics.db | Bin 0 -> 53248 bytes .../synlog/syntax_constraint_check.rpt.rptmap | 1 + .../syntmp/RAM2GS_LCMXO2_640HC_impl1.plg | 23 + ...S_LCMXO2_640HC_impl1_multi_srs_gen_srr.htm | 32 + ...S_LCMXO2_640HC_impl1_multi_srs_gen_toc.htm | 28 + .../syntmp/RAM2GS_LCMXO2_640HC_impl1_srr.htm | 983 + .../syntmp/RAM2GS_LCMXO2_640HC_impl1_toc.htm | 58 + CPLD/LCMXO2-640HC/impl1/syntmp/closed.png | Bin 0 -> 3672 bytes .../impl1/syntmp/cmdrec_compiler.log | 10 + .../impl1/syntmp/cmdrec_fpga_mapper.log | 12 + .../impl1/syntmp/cmdrec_multi_srs_gen.log | 7 + .../impl1/syntmp/cmdrec_premap.log | 14 + CPLD/LCMXO2-640HC/impl1/syntmp/impl1.plg | 23 + CPLD/LCMXO2-640HC/impl1/syntmp/impl1_srr.htm | 1185 + CPLD/LCMXO2-640HC/impl1/syntmp/impl1_toc.htm | 55 + CPLD/LCMXO2-640HC/impl1/syntmp/open.png | Bin 0 -> 452 bytes .../impl1/syntmp/statusReport.html | 115 + CPLD/LCMXO2-640HC/impl1/synwork/.cckTransfer | Bin 0 -> 465 bytes .../RAM2GS_LCMXO2_640HC_impl1_comp.fdep | 16 + .../RAM2GS_LCMXO2_640HC_impl1_comp.rt.csv | 1 + .../RAM2GS_LCMXO2_640HC_impl1_comp.srs | Bin 0 -> 10463 bytes .../synwork/RAM2GS_LCMXO2_640HC_impl1_m.srm | Bin 0 -> 30417 bytes .../RAM2GS_LCMXO2_640HC_impl1_m_srm/1.srm | Bin 0 -> 1712 bytes .../fileinfo.srm | Bin 0 -> 308 bytes .../RAM2GS_LCMXO2_640HC_impl1_mult.gcr | 26 + .../RAM2GS_LCMXO2_640HC_impl1_mult.srs | Bin 0 -> 10332 bytes .../fileinfo.srs | Bin 0 -> 252 bytes .../skeleton.srs | Bin 0 -> 842 bytes .../RAM2GS_LCMXO2_640HC_impl1_prem.fse | 0 .../RAM2GS_LCMXO2_640HC_impl1_prem.srd | Bin 0 -> 16785 bytes .../RAM2GS_LCMXO2_640HC_impl1_prem.srm | Bin 0 -> 13487 bytes .../fileinfo.srm | Bin 0 -> 309 bytes .../skeleton.srm | Bin 0 -> 951 bytes CPLD/LCMXO2-640HC/impl1/synwork/_mh_info | 1 + .../impl1/synwork/impl1_comp.fdep | 16 + .../impl1/synwork/impl1_comp.rt.csv | 1 + .../LCMXO2-640HC/impl1/synwork/impl1_comp.srs | Bin 0 -> 10465 bytes CPLD/LCMXO2-640HC/impl1/synwork/impl1_m.srm | Bin 0 -> 30371 bytes .../impl1/synwork/impl1_m_srm/1.srm | Bin 0 -> 1675 bytes .../impl1/synwork/impl1_m_srm/fileinfo.srm | Bin 0 -> 308 bytes .../LCMXO2-640HC/impl1/synwork/impl1_mult.gcr | 26 + .../LCMXO2-640HC/impl1/synwork/impl1_mult.srs | Bin 0 -> 10256 bytes .../impl1/synwork/impl1_mult_srs/fileinfo.srs | Bin 0 -> 252 bytes .../impl1/synwork/impl1_mult_srs/skeleton.srs | Bin 0 -> 825 bytes .../LCMXO2-640HC/impl1/synwork/impl1_prem.fse | 0 .../LCMXO2-640HC/impl1/synwork/impl1_prem.srd | Bin 0 -> 16785 bytes .../LCMXO2-640HC/impl1/synwork/impl1_prem.srm | Bin 0 -> 13456 bytes .../impl1/synwork/impl1_prem_srm/fileinfo.srm | Bin 0 -> 309 bytes .../impl1/synwork/impl1_prem_srm/skeleton.srm | Bin 0 -> 934 bytes .../impl1/synwork/incr_compile.rpt | 38 + CPLD/LCMXO2-640HC/impl1/synwork/layer0.fdep | 18 + .../LCMXO2-640HC/impl1/synwork/layer0.fdepxmr | 1 + CPLD/LCMXO2-640HC/impl1/synwork/layer0.rt.csv | 1 + CPLD/LCMXO2-640HC/impl1/synwork/layer0.srs | Bin 0 -> 9713 bytes CPLD/LCMXO2-640HC/impl1/synwork/layer0.tlg | 11 + CPLD/LCMXO2-640HC/impl1/synwork/layer0.tlg.db | Bin 0 -> 8192 bytes .../impl1/synwork/modulechange.db | Bin 0 -> 24576 bytes CPLD/LCMXO2-640HC/impl1/version.log | 2 + CPLD/LCMXO256C/.setting.ini | 2 +- CPLD/LCMXO256C/.spreadsheet_view.ini | 12 +- CPLD/LCMXO256C/RAM2GS_LCMXO256C.ldf | 5 +- CPLD/LCMXO256C/RAM2GS_LCMXO256C.lpf | 130 +- CPLD/LCMXO256C/RAM2GS_LCMXO256C1.sty | 10 +- CPLD/LCMXO256C/RAM2GS_LCMXO256C_tcl.html | 33 + .../pn230816015738.tcr | 10 + .../pn230816022858.tcr | 6 + CPLD/LCMXO256C/impl1/.build_status | 72 +- .../impl1/IBIS/RAM2GS_LCMXO256C_im~.ibs | 3373 ++ .../impl1/RAM2GS_LCMXO256C_impl1.alt | 78 +- .../impl1/RAM2GS_LCMXO256C_impl1.areasrr | 26 + .../impl1/RAM2GS_LCMXO256C_impl1.bgn | 2 +- .../impl1/RAM2GS_LCMXO256C_impl1.bit | Bin 9225 -> 9225 bytes .../impl1/RAM2GS_LCMXO256C_impl1.dir/5_1.ncd | Bin 162296 -> 147774 bytes .../impl1/RAM2GS_LCMXO256C_impl1.dir/5_1.pad | 146 +- .../impl1/RAM2GS_LCMXO256C_impl1.dir/5_1.par | 133 +- .../RAM2GS_LCMXO256C_impl1.dir/5_1_par.asd | 6 +- .../RAM2GS_LCMXO256C_impl1.par | 6 +- .../impl1/RAM2GS_LCMXO256C_impl1.edi | 2786 ++ .../impl1/RAM2GS_LCMXO256C_impl1.fse | 0 .../impl1/RAM2GS_LCMXO256C_impl1.htm | 9 + .../impl1/RAM2GS_LCMXO256C_impl1.jed | 1750 +- .../impl1/RAM2GS_LCMXO256C_impl1.mrp | 320 +- .../impl1/RAM2GS_LCMXO256C_impl1.n2e | 1003 +- .../impl1/RAM2GS_LCMXO256C_impl1.ncd | Bin 162296 -> 147774 bytes .../impl1/RAM2GS_LCMXO256C_impl1.ngd | Bin 160693 -> 144453 bytes .../impl1/RAM2GS_LCMXO256C_impl1.ngo | Bin 0 -> 70904 bytes .../impl1/RAM2GS_LCMXO256C_impl1.pad | 146 +- .../impl1/RAM2GS_LCMXO256C_impl1.par | 139 +- .../impl1/RAM2GS_LCMXO256C_impl1.prf | 88 +- .../impl1/RAM2GS_LCMXO256C_impl1.srd | Bin 0 -> 20863 bytes .../impl1/RAM2GS_LCMXO256C_impl1.srf | 966 + .../impl1/RAM2GS_LCMXO256C_impl1.srm | Bin 0 -> 29138 bytes .../impl1/RAM2GS_LCMXO256C_impl1.srr | 966 + .../impl1/RAM2GS_LCMXO256C_impl1.srr.db | Bin 0 -> 16384 bytes .../impl1/RAM2GS_LCMXO256C_impl1.srs | Bin 0 -> 10295 bytes .../impl1/RAM2GS_LCMXO256C_impl1.tw1 | 298 +- .../impl1/RAM2GS_LCMXO256C_impl1.twr | 2597 +- .../impl1/RAM2GS_LCMXO256C_impl1_bgn.html | 2 +- .../impl1/RAM2GS_LCMXO256C_impl1_cck.rpt | 155 + .../impl1/RAM2GS_LCMXO256C_impl1_cck.rpt.db | Bin 0 -> 8192 bytes .../RAM2GS_LCMXO256C_impl1_iotiming.html | 174 +- .../impl1/RAM2GS_LCMXO256C_impl1_map.asd | 4 +- .../impl1/RAM2GS_LCMXO256C_impl1_map.cam | 123 +- .../impl1/RAM2GS_LCMXO256C_impl1_map.hrr | 6 +- .../impl1/RAM2GS_LCMXO256C_impl1_map.ncd | Bin 107268 -> 98208 bytes .../impl1/RAM2GS_LCMXO256C_impl1_mapvho.sdf | 3782 +- .../impl1/RAM2GS_LCMXO256C_impl1_mapvho.vho | 24966 +++++------ .../impl1/RAM2GS_LCMXO256C_impl1_mapvo.sdf | 3780 +- .../impl1/RAM2GS_LCMXO256C_impl1_mapvo.vo | 4518 +- .../impl1/RAM2GS_LCMXO256C_impl1_mrp.html | 292 +- .../RAM2GS_LCMXO256C_impl1_multi_srs_gen.htm | 9 + .../impl1/RAM2GS_LCMXO256C_impl1_ngd.asd | 1 + .../impl1/RAM2GS_LCMXO256C_impl1_pad.html | 146 +- .../impl1/RAM2GS_LCMXO256C_impl1_par.html | 139 +- .../impl1/RAM2GS_LCMXO256C_impl1_scck.rpt | 59 + .../impl1/RAM2GS_LCMXO256C_impl1_scck.rpt.db | Bin 0 -> 8192 bytes .../impl1/RAM2GS_LCMXO256C_impl1_summary.html | 6 +- .../RAM2GS_LCMXO256C_impl1_synplify.html | 1031 + .../impl1/RAM2GS_LCMXO256C_impl1_synplify.lpf | 24 + .../impl1/RAM2GS_LCMXO256C_impl1_synplify.tcl | 65 + .../RAM2GS_LCMXO256C_impl1_synplify_tmp2.lpf | 0 .../RAM2GS_LCMXO256C_impl1_synplify_tmp4.lpf | 0 .../RAM2GS_LCMXO256C_impl1_synplify_tmp8.lpf | 0 .../impl1/RAM2GS_LCMXO256C_impl1_tw1.html | 322 +- .../impl1/RAM2GS_LCMXO256C_impl1_twr.html | 2621 +- .../impl1/RAM2GS_LCMXO256C_impl1_vho.sdf | 2927 ++ .../impl1/RAM2GS_LCMXO256C_impl1_vho.vho | 25810 +++++++++++ .../impl1/RAM2GS_LCMXO256C_impl1_vo.sdf | 2922 ++ .../impl1/RAM2GS_LCMXO256C_impl1_vo.vo | 3714 ++ CPLD/LCMXO256C/impl1/automake.log | 1843 +- .../impl1/backup/RAM2GS_LCMXO256C_impl1.srr | 64 + CPLD/LCMXO256C/impl1/dm/layer0.xdm | 32 + CPLD/LCMXO256C/impl1/impl1.xcf | 5 +- .../impl1/ram2gs_lcmxo256c_impl1.ior | 174 +- .../impl1/ram2gs_lcmxo256c_impl1_trce.asd | 16 +- CPLD/LCMXO256C/impl1/run_options.txt | 81 + CPLD/LCMXO256C/impl1/scratchproject.prs | 80 + CPLD/LCMXO256C/impl1/stdout.log | 89 + CPLD/LCMXO256C/impl1/stdout.log.bak.1 | 89 + CPLD/LCMXO256C/impl1/stdout.log.bak.2 | 89 + CPLD/LCMXO256C/impl1/stdout.log.bak.3 | 89 + CPLD/LCMXO256C/impl1/stdout.log.bak.4 | 89 + CPLD/LCMXO256C/impl1/stdout.log.bak.5 | 82 + CPLD/LCMXO256C/impl1/synlog.tcl | 1 + .../RAM2GS_LCMXO256C_impl1_comp.rt.csv.rptmap | 1 + .../RAM2GS_LCMXO256C_impl1_compiler.srr | 108 + .../RAM2GS_LCMXO256C_impl1_compiler.srr.db | Bin 0 -> 8192 bytes ...RAM2GS_LCMXO256C_impl1_compiler.srr.rptmap | 1 + .../RAM2GS_LCMXO256C_impl1_fpga_mapper.srr | 659 + .../RAM2GS_LCMXO256C_impl1_fpga_mapper.srr.db | Bin 0 -> 8192 bytes .../RAM2GS_LCMXO256C_impl1_fpga_mapper.szr | Bin 0 -> 21037 bytes .../RAM2GS_LCMXO256C_impl1_multi_srs_gen.srr | 28 + ...AM2GS_LCMXO256C_impl1_multi_srs_gen.srr.db | Bin 0 -> 8192 bytes .../synlog/RAM2GS_LCMXO256C_impl1_premap.srr | 162 + .../RAM2GS_LCMXO256C_impl1_premap.srr.db | Bin 0 -> 8192 bytes .../synlog/RAM2GS_LCMXO256C_impl1_premap.szr | Bin 0 -> 12390 bytes .../synlog/RAM2GS_LCMXO256C_impl1_premap.xck | 4 + .../impl1/synlog/incr_compile.rpt.rptmap | 1 + CPLD/LCMXO256C/impl1/synlog/layer0.tlg.rptmap | 1 + ...RAM2GS_LCMXO256C_impl1_compiler_errors.txt | 4 + .../RAM2GS_LCMXO256C_impl1_compiler_notes.txt | 5 + ...M2GS_LCMXO256C_impl1_compiler_warnings.txt | 2 + ...2GS_LCMXO256C_impl1_fpga_mapper_errors.txt | 0 ...M2GS_LCMXO256C_impl1_fpga_mapper_notes.txt | 20 + ...XO256C_impl1_fpga_mapper_resourceusage.rpt | 24 + ...S_LCMXO256C_impl1_fpga_mapper_warnings.txt | 6 + ...GS_LCMXO256C_impl1_premap_combined_clk.rpt | 24 + .../RAM2GS_LCMXO256C_impl1_premap_errors.txt | 0 .../RAM2GS_LCMXO256C_impl1_premap_notes.txt | 27 + ...RAM2GS_LCMXO256C_impl1_premap_warnings.txt | 1 + CPLD/LCMXO256C/impl1/synlog/report/metrics.db | Bin 0 -> 53248 bytes .../synlog/syntax_constraint_check.rpt.rptmap | 1 + .../impl1/syntmp/RAM2GS_LCMXO256C_impl1.plg | 23 + ...M2GS_LCMXO256C_impl1_multi_srs_gen_srr.htm | 32 + ...M2GS_LCMXO256C_impl1_multi_srs_gen_toc.htm | 28 + .../syntmp/RAM2GS_LCMXO256C_impl1_srr.htm | 985 + .../syntmp/RAM2GS_LCMXO256C_impl1_toc.htm | 58 + CPLD/LCMXO256C/impl1/syntmp/closed.png | Bin 0 -> 3672 bytes .../impl1/syntmp/cmdrec_compiler.log | 10 + .../impl1/syntmp/cmdrec_fpga_mapper.log | 12 + .../impl1/syntmp/cmdrec_multi_srs_gen.log | 7 + CPLD/LCMXO256C/impl1/syntmp/cmdrec_premap.log | 14 + CPLD/LCMXO256C/impl1/syntmp/open.png | Bin 0 -> 452 bytes CPLD/LCMXO256C/impl1/syntmp/statusReport.html | 115 + CPLD/LCMXO256C/impl1/synwork/.cckTransfer | Bin 0 -> 465 bytes .../synwork/RAM2GS_LCMXO256C_impl1_comp.fdep | 16 + .../RAM2GS_LCMXO256C_impl1_comp.rt.csv | 1 + .../synwork/RAM2GS_LCMXO256C_impl1_comp.srs | Bin 0 -> 10550 bytes .../synwork/RAM2GS_LCMXO256C_impl1_m.srm | Bin 0 -> 29138 bytes .../RAM2GS_LCMXO256C_impl1_m_srm/1.srm | Bin 0 -> 1799 bytes .../RAM2GS_LCMXO256C_impl1_m_srm/fileinfo.srm | Bin 0 -> 307 bytes .../synwork/RAM2GS_LCMXO256C_impl1_mult.gcr | 26 + .../synwork/RAM2GS_LCMXO256C_impl1_mult.srs | Bin 0 -> 10295 bytes .../fileinfo.srs | Bin 0 -> 252 bytes .../skeleton.srs | Bin 0 -> 841 bytes .../synwork/RAM2GS_LCMXO256C_impl1_prem.fse | 0 .../synwork/RAM2GS_LCMXO256C_impl1_prem.srd | Bin 0 -> 15189 bytes .../synwork/RAM2GS_LCMXO256C_impl1_prem.srm | Bin 0 -> 13438 bytes .../fileinfo.srm | Bin 0 -> 308 bytes .../skeleton.srm | Bin 0 -> 949 bytes CPLD/LCMXO256C/impl1/synwork/_mh_info | 1 + CPLD/LCMXO256C/impl1/synwork/incr_compile.rpt | 38 + CPLD/LCMXO256C/impl1/synwork/layer0.fdep | 18 + CPLD/LCMXO256C/impl1/synwork/layer0.fdepxmr | 1 + CPLD/LCMXO256C/impl1/synwork/layer0.rt.csv | 1 + CPLD/LCMXO256C/impl1/synwork/layer0.srs | Bin 0 -> 9722 bytes CPLD/LCMXO256C/impl1/synwork/layer0.tlg | 11 + CPLD/LCMXO256C/impl1/synwork/layer0.tlg.db | Bin 0 -> 8192 bytes CPLD/LCMXO256C/impl1/synwork/modulechange.db | Bin 0 -> 24576 bytes CPLD/LCMXO256C/impl1/version.log | 2 + CPLD/LCMXO640C/.setting.ini | 4 +- CPLD/LCMXO640C/.spread_sheet.ini | 3 + CPLD/LCMXO640C/.spreadsheet_view.ini | 65 + CPLD/LCMXO640C/RAM2GS_LCMXO640C.ccl | 1 + CPLD/LCMXO640C/RAM2GS_LCMXO640C.ldf | 5 +- CPLD/LCMXO640C/RAM2GS_LCMXO640C.lpf | 130 +- CPLD/LCMXO640C/RAM2GS_LCMXO640C1.sty | 10 +- .../RAM2GS_LCMXO640C_tcl.html} | 12 +- .../pn230815052239.tcr | 7 - ...{pn230815052236.tcr => pn230816033104.tcr} | 4 +- CPLD/LCMXO640C/impl1/.build_status | 99 +- .../.vdbs/RAM2GS_LCMXO640C_impl1_map.vdb | Bin 62815 -> 0 bytes CPLD/LCMXO640C/impl1/.vdbs/RAM2GS_rtl.vdb | Bin 74340 -> 0 bytes CPLD/LCMXO640C/impl1/.vdbs/RAM2GS_tech.vdb | Bin 72003 -> 0 bytes CPLD/LCMXO640C/impl1/.vdbs/dbStat.txt | 1 - .../impl1/IBIS/RAM2GS_LCMXO640C_im~.ibs | 3373 ++ .../impl1/RAM2GS_LCMXO640C_impl1.alt | 78 +- .../impl1/RAM2GS_LCMXO640C_impl1.arearep | 23 - .../impl1/RAM2GS_LCMXO640C_impl1.areasrr | 26 + .../impl1/RAM2GS_LCMXO640C_impl1.bgn | 2 +- .../impl1/RAM2GS_LCMXO640C_impl1.bit | Bin 20212 -> 20212 bytes .../impl1/RAM2GS_LCMXO640C_impl1.dir/5_1.ncd | Bin 163428 -> 149847 bytes .../impl1/RAM2GS_LCMXO640C_impl1.dir/5_1.pad | 146 +- .../impl1/RAM2GS_LCMXO640C_impl1.dir/5_1.par | 122 +- .../RAM2GS_LCMXO640C_impl1.dir/5_1_par.asd | 6 +- .../RAM2GS_LCMXO640C_impl1.par | 6 +- .../impl1/RAM2GS_LCMXO640C_impl1.edi | 2786 ++ .../impl1/RAM2GS_LCMXO640C_impl1.fse | 0 .../impl1/RAM2GS_LCMXO640C_impl1.htm | 9 + .../impl1/RAM2GS_LCMXO640C_impl1.jed | 3118 +- .../impl1/RAM2GS_LCMXO640C_impl1.lpf | 4 - .../impl1/RAM2GS_LCMXO640C_impl1.lsedata | 6331 --- .../impl1/RAM2GS_LCMXO640C_impl1.mrp | 320 +- .../impl1/RAM2GS_LCMXO640C_impl1.n2e | 1003 +- .../impl1/RAM2GS_LCMXO640C_impl1.ncd | Bin 163428 -> 149847 bytes .../impl1/RAM2GS_LCMXO640C_impl1.ngd | Bin 160693 -> 144453 bytes .../impl1/RAM2GS_LCMXO640C_impl1.ngo | Bin 0 -> 70904 bytes .../impl1/RAM2GS_LCMXO640C_impl1.pad | 146 +- .../impl1/RAM2GS_LCMXO640C_impl1.par | 128 +- .../impl1/RAM2GS_LCMXO640C_impl1.prf | 88 +- .../impl1/RAM2GS_LCMXO640C_impl1.srd | Bin 0 -> 20862 bytes .../impl1/RAM2GS_LCMXO640C_impl1.srf | 966 + .../impl1/RAM2GS_LCMXO640C_impl1.srm | Bin 0 -> 29135 bytes .../impl1/RAM2GS_LCMXO640C_impl1.srr | 966 + .../impl1/RAM2GS_LCMXO640C_impl1.srr.db | Bin 0 -> 16384 bytes .../impl1/RAM2GS_LCMXO640C_impl1.srs | Bin 0 -> 10295 bytes .../impl1/RAM2GS_LCMXO640C_impl1.tw1 | 298 +- .../impl1/RAM2GS_LCMXO640C_impl1.twr | 2667 +- .../impl1/RAM2GS_LCMXO640C_impl1_bgn.html | 2 +- .../impl1/RAM2GS_LCMXO640C_impl1_cck.rpt | 155 + .../impl1/RAM2GS_LCMXO640C_impl1_cck.rpt.db | Bin 0 -> 8192 bytes .../RAM2GS_LCMXO640C_impl1_iotiming.html | 176 +- .../RAM2GS_LCMXO640C_impl1_lattice.synproj | 41 - .../impl1/RAM2GS_LCMXO640C_impl1_map.asd | 4 +- .../impl1/RAM2GS_LCMXO640C_impl1_map.cam | 123 +- .../impl1/RAM2GS_LCMXO640C_impl1_map.hrr | 6 +- .../impl1/RAM2GS_LCMXO640C_impl1_map.ncd | Bin 107278 -> 98218 bytes .../impl1/RAM2GS_LCMXO640C_impl1_mapvho.sdf | 3782 +- .../impl1/RAM2GS_LCMXO640C_impl1_mapvho.vho | 24966 +++++------ .../impl1/RAM2GS_LCMXO640C_impl1_mapvo.sdf | 3780 +- .../impl1/RAM2GS_LCMXO640C_impl1_mapvo.vo | 4518 +- .../impl1/RAM2GS_LCMXO640C_impl1_mrp.html | 292 +- .../impl1/RAM2GS_LCMXO640C_impl1_ngd.asd | 1 + .../impl1/RAM2GS_LCMXO640C_impl1_pad.html | 146 +- .../impl1/RAM2GS_LCMXO640C_impl1_par.html | 128 +- .../impl1/RAM2GS_LCMXO640C_impl1_scck.rpt | 59 + .../impl1/RAM2GS_LCMXO640C_impl1_scck.rpt.db | Bin 0 -> 8192 bytes .../impl1/RAM2GS_LCMXO640C_impl1_summary.html | 4 +- .../RAM2GS_LCMXO640C_impl1_synplify.html | 1031 + .../impl1/RAM2GS_LCMXO640C_impl1_synplify.lpf | 24 + .../impl1/RAM2GS_LCMXO640C_impl1_synplify.tcl | 65 + .../RAM2GS_LCMXO640C_impl1_synplify_tmp2.lpf | 0 .../RAM2GS_LCMXO640C_impl1_synplify_tmp4.lpf | 0 .../RAM2GS_LCMXO640C_impl1_synplify_tmp8.lpf | 0 .../impl1/RAM2GS_LCMXO640C_impl1_tw1.html | 322 +- .../impl1/RAM2GS_LCMXO640C_impl1_twr.html | 2691 +- .../impl1/RAM2GS_LCMXO640C_impl1_vho.sdf | 2928 ++ .../impl1/RAM2GS_LCMXO640C_impl1_vho.vho} | 37432 ++++++++-------- .../impl1/RAM2GS_LCMXO640C_impl1_vo.sdf | 2923 ++ .../impl1/RAM2GS_LCMXO640C_impl1_vo.vo | 3718 ++ CPLD/LCMXO640C/impl1/RAM2GS_drc.log | 15 - CPLD/LCMXO640C/impl1/RAM2GS_lse.twr | 291 - CPLD/LCMXO640C/impl1/RAM2GS_lse_lsetwr.html | 356 - CPLD/LCMXO640C/impl1/RAM2GS_prim.v | 819 - CPLD/LCMXO640C/impl1/automake.log | 2028 +- .../impl1/backup/RAM2GS_LCMXO640C_impl1.srr | 966 + CPLD/LCMXO640C/impl1/dm/layer0.xdm | 32 + CPLD/LCMXO640C/impl1/impl1.xcf | 5 +- .../impl1/ram2gs_lcmxo640c_impl1.ior | 176 +- .../impl1/ram2gs_lcmxo640c_impl1_trce.asd | 16 +- CPLD/LCMXO640C/impl1/run_options.txt | 81 + CPLD/LCMXO640C/impl1/scratchproject.prs | 80 + CPLD/LCMXO640C/impl1/stdout.log | 89 + CPLD/LCMXO640C/impl1/stdout.log.bak.1 | 89 + CPLD/LCMXO640C/impl1/stdout.log.bak.2 | 89 + CPLD/LCMXO640C/impl1/stdout.log.bak.3 | 89 + CPLD/LCMXO640C/impl1/stdout.log.bak.4 | 89 + CPLD/LCMXO640C/impl1/stdout.log.bak.5 | 90 + CPLD/LCMXO640C/impl1/synlog.tcl | 1 + .../RAM2GS_LCMXO640C_impl1_comp.rt.csv.rptmap | 1 + .../RAM2GS_LCMXO640C_impl1_compiler.srr | 108 + .../RAM2GS_LCMXO640C_impl1_compiler.srr.db | Bin 0 -> 8192 bytes ...RAM2GS_LCMXO640C_impl1_compiler.srr.rptmap | 1 + .../RAM2GS_LCMXO640C_impl1_fpga_mapper.srr | 659 + .../RAM2GS_LCMXO640C_impl1_fpga_mapper.srr.db | Bin 0 -> 8192 bytes .../RAM2GS_LCMXO640C_impl1_fpga_mapper.szr | Bin 0 -> 21018 bytes .../RAM2GS_LCMXO640C_impl1_multi_srs_gen.srr | 28 + ...AM2GS_LCMXO640C_impl1_multi_srs_gen.srr.db | Bin 0 -> 8192 bytes .../synlog/RAM2GS_LCMXO640C_impl1_premap.srr | 162 + .../RAM2GS_LCMXO640C_impl1_premap.srr.db | Bin 0 -> 8192 bytes .../synlog/RAM2GS_LCMXO640C_impl1_premap.szr | Bin 0 -> 12388 bytes .../synlog/RAM2GS_LCMXO640C_impl1_premap.xck | 4 + .../impl1/synlog/incr_compile.rpt.rptmap | 1 + CPLD/LCMXO640C/impl1/synlog/layer0.tlg.rptmap | 1 + .../RAM2GS_LCMXO640C_impl1_compiler_notes.txt | 5 + ...2GS_LCMXO640C_impl1_fpga_mapper_errors.txt | 0 ...M2GS_LCMXO640C_impl1_fpga_mapper_notes.txt | 20 + ...XO640C_impl1_fpga_mapper_resourceusage.rpt | 24 + ...S_LCMXO640C_impl1_fpga_mapper_warnings.txt | 6 + ...GS_LCMXO640C_impl1_premap_combined_clk.rpt | 24 + .../RAM2GS_LCMXO640C_impl1_premap_errors.txt | 0 .../RAM2GS_LCMXO640C_impl1_premap_notes.txt | 27 + ...RAM2GS_LCMXO640C_impl1_premap_warnings.txt | 1 + CPLD/LCMXO640C/impl1/synlog/report/metrics.db | Bin 0 -> 45056 bytes .../synlog/syntax_constraint_check.rpt.rptmap | 1 + CPLD/LCMXO640C/impl1/synthesis.log | 238 - CPLD/LCMXO640C/impl1/synthesis_lse.html | 303 - .../impl1/syntmp/RAM2GS_LCMXO640C_impl1.plg | 23 + .../syntmp/RAM2GS_LCMXO640C_impl1_srr.htm | 985 + .../syntmp/RAM2GS_LCMXO640C_impl1_toc.htm | 58 + CPLD/LCMXO640C/impl1/syntmp/closed.png | Bin 0 -> 3672 bytes .../impl1/syntmp/cmdrec_compiler.log | 10 + .../impl1/syntmp/cmdrec_fpga_mapper.log | 12 + .../impl1/syntmp/cmdrec_multi_srs_gen.log | 7 + CPLD/LCMXO640C/impl1/syntmp/cmdrec_premap.log | 14 + CPLD/LCMXO640C/impl1/syntmp/open.png | Bin 0 -> 452 bytes CPLD/LCMXO640C/impl1/syntmp/statusReport.html | 115 + CPLD/LCMXO640C/impl1/synwork/.cckTransfer | Bin 0 -> 465 bytes .../synwork/RAM2GS_LCMXO640C_impl1_comp.fdep | 16 + .../RAM2GS_LCMXO640C_impl1_comp.rt.csv | 1 + .../synwork/RAM2GS_LCMXO640C_impl1_comp.srs | Bin 0 -> 10551 bytes .../synwork/RAM2GS_LCMXO640C_impl1_m.srm | Bin 0 -> 29135 bytes .../RAM2GS_LCMXO640C_impl1_m_srm/1.srm | Bin 0 -> 1800 bytes .../RAM2GS_LCMXO640C_impl1_m_srm/fileinfo.srm | Bin 0 -> 307 bytes .../synwork/RAM2GS_LCMXO640C_impl1_mult.gcr | 26 + .../synwork/RAM2GS_LCMXO640C_impl1_mult.srs | Bin 0 -> 10295 bytes .../fileinfo.srs | Bin 0 -> 252 bytes .../skeleton.srs | Bin 0 -> 842 bytes .../synwork/RAM2GS_LCMXO640C_impl1_prem.fse | 0 .../synwork/RAM2GS_LCMXO640C_impl1_prem.srd | Bin 0 -> 15190 bytes .../synwork/RAM2GS_LCMXO640C_impl1_prem.srm | Bin 0 -> 13438 bytes .../fileinfo.srm | Bin 0 -> 308 bytes .../skeleton.srm | Bin 0 -> 950 bytes CPLD/LCMXO640C/impl1/synwork/_mh_info | 1 + CPLD/LCMXO640C/impl1/synwork/incr_compile.rpt | 38 + CPLD/LCMXO640C/impl1/synwork/layer0.fdep | 18 + CPLD/LCMXO640C/impl1/synwork/layer0.fdepxmr | 1 + CPLD/LCMXO640C/impl1/synwork/layer0.rt.csv | 1 + CPLD/LCMXO640C/impl1/synwork/layer0.srs | Bin 0 -> 9719 bytes CPLD/LCMXO640C/impl1/synwork/layer0.tlg | 11 + CPLD/LCMXO640C/impl1/synwork/layer0.tlg.db | Bin 0 -> 8192 bytes CPLD/LCMXO640C/impl1/synwork/modulechange.db | Bin 0 -> 24576 bytes CPLD/LCMXO640C/impl1/version.log | 2 + CPLD/LCMXO640C/impl1/xxx_lse_cp_file_list | 250 - CPLD/LCMXO640C/impl1/xxx_lse_sign_file | 250 - CPLD/MAXII/RAM2GS.qsf | 153 +- CPLD/MAXII/RAM2GS.qws | Bin 619 -> 48 bytes CPLD/MAXII/db/RAM2GS.(0).cnf.cdb | Bin 21188 -> 21188 bytes CPLD/MAXII/db/RAM2GS.(0).cnf.hdb | Bin 3743 -> 3286 bytes CPLD/MAXII/db/RAM2GS.asm.qmsg | 13 +- CPLD/MAXII/db/RAM2GS.asm.rdb | Bin 807 -> 808 bytes CPLD/MAXII/db/RAM2GS.asm_labs.ddb | Bin 2679 -> 2580 bytes CPLD/MAXII/db/RAM2GS.cmp.cdb | Bin 43889 -> 42596 bytes CPLD/MAXII/db/RAM2GS.cmp.hdb | Bin 18634 -> 19082 bytes CPLD/MAXII/db/RAM2GS.cmp.idb | Bin 2726 -> 2718 bytes CPLD/MAXII/db/RAM2GS.cmp.rdb | Bin 14361 -> 14485 bytes CPLD/MAXII/db/RAM2GS.cmp0.ddb | Bin 77067 -> 73650 bytes CPLD/MAXII/db/RAM2GS.db_info | 2 +- CPLD/MAXII/db/RAM2GS.fit.qmsg | 88 +- CPLD/MAXII/db/RAM2GS.hier_info | 64 +- CPLD/MAXII/db/RAM2GS.hif | Bin 596 -> 596 bytes CPLD/MAXII/db/RAM2GS.map.cdb | Bin 17914 -> 17914 bytes CPLD/MAXII/db/RAM2GS.map.hdb | Bin 17679 -> 18089 bytes CPLD/MAXII/db/RAM2GS.map.qmsg | 50 +- CPLD/MAXII/db/RAM2GS.map.rdb | Bin 1261 -> 1263 bytes CPLD/MAXII/db/RAM2GS.pre_map.hdb | Bin 16376 -> 16963 bytes CPLD/MAXII/db/RAM2GS.routing.rdb | Bin 1512 -> 1535 bytes CPLD/MAXII/db/RAM2GS.rtlv.hdb | Bin 16298 -> 16857 bytes CPLD/MAXII/db/RAM2GS.rtlv_sg.cdb | Bin 19172 -> 19260 bytes CPLD/MAXII/db/RAM2GS.rtlv_sg_swap.cdb | Bin 840 -> 839 bytes CPLD/MAXII/db/RAM2GS.sta.qmsg | 48 +- CPLD/MAXII/db/RAM2GS.sta.rdb | Bin 13070 -> 13397 bytes CPLD/MAXII/db/RAM2GS.sta_cmp.5_slow.tdb | Bin 46242 -> 46251 bytes CPLD/MAXII/db/RAM2GS.tmw_info | 9 +- .../RAM2GS.root_partition.map.kpt | Bin 2659 -> 2650 bytes CPLD/MAXII/output_files/RAM2GS.asm.rpt | 15 +- CPLD/MAXII/output_files/RAM2GS.done | 2 +- CPLD/MAXII/output_files/RAM2GS.fit.rpt | 296 +- CPLD/MAXII/output_files/RAM2GS.fit.summary | 2 +- CPLD/MAXII/output_files/RAM2GS.flow.rpt | 17 +- CPLD/MAXII/output_files/RAM2GS.map.rpt | 27 +- CPLD/MAXII/output_files/RAM2GS.map.smsg | 2 +- CPLD/MAXII/output_files/RAM2GS.map.summary | 2 +- CPLD/MAXII/output_files/RAM2GS.pof | Bin 7861 -> 7861 bytes CPLD/MAXII/output_files/RAM2GS.sta.rpt | 1097 +- CPLD/MAXII/output_files/RAM2GS.sta.summary | 70 +- CPLD/MAXV/RAM2GS.qsf | 175 +- CPLD/MAXV/RAM2GS.qws | Bin 0 -> 48 bytes CPLD/MAXV/db/RAM2GS.(0).cnf.cdb | Bin 21188 -> 21188 bytes CPLD/MAXV/db/RAM2GS.(0).cnf.hdb | Bin 3726 -> 3286 bytes CPLD/MAXV/db/RAM2GS.acvq.rdb | Bin 402 -> 0 bytes CPLD/MAXV/db/RAM2GS.asm.qmsg | 13 +- CPLD/MAXV/db/RAM2GS.asm.rdb | Bin 809 -> 808 bytes CPLD/MAXV/db/RAM2GS.asm_labs.ddb | Bin 2742 -> 2635 bytes CPLD/MAXV/db/RAM2GS.cmp.cdb | Bin 44062 -> 43033 bytes CPLD/MAXV/db/RAM2GS.cmp.hdb | Bin 18555 -> 19006 bytes CPLD/MAXV/db/RAM2GS.cmp.idb | Bin 2719 -> 2718 bytes CPLD/MAXV/db/RAM2GS.cmp.rdb | Bin 14283 -> 14421 bytes CPLD/MAXV/db/RAM2GS.cmp0.ddb | Bin 79147 -> 76515 bytes CPLD/MAXV/db/RAM2GS.db_info | 2 +- CPLD/MAXV/db/RAM2GS.fit.qmsg | 88 +- CPLD/MAXV/db/RAM2GS.hier_info | 4 +- CPLD/MAXV/db/RAM2GS.hif | Bin 595 -> 594 bytes CPLD/MAXV/db/RAM2GS.map.cdb | Bin 17914 -> 17920 bytes CPLD/MAXV/db/RAM2GS.map.hdb | Bin 17643 -> 18023 bytes CPLD/MAXV/db/RAM2GS.map.qmsg | 50 +- CPLD/MAXV/db/RAM2GS.map.rdb | Bin 1262 -> 1262 bytes CPLD/MAXV/db/RAM2GS.pre_map.hdb | Bin 16328 -> 16718 bytes CPLD/MAXV/db/RAM2GS.routing.rdb | Bin 1525 -> 1563 bytes CPLD/MAXV/db/RAM2GS.rtlv.hdb | Bin 16245 -> 16631 bytes CPLD/MAXV/db/RAM2GS.rtlv_sg.cdb | Bin 19172 -> 19163 bytes CPLD/MAXV/db/RAM2GS.rtlv_sg_swap.cdb | Bin 841 -> 841 bytes CPLD/MAXV/db/RAM2GS.sta.qmsg | 48 +- CPLD/MAXV/db/RAM2GS.sta.rdb | Bin 13288 -> 13817 bytes CPLD/MAXV/db/RAM2GS.sta_cmp.4_slow.tdb | Bin 46425 -> 0 bytes CPLD/MAXV/db/RAM2GS.sta_cmp.5_slow.tdb | Bin 0 -> 46398 bytes CPLD/MAXV/db/RAM2GS.tmw_info | 6 - CPLD/MAXV/db/prev_cmp_RAM2GS-MAXV.qmsg | 216 +- .../RAM2GS.root_partition.map.kpt | Bin 2645 -> 2617 bytes CPLD/MAXV/output_files/RAM2GS.asm.rpt | 21 +- CPLD/MAXV/output_files/RAM2GS.done | 2 +- CPLD/MAXV/output_files/RAM2GS.fit.rpt | 287 +- CPLD/MAXV/output_files/RAM2GS.fit.summary | 4 +- CPLD/MAXV/output_files/RAM2GS.flow.rpt | 40 +- CPLD/MAXV/output_files/RAM2GS.jdi | 4 +- CPLD/MAXV/output_files/RAM2GS.map.rpt | 43 +- CPLD/MAXV/output_files/RAM2GS.map.smsg | 2 +- CPLD/MAXV/output_files/RAM2GS.map.summary | 2 +- CPLD/MAXV/output_files/RAM2GS.pin | 2 +- CPLD/MAXV/output_files/RAM2GS.pof | Bin 7861 -> 7861 bytes CPLD/MAXV/output_files/RAM2GS.sta.rpt | 1134 +- CPLD/MAXV/output_files/RAM2GS.sta.summary | 86 +- CPLD/RAM2GS-MAX.sdc | 2 + CPLD/RAM2GS-MAX.v | 22 +- CPLD/RAM2GS-SPI.v | 24 +- CPLD/RAM2GS.sdc | 4 + CPLD/RAM4GS-AGM.v | 26 +- Hardware/LCMXO2/#auto_saved_files# | 1 + Hardware/LCMXO2/RAM2GS-rescue.kicad_sym | 903 + Hardware/LCMXO2/sym-lib-table | 8 +- Hardware/LCMXO2/~RAM2GS.sch.lck | 1 + .../LCMXO2/~_autosave-RAM2GS.kicad_pcb.lck | 1 + 681 files changed, 192805 insertions(+), 142630 deletions(-) delete mode 100644 CPLD/LCMXO2-1200HC/.run_manager.ini delete mode 100644 CPLD/LCMXO2-1200HC/.setting.ini delete mode 100644 CPLD/LCMXO2-1200HC/RAM2GS_LCMXO2_1200HC.ldf delete mode 100644 CPLD/LCMXO2-1200HC/RAM2GS_LCMXO2_1200HC.lpf delete mode 100644 CPLD/LCMXO2-1200HC/RAM2GS_LCMXO2_1200HC1.sty delete mode 100644 CPLD/LCMXO2-1200HC/RAM2GS_LCMXO2_1200HC_tcr.dir/pn230815050136.tcr delete mode 100644 CPLD/LCMXO2-1200HC/RAM2GS_LCMXO2_1200HC_tcr.dir/pn230815052235.tcr delete mode 100644 CPLD/LCMXO2-1200HC/impl1/.build_status delete mode 100644 CPLD/LCMXO2-1200HC/impl1/.vdbs/RAM2GS_LCMXO2_1200HC_impl1_map.vdb delete mode 100644 CPLD/LCMXO2-1200HC/impl1/.vdbs/RAM2GS_rtl.vdb delete mode 100644 CPLD/LCMXO2-1200HC/impl1/.vdbs/RAM2GS_tech.vdb delete mode 100644 CPLD/LCMXO2-1200HC/impl1/.vdbs/dbStat.txt delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.alt delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.arearep delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.bgn delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.dir/5_1.ncd delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.dir/5_1.pad delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.dir/5_1.par delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.dir/5_1_par.asd delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.dir/RAM2GS_LCMXO2_1200HC_impl1.par delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.drc delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.jed delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.log delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.lpf delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.lsedata delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.mrp delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.mt delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.ncd delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.ngd delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.p2t delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.p3t delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.pad delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.par delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.prf delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.pt delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.t2b delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.tw1 delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.twr delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_bgn.html delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_iotiming.html delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_lattice.synproj delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_map.asd delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_map.cam delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_map.hrr delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_map.ncd delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_mapvho.sdf delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_mapvo.sdf delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_mapvo.vo delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_mrp.html delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_pad.html delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_par.html delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_summary.html delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_tw1.html delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_twr.html delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_drc.log delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_lse.twr delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_lse_lsetwr.html delete mode 100644 CPLD/LCMXO2-1200HC/impl1/RAM2GS_prim.v delete mode 100644 CPLD/LCMXO2-1200HC/impl1/automake.log delete mode 100644 CPLD/LCMXO2-1200HC/impl1/hdla_gen_hierarchy.html delete mode 100644 CPLD/LCMXO2-1200HC/impl1/impl1.xcf delete mode 100644 CPLD/LCMXO2-1200HC/impl1/ram2gs_lcmxo2_1200hc_impl1.ior delete mode 100644 CPLD/LCMXO2-1200HC/impl1/ram2gs_lcmxo2_1200hc_impl1_trce.asd delete mode 100644 CPLD/LCMXO2-1200HC/impl1/synthesis.log delete mode 100644 CPLD/LCMXO2-1200HC/impl1/synthesis_lse.html delete mode 100644 CPLD/LCMXO2-1200HC/impl1/xxx_lse_cp_file_list delete mode 100644 CPLD/LCMXO2-1200HC/impl1/xxx_lse_sign_file create mode 100644 CPLD/LCMXO2-640HC/RAM2GS_LCMXO2_640HC_tcr.dir/pn230816015720.tcr create mode 100644 CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.areasrr create mode 100644 CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.edi create mode 100644 CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.fse create mode 100644 CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.htm create mode 100644 CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.ngo create mode 100644 CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.srd create mode 100644 CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.srf create mode 100644 CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.srm create mode 100644 CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.srr create mode 100644 CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.srr.db create mode 100644 CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.srs create mode 100644 CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_cck.rpt create mode 100644 CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_cck.rpt.db create mode 100644 CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_multi_srs_gen.htm create mode 100644 CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_ngd.asd create mode 100644 CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_scck.rpt create mode 100644 CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_scck.rpt.db create mode 100644 CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_synplify.html create mode 100644 CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_synplify.lpf create mode 100644 CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_synplify.tcl create mode 100644 CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_synplify_tmp2.lpf create mode 100644 CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_synplify_tmp4.lpf create mode 100644 CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_synplify_tmp8.lpf create mode 100644 CPLD/LCMXO2-640HC/impl1/backup/RAM2GS_LCMXO2_640HC_impl1.srr create mode 100644 CPLD/LCMXO2-640HC/impl1/dm/layer0.xdm create mode 100644 CPLD/LCMXO2-640HC/impl1/impl1.areasrr create mode 100644 CPLD/LCMXO2-640HC/impl1/impl1.edi create mode 100644 CPLD/LCMXO2-640HC/impl1/impl1.fse create mode 100644 CPLD/LCMXO2-640HC/impl1/impl1.htm create mode 100644 CPLD/LCMXO2-640HC/impl1/impl1.srd create mode 100644 CPLD/LCMXO2-640HC/impl1/impl1.srm create mode 100644 CPLD/LCMXO2-640HC/impl1/impl1.srr create mode 100644 CPLD/LCMXO2-640HC/impl1/impl1.srr.db create mode 100644 CPLD/LCMXO2-640HC/impl1/impl1.srs create mode 100644 CPLD/LCMXO2-640HC/impl1/impl1_cck.rpt create mode 100644 CPLD/LCMXO2-640HC/impl1/impl1_cck.rpt.db create mode 100644 CPLD/LCMXO2-640HC/impl1/impl1_scck.rpt create mode 100644 CPLD/LCMXO2-640HC/impl1/impl1_scck.rpt.db create mode 100644 CPLD/LCMXO2-640HC/impl1/impl1_syn.prj create mode 100644 CPLD/LCMXO2-640HC/impl1/impl1_synplify.lpf create mode 100644 CPLD/LCMXO2-640HC/impl1/impl1_synplify_tmp2.lpf create mode 100644 CPLD/LCMXO2-640HC/impl1/impl1_synplify_tmp4.lpf create mode 100644 CPLD/LCMXO2-640HC/impl1/impl1_synplify_tmp8.lpf create mode 100644 CPLD/LCMXO2-640HC/impl1/launch_synplify.tcl create mode 100644 CPLD/LCMXO2-640HC/impl1/run_options.txt create mode 100644 CPLD/LCMXO2-640HC/impl1/scratchproject.prs create mode 100644 CPLD/LCMXO2-640HC/impl1/stdout.log create mode 100644 CPLD/LCMXO2-640HC/impl1/stdout.log.bak.1 create mode 100644 CPLD/LCMXO2-640HC/impl1/stdout.log.bak.2 create mode 100644 CPLD/LCMXO2-640HC/impl1/stdout.log.bak.3 create mode 100644 CPLD/LCMXO2-640HC/impl1/stdout.log.bak.4 create mode 100644 CPLD/LCMXO2-640HC/impl1/stdout.log.bak.5 create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog.tcl create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/RAM2GS_LCMXO2_640HC_impl1_comp.rt.csv.rptmap create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/RAM2GS_LCMXO2_640HC_impl1_compiler.srr create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/RAM2GS_LCMXO2_640HC_impl1_compiler.srr.db create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/RAM2GS_LCMXO2_640HC_impl1_compiler.srr.rptmap create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/RAM2GS_LCMXO2_640HC_impl1_fpga_mapper.srr create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/RAM2GS_LCMXO2_640HC_impl1_fpga_mapper.srr.db create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/RAM2GS_LCMXO2_640HC_impl1_fpga_mapper.szr create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/RAM2GS_LCMXO2_640HC_impl1_multi_srs_gen.srr create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/RAM2GS_LCMXO2_640HC_impl1_multi_srs_gen.srr.db create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/RAM2GS_LCMXO2_640HC_impl1_premap.srr create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/RAM2GS_LCMXO2_640HC_impl1_premap.srr.db create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/RAM2GS_LCMXO2_640HC_impl1_premap.szr create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/RAM2GS_LCMXO2_640HC_impl1_premap.xck create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/impl1_comp.rt.csv.rptmap create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/impl1_compiler.srr create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/impl1_compiler.srr.db create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/impl1_compiler.srr.rptmap create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/impl1_fpga_mapper.srr create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/impl1_fpga_mapper.srr.db create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/impl1_fpga_mapper.szr create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/impl1_multi_srs_gen.srr create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/impl1_multi_srs_gen.srr.db create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/impl1_premap.srr create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/impl1_premap.srr.db create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/impl1_premap.szr create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/impl1_premap.xck create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/incr_compile.rpt.rptmap create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/layer0.tlg.rptmap create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/report/RAM2GS_LCMXO2_640HC_impl1_compiler_notes.txt create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/report/RAM2GS_LCMXO2_640HC_impl1_fpga_mapper_errors.txt create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/report/RAM2GS_LCMXO2_640HC_impl1_fpga_mapper_notes.txt create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/report/RAM2GS_LCMXO2_640HC_impl1_fpga_mapper_resourceusage.rpt create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/report/RAM2GS_LCMXO2_640HC_impl1_fpga_mapper_warnings.txt create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/report/RAM2GS_LCMXO2_640HC_impl1_premap_combined_clk.rpt create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/report/RAM2GS_LCMXO2_640HC_impl1_premap_errors.txt create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/report/RAM2GS_LCMXO2_640HC_impl1_premap_notes.txt create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/report/RAM2GS_LCMXO2_640HC_impl1_premap_warnings.txt create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/report/impl1_compiler_notes.txt create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/report/impl1_fpga_mapper_errors.txt create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/report/impl1_fpga_mapper_notes.txt create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/report/impl1_fpga_mapper_resourceusage.rpt create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/report/impl1_fpga_mapper_warnings.txt create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/report/impl1_premap_combined_clk.rpt create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/report/impl1_premap_errors.txt create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/report/impl1_premap_notes.txt create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/report/impl1_premap_warnings.txt create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/report/metrics.db create mode 100644 CPLD/LCMXO2-640HC/impl1/synlog/syntax_constraint_check.rpt.rptmap create mode 100644 CPLD/LCMXO2-640HC/impl1/syntmp/RAM2GS_LCMXO2_640HC_impl1.plg create mode 100644 CPLD/LCMXO2-640HC/impl1/syntmp/RAM2GS_LCMXO2_640HC_impl1_multi_srs_gen_srr.htm create mode 100644 CPLD/LCMXO2-640HC/impl1/syntmp/RAM2GS_LCMXO2_640HC_impl1_multi_srs_gen_toc.htm create mode 100644 CPLD/LCMXO2-640HC/impl1/syntmp/RAM2GS_LCMXO2_640HC_impl1_srr.htm create mode 100644 CPLD/LCMXO2-640HC/impl1/syntmp/RAM2GS_LCMXO2_640HC_impl1_toc.htm create mode 100644 CPLD/LCMXO2-640HC/impl1/syntmp/closed.png create mode 100644 CPLD/LCMXO2-640HC/impl1/syntmp/cmdrec_compiler.log create mode 100644 CPLD/LCMXO2-640HC/impl1/syntmp/cmdrec_fpga_mapper.log create mode 100644 CPLD/LCMXO2-640HC/impl1/syntmp/cmdrec_multi_srs_gen.log create mode 100644 CPLD/LCMXO2-640HC/impl1/syntmp/cmdrec_premap.log create mode 100644 CPLD/LCMXO2-640HC/impl1/syntmp/impl1.plg create mode 100644 CPLD/LCMXO2-640HC/impl1/syntmp/impl1_srr.htm create mode 100644 CPLD/LCMXO2-640HC/impl1/syntmp/impl1_toc.htm create mode 100644 CPLD/LCMXO2-640HC/impl1/syntmp/open.png create mode 100644 CPLD/LCMXO2-640HC/impl1/syntmp/statusReport.html create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/.cckTransfer create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/RAM2GS_LCMXO2_640HC_impl1_comp.fdep create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/RAM2GS_LCMXO2_640HC_impl1_comp.rt.csv create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/RAM2GS_LCMXO2_640HC_impl1_comp.srs create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/RAM2GS_LCMXO2_640HC_impl1_m.srm create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/RAM2GS_LCMXO2_640HC_impl1_m_srm/1.srm create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/RAM2GS_LCMXO2_640HC_impl1_m_srm/fileinfo.srm create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/RAM2GS_LCMXO2_640HC_impl1_mult.gcr create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/RAM2GS_LCMXO2_640HC_impl1_mult.srs create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/RAM2GS_LCMXO2_640HC_impl1_mult_srs/fileinfo.srs create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/RAM2GS_LCMXO2_640HC_impl1_mult_srs/skeleton.srs create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/RAM2GS_LCMXO2_640HC_impl1_prem.fse create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/RAM2GS_LCMXO2_640HC_impl1_prem.srd create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/RAM2GS_LCMXO2_640HC_impl1_prem.srm create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/RAM2GS_LCMXO2_640HC_impl1_prem_srm/fileinfo.srm create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/RAM2GS_LCMXO2_640HC_impl1_prem_srm/skeleton.srm create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/_mh_info create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/impl1_comp.fdep create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/impl1_comp.rt.csv create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/impl1_comp.srs create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/impl1_m.srm create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/impl1_m_srm/1.srm create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/impl1_m_srm/fileinfo.srm create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/impl1_mult.gcr create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/impl1_mult.srs create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/impl1_mult_srs/fileinfo.srs create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/impl1_mult_srs/skeleton.srs create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/impl1_prem.fse create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/impl1_prem.srd create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/impl1_prem.srm create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/impl1_prem_srm/fileinfo.srm create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/impl1_prem_srm/skeleton.srm create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/incr_compile.rpt create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/layer0.fdep create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/layer0.fdepxmr create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/layer0.rt.csv create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/layer0.srs create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/layer0.tlg create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/layer0.tlg.db create mode 100644 CPLD/LCMXO2-640HC/impl1/synwork/modulechange.db create mode 100644 CPLD/LCMXO2-640HC/impl1/version.log create mode 100644 CPLD/LCMXO256C/RAM2GS_LCMXO256C_tcr.dir/pn230816015738.tcr create mode 100644 CPLD/LCMXO256C/RAM2GS_LCMXO256C_tcr.dir/pn230816022858.tcr create mode 100644 CPLD/LCMXO256C/impl1/IBIS/RAM2GS_LCMXO256C_im~.ibs create mode 100644 CPLD/LCMXO256C/impl1/RAM2GS_LCMXO256C_impl1.areasrr create mode 100644 CPLD/LCMXO256C/impl1/RAM2GS_LCMXO256C_impl1.edi create mode 100644 CPLD/LCMXO256C/impl1/RAM2GS_LCMXO256C_impl1.fse create mode 100644 CPLD/LCMXO256C/impl1/RAM2GS_LCMXO256C_impl1.htm create mode 100644 CPLD/LCMXO256C/impl1/RAM2GS_LCMXO256C_impl1.ngo create mode 100644 CPLD/LCMXO256C/impl1/RAM2GS_LCMXO256C_impl1.srd create mode 100644 CPLD/LCMXO256C/impl1/RAM2GS_LCMXO256C_impl1.srf create mode 100644 CPLD/LCMXO256C/impl1/RAM2GS_LCMXO256C_impl1.srm create mode 100644 CPLD/LCMXO256C/impl1/RAM2GS_LCMXO256C_impl1.srr create mode 100644 CPLD/LCMXO256C/impl1/RAM2GS_LCMXO256C_impl1.srr.db create mode 100644 CPLD/LCMXO256C/impl1/RAM2GS_LCMXO256C_impl1.srs create mode 100644 CPLD/LCMXO256C/impl1/RAM2GS_LCMXO256C_impl1_cck.rpt create mode 100644 CPLD/LCMXO256C/impl1/RAM2GS_LCMXO256C_impl1_cck.rpt.db create mode 100644 CPLD/LCMXO256C/impl1/RAM2GS_LCMXO256C_impl1_multi_srs_gen.htm create mode 100644 CPLD/LCMXO256C/impl1/RAM2GS_LCMXO256C_impl1_ngd.asd create mode 100644 CPLD/LCMXO256C/impl1/RAM2GS_LCMXO256C_impl1_scck.rpt create mode 100644 CPLD/LCMXO256C/impl1/RAM2GS_LCMXO256C_impl1_scck.rpt.db create mode 100644 CPLD/LCMXO256C/impl1/RAM2GS_LCMXO256C_impl1_synplify.html create mode 100644 CPLD/LCMXO256C/impl1/RAM2GS_LCMXO256C_impl1_synplify.lpf create mode 100644 CPLD/LCMXO256C/impl1/RAM2GS_LCMXO256C_impl1_synplify.tcl create mode 100644 CPLD/LCMXO256C/impl1/RAM2GS_LCMXO256C_impl1_synplify_tmp2.lpf create mode 100644 CPLD/LCMXO256C/impl1/RAM2GS_LCMXO256C_impl1_synplify_tmp4.lpf create mode 100644 CPLD/LCMXO256C/impl1/RAM2GS_LCMXO256C_impl1_synplify_tmp8.lpf create mode 100644 CPLD/LCMXO256C/impl1/RAM2GS_LCMXO256C_impl1_vho.sdf create mode 100644 CPLD/LCMXO256C/impl1/RAM2GS_LCMXO256C_impl1_vho.vho create mode 100644 CPLD/LCMXO256C/impl1/RAM2GS_LCMXO256C_impl1_vo.sdf create mode 100644 CPLD/LCMXO256C/impl1/RAM2GS_LCMXO256C_impl1_vo.vo create mode 100644 CPLD/LCMXO256C/impl1/backup/RAM2GS_LCMXO256C_impl1.srr create mode 100644 CPLD/LCMXO256C/impl1/dm/layer0.xdm create mode 100644 CPLD/LCMXO256C/impl1/run_options.txt create mode 100644 CPLD/LCMXO256C/impl1/scratchproject.prs create mode 100644 CPLD/LCMXO256C/impl1/stdout.log create mode 100644 CPLD/LCMXO256C/impl1/stdout.log.bak.1 create mode 100644 CPLD/LCMXO256C/impl1/stdout.log.bak.2 create mode 100644 CPLD/LCMXO256C/impl1/stdout.log.bak.3 create mode 100644 CPLD/LCMXO256C/impl1/stdout.log.bak.4 create mode 100644 CPLD/LCMXO256C/impl1/stdout.log.bak.5 create mode 100644 CPLD/LCMXO256C/impl1/synlog.tcl create mode 100644 CPLD/LCMXO256C/impl1/synlog/RAM2GS_LCMXO256C_impl1_comp.rt.csv.rptmap create mode 100644 CPLD/LCMXO256C/impl1/synlog/RAM2GS_LCMXO256C_impl1_compiler.srr create mode 100644 CPLD/LCMXO256C/impl1/synlog/RAM2GS_LCMXO256C_impl1_compiler.srr.db create mode 100644 CPLD/LCMXO256C/impl1/synlog/RAM2GS_LCMXO256C_impl1_compiler.srr.rptmap create mode 100644 CPLD/LCMXO256C/impl1/synlog/RAM2GS_LCMXO256C_impl1_fpga_mapper.srr create mode 100644 CPLD/LCMXO256C/impl1/synlog/RAM2GS_LCMXO256C_impl1_fpga_mapper.srr.db create mode 100644 CPLD/LCMXO256C/impl1/synlog/RAM2GS_LCMXO256C_impl1_fpga_mapper.szr create mode 100644 CPLD/LCMXO256C/impl1/synlog/RAM2GS_LCMXO256C_impl1_multi_srs_gen.srr create mode 100644 CPLD/LCMXO256C/impl1/synlog/RAM2GS_LCMXO256C_impl1_multi_srs_gen.srr.db create mode 100644 CPLD/LCMXO256C/impl1/synlog/RAM2GS_LCMXO256C_impl1_premap.srr create mode 100644 CPLD/LCMXO256C/impl1/synlog/RAM2GS_LCMXO256C_impl1_premap.srr.db create mode 100644 CPLD/LCMXO256C/impl1/synlog/RAM2GS_LCMXO256C_impl1_premap.szr create mode 100644 CPLD/LCMXO256C/impl1/synlog/RAM2GS_LCMXO256C_impl1_premap.xck create mode 100644 CPLD/LCMXO256C/impl1/synlog/incr_compile.rpt.rptmap create mode 100644 CPLD/LCMXO256C/impl1/synlog/layer0.tlg.rptmap create mode 100644 CPLD/LCMXO256C/impl1/synlog/report/RAM2GS_LCMXO256C_impl1_compiler_errors.txt create mode 100644 CPLD/LCMXO256C/impl1/synlog/report/RAM2GS_LCMXO256C_impl1_compiler_notes.txt create mode 100644 CPLD/LCMXO256C/impl1/synlog/report/RAM2GS_LCMXO256C_impl1_compiler_warnings.txt create mode 100644 CPLD/LCMXO256C/impl1/synlog/report/RAM2GS_LCMXO256C_impl1_fpga_mapper_errors.txt create mode 100644 CPLD/LCMXO256C/impl1/synlog/report/RAM2GS_LCMXO256C_impl1_fpga_mapper_notes.txt create mode 100644 CPLD/LCMXO256C/impl1/synlog/report/RAM2GS_LCMXO256C_impl1_fpga_mapper_resourceusage.rpt create mode 100644 CPLD/LCMXO256C/impl1/synlog/report/RAM2GS_LCMXO256C_impl1_fpga_mapper_warnings.txt create mode 100644 CPLD/LCMXO256C/impl1/synlog/report/RAM2GS_LCMXO256C_impl1_premap_combined_clk.rpt create mode 100644 CPLD/LCMXO256C/impl1/synlog/report/RAM2GS_LCMXO256C_impl1_premap_errors.txt create mode 100644 CPLD/LCMXO256C/impl1/synlog/report/RAM2GS_LCMXO256C_impl1_premap_notes.txt create mode 100644 CPLD/LCMXO256C/impl1/synlog/report/RAM2GS_LCMXO256C_impl1_premap_warnings.txt create mode 100644 CPLD/LCMXO256C/impl1/synlog/report/metrics.db create mode 100644 CPLD/LCMXO256C/impl1/synlog/syntax_constraint_check.rpt.rptmap create mode 100644 CPLD/LCMXO256C/impl1/syntmp/RAM2GS_LCMXO256C_impl1.plg create mode 100644 CPLD/LCMXO256C/impl1/syntmp/RAM2GS_LCMXO256C_impl1_multi_srs_gen_srr.htm create mode 100644 CPLD/LCMXO256C/impl1/syntmp/RAM2GS_LCMXO256C_impl1_multi_srs_gen_toc.htm create mode 100644 CPLD/LCMXO256C/impl1/syntmp/RAM2GS_LCMXO256C_impl1_srr.htm create mode 100644 CPLD/LCMXO256C/impl1/syntmp/RAM2GS_LCMXO256C_impl1_toc.htm create mode 100644 CPLD/LCMXO256C/impl1/syntmp/closed.png create mode 100644 CPLD/LCMXO256C/impl1/syntmp/cmdrec_compiler.log create mode 100644 CPLD/LCMXO256C/impl1/syntmp/cmdrec_fpga_mapper.log create mode 100644 CPLD/LCMXO256C/impl1/syntmp/cmdrec_multi_srs_gen.log create mode 100644 CPLD/LCMXO256C/impl1/syntmp/cmdrec_premap.log create mode 100644 CPLD/LCMXO256C/impl1/syntmp/open.png create mode 100644 CPLD/LCMXO256C/impl1/syntmp/statusReport.html create mode 100644 CPLD/LCMXO256C/impl1/synwork/.cckTransfer create mode 100644 CPLD/LCMXO256C/impl1/synwork/RAM2GS_LCMXO256C_impl1_comp.fdep create mode 100644 CPLD/LCMXO256C/impl1/synwork/RAM2GS_LCMXO256C_impl1_comp.rt.csv create mode 100644 CPLD/LCMXO256C/impl1/synwork/RAM2GS_LCMXO256C_impl1_comp.srs create mode 100644 CPLD/LCMXO256C/impl1/synwork/RAM2GS_LCMXO256C_impl1_m.srm create mode 100644 CPLD/LCMXO256C/impl1/synwork/RAM2GS_LCMXO256C_impl1_m_srm/1.srm create mode 100644 CPLD/LCMXO256C/impl1/synwork/RAM2GS_LCMXO256C_impl1_m_srm/fileinfo.srm create mode 100644 CPLD/LCMXO256C/impl1/synwork/RAM2GS_LCMXO256C_impl1_mult.gcr create mode 100644 CPLD/LCMXO256C/impl1/synwork/RAM2GS_LCMXO256C_impl1_mult.srs create mode 100644 CPLD/LCMXO256C/impl1/synwork/RAM2GS_LCMXO256C_impl1_mult_srs/fileinfo.srs create mode 100644 CPLD/LCMXO256C/impl1/synwork/RAM2GS_LCMXO256C_impl1_mult_srs/skeleton.srs create mode 100644 CPLD/LCMXO256C/impl1/synwork/RAM2GS_LCMXO256C_impl1_prem.fse create mode 100644 CPLD/LCMXO256C/impl1/synwork/RAM2GS_LCMXO256C_impl1_prem.srd create mode 100644 CPLD/LCMXO256C/impl1/synwork/RAM2GS_LCMXO256C_impl1_prem.srm create mode 100644 CPLD/LCMXO256C/impl1/synwork/RAM2GS_LCMXO256C_impl1_prem_srm/fileinfo.srm create mode 100644 CPLD/LCMXO256C/impl1/synwork/RAM2GS_LCMXO256C_impl1_prem_srm/skeleton.srm create mode 100644 CPLD/LCMXO256C/impl1/synwork/_mh_info create mode 100644 CPLD/LCMXO256C/impl1/synwork/incr_compile.rpt create mode 100644 CPLD/LCMXO256C/impl1/synwork/layer0.fdep create mode 100644 CPLD/LCMXO256C/impl1/synwork/layer0.fdepxmr create mode 100644 CPLD/LCMXO256C/impl1/synwork/layer0.rt.csv create mode 100644 CPLD/LCMXO256C/impl1/synwork/layer0.srs create mode 100644 CPLD/LCMXO256C/impl1/synwork/layer0.tlg create mode 100644 CPLD/LCMXO256C/impl1/synwork/layer0.tlg.db create mode 100644 CPLD/LCMXO256C/impl1/synwork/modulechange.db create mode 100644 CPLD/LCMXO256C/impl1/version.log create mode 100644 CPLD/LCMXO640C/.spread_sheet.ini create mode 100644 CPLD/LCMXO640C/.spreadsheet_view.ini create mode 100644 CPLD/LCMXO640C/RAM2GS_LCMXO640C.ccl rename CPLD/{LCMXO2-1200HC/RAM2GS_LCMXO2_1200HC_tcl.html => LCMXO640C/RAM2GS_LCMXO640C_tcl.html} (85%) delete mode 100644 CPLD/LCMXO640C/RAM2GS_LCMXO640C_tcr.dir/pn230815052239.tcr rename CPLD/LCMXO640C/RAM2GS_LCMXO640C_tcr.dir/{pn230815052236.tcr => pn230816033104.tcr} (72%) delete mode 100644 CPLD/LCMXO640C/impl1/.vdbs/RAM2GS_LCMXO640C_impl1_map.vdb delete mode 100644 CPLD/LCMXO640C/impl1/.vdbs/RAM2GS_rtl.vdb delete mode 100644 CPLD/LCMXO640C/impl1/.vdbs/RAM2GS_tech.vdb delete mode 100644 CPLD/LCMXO640C/impl1/.vdbs/dbStat.txt create mode 100644 CPLD/LCMXO640C/impl1/IBIS/RAM2GS_LCMXO640C_im~.ibs delete mode 100644 CPLD/LCMXO640C/impl1/RAM2GS_LCMXO640C_impl1.arearep create mode 100644 CPLD/LCMXO640C/impl1/RAM2GS_LCMXO640C_impl1.areasrr create mode 100644 CPLD/LCMXO640C/impl1/RAM2GS_LCMXO640C_impl1.edi create mode 100644 CPLD/LCMXO640C/impl1/RAM2GS_LCMXO640C_impl1.fse create mode 100644 CPLD/LCMXO640C/impl1/RAM2GS_LCMXO640C_impl1.htm delete mode 100644 CPLD/LCMXO640C/impl1/RAM2GS_LCMXO640C_impl1.lpf delete mode 100644 CPLD/LCMXO640C/impl1/RAM2GS_LCMXO640C_impl1.lsedata create mode 100644 CPLD/LCMXO640C/impl1/RAM2GS_LCMXO640C_impl1.ngo create mode 100644 CPLD/LCMXO640C/impl1/RAM2GS_LCMXO640C_impl1.srd create mode 100644 CPLD/LCMXO640C/impl1/RAM2GS_LCMXO640C_impl1.srf create mode 100644 CPLD/LCMXO640C/impl1/RAM2GS_LCMXO640C_impl1.srm create mode 100644 CPLD/LCMXO640C/impl1/RAM2GS_LCMXO640C_impl1.srr create mode 100644 CPLD/LCMXO640C/impl1/RAM2GS_LCMXO640C_impl1.srr.db create mode 100644 CPLD/LCMXO640C/impl1/RAM2GS_LCMXO640C_impl1.srs create mode 100644 CPLD/LCMXO640C/impl1/RAM2GS_LCMXO640C_impl1_cck.rpt create mode 100644 CPLD/LCMXO640C/impl1/RAM2GS_LCMXO640C_impl1_cck.rpt.db delete mode 100644 CPLD/LCMXO640C/impl1/RAM2GS_LCMXO640C_impl1_lattice.synproj create mode 100644 CPLD/LCMXO640C/impl1/RAM2GS_LCMXO640C_impl1_ngd.asd create mode 100644 CPLD/LCMXO640C/impl1/RAM2GS_LCMXO640C_impl1_scck.rpt create mode 100644 CPLD/LCMXO640C/impl1/RAM2GS_LCMXO640C_impl1_scck.rpt.db create mode 100644 CPLD/LCMXO640C/impl1/RAM2GS_LCMXO640C_impl1_synplify.html create mode 100644 CPLD/LCMXO640C/impl1/RAM2GS_LCMXO640C_impl1_synplify.lpf create mode 100644 CPLD/LCMXO640C/impl1/RAM2GS_LCMXO640C_impl1_synplify.tcl create mode 100644 CPLD/LCMXO640C/impl1/RAM2GS_LCMXO640C_impl1_synplify_tmp2.lpf create mode 100644 CPLD/LCMXO640C/impl1/RAM2GS_LCMXO640C_impl1_synplify_tmp4.lpf create mode 100644 CPLD/LCMXO640C/impl1/RAM2GS_LCMXO640C_impl1_synplify_tmp8.lpf create mode 100644 CPLD/LCMXO640C/impl1/RAM2GS_LCMXO640C_impl1_vho.sdf rename CPLD/{LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_mapvho.vho => LCMXO640C/impl1/RAM2GS_LCMXO640C_impl1_vho.vho} (76%) create mode 100644 CPLD/LCMXO640C/impl1/RAM2GS_LCMXO640C_impl1_vo.sdf create mode 100644 CPLD/LCMXO640C/impl1/RAM2GS_LCMXO640C_impl1_vo.vo delete mode 100644 CPLD/LCMXO640C/impl1/RAM2GS_drc.log delete mode 100644 CPLD/LCMXO640C/impl1/RAM2GS_lse.twr delete mode 100644 CPLD/LCMXO640C/impl1/RAM2GS_lse_lsetwr.html delete mode 100644 CPLD/LCMXO640C/impl1/RAM2GS_prim.v create mode 100644 CPLD/LCMXO640C/impl1/backup/RAM2GS_LCMXO640C_impl1.srr create mode 100644 CPLD/LCMXO640C/impl1/dm/layer0.xdm create mode 100644 CPLD/LCMXO640C/impl1/run_options.txt create mode 100644 CPLD/LCMXO640C/impl1/scratchproject.prs create mode 100644 CPLD/LCMXO640C/impl1/stdout.log create mode 100644 CPLD/LCMXO640C/impl1/stdout.log.bak.1 create mode 100644 CPLD/LCMXO640C/impl1/stdout.log.bak.2 create mode 100644 CPLD/LCMXO640C/impl1/stdout.log.bak.3 create mode 100644 CPLD/LCMXO640C/impl1/stdout.log.bak.4 create mode 100644 CPLD/LCMXO640C/impl1/stdout.log.bak.5 create mode 100644 CPLD/LCMXO640C/impl1/synlog.tcl create mode 100644 CPLD/LCMXO640C/impl1/synlog/RAM2GS_LCMXO640C_impl1_comp.rt.csv.rptmap create mode 100644 CPLD/LCMXO640C/impl1/synlog/RAM2GS_LCMXO640C_impl1_compiler.srr create mode 100644 CPLD/LCMXO640C/impl1/synlog/RAM2GS_LCMXO640C_impl1_compiler.srr.db create mode 100644 CPLD/LCMXO640C/impl1/synlog/RAM2GS_LCMXO640C_impl1_compiler.srr.rptmap create mode 100644 CPLD/LCMXO640C/impl1/synlog/RAM2GS_LCMXO640C_impl1_fpga_mapper.srr create mode 100644 CPLD/LCMXO640C/impl1/synlog/RAM2GS_LCMXO640C_impl1_fpga_mapper.srr.db create mode 100644 CPLD/LCMXO640C/impl1/synlog/RAM2GS_LCMXO640C_impl1_fpga_mapper.szr create mode 100644 CPLD/LCMXO640C/impl1/synlog/RAM2GS_LCMXO640C_impl1_multi_srs_gen.srr create mode 100644 CPLD/LCMXO640C/impl1/synlog/RAM2GS_LCMXO640C_impl1_multi_srs_gen.srr.db create mode 100644 CPLD/LCMXO640C/impl1/synlog/RAM2GS_LCMXO640C_impl1_premap.srr create mode 100644 CPLD/LCMXO640C/impl1/synlog/RAM2GS_LCMXO640C_impl1_premap.srr.db create mode 100644 CPLD/LCMXO640C/impl1/synlog/RAM2GS_LCMXO640C_impl1_premap.szr create mode 100644 CPLD/LCMXO640C/impl1/synlog/RAM2GS_LCMXO640C_impl1_premap.xck create mode 100644 CPLD/LCMXO640C/impl1/synlog/incr_compile.rpt.rptmap create mode 100644 CPLD/LCMXO640C/impl1/synlog/layer0.tlg.rptmap create mode 100644 CPLD/LCMXO640C/impl1/synlog/report/RAM2GS_LCMXO640C_impl1_compiler_notes.txt create mode 100644 CPLD/LCMXO640C/impl1/synlog/report/RAM2GS_LCMXO640C_impl1_fpga_mapper_errors.txt create mode 100644 CPLD/LCMXO640C/impl1/synlog/report/RAM2GS_LCMXO640C_impl1_fpga_mapper_notes.txt create mode 100644 CPLD/LCMXO640C/impl1/synlog/report/RAM2GS_LCMXO640C_impl1_fpga_mapper_resourceusage.rpt create mode 100644 CPLD/LCMXO640C/impl1/synlog/report/RAM2GS_LCMXO640C_impl1_fpga_mapper_warnings.txt create mode 100644 CPLD/LCMXO640C/impl1/synlog/report/RAM2GS_LCMXO640C_impl1_premap_combined_clk.rpt create mode 100644 CPLD/LCMXO640C/impl1/synlog/report/RAM2GS_LCMXO640C_impl1_premap_errors.txt create mode 100644 CPLD/LCMXO640C/impl1/synlog/report/RAM2GS_LCMXO640C_impl1_premap_notes.txt create mode 100644 CPLD/LCMXO640C/impl1/synlog/report/RAM2GS_LCMXO640C_impl1_premap_warnings.txt create mode 100644 CPLD/LCMXO640C/impl1/synlog/report/metrics.db create mode 100644 CPLD/LCMXO640C/impl1/synlog/syntax_constraint_check.rpt.rptmap delete mode 100644 CPLD/LCMXO640C/impl1/synthesis.log delete mode 100644 CPLD/LCMXO640C/impl1/synthesis_lse.html create mode 100644 CPLD/LCMXO640C/impl1/syntmp/RAM2GS_LCMXO640C_impl1.plg create mode 100644 CPLD/LCMXO640C/impl1/syntmp/RAM2GS_LCMXO640C_impl1_srr.htm create mode 100644 CPLD/LCMXO640C/impl1/syntmp/RAM2GS_LCMXO640C_impl1_toc.htm create mode 100644 CPLD/LCMXO640C/impl1/syntmp/closed.png create mode 100644 CPLD/LCMXO640C/impl1/syntmp/cmdrec_compiler.log create mode 100644 CPLD/LCMXO640C/impl1/syntmp/cmdrec_fpga_mapper.log create mode 100644 CPLD/LCMXO640C/impl1/syntmp/cmdrec_multi_srs_gen.log create mode 100644 CPLD/LCMXO640C/impl1/syntmp/cmdrec_premap.log create mode 100644 CPLD/LCMXO640C/impl1/syntmp/open.png create mode 100644 CPLD/LCMXO640C/impl1/syntmp/statusReport.html create mode 100644 CPLD/LCMXO640C/impl1/synwork/.cckTransfer create mode 100644 CPLD/LCMXO640C/impl1/synwork/RAM2GS_LCMXO640C_impl1_comp.fdep create mode 100644 CPLD/LCMXO640C/impl1/synwork/RAM2GS_LCMXO640C_impl1_comp.rt.csv create mode 100644 CPLD/LCMXO640C/impl1/synwork/RAM2GS_LCMXO640C_impl1_comp.srs create mode 100644 CPLD/LCMXO640C/impl1/synwork/RAM2GS_LCMXO640C_impl1_m.srm create mode 100644 CPLD/LCMXO640C/impl1/synwork/RAM2GS_LCMXO640C_impl1_m_srm/1.srm create mode 100644 CPLD/LCMXO640C/impl1/synwork/RAM2GS_LCMXO640C_impl1_m_srm/fileinfo.srm create mode 100644 CPLD/LCMXO640C/impl1/synwork/RAM2GS_LCMXO640C_impl1_mult.gcr create mode 100644 CPLD/LCMXO640C/impl1/synwork/RAM2GS_LCMXO640C_impl1_mult.srs create mode 100644 CPLD/LCMXO640C/impl1/synwork/RAM2GS_LCMXO640C_impl1_mult_srs/fileinfo.srs create mode 100644 CPLD/LCMXO640C/impl1/synwork/RAM2GS_LCMXO640C_impl1_mult_srs/skeleton.srs create mode 100644 CPLD/LCMXO640C/impl1/synwork/RAM2GS_LCMXO640C_impl1_prem.fse create mode 100644 CPLD/LCMXO640C/impl1/synwork/RAM2GS_LCMXO640C_impl1_prem.srd create mode 100644 CPLD/LCMXO640C/impl1/synwork/RAM2GS_LCMXO640C_impl1_prem.srm create mode 100644 CPLD/LCMXO640C/impl1/synwork/RAM2GS_LCMXO640C_impl1_prem_srm/fileinfo.srm create mode 100644 CPLD/LCMXO640C/impl1/synwork/RAM2GS_LCMXO640C_impl1_prem_srm/skeleton.srm create mode 100644 CPLD/LCMXO640C/impl1/synwork/_mh_info create mode 100644 CPLD/LCMXO640C/impl1/synwork/incr_compile.rpt create mode 100644 CPLD/LCMXO640C/impl1/synwork/layer0.fdep create mode 100644 CPLD/LCMXO640C/impl1/synwork/layer0.fdepxmr create mode 100644 CPLD/LCMXO640C/impl1/synwork/layer0.rt.csv create mode 100644 CPLD/LCMXO640C/impl1/synwork/layer0.srs create mode 100644 CPLD/LCMXO640C/impl1/synwork/layer0.tlg create mode 100644 CPLD/LCMXO640C/impl1/synwork/layer0.tlg.db create mode 100644 CPLD/LCMXO640C/impl1/synwork/modulechange.db create mode 100644 CPLD/LCMXO640C/impl1/version.log delete mode 100644 CPLD/LCMXO640C/impl1/xxx_lse_cp_file_list delete mode 100644 CPLD/LCMXO640C/impl1/xxx_lse_sign_file create mode 100644 CPLD/MAXV/RAM2GS.qws delete mode 100644 CPLD/MAXV/db/RAM2GS.acvq.rdb delete mode 100644 CPLD/MAXV/db/RAM2GS.sta_cmp.4_slow.tdb create mode 100644 CPLD/MAXV/db/RAM2GS.sta_cmp.5_slow.tdb delete mode 100644 CPLD/MAXV/db/RAM2GS.tmw_info create mode 100644 CPLD/RAM2GS-MAX.sdc create mode 100644 CPLD/RAM2GS.sdc create mode 100644 Hardware/LCMXO2/#auto_saved_files# create mode 100644 Hardware/LCMXO2/RAM2GS-rescue.kicad_sym create mode 100644 Hardware/LCMXO2/~RAM2GS.sch.lck create mode 100644 Hardware/LCMXO2/~_autosave-RAM2GS.kicad_pcb.lck diff --git a/CPLD/LCMXO2-1200HC/.run_manager.ini b/CPLD/LCMXO2-1200HC/.run_manager.ini deleted file mode 100644 index 8c0aa7b..0000000 --- a/CPLD/LCMXO2-1200HC/.run_manager.ini +++ /dev/null @@ -1,9 +0,0 @@ -[Runmanager] -Geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x1\x1c\0\0\0\xd8\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\0\0) -windowState=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\x1\0\0\0\0\0\0\0\x1\xff\xff\xff\xff\x3\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0) -headerState=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\x1\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x16\0\xe0?\0\0\0\t\0\0\0\x10\0\0\0\x64\0\0\0\xf\0\0\0\x64\0\0\0\xe\0\0\0\x64\0\0\0\r\0\0\0\x64\0\0\0\x15\0\0\0\x64\0\0\0\x14\0\0\0\x64\0\0\0\x13\0\0\0\x64\0\0\0\x12\0\0\0\x64\0\0\0\x11\0\0\0\x64\0\0\x4\xd3\0\0\0\x16\x1\x1\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x3\0\0\0#\0\0\0\x1\0\0\0\x2\0\0\x4\xb0\0\0\0\f\0\0\0\0\0\0\0\0\0\0\0\t\0\0\0\0) - -[impl1%3CStrategy1%3E] -isChecked=false -isHidden=false -isExpanded=false diff --git a/CPLD/LCMXO2-1200HC/.setting.ini b/CPLD/LCMXO2-1200HC/.setting.ini deleted file mode 100644 index 39eb32a..0000000 --- a/CPLD/LCMXO2-1200HC/.setting.ini +++ /dev/null @@ -1,4 +0,0 @@ -[General] -PAR.auto_tasks=PARTrace, IOTiming -Map.auto_tasks=MapTrace, MapVerilogSimFile, MapVHDLSimFile -Export.auto_tasks=Jedecgen diff --git a/CPLD/LCMXO2-1200HC/RAM2GS_LCMXO2_1200HC.ldf b/CPLD/LCMXO2-1200HC/RAM2GS_LCMXO2_1200HC.ldf deleted file mode 100644 index fddf68b..0000000 --- a/CPLD/LCMXO2-1200HC/RAM2GS_LCMXO2_1200HC.ldf +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/CPLD/LCMXO2-1200HC/RAM2GS_LCMXO2_1200HC.lpf b/CPLD/LCMXO2-1200HC/RAM2GS_LCMXO2_1200HC.lpf deleted file mode 100644 index 63de512..0000000 --- a/CPLD/LCMXO2-1200HC/RAM2GS_LCMXO2_1200HC.lpf +++ /dev/null @@ -1,68 +0,0 @@ -BLOCK RESETPATHS ; -BLOCK ASYNCPATHS ; -LOCATE COMP "CROW[0]" SITE "10" ; -LOCATE COMP "CROW[1]" SITE "16" ; -LOCATE COMP "PHI2" SITE "8" ; -LOCATE COMP "RCLK" SITE "62" ; -LOCATE COMP "nCCAS" SITE "9" ; -LOCATE COMP "nCRAS" SITE "17" ; -LOCATE COMP "Din[0]" SITE "3" ; -LOCATE COMP "Din[6]" SITE "2" ; -LOCATE COMP "Din[7]" SITE "1" ; -LOCATE COMP "Din[4]" SITE "99" ; -LOCATE COMP "Din[5]" SITE "98" ; -LOCATE COMP "Din[3]" SITE "97" ; -LOCATE COMP "Din[1]" SITE "96" ; -LOCATE COMP "Din[2]" SITE "88" ; -LOCATE COMP "MAin[0]" SITE "14" ; -LOCATE COMP "MAin[1]" SITE "12" ; -LOCATE COMP "MAin[2]" SITE "13" ; -LOCATE COMP "MAin[3]" SITE "21" ; -LOCATE COMP "MAin[4]" SITE "20" ; -LOCATE COMP "MAin[5]" SITE "19" ; -LOCATE COMP "MAin[6]" SITE "24" ; -LOCATE COMP "MAin[7]" SITE "18" ; -LOCATE COMP "MAin[8]" SITE "25" ; -LOCATE COMP "MAin[9]" SITE "32" ; -LOCATE COMP "UFMSDO" SITE "27" ; -LOCATE COMP "nFWE" SITE "28" ; -LOCATE COMP "Dout[0]" SITE "76" ; -LOCATE COMP "Dout[1]" SITE "86" ; -LOCATE COMP "Dout[2]" SITE "87" ; -LOCATE COMP "Dout[3]" SITE "85" ; -LOCATE COMP "Dout[4]" SITE "83" ; -LOCATE COMP "Dout[5]" SITE "84" ; -LOCATE COMP "Dout[6]" SITE "78" ; -LOCATE COMP "Dout[7]" SITE "82" ; -LOCATE COMP "LED" SITE "34" ; -LOCATE COMP "RA[0]" SITE "66" ; -LOCATE COMP "RA[1]" SITE "67" ; -LOCATE COMP "RA[2]" SITE "69" ; -LOCATE COMP "RA[3]" SITE "71" ; -LOCATE COMP "RA[4]" SITE "74" ; -LOCATE COMP "RA[5]" SITE "70" ; -LOCATE COMP "RA[6]" SITE "68" ; -LOCATE COMP "RA[7]" SITE "75" ; -LOCATE COMP "RA[8]" SITE "65" ; -LOCATE COMP "RA[9]" SITE "63" ; -LOCATE COMP "RA[10]" SITE "64" ; -LOCATE COMP "RA[11]" SITE "59" ; -LOCATE COMP "RBA[0]" SITE "58" ; -LOCATE COMP "RBA[1]" SITE "60" ; -LOCATE COMP "RCKE" SITE "53" ; -LOCATE COMP "RDQMH" SITE "51" ; -LOCATE COMP "RDQML" SITE "48" ; -LOCATE COMP "UFMCLK" SITE "29" ; -LOCATE COMP "UFMSDI" SITE "30" ; -LOCATE COMP "nRCAS" SITE "52" ; -LOCATE COMP "nRCS" SITE "57" ; -LOCATE COMP "nRRAS" SITE "54" ; -LOCATE COMP "nRWE" SITE "49" ; -LOCATE COMP "RD[0]" SITE "36" ; -LOCATE COMP "RD[1]" SITE "37" ; -LOCATE COMP "RD[2]" SITE "38" ; -LOCATE COMP "RD[3]" SITE "39" ; -LOCATE COMP "RD[4]" SITE "40" ; -LOCATE COMP "RD[5]" SITE "41" ; -LOCATE COMP "RD[6]" SITE "42" ; -LOCATE COMP "RD[7]" SITE "43" ; diff --git a/CPLD/LCMXO2-1200HC/RAM2GS_LCMXO2_1200HC1.sty b/CPLD/LCMXO2-1200HC/RAM2GS_LCMXO2_1200HC1.sty deleted file mode 100644 index 7292d5f..0000000 --- a/CPLD/LCMXO2-1200HC/RAM2GS_LCMXO2_1200HC1.sty +++ /dev/null @@ -1,205 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/CPLD/LCMXO2-1200HC/RAM2GS_LCMXO2_1200HC_tcr.dir/pn230815050136.tcr b/CPLD/LCMXO2-1200HC/RAM2GS_LCMXO2_1200HC_tcr.dir/pn230815050136.tcr deleted file mode 100644 index 857aaf4..0000000 --- a/CPLD/LCMXO2-1200HC/RAM2GS_LCMXO2_1200HC_tcr.dir/pn230815050136.tcr +++ /dev/null @@ -1,5 +0,0 @@ -#Start recording tcl command: 8/15/2023 05:01:06 -#Project Location: D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC; Project name: RAM2GS_LCMXO2_1200HC -prj_project open "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/RAM2GS_LCMXO2_1200HC.ldf" -prj_run Export -impl impl1 -forceAll -#Stop recording: 8/15/2023 05:01:36 diff --git a/CPLD/LCMXO2-1200HC/RAM2GS_LCMXO2_1200HC_tcr.dir/pn230815052235.tcr b/CPLD/LCMXO2-1200HC/RAM2GS_LCMXO2_1200HC_tcr.dir/pn230815052235.tcr deleted file mode 100644 index 6049d67..0000000 --- a/CPLD/LCMXO2-1200HC/RAM2GS_LCMXO2_1200HC_tcr.dir/pn230815052235.tcr +++ /dev/null @@ -1,5 +0,0 @@ -#Start recording tcl command: 8/15/2023 05:22:04 -#Project Location: D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC; Project name: RAM2GS_LCMXO2_1200HC -prj_project open "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/RAM2GS_LCMXO2_1200HC.ldf" -prj_run Export -impl impl1 -#Stop recording: 8/15/2023 05:22:35 diff --git a/CPLD/LCMXO2-1200HC/impl1/.build_status b/CPLD/LCMXO2-1200HC/impl1/.build_status deleted file mode 100644 index e131fe6..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/.build_status +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/CPLD/LCMXO2-1200HC/impl1/.vdbs/RAM2GS_LCMXO2_1200HC_impl1_map.vdb b/CPLD/LCMXO2-1200HC/impl1/.vdbs/RAM2GS_LCMXO2_1200HC_impl1_map.vdb deleted file mode 100644 index 20f45e5fc7c0eb948a503d13876a1f05c8109b05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 70832 zcmeIbd3a>kbszWuR22&7t}38`W}{ndbS+@33Yf78G}|GiF0m-7Ws#P|#50p+vN0kZ zOOzaEcj7D-#kNT&CiUTKLIKcXw`u`c%Rf+qw!t>(*(cjfmRYmSWZ##WWG2f@X5##Q zcRlx3fu9XjC;21wN8NkQJ@1}-&pr2?bMJfazN=roGL=n|ZzuRQ{>G19nM(cqr~cwg z6BCbInN5A}#TQ;8K55J+gCukGR{QPELz4hI*OI?)^qas<%+xP0UYV;uI$!67KqMh% zBER$Y=Do(zH519y`3v*RPNbgw;t#x>{_$7dcsGrHnz9kI=FkVB^eJPW9HNI zix)3nxV(5=19D0F@&d{glSu&A1hBZUFn2|jOeCq@-FsVxYI1AWV&B@icVP2J2ls7$ z^5}uVPVQ`*9C~`eW=HmP(lfYkS*Z&kl5Au9=s@;7K*YVCnqR+sT#u)c^b_Y6uC1G< zWPkeh?t`P9fGTF2OoNQY0Og3+u zCQUXsZLa0$T8^&e=vtO;s<^mdE}1I0>}2z8SC7q2o%{GDOF8GWOB+vF?D=_>4VCbh zFp5))^Oi%Z^)q+0MocD?tviYXbKkMKro%NYF4gqcqzji9=5)g*lT>SW^Ig-(bWs*G zML}5>v_(Nl7Ib|gUfbY)I`2F>#+$-@3hfcwDC^lNr^RYggvx zO)I8hqXnq2O0AbKUYZXXpQ(qqn04mfTX(jPXFib_f}tKRUt5oQC^0dc)V&8s$Mz8N zXYmjV8tPDp5;Md?IRX)Yj1CZH8xIaQA4DD_K*bfOuWig-JJw?$!uZzRZB>C89XlM^ z#?g0nL%kP>n9J1q;|s^Bz}aL9(l*tnz)pF@&<&)vP`M#FQ@pUW4joyTTe4T3DGZ@f zyPG>&=on?hS^oN&3zx6p@{I-Uxh9iLYwyq&E9hMh%`7ZlnETk=wK+?ieXs+!efZvO z)fzu5&Ndz#?L4@*vn^#ZgpB1feQkZ|+Vax;ak4p+WLwR9TddmjetKnjkr!ETEd*;J zxEg}h5Uhk?DFn+QSPa2J0IJqtlFroUHqI@DYArEw|5KZXw|9=~eB-OEHnZ1gZ8mJc zk=YNRP5=!8s24!}0O|%%JAj%2)C!=zMl)!OggQalAb@%S)DNI;0JQ_C89*%wP1lO` z!a{w{D#B_ARzt87f~62FhhQ-T3jxUS*bT-*Ko}1JVLSwc@emNkLqHf00bx7@gz*p% z#=}FDK{1qp1R(pw$e`(40iBc(^gxtB4+I1~5D@f0K+ppL zK@S83JrEG|z(dm*ou|%uJt%}A+8vfkFkL)9udfWvZMtv_zPN7av7${E1aPKUU#?$U zT3_05Ejd#dLZ$BP7|lUgedmtLr!OsCG1npRxpc_`)5Ry&pR~Q3Oq9|;?ntMp^a7;P z3y?}LKq|cesq_M*(hHDE??Ed4cU*I6gaibo7Z8+QKu~%CLFokqr56yCUO-TK0YT|K zq?Fz_jWQ?-kV-E=D!l-y^a7;P3y?}LKq|clsr0@TRC)nH=>-I(7Z8+QKu~%CLFokq zr56yCUO-TK4>2lf+&*$6;{DILA^#&WL;mOXFVg>LcaKm)`5y-<|KlL#e;lOzkAsx| zagg#q4pRQdLCXI)NckTJDgWaj48dl@LCXI)NckTJDgWaj<$oNc{Evf_|8bD=KMqp< z$3n*coD2Pr1GWEgp!Pow)c(hT+W$CE`yU5t|6@Vze{3r_9=lQo5>o!hQ7ZrAAmx7? zr2LPAl>c#%@;?qz{>MVb|JbIfskl&gp!Pow)c(hT+W$CE`yU5t|KmXIe=Ml|k8K5~ zVju$vDgWarmH%;&@;?qz{>MSe|2Rnb9|tM_VzY}2N-|8XEp2>g!&3jwJ7k18AC ze@5Zye{5aK|5!lyABXb($D-(ebi1|xv3ccxG?DQ?7BK$DfegAHH%)*$(*DPlYX9Rv z?SCAo{f`5+|8b!9KMvIX$Aa4b*yd8{zvDWRQU1r3DgWaj<$oNc{Evf_|8bD=KMqp< z$3e>fSjhMv+ce{U9H{+|1GWEgp!Pow)c(hT+W$CE`yUHx|6^N0r4M8vA?1G@rSd-x zQvSz5%Ktb>`5y-<|KlL#e=KDEkA=Pesjfc}E$by_$p7??e){Ox_0JD;6Mm*z;_~yU zNA2e3OeIE?VnjJc6k|joMy!-0E^9HO79&<;L^VcKVniuMlw(9OMigSiN-=I}jHtzk z)fiEY5tSHGiV@`)QH&9V2$9{}e6YFu?%R5=8Cxm)5!{L3K?L_AxF5mY2yRDkGlE+Y z+-V-}?r!?_4I;P~!TkvCMsPcVn-Sa!;pr9Z!OS_mo?Z*VS_rO&U^N6QAy^8*atIbf zun>S)wotz|>WdreCbofd8A6qZQKey2Wf)Z*My(E`YQw0tVbsbH>TIjo;3yw9whr~3 zrHSNha|EtE0@odZ>yNL z!~RHYXC!to5^GFxRIf4G5!RUZ2x}Zcgf%WB!W!oiVsqLH)i<6Jb0??0RfN=DEkbJV z7a_HmjF8%!Mo8^-Bc%4u5mI~c2&uh&h{U{q;@aZI+?5Dj9*r)JMi)k+&)~-E;~R_h zjivP`jVYQgE`879x{rej0hnIi@UcJc7r~4<()1Gx8xF{PYy04?3+B>b;)>F^-=%?Y zoy}XVcF;zYZ0IJ2C9F$(`4B&2_J18yB5)UV(V1L>zyis1oNaUgLwW-uvC%{N{QR5) zrk~ijw&Wd_W#r1!%XMr;n>wekMPRZvCNV9-t!BM)vLXY*#3Y`=#3UYJViJ!qF^NZ* zn8YJYOyUtHCh-UplX!%QNj$>DBpzX65|1!3iAR{2#3M{h;t?h$@dy)>c!Y^bJi^2z z9${h8lY0uYCie)lCie)lCie)l zCie)lCie)lCie)lCU*$4CO6Tp)vR|ttk>io)@yPP>ovKD^_twndQI+Oy(agtUXy!R zugN{E*VrD`YitkeHMWQK8r#EqjqPB)#&+G;YitjyHMR%U8ry?vjqO3T#`d6EV|!4o zu|25P*dA1CYzMlq5bIPM$4@3MEDW(WEDW(WEDW(WEDW(WEDW(WEDW(WEDW(WEDW(W zEDW(WEDW(WEDW(WEDW(WEDW(WEDW(WEDW(WEDW(WEDW(WEDW(WEDW(WEDW(WEDW$V zEW}QVU3E<+HY^O0CM*n*CM*n*CM*n*CM*n*CM*n*CM*n*CM*n*CM*n)XIqW8-n+en zTP@hMRWZgS_EtvV+9Pn?5xD*cTyF$!Fap;Zf!iN}+Z)E^u&;jc$#YA%Q)Oc@j12bP zhmqKyA4Xyie;A3i-!Kwu#9<`XlEX->Ifs#JqmWp`4pU;SJB-Adco>Pb^Dq)?>>*_K z_SSX-x0%0bMq0(nc25utyy=TOg+4LJS zkd_MJg&~-pTe>E|EVgf2jrQ(+b2Z^^qvPP2^=tLDdbPNq-wK#aWyp22$)z zZ;O0aULnCFbS67_$G+V%g-7XZd7=Ke%@%#O?6W1Gt@v!!XIFi; z=Cf-)yW+B(XWudGIL}-j^UUQj&s-k!%;ho9Tpshx3~jJ)ftF&tEi*(+C9}pm6HR?u&ER9+BQ@rYBKFzl^ zbnS4sOSqkT9^Bdb=8?TBU0%HADAPp&q`tNNz*42Qc3obvgFvzk5QL6UAYyT_ zSI0?%FJPKJ`}Ya54e$)B7l@(iA)XJZ-U?4vfAn@#y+90AkAe7*>g_Pe>bLH{9kt#g zhN{ON@rP9JcaW{@@!rqnM=x(&k?I)ZVkVh;2X7x7-an2HLUv7H)G70=Z*GHJK|cC9 zQ^!c*?Te6ch#O)IwZQuu$1y&e%oMJ%&U1_NhTBXrMwDYjDMnOcL^Vbf&c$3}L^(#3 zVniiIR3n5PAw-3Eu_Js_*&|{RP2r*4r#0z9;g1k?)FpTjZM}-xB%#%>yk8 zJjB=$`GLsyM7}TbU6F5#d{g9GK0h_LWM520*6L?!b7%X&_8hO99lHF;ws-xc}3$oE8kAo3lN-}iZ?Ny@w4y&Jt&D-c8WuY#d} z>2sH`$Ts>q!#4?+*5^KA&l;HFdxR2^J>0?@`kUXheqiRx5{#(0V*29J#=_j?3#P{4 z4gWLq%TKH?ou7LOtuy6f<(+x^!OoF?MR7ZTb|o}@Aj7iI?$+>79T1a~929l^~AZbfjPJ7$7^ zH-g&{te!0t^sTTQcgJ0Axb4$A5WNH3jNo5Y_V%3z_w1ey_L4Gstku{8(wbnPv{DlbC>1h*O4J;C zdpmlCS0IMw*rW5uzQUWrAqmFjDjVia<5ec3q#1bG3vcp z1Wd;U4WA>MNq0_#IN74DoytTq*>$lVdn9Bqf|x?JDodM-C`xsJ_E6}%@a`fS-}OD^jMEZmz&HO<&X==NxIcO-h! zpC01R8)@6{ZL;ffeV6OG+`#2JF6WQ%@CSFa?Iy=$*X8;y*K@gn%XMrn)jB+~2O^}J zBHtGIuFp@l?8ArRWRteTbzQFSay^$DxLn8P7pihN(>dm=v&`Hs)a zgHFC<=G$c3<+?7{ce$R+4P35cbE*nuFb?81sX)YYbPDVAV8WC~OQF`lVkxUhf&5yC}eh>LrgxqFvK7#t_h%rRXR z@kaLET}XF#_dV0*%+Am5>>TPT5gw6%RtpbgTa9y%Vs9Z3aeJrckM|Z+K}42f^kO9B zPj&HJZ{wXU;Tp0Hff(X??$Yt=$RA>z8G6s#>fD{s!ewyC!l5pJ3(IV6|Fj`f5aJ|P zmR?+X>YQCBOcxdr|9P+&g5?k_g$h8YWC)?SI z+gXU)DG{oj5~12D5vrXMq1q`Cs+|&{+9?pKovvMIXB50<3qot}?c6)s-nwtSMYaR*Z2=D=xEI0w z2<}F3JA#`L+zR2D<)y{-%a7UyLhJ`yM+dS&TN1_zhs#Ts*B65e4vw~h3nZ+1{H^UH z-$RJr3j`yv=)q8s*#kUm(B5v_v-)Q5?Hp|G9tlh~hPPz-M8Yd@&`@wi1aAp=1pDR? zdx25xB~11XcI+L7!Ua1Clf8u__Uhn38+<@cGB%N0@YuNsJ*PkndCrBUV-JCvO~SJZ zG1N;J&dn_^;Tmgl)e%vs-@r3?tYm)Uk|4mG_?aC;5cLNqIqn`jcyH58GaLxUIcTqi zwZDk1{^doFm|j}Osb_{c*1d;^wq~q}%@0QrUA!`XPR3XvCYC_zt^3=zkBhG``4^X$ zF4}FJ^koNlhG*&v8!!+7%NQ3k#Y02)wmyvQG}y9QBiCs#cA#fH+qipo6Hmm5I4MHK zjMEn`%&mV&c%Io(H5#^7rifgZ77(aPsm8dN6A#})@OqqN!(cExsY`~2wh6g9ch#UD z!6{S2*ti+l?R!6c1SLH7v?(0VxyWkCC{$1%!(;!Ds;Ov%s?FEe=a()nEN+~O+cml* zZrj-xFl#&1cUO^9jo zOFhT61@%zP<-GxsZ;O0a_v7(P8IN>fZsFq_W&qQ;yXS$j1WFR9NT4c# zRSDDtFf{JL@se)b9rn0!KRj+8&Yg1H$2pgx6BZF5`x6$!>4gG&*kV{PYOYxsdb<^P zyb-o-|Qj9PMdbvPzCh{-`4i9tS^5YcyF(&N8MClYSc%oq#8w=8!p<|zF zc;w%(9Q#71J&_-Xd`IN}t;>CV{?ZbcoidclA&v;KLvlajZ6hpRk23?ms3?I?5gxgl zf<8_-+c@A+!H7piAUTAL+cbT7ec@vl=8ugKxRP65B8{5Bc%~6StOGswT>a9M=hW@l zP$n@p=AXUu-tF6W;J%NO$z(ENpXQkO9%JgQEh*p~)un6U-YeX5G729vp5fAhAD zC^8?k0;q{XQ6`}Djg{+jUPNmWs7YW|0#ylABv6t-Spr1~6g-eR+CF^VNG`SWt!>-R z)XuvOpI)Ea*m%Pi_g~gGD!Q%C&E^o}M=EE@EC`d5#LFfJFZ|aGK z8T7#*fO-Mc51?)UwF9UbKrI1r0Os{*V4;bjaRA2bj+QvW3P@a!CE5hbV&y%NG}N^? zfKQ$O&pu`HeZJVRWheU6H%i5;E7w=?-_PIrM)Pd*C(A$ewN~!c*S_&e&g8$|{lo2B zKbdQ`-+cY2y05(PYVP&^t=6lrzxhV)>Z^qcUI<%Qte4lX%-5IJFPy0qZ`JFC;%a^U zQoc7{R@I1A$+ODgWizzGG~%?K%JUtMtw!4z!vbDftJGh8^=qbImz8qhltUra!Fap6 z8g;eoyPEHemsKrdRrIWKcr|W}QstX1LaKOaaD-ILQmQS!cr!j-Er6xa)!F@&Ii|RE#)v9H-nG-d-A?rtag7952)SUZdZ5?zv}7uZ*IWq)6N2?Pxjb=)iR} z-yJWfQpBm}IOWQC3v7HMZTAC_c1DS`B1JkFZ%1K^11)X4j^;b#N6Eg#8L|mHdh+!jO4p> zen!r=yiCh@Lvf61+LL_p%~3L46*A55kJoRkMSi2;{YHLoysTD2R9bbS^!AS-fBO46od!r`hiWF*ly!um)^k>!UPrf@|R;7ql zRj_LF#pUsdwT#mkgjfqW8e&*k@mU=GaXd!nnH-K%^s_~6Qow`MN+r6GwYBmIeF$H? z_Qt(XE1(^(x7)XV>g(P0g}K}sUOX35v{JrWyS`E=osil7Kr+j}{N*n|o%r8vbZ_R0 zc(Z+cyqcYWSHJPSh$1z|=1m<(X7LuT`Y0R)JegaOUUO^$-V3~EVO0vaIByz)N$VPt z;n^i#5MzoJcqo7$=WH8c_KQcG+dL9w?7VpBfaf(+LR?a2T$118EB|g5ed2>|^PT9pGP=@!L?GrN34}w{Co=hus#1}ZoVCmx0qib(sOmb@vMgIGN{PQiy|K849J8$nl z@1+kb>!hE`X+cHmSSS~1$*YAE?px*ckXm)j?s0}=Pc4TNhQtgv%71EZJOsqg@#zAL z=f*j!_BdIEBwaDgHXmighS8Mhb$K$VZDi*M&J-gRY?&|QYTF#7@ zlUi?CPBR7LtTxQ>;cyE#e3={$&>o&k)wMD;s8%_lPEy@Ut`F5jyGq)D5K%p^f*P&=9Q_=i>xB@Mg>fd<1WxRrO z*VtkZQr4>*Yac&JAJKci-D-aQgT43n_fFVzy#jOQu?O?mgpl(+9(gooS6GGb6RuDN zx?L4~;_E9nbCqx_s#v{RE?-|c=`K(|*orD>6Huwb_2IRCtHwBg#S1v!(ow&iN6P(o z`tJ;ykaGWI@+}nf`ovD8^8l^;uXy*5;eQAdh$lUHXEfWy1iH7w`+>P?z)yu6gZKOU z?XQ2(MrXSxokl!1$}^nNGGB4(jA%qiyQ^bwBkiYe)QVTj#p~4*T8lzSFAuDs&*)gE zQowzx95y|M#apQ;Pg^{(ec~ZszPH&PmNXRZS?S8gWcCA>KHGuWZ@Dd87N_`JHSCqE-6Cc1G4BqeV zpKQwJn}KOoii92H0=8Ik70Ku68&K9#@%rl834K6+m{Fx(sI3(3at$5!Ld`ez0@6&F zQ}z;jo`Eqo^JQfX+dJ3+lsbIcyR3*I1O4TS$lJimtz1Fwri@KnTEVW$YzNw+pHZ+8 zXwM6GGFKcmX->V3)C?xgnKeurF1t1^f85U8pb_O!jX3qRX-ADvk+@p@nMUl1Mr3mM z&dIQ`Jhl1QQyOLCjF~m8O4LIqXO+vaF4ru4n_YM!EPMz1C)@bM{6CU+`_!%825)Oq%#a8U!e zC_WpMZw1Sr#<&820-h3KH>?cKQSjZyKAb~~vIlF^`L^sl?gL1BGrs0jL&Ia@dNzeO zSnsI@Z^@ZeTYD(Yn#FgoPU-mzT18g5c6LSoYo{=rws4Trbm4$u7Si+zQX)PU71~cN#}VwK_p}2Vr-|@@N5WQv^X% z0ica!)HZHy{C)0(ea1aa*=O83azi|s-w)0DScZ5lH0fD9r6L=!CmN8+4@T@74Epc1 z`tNu9C)KglaM$1wEYiRD?2BsK0H3Obb!p>{&0!8vjhNTt=z1OzqnOlLJT;?wepUsR z)_{&hv2rQ`w$^iY9}B#$T;R1jewYy}1YNaT*QZ@w!DNZv&i2rI{k(6k6vXEySlDaz z)owwrf6|*1-5@|W3y?J|%gyrVEbdh*<^Fc7do#gr5_b{guGG^vilwWy^2zs!`QQhX z#>zdr^I-EWGP6O7lzP7N5Olj1>h^iuYPa@8?+#UXb4W)qcH?g>3WtXTh8~3&XZC6jl8g_#q0Dt<%=^kh(tcG!S z0r%RxT9@qZ#vl-IPd|%o&FZ+uxT+r*w^Mw2#i-Qa;jmkc*sU3M?Z7jidPk)kI%RcZ zw^YYAr@e{5XvF9-qC^)W*tv}R9S(;_Xo9Fk+4p_y2IIy;zxnR{hq#3xO^mYd z<$9^iAiO5`(Z-_P`A)c*rrsHNbp29&eKA)EwpGS4b@Q!oPenbpuelki?+FRx>A{C! zJ&K|AIHR8D*KNr69s)nyf|t(njCu|<=rf+GbXql;?~hmIE1}94ux$6r?raM7Ze0^H zx!Q2x(!pv+Z!Vo;-8Cw3sVT)Sk6*Fdp<=7Y?~G!vj-T5g568TTao&6TBDuEQb`2Z`L28PPTl=1%RPcq^J)iM z11h}hHwHGa?TRt9E&(?q#JF}ILi|yS;txKaYvPanhrn(vV#n7jY`7DcChdPtd!u(X zvQPLnxV2As&hJ*PD#!PfH*fNYO@%6%rBey33G4KGVl?4?g8rUXxo|@w*yX(-ceIQ`ImBF#DQ4Bc%^4qa+D+m-rij!hy#m(%?n!7orQ>9r%I^oSD_9xhZB;(! zgvaDhb{iOvRs}N7;2pxKS`r8`m+)v#CJdz=GDuWmN z*x%;E;fCis0&dte_WeZ|@5VQai1ndJ96MS;3$Txf7Uc9RB+(AaX@#2~s4mzYlnmZV zBd?m=F+A<^9uH5-nPV28xUXXUo!Satk;eDbEOCokOx8AyKSSW{UKlMPZeSB>VPU2R+ z{cz?E7FEIALCi>7fx8LR2kUOFOE|41#(k@R8$w3To)zhTPAkj&Uf_4kGx>M{U(Oz* z#dvqmjcF#|)pOf+`jglZKm7xsg;Mw`8=dZtzxlOuxz)&IRIje!>AdR6d|ZAIm<;u7 z1Ruq|RmZYfJsDA7sq>JK+^Sr1HOAA&JZ^*v>%nbhcF_nK52`yMr*bPYW_2$9w2v}l zH%K%mfYkQ#-E?~|B^i45O?A*%t9uD(r$h=Ss2Ez_TCzQiOSRa?7^)ZjG zFze&~Lts~l*zo`f&Cbk2yfEbEAvTsCLK9Y^CLjbn9Eb-NcBJn{e@e(ACtc!JH2Wmv*K7swmE8KVVvWUt%T;I zayos&^N(T<8GV91j<{;qFvI1C7~H*wBJPz)+_>k!C^6r9C}B5VCkO@?w;WX1T^j4) zc1H~^_FEz`=gMOpTs+)6Jh)g(MO@9`^2Hr7xXp(m?qVcvEY;QEwjT<&a>NZQbv3xF zV;$VVsKLedRwU*e&gk>84R&HqH*@jW`taalSsrmUgIkeqyobPUHDbrJisT~2AAdWU!wo(;tyYUyE5+-D)e~-z z><7=|;Q+&0yrMGyX~L;UR# zzmwQfku&+!{8uCXRr0S6@wcZ6Pv$%0HE)$awj$Mf_{zUmD_X z&rZha5#!~*67gRn|MC!jdtCEmz8M^qa_aFfhNq+yR>;3N#NVC}J(+Khmw!3pU%=xS z*q02)Umi+5neRp|SSj)diP{Md1Spik7R+`U&pq=+JmvnvuAcnz2y8rDHD2bGi1}cM zxj%3lwr9M|s}b|w5OaULHw@2snXg97aY|4mc7K>Stj>6u*COWKA?E(*a+sX)GGB|B zw}+VfgVJGd#>;#qV%{8L?vG{1WB>YC9dqa7=^LkKCBIfoGcv!iB@h5OP z!aIBKw@-LHLZKM)ou+lci8y+Gi{s{D-2%Q(-zb-P_oY@jS#VJ(hm2>mVa0PCmbE+E z9%gO4tVbZV@mj=KJ5JwY`3JEqe7hhI;CPGI+FG)s~x6iY(F0X`!!z1#fY(XmY%WwR0Ry! zco~-?#@bPO#`d!qFkj@ z`?LrQSHu_R_wX>3llmw;F&Zc}!!RBgpbeM%j0x=4NWRsR^2Kp0LwtFRkL7DVnF6yF z@m;B0tyWIn-?dSE!OR$H_jwkWt%xxWwJnuT&UhtcJVVE%xH-<|TQIO&`uqrIw^mA5 zE2Wcj#)Cpq)P^&-8P4v*Gca5c=VFAxR zlf46l2d9P^D`uLp_@WL>SHM|CxtLI;6YePCK&*iEte#N(fREwrzuyDvHIjGbq`Yzb zp_I4ct=Spg{%b)nU?X`~Ps+PGg12U;dAn~D!Gr~z>o@QS@7nbfp5}zJ0fIhfDQ}+9 zrMb$lAi;(OjGw-NfB>6^)f1kziQ}mQ*0Vb3<6VEt+<$WkhHSjd*COUR@RQ8_7oK3u z#>;#qVy=Tf$=rWWim#8$$B9lY_JTf3#J*cPs{=sE+<(0aCT+aTixG1j1WM-qTUoGb z<7HlsnCn1LGWTERf?*pk^HRiI2ZNHi{|*=|+jyB*BIY_El+68C$6(sV%e)#f*Fm9V z?!R#c>o#8Is}XY@7)s{;i)yfNBblG{G+`VW7g{*o^LGypx2=Wq-*1D38!z*&w;SYvwysS$RYkmJmuy&slgjpLe z>q^90-}(`(-M0&2)W*xY8nM<}WrDT)P$Ep)cv-JTto7!kW9`4n2zwTAKJ7OeY7t|- z2E!*HwKel!fP^gz7@zv2^0kqi@x4jS*?n#jhAd#L_P+PuADr;8pTbJWS4GGCw54Hd zzibI37CbLu*fvjm{BroXgknoxnyvVVCQMkw7z;o2cW}amUom8?RzUibotkyyg$dr# zSMQFhoBKH4=m}&V&m>6|={(XT^I0Bnt3UafB(;}-`U&74NBaM!b^0$&`u~~q|2OHs zGU+dvG%?prm~_&lQzp%r^o&W*nlxw9yh-Ow%J#7x=S;d_(nXU#V$usHT{7uKlU_3E zM@;&tNiUmp*`!xYS~TfnCas#ZX3{m2ewRrpN4D?dCcRtHlP_V`m(23*CVgBaApWMV;g38^NZH3_r0ipo<~LpR=YLTftELD^MiEw!T2{QQ z2$+}ga*F1=kx~?oA*Cpo+NLnQ0=R^f^_7vXAf+hSWOkYK-($*|CIuYzyh`Wv%o3w6y_$cC|EHi#)3R7T1M5w;EEnA8BX0cq@hM)EL%9=}^qPsECvoQ3^^k((2P1fcRUWP&pwe z3|_|3EEt%IMLervN+C0)aGA1N%7LTG>sCy9)ujIcQnsDKX1PtT1Lk$MZxlM^#FTWO zM4Fu8^N(R4C#k_~%tuX{q^r0YZsn!K$u^Ovk`qp)<0Nq3kTxQx5>PyvhL44WG-Sgv zvQab{eX<=u{-!8uDk9rV88KC&J^PjC@$}VaaboY`_VYmUry5O-VQoy46c7Jn5q?vY zKe3z*OxbqMwj|9DK-x(;NtT=}99>mB!#RSpdCgas&Ge>8Bp;@%ks7P`Z6oDR8Ejk1 zR8M}Z=E|-RO>LnaE+XaRCf|=Ka`jzGK>VrJlZ?`2anYp7EN_h7Q{QC(ia#X>Y8Kna zl&->ka~r6afch=K(*&kWnl|aQNwX%MF)8aI{duHpGDSrAmzlI~(odN5X_Gcg`V7(} z_1T6S4<#Sg`Xv zrPPy5tFeibWs&1g$(i+$PL<O*F)L$-MR#F~>d$A29J--VPGj42H(Q(nlFR-SW|ceIe>Pf3sE zY{W|}$A=vv>#0l#LmpakdK7kqR+Iz7&?iZCntQHBswqXuCNqWiAK7H(44(u6o5t#x zstacQsl`C?m!k~r_)sT`fSGb!=pzX;B}`pmN)y49%E)QSlrT*NVWxy>G6*w;zZSE7 zhHN=qIaEwZ_6W!*0S1GdOPu|jL!AA@bM}*tv!AdwA~?b%G$O2y#WrO%gl#pvoYm{g zYq6C`P)sYq%af^!Hv|+vkrcl!Ecrre36WQA;f(t#7cl(IvCC&rc@ZfG`!OPsa&|JM z#29BYT{PtsNf9s=jG~}uC<3Oup5X-X>?5yZADPm{vX2ZKiY7%^g~R`s^>;mh<4^f# zPD2v2GHM=&JIU$;tOkMhk)miQlLF5UUiM%A1D-!Mv*?5OO2|?4p3@}c%Cl~hj2F;{kdNiZ3OJtEkW#!%Ij%NU=iI&4ja#o+<2|2!1QT5RS$CE|W z1Vxfw!6~P9Zz%&ZOUGQWeNRa(wg}m-9FI68^}I zTtAOAQLQ%5Nsxf8rq3tAmq?&QANqPaT9*H2mZw*7e?E{3Ek32fG)W=AJ4DK#s+?F} z{A*ZxmR}>kXFldd68w~8=_ObP(y8r zln-DjN7gQ6xEYYBNS8N4kmpYc>PJyRFTt27QIRMf_hc!4sue6?Uw)M$s0348ndm== z0xEwBDV1;rDW^USD%)`0;HhOrz)Z=JDd}to%c;)pDy5w+1&q{e_%U;V)qYmY3m!A+ zN0D+?*ov7}0n=+TRdLILiwlRn7mX_~`YxpGMKV)~Eel0cLJ|3@aho>ZW(CZja&L6= zBw!ts2qgiRQY<+OmEsVxnC-O!V}B?}T8U(?kB^d2YwTB8f#XkU4zHl*Fiob*!=m~c z3fKZxNkc%?snK(~eR!3;~I!h>A$n7|eCrjc32`sb`*l7LHkLZK{dO8Ym|U zpD6=$rZtl?3L(tUg(*2PWi-N6ahTb76GJTYdMXmL9{RwlpRPF(WE+F=hfnr zo2tBuDf{*mt}2=|N$m@2nk7=PZlkj>Bn|5O;SBEe&oafc}%1nZB8DhNopXdIohP==rW~*9tTws>8D7YuEfJR z2{eb3=m?>|g>kt7FRQIaCw}O%YQL46EhJf+-hY*m4n3(G-V-#YLnfCwIch z9Nu0Vr6Wq4NI{)AOUhJJ$ep9a8yjTDl+By_loOlD6y`<_6IE~(Xh!}lX3Eh{Fd<>2 zF(Z-ZPqmm7oRD87MP@J9h@#$Dec&EJg7*)Ct+4bjdF=psnThLe(mWK(5~QFBwo zKx`w+$@xD;noQS%nUH10zt2>}nNS4GnZT67B|~cbV@RJsN`_2{S2JL`I9%Z?ASi;s zR%l0y7ZPtPuqj)}sYU09DJ4gf9UvKXmNPNQ><6NwZd=hQ0c7_>(M_?3ztu3XqSK<< z9}*Su6xFX)oH_v~4ibZ8N`f0UNwyPmN|DoVLkS1RZvQc*taxRT=?rmXIXV71RXzwf zvTv575>0k6g5z(;mE=eYjt)}_Q*#^)ab!6;{(7WIrWbHzA8C--M>V>5Nn%(Le+MXN z+N_sjq`^M&O14B@iJD_YB%Yjq1JWeZ4>+^0mUDyU*?!1bN%wc6gnc7r5h?pZj_L~3 z7;_|^9DgIyB&|NAjtqawU7t18lN|BUBq|^-dOyuQcy&uFfq#`?}NdX^b z9&z_nu^|DwWmB@H;L0Xt^%OSuS>YGu?hh?HZ2^m?k#fj%gvEyt?wRkD0?D7U-ix4O ztC-R(`{$=gL7ig>rT9an$h3oTV>w5IQqkkq4#!QI<=<^6I2%aG*+7BYan$37!|H`u zW>4(+{U*>S8I+1U6V#X$Q=iuD=Fs(4x4+2i@st^NUVO}|!bUqy=zBP%MWmEH@o>ni zR$-Ku+d`&ERz;LJ5DR(!)XhK6Hp*U6Ock8IWoV?o8-*MY3Y21Cyu)#|#+jay<)p(s zQ(@y(Q(0U@2`^(439}jwPf74E$XfJ#C)P(WSzvLSG3w>9p`@$G@RayR5FEMuC?;Yf~SV^k_0W7IRGgrW61q?CYdV?|7hNZC2IN!fxa zZ*bpjblas^KhV9ZbPeZnv`Svp`dRY&+GJ8-}PwY}6@3!pY29R2S1_ z9LgEYolm2f!c@gmWj8a_wOra1QK)8J8gFpB+bU|cJb_}ifGJ0vWQ5g3$@GV`qk(d^ zl>MjOklI7LVYNq;;0NN*6(9it$*TE9MNLlCp2A7!ic5ovmTtDI-^VC~5B3@N%Zu0F8B+MuLN= zj73&|385c&F|J10J4G?q`;gTZDX7UbK-f(6>nC;ZaS~Wc&8F4>v;JgC?2oh4G;wT} zF7zf`sV^nM;n9WO$E!lyTveFHmkzu%soQx|G1DZqC)&u7N`R%FF)botB@~{rxKpcs zHO)4Xh>nygI^YY*hsdiYR11ngkz_hU<4)7ewvjGL z4cZ+yYU~MZ5+f&No6_ZY*l9gjIjst`B988;(X3nXp7gh(*lij^>YI&uJYQ-f%@aMn z;+xu!TE$YfifNJ=1bt$w*(b`MBg}{~)^*M#Hd~da_C)REZKDiTdyZdZT(;jxM=5{G z_MAs095<%PLg~Y|fjDib(~9^k&VqNloWA`MsdiNQm?>onvmEO*-9H;*bXvMAPB|M~m(YRf|0Tp7cgZ7D<-B#9jduM;?fQbb$vg40X*k9o0@cmYr1lg;P#sxPHS33KwFeG@^gTBf212~{x2-CvNFTO{s=Y@|Cg3n znVex_e`Fen|0_$Z?9VWDXF>8~42Y7bxn>7TZwzkW2SJu(TTf5wvjhS8+|6oa97+tG9NC>3=qb2=Kqe<=2KOp^|Ea?|VliI_2K>9yh(icg(7;Be*K6v7P zv6L^3r1XzDPyDZz@&`s!nj>t${m)s--#oIR;z_NEKW|BY@EB6}^wY#&u%uraNh-D< zC;p-({qjgsu@O1(mn`YaBpsSt@=1Y-|IN~VWhAYW8X@$Vc>>`#XP@!z(@ziTwHKg|Ke zf5#I4?$N~l^aT+AT}%8Uqlx`#2_XJ^miYIKCibTrfcWoQVy?$V47Wdx0L1^m68|WP zhcx+v&il{bG>;li{6kCo`$p3a1nobvw7-8et$RNoZTLSd?H?FT>t3h_?f+?M|KMm^ z_Xa#@|FNb0vC*{dm37em6HEKG(X{RzbI|@@miCp=wC<&F(Ei_+_Uoh_vj5`6u8DtY zNxA44Me3Fm6aUPTa#=Av_x*#l6aU;&{`g2r|D4;zzp#`)LCPUbkPD89|HsmD(V>2g Kt6#k`^{)ZQi3nf- diff --git a/CPLD/LCMXO2-1200HC/impl1/.vdbs/RAM2GS_rtl.vdb b/CPLD/LCMXO2-1200HC/impl1/.vdbs/RAM2GS_rtl.vdb deleted file mode 100644 index 9ab377714d48e85a637b9df876f6c73e4d2a3c5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74348 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�pQ)D@#sbyogKou(tz1)e^>Od9ijVx#E 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

BMAF5_5tNnre1! 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 diff --git a/CPLD/LCMXO2-1200HC/impl1/.vdbs/dbStat.txt b/CPLD/LCMXO2-1200HC/impl1/.vdbs/dbStat.txt deleted file mode 100644 index 0a575a4..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/.vdbs/dbStat.txt +++ /dev/null @@ -1 +0,0 @@ -RAM2GS_rtl.vdb diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.alt b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.alt deleted file mode 100644 index 96d3739..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.alt +++ /dev/null @@ -1,75 +0,0 @@ -NOTE Copyright (C), 1992-2010, Lattice Semiconductor Corporation * -NOTE All Rights Reserved * -NOTE DATE CREATED: Tue Aug 15 05:22:21 2023 * -NOTE DESIGN NAME: RAM2GS * -NOTE DEVICE NAME: LCMXO2-1200HC-4TQFP100 * -NOTE PIN ASSIGNMENTS * -NOTE PINS RD[7] : 43 : inout * -NOTE PINS RD[6] : 42 : inout * -NOTE PINS RD[5] : 41 : inout * -NOTE PINS RD[4] : 40 : inout * -NOTE PINS RD[3] : 39 : inout * -NOTE PINS RD[2] : 38 : inout * -NOTE PINS RD[1] : 37 : inout * -NOTE PINS RD[0] : 36 : inout * -NOTE PINS Dout[7] : 82 : out * -NOTE PINS Dout[6] : 78 : out * -NOTE PINS Dout[5] : 84 : out * -NOTE PINS Dout[4] : 83 : out * -NOTE PINS Dout[3] : 85 : out * -NOTE PINS Dout[2] : 87 : out * -NOTE PINS Dout[1] : 86 : out * -NOTE PINS Dout[0] : 76 : out * -NOTE PINS LED : 34 : out * -NOTE PINS RBA[1] : 60 : out * -NOTE PINS RBA[0] : 58 : out * -NOTE PINS RA[11] : 59 : out * -NOTE PINS RA[10] : 64 : out * -NOTE PINS RA[9] : 63 : out * -NOTE PINS RA[8] : 65 : out * -NOTE PINS RA[7] : 75 : out * -NOTE PINS RA[6] : 68 : out * -NOTE PINS RA[5] : 70 : out * -NOTE PINS RA[4] : 74 : out * -NOTE PINS RA[3] : 71 : out * -NOTE PINS RA[2] : 69 : out * -NOTE PINS RA[1] : 67 : out * -NOTE PINS RA[0] : 66 : out * -NOTE PINS nRCS : 57 : out * -NOTE PINS RCKE : 53 : out * -NOTE PINS nRWE : 49 : out * -NOTE PINS nRRAS : 54 : out * -NOTE PINS nRCAS : 52 : out * -NOTE PINS RDQMH : 51 : out * -NOTE PINS RDQML : 48 : out * -NOTE PINS nUFMCS : 47 : out * -NOTE PINS UFMCLK : 29 : out * -NOTE PINS UFMSDI : 30 : out * -NOTE PINS PHI2 : 8 : in * -NOTE PINS MAin[9] : 32 : in * -NOTE PINS MAin[8] : 25 : in * -NOTE PINS MAin[7] : 18 : in * -NOTE PINS MAin[6] : 24 : in * -NOTE PINS MAin[5] : 19 : in * -NOTE PINS MAin[4] : 20 : in * -NOTE PINS MAin[3] : 21 : in * -NOTE PINS MAin[2] : 13 : in * -NOTE PINS MAin[1] : 12 : in * -NOTE PINS MAin[0] : 14 : in * -NOTE PINS CROW[1] : 16 : in * -NOTE PINS CROW[0] : 10 : in * -NOTE PINS Din[7] : 1 : in * -NOTE PINS Din[6] : 2 : in * -NOTE PINS Din[5] : 98 : in * -NOTE PINS Din[4] : 99 : in * -NOTE PINS Din[3] : 97 : in * -NOTE PINS Din[2] : 88 : in * -NOTE PINS Din[1] : 96 : in * -NOTE PINS Din[0] : 3 : in * -NOTE PINS nCCAS : 9 : in * -NOTE PINS nCRAS : 17 : in * -NOTE PINS nFWE : 28 : in * -NOTE PINS RCLK : 62 : in * -NOTE PINS UFMSDO : 27 : in * -NOTE CONFIGURATION MODE: NONE * -NOTE COMPRESSION: on * diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.arearep b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.arearep deleted file mode 100644 index b2ad5bc..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.arearep +++ /dev/null @@ -1,21 +0,0 @@ ----------------------------------------------------------------------- -Report for cell RAM2GS.TECH -Register bits: 102 of 1520 (6.711%) -I/O cells: 67 - Cell usage: - cell count Res Usage(%) - BB 8 100.0 - CCU2D 10 100.0 - FD1P3AX 29 100.0 - FD1P3AY 5 100.0 - FD1P3IX 3 100.0 - FD1S3AX 47 100.0 - FD1S3IX 14 100.0 - FD1S3JX 4 100.0 - GSR 1 100.0 - IB 26 100.0 - INV 3 100.0 - LUT4 122 100.0 - OB 33 100.0 - PFUMX 1 100.0 - TOTAL 306 diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.bgn b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.bgn deleted file mode 100644 index a0f2cfe..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.bgn +++ /dev/null @@ -1,86 +0,0 @@ -BITGEN: Bitstream Generator Diamond (64-bit) 3.12.1.454 -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. -Tue Aug 15 05:22:19 2023 - - -Command: bitgen -g RamCfg:Reset -path D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC -w -jedec -gui -msgset D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/promote.xml RAM2GS_LCMXO2_1200HC_impl1.ncd RAM2GS_LCMXO2_1200HC_impl1.prf - -Loading design for application Bitgen from file RAM2GS_LCMXO2_1200HC_impl1.ncd. -Design name: RAM2GS -NCD version: 3.3 -Vendor: LATTICE -Device: LCMXO2-1200HC -Package: TQFP100 -Performance: 4 -Loading device for application Bitgen from file 'xo2c1200.nph' in environment: C:/lscc/diamond/3.12/ispfpga. -Package Status: Final Version 1.44. -Performance Hardware Data Status: Final Version 34.4. - -Running DRC. -DRC detected 0 errors and 0 warnings. -Reading Preference File from RAM2GS_LCMXO2_1200HC_impl1.prf. - -Preference Summary: -+---------------------------------+---------------------------------+ -| Preference | Current Setting | -+---------------------------------+---------------------------------+ -| RamCfg | Reset** | -+---------------------------------+---------------------------------+ -| MCCLK_FREQ | 2.08** | -+---------------------------------+---------------------------------+ -| CONFIG_SECURE | OFF** | -+---------------------------------+---------------------------------+ -| INBUF | ON** | -+---------------------------------+---------------------------------+ -| JTAG_PORT | ENABLE** | -+---------------------------------+---------------------------------+ -| SDM_PORT | DISABLE** | -+---------------------------------+---------------------------------+ -| SLAVE_SPI_PORT | DISABLE** | -+---------------------------------+---------------------------------+ -| MASTER_SPI_PORT | DISABLE** | -+---------------------------------+---------------------------------+ -| I2C_PORT | DISABLE** | -+---------------------------------+---------------------------------+ -| MUX_CONFIGURATION_PORTS | DISABLE** | -+---------------------------------+---------------------------------+ -| CONFIGURATION | CFG** | -+---------------------------------+---------------------------------+ -| COMPRESS_CONFIG | ON** | -+---------------------------------+---------------------------------+ -| MY_ASSP | OFF** | -+---------------------------------+---------------------------------+ -| ONE_TIME_PROGRAM | OFF** | -+---------------------------------+---------------------------------+ -| ENABLE_TRANSFR | DISABLE** | -+---------------------------------+---------------------------------+ -| SHAREDEBRINIT | DISABLE** | -+---------------------------------+---------------------------------+ -| BACKGROUND_RECONFIG | OFF** | -+---------------------------------+---------------------------------+ - * Default setting. - ** The specified setting matches the default setting. - - -Creating bit map... - -Bitstream Status: Final Version 1.95. - -Saving bit stream in "RAM2GS_LCMXO2_1200HC_impl1.jed". - -=========== -UFM Summary. -=========== -UFM Size: 511 Pages (128*511 Bits). -UFM Utilization: General Purpose Flash Memory. - -Available General Purpose Flash Memory: 511 Pages (Page 0 to Page 510). -Initialized UFM Pages: 0 Page. - -Total CPU Time: 1 secs -Total REAL Time: 2 secs -Peak Memory Usage: 253 MB diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.dir/5_1.ncd b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.dir/5_1.ncd deleted file mode 100644 index 1967c447327945754f26dadb5cf7ffc3a75a66db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 197895 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 WER!}YsVapDi6(ad diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.dir/5_1.pad b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.dir/5_1.pad deleted file mode 100644 index 9775856..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.dir/5_1.pad +++ /dev/null @@ -1,309 +0,0 @@ -PAD Specification File -*************************** - -PART TYPE: LCMXO2-1200HC -Performance Grade: 4 -PACKAGE: TQFP100 -Package Status: Final Version 1.44 - -Tue Aug 15 05:22:12 2023 - -Pinout by Port Name: -+-----------+----------+---------------+-------+-----------+-----------+----------------------------------------------------------+ -| Port Name | Pin/Bank | Buffer Type | Site | PG Enable | BC Enable | Properties | -+-----------+----------+---------------+-------+-----------+-----------+----------------------------------------------------------+ -| CROW[0] | 10/3 | LVCMOS25_IN | PL4B | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| CROW[1] | 16/3 | LVCMOS25_IN | PL8A | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| Din[0] | 3/3 | LVCMOS25_IN | PL3A | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| Din[1] | 96/0 | LVCMOS25_IN | PT10B | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| Din[2] | 88/0 | LVCMOS25_IN | PT12A | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| Din[3] | 97/0 | LVCMOS25_IN | PT10A | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| Din[4] | 99/0 | LVCMOS25_IN | PT9A | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| Din[5] | 98/0 | LVCMOS25_IN | PT9B | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| Din[6] | 2/3 | LVCMOS25_IN | PL2D | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| Din[7] | 1/3 | LVCMOS25_IN | PL2C | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| Dout[0] | 76/0 | LVCMOS25_OUT | PT17D | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| Dout[1] | 86/0 | LVCMOS25_OUT | PT12C | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| Dout[2] | 87/0 | LVCMOS25_OUT | PT12B | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| Dout[3] | 85/0 | LVCMOS25_OUT | PT12D | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| Dout[4] | 83/0 | LVCMOS25_OUT | PT15B | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| Dout[5] | 84/0 | LVCMOS25_OUT | PT15A | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| Dout[6] | 78/0 | LVCMOS25_OUT | PT16C | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| Dout[7] | 82/0 | LVCMOS25_OUT | PT15C | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| LED | 34/2 | LVCMOS25_OUT | PB9A | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| MAin[0] | 14/3 | LVCMOS25_IN | PL5C | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| MAin[1] | 12/3 | LVCMOS25_IN | PL5A | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| MAin[2] | 13/3 | LVCMOS25_IN | PL5B | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| MAin[3] | 21/3 | LVCMOS25_IN | PL9B | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| MAin[4] | 20/3 | LVCMOS25_IN | PL9A | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| MAin[5] | 19/3 | LVCMOS25_IN | PL8D | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| MAin[6] | 24/3 | LVCMOS25_IN | PL10C | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| MAin[7] | 18/3 | LVCMOS25_IN | PL8C | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| MAin[8] | 25/3 | LVCMOS25_IN | PL10D | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| MAin[9] | 32/2 | LVCMOS25_IN | PB6D | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| PHI2 | 8/3 | LVCMOS25_IN | PL3D | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| RA[0] | 66/1 | LVCMOS25_OUT | PR4D | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RA[10] | 64/1 | LVCMOS25_OUT | PR5B | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RA[11] | 59/1 | LVCMOS25_OUT | PR8D | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RA[1] | 67/1 | LVCMOS25_OUT | PR4C | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RA[2] | 69/1 | LVCMOS25_OUT | PR4A | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RA[3] | 71/1 | LVCMOS25_OUT | PR3A | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RA[4] | 74/1 | LVCMOS25_OUT | PR2B | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RA[5] | 70/1 | LVCMOS25_OUT | PR3B | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RA[6] | 68/1 | LVCMOS25_OUT | PR4B | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RA[7] | 75/1 | LVCMOS25_OUT | PR2A | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RA[8] | 65/1 | LVCMOS25_OUT | PR5A | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RA[9] | 63/1 | LVCMOS25_OUT | PR5C | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RBA[0] | 58/1 | LVCMOS25_OUT | PR9A | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RBA[1] | 60/1 | LVCMOS25_OUT | PR8C | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RCKE | 53/1 | LVCMOS25_OUT | PR9D | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RCLK | 62/1 | LVCMOS25_IN | PR5D | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| RDQMH | 51/1 | LVCMOS25_OUT | PR10D | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RDQML | 48/2 | LVCMOS25_OUT | PB20C | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RD[0] | 36/2 | LVCMOS25_BIDI | PB11C | | | DRIVE:8mA PULL:DOWN CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW | -| RD[1] | 37/2 | LVCMOS25_BIDI | PB11D | | | DRIVE:8mA PULL:DOWN CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW | -| RD[2] | 38/2 | LVCMOS25_BIDI | PB11A | | | DRIVE:8mA PULL:DOWN CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW | -| RD[3] | 39/2 | LVCMOS25_BIDI | PB11B | | | DRIVE:8mA PULL:DOWN CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW | -| RD[4] | 40/2 | LVCMOS25_BIDI | PB15A | | | DRIVE:8mA PULL:DOWN CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW | -| RD[5] | 41/2 | LVCMOS25_BIDI | PB15B | | | DRIVE:8mA PULL:DOWN CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW | -| RD[6] | 42/2 | LVCMOS25_BIDI | PB18A | | | DRIVE:8mA PULL:DOWN CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW | -| RD[7] | 43/2 | LVCMOS25_BIDI | PB18B | | | DRIVE:8mA PULL:DOWN CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW | -| UFMCLK | 29/2 | LVCMOS25_OUT | PB6A | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| UFMSDI | 30/2 | LVCMOS25_OUT | PB6B | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| UFMSDO | 27/2 | LVCMOS25_IN | PB4C | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| nCCAS | 9/3 | LVCMOS25_IN | PL4A | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| nCRAS | 17/3 | LVCMOS25_IN | PL8B | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| nFWE | 28/2 | LVCMOS25_IN | PB4D | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| nRCAS | 52/1 | LVCMOS25_OUT | PR10C | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| nRCS | 57/1 | LVCMOS25_OUT | PR9B | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| nRRAS | 54/1 | LVCMOS25_OUT | PR9C | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| nRWE | 49/2 | LVCMOS25_OUT | PB20D | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| nUFMCS | 47/2 | LVCMOS25_OUT | PB18D | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -+-----------+----------+---------------+-------+-----------+-----------+----------------------------------------------------------+ - -Vccio by Bank: -+------+-------+ -| Bank | Vccio | -+------+-------+ -| 0 | 2.5V | -| 1 | 2.5V | -| 2 | 2.5V | -| 3 | 2.5V | -+------+-------+ - -Vref by Bank: -+------+-----+-----------------+---------+ -| Vref | Pin | Bank # / Vref # | Load(s) | -+------+-----+-----------------+---------+ -+------+-----+-----------------+---------+ - -Pinout by Pin Number: -+----------+-----------------------+------------+---------------+-------+---------------+-----------+-----------+ -| Pin/Bank | Pin Info | Preference | Buffer Type | Site | Dual Function | PG Enable | BC Enable | -+----------+-----------------------+------------+---------------+-------+---------------+-----------+-----------+ -| 1/3 | Din[7] | LOCATED | LVCMOS25_IN | PL2C | L_GPLLT_IN | | | -| 2/3 | Din[6] | LOCATED | LVCMOS25_IN | PL2D | L_GPLLC_IN | | | -| 3/3 | Din[0] | LOCATED | LVCMOS25_IN | PL3A | PCLKT3_2 | | | -| 4/3 | unused, PULL:DOWN | | | PL3B | PCLKC3_2 | | | -| 7/3 | unused, PULL:DOWN | | | PL3C | | | | -| 8/3 | PHI2 | LOCATED | LVCMOS25_IN | PL3D | | | | -| 9/3 | nCCAS | LOCATED | LVCMOS25_IN | PL4A | | | | -| 10/3 | CROW[0] | LOCATED | LVCMOS25_IN | PL4B | | | | -| 12/3 | MAin[1] | LOCATED | LVCMOS25_IN | PL5A | PCLKT3_1 | | | -| 13/3 | MAin[2] | LOCATED | LVCMOS25_IN | PL5B | PCLKC3_1 | | | -| 14/3 | MAin[0] | LOCATED | LVCMOS25_IN | PL5C | | | | -| 15/3 | unused, PULL:DOWN | | | PL5D | | | | -| 16/3 | CROW[1] | LOCATED | LVCMOS25_IN | PL8A | | | | -| 17/3 | nCRAS | LOCATED | LVCMOS25_IN | PL8B | | | | -| 18/3 | MAin[7] | LOCATED | LVCMOS25_IN | PL8C | | | | -| 19/3 | MAin[5] | LOCATED | LVCMOS25_IN | PL8D | | | | -| 20/3 | MAin[4] | LOCATED | LVCMOS25_IN | PL9A | PCLKT3_0 | | | -| 21/3 | MAin[3] | LOCATED | LVCMOS25_IN | PL9B | PCLKC3_0 | | | -| 24/3 | MAin[6] | LOCATED | LVCMOS25_IN | PL10C | | | | -| 25/3 | MAin[8] | LOCATED | LVCMOS25_IN | PL10D | | | | -| 27/2 | UFMSDO | LOCATED | LVCMOS25_IN | PB4C | CSSPIN | | | -| 28/2 | nFWE | LOCATED | LVCMOS25_IN | PB4D | | | | -| 29/2 | UFMCLK | LOCATED | LVCMOS25_OUT | PB6A | | | | -| 30/2 | UFMSDI | LOCATED | LVCMOS25_OUT | PB6B | | | | -| 31/2 | unused, PULL:DOWN | | | PB6C | MCLK/CCLK | | | -| 32/2 | MAin[9] | LOCATED | LVCMOS25_IN | PB6D | SO/SPISO | | | -| 34/2 | LED | LOCATED | LVCMOS25_OUT | PB9A | PCLKT2_0 | | | -| 35/2 | unused, PULL:DOWN | | | PB9B | PCLKC2_0 | | | -| 36/2 | RD[0] | LOCATED | LVCMOS25_BIDI | PB11C | | | | -| 37/2 | RD[1] | LOCATED | LVCMOS25_BIDI | PB11D | | | | -| 38/2 | RD[2] | LOCATED | LVCMOS25_BIDI | PB11A | PCLKT2_1 | | | -| 39/2 | RD[3] | LOCATED | LVCMOS25_BIDI | PB11B | PCLKC2_1 | | | -| 40/2 | RD[4] | LOCATED | LVCMOS25_BIDI | PB15A | | | | -| 41/2 | RD[5] | LOCATED | LVCMOS25_BIDI | PB15B | | | | -| 42/2 | RD[6] | LOCATED | LVCMOS25_BIDI | PB18A | | | | -| 43/2 | RD[7] | LOCATED | LVCMOS25_BIDI | PB18B | | | | -| 45/2 | unused, PULL:DOWN | | | PB18C | | | | -| 47/2 | nUFMCS | | LVCMOS25_OUT | PB18D | | | | -| 48/2 | RDQML | LOCATED | LVCMOS25_OUT | PB20C | SN | | | -| 49/2 | nRWE | LOCATED | LVCMOS25_OUT | PB20D | SI/SISPI | | | -| 51/1 | RDQMH | LOCATED | LVCMOS25_OUT | PR10D | DQ1 | | | -| 52/1 | nRCAS | LOCATED | LVCMOS25_OUT | PR10C | DQ1 | | | -| 53/1 | RCKE | LOCATED | LVCMOS25_OUT | PR9D | DQ1 | | | -| 54/1 | nRRAS | LOCATED | LVCMOS25_OUT | PR9C | DQ1 | | | -| 57/1 | nRCS | LOCATED | LVCMOS25_OUT | PR9B | DQ1 | | | -| 58/1 | RBA[0] | LOCATED | LVCMOS25_OUT | PR9A | DQ1 | | | -| 59/1 | RA[11] | LOCATED | LVCMOS25_OUT | PR8D | DQ1 | | | -| 60/1 | RBA[1] | LOCATED | LVCMOS25_OUT | PR8C | DQ1 | | | -| 61/1 | unused, PULL:DOWN | | | PR8A | DQS1 | | | -| 62/1 | RCLK | LOCATED | LVCMOS25_IN | PR5D | PCLKC1_0/DQ0 | | | -| 63/1 | RA[9] | LOCATED | LVCMOS25_OUT | PR5C | PCLKT1_0/DQ0 | | | -| 64/1 | RA[10] | LOCATED | LVCMOS25_OUT | PR5B | DQS0N | | | -| 65/1 | RA[8] | LOCATED | LVCMOS25_OUT | PR5A | DQS0 | | | -| 66/1 | RA[0] | LOCATED | LVCMOS25_OUT | PR4D | DQ0 | | | -| 67/1 | RA[1] | LOCATED | LVCMOS25_OUT | PR4C | DQ0 | | | -| 68/1 | RA[6] | LOCATED | LVCMOS25_OUT | PR4B | DQ0 | | | -| 69/1 | RA[2] | LOCATED | LVCMOS25_OUT | PR4A | DQ0 | | | -| 70/1 | RA[5] | LOCATED | LVCMOS25_OUT | PR3B | DQ0 | | | -| 71/1 | RA[3] | LOCATED | LVCMOS25_OUT | PR3A | DQ0 | | | -| 74/1 | RA[4] | LOCATED | LVCMOS25_OUT | PR2B | DQ0 | | | -| 75/1 | RA[7] | LOCATED | LVCMOS25_OUT | PR2A | DQ0 | | | -| 76/0 | Dout[0] | LOCATED | LVCMOS25_OUT | PT17D | DONE | | | -| 77/0 | unused, PULL:DOWN | | | PT17C | INITN | | | -| 78/0 | Dout[6] | LOCATED | LVCMOS25_OUT | PT16C | | | | -| 81/0 | unused, PULL:DOWN | | | PT15D | PROGRAMN | | | -| 82/0 | Dout[7] | LOCATED | LVCMOS25_OUT | PT15C | JTAGENB | | | -| 83/0 | Dout[4] | LOCATED | LVCMOS25_OUT | PT15B | | | | -| 84/0 | Dout[5] | LOCATED | LVCMOS25_OUT | PT15A | | | | -| 85/0 | Dout[3] | LOCATED | LVCMOS25_OUT | PT12D | SDA/PCLKC0_0 | | | -| 86/0 | Dout[1] | LOCATED | LVCMOS25_OUT | PT12C | SCL/PCLKT0_0 | | | -| 87/0 | Dout[2] | LOCATED | LVCMOS25_OUT | PT12B | PCLKC0_1 | | | -| 88/0 | Din[2] | LOCATED | LVCMOS25_IN | PT12A | PCLKT0_1 | | | -| 90/0 | Reserved: sysCONFIG | | | PT11D | TMS | | | -| 91/0 | Reserved: sysCONFIG | | | PT11C | TCK | | | -| 94/0 | Reserved: sysCONFIG | | | PT10D | TDI | | | -| 95/0 | Reserved: sysCONFIG | | | PT10C | TDO | | | -| 96/0 | Din[1] | LOCATED | LVCMOS25_IN | PT10B | | | | -| 97/0 | Din[3] | LOCATED | LVCMOS25_IN | PT10A | | | | -| 98/0 | Din[5] | LOCATED | LVCMOS25_IN | PT9B | | | | -| 99/0 | Din[4] | LOCATED | LVCMOS25_IN | PT9A | | | | -| PB4A/2 | unused, PULL:DOWN | | | PB4A | | | | -| PB4B/2 | unused, PULL:DOWN | | | PB4B | | | | -| PB9C/2 | unused, PULL:DOWN | | | PB9C | | | | -| PB9D/2 | unused, PULL:DOWN | | | PB9D | | | | -| PB15C/2 | unused, PULL:DOWN | | | PB15C | | | | -| PB15D/2 | unused, PULL:DOWN | | | PB15D | | | | -| PB20A/2 | unused, PULL:DOWN | | | PB20A | | | | -| PB20B/2 | unused, PULL:DOWN | | | PB20B | | | | -| PL2A/3 | unused, PULL:DOWN | | | PL2A | L_GPLLT_FB | | | -| PL2B/3 | unused, PULL:DOWN | | | PL2B | L_GPLLC_FB | | | -| PL4C/3 | unused, PULL:DOWN | | | PL4C | | | | -| PL4D/3 | unused, PULL:DOWN | | | PL4D | | | | -| PL10A/3 | unused, PULL:DOWN | | | PL10A | | | | -| PL10B/3 | unused, PULL:DOWN | | | PL10B | | | | -| PR2C/1 | unused, PULL:DOWN | | | PR2C | DQ0 | | | -| PR2D/1 | unused, PULL:DOWN | | | PR2D | DQ0 | | | -| PR8B/1 | unused, PULL:DOWN | | | PR8B | DQS1N | | | -| PR10A/1 | unused, PULL:DOWN | | | PR10A | DQ1 | | | -| PR10B/1 | unused, PULL:DOWN | | | PR10B | DQ1 | | | -| PT9C/0 | unused, PULL:DOWN | | | PT9C | | | | -| PT9D/0 | unused, PULL:DOWN | | | PT9D | | | | -| PT11A/0 | unused, PULL:DOWN | | | PT11A | | | | -| PT11B/0 | unused, PULL:DOWN | | | PT11B | | | | -| PT16A/0 | unused, PULL:DOWN | | | PT16A | | | | -| PT16B/0 | unused, PULL:DOWN | | | PT16B | | | | -| PT16D/0 | unused, PULL:DOWN | | | PT16D | | | | -| PT17A/0 | unused, PULL:DOWN | | | PT17A | | | | -| PT17B/0 | unused, PULL:DOWN | | | PT17B | | | | -+----------+-----------------------+------------+---------------+-------+---------------+-----------+-----------+ - -sysCONFIG Pins: -+----------+--------------------+--------------------+----------+-------------+-------------------+ -| Pad Name | sysCONFIG Pin Name | sysCONFIG Settings | Pin/Bank | Buffer Type | Config Pull Mode | -+----------+--------------------+--------------------+----------+-------------+-------------------+ -| PT11D | TMS | JTAG_PORT=ENABLE | 90/0 | | PULLUP | -| PT11C | TCK/TEST_CLK | JTAG_PORT=ENABLE | 91/0 | | NO pull up/down | -| PT10D | TDI/MD7 | JTAG_PORT=ENABLE | 94/0 | | PULLUP | -| PT10C | TDO | JTAG_PORT=ENABLE | 95/0 | | PULLUP | -+----------+--------------------+--------------------+----------+-------------+-------------------+ - -Dedicated sysCONFIG Pins: - - -List of All Pins' Locate Preferences Based on Final Placement After PAR -to Help Users Lock Down ALL the Pins Easily (by Simply Copy & Paste): - -LOCATE COMP "CROW[0]" SITE "10"; -LOCATE COMP "CROW[1]" SITE "16"; -LOCATE COMP "Din[0]" SITE "3"; -LOCATE COMP "Din[1]" SITE "96"; -LOCATE COMP "Din[2]" SITE "88"; -LOCATE COMP "Din[3]" SITE "97"; -LOCATE COMP "Din[4]" SITE "99"; -LOCATE COMP "Din[5]" SITE "98"; -LOCATE COMP "Din[6]" SITE "2"; -LOCATE COMP "Din[7]" SITE "1"; -LOCATE COMP "Dout[0]" SITE "76"; -LOCATE COMP "Dout[1]" SITE "86"; -LOCATE COMP "Dout[2]" SITE "87"; -LOCATE COMP "Dout[3]" SITE "85"; -LOCATE COMP "Dout[4]" SITE "83"; -LOCATE COMP "Dout[5]" SITE "84"; -LOCATE COMP "Dout[6]" SITE "78"; -LOCATE COMP "Dout[7]" SITE "82"; -LOCATE COMP "LED" SITE "34"; -LOCATE COMP "MAin[0]" SITE "14"; -LOCATE COMP "MAin[1]" SITE "12"; -LOCATE COMP "MAin[2]" SITE "13"; -LOCATE COMP "MAin[3]" SITE "21"; -LOCATE COMP "MAin[4]" SITE "20"; -LOCATE COMP "MAin[5]" SITE "19"; -LOCATE COMP "MAin[6]" SITE "24"; -LOCATE COMP "MAin[7]" SITE "18"; -LOCATE COMP "MAin[8]" SITE "25"; -LOCATE COMP "MAin[9]" SITE "32"; -LOCATE COMP "PHI2" SITE "8"; -LOCATE COMP "RA[0]" SITE "66"; -LOCATE COMP "RA[10]" SITE "64"; -LOCATE COMP "RA[11]" SITE "59"; -LOCATE COMP "RA[1]" SITE "67"; -LOCATE COMP "RA[2]" SITE "69"; -LOCATE COMP "RA[3]" SITE "71"; -LOCATE COMP "RA[4]" SITE "74"; -LOCATE COMP "RA[5]" SITE "70"; -LOCATE COMP "RA[6]" SITE "68"; -LOCATE COMP "RA[7]" SITE "75"; -LOCATE COMP "RA[8]" SITE "65"; -LOCATE COMP "RA[9]" SITE "63"; -LOCATE COMP "RBA[0]" SITE "58"; -LOCATE COMP "RBA[1]" SITE "60"; -LOCATE COMP "RCKE" SITE "53"; -LOCATE COMP "RCLK" SITE "62"; -LOCATE COMP "RDQMH" SITE "51"; -LOCATE COMP "RDQML" SITE "48"; -LOCATE COMP "RD[0]" SITE "36"; -LOCATE COMP "RD[1]" SITE "37"; -LOCATE COMP "RD[2]" SITE "38"; -LOCATE COMP "RD[3]" SITE "39"; -LOCATE COMP "RD[4]" SITE "40"; -LOCATE COMP "RD[5]" SITE "41"; -LOCATE COMP "RD[6]" SITE "42"; -LOCATE COMP "RD[7]" SITE "43"; -LOCATE COMP "UFMCLK" SITE "29"; -LOCATE COMP "UFMSDI" SITE "30"; -LOCATE COMP "UFMSDO" SITE "27"; -LOCATE COMP "nCCAS" SITE "9"; -LOCATE COMP "nCRAS" SITE "17"; -LOCATE COMP "nFWE" SITE "28"; -LOCATE COMP "nRCAS" SITE "52"; -LOCATE COMP "nRCS" SITE "57"; -LOCATE COMP "nRRAS" SITE "54"; -LOCATE COMP "nRWE" SITE "49"; -LOCATE COMP "nUFMCS" SITE "47"; - - - - - -PAR: Place And Route Diamond (64-bit) 3.12.1.454. -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. -Tue Aug 15 05:22:14 2023 - diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.dir/5_1.par b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.dir/5_1.par deleted file mode 100644 index 47ca8d6..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.dir/5_1.par +++ /dev/null @@ -1,301 +0,0 @@ - -Lattice Place and Route Report for Design "RAM2GS_LCMXO2_1200HC_impl1_map.ncd" -Tue Aug 15 05:22:08 2023 - -PAR: Place And Route Diamond (64-bit) 3.12.1.454. -Command Line: par -w -l 5 -i 6 -t 1 -c 0 -e 0 -gui -msgset D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/promote.xml -exp parUseNBR=1:parCDP=0:parCDR=0:parPathBased=OFF:parASE=1 RAM2GS_LCMXO2_1200HC_impl1_map.ncd RAM2GS_LCMXO2_1200HC_impl1.dir/5_1.ncd RAM2GS_LCMXO2_1200HC_impl1.prf -Preference file: RAM2GS_LCMXO2_1200HC_impl1.prf. -Placement level-cost: 5-1. -Routing Iterations: 6 - -Loading design for application par from file RAM2GS_LCMXO2_1200HC_impl1_map.ncd. -Design name: RAM2GS -NCD version: 3.3 -Vendor: LATTICE -Device: LCMXO2-1200HC -Package: TQFP100 -Performance: 4 -Loading device for application par from file 'xo2c1200.nph' in environment: C:/lscc/diamond/3.12/ispfpga. -Package Status: Final Version 1.44. -Performance Hardware Data Status: Final Version 34.4. -License checked out. - - -Ignore Preference Error(s): True -Device utilization summary: - - PIO (prelim) 67+4(JTAG)/108 66% used - 67+4(JTAG)/80 89% bonded - - SLICE 75/640 11% used - - - -Number of Signals: 285 -Number of Connections: 674 -WARNING - par: Placement timing preferences are hard to meet. However, placement will continue. Use static timing analysis to identify errors. - -Pin Constraint Summary: - 66 out of 67 pins locked (98% locked). - -The following 2 signals are selected to use the primary clock routing resources: - RCLK_c (driver: RCLK, clk load #: 40) - PHI2_c (driver: PHI2, clk load #: 13) - -WARNING - par: Signal "RCLK_c" is selected to use Primary clock resources. However, its driver comp "RCLK" is located at "62", which is not a dedicated pin for connecting to Primary clock resources. General routing has to be used to route this signal, and it might suffer from excessive delay or skew. -WARNING - par: Signal "PHI2_c" is selected to use Primary clock resources. However, its driver comp "PHI2" is located at "8", which is not a dedicated pin for connecting to Primary clock resources. General routing has to be used to route this signal, and it might suffer from excessive delay or skew. - -The following 1 signal is selected to use the secondary clock routing resources: - nCRAS_c (driver: nCRAS, clk load #: 7, sr load #: 0, ce load #: 0) - -WARNING - par: Signal "nCRAS_c" is selected to use Secondary clock resources. However, its driver comp "nCRAS" is located at "17", which is not a dedicated pin for connecting to Secondary clock resources. General routing has to be used to route this signal, and it might suffer from excessive delay or skew. -No signal is selected as Global Set/Reset. -. -Starting Placer Phase 0. -.......... -Finished Placer Phase 0. REAL time: 0 secs - -Starting Placer Phase 1. -................... -Placer score = 143529. -Finished Placer Phase 1. REAL time: 4 secs - -Starting Placer Phase 2. -. -Placer score = 143450 -Finished Placer Phase 2. REAL time: 4 secs - - ------------------- Clock Report ------------------ - -Global Clock Resources: - CLK_PIN : 0 out of 8 (0%) - General PIO: 3 out of 108 (2%) - PLL : 0 out of 1 (0%) - DCM : 0 out of 2 (0%) - DCC : 0 out of 8 (0%) - -Global Clocks: - PRIMARY "RCLK_c" from comp "RCLK" on PIO site "62 (PR5D)", clk load = 40 - PRIMARY "PHI2_c" from comp "PHI2" on PIO site "8 (PL3D)", clk load = 13 - SECONDARY "nCRAS_c" from comp "nCRAS" on PIO site "17 (PL8B)", clk load = 7, ce load = 0, sr load = 0 - - PRIMARY : 2 out of 8 (25%) - SECONDARY: 1 out of 8 (12%) - -Edge Clocks: - No edge clock selected. - ---------------- End of Clock Report --------------- - - -I/O Usage Summary (final): - 67 + 4(JTAG) out of 108 (65.7%) PIO sites used. - 67 + 4(JTAG) out of 80 (88.8%) bonded PIO sites used. - Number of PIO comps: 67; differential: 0. - Number of Vref pins used: 0. - -I/O Bank Usage Summary: -+----------+----------------+------------+-----------+ -| I/O Bank | Usage | Bank Vccio | Bank Vref | -+----------+----------------+------------+-----------+ -| 0 | 13 / 19 ( 68%) | 2.5V | - | -| 1 | 20 / 21 ( 95%) | 2.5V | - | -| 2 | 17 / 20 ( 85%) | 2.5V | - | -| 3 | 17 / 20 ( 85%) | 2.5V | - | -+----------+----------------+------------+-----------+ - -Total placer CPU time: 3 secs - -Dumping design to file RAM2GS_LCMXO2_1200HC_impl1.dir/5_1.ncd. - -0 connections routed; 674 unrouted. -Starting router resource preassignment -WARNING - par: The driver of primary clock net RCLK_c is not placed on one of the sites dedicated for primary clocks. This primary clock will be routed to an H-spine through general routing resource and might suffer from excessive delay or skew. -WARNING - par: The driver of primary clock net PHI2_c is not placed on one of the sites dedicated for primary clocks. This primary clock will be routed to an H-spine through general routing resource and might suffer from excessive delay or skew. - -WARNING - par: The following clock signals will be routed by using generic routing resource and may suffer from excessive delay and/or skew. - Signal=nCCAS_c loads=6 clock_loads=4 - -Completed router resource preassignment. Real time: 6 secs - -Start NBR router at 05:22:14 08/15/23 - -***************************************************************** -Info: NBR allows conflicts(one node used by more than one signal) - in the earlier iterations. In each iteration, it tries to - solve the conflicts while keeping the critical connections - routed as short as possible. The routing process is said to - be completed when no conflicts exist and all connections - are routed. -Note: NBR uses a different method to calculate timing slacks. The - worst slack and total negative slack may not be the same as - that in TRCE report. You should always run TRCE to verify - your design. -***************************************************************** - -Start NBR special constraint process at 05:22:14 08/15/23 - -Start NBR section for initial routing at 05:22:14 08/15/23 -Level 1, iteration 1 -2(0.00%) conflicts; 537(79.67%) untouched conns; 468417 (nbr) score; -Estimated worst slack/total negative slack: -5.186ns/-468.418ns; real time: 6 secs -Level 2, iteration 1 -11(0.01%) conflicts; 474(70.33%) untouched conns; 377050 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-377.051ns; real time: 7 secs -Level 3, iteration 1 -20(0.02%) conflicts; 254(37.69%) untouched conns; 373495 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-373.496ns; real time: 7 secs -Level 4, iteration 1 -11(0.01%) conflicts; 0(0.00%) untouched conn; 386254 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-386.255ns; real time: 7 secs - -Info: Initial congestion level at 75% usage is 0 -Info: Initial congestion area at 75% usage is 0 (0.00%) - -Start NBR section for normal routing at 05:22:15 08/15/23 -Level 1, iteration 1 -7(0.01%) conflicts; 4(0.59%) untouched conns; 379537 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-379.537ns; real time: 7 secs -Level 4, iteration 1 -9(0.01%) conflicts; 0(0.00%) untouched conn; 380799 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-380.800ns; real time: 7 secs -Level 4, iteration 2 -6(0.01%) conflicts; 0(0.00%) untouched conn; 390586 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-390.587ns; real time: 7 secs -Level 4, iteration 3 -6(0.01%) conflicts; 0(0.00%) untouched conn; 384718 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-384.719ns; real time: 7 secs -Level 4, iteration 4 -6(0.01%) conflicts; 0(0.00%) untouched conn; 384718 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-384.719ns; real time: 7 secs -Level 4, iteration 5 -4(0.00%) conflicts; 0(0.00%) untouched conn; 393013 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-393.014ns; real time: 7 secs -Level 4, iteration 6 -3(0.00%) conflicts; 0(0.00%) untouched conn; 393013 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-393.014ns; real time: 7 secs -Level 4, iteration 7 -3(0.00%) conflicts; 0(0.00%) untouched conn; 393874 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-393.875ns; real time: 7 secs -Level 4, iteration 8 -3(0.00%) conflicts; 0(0.00%) untouched conn; 393874 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-393.875ns; real time: 7 secs -Level 4, iteration 9 -2(0.00%) conflicts; 0(0.00%) untouched conn; 409288 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-409.289ns; real time: 7 secs -Level 4, iteration 10 -3(0.00%) conflicts; 0(0.00%) untouched conn; 409288 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-409.289ns; real time: 7 secs -Level 4, iteration 11 -3(0.00%) conflicts; 0(0.00%) untouched conn; 393035 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-393.036ns; real time: 7 secs -Level 4, iteration 12 -3(0.00%) conflicts; 0(0.00%) untouched conn; 393035 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-393.036ns; real time: 7 secs -Level 4, iteration 13 -2(0.00%) conflicts; 0(0.00%) untouched conn; 404326 (nbr) score; -Estimated worst slack/total negative slack: -4.574ns/-404.327ns; real time: 7 secs -Level 4, iteration 14 -2(0.00%) conflicts; 0(0.00%) untouched conn; 404326 (nbr) score; -Estimated worst slack/total negative slack: -4.574ns/-404.327ns; real time: 7 secs -Level 4, iteration 15 -2(0.00%) conflicts; 0(0.00%) untouched conn; 411533 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-411.534ns; real time: 7 secs -Level 4, iteration 16 -3(0.00%) conflicts; 0(0.00%) untouched conn; 411533 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-411.534ns; real time: 7 secs -Level 4, iteration 17 -2(0.00%) conflicts; 0(0.00%) untouched conn; 404668 (nbr) score; -Estimated worst slack/total negative slack: -4.574ns/-404.669ns; real time: 7 secs -Level 4, iteration 18 -1(0.00%) conflict; 0(0.00%) untouched conn; 404668 (nbr) score; -Estimated worst slack/total negative slack: -4.574ns/-404.669ns; real time: 7 secs -Level 4, iteration 19 -1(0.00%) conflict; 0(0.00%) untouched conn; 411533 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-411.534ns; real time: 7 secs -Level 4, iteration 20 -1(0.00%) conflict; 0(0.00%) untouched conn; 411533 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-411.534ns; real time: 7 secs -Level 4, iteration 21 -1(0.00%) conflict; 0(0.00%) untouched conn; 411533 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-411.534ns; real time: 7 secs -Level 4, iteration 22 -1(0.00%) conflict; 0(0.00%) untouched conn; 411533 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-411.534ns; real time: 7 secs -Level 4, iteration 23 -1(0.00%) conflict; 0(0.00%) untouched conn; 411276 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-411.277ns; real time: 7 secs -Level 4, iteration 24 -1(0.00%) conflict; 0(0.00%) untouched conn; 411276 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-411.277ns; real time: 7 secs -Level 4, iteration 25 -0(0.00%) conflict; 0(0.00%) untouched conn; 411952 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-411.953ns; real time: 7 secs - -Start NBR section for performance tuning (iteration 1) at 05:22:15 08/15/23 -Level 4, iteration 1 -1(0.00%) conflict; 0(0.00%) untouched conn; 405829 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-405.830ns; real time: 7 secs -Level 4, iteration 2 -0(0.00%) conflict; 0(0.00%) untouched conn; 411952 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-411.953ns; real time: 7 secs - -Start NBR section for re-routing at 05:22:15 08/15/23 -Level 4, iteration 1 -0(0.00%) conflict; 0(0.00%) untouched conn; 411952 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-411.953ns; real time: 7 secs - -Start NBR section for post-routing at 05:22:15 08/15/23 - -End NBR router with 0 unrouted connection - -NBR Summary ------------ - Number of unrouted connections : 0 (0.00%) - Number of connections with timing violations : 254 (37.69%) - Estimated worst slack : -4.650ns - Timing score : 391939 ------------ -Notes: The timing info is calculated for SETUP only and all PAR_ADJs are ignored. - - - -WARNING - par: The following clock signals will be routed by using generic routing resource and may suffer from excessive delay and/or skew. - Signal=nCCAS_c loads=6 clock_loads=4 - -Total CPU time 6 secs -Total REAL time: 7 secs -Completely routed. -End of route. 674 routed (100.00%); 0 unrouted. - -Hold time timing score: 0, hold timing errors: 0 - -Timing score: 391939 - -Dumping design to file RAM2GS_LCMXO2_1200HC_impl1.dir/5_1.ncd. - - -All signals are completely routed. - - -PAR_SUMMARY::Run status = Completed -PAR_SUMMARY::Number of unrouted conns = 0 -PAR_SUMMARY::Worst slack> = -4.650 -PAR_SUMMARY::Timing score> = 391.939 -PAR_SUMMARY::Worst slack> = 0.304 -PAR_SUMMARY::Timing score> = 0.000 -PAR_SUMMARY::Number of errors = 0 - -Total CPU time to completion: 6 secs -Total REAL time to completion: 7 secs - -par done! - -Note: user must run 'Trace' for timing closure signoff. - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.dir/5_1_par.asd b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.dir/5_1_par.asd deleted file mode 100644 index 38b1fbf..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.dir/5_1_par.asd +++ /dev/null @@ -1,38 +0,0 @@ -[ActiveSupport PAR] -; Global primary clocks -GLOBAL_PRIMARY_USED = 2; -; Global primary clock #0 -GLOBAL_PRIMARY_0_SIGNALNAME = RCLK_c; -GLOBAL_PRIMARY_0_DRIVERTYPE = PIO; -GLOBAL_PRIMARY_0_LOADNUM = 40; -; Global primary clock #1 -GLOBAL_PRIMARY_1_SIGNALNAME = PHI2_c; -GLOBAL_PRIMARY_1_DRIVERTYPE = PIO; -GLOBAL_PRIMARY_1_LOADNUM = 13; -; # of global secondary clocks -GLOBAL_SECONDARY_USED = 1; -; Global secondary clock #0 -GLOBAL_SECONDARY_0_SIGNALNAME = nCRAS_c; -GLOBAL_SECONDARY_0_DRIVERTYPE = PIO; -GLOBAL_SECONDARY_0_LOADNUM = 9; -GLOBAL_SECONDARY_0_SIGTYPE = CLK; -; I/O Bank 0 Usage -BANK_0_USED = 13; -BANK_0_AVAIL = 19; -BANK_0_VCCIO = 2.5V; -BANK_0_VREF1 = NA; -; I/O Bank 1 Usage -BANK_1_USED = 20; -BANK_1_AVAIL = 21; -BANK_1_VCCIO = 2.5V; -BANK_1_VREF1 = NA; -; I/O Bank 2 Usage -BANK_2_USED = 17; -BANK_2_AVAIL = 20; -BANK_2_VCCIO = 2.5V; -BANK_2_VREF1 = NA; -; I/O Bank 3 Usage -BANK_3_USED = 17; -BANK_3_AVAIL = 20; -BANK_3_VCCIO = 2.5V; -BANK_3_VREF1 = NA; diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.dir/RAM2GS_LCMXO2_1200HC_impl1.par b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.dir/RAM2GS_LCMXO2_1200HC_impl1.par deleted file mode 100644 index 7d91ea8..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.dir/RAM2GS_LCMXO2_1200HC_impl1.par +++ /dev/null @@ -1,28 +0,0 @@ -PAR: Place And Route Diamond (64-bit) 3.12.1.454. -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. -Tue Aug 15 05:22:08 2023 - -C:/lscc/diamond/3.12/ispfpga\bin\nt64\par -f RAM2GS_LCMXO2_1200HC_impl1.p2t -RAM2GS_LCMXO2_1200HC_impl1_map.ncd RAM2GS_LCMXO2_1200HC_impl1.dir -RAM2GS_LCMXO2_1200HC_impl1.prf -gui -msgset -D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/promote.xml - - -Preference file: RAM2GS_LCMXO2_1200HC_impl1.prf. - -Level/ Number Worst Timing Worst Timing Run NCD -Cost [ncd] Unrouted Slack Score Slack(hold) Score(hold) Time Status ----------- -------- ----- ------ ----------- ----------- ---- ------ -5_1 * 0 -4.650 391939 0.304 0 07 Completed - -* : Design saved. - -Total (real) run time for 1-seed: 7 secs - -par done! - -Note: user must run 'Trace' for timing closure signoff. diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.drc b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.drc deleted file mode 100644 index ec074a2..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.drc +++ /dev/null @@ -1 +0,0 @@ -DRC detected 0 errors and 0 warnings. diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.jed b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.jed deleted file mode 100644 index 80ddd6d..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.jed +++ /dev/null @@ -1,2779 +0,0 @@ -* -NOTE Diamond (64-bit) 3.12.1.454 JEDEC Compatible Fuse File.* -NOTE Copyright (C), 1992-2010, Lattice Semiconductor Corporation.* -NOTE All Rights Reserved.* -NOTE DATE CREATED: Tue Aug 15 05:22:19 2023* -NOTE DESIGN NAME: RAM2GS_LCMXO2_1200HC_impl1.ncd* -NOTE DEVICE NAME: LCMXO2-1200HC-4TQFP100* -NOTE JEDEC FILE STATUS: Final Version 1.95* -NOTE PIN ASSIGNMENTS* -NOTE PINS RD[7] : 43 : inout* -NOTE PINS RD[6] : 42 : inout* -NOTE PINS RD[5] : 41 : inout* -NOTE PINS RD[4] : 40 : inout* -NOTE PINS RD[3] : 39 : inout* -NOTE PINS RD[2] : 38 : inout* -NOTE PINS RD[1] : 37 : inout* -NOTE PINS RD[0] : 36 : inout* -NOTE PINS Dout[7] : 82 : out* -NOTE PINS Dout[6] : 78 : out* -NOTE PINS Dout[5] : 84 : out* -NOTE PINS Dout[4] : 83 : out* -NOTE PINS Dout[3] : 85 : out* -NOTE PINS Dout[2] : 87 : out* -NOTE PINS Dout[1] : 86 : out* -NOTE PINS Dout[0] : 76 : out* -NOTE PINS LED : 34 : out* -NOTE PINS RBA[1] : 60 : out* -NOTE PINS RBA[0] : 58 : out* -NOTE PINS RA[11] : 59 : out* -NOTE PINS RA[10] : 64 : out* -NOTE PINS RA[9] : 63 : out* -NOTE PINS RA[8] : 65 : out* -NOTE PINS RA[7] : 75 : out* -NOTE PINS RA[6] : 68 : out* -NOTE PINS RA[5] : 70 : out* -NOTE PINS RA[4] : 74 : out* -NOTE PINS RA[3] : 71 : out* -NOTE PINS RA[2] : 69 : out* -NOTE PINS RA[1] : 67 : out* -NOTE PINS RA[0] : 66 : out* -NOTE PINS nRCS : 57 : out* -NOTE PINS RCKE : 53 : out* -NOTE PINS nRWE : 49 : out* -NOTE PINS nRRAS : 54 : out* -NOTE PINS nRCAS : 52 : out* -NOTE PINS RDQMH : 51 : out* -NOTE PINS RDQML : 48 : out* -NOTE PINS nUFMCS : 47 : out* -NOTE PINS UFMCLK : 29 : out* -NOTE PINS UFMSDI : 30 : out* -NOTE PINS PHI2 : 8 : in* -NOTE PINS MAin[9] : 32 : in* -NOTE PINS MAin[8] : 25 : in* -NOTE PINS MAin[7] : 18 : in* -NOTE PINS MAin[6] : 24 : in* -NOTE PINS MAin[5] : 19 : in* -NOTE PINS MAin[4] : 20 : in* -NOTE PINS MAin[3] : 21 : in* -NOTE PINS MAin[2] : 13 : in* -NOTE PINS MAin[1] : 12 : in* -NOTE PINS MAin[0] : 14 : in* -NOTE PINS CROW[1] : 16 : in* -NOTE PINS CROW[0] : 10 : in* -NOTE PINS Din[7] : 1 : in* -NOTE PINS Din[6] : 2 : in* -NOTE PINS Din[5] : 98 : in* -NOTE PINS Din[4] : 99 : in* -NOTE PINS Din[3] : 97 : in* -NOTE PINS Din[2] : 88 : in* -NOTE PINS Din[1] : 96 : in* -NOTE PINS Din[0] : 3 : in* -NOTE PINS nCCAS : 9 : in* -NOTE PINS nCRAS : 17 : in* -NOTE PINS nFWE : 28 : in* -NOTE PINS RCLK : 62 : in* -NOTE PINS UFMSDO : 27 : in* -QP100* -QF343936* -G0* -F0* -L000000 -11111111111111111011110110110011111111111111111100111011000000000000000000000000000000100000000000000000000000001100000000001010 -00000011001010000000010101010000010010001111111101000110000000000000000000000000101110001110000000000001010011010000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000100011000001000100100110000000000000000001000110000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010010000000000000000000011 -00111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010 -01101001100111001000000000000000000000100111000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000001100010100000001001010000000100100000000000000000100011000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000010000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000010000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000010010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000010011100000010000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000 -00000000010010000000000000100110000001001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000100010000000001000010000000001001100000000000010001100000100011000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000010000000000100001100111000000001001110000000000000000000100001000001000010000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000100000000000000000000000000000000 -00001000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000100010000000000000000000000000000000000000000000000000000000000000000000000010001010011100000000000000000000000000000000000 -00000000000000000000000000000100000000000000000000000000000000000000000100011000000000000000000000000000000000000000000000100110 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00100110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010010100000000 -00000000000000000000000000100100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000001000110000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000110000110000000001000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001001000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00100001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00001100001100000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000110000110000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100110000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010 -01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100 -00110000000000010101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000001001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000100111000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000010101000000010001100001000011001110000000000000000010001100000000000000000000000000000000001000110000000000000000 -00000000000000000000000000100110000000000000000000000000000000000001001100000000000000000000000000000000000000000000000000000000 -00010010100000000000000000000000000000000000010011000000000000000000000000000000000000000000000000000000000000000000001001010000 -00000000000000000000000000000000000000000000000000000000000000000001001000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000100011100011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110000100100000 -00000000000000000000000000000000000000000001001011001010000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000001001000000100001100111000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001001010000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000110000100100000000000000000000000000000000000000000000000000 -00100100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000001001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000100110000000000001001000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000100100000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000010011000000000100001000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000001100001001000000000100011000000000000000000000000000000000000000000001000100000 -00000000000001000100000000000000000000000000000000000000000000000000000000000000100011000000000000001000010001001010000000000000 -00000000000000000000000000010000000000000000000000100000000000000000000000000000000000000000000000000000000000000000010000100000 -00000000000010000000010010000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000011000010010000000110001010000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000100110100111000000000000000000000000010011000000000100010 -00000000000000000000100110000000000000000000000000000000000000000000000000000000000000000000000000000000000000010101000000000000 -00000000000000010010000000000100000000000000000000000001001000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000001000010000000000000000000000000000000000000000000000000000000100010 -00000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000 -00000000000001000000000000000000000000000000000000000001000110000000000000000000000000000000000100001000001001100010001000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000010010100000000000000000000000000000000000100 -01100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000100110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000101101000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000100100000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101101000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001100000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000001001010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000001001110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000101101000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000010001100000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001001010000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101101000000000001001010101001000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000110010010001000110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000010010000001001110000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000010001010011100 -00000000000001001100000000000000000000000000000000000000000000000000000000000000000010000110011100000000000000000100011000000000 -00000000000000000000000010000100000000000010011000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000010010100000000000000000000000000000000000100110000000000000000100011000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000010010000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001000000000000000000 -00000000000000000000000010010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100000 -11100000000000000000000000000000000000000000000000010010000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000001000010000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000010010000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000010001000000000000000000000000000000000000000000000000000000000000000000 -01001110000010010100000000000000000000000000000000000000000000000000000000000011000001110000000000000000000000000000000000000000 -00000000010000000000000000000000100001000000100100000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000010010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000101010000000000000010001000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000110000010000100000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000001001000000000010000110011100100111000000000010 -11000000010010100000100000000000000000000000000000000000000000000000000000000000000000000000000001000101001110000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110000011100000 -00010010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000100001100111001000110000000010011100000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000001000100100111000010010100000001000100000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000011000001110000000000111001100000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010010000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000100010010011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100010000000000000 -00000011100000101001110000000000000000010001100010001000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000001000000000000000000000010000100000000000000000000000100000000000000000000000000000000000100011000000000000 -00000000000000010010000000000000000000000000000000000000000000000000000000000000000000000000000000001001010000000000000000000000 -00000000000010010100000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001100 -00010011100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000001001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000010110100000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000001000010000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100110000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -01001110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000101111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000001010111001110000000000000000100010000001010111001110 -00000000000000000000010101110011100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000100101001011000000100010000000000000100010001010110010011100000010001000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000001001011000110001000011101000101010011110011101000011001100000 -10000110011001001110010000110011010011000010000110011000100111000000000010011100000010011100000000000100011000010001100000000000 -00000000000000000001001010000000000000000000000000000000000000000110011000010011101001110000100110100001100001000100110000100011 -01001100000001000110101100000000000000000100001000000100001000000000000000001001010000000000000000000000000000010001100000000000 -00000000000000000000000001100010100100000000001000001000010000100000000010011010000000001100110000010001100000000000000000000000 -00000000000000010010100000000000000000000000000000000001001011000110000000000000000000000000000000000000001000100001001010000000 -00000000000010010001000100010011100010101100000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000011010000101001100010010000010011010011100100001100110010001000100001100110010000001000101000011101001001010011 -10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001000000000000000000000010011000 -00000000010011001000001011000010011001011000001001100000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000001000000000000000000000000011000101010000000110001010000010000000000100000001000100011100001010001000100000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001100000000011000100101010110100000 -11010010101001111100001110100000001000110001011000101010000111010100011000100101001111011100100100010000100000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000001101000011000000001000011001110000100111010000 -10000010110111000010010010011100010011000100001000100100000000000100000000010110100000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000001100010010111010000001000111000010100000000010011100100101000000100110010010 -01101011000010110011000010011000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000001000011001110000000001101000100000001000100010001001000110110100101011010000011001100100000110100000100000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000110100100000001001010100010 -10011101010100001001110101010000100111001100011010110001001011011000001001010100110010011010010110011100000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000011100010000100011000001110000100000000000100001 -00000010101110011111100001000100100100110100011001001100000000000000000000000000000000000000000000000000000000000000010011000000 -00000000000000000000000000000000011100000100110001010000000000001000101001110100001000001000011010010011000100011101000010000100 -00100111010001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001001010 -00000100010110001010000000000010000100000010001010001100010010010000010000100000000000000000000000000000000000000000000000000000 -00000000000100011000000000000000000000000000000000000000000000010001110100111000110000100000001010101000100111000010100110101010 -01110000100011100001011000010010001011000011101010110111000100010010001000111001100000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000110011100000100001100101010011101000010110010100101001100100011011000 -01001010011001000110111010000000010001100000100101000001000011001110000000000000000000000000000000000000000000000000000000000000 -00000000000000001010100000000000000000000000001001100010110100100011010011010100101000101110001000010011001001000001001100110001 -00101100100100100000111000001010010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000100010000100010100010100010000100101010010001001010001001000100101000100110100000000100000001001110000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111001000111001001011000000100100010 -00011110000001010010010101010001001001111001111001001010101000100111000010110011000011100001101101010101000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101010000111001001001001110100101010 -01101000111000110100110010011001000110001001100000010000100100000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000010000000100000010011100100101100011100100110100001001001001110000100100011011010 -00010101001010011110001100100100100100010010011100001000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000100000100100000010000010010100100000100100010010100010010001001011000000011000010011 -00000111000100001001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -01000001010000011100100000100001010010010100011111111001101001001110011111111111111001110010010110011111111111111001101001001110 -01111111111111100111001001011001111111011011010011110101010110011000001110111111110000011000111100110010000110100000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010100000010010100100100101000011000011 -01001110110000001100001101001110110000010100010001111101000101100110000011101111111100001111100011001001001010000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111000101101001010111111011110110000100 -10000110000110100111011000000110000110100111011000001111111100110000110011000111010110011010001010000010100010010011011001100000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010001010101000000 -10000111001111111111111100110100000111001111111111111100111000001011001111111111111100110100000111001111111111111100111000001011 -00111111111111110010101011000111011111110000010000111110010000011111110111000011101100110000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000001011011001001000111011110011000010010010001011011010001000001111 -01001110010010001111110001001101101000100000111101001110010010001111110001001101101000100000111101001110010010000010011000000111 -00001010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100000110 -01110010000010000001100000110000100101000010000111001000011000000100110001000101001010001001000101011000000000000000000000000000 -01000100000000000000000000000000000000000001010010000000000000000000000000000000000000000000000100111101110110100001010000100100 -11110000100001001101000011101000010110001001010111001001001000011101000100010011110011110101011001000101101000010000000010011100 -00000000000000010001110001100010000010001100000000000000000000000000000100011000000000000100110000000000010001000000000000000000 -00000000100000010001110011010011100001001111000111010010101100011010001000100101000100110100111100001000010011100000000000000000 -00000000000001001010000000000000000000000000000000000010011010011000000000000000000010000000000000000000000000000000100001110001 -00011000001000110010011100000100011100000100001000010000010000110001110001101100110000101011100000100011000001000100000000000000 -00000100110100101000000000000000000000000000000000010011000000100100100100000000000000000000000000000000000000000000000100101100 -10001011001101011000101001100000001011000000100000010000001001111000100001000000000100000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000001000110000000000001001001100000110110100010110001101000101001111000010 -00101101010000110000110010110000100110100001010011010010101000010000100001000001001110000000000000000000000000000000000000000000 -00000000000000000000000000000001000100000000000000000001001010000000000001011001100100100110100001011100001001011111100101010111 -00001000100101000100001110010010011011000010000101001101001001101000100001010010000000000000000000000000000000000000000000000000 -00000000000000000000110000111100000000010000000000000000000000000000000000000100000100001000000000011100000011000111001010100010 -01000001000011001010110001000101100101001100001000000100010000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000101111100010001001010111100100010010011000100101000101110010010010111101000101001011001000 -01101000010110100010000110000110110110010000111000100101111101001010001110011101000110000000001001000101001000000000001000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000011011001010100111100000100101111010000011100100 -10010001110110110001000100001110110000010001110010010100110001001001100100100100110011100001001001101000110000010000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100100111110000100110011110111 -00100110100000101100001001000101101111000010010011110010010011011000010011010111001110100010111010000010011011101000101000111001 -10111000100000000000000000000000000000100001000000000000000000000000000000000000000011000011110000000000000000000000000000000000 -00000010001100010111011011000000110001001010001010000010011011100001000100000010000110111010011101000001000111001100010010001100 -00100110000110000010001010011001001100000000001001100000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000001001100101001100010110000011010010101000111101010101100000100011100110001101000010100111111000100011010001 -00001001001000001001001010100111010000011000010010100001010011100000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000010001100001001000100100010011101001100110110010010011100100100111000100011000010010110 -00110001001111001001001010100001101011100101001100011001010001100000000000000000000000000000000000000000000000000000000000000100 -00100000000000000000000000000000000000000000001001001001100110010010010010110011100010000100100101111010100010000111111001001000 -00100110010011010100101101110001111000000110101010011010010110110011110010001000010000000000000000000000000000000010000110011100 -00000000000000000000000000000000000000000000000000000000000000000010011000001101100000010000101001000111010000010001011100010001 -11000000111011100001001001001010100001100110000010000101100001100100100100101100010100001010011000000000000000000000000000000000 -00000000000000000000000000000001001110000000000000100111000000000000000000000000000000000000010011110011010111010010110100110010 -11000101000111100000110011101000011001110101001011010101001001110100100100000100101111000010010000110010110100101000011110001000 -00000010010001000000000000000000000000000000000000000000000000000000000100000000001100001111000000000000000000000000000000000000 -00000001000110101011010011101100001001010111100100011100101011110000101001100010110011100000100011000100010100001000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000110010001001101101000 -00110100110000110011010110100100101101010100100001110010000100100011000100101100100001010010100110100010010011001001010100011000 -00001000010000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000001100000 -11010101000100101011010001101001101101000100001000101100000110100000100111100000111000100010110010000101110010000010011010001111 -00101001100100111001000010011000000100110000000000000000000000000000000000000000000000000000000000000110000111100100110001001101 -10001010000000000000000000000000000010011000001001010100010100011100111011010000101001010100110100110011110000011001101000001000 -00110001001001000011000000100000100110101011100100010010001100100110110111000000000000000000000000000000000000000000000000000000 -00000000000000000000000000001000110001001110000000000000000000000000000010010010010001000011001011110010000010011110101011000101 -00110000100111100100101000111000010010010111100110010100100100110101100001101010010100101010101100000000000000000000000000000000 -00000000000000000000000000000000000000000000010011000000000000000000000000000000000001000001101001001010100101100010001100011001 -11000100011001100001000100110001000111000100010010001000000010010111010001101100100100100110000000000000000000000000000000000000 -00000000000000000000000000000000010011110010000100011010001000000000000000000000000001001110000100001001001000010001110010010011 -01100000110000010001010001010011111100001001000011001011000111000011001010100110001001101000000000000000000000000000000000000000 -00000000000000000000000000000000000000000101111000000000000000000000000000000000000011110011001010000111001100110100001010001011 -11100001111101110110100001111111101101000100001101000111000100010011010100010000010000101110001000100110110010001011111100001000 -01111001000011111111011001100000000000000000000000000000000000000000000000000000000000000000000001001100000000000000000000000000 -00000000000110000011001110111011110110000011111100111110111111101110110111111110111110010011000100011111110000100011111111100111 -01111111100100101000010001110100001001001011011110001000100011110010001001001001110010011101000101100000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000011000001101100001111111010101011011100001110011001 -11110011001100001110110011001110100010010011000011001111111101001110101000110011000011000011011101111111110000110001000001001001 -11111000011011001101000110111010110010010000100011000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000001100110011111111110010000111001100111110001110100110101000110111111110000111001111111010000100000 -11111111011000011100011101101000101010011110011011000011111110000110110011010011010000111000011001000011111001100100001101010000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110110010010001110111100 -11000100101110100000011100001110010000000110100010100110001101110010010001111110001010011000110010100011111100011100110001100000 -00000000000000000000000000000000000000000000000000000000000000000000000001011110000000000000000000000000000000110011100000001000 -10100100000010000001101000100010011110000010000010000100111000100001011010100011000010010100000000000000000000000000000000000000 -00000000000000000000000000000000000000000100111000000000000000000000000000000000010001100111011000001001110010001011010010101000 -01111000001001000010011001000101100001100100111000110010001010011010101001001110110100101011010011011000111001110000000000000000 -00000000000000100011000000000000000000000000000000000000000000000010011000000000000000000000000000000010011010000111000110001001 -11001011110000100001111001000010010111001000010100010111000011001000111011110100011010011100010011000101100100110100111000000000 -00000000000000000000010001110010100000000000000000000000000000000000100110000000000000000000000000000000000000000001000010010000 -10100000000010011010000010001100011101100001101000001100000010010110001000001100010100011001110001000001000011000100000000000000 -00000000000000000100101000000000000000000000000000000000000100100000000000000000000000000000000000000000001100100100100000010010 -10100011001100100010100001100001100111100010000001001111010111001011000100010011110000010010010001000000000000100100000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000001000110000000100001100111010010001001101000011 -11000001010010100100011110100001011110010011000011001110110011000010000111001000100100000001000011000100010011101101001010110100 -00100000000000000000000000000010001100000000000000000000000000000000000000000000000000100010100010000001000100000000000000000000 -00111000010001011000100110011100000011001011111001000111100101001001010001010011000111000011001011110100000101100100110100001011 -01100100100111100011000100110010011010011000001001010000000000000000000000000000000000000000000000000000010110000000001011010000 -00000010000010000000000100000000000000000100101000000011000101010000100100100000010010100101111101011000011010000100100000100011 -01001001000011110000001010011110011000110010010110000001001001001000000000000000000000000010010100000000000000000000000000000000 -00000000000000000000000000000000000000000000000000100001100111100111111000100010100110000001000010010110010010010001110000010000 -10101111010010010001010010001110101000110001001011010000100100101110100101010010010000110000001001001000011001000000000000000000 -00000000000000000000000000000000000000000000000000000000001001000000000000000000000000000000001000010100001000000110100101011000 -00111100000110100001011001000111010011100011000100110110001001110010110010111100000101000011001101000110100011110110010111000010 -01010011010010110011101100110010100110000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000010000110011100000000010001100100111101001000100000100001000101001100011100001110001101001000111000011100010001110101000110 -00011001101000011010111000110100101100100000100000111010000000100001000000000000000000000000000000000000000000000000000000000000 -00001011010000000000000000000000000000000000000000010000000010001000101001010011111100010101011011001101001011001101010101001011 -00111101001100110100101010011110000000100111101111110001001110001010000101001011011110100000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000010001000111000100001000111000111000010110110010011110110001000 -10110011000001001011000111010010000100001011101000000100011110000011001001010011000100011101100000110100001000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000001000110100110100001111001000010011000111001 -00001001011101000001110010010111011000000111001000010101111100000011110000110111010000010001101010111100110000100100110010010110 -01001000011001101010010100011000000000000000000000000000000000000000000000000000000000000000000000000000000111001000000000000000 -01000011001110000000000000000000100110011001001001100100011100000001001110010011101101000100001000011100011000110100000110011110 -01011010011000011110000110100101010110010001100010101010100100000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000010000110011111100000101001100010001110011110001010011010000110010110000011000011001011101010110 -11101100000010000110010011001000010100101100111010000011010001001001110110000110110111001000000000000000000000000000000000000000 -00000000000000000000000000000000000000000010011100000000000000001000101110001000000000000001001110100100100000000010000111100010 -10100111010110010001110010011000101101100100010010110001010101001101101100110110110001101001110100011110000100100010001110010110 -01101001000000000000000000000000000000000000000000000000000000000000000000000101101000000000000000010011100000000100110000000000 -01000010111010000010011100100111010010101110100000100101001100100011010011101001101001110010111010001000100101111000010000010000 -00010000110011011100100000010010000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100000100 -00110011100000000000000101100010010101001010100000001000100001100010100100101110100000111001011001000010100100100110100111100000 -10111010110010001010000011101000001000000011000101010100000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000100011010000010011111010110000010000111001000100101010101101010000110001010000010001110 -00001001001110010100110010011001001111110000010100110100010010010000010011010001001001110010011000000000000000000000000000000000 -00000000000000000000000000000000101101000000010001101100100010000000000000000000000100111010000000100111111000000110011010010100 -10000110011111010001000110010100110010110111010001111010000101110000001100110100011010010110001001000010100001100011100011010110 -10000000000000000000000000000000000000000000000000000000000000000000000000000000000000010011100000000100011000000000001000100010 -00010100011100010001001110010011111100000011000001001011000001000111001011000001101000100100010000100010100001001110100000100110 -11001000011000001001110100101100110100000100100000000000000000000000000000000000000000000000000000000000000010000000000000000000 -00000100101011010010010000000000000000000000000010101000110010010010000100100001010011000111000000111000110011000001100001011110 -10110000100010100111101011111010000010100110001010000001100001001010011010101110001110000111011000011000110000000000000000000000 -00000000000000000000000000000000000000010010000000000000001001000010110000000000001001100000000000000000001000011001011001101111 -01000010101011001011000100101001010011110101000100110100100101001010001001101000100000110010001010001110000011011000001001011001 -00100110000100111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010001 -11000100000111111101110011011000011111111001010001100000110100110101000101000100001010100010011001100101110011111011111011110100 -00010100001100001111111001100101011011111110000010100011100010001001100000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000001010000001111111001110010111011010101011111001010110110000001100000110110000111 -01101011111111111111010001010011111111111011100101110101110111110111011011101001100100011101111110000011001010001001001111101110 -11100010011000111011011100010001100100101000111000100010001100000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000100010010001010010101111110001110000111010110110111011011000000110000100111000011101010001111001 -01011011101001010001101000100110000111010001110100011011100001111111011111111000011001011101100100010111111001111001100001100101 -01111110111011000101010001111001100100100010001110001100000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000001110111111001111110011101010111111001111111110100011111110011010101111110111111100101010000111 -11011111111101110110101001110111111100001101000101000101010110010001011111100110110010101111110111010110010001111101000001000010 -11010011001010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110111 -00110000110000110010111100110001101110010010001110111100110001101110010011000011001111000011001100011010111010000011000011001111 -00010000100001111010000010000011010001000010110110010010001111110001000011000110000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000100000000000111010000000100101100011101011001000101001100100001 -10010110011100001000000000000000000000000100100000000000000000000000000000000000000000000000100010100111000000000000000000000000 -00000000000000000000000100010010011100000101110100101000111010001010001010011000111001000011010000101001100000100001010000100000 -00000000000000000000000000100011000000000000000000000000000000000000000000000000000000000000000000000000000000000100010000000101 -00100110100110011010001001011111001000011100010000110001001010111000001001010000000000000000000000000000000000000000000000000000 -00000000000000010011000000000000000000000000000000000000000000001110000001000000100000000100011100000100001101010010000110010110 -10110000000000000000000000000001001010000000000010010100000000000000000000000000000000001001000000000000000000000000000000000000 -00000000000001011100101011010001000001001110100001100111001001100010011100000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000010001000010011011001001101001010010011110001001110000100100101000110100 -00101001101000110100001000100111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000001011000000000010011110011100000000000010010100000100011000000000000000000000000000000000000000000000000000000000000 -00000000110000110000000000000000000000000000000000000000000000000100000000101010100000100010100111000110100000110111010010101000 -10100111100010010010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000010010100001000011001101001000010010111010011001001101000101100100010111000010110000110011001000011000000110001001000001101 -00010001000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010 -01000101101010010110011010000001001101010111100000110011100000111110010011011101000001111000100100010100110010111111000110101001 -10110110000000000000000010000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000100110001100110000010100110001111010001001001011000101001001000101000011101000100001001001000111000111011000111001000010 -11000000000000000000000000000000000000000000000000000000000000000000000000001100001100000000000000000000000000000000000000000000 -10001110000101110000001100011010011111000100011100010001101010100111010010010000110101111100110010100000100010100000100110101101 -00101011001000000000000010110100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00100010000000000010010110001011100001101011100100011101101111000100010000011010110100100110100111010001100000010000100000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000001001100000010011010 -01101000110100110101010011100001000101001100100100100000100010100011001001110000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000001000100010010000001011111001001000011101100000101011101100100101100 -00100110101010010011110011000001001100100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000010011100000010010001010011000000011000100101001101100110101110010000100100101010011000100111000100 -01000000000000000000000000000000000000000000000000000000000000000000000000100111000000000000000001001000000000000000100010000100 -11001001010001000011011101000101010110010111101010011011100100111001001111000110001001110010101100000000000000000000000000000000 -00000000000000000000000000000000000011000011000000000000000000000000000000000000000000000001000100010011110010111000010011000010 -01110000100111011000010000011000011000100011000000010011101000100010001100000000000100011000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000010010000001000000010100110010011001100011110001100100111010000010000011110 -10010110100000100011001100001010110011000101011000010110000011000010010100000000000100101000000000000000000000000000000000000000 -00000000000000000000000000000000000010011000000000000000100111000010010000001100110000011100010101001110100011100100100001100011 -10010010001110000010011001000110000000010011100000000000000000000000000000000000000000000000000000000000000000011000011000000000 -00000000000000000000000000000000000000010010101000011001101001100001000101110010000100011100110001100001001101011100000100001001 -00100111000000111100100000000010000100000000000000000000000000000000000000000000000000000000000000000000000001000110000000000000 -00000000000000000001000010000100100010000101100100010100000100110000010001010001001011001011011100001001100010100010000000000000 -00000000000000000000000000000000000000000000000000000000000000000000100100100010000000000000000000000000000000001000011001000100 -00000000110100001010010110001100011001100001101000010100001010010000110000100110011010011100000000000000000000000000000000000000 -00000000000000000000000000000000000000000010010001001011100110000000000000000000000000000000000000000100101001001000100010101110 -10011110001110010010011110001000111011000011100010011001110010001100000100000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000001010000110001010111101000000111111110110100001101111111001111 -11110111000111011001101010000100001101000111111111010011000100001110111111100000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000110111011100111010000011011100001010001111011111100011101000100010100 -01010100011000111011100001110111110111101001001100110011101000101100001100010100110111111100000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000011101011001100101100101000111010000011011000001000111 -11101111101010001000111001001111011111101111110000111010100001001001100010001101000100011001001001101100110000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001110101100100110111101111100010100001 -10111111110100010000110100010111110101011010101010100001110001000111111111001010100010000111011001100000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101101110011000010101110011000100000 -01000101001100011000110111001000110000011100110001100000101011000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000010001010011100000000000000000100100000000000000000000000010001010011100000000000000000000 -00000001000101001110000000000000000000000000000000000000000000000000000000000000000000000000000000010010100000000000000000000000 -00000000000010001100000100011000000000001000110000010001100000000000000000000000000000000000000000000000000000000000000000000000 -10011100010001000000000000010001010010100000000000000000000010001010011010011100000000000000000000001001010000000000000000010011 -00000000000000000000000000000000000000000000000000000001000010000100000000000100011000000100111000000000000000000000011100100100 -00001001010000010011000000000000000000100110000000000001001000000000000000000011001100001100110000000000000000000000000000000000 -00000000000000000000000000000000000000000000100100000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000010010100000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000010001100000000000100101000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000100011000000000000010010010111000100111000001000000000001 -00110010011000000010001001001110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 -00111100111000000000001001111001111000000010010110001100001000010010001000000100011000000100101010010000100010000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000001000110000010001000000100001001001010010101010010 -10000000100000000100100000000001000110100110000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000011010001000000001001110000000000000000000000011001100000000000010010101001000001001110000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000010011000000100110000001010010000000000000000000000000001 -00100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100011000001000110000000 -00100011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -10001100100010001101000100000100111010001100000101110100111000010000110011100000000000000000000000000001000011001110000000000000 -00010001010011100000000000000000000000000000000000000000000000000000000000000000100101000100111011000010010010000100100101000100 -10101001010000000000101001000000000010010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000001010010000000001001100000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000100111000000010001000100110000100111000000000000000000000000000000010001000010011000000 -00000000000000000000000000000000000000000000000000000000000000000000000010110000000000000000001000000000010000100100011000100100 -00000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100 -00000000011000101010000010010100000101011000000000000000000000000000100011000000000000000000000000000000000000000000000000000000 -00000000000000000000000111000100000000000000000000100110000001000101001110000000000000010010001001100000000000000000000000000000 -01001010000000000000000000000000000000000000000000000000011011010000000000000010001001001010000000000000000000010011010011101000 -10000000000000100011001100011000010001100000000000100011000000000000000001001100000000000000000000000000000000000000000000000000 -01000100000000000010010100000000000000010001010001100100010001100010010000000000100011000001001010000100111000000000000000000000 -00000000100110000000000000000000000000000000000000000000000000000000000000000001001100000000000000011101000000011010110001001110 -00010000000000010010100000000100010010010100000000000100111000000000000000001001000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000010000100000000000000000000000100001000000000000000000000001000010000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000001100110000000000000000000000000001100110000000000000000000000000001 -10011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101100001000000 -00000000001001011000010000000000000000000000100101100001000000000001000010000000000000000100101100001000000000000000000000000000 -00000000000000000000000010011000000000000100110000000000000000000000000000000000000000001001100000000000000000000000000000000000 -00000000000000000000000000000000000000000000000010011100000000000000000000000000000000000000000000000000000100111000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011100000000000000000010111000000000 -00000000000000011000111100000000000000000000000000000000000000000011000101000100000100000000000000000000000000000000000000000000 -00000000000101110000000000000000001011100000000000000000000000011000111100000000010000100000000000000000000110001010001000001000 -00000000001100010100010000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00010000110001101001111001110100001100011010011110011100000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000010000110001101001111001110000000100001100011010011110011101000011000110100111100111000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001001110000001000110000010001101 -00111100011000000000000010011110001101001110000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000100101000000000000000111000101000000000000000000 -00000000000000000000010011100000000000000000100111000000000000000001001110000000000000000000000010011100000000000000000100111000 -00000000000000100111000000000000000001001110000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000100011101111110111111111111111111111111111111111111111111111111 -11111111111111111100001010000000000000000000000000000000000000000000000000000000001010101010011100100010000000000000000000000000 -01000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111101011110000000000000000000000000 -11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 -* -NOTE END CONFIG DATA* -L62976 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -* -C680B* -NOTE FEATURE_ROW* -E0000000000000000000000000000000000000000000000000000000000000000 -0000010001100000* -NOTE User Electronic Signature Data* -UH00000000* -8384 diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.log b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.log deleted file mode 100644 index d0353b8..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.log +++ /dev/null @@ -1,4 +0,0 @@ ----- MParTrce Tool Log File ---- - -==== Par Standard Out ==== -==== End of Par Standard Out ==== diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.lpf b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.lpf deleted file mode 100644 index 2743d95..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.lpf +++ /dev/null @@ -1,4 +0,0 @@ -#BLOCK ASYNCPATHS; -#BLOCK RESETPATHS; - -#FREQUENCY 200.000000 MHz; diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.lsedata b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.lsedata deleted file mode 100644 index 558a037..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.lsedata +++ /dev/null @@ -1,6331 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.mrp b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.mrp deleted file mode 100644 index 934b075..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.mrp +++ /dev/null @@ -1,402 +0,0 @@ - - Lattice Mapping Report File for Design Module 'RAM2GS' - - -Design Information ------------------- - -Command line: map -a MachXO2 -p LCMXO2-1200HC -t TQFP100 -s 4 -oc Commercial - RAM2GS_LCMXO2_1200HC_impl1.ngd -o RAM2GS_LCMXO2_1200HC_impl1_map.ncd -pr - RAM2GS_LCMXO2_1200HC_impl1.prf -mp RAM2GS_LCMXO2_1200HC_impl1.mrp -lpf D:/O - neDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200 - HC_impl1.lpf -lpf D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/RA - M2GS_LCMXO2_1200HC.lpf -c 0 -gui -msgset - D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/promote.xml -Target Vendor: LATTICE -Target Device: LCMXO2-1200HCTQFP100 -Target Performance: 4 -Mapper: xo2c00, version: Diamond (64-bit) 3.12.1.454 -Mapped on: 08/15/23 05:22:05 - -Design Summary --------------- - - Number of registers: 102 out of 1520 (7%) - PFU registers: 102 out of 1280 (8%) - PIO registers: 0 out of 240 (0%) - Number of SLICEs: 75 out of 640 (12%) - SLICEs as Logic/ROM: 75 out of 640 (12%) - SLICEs as RAM: 0 out of 480 (0%) - SLICEs as Carry: 10 out of 640 (2%) - Number of LUT4s: 143 out of 1280 (11%) - Number used as logic LUTs: 123 - Number used as distributed RAM: 0 - Number used as ripple logic: 20 - Number used as shift registers: 0 - Number of PIO sites used: 67 + 4(JTAG) out of 80 (89%) - Number of block RAMs: 0 out of 7 (0%) - Number of GSRs: 0 out of 1 (0%) - EFB used : No - JTAG used : No - Readback used : No - Oscillator used : No - Startup used : No - POR : On - Bandgap : On - Number of Power Controller: 0 out of 1 (0%) - Number of Dynamic Bank Controller (BCINRD): 0 out of 4 (0%) - Number of Dynamic Bank Controller (BCLVDSO): 0 out of 1 (0%) - Number of DCCA: 0 out of 8 (0%) - Number of DCMA: 0 out of 2 (0%) - Number of PLLs: 0 out of 1 (0%) - Number of DQSDLLs: 0 out of 2 (0%) - Number of CLKDIVC: 0 out of 4 (0%) - Number of ECLKSYNCA: 0 out of 4 (0%) - Number of ECLKBRIDGECS: 0 out of 2 (0%) - Notes:- - 1. Total number of LUT4s = (Number of logic LUT4s) + 2*(Number of - distributed RAMs) + 2*(Number of ripple logic) - 2. Number of logic LUT4s does not include count of distributed RAM and - ripple logic. - Number of clocks: 4 - Net RCLK_c: 40 loads, 40 rising, 0 falling (Driver: PIO RCLK ) - - Page 1 - - - - -Design: RAM2GS Date: 08/15/23 05:22:05 - -Design Summary (cont) ---------------------- - Net PHI2_c: 13 loads, 5 rising, 8 falling (Driver: PIO PHI2 ) - Net nCCAS_c: 4 loads, 0 rising, 4 falling (Driver: PIO nCCAS ) - Net nCRAS_c: 7 loads, 0 rising, 7 falling (Driver: PIO nCRAS ) - Number of Clock Enables: 14 - Net RCLK_c_enable_6: 4 loads, 4 LSLICEs - Net RCLK_c_enable_5: 2 loads, 2 LSLICEs - Net PHI2_N_120_enable_1: 1 loads, 1 LSLICEs - Net PHI2_N_120_enable_2: 1 loads, 1 LSLICEs - Net PHI2_N_120_enable_6: 1 loads, 1 LSLICEs - Net RCLK_c_enable_27: 8 loads, 8 LSLICEs - Net RCLK_c_enable_10: 3 loads, 3 LSLICEs - Net PHI2_N_120_enable_7: 1 loads, 1 LSLICEs - Net RCLK_c_enable_16: 1 loads, 1 LSLICEs - Net RCLK_c_enable_28: 1 loads, 1 LSLICEs - Net RCLK_c_enable_15: 1 loads, 1 LSLICEs - Net PHI2_N_120_enable_3: 1 loads, 1 LSLICEs - Net Ready_N_292: 1 loads, 1 LSLICEs - Net PHI2_N_120_enable_8: 2 loads, 2 LSLICEs - Number of LSRs: 7 - Net RASr2: 1 loads, 1 LSLICEs - Net nRowColSel_N_35: 1 loads, 1 LSLICEs - Net Ready: 7 loads, 7 LSLICEs - Net nRWE_N_177: 1 loads, 1 LSLICEs - Net C1Submitted_N_237: 2 loads, 2 LSLICEs - Net n2366: 2 loads, 2 LSLICEs - Net nRowColSel_N_34: 1 loads, 1 LSLICEs - Number of nets driven by tri-state buffers: 0 - Top 10 highest fanout non-clock nets: - Net Ready: 18 loads - Net InitReady: 15 loads - Net RASr2: 15 loads - Net nRowColSel_N_35: 13 loads - Net nRowColSel: 12 loads - Net Din_c_4: 10 loads - Net MAin_c_1: 10 loads - Net Din_c_5: 9 loads - Net MAin_c_0: 9 loads - Net Din_c_0: 8 loads - - - - - Number of warnings: 0 - Number of errors: 0 - - -Design Errors/Warnings ----------------------- - - No errors or warnings present. - -IO (PIO) Attributes -------------------- - -+---------------------+-----------+-----------+------------+ -| IO Name | Direction | Levelmode | IO | - - Page 2 - - - - -Design: RAM2GS Date: 08/15/23 05:22:05 - -IO (PIO) Attributes (cont) --------------------------- -| | | IO_TYPE | Register | -+---------------------+-----------+-----------+------------+ -| RD[7] | BIDIR | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| RD[6] | BIDIR | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| RD[5] | BIDIR | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| RD[4] | BIDIR | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| RD[3] | BIDIR | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| RD[2] | BIDIR | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| RD[1] | BIDIR | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| RD[0] | BIDIR | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| Dout[7] | OUTPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| Dout[6] | OUTPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| Dout[5] | OUTPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| Dout[4] | OUTPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| Dout[3] | OUTPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| Dout[2] | OUTPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| Dout[1] | OUTPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| Dout[0] | OUTPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| LED | OUTPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| RBA[1] | OUTPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| RBA[0] | OUTPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| RA[11] | OUTPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| RA[10] | OUTPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| RA[9] | OUTPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| RA[8] | OUTPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| RA[7] | OUTPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| RA[6] | OUTPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| RA[5] | OUTPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| RA[4] | OUTPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ - - Page 3 - - - - -Design: RAM2GS Date: 08/15/23 05:22:05 - -IO (PIO) Attributes (cont) --------------------------- -| RA[3] | OUTPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| RA[2] | OUTPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| RA[1] | OUTPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| RA[0] | OUTPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| nRCS | OUTPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| RCKE | OUTPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| nRWE | OUTPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| nRRAS | OUTPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| nRCAS | OUTPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| RDQMH | OUTPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| RDQML | OUTPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| nUFMCS | OUTPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| UFMCLK | OUTPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| UFMSDI | OUTPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| PHI2 | INPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| MAin[9] | INPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| MAin[8] | INPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| MAin[7] | INPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| MAin[6] | INPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| MAin[5] | INPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| MAin[4] | INPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| MAin[3] | INPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| MAin[2] | INPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| MAin[1] | INPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| MAin[0] | INPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| CROW[1] | INPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| CROW[0] | INPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| Din[7] | INPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ - - Page 4 - - - - -Design: RAM2GS Date: 08/15/23 05:22:05 - -IO (PIO) Attributes (cont) --------------------------- -| Din[6] | INPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| Din[5] | INPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| Din[4] | INPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| Din[3] | INPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| Din[2] | INPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| Din[1] | INPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| Din[0] | INPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| nCCAS | INPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| nCRAS | INPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| nFWE | INPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| RCLK | INPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ -| UFMSDO | INPUT | LVCMOS25 | | -+---------------------+-----------+-----------+------------+ - -Removed logic -------------- - -Block i2 undriven or does not drive anything - clipped. -Block GSR_INST undriven or does not drive anything - clipped. -Signal PHI2_N_120 was merged into signal PHI2_c -Signal n1407 was merged into signal nRowColSel_N_34 -Signal n2380 was merged into signal Ready -Signal n1408 was merged into signal nRowColSel_N_35 -Signal nRWE_N_176 was merged into signal nRWE_N_177 -Signal GND_net undriven or does not drive anything - clipped. -Signal VCC_net undriven or does not drive anything - clipped. -Signal FS_610_add_4_19/S1 undriven or does not drive anything - clipped. -Signal FS_610_add_4_19/CO undriven or does not drive anything - clipped. -Signal FS_610_add_4_1/S0 undriven or does not drive anything - clipped. -Signal FS_610_add_4_1/CI undriven or does not drive anything - clipped. -Block i2046 was optimized away. -Block i1118_1_lut was optimized away. -Block i637_1_lut_rep_31 was optimized away. -Block i1119_1_lut was optimized away. -Block nRWE_I_50_1_lut was optimized away. -Block i1 was optimized away. - - - -Run Time and Memory Usage -------------------------- - - Total CPU Time: 0 secs - Total REAL Time: 0 secs - Peak Memory Usage: 41 MB - - Page 5 - - - - -Design: RAM2GS Date: 08/15/23 05:22:05 - -Run Time and Memory Usage (cont) --------------------------------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Page 6 - - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. - Copyright (c) 1995 AT&T Corp. All rights reserved. - Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. - Copyright (c) 2001 Agere Systems All rights reserved. - Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights - reserved. diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.mt b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.mt deleted file mode 100644 index 2d70ad1..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.mt +++ /dev/null @@ -1,9 +0,0 @@ --v -1 - - --gt - - --mapchkpnt 0 --sethld diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.ncd b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.ncd deleted file mode 100644 index 1967c447327945754f26dadb5cf7ffc3a75a66db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 197895 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 WER!}YsVapDi6(ad diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.ngd b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.ngd deleted file mode 100644 index 49ddeec1e3721f550446a3fcd2c5e38686a56b11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 156243 zcmbS!2Xq|O_5R8YFl|jW#=y{wvB9j0CGE1i9$S*JjAbwG*nq|r4A@@4fH4Fnv_K$< zfJ85pBtt?EMWKaI2LuENWkWHrv;hP*&4?NZ{NVq6@6DT;-Ic;Qf1P7%?sxCI@80|F zYcp>~Zo%uViB*q}$)9aS>P8D!Rnum*#Bgomdcdlqmo7ee#qmp1hH=WW6Hi*PdX>?< zV$sUgtCkw0>+23&ykgD%M(w!jnsL?R>c-c_I(shhSZwX;nk9(@v|R6itXjKvZTs;j zEo(n%#nG$Um#;W}89637vksp=drHf!)>-XyTc$V9mkp=f+GwpFhJpRTV~E`oiUx#4$vxJdg9DO zT4qn2*)#==%ZzeHQ(LogYG@U!U;5gFqXtqfBaDmdO=la*PK(r|9_yYtabb1!k*KoDB)Ouxy{7&6lh?G@%Kz*5e@rCb zv&dXk-B3Rsq7S;D2CQmonuv%eUjzYa<~#%}`K1M-YSqlur#7uVe%7+%AwArX(45I_ zO|#mkw^t{VFqG|HHQsOc&a?hhpv>wM#~+O}= zZbV`UDt_6LKu|Gis->+X0K*_vdmWNjBwug=4Ny=_c%L|-#JJo1?Ml23HT7C$cwGW&lJ9y7p4Y;7G*kn6+bDq=p>*>QT7sAy<^>WmBB`_)0MOD% z#h*J-sG$MS4_*mW59miXfLhzfC)%t1Mt;SL;EDFS@#EY5_D^jF4g&&5dhMA*hZI3Zn| zgm>P@UV!*^Xv0u7qc-1C0w9&n!$C((t8ZVtbZOvb&Mal3&d=>AREzkfb}&jHgd=sJ z8-?nsQS(WqQVs2`?TD!gb!v(gm9K4p{4bmUl9F|est;1T8DZ5{m-Wq0!-BO**yn|S zACnhYo^2!h>+7W0I4btCM{n(g7{fLy=j(WOyt)9Y3;4;b+y{% z{;d`jF8HjhlyasWA=9TtaLzCNeW3OythNz zH?zl75-P^ED6=?%u*|!5Afd{nu2o1wEk=~&ci^ImMvNk+I zpv>m3y5^9#m8Gs_;k`UX(1u-o28XiY{xyf&5w4O!`=#OvZ)|Hhq=i%0?>xyuGY-bq$BQ|1%W9_-(L!283og>Kfi`=fm`RM^C~HoQ~ES>biZ=(qr3Mq2nq* z&LMxce1c|Oi)*w@LoNOIlj{>S{#wT;IP|}QYlzj<%HjPRTT=B>Kf`~jBY}n*YPkg0 zQYDu_SK2;7v9ov`h{@`dH>`H!VYYL5;8ewUQcAjQx3brJFv=vp|$majSr)sds6sb9$;?>qu z%O0+#Xv+XwQ?w=F_*4UfHC9s`?NXCHpI1*i=Yf#k%JFltp{N?pxv3?NPc?F2Z*&z^ zThEwfe5$6NHJs)tUJZ37zj1sjL944=pQ@2*VQPvxe{N`sJ}h!H#aK7FK9y*M+hXkj#eVfj3{w%=J%;8DxYV8IelZ0D~XO)-8WElts%Jxon8e)~F_Vq4}xP)lQy z)XpZU6*YR!NiDM^P#*y83TO;~$qpq}$>8i{t7|#;q*@$B)g@@s09R4tWv^g@@96Ut zLYL-RN~R8hM_Sv8q6!1cbtS(p2=fY00`;{GYPH$U0<{d|a#M2jQWHa$0{pTn+)VjX zJYP`mOaPqVNT5WJ0UT#aT(3Mjdw%9d0jaTuvAjazb=vIIF-Cjg`F&)v2};XN#U?%IgvtbnxWA z0kaDv>KKY^d@4F+tB6wHQJ#{m;Iim>W(iZa7rpMN#N`~;YE;Nq>u%QBGZ9SLGb5fV zLwFP5e6t^J4HJ8|Tge5yx(`_ATk`)Lzl_|>qKa{r4=4jv4vEw;W>hX32-L8nUnZ$= zAlLdxB#CKa@<(4yIMB@Xkwn7pBCz3DzjUHH;n$?h=xD?r8@<4N-0jw*+$es22`YSS;vhwgSNL0w+e z+u2iR`Gq8)nvvttT(1JBJN0e}94W+nx=0raE#Q(SHMFD@fXkr;-bP0ptdu)@eq&bP zau;=3*QG`Ymy1Ho5S=}%oDy7yt2W4vJ?%5v1j6HQb6FU zX-xC}`|poCh&wxw9k3vCCWSSlLLNFGoa%6?7-@+~OfQ=j08&`e$2xm{>B}KQY+JMa zrt$}6-}?G%yTDiVk3BOm0F~9>+zZYSST->x-uj?GHPTEeChe(zha$4@B$$jsZ=Dq{ zl^fkOwi)hEqPx)feaIfu!=OS?1no2SOxo?Yi6UeLa7Rkd>j(m+gRGsFp#CCgLF@N zF^R>%tG^|#t7l9Cjj~v8P)x>Hm1t-stm0Uip2~QZK0OyLt&H_#>HPRWhD!hXoLnNist^a{vcvLHMUK$8(KPIA{er z{oh{AVD{+Li*%ocKeBG$Fsab5%X`Ds3{{j4(vUICE;PJDTL#mXF)~@N3*{jut5V{A zQlQMR9Z*D7rdr;QLZ3O?Z~|>d8>mrCMy3Ayz*;I$`qfxS8{S%-kLWM!3haQ&aa|p~ zC?rr~Yrm4nxGJk_SQf1gJ)T33@{Qe}fq)M0QY%vHm~d#861va&vYma(`rWktmaeEK zRYgRB4y%m+^HJOUc|aR?W*GDO4Y^94GMU!)Rx(&w#7*TR68#KTCKE60vNC*Kr8;zg zWX@mK0cOyE72%J1({N7QS5z^IoXe`2pzNH1ZH)UmFT#;wC#sgiN?wBvr_fHCQqlM8 zZzapuFKtvEy|ZU;hm3hMo7-1#pLmWza{i2&yhF@qIr3J@-T(s>QnneP+j)bevu78N zm{i35{hn?>a$m5o5s+MY?&$?2_Y`XRF3WP~G1%2yY8n;Fa_RZ8t(hyhL;ehus+KGI zeN0VpS-roZDb_hUp!j%d6j-Vp4Nz-+8o*~g`?#8i`wGeD98g^A&T5{)wXR9#+$pUP z{G}(ar%BwF*G*0BtCp>S+~?#SJ!krySuM>FJyx=n7Wotck2W9>tMVZ}MEKYU0sqOv zbA(jot%%IzP@)yBQ-gahojpfF#Mjg6Kj3KbA`n!kvTg*ZF9S=Vs^{Sw$|wrr$OR+3vpOF`|uo}<7Ytx;=HM_nF(O{Y!v(z zue2uK78>D30EFu-hn;Xo96e})4IerncAv#edf$_mjOczYE|sAxn1bpKn>2g{bA3Os zHJ{HL5_U*4WC<&znQR9*A ztsU=|_1@P=o!0h};mg#r#0Jf;)%@pepI;;SMnI{MdG9+uQmsq8XaN~8v-z+#bj0LK zq!{-E%YSMIlq}!bGtWmL?T;4IT_r<=!`vsKgx^d#LrYANkNIbsA+4TQKW77xHcWwr zUJ$h5u(m0_hR4a@d}i}#WCNm{+QyR-9I}?QFI%-}@$t*raU%+YE(NRDIh1wDFRTCv zB$55e&jI^_0nUt_=TzeImg#V}k|Af$z3e_1RCT=52ZMFL3|!aEAbXnhy?w-$z$6^@ zVJ6G$d)5JlUVkXh?QF8700k@=Eb3zEleq?CUH+HDvPnw99;2fQ^qyT7CE0M#DD8d1Fds`z*QMfY%$G;x+yIVH6@0V&hZ_DPiV-gXrM zll(@0N+TRCQ;!=yzk$?aAfyA0GD9@4(J$+5)cgjm?HR`}ftd(7Wd)R~&D)?6JsPK; z(Fn)h)Ki{cf+M;2f#&Iv+IvUy_1K(x+Vo4PnE-^eSdP^1x&h_a|BmG&dZhL?Y8jjX z^h0u^N1?WfD^@K`a;!*lbi9djHM!R5?UUxrYHgm6_P^MoTyD}d z%%rYt)`{)4IAekSK^^M6p&Wxa2&G)9MIJ&VC@0TH%@V;z$~|h7VA80^yb_Evdg>{= z1mnz``j=UP$vOK;w**sDdnv~GIOTd;j$U*vTzrd^$abK0kE|PD$x&S&u@?Bd~ zIBSK+^(YbWLA>e(Z20zw4Qi{I7{1i_mHgOIY}}j2Xf96^?QI4Sjt&NoFOu4F-o|fa zpWQ|a;%+#e{&$`wZ-^~FY&xnf8VF6zVay>L>INW(P~sMr&?z>3VjItL{oVt%=ZrZ_ zuXP5lt8$a)w9N;#ohzv+tu=C{N$4pXqe;>Wcnk~A45dsAjpPki%!SHgUg@ zeANg$yb9>lAFAQBb6b2L1!A0D0f&h5J#$H^PX8$g{Hd0ud|pg$%Iu>fqI=cLO)Wt<_|N(Cp!b}In%Onn59h*r*+ zM|mX>*LjD#B@n04Bb^e6)8^q`3B-xhvP&RNoy&nlYUHeSuoXZ{)ZWRC0CExp?H5{t zB?qR#D8P9!Yepmx@6`AxzyaYqJ0ih$HLVE11Zg%SK%(UI>$p%h*{+VO;z%+?HTrDA&Ki-Q@gjSs@`MSjPn+mPXSXGMD&0ZiVw{zDU z0nKGd>Q<1dYBf8{$?Q6>6qGaJ%|zbvoS3`ZQc%v2x0FfB>Gck~ zR8r2HcX_3toB-Fm0jO6|shjKoZ}*ieo^qp{rKlz%4?wE*HeDs{UX&~k_TX2{p;Fz*dBkg3rNsoO$K z?lE3-0-0d3br&GNF1Z4D&5O{|>dv$7NdQ}?M$A`DTsN!Hw)%MkMANjnO>Hw~;o&_d zRu=#z+b7SN-ZWdid-9qMaK~x0FvljpGSqbo)@-e_+vmy~WlISLZ_FSM8#qp!VwItC zT0h4uLwTPj^((g=<#=|XSB`Q}yP!gr!}vu`xh%)KUl`>myT~uSa+C{>bDeUOyMdqE zWoRR7BUs{bk|Xrby>gTbs(0OT6r!hEWgrfE!UTXNY8&bB8BRIM;GA48E0-y!l%w(} z?P+$o2D)~JS&lL|C%NS)8YuamQI1m7EC(5d6U#;A+I@vpCM!?%u5imyhT#~y9Hql6 zjB=FbE-}kdx@MNk)^jSGX_v{$GqZ1%%hH5-<)S=9Wqg(?WZUtD94f61Dt5uFN42PKID7#gCIXa&9X6!OqygY+61z1`eL?^lB zAQhNi89JU0PqNEVIy}KCM;YFO&2p4Z)K|!|U)Fi$vUDw3ABK z2f5`a>`lIDm7x?J4XjiFofzkoqYT4=b~(znG`w<@=I#lwR4>CY(kMsi#Liwh$}kMC zK+!v$I={ zGD&ta%2C!9cgj(=#Spg~WlC;gmZOZ$Rz^9>sBi6-qx5)-a+GHPldqPeR1mYu6yRoT zXU}=%qBVGJ4eu$M<-&CcMDlyP9G1>i2y?ITt4dkk)x5|kS5e3P%P%XWk?uHl>sCl} z)AB2$0%n!Juq$BRvaFa-YwEax`I%KNjTh4JHiB0UQ^$Em1^u1z6s=@0wI1g=CNYlw1Uqky8P)ffv~oFm*3ADquRf#HoPk&CzZJOy7^T zD`2{_#H)bW!pB(Ua5cNwf6Q{2s+RyP3oE@@W>vsUhh>%0jP@5sg*1d0+7&3RUQj8_ zh_pkv%n&-Wz^j01wq;hpjJD;J!wH79y%MIAmRliBCy%l!V7B`LrvhejS1fjF@aP2T zU{pxc`HIyF&i@0R=T=D5%h{DMr=3ksg*1e7UKv`Am1<|tbgLZ3{s2!EjB*$o1iXdo zR={*}j#B|s_bjslW~Ao06)?j+s}iQ~bDaul8aUssfEmCxuN=lk0nbs~au_=WSYlSd zn1hm^R!T#7hF2~u-wK=VRKWE8P_qJNq^4EEOovvtLYm&>j0%_`IkXbSG@JYq!X;fq zzQxjJRiJde)hUPN`;(I^q_IKh>}fJ8q}gPX-3pjawptZ1lc&Y2fa%R4l`wsuQVBCs zO?IrzNxb3L*|P`GQs3p!y{}ac%f-Nf6);|U>+Crg!lg>^re9~z1fv3`m!?wzv*9P3 z6)-cfVzpn5T~B9E(yfqYOtM}DOaqgZFhf;ul}nFjm9<7WT+dK7*cC97{$sZSW{p-k zI-X`X04e$;V7na{E80A*LbaHRI9F{A%eSwxbS&#&w+C8k9#)cg z5#6nTse3!G0%o9g0a~VnDZi6Z0n^Ft%?gDH=t z6)+9F(y4&C`~AIL0n^J%%?g;I`i)xw)4)qArRmNkMujwE^1Diy!_+%=g*1dOu0+}H zuU5d2{Tmd-HgCpVZ*~4D`MC+83SY%I5k+1mv5xnMA$pBP4nDcWvzF~R&WPJL5}MZ1 zEI$#^YEuA|Jc`u`Ue#^Wg6}L%_cRyJ<7lO(aY(3+TZq(y4kQMkJP$pXxTY@uA<2JT z(ygmjteGiKBw_<ZEu=3qX}=BrLHujsJ5JSomvW2Gxm;E zBF4nH)+>RS6xX;V5S#cUy9DCLg;LjeB^VoVJdj8L*}eW!3ek#FoDwO#)7{xqG=Vj> z&S;;_W2_jy>{1yN`>j(7F~`mU6sb^l=u5m(jG6I@18fk2rUSMU=tx11|2>4xZ=Eq| z&SaGMw+m_rVvOsLJzNiMoj$dtX?8UZU17d471BDJ)JGsfKI*Gk?EqQMw8Ce!X7kwD z$G%MKY}R#z0dhp^BwW6$E^%C-TIMg%Hh6Y~4T-8lW(9{%20H+rY-M#euBr~1-s~Tz ze%S+k3`9|J-o^ERLsXrgS|DVm^Sg)#sDY~0e0do#b z0}ZTH(#*HLDy2D*9A{TZ%WuY<1-ML$+Qu7|IJ0tfAM%`fhC2~?#Ecg1Zk1r{A!@DW zht>}xB=;pL~FJD1#X99j#I^bf;8cEc0LsyF`Hek&cEySe{SFrW$Gb6b(OK6CAAe zb$t$psU?$qHj>|3pof5;tCjpO4bUk`%b0)W zf*z{q!*Lqvg&gR0Er-qFkkHxlrU&xAmgd&U?bBK&qQcYz0Pr0^G^RRMo;5Ws8@HB? zD|@9=f{!Q8q)B-tcs+3@&P2Bar;15t3B)v<~U?U5? zw*wMvweU#Y<7$!ceSy>i5kVeTlt&%zHA^Msp@{qJQc#}LxW_03<(Y~{fccq*rPz_9 zj)Ho88C#aZA#~7NHV-S4*yDJf9vOLakuN~0xgvmW2Ee}p? za09+Rrs}D_E_*|8aNCk4bEFBDAmP zeIvkvqm%bjZgbkCmaw>=?E$I6npSmDL}Qr~MVK~=OAuzxA~!0- zk(f;Id)*Q_ncsI?C74X_Hv_pKyB~10m`vTjS(=oYduzaziTehaGI$GvynV~iP>{BF zSQ?U9>)9dcC)=y8hJu{^hp8c%qHkFtspD#ENS@>IypU89Njb+<;e&uUfhxbAww*

bDKH&euFEiwne?f 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 OLgAnyx3-5uBJ)3J((4ug diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.p2t b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.p2t deleted file mode 100644 index 16daf53..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.p2t +++ /dev/null @@ -1,9 +0,0 @@ --w --l 5 --i 6 --n 1 --t 1 --s 1 --c 0 --e 0 --exp parUseNBR=1:parCDP=0:parCDR=0:parPathBased=OFF:parASE=1 diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.p3t b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.p3t deleted file mode 100644 index 1635283..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.p3t +++ /dev/null @@ -1,5 +0,0 @@ --rem --distrce --log "RAM2GS_LCMXO2_1200HC_impl1.log" --o "RAM2GS_LCMXO2_1200HC_impl1.csv" --pr "RAM2GS_LCMXO2_1200HC_impl1.prf" diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.pad b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.pad deleted file mode 100644 index 9775856..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.pad +++ /dev/null @@ -1,309 +0,0 @@ -PAD Specification File -*************************** - -PART TYPE: LCMXO2-1200HC -Performance Grade: 4 -PACKAGE: TQFP100 -Package Status: Final Version 1.44 - -Tue Aug 15 05:22:12 2023 - -Pinout by Port Name: -+-----------+----------+---------------+-------+-----------+-----------+----------------------------------------------------------+ -| Port Name | Pin/Bank | Buffer Type | Site | PG Enable | BC Enable | Properties | -+-----------+----------+---------------+-------+-----------+-----------+----------------------------------------------------------+ -| CROW[0] | 10/3 | LVCMOS25_IN | PL4B | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| CROW[1] | 16/3 | LVCMOS25_IN | PL8A | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| Din[0] | 3/3 | LVCMOS25_IN | PL3A | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| Din[1] | 96/0 | LVCMOS25_IN | PT10B | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| Din[2] | 88/0 | LVCMOS25_IN | PT12A | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| Din[3] | 97/0 | LVCMOS25_IN | PT10A | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| Din[4] | 99/0 | LVCMOS25_IN | PT9A | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| Din[5] | 98/0 | LVCMOS25_IN | PT9B | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| Din[6] | 2/3 | LVCMOS25_IN | PL2D | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| Din[7] | 1/3 | LVCMOS25_IN | PL2C | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| Dout[0] | 76/0 | LVCMOS25_OUT | PT17D | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| Dout[1] | 86/0 | LVCMOS25_OUT | PT12C | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| Dout[2] | 87/0 | LVCMOS25_OUT | PT12B | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| Dout[3] | 85/0 | LVCMOS25_OUT | PT12D | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| Dout[4] | 83/0 | LVCMOS25_OUT | PT15B | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| Dout[5] | 84/0 | LVCMOS25_OUT | PT15A | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| Dout[6] | 78/0 | LVCMOS25_OUT | PT16C | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| Dout[7] | 82/0 | LVCMOS25_OUT | PT15C | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| LED | 34/2 | LVCMOS25_OUT | PB9A | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| MAin[0] | 14/3 | LVCMOS25_IN | PL5C | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| MAin[1] | 12/3 | LVCMOS25_IN | PL5A | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| MAin[2] | 13/3 | LVCMOS25_IN | PL5B | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| MAin[3] | 21/3 | LVCMOS25_IN | PL9B | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| MAin[4] | 20/3 | LVCMOS25_IN | PL9A | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| MAin[5] | 19/3 | LVCMOS25_IN | PL8D | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| MAin[6] | 24/3 | LVCMOS25_IN | PL10C | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| MAin[7] | 18/3 | LVCMOS25_IN | PL8C | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| MAin[8] | 25/3 | LVCMOS25_IN | PL10D | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| MAin[9] | 32/2 | LVCMOS25_IN | PB6D | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| PHI2 | 8/3 | LVCMOS25_IN | PL3D | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| RA[0] | 66/1 | LVCMOS25_OUT | PR4D | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RA[10] | 64/1 | LVCMOS25_OUT | PR5B | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RA[11] | 59/1 | LVCMOS25_OUT | PR8D | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RA[1] | 67/1 | LVCMOS25_OUT | PR4C | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RA[2] | 69/1 | LVCMOS25_OUT | PR4A | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RA[3] | 71/1 | LVCMOS25_OUT | PR3A | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RA[4] | 74/1 | LVCMOS25_OUT | PR2B | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RA[5] | 70/1 | LVCMOS25_OUT | PR3B | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RA[6] | 68/1 | LVCMOS25_OUT | PR4B | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RA[7] | 75/1 | LVCMOS25_OUT | PR2A | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RA[8] | 65/1 | LVCMOS25_OUT | PR5A | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RA[9] | 63/1 | LVCMOS25_OUT | PR5C | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RBA[0] | 58/1 | LVCMOS25_OUT | PR9A | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RBA[1] | 60/1 | LVCMOS25_OUT | PR8C | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RCKE | 53/1 | LVCMOS25_OUT | PR9D | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RCLK | 62/1 | LVCMOS25_IN | PR5D | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| RDQMH | 51/1 | LVCMOS25_OUT | PR10D | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RDQML | 48/2 | LVCMOS25_OUT | PB20C | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RD[0] | 36/2 | LVCMOS25_BIDI | PB11C | | | DRIVE:8mA PULL:DOWN CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW | -| RD[1] | 37/2 | LVCMOS25_BIDI | PB11D | | | DRIVE:8mA PULL:DOWN CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW | -| RD[2] | 38/2 | LVCMOS25_BIDI | PB11A | | | DRIVE:8mA PULL:DOWN CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW | -| RD[3] | 39/2 | LVCMOS25_BIDI | PB11B | | | DRIVE:8mA PULL:DOWN CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW | -| RD[4] | 40/2 | LVCMOS25_BIDI | PB15A | | | DRIVE:8mA PULL:DOWN CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW | -| RD[5] | 41/2 | LVCMOS25_BIDI | PB15B | | | DRIVE:8mA PULL:DOWN CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW | -| RD[6] | 42/2 | LVCMOS25_BIDI | PB18A | | | DRIVE:8mA PULL:DOWN CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW | -| RD[7] | 43/2 | LVCMOS25_BIDI | PB18B | | | DRIVE:8mA PULL:DOWN CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW | -| UFMCLK | 29/2 | LVCMOS25_OUT | PB6A | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| UFMSDI | 30/2 | LVCMOS25_OUT | PB6B | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| UFMSDO | 27/2 | LVCMOS25_IN | PB4C | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| nCCAS | 9/3 | LVCMOS25_IN | PL4A | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| nCRAS | 17/3 | LVCMOS25_IN | PL8B | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| nFWE | 28/2 | LVCMOS25_IN | PB4D | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| nRCAS | 52/1 | LVCMOS25_OUT | PR10C | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| nRCS | 57/1 | LVCMOS25_OUT | PR9B | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| nRRAS | 54/1 | LVCMOS25_OUT | PR9C | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| nRWE | 49/2 | LVCMOS25_OUT | PB20D | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| nUFMCS | 47/2 | LVCMOS25_OUT | PB18D | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -+-----------+----------+---------------+-------+-----------+-----------+----------------------------------------------------------+ - -Vccio by Bank: -+------+-------+ -| Bank | Vccio | -+------+-------+ -| 0 | 2.5V | -| 1 | 2.5V | -| 2 | 2.5V | -| 3 | 2.5V | -+------+-------+ - -Vref by Bank: -+------+-----+-----------------+---------+ -| Vref | Pin | Bank # / Vref # | Load(s) | -+------+-----+-----------------+---------+ -+------+-----+-----------------+---------+ - -Pinout by Pin Number: -+----------+-----------------------+------------+---------------+-------+---------------+-----------+-----------+ -| Pin/Bank | Pin Info | Preference | Buffer Type | Site | Dual Function | PG Enable | BC Enable | -+----------+-----------------------+------------+---------------+-------+---------------+-----------+-----------+ -| 1/3 | Din[7] | LOCATED | LVCMOS25_IN | PL2C | L_GPLLT_IN | | | -| 2/3 | Din[6] | LOCATED | LVCMOS25_IN | PL2D | L_GPLLC_IN | | | -| 3/3 | Din[0] | LOCATED | LVCMOS25_IN | PL3A | PCLKT3_2 | | | -| 4/3 | unused, PULL:DOWN | | | PL3B | PCLKC3_2 | | | -| 7/3 | unused, PULL:DOWN | | | PL3C | | | | -| 8/3 | PHI2 | LOCATED | LVCMOS25_IN | PL3D | | | | -| 9/3 | nCCAS | LOCATED | LVCMOS25_IN | PL4A | | | | -| 10/3 | CROW[0] | LOCATED | LVCMOS25_IN | PL4B | | | | -| 12/3 | MAin[1] | LOCATED | LVCMOS25_IN | PL5A | PCLKT3_1 | | | -| 13/3 | MAin[2] | LOCATED | LVCMOS25_IN | PL5B | PCLKC3_1 | | | -| 14/3 | MAin[0] | LOCATED | LVCMOS25_IN | PL5C | | | | -| 15/3 | unused, PULL:DOWN | | | PL5D | | | | -| 16/3 | CROW[1] | LOCATED | LVCMOS25_IN | PL8A | | | | -| 17/3 | nCRAS | LOCATED | LVCMOS25_IN | PL8B | | | | -| 18/3 | MAin[7] | LOCATED | LVCMOS25_IN | PL8C | | | | -| 19/3 | MAin[5] | LOCATED | LVCMOS25_IN | PL8D | | | | -| 20/3 | MAin[4] | LOCATED | LVCMOS25_IN | PL9A | PCLKT3_0 | | | -| 21/3 | MAin[3] | LOCATED | LVCMOS25_IN | PL9B | PCLKC3_0 | | | -| 24/3 | MAin[6] | LOCATED | LVCMOS25_IN | PL10C | | | | -| 25/3 | MAin[8] | LOCATED | LVCMOS25_IN | PL10D | | | | -| 27/2 | UFMSDO | LOCATED | LVCMOS25_IN | PB4C | CSSPIN | | | -| 28/2 | nFWE | LOCATED | LVCMOS25_IN | PB4D | | | | -| 29/2 | UFMCLK | LOCATED | LVCMOS25_OUT | PB6A | | | | -| 30/2 | UFMSDI | LOCATED | LVCMOS25_OUT | PB6B | | | | -| 31/2 | unused, PULL:DOWN | | | PB6C | MCLK/CCLK | | | -| 32/2 | MAin[9] | LOCATED | LVCMOS25_IN | PB6D | SO/SPISO | | | -| 34/2 | LED | LOCATED | LVCMOS25_OUT | PB9A | PCLKT2_0 | | | -| 35/2 | unused, PULL:DOWN | | | PB9B | PCLKC2_0 | | | -| 36/2 | RD[0] | LOCATED | LVCMOS25_BIDI | PB11C | | | | -| 37/2 | RD[1] | LOCATED | LVCMOS25_BIDI | PB11D | | | | -| 38/2 | RD[2] | LOCATED | LVCMOS25_BIDI | PB11A | PCLKT2_1 | | | -| 39/2 | RD[3] | LOCATED | LVCMOS25_BIDI | PB11B | PCLKC2_1 | | | -| 40/2 | RD[4] | LOCATED | LVCMOS25_BIDI | PB15A | | | | -| 41/2 | RD[5] | LOCATED | LVCMOS25_BIDI | PB15B | | | | -| 42/2 | RD[6] | LOCATED | LVCMOS25_BIDI | PB18A | | | | -| 43/2 | RD[7] | LOCATED | LVCMOS25_BIDI | PB18B | | | | -| 45/2 | unused, PULL:DOWN | | | PB18C | | | | -| 47/2 | nUFMCS | | LVCMOS25_OUT | PB18D | | | | -| 48/2 | RDQML | LOCATED | LVCMOS25_OUT | PB20C | SN | | | -| 49/2 | nRWE | LOCATED | LVCMOS25_OUT | PB20D | SI/SISPI | | | -| 51/1 | RDQMH | LOCATED | LVCMOS25_OUT | PR10D | DQ1 | | | -| 52/1 | nRCAS | LOCATED | LVCMOS25_OUT | PR10C | DQ1 | | | -| 53/1 | RCKE | LOCATED | LVCMOS25_OUT | PR9D | DQ1 | | | -| 54/1 | nRRAS | LOCATED | LVCMOS25_OUT | PR9C | DQ1 | | | -| 57/1 | nRCS | LOCATED | LVCMOS25_OUT | PR9B | DQ1 | | | -| 58/1 | RBA[0] | LOCATED | LVCMOS25_OUT | PR9A | DQ1 | | | -| 59/1 | RA[11] | LOCATED | LVCMOS25_OUT | PR8D | DQ1 | | | -| 60/1 | RBA[1] | LOCATED | LVCMOS25_OUT | PR8C | DQ1 | | | -| 61/1 | unused, PULL:DOWN | | | PR8A | DQS1 | | | -| 62/1 | RCLK | LOCATED | LVCMOS25_IN | PR5D | PCLKC1_0/DQ0 | | | -| 63/1 | RA[9] | LOCATED | LVCMOS25_OUT | PR5C | PCLKT1_0/DQ0 | | | -| 64/1 | RA[10] | LOCATED | LVCMOS25_OUT | PR5B | DQS0N | | | -| 65/1 | RA[8] | LOCATED | LVCMOS25_OUT | PR5A | DQS0 | | | -| 66/1 | RA[0] | LOCATED | LVCMOS25_OUT | PR4D | DQ0 | | | -| 67/1 | RA[1] | LOCATED | LVCMOS25_OUT | PR4C | DQ0 | | | -| 68/1 | RA[6] | LOCATED | LVCMOS25_OUT | PR4B | DQ0 | | | -| 69/1 | RA[2] | LOCATED | LVCMOS25_OUT | PR4A | DQ0 | | | -| 70/1 | RA[5] | LOCATED | LVCMOS25_OUT | PR3B | DQ0 | | | -| 71/1 | RA[3] | LOCATED | LVCMOS25_OUT | PR3A | DQ0 | | | -| 74/1 | RA[4] | LOCATED | LVCMOS25_OUT | PR2B | DQ0 | | | -| 75/1 | RA[7] | LOCATED | LVCMOS25_OUT | PR2A | DQ0 | | | -| 76/0 | Dout[0] | LOCATED | LVCMOS25_OUT | PT17D | DONE | | | -| 77/0 | unused, PULL:DOWN | | | PT17C | INITN | | | -| 78/0 | Dout[6] | LOCATED | LVCMOS25_OUT | PT16C | | | | -| 81/0 | unused, PULL:DOWN | | | PT15D | PROGRAMN | | | -| 82/0 | Dout[7] | LOCATED | LVCMOS25_OUT | PT15C | JTAGENB | | | -| 83/0 | Dout[4] | LOCATED | LVCMOS25_OUT | PT15B | | | | -| 84/0 | Dout[5] | LOCATED | LVCMOS25_OUT | PT15A | | | | -| 85/0 | Dout[3] | LOCATED | LVCMOS25_OUT | PT12D | SDA/PCLKC0_0 | | | -| 86/0 | Dout[1] | LOCATED | LVCMOS25_OUT | PT12C | SCL/PCLKT0_0 | | | -| 87/0 | Dout[2] | LOCATED | LVCMOS25_OUT | PT12B | PCLKC0_1 | | | -| 88/0 | Din[2] | LOCATED | LVCMOS25_IN | PT12A | PCLKT0_1 | | | -| 90/0 | Reserved: sysCONFIG | | | PT11D | TMS | | | -| 91/0 | Reserved: sysCONFIG | | | PT11C | TCK | | | -| 94/0 | Reserved: sysCONFIG | | | PT10D | TDI | | | -| 95/0 | Reserved: sysCONFIG | | | PT10C | TDO | | | -| 96/0 | Din[1] | LOCATED | LVCMOS25_IN | PT10B | | | | -| 97/0 | Din[3] | LOCATED | LVCMOS25_IN | PT10A | | | | -| 98/0 | Din[5] | LOCATED | LVCMOS25_IN | PT9B | | | | -| 99/0 | Din[4] | LOCATED | LVCMOS25_IN | PT9A | | | | -| PB4A/2 | unused, PULL:DOWN | | | PB4A | | | | -| PB4B/2 | unused, PULL:DOWN | | | PB4B | | | | -| PB9C/2 | unused, PULL:DOWN | | | PB9C | | | | -| PB9D/2 | unused, PULL:DOWN | | | PB9D | | | | -| PB15C/2 | unused, PULL:DOWN | | | PB15C | | | | -| PB15D/2 | unused, PULL:DOWN | | | PB15D | | | | -| PB20A/2 | unused, PULL:DOWN | | | PB20A | | | | -| PB20B/2 | unused, PULL:DOWN | | | PB20B | | | | -| PL2A/3 | unused, PULL:DOWN | | | PL2A | L_GPLLT_FB | | | -| PL2B/3 | unused, PULL:DOWN | | | PL2B | L_GPLLC_FB | | | -| PL4C/3 | unused, PULL:DOWN | | | PL4C | | | | -| PL4D/3 | unused, PULL:DOWN | | | PL4D | | | | -| PL10A/3 | unused, PULL:DOWN | | | PL10A | | | | -| PL10B/3 | unused, PULL:DOWN | | | PL10B | | | | -| PR2C/1 | unused, PULL:DOWN | | | PR2C | DQ0 | | | -| PR2D/1 | unused, PULL:DOWN | | | PR2D | DQ0 | | | -| PR8B/1 | unused, PULL:DOWN | | | PR8B | DQS1N | | | -| PR10A/1 | unused, PULL:DOWN | | | PR10A | DQ1 | | | -| PR10B/1 | unused, PULL:DOWN | | | PR10B | DQ1 | | | -| PT9C/0 | unused, PULL:DOWN | | | PT9C | | | | -| PT9D/0 | unused, PULL:DOWN | | | PT9D | | | | -| PT11A/0 | unused, PULL:DOWN | | | PT11A | | | | -| PT11B/0 | unused, PULL:DOWN | | | PT11B | | | | -| PT16A/0 | unused, PULL:DOWN | | | PT16A | | | | -| PT16B/0 | unused, PULL:DOWN | | | PT16B | | | | -| PT16D/0 | unused, PULL:DOWN | | | PT16D | | | | -| PT17A/0 | unused, PULL:DOWN | | | PT17A | | | | -| PT17B/0 | unused, PULL:DOWN | | | PT17B | | | | -+----------+-----------------------+------------+---------------+-------+---------------+-----------+-----------+ - -sysCONFIG Pins: -+----------+--------------------+--------------------+----------+-------------+-------------------+ -| Pad Name | sysCONFIG Pin Name | sysCONFIG Settings | Pin/Bank | Buffer Type | Config Pull Mode | -+----------+--------------------+--------------------+----------+-------------+-------------------+ -| PT11D | TMS | JTAG_PORT=ENABLE | 90/0 | | PULLUP | -| PT11C | TCK/TEST_CLK | JTAG_PORT=ENABLE | 91/0 | | NO pull up/down | -| PT10D | TDI/MD7 | JTAG_PORT=ENABLE | 94/0 | | PULLUP | -| PT10C | TDO | JTAG_PORT=ENABLE | 95/0 | | PULLUP | -+----------+--------------------+--------------------+----------+-------------+-------------------+ - -Dedicated sysCONFIG Pins: - - -List of All Pins' Locate Preferences Based on Final Placement After PAR -to Help Users Lock Down ALL the Pins Easily (by Simply Copy & Paste): - -LOCATE COMP "CROW[0]" SITE "10"; -LOCATE COMP "CROW[1]" SITE "16"; -LOCATE COMP "Din[0]" SITE "3"; -LOCATE COMP "Din[1]" SITE "96"; -LOCATE COMP "Din[2]" SITE "88"; -LOCATE COMP "Din[3]" SITE "97"; -LOCATE COMP "Din[4]" SITE "99"; -LOCATE COMP "Din[5]" SITE "98"; -LOCATE COMP "Din[6]" SITE "2"; -LOCATE COMP "Din[7]" SITE "1"; -LOCATE COMP "Dout[0]" SITE "76"; -LOCATE COMP "Dout[1]" SITE "86"; -LOCATE COMP "Dout[2]" SITE "87"; -LOCATE COMP "Dout[3]" SITE "85"; -LOCATE COMP "Dout[4]" SITE "83"; -LOCATE COMP "Dout[5]" SITE "84"; -LOCATE COMP "Dout[6]" SITE "78"; -LOCATE COMP "Dout[7]" SITE "82"; -LOCATE COMP "LED" SITE "34"; -LOCATE COMP "MAin[0]" SITE "14"; -LOCATE COMP "MAin[1]" SITE "12"; -LOCATE COMP "MAin[2]" SITE "13"; -LOCATE COMP "MAin[3]" SITE "21"; -LOCATE COMP "MAin[4]" SITE "20"; -LOCATE COMP "MAin[5]" SITE "19"; -LOCATE COMP "MAin[6]" SITE "24"; -LOCATE COMP "MAin[7]" SITE "18"; -LOCATE COMP "MAin[8]" SITE "25"; -LOCATE COMP "MAin[9]" SITE "32"; -LOCATE COMP "PHI2" SITE "8"; -LOCATE COMP "RA[0]" SITE "66"; -LOCATE COMP "RA[10]" SITE "64"; -LOCATE COMP "RA[11]" SITE "59"; -LOCATE COMP "RA[1]" SITE "67"; -LOCATE COMP "RA[2]" SITE "69"; -LOCATE COMP "RA[3]" SITE "71"; -LOCATE COMP "RA[4]" SITE "74"; -LOCATE COMP "RA[5]" SITE "70"; -LOCATE COMP "RA[6]" SITE "68"; -LOCATE COMP "RA[7]" SITE "75"; -LOCATE COMP "RA[8]" SITE "65"; -LOCATE COMP "RA[9]" SITE "63"; -LOCATE COMP "RBA[0]" SITE "58"; -LOCATE COMP "RBA[1]" SITE "60"; -LOCATE COMP "RCKE" SITE "53"; -LOCATE COMP "RCLK" SITE "62"; -LOCATE COMP "RDQMH" SITE "51"; -LOCATE COMP "RDQML" SITE "48"; -LOCATE COMP "RD[0]" SITE "36"; -LOCATE COMP "RD[1]" SITE "37"; -LOCATE COMP "RD[2]" SITE "38"; -LOCATE COMP "RD[3]" SITE "39"; -LOCATE COMP "RD[4]" SITE "40"; -LOCATE COMP "RD[5]" SITE "41"; -LOCATE COMP "RD[6]" SITE "42"; -LOCATE COMP "RD[7]" SITE "43"; -LOCATE COMP "UFMCLK" SITE "29"; -LOCATE COMP "UFMSDI" SITE "30"; -LOCATE COMP "UFMSDO" SITE "27"; -LOCATE COMP "nCCAS" SITE "9"; -LOCATE COMP "nCRAS" SITE "17"; -LOCATE COMP "nFWE" SITE "28"; -LOCATE COMP "nRCAS" SITE "52"; -LOCATE COMP "nRCS" SITE "57"; -LOCATE COMP "nRRAS" SITE "54"; -LOCATE COMP "nRWE" SITE "49"; -LOCATE COMP "nUFMCS" SITE "47"; - - - - - -PAR: Place And Route Diamond (64-bit) 3.12.1.454. -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. -Tue Aug 15 05:22:14 2023 - diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.par b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.par deleted file mode 100644 index 7d1b7cf..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.par +++ /dev/null @@ -1,329 +0,0 @@ -PAR: Place And Route Diamond (64-bit) 3.12.1.454. -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. -Tue Aug 15 05:22:08 2023 - -C:/lscc/diamond/3.12/ispfpga\bin\nt64\par -f RAM2GS_LCMXO2_1200HC_impl1.p2t -RAM2GS_LCMXO2_1200HC_impl1_map.ncd RAM2GS_LCMXO2_1200HC_impl1.dir -RAM2GS_LCMXO2_1200HC_impl1.prf -gui -msgset -D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/promote.xml - - -Preference file: RAM2GS_LCMXO2_1200HC_impl1.prf. - -Level/ Number Worst Timing Worst Timing Run NCD -Cost [ncd] Unrouted Slack Score Slack(hold) Score(hold) Time Status ----------- -------- ----- ------ ----------- ----------- ---- ------ -5_1 * 0 -4.650 391939 0.304 0 07 Completed - -* : Design saved. - -Total (real) run time for 1-seed: 7 secs - -par done! - -Note: user must run 'Trace' for timing closure signoff. - -Lattice Place and Route Report for Design "RAM2GS_LCMXO2_1200HC_impl1_map.ncd" -Tue Aug 15 05:22:08 2023 - -PAR: Place And Route Diamond (64-bit) 3.12.1.454. -Command Line: par -w -l 5 -i 6 -t 1 -c 0 -e 0 -gui -msgset D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/promote.xml -exp parUseNBR=1:parCDP=0:parCDR=0:parPathBased=OFF:parASE=1 RAM2GS_LCMXO2_1200HC_impl1_map.ncd RAM2GS_LCMXO2_1200HC_impl1.dir/5_1.ncd RAM2GS_LCMXO2_1200HC_impl1.prf -Preference file: RAM2GS_LCMXO2_1200HC_impl1.prf. -Placement level-cost: 5-1. -Routing Iterations: 6 - -Loading design for application par from file RAM2GS_LCMXO2_1200HC_impl1_map.ncd. -Design name: RAM2GS -NCD version: 3.3 -Vendor: LATTICE -Device: LCMXO2-1200HC -Package: TQFP100 -Performance: 4 -Loading device for application par from file 'xo2c1200.nph' in environment: C:/lscc/diamond/3.12/ispfpga. -Package Status: Final Version 1.44. -Performance Hardware Data Status: Final Version 34.4. -License checked out. - - -Ignore Preference Error(s): True -Device utilization summary: - - PIO (prelim) 67+4(JTAG)/108 66% used - 67+4(JTAG)/80 89% bonded - - SLICE 75/640 11% used - - - -Number of Signals: 285 -Number of Connections: 674 -WARNING - par: Placement timing preferences are hard to meet. However, placement will continue. Use static timing analysis to identify errors. - -Pin Constraint Summary: - 66 out of 67 pins locked (98% locked). - -The following 2 signals are selected to use the primary clock routing resources: - RCLK_c (driver: RCLK, clk load #: 40) - PHI2_c (driver: PHI2, clk load #: 13) - -WARNING - par: Signal "RCLK_c" is selected to use Primary clock resources. However, its driver comp "RCLK" is located at "62", which is not a dedicated pin for connecting to Primary clock resources. General routing has to be used to route this signal, and it might suffer from excessive delay or skew. -WARNING - par: Signal "PHI2_c" is selected to use Primary clock resources. However, its driver comp "PHI2" is located at "8", which is not a dedicated pin for connecting to Primary clock resources. General routing has to be used to route this signal, and it might suffer from excessive delay or skew. - -The following 1 signal is selected to use the secondary clock routing resources: - nCRAS_c (driver: nCRAS, clk load #: 7, sr load #: 0, ce load #: 0) - -WARNING - par: Signal "nCRAS_c" is selected to use Secondary clock resources. However, its driver comp "nCRAS" is located at "17", which is not a dedicated pin for connecting to Secondary clock resources. General routing has to be used to route this signal, and it might suffer from excessive delay or skew. -No signal is selected as Global Set/Reset. -. -Starting Placer Phase 0. -.......... -Finished Placer Phase 0. REAL time: 0 secs - -Starting Placer Phase 1. -................... -Placer score = 143529. -Finished Placer Phase 1. REAL time: 4 secs - -Starting Placer Phase 2. -. -Placer score = 143450 -Finished Placer Phase 2. REAL time: 4 secs - - ------------------- Clock Report ------------------ - -Global Clock Resources: - CLK_PIN : 0 out of 8 (0%) - General PIO: 3 out of 108 (2%) - PLL : 0 out of 1 (0%) - DCM : 0 out of 2 (0%) - DCC : 0 out of 8 (0%) - -Global Clocks: - PRIMARY "RCLK_c" from comp "RCLK" on PIO site "62 (PR5D)", clk load = 40 - PRIMARY "PHI2_c" from comp "PHI2" on PIO site "8 (PL3D)", clk load = 13 - SECONDARY "nCRAS_c" from comp "nCRAS" on PIO site "17 (PL8B)", clk load = 7, ce load = 0, sr load = 0 - - PRIMARY : 2 out of 8 (25%) - SECONDARY: 1 out of 8 (12%) - -Edge Clocks: - No edge clock selected. - ---------------- End of Clock Report --------------- - - -I/O Usage Summary (final): - 67 + 4(JTAG) out of 108 (65.7%) PIO sites used. - 67 + 4(JTAG) out of 80 (88.8%) bonded PIO sites used. - Number of PIO comps: 67; differential: 0. - Number of Vref pins used: 0. - -I/O Bank Usage Summary: -+----------+----------------+------------+-----------+ -| I/O Bank | Usage | Bank Vccio | Bank Vref | -+----------+----------------+------------+-----------+ -| 0 | 13 / 19 ( 68%) | 2.5V | - | -| 1 | 20 / 21 ( 95%) | 2.5V | - | -| 2 | 17 / 20 ( 85%) | 2.5V | - | -| 3 | 17 / 20 ( 85%) | 2.5V | - | -+----------+----------------+------------+-----------+ - -Total placer CPU time: 3 secs - -Dumping design to file RAM2GS_LCMXO2_1200HC_impl1.dir/5_1.ncd. - -0 connections routed; 674 unrouted. -Starting router resource preassignment -WARNING - par: The driver of primary clock net RCLK_c is not placed on one of the sites dedicated for primary clocks. This primary clock will be routed to an H-spine through general routing resource and might suffer from excessive delay or skew. -WARNING - par: The driver of primary clock net PHI2_c is not placed on one of the sites dedicated for primary clocks. This primary clock will be routed to an H-spine through general routing resource and might suffer from excessive delay or skew. - -WARNING - par: The following clock signals will be routed by using generic routing resource and may suffer from excessive delay and/or skew. - Signal=nCCAS_c loads=6 clock_loads=4 - -Completed router resource preassignment. Real time: 6 secs - -Start NBR router at 05:22:14 08/15/23 - -***************************************************************** -Info: NBR allows conflicts(one node used by more than one signal) - in the earlier iterations. In each iteration, it tries to - solve the conflicts while keeping the critical connections - routed as short as possible. The routing process is said to - be completed when no conflicts exist and all connections - are routed. -Note: NBR uses a different method to calculate timing slacks. The - worst slack and total negative slack may not be the same as - that in TRCE report. You should always run TRCE to verify - your design. -***************************************************************** - -Start NBR special constraint process at 05:22:14 08/15/23 - -Start NBR section for initial routing at 05:22:14 08/15/23 -Level 1, iteration 1 -2(0.00%) conflicts; 537(79.67%) untouched conns; 468417 (nbr) score; -Estimated worst slack/total negative slack: -5.186ns/-468.418ns; real time: 6 secs -Level 2, iteration 1 -11(0.01%) conflicts; 474(70.33%) untouched conns; 377050 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-377.051ns; real time: 7 secs -Level 3, iteration 1 -20(0.02%) conflicts; 254(37.69%) untouched conns; 373495 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-373.496ns; real time: 7 secs -Level 4, iteration 1 -11(0.01%) conflicts; 0(0.00%) untouched conn; 386254 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-386.255ns; real time: 7 secs - -Info: Initial congestion level at 75% usage is 0 -Info: Initial congestion area at 75% usage is 0 (0.00%) - -Start NBR section for normal routing at 05:22:15 08/15/23 -Level 1, iteration 1 -7(0.01%) conflicts; 4(0.59%) untouched conns; 379537 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-379.537ns; real time: 7 secs -Level 4, iteration 1 -9(0.01%) conflicts; 0(0.00%) untouched conn; 380799 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-380.800ns; real time: 7 secs -Level 4, iteration 2 -6(0.01%) conflicts; 0(0.00%) untouched conn; 390586 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-390.587ns; real time: 7 secs -Level 4, iteration 3 -6(0.01%) conflicts; 0(0.00%) untouched conn; 384718 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-384.719ns; real time: 7 secs -Level 4, iteration 4 -6(0.01%) conflicts; 0(0.00%) untouched conn; 384718 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-384.719ns; real time: 7 secs -Level 4, iteration 5 -4(0.00%) conflicts; 0(0.00%) untouched conn; 393013 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-393.014ns; real time: 7 secs -Level 4, iteration 6 -3(0.00%) conflicts; 0(0.00%) untouched conn; 393013 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-393.014ns; real time: 7 secs -Level 4, iteration 7 -3(0.00%) conflicts; 0(0.00%) untouched conn; 393874 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-393.875ns; real time: 7 secs -Level 4, iteration 8 -3(0.00%) conflicts; 0(0.00%) untouched conn; 393874 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-393.875ns; real time: 7 secs -Level 4, iteration 9 -2(0.00%) conflicts; 0(0.00%) untouched conn; 409288 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-409.289ns; real time: 7 secs -Level 4, iteration 10 -3(0.00%) conflicts; 0(0.00%) untouched conn; 409288 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-409.289ns; real time: 7 secs -Level 4, iteration 11 -3(0.00%) conflicts; 0(0.00%) untouched conn; 393035 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-393.036ns; real time: 7 secs -Level 4, iteration 12 -3(0.00%) conflicts; 0(0.00%) untouched conn; 393035 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-393.036ns; real time: 7 secs -Level 4, iteration 13 -2(0.00%) conflicts; 0(0.00%) untouched conn; 404326 (nbr) score; -Estimated worst slack/total negative slack: -4.574ns/-404.327ns; real time: 7 secs -Level 4, iteration 14 -2(0.00%) conflicts; 0(0.00%) untouched conn; 404326 (nbr) score; -Estimated worst slack/total negative slack: -4.574ns/-404.327ns; real time: 7 secs -Level 4, iteration 15 -2(0.00%) conflicts; 0(0.00%) untouched conn; 411533 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-411.534ns; real time: 7 secs -Level 4, iteration 16 -3(0.00%) conflicts; 0(0.00%) untouched conn; 411533 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-411.534ns; real time: 7 secs -Level 4, iteration 17 -2(0.00%) conflicts; 0(0.00%) untouched conn; 404668 (nbr) score; -Estimated worst slack/total negative slack: -4.574ns/-404.669ns; real time: 7 secs -Level 4, iteration 18 -1(0.00%) conflict; 0(0.00%) untouched conn; 404668 (nbr) score; -Estimated worst slack/total negative slack: -4.574ns/-404.669ns; real time: 7 secs -Level 4, iteration 19 -1(0.00%) conflict; 0(0.00%) untouched conn; 411533 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-411.534ns; real time: 7 secs -Level 4, iteration 20 -1(0.00%) conflict; 0(0.00%) untouched conn; 411533 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-411.534ns; real time: 7 secs -Level 4, iteration 21 -1(0.00%) conflict; 0(0.00%) untouched conn; 411533 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-411.534ns; real time: 7 secs -Level 4, iteration 22 -1(0.00%) conflict; 0(0.00%) untouched conn; 411533 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-411.534ns; real time: 7 secs -Level 4, iteration 23 -1(0.00%) conflict; 0(0.00%) untouched conn; 411276 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-411.277ns; real time: 7 secs -Level 4, iteration 24 -1(0.00%) conflict; 0(0.00%) untouched conn; 411276 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-411.277ns; real time: 7 secs -Level 4, iteration 25 -0(0.00%) conflict; 0(0.00%) untouched conn; 411952 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-411.953ns; real time: 7 secs - -Start NBR section for performance tuning (iteration 1) at 05:22:15 08/15/23 -Level 4, iteration 1 -1(0.00%) conflict; 0(0.00%) untouched conn; 405829 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-405.830ns; real time: 7 secs -Level 4, iteration 2 -0(0.00%) conflict; 0(0.00%) untouched conn; 411952 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-411.953ns; real time: 7 secs - -Start NBR section for re-routing at 05:22:15 08/15/23 -Level 4, iteration 1 -0(0.00%) conflict; 0(0.00%) untouched conn; 411952 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-411.953ns; real time: 7 secs - -Start NBR section for post-routing at 05:22:15 08/15/23 - -End NBR router with 0 unrouted connection - -NBR Summary ------------ - Number of unrouted connections : 0 (0.00%) - Number of connections with timing violations : 254 (37.69%) - Estimated worst slack : -4.650ns - Timing score : 391939 ------------ -Notes: The timing info is calculated for SETUP only and all PAR_ADJs are ignored. - - - -WARNING - par: The following clock signals will be routed by using generic routing resource and may suffer from excessive delay and/or skew. - Signal=nCCAS_c loads=6 clock_loads=4 - -Total CPU time 6 secs -Total REAL time: 7 secs -Completely routed. -End of route. 674 routed (100.00%); 0 unrouted. - -Hold time timing score: 0, hold timing errors: 0 - -Timing score: 391939 - -Dumping design to file RAM2GS_LCMXO2_1200HC_impl1.dir/5_1.ncd. - - -All signals are completely routed. - - -PAR_SUMMARY::Run status = Completed -PAR_SUMMARY::Number of unrouted conns = 0 -PAR_SUMMARY::Worst slack> = -4.650 -PAR_SUMMARY::Timing score> = 391.939 -PAR_SUMMARY::Worst slack> = 0.304 -PAR_SUMMARY::Timing score> = 0.000 -PAR_SUMMARY::Number of errors = 0 - -Total CPU time to completion: 6 secs -Total REAL time to completion: 7 secs - -par done! - -Note: user must run 'Trace' for timing closure signoff. - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.prf b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.prf deleted file mode 100644 index c80afd4..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.prf +++ /dev/null @@ -1,80 +0,0 @@ -SCHEMATIC START ; -# map: version Diamond (64-bit) 3.12.1.454 -- WARNING: Map write only section -- Tue Aug 15 05:22:06 2023 - -SYSCONFIG SDM_PORT=DISABLE SLAVE_SPI_PORT=DISABLE I2C_PORT=DISABLE MASTER_SPI_PORT=DISABLE COMPRESS_CONFIG=ON CONFIGURATION=CFG MY_ASSP=OFF ONE_TIME_PROGRAM=OFF CONFIG_SECURE=OFF MCCLK_FREQ=2.08 JTAG_PORT=ENABLE ENABLE_TRANSFR=DISABLE SHAREDEBRINIT=DISABLE MUX_CONFIGURATION_PORTS=DISABLE BACKGROUND_RECONFIG=OFF INBUF=ON ; -LOCATE COMP "RD[7]" SITE "43" ; -LOCATE COMP "RD[6]" SITE "42" ; -LOCATE COMP "RD[5]" SITE "41" ; -LOCATE COMP "RD[4]" SITE "40" ; -LOCATE COMP "RD[3]" SITE "39" ; -LOCATE COMP "RD[2]" SITE "38" ; -LOCATE COMP "RD[1]" SITE "37" ; -LOCATE COMP "RD[0]" SITE "36" ; -LOCATE COMP "Dout[7]" SITE "82" ; -LOCATE COMP "Dout[6]" SITE "78" ; -LOCATE COMP "Dout[5]" SITE "84" ; -LOCATE COMP "Dout[4]" SITE "83" ; -LOCATE COMP "Dout[3]" SITE "85" ; -LOCATE COMP "Dout[2]" SITE "87" ; -LOCATE COMP "Dout[1]" SITE "86" ; -LOCATE COMP "Dout[0]" SITE "76" ; -LOCATE COMP "LED" SITE "34" ; -LOCATE COMP "RBA[1]" SITE "60" ; -LOCATE COMP "RBA[0]" SITE "58" ; -LOCATE COMP "RA[11]" SITE "59" ; -LOCATE COMP "RA[10]" SITE "64" ; -LOCATE COMP "RA[9]" SITE "63" ; -LOCATE COMP "RA[8]" SITE "65" ; -LOCATE COMP "RA[7]" SITE "75" ; -LOCATE COMP "RA[6]" SITE "68" ; -LOCATE COMP "RA[5]" SITE "70" ; -LOCATE COMP "RA[4]" SITE "74" ; -LOCATE COMP "RA[3]" SITE "71" ; -LOCATE COMP "RA[2]" SITE "69" ; -LOCATE COMP "RA[1]" SITE "67" ; -LOCATE COMP "RA[0]" SITE "66" ; -LOCATE COMP "nRCS" SITE "57" ; -LOCATE COMP "RCKE" SITE "53" ; -LOCATE COMP "nRWE" SITE "49" ; -LOCATE COMP "nRRAS" SITE "54" ; -LOCATE COMP "nRCAS" SITE "52" ; -LOCATE COMP "RDQMH" SITE "51" ; -LOCATE COMP "RDQML" SITE "48" ; -LOCATE COMP "UFMCLK" SITE "29" ; -LOCATE COMP "UFMSDI" SITE "30" ; -LOCATE COMP "PHI2" SITE "8" ; -LOCATE COMP "MAin[9]" SITE "32" ; -LOCATE COMP "MAin[8]" SITE "25" ; -LOCATE COMP "MAin[7]" SITE "18" ; -LOCATE COMP "MAin[6]" SITE "24" ; -LOCATE COMP "MAin[5]" SITE "19" ; -LOCATE COMP "MAin[4]" SITE "20" ; -LOCATE COMP "MAin[3]" SITE "21" ; -LOCATE COMP "MAin[2]" SITE "13" ; -LOCATE COMP "MAin[1]" SITE "12" ; -LOCATE COMP "MAin[0]" SITE "14" ; -LOCATE COMP "CROW[1]" SITE "16" ; -LOCATE COMP "CROW[0]" SITE "10" ; -LOCATE COMP "Din[7]" SITE "1" ; -LOCATE COMP "Din[6]" SITE "2" ; -LOCATE COMP "Din[5]" SITE "98" ; -LOCATE COMP "Din[4]" SITE "99" ; -LOCATE COMP "Din[3]" SITE "97" ; -LOCATE COMP "Din[2]" SITE "88" ; -LOCATE COMP "Din[1]" SITE "96" ; -LOCATE COMP "Din[0]" SITE "3" ; -LOCATE COMP "nCCAS" SITE "9" ; -LOCATE COMP "nCRAS" SITE "17" ; -LOCATE COMP "nFWE" SITE "28" ; -LOCATE COMP "RCLK" SITE "62" ; -LOCATE COMP "UFMSDO" SITE "27" ; -SCHEMATIC END ; -BLOCK RESETPATHS ; -BLOCK ASYNCPATHS ; -COMMERCIAL ; - -// No timing preferences found. TRCE invokes auto-generation of timing preferences -// Section Autogen -FREQUENCY NET "RCLK_c" 299.401 MHz ; -FREQUENCY NET "PHI2_c" 99.079 MHz ; -// End Section Autogen diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.pt b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.pt deleted file mode 100644 index e5e32de..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.pt +++ /dev/null @@ -1,10 +0,0 @@ --v -10 - - - - --gt --sethld --sp 4 --sphld m diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.t2b b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.t2b deleted file mode 100644 index f5d2846..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.t2b +++ /dev/null @@ -1,5 +0,0 @@ - - --g RamCfg:Reset - --path "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC" diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.tw1 b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.tw1 deleted file mode 100644 index e13b3ff..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.tw1 +++ /dev/null @@ -1,349 +0,0 @@ - -Loading design for application trce from file ram2gs_lcmxo2_1200hc_impl1_map.ncd. -Design name: RAM2GS -NCD version: 3.3 -Vendor: LATTICE -Device: LCMXO2-1200HC -Package: TQFP100 -Performance: 4 -Loading device for application trce from file 'xo2c1200.nph' in environment: C:/lscc/diamond/3.12/ispfpga. -Package Status: Final Version 1.44. -Performance Hardware Data Status: Final Version 34.4. -Setup and Hold Report - --------------------------------------------------------------------------------- -Lattice TRACE Report - Setup, Version Diamond (64-bit) 3.12.1.454 -Tue Aug 15 05:22:07 2023 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. - -Report Information ------------------- -Command line: trce -v 1 -gt -mapchkpnt 0 -sethld -o RAM2GS_LCMXO2_1200HC_impl1.tw1 -gui -msgset D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/promote.xml RAM2GS_LCMXO2_1200HC_impl1_map.ncd RAM2GS_LCMXO2_1200HC_impl1.prf -Design file: ram2gs_lcmxo2_1200hc_impl1_map.ncd -Preference file: ram2gs_lcmxo2_1200hc_impl1.prf -Device,speed: LCMXO2-1200HC,4 -Report level: verbose report, limited to 1 item per preference --------------------------------------------------------------------------------- - -Report Type: based on TRACE automatically generated preferences -BLOCK ASYNCPATHS -BLOCK RESETPATHS --------------------------------------------------------------------------------- - - - -================================================================================ -Preference: FREQUENCY NET "RCLK_c" 299.401000 MHz ; - 459 items scored, 245 timing errors detected. --------------------------------------------------------------------------------- - - -Error: The following path exceeds requirements by 3.815ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q FS_610__i13 (from RCLK_c +) - Destination: FF Data in n8MEGEN_418 (to RCLK_c +) - - Delay: 6.873ns (28.2% logic, 71.8% route), 4 logic levels. - - Constraint Details: - - 6.873ns physical path delay SLICE_0 to SLICE_57 exceeds - 3.340ns delay constraint less - 0.282ns CE_SET requirement (totaling 3.058ns) by 3.815ns - - Physical Path Details: - - Data path SLICE_0 to SLICE_57: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 SLICE_0.CLK to SLICE_0.Q0 SLICE_0 (from RCLK_c) -ROUTE 3 e 1.234 SLICE_0.Q0 to SLICE_85.B0 FS_13 -CTOF_DEL --- 0.495 SLICE_85.B0 to SLICE_85.F0 SLICE_85 -ROUTE 5 e 1.234 SLICE_85.F0 to SLICE_57.A1 n10 -CTOF_DEL --- 0.495 SLICE_57.A1 to SLICE_57.F1 SLICE_57 -ROUTE 2 e 1.234 SLICE_57.F1 to SLICE_84.A0 n2367 -CTOF_DEL --- 0.495 SLICE_84.A0 to SLICE_84.F0 SLICE_84 -ROUTE 1 e 1.234 SLICE_84.F0 to SLICE_57.CE RCLK_c_enable_15 (to RCLK_c) - -------- - 6.873 (28.2% logic, 71.8% route), 4 logic levels. - -Warning: 139.762MHz is the maximum frequency for this preference. - - -================================================================================ -Preference: FREQUENCY NET "PHI2_c" 99.079000 MHz ; - 113 items scored, 104 timing errors detected. --------------------------------------------------------------------------------- - - -Error: The following path exceeds requirements by 4.837ns (weighted slack = -9.674ns) - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q Bank_i7 (from PHI2_c +) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) - - Delay: 9.577ns (30.6% logic, 69.4% route), 6 logic levels. - - Constraint Details: - - 9.577ns physical path delay SLICE_101 to SLICE_19 exceeds - 5.047ns delay constraint less - 0.307ns CE_SET requirement (totaling 4.740ns) by 4.837ns - - Physical Path Details: - - Data path SLICE_101 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 SLICE_101.CLK to SLICE_101.Q1 SLICE_101 (from PHI2_c) -ROUTE 1 e 1.234 SLICE_101.Q1 to SLICE_100.C1 Bank_7 -CTOF_DEL --- 0.495 SLICE_100.C1 to SLICE_100.F1 SLICE_100 -ROUTE 1 e 1.234 SLICE_100.F1 to SLICE_74.B1 n2277 -CTOF_DEL --- 0.495 SLICE_74.B1 to SLICE_74.F1 SLICE_74 -ROUTE 8 e 1.234 SLICE_74.F1 to SLICE_91.B1 n26 -CTOF_DEL --- 0.495 SLICE_91.B1 to SLICE_91.F1 SLICE_91 -ROUTE 1 e 1.234 SLICE_91.F1 to SLICE_88.D0 n2362 -CTOF_DEL --- 0.495 SLICE_88.D0 to SLICE_88.F0 SLICE_88 -ROUTE 3 e 0.480 SLICE_88.F0 to SLICE_88.C1 C1Submitted_N_237 -CTOF_DEL --- 0.495 SLICE_88.C1 to SLICE_88.F1 SLICE_88 -ROUTE 1 e 1.234 SLICE_88.F1 to SLICE_19.CE PHI2_N_120_enable_1 (to PHI2_c) - -------- - 9.577 (30.6% logic, 69.4% route), 6 logic levels. - -Warning: 50.592MHz is the maximum frequency for this preference. - -Report Summary --------------- ----------------------------------------------------------------------------- -Preference | Constraint| Actual|Levels ----------------------------------------------------------------------------- - | | | -FREQUENCY NET "RCLK_c" 299.401000 MHz ; | 299.401 MHz| 139.762 MHz| 4 * - | | | -FREQUENCY NET "PHI2_c" 99.079000 MHz ; | 99.079 MHz| 50.592 MHz| 6 * - | | | ----------------------------------------------------------------------------- - - -2 preferences(marked by "*" above) not met. - ----------------------------------------------------------------------------- -Critical Nets | Loads| Errors| % of total ----------------------------------------------------------------------------- -n26 | 8| 78| 22.35% - | | | ----------------------------------------------------------------------------- - - -Clock Domains Analysis ------------------------- - -Found 4 clocks: - -Clock Domain: nCRAS_c Source: nCRAS.PAD Loads: 9 - No transfer within this clock domain is found - -Clock Domain: nCCAS_c Source: nCCAS.PAD Loads: 6 - No transfer within this clock domain is found - -Clock Domain: RCLK_c Source: RCLK.PAD Loads: 40 - Covered under: FREQUENCY NET "RCLK_c" 299.401000 MHz ; - - Data transfers from: - Clock Domain: nCRAS_c Source: nCRAS.PAD - Not reported because source and destination domains are unrelated. - To report these transfers please refer to preference CLKSKEWDIFF to define - external clock skew between clock ports. - - Clock Domain: PHI2_c Source: PHI2.PAD - Not reported because source and destination domains are unrelated. - To report these transfers please refer to preference CLKSKEWDIFF to define - external clock skew between clock ports. - -Clock Domain: PHI2_c Source: PHI2.PAD Loads: 14 - Covered under: FREQUENCY NET "PHI2_c" 99.079000 MHz ; - - Data transfers from: - Clock Domain: RCLK_c Source: RCLK.PAD - Not reported because source and destination domains are unrelated. - To report these transfers please refer to preference CLKSKEWDIFF to define - external clock skew between clock ports. - - -Timing summary (Setup): ---------------- - -Timing errors: 349 Score: 848079 -Cumulative negative slack: 584487 - -Constraints cover 572 paths, 2 nets, and 409 connections (60.68% coverage) - --------------------------------------------------------------------------------- -Lattice TRACE Report - Hold, Version Diamond (64-bit) 3.12.1.454 -Tue Aug 15 05:22:07 2023 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. - -Report Information ------------------- -Command line: trce -v 1 -gt -mapchkpnt 0 -sethld -o RAM2GS_LCMXO2_1200HC_impl1.tw1 -gui -msgset D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/promote.xml RAM2GS_LCMXO2_1200HC_impl1_map.ncd RAM2GS_LCMXO2_1200HC_impl1.prf -Design file: ram2gs_lcmxo2_1200hc_impl1_map.ncd -Preference file: ram2gs_lcmxo2_1200hc_impl1.prf -Device,speed: LCMXO2-1200HC,M -Report level: verbose report, limited to 1 item per preference --------------------------------------------------------------------------------- - -BLOCK ASYNCPATHS -BLOCK RESETPATHS --------------------------------------------------------------------------------- - - - -================================================================================ -Preference: FREQUENCY NET "RCLK_c" 299.401000 MHz ; - 459 items scored, 0 timing errors detected. --------------------------------------------------------------------------------- - - -Passed: The following path meets requirements by 0.351ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q IS_FSM__i4 (from RCLK_c +) - Destination: FF Data in IS_FSM__i5 (to RCLK_c +) - - Delay: 0.332ns (40.1% logic, 59.9% route), 1 logic levels. - - Constraint Details: - - 0.332ns physical path delay SLICE_106 to SLICE_106 meets - -0.019ns M_HLD and - 0.000ns delay constraint requirement (totaling -0.019ns) by 0.351ns - - Physical Path Details: - - Data path SLICE_106 to SLICE_106: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 SLICE_106.CLK to SLICE_106.Q0 SLICE_106 (from RCLK_c) -ROUTE 1 e 0.199 SLICE_106.Q0 to SLICE_106.M1 n736 (to RCLK_c) - -------- - 0.332 (40.1% logic, 59.9% route), 1 logic levels. - - -================================================================================ -Preference: FREQUENCY NET "PHI2_c" 99.079000 MHz ; - 113 items scored, 0 timing errors detected. --------------------------------------------------------------------------------- - - -Passed: The following path meets requirements by 0.447ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q C1Submitted_406 (from PHI2_c -) - Destination: FF Data in C1Submitted_406 (to PHI2_c -) - - Delay: 0.434ns (53.9% logic, 46.1% route), 2 logic levels. - - Constraint Details: - - 0.434ns physical path delay SLICE_15 to SLICE_15 meets - -0.013ns DIN_HLD and - 0.000ns delay constraint requirement (totaling -0.013ns) by 0.447ns - - Physical Path Details: - - Data path SLICE_15 to SLICE_15: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 SLICE_15.CLK to SLICE_15.Q0 SLICE_15 (from PHI2_c) -ROUTE 2 e 0.199 SLICE_15.Q0 to SLICE_15.C0 C1Submitted -CTOF_DEL --- 0.101 SLICE_15.C0 to SLICE_15.F0 SLICE_15 -ROUTE 1 e 0.001 SLICE_15.F0 to SLICE_15.DI0 n1398 (to PHI2_c) - -------- - 0.434 (53.9% logic, 46.1% route), 2 logic levels. - -Report Summary --------------- ----------------------------------------------------------------------------- -Preference(MIN Delays) | Constraint| Actual|Levels ----------------------------------------------------------------------------- - | | | -FREQUENCY NET "RCLK_c" 299.401000 MHz ; | 0.000 ns| 0.351 ns| 1 - | | | -FREQUENCY NET "PHI2_c" 99.079000 MHz ; | 0.000 ns| 0.447 ns| 2 - | | | ----------------------------------------------------------------------------- - - -All preferences were met. - - -Clock Domains Analysis ------------------------- - -Found 4 clocks: - -Clock Domain: nCRAS_c Source: nCRAS.PAD Loads: 9 - No transfer within this clock domain is found - -Clock Domain: nCCAS_c Source: nCCAS.PAD Loads: 6 - No transfer within this clock domain is found - -Clock Domain: RCLK_c Source: RCLK.PAD Loads: 40 - Covered under: FREQUENCY NET "RCLK_c" 299.401000 MHz ; - - Data transfers from: - Clock Domain: nCRAS_c Source: nCRAS.PAD - Not reported because source and destination domains are unrelated. - To report these transfers please refer to preference CLKSKEWDIFF to define - external clock skew between clock ports. - - Clock Domain: PHI2_c Source: PHI2.PAD - Not reported because source and destination domains are unrelated. - To report these transfers please refer to preference CLKSKEWDIFF to define - external clock skew between clock ports. - -Clock Domain: PHI2_c Source: PHI2.PAD Loads: 14 - Covered under: FREQUENCY NET "PHI2_c" 99.079000 MHz ; - - Data transfers from: - Clock Domain: RCLK_c Source: RCLK.PAD - Not reported because source and destination domains are unrelated. - To report these transfers please refer to preference CLKSKEWDIFF to define - external clock skew between clock ports. - - -Timing summary (Hold): ---------------- - -Timing errors: 0 Score: 0 -Cumulative negative slack: 0 - -Constraints cover 572 paths, 2 nets, and 409 connections (60.68% coverage) - - - -Timing summary (Setup and Hold): ---------------- - -Timing errors: 349 (setup), 0 (hold) -Score: 848079 (setup), 0 (hold) -Cumulative negative slack: 584487 (584487+0) --------------------------------------------------------------------------------- - --------------------------------------------------------------------------------- - diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.twr b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.twr deleted file mode 100644 index 97270c5..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.twr +++ /dev/null @@ -1,2163 +0,0 @@ - -Loading design for application trce from file ram2gs_lcmxo2_1200hc_impl1.ncd. -Design name: RAM2GS -NCD version: 3.3 -Vendor: LATTICE -Device: LCMXO2-1200HC -Package: TQFP100 -Performance: 4 -Loading device for application trce from file 'xo2c1200.nph' in environment: C:/lscc/diamond/3.12/ispfpga. -Package Status: Final Version 1.44. -Performance Hardware Data Status: Final Version 34.4. -Setup and Hold Report - --------------------------------------------------------------------------------- -Lattice TRACE Report - Setup, Version Diamond (64-bit) 3.12.1.454 -Tue Aug 15 05:22:16 2023 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. - -Report Information ------------------- -Command line: trce -v 10 -gt -sethld -sp 4 -sphld m -o RAM2GS_LCMXO2_1200HC_impl1.twr -gui -msgset D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/promote.xml RAM2GS_LCMXO2_1200HC_impl1.ncd RAM2GS_LCMXO2_1200HC_impl1.prf -Design file: ram2gs_lcmxo2_1200hc_impl1.ncd -Preference file: ram2gs_lcmxo2_1200hc_impl1.prf -Device,speed: LCMXO2-1200HC,4 -Report level: verbose report, limited to 10 items per preference --------------------------------------------------------------------------------- - -Report Type: based on TRACE automatically generated preferences -BLOCK ASYNCPATHS -BLOCK RESETPATHS --------------------------------------------------------------------------------- - - - -================================================================================ -Preference: FREQUENCY NET "RCLK_c" 299.401000 MHz ; - 459 items scored, 247 timing errors detected. --------------------------------------------------------------------------------- - - -Error: The following path exceeds requirements by 2.400ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q FS_610__i12 (from RCLK_c +) - Destination: FF Data in UFMCLK_416 (to RCLK_c +) - - Delay: 5.574ns (43.6% logic, 56.4% route), 5 logic levels. - - Constraint Details: - - 5.574ns physical path delay SLICE_1 to SLICE_44 exceeds - 3.340ns delay constraint less - 0.000ns skew and - 0.166ns DIN_SET requirement (totaling 3.174ns) by 2.400ns - - Physical Path Details: - - Data path SLICE_1 to SLICE_44: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R7C15C.CLK to R7C15C.Q1 SLICE_1 (from RCLK_c) -ROUTE 5 1.440 R7C15C.Q1 to R8C15A.B0 FS_12 -CTOF_DEL --- 0.495 R8C15A.B0 to R8C15A.F0 SLICE_105 -ROUTE 1 0.626 R8C15A.F0 to R8C15D.D1 n12 -CTOF_DEL --- 0.495 R8C15D.D1 to R8C15D.F1 SLICE_82 -ROUTE 3 0.640 R8C15D.F1 to R8C16B.D1 n13_adj_6 -CTOF_DEL --- 0.495 R8C16B.D1 to R8C16B.F1 SLICE_44 -ROUTE 1 0.436 R8C16B.F1 to R8C16B.C0 n1893 -CTOF_DEL --- 0.495 R8C16B.C0 to R8C16B.F0 SLICE_44 -ROUTE 1 0.000 R8C16B.F0 to R8C16B.DI0 UFMCLK_N_224 (to RCLK_c) - -------- - 5.574 (43.6% logic, 56.4% route), 5 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_1: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R7C15C.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_44: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R8C16B.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 2.383ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q FS_610__i12 (from RCLK_c +) - Destination: FF Data in InitReady_394 (to RCLK_c +) - - Delay: 5.441ns (35.6% logic, 64.4% route), 4 logic levels. - - Constraint Details: - - 5.441ns physical path delay SLICE_1 to SLICE_26 exceeds - 3.340ns delay constraint less - 0.000ns skew and - 0.282ns CE_SET requirement (totaling 3.058ns) by 2.383ns - - Physical Path Details: - - Data path SLICE_1 to SLICE_26: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R7C15C.CLK to R7C15C.Q1 SLICE_1 (from RCLK_c) -ROUTE 5 1.440 R7C15C.Q1 to R8C15A.B0 FS_12 -CTOF_DEL --- 0.495 R8C15A.B0 to R8C15A.F0 SLICE_105 -ROUTE 1 0.626 R8C15A.F0 to R8C15D.D1 n12 -CTOF_DEL --- 0.495 R8C15D.D1 to R8C15D.F1 SLICE_82 -ROUTE 3 0.453 R8C15D.F1 to R8C15D.C0 n13_adj_6 -CTOF_DEL --- 0.495 R8C15D.C0 to R8C15D.F0 SLICE_82 -ROUTE 1 0.985 R8C15D.F0 to R8C13D.CE RCLK_c_enable_28 (to RCLK_c) - -------- - 5.441 (35.6% logic, 64.4% route), 4 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_1: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R7C15C.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_26: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R8C13D.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 2.217ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q FS_610__i16 (from RCLK_c +) - Destination: FF Data in nUFMCS_415 (to RCLK_c +) - - Delay: 5.391ns (45.1% logic, 54.9% route), 5 logic levels. - - Constraint Details: - - 5.391ns physical path delay SLICE_9 to SLICE_70 exceeds - 3.340ns delay constraint less - 0.000ns skew and - 0.166ns DIN_SET requirement (totaling 3.174ns) by 2.217ns - - Physical Path Details: - - Data path SLICE_9 to SLICE_70: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R7C16A.CLK to R7C16A.Q1 SLICE_9 (from RCLK_c) -ROUTE 3 1.017 R7C16A.Q1 to R7C16D.B0 FS_16 -CTOF_DEL --- 0.495 R7C16D.B0 to R7C16D.F0 SLICE_85 -ROUTE 5 0.340 R7C16D.F0 to R7C17A.D1 n10 -CTOF_DEL --- 0.495 R7C17A.D1 to R7C17A.F1 SLICE_76 -ROUTE 2 0.635 R7C17A.F1 to R7C17D.D1 n2368 -CTOF_DEL --- 0.495 R7C17D.D1 to R7C17D.F1 SLICE_70 -ROUTE 1 0.967 R7C17D.F1 to R7C17D.A0 n64 -CTOF_DEL --- 0.495 R7C17D.A0 to R7C17D.F0 SLICE_70 -ROUTE 1 0.000 R7C17D.F0 to R7C17D.DI0 nUFMCS_N_199 (to RCLK_c) - -------- - 5.391 (45.1% logic, 54.9% route), 5 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_9: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R7C16A.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_70: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R7C17D.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 2.180ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q FS_610__i15 (from RCLK_c +) - Destination: FF Data in nUFMCS_415 (to RCLK_c +) - - Delay: 5.354ns (45.4% logic, 54.6% route), 5 logic levels. - - Constraint Details: - - 5.354ns physical path delay SLICE_9 to SLICE_70 exceeds - 3.340ns delay constraint less - 0.000ns skew and - 0.166ns DIN_SET requirement (totaling 3.174ns) by 2.180ns - - Physical Path Details: - - Data path SLICE_9 to SLICE_70: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R7C16A.CLK to R7C16A.Q0 SLICE_9 (from RCLK_c) -ROUTE 3 0.980 R7C16A.Q0 to R7C16D.A0 FS_15 -CTOF_DEL --- 0.495 R7C16D.A0 to R7C16D.F0 SLICE_85 -ROUTE 5 0.340 R7C16D.F0 to R7C17A.D1 n10 -CTOF_DEL --- 0.495 R7C17A.D1 to R7C17A.F1 SLICE_76 -ROUTE 2 0.635 R7C17A.F1 to R7C17D.D1 n2368 -CTOF_DEL --- 0.495 R7C17D.D1 to R7C17D.F1 SLICE_70 -ROUTE 1 0.967 R7C17D.F1 to R7C17D.A0 n64 -CTOF_DEL --- 0.495 R7C17D.A0 to R7C17D.F0 SLICE_70 -ROUTE 1 0.000 R7C17D.F0 to R7C17D.DI0 nUFMCS_N_199 (to RCLK_c) - -------- - 5.354 (45.4% logic, 54.6% route), 5 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_9: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R7C16A.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_70: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R7C17D.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 2.166ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q FS_610__i16 (from RCLK_c +) - Destination: FF Data in UFMCLK_416 (to RCLK_c +) - - Delay: 5.340ns (45.5% logic, 54.5% route), 5 logic levels. - - Constraint Details: - - 5.340ns physical path delay SLICE_9 to SLICE_44 exceeds - 3.340ns delay constraint less - 0.000ns skew and - 0.166ns DIN_SET requirement (totaling 3.174ns) by 2.166ns - - Physical Path Details: - - Data path SLICE_9 to SLICE_44: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R7C16A.CLK to R7C16A.Q1 SLICE_9 (from RCLK_c) -ROUTE 3 1.206 R7C16A.Q1 to R8C15A.C0 FS_16 -CTOF_DEL --- 0.495 R8C15A.C0 to R8C15A.F0 SLICE_105 -ROUTE 1 0.626 R8C15A.F0 to R8C15D.D1 n12 -CTOF_DEL --- 0.495 R8C15D.D1 to R8C15D.F1 SLICE_82 -ROUTE 3 0.640 R8C15D.F1 to R8C16B.D1 n13_adj_6 -CTOF_DEL --- 0.495 R8C16B.D1 to R8C16B.F1 SLICE_44 -ROUTE 1 0.436 R8C16B.F1 to R8C16B.C0 n1893 -CTOF_DEL --- 0.495 R8C16B.C0 to R8C16B.F0 SLICE_44 -ROUTE 1 0.000 R8C16B.F0 to R8C16B.DI0 UFMCLK_N_224 (to RCLK_c) - -------- - 5.340 (45.5% logic, 54.5% route), 5 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_9: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R7C16A.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_44: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R8C16B.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 2.158ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q FS_610__i16 (from RCLK_c +) - Destination: FF Data in UFMCLK_416 (to RCLK_c +) - - Delay: 5.332ns (45.6% logic, 54.4% route), 5 logic levels. - - Constraint Details: - - 5.332ns physical path delay SLICE_9 to SLICE_44 exceeds - 3.340ns delay constraint less - 0.000ns skew and - 0.166ns DIN_SET requirement (totaling 3.174ns) by 2.158ns - - Physical Path Details: - - Data path SLICE_9 to SLICE_44: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R7C16A.CLK to R7C16A.Q1 SLICE_9 (from RCLK_c) -ROUTE 3 1.017 R7C16A.Q1 to R7C16D.B0 FS_16 -CTOF_DEL --- 0.495 R7C16D.B0 to R7C16D.F0 SLICE_85 -ROUTE 5 0.461 R7C16D.F0 to R7C16D.C1 n10 -CTOF_DEL --- 0.495 R7C16D.C1 to R7C16D.F1 SLICE_85 -ROUTE 1 0.986 R7C16D.F1 to R8C16B.A1 n2267 -CTOF_DEL --- 0.495 R8C16B.A1 to R8C16B.F1 SLICE_44 -ROUTE 1 0.436 R8C16B.F1 to R8C16B.C0 n1893 -CTOF_DEL --- 0.495 R8C16B.C0 to R8C16B.F0 SLICE_44 -ROUTE 1 0.000 R8C16B.F0 to R8C16B.DI0 UFMCLK_N_224 (to RCLK_c) - -------- - 5.332 (45.6% logic, 54.4% route), 5 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_9: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R7C16A.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_44: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R8C16B.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 2.149ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q FS_610__i16 (from RCLK_c +) - Destination: FF Data in InitReady_394 (to RCLK_c +) - - Delay: 5.207ns (37.2% logic, 62.8% route), 4 logic levels. - - Constraint Details: - - 5.207ns physical path delay SLICE_9 to SLICE_26 exceeds - 3.340ns delay constraint less - 0.000ns skew and - 0.282ns CE_SET requirement (totaling 3.058ns) by 2.149ns - - Physical Path Details: - - Data path SLICE_9 to SLICE_26: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R7C16A.CLK to R7C16A.Q1 SLICE_9 (from RCLK_c) -ROUTE 3 1.206 R7C16A.Q1 to R8C15A.C0 FS_16 -CTOF_DEL --- 0.495 R8C15A.C0 to R8C15A.F0 SLICE_105 -ROUTE 1 0.626 R8C15A.F0 to R8C15D.D1 n12 -CTOF_DEL --- 0.495 R8C15D.D1 to R8C15D.F1 SLICE_82 -ROUTE 3 0.453 R8C15D.F1 to R8C15D.C0 n13_adj_6 -CTOF_DEL --- 0.495 R8C15D.C0 to R8C15D.F0 SLICE_82 -ROUTE 1 0.985 R8C15D.F0 to R8C13D.CE RCLK_c_enable_28 (to RCLK_c) - -------- - 5.207 (37.2% logic, 62.8% route), 4 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_9: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R7C16A.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_26: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R8C13D.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 2.131ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q FS_610__i7 (from RCLK_c +) - Destination: FF Data in n8MEGEN_418 (to RCLK_c +) - - Delay: 5.189ns (37.3% logic, 62.7% route), 4 logic levels. - - Constraint Details: - - 5.189ns physical path delay SLICE_2 to SLICE_57 exceeds - 3.340ns delay constraint less - 0.000ns skew and - 0.282ns CE_SET requirement (totaling 3.058ns) by 2.131ns - - Physical Path Details: - - Data path SLICE_2 to SLICE_57: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R7C15A.CLK to R7C15A.Q0 SLICE_2 (from RCLK_c) -ROUTE 3 1.086 R7C15A.Q0 to R8C14D.D0 FS_7 -CTOF_DEL --- 0.495 R8C14D.D0 to R8C14D.F0 SLICE_95 -ROUTE 1 0.747 R8C14D.F0 to R8C14A.C0 n15 -CTOF_DEL --- 0.495 R8C14A.C0 to R8C14A.F0 SLICE_86 -ROUTE 1 0.766 R8C14A.F0 to R8C16C.C0 n4_adj_7 -CTOF_DEL --- 0.495 R8C16C.C0 to R8C16C.F0 SLICE_84 -ROUTE 1 0.653 R8C16C.F0 to R8C16A.CE RCLK_c_enable_15 (to RCLK_c) - -------- - 5.189 (37.3% logic, 62.7% route), 4 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_2: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R7C15A.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_57: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R8C16A.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 2.121ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q FS_610__i15 (from RCLK_c +) - Destination: FF Data in UFMCLK_416 (to RCLK_c +) - - Delay: 5.295ns (45.9% logic, 54.1% route), 5 logic levels. - - Constraint Details: - - 5.295ns physical path delay SLICE_9 to SLICE_44 exceeds - 3.340ns delay constraint less - 0.000ns skew and - 0.166ns DIN_SET requirement (totaling 3.174ns) by 2.121ns - - Physical Path Details: - - Data path SLICE_9 to SLICE_44: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R7C16A.CLK to R7C16A.Q0 SLICE_9 (from RCLK_c) -ROUTE 3 0.980 R7C16A.Q0 to R7C16D.A0 FS_15 -CTOF_DEL --- 0.495 R7C16D.A0 to R7C16D.F0 SLICE_85 -ROUTE 5 0.461 R7C16D.F0 to R7C16D.C1 n10 -CTOF_DEL --- 0.495 R7C16D.C1 to R7C16D.F1 SLICE_85 -ROUTE 1 0.986 R7C16D.F1 to R8C16B.A1 n2267 -CTOF_DEL --- 0.495 R8C16B.A1 to R8C16B.F1 SLICE_44 -ROUTE 1 0.436 R8C16B.F1 to R8C16B.C0 n1893 -CTOF_DEL --- 0.495 R8C16B.C0 to R8C16B.F0 SLICE_44 -ROUTE 1 0.000 R8C16B.F0 to R8C16B.DI0 UFMCLK_N_224 (to RCLK_c) - -------- - 5.295 (45.9% logic, 54.1% route), 5 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_9: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R7C16A.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_44: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R8C16B.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 2.087ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q FS_610__i12 (from RCLK_c +) - Destination: FF Data in UFMSDI_417 (to RCLK_c +) - - Delay: 5.261ns (46.2% logic, 53.8% route), 5 logic levels. - - Constraint Details: - - 5.261ns physical path delay SLICE_1 to SLICE_45 exceeds - 3.340ns delay constraint less - 0.000ns skew and - 0.166ns DIN_SET requirement (totaling 3.174ns) by 2.087ns - - Physical Path Details: - - Data path SLICE_1 to SLICE_45: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R7C15C.CLK to R7C15C.Q1 SLICE_1 (from RCLK_c) -ROUTE 5 0.786 R7C15C.Q1 to R8C15C.C1 FS_12 -CTOF_DEL --- 0.495 R8C15C.C1 to R8C15C.F1 SLICE_80 -ROUTE 3 0.640 R8C15C.F1 to R8C14D.D1 n2375 -CTOF_DEL --- 0.495 R8C14D.D1 to R8C14D.F1 SLICE_95 -ROUTE 1 0.967 R8C14D.F1 to R8C14C.A1 n7 -CTOF_DEL --- 0.495 R8C14C.A1 to R8C14C.F1 SLICE_45 -ROUTE 1 0.436 R8C14C.F1 to R8C14C.C0 n2174 -CTOF_DEL --- 0.495 R8C14C.C0 to R8C14C.F0 SLICE_45 -ROUTE 1 0.000 R8C14C.F0 to R8C14C.DI0 UFMSDI_N_231 (to RCLK_c) - -------- - 5.261 (46.2% logic, 53.8% route), 5 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_1: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R7C15C.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_45: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R8C14C.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - -Warning: 174.216MHz is the maximum frequency for this preference. - - -================================================================================ -Preference: FREQUENCY NET "PHI2_c" 99.079000 MHz ; - 113 items scored, 88 timing errors detected. --------------------------------------------------------------------------------- - - -Error: The following path exceeds requirements by 2.325ns (weighted slack = -4.650ns) - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q Bank_i6 (from PHI2_c +) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) - - Delay: 7.065ns (41.4% logic, 58.6% route), 6 logic levels. - - Constraint Details: - - 7.065ns physical path delay SLICE_101 to SLICE_19 exceeds - 5.047ns delay constraint less - 0.000ns skew and - 0.307ns CE_SET requirement (totaling 4.740ns) by 2.325ns - - Physical Path Details: - - Data path SLICE_101 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R9C16C.CLK to R9C16C.Q0 SLICE_101 (from PHI2_c) -ROUTE 1 0.986 R9C16C.Q0 to R9C14A.A0 Bank_6 -CTOF_DEL --- 0.495 R9C14A.A0 to R9C14A.F0 SLICE_68 -ROUTE 1 0.766 R9C14A.F0 to R9C15B.C1 n2287 -CTOF_DEL --- 0.495 R9C15B.C1 to R9C15B.F1 SLICE_74 -ROUTE 8 0.662 R9C15B.F1 to R9C14D.D1 n26 -CTOF_DEL --- 0.495 R9C14D.D1 to R9C14D.F1 SLICE_91 -ROUTE 1 0.626 R9C14D.F1 to R9C14C.D0 n2362 -CTOF_DEL --- 0.495 R9C14C.D0 to R9C14C.F0 SLICE_88 -ROUTE 3 0.445 R9C14C.F0 to R9C14C.C1 C1Submitted_N_237 -CTOF_DEL --- 0.495 R9C14C.C1 to R9C14C.F1 SLICE_88 -ROUTE 1 0.653 R9C14C.F1 to R9C14B.CE PHI2_N_120_enable_1 (to PHI2_c) - -------- - 7.065 (41.4% logic, 58.6% route), 6 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_101: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R9C16C.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R9C14B.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 2.287ns (weighted slack = -4.574ns) - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q Bank_i1 (from PHI2_c +) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) - - Delay: 7.027ns (41.7% logic, 58.3% route), 6 logic levels. - - Constraint Details: - - 7.027ns physical path delay SLICE_93 to SLICE_19 exceeds - 5.047ns delay constraint less - 0.000ns skew and - 0.307ns CE_SET requirement (totaling 4.740ns) by 2.287ns - - Physical Path Details: - - Data path SLICE_93 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R9C16A.CLK to R9C16A.Q1 SLICE_93 (from PHI2_c) -ROUTE 1 0.744 R9C16A.Q1 to R9C15C.C1 Bank_1 -CTOF_DEL --- 0.495 R9C15C.C1 to R9C15C.F1 SLICE_99 -ROUTE 2 0.635 R9C15C.F1 to R9C15D.D1 n22 -CTOF_DEL --- 0.495 R9C15D.D1 to R9C15D.F1 SLICE_79 -ROUTE 7 0.997 R9C15D.F1 to R9C14D.A1 n2369 -CTOF_DEL --- 0.495 R9C14D.A1 to R9C14D.F1 SLICE_91 -ROUTE 1 0.626 R9C14D.F1 to R9C14C.D0 n2362 -CTOF_DEL --- 0.495 R9C14C.D0 to R9C14C.F0 SLICE_88 -ROUTE 3 0.445 R9C14C.F0 to R9C14C.C1 C1Submitted_N_237 -CTOF_DEL --- 0.495 R9C14C.C1 to R9C14C.F1 SLICE_88 -ROUTE 1 0.653 R9C14C.F1 to R9C14B.CE PHI2_N_120_enable_1 (to PHI2_c) - -------- - 7.027 (41.7% logic, 58.3% route), 6 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_93: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R9C16A.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R9C14B.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 2.166ns (weighted slack = -4.332ns) - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q Bank_i4 (from PHI2_c +) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) - - Delay: 6.906ns (42.4% logic, 57.6% route), 6 logic levels. - - Constraint Details: - - 6.906ns physical path delay SLICE_102 to SLICE_19 exceeds - 5.047ns delay constraint less - 0.000ns skew and - 0.307ns CE_SET requirement (totaling 4.740ns) by 2.166ns - - Physical Path Details: - - Data path SLICE_102 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R8C15B.CLK to R8C15B.Q0 SLICE_102 (from PHI2_c) -ROUTE 1 0.623 R8C15B.Q0 to R9C15C.D1 Bank_4 -CTOF_DEL --- 0.495 R9C15C.D1 to R9C15C.F1 SLICE_99 -ROUTE 2 0.635 R9C15C.F1 to R9C15D.D1 n22 -CTOF_DEL --- 0.495 R9C15D.D1 to R9C15D.F1 SLICE_79 -ROUTE 7 0.997 R9C15D.F1 to R9C14D.A1 n2369 -CTOF_DEL --- 0.495 R9C14D.A1 to R9C14D.F1 SLICE_91 -ROUTE 1 0.626 R9C14D.F1 to R9C14C.D0 n2362 -CTOF_DEL --- 0.495 R9C14C.D0 to R9C14C.F0 SLICE_88 -ROUTE 3 0.445 R9C14C.F0 to R9C14C.C1 C1Submitted_N_237 -CTOF_DEL --- 0.495 R9C14C.C1 to R9C14C.F1 SLICE_88 -ROUTE 1 0.653 R9C14C.F1 to R9C14B.CE PHI2_N_120_enable_1 (to PHI2_c) - -------- - 6.906 (42.4% logic, 57.6% route), 6 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_102: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R8C15B.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R9C14B.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 1.984ns (weighted slack = -3.968ns) - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q Bank_i3 (from PHI2_c +) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) - - Delay: 6.724ns (43.5% logic, 56.5% route), 6 logic levels. - - Constraint Details: - - 6.724ns physical path delay SLICE_103 to SLICE_19 exceeds - 5.047ns delay constraint less - 0.000ns skew and - 0.307ns CE_SET requirement (totaling 4.740ns) by 1.984ns - - Physical Path Details: - - Data path SLICE_103 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R9C16D.CLK to R9C16D.Q1 SLICE_103 (from PHI2_c) -ROUTE 1 0.645 R9C16D.Q1 to R9C14A.D0 Bank_3 -CTOF_DEL --- 0.495 R9C14A.D0 to R9C14A.F0 SLICE_68 -ROUTE 1 0.766 R9C14A.F0 to R9C15B.C1 n2287 -CTOF_DEL --- 0.495 R9C15B.C1 to R9C15B.F1 SLICE_74 -ROUTE 8 0.662 R9C15B.F1 to R9C14D.D1 n26 -CTOF_DEL --- 0.495 R9C14D.D1 to R9C14D.F1 SLICE_91 -ROUTE 1 0.626 R9C14D.F1 to R9C14C.D0 n2362 -CTOF_DEL --- 0.495 R9C14C.D0 to R9C14C.F0 SLICE_88 -ROUTE 3 0.445 R9C14C.F0 to R9C14C.C1 C1Submitted_N_237 -CTOF_DEL --- 0.495 R9C14C.C1 to R9C14C.F1 SLICE_88 -ROUTE 1 0.653 R9C14C.F1 to R9C14B.CE PHI2_N_120_enable_1 (to PHI2_c) - -------- - 6.724 (43.5% logic, 56.5% route), 6 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_103: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R9C16D.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R9C14B.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 1.874ns (weighted slack = -3.748ns) - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q Bank_i7 (from PHI2_c +) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) - - Delay: 6.614ns (44.3% logic, 55.7% route), 6 logic levels. - - Constraint Details: - - 6.614ns physical path delay SLICE_101 to SLICE_19 exceeds - 5.047ns delay constraint less - 0.000ns skew and - 0.307ns CE_SET requirement (totaling 4.740ns) by 1.874ns - - Physical Path Details: - - Data path SLICE_101 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R9C16C.CLK to R9C16C.Q1 SLICE_101 (from PHI2_c) -ROUTE 1 0.986 R9C16C.Q1 to R9C15A.A1 Bank_7 -CTOF_DEL --- 0.495 R9C15A.A1 to R9C15A.F1 SLICE_100 -ROUTE 1 0.315 R9C15A.F1 to R9C15B.D1 n2277 -CTOF_DEL --- 0.495 R9C15B.D1 to R9C15B.F1 SLICE_74 -ROUTE 8 0.662 R9C15B.F1 to R9C14D.D1 n26 -CTOF_DEL --- 0.495 R9C14D.D1 to R9C14D.F1 SLICE_91 -ROUTE 1 0.626 R9C14D.F1 to R9C14C.D0 n2362 -CTOF_DEL --- 0.495 R9C14C.D0 to R9C14C.F0 SLICE_88 -ROUTE 3 0.445 R9C14C.F0 to R9C14C.C1 C1Submitted_N_237 -CTOF_DEL --- 0.495 R9C14C.C1 to R9C14C.F1 SLICE_88 -ROUTE 1 0.653 R9C14C.F1 to R9C14B.CE PHI2_N_120_enable_1 (to PHI2_c) - -------- - 6.614 (44.3% logic, 55.7% route), 6 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_101: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R9C16C.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R9C14B.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 1.803ns (weighted slack = -3.606ns) - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q Bank_i6 (from PHI2_c +) - Destination: FF Data in ADSubmitted_407 (to PHI2_c -) - - Delay: 6.565ns (37.0% logic, 63.0% route), 5 logic levels. - - Constraint Details: - - 6.565ns physical path delay SLICE_101 to SLICE_10 exceeds - 5.047ns delay constraint less - 0.000ns skew and - 0.285ns LSR_SET requirement (totaling 4.762ns) by 1.803ns - - Physical Path Details: - - Data path SLICE_101 to SLICE_10: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R9C16C.CLK to R9C16C.Q0 SLICE_101 (from PHI2_c) -ROUTE 1 0.986 R9C16C.Q0 to R9C14A.A0 Bank_6 -CTOF_DEL --- 0.495 R9C14A.A0 to R9C14A.F0 SLICE_68 -ROUTE 1 0.766 R9C14A.F0 to R9C15B.C1 n2287 -CTOF_DEL --- 0.495 R9C15B.C1 to R9C15B.F1 SLICE_74 -ROUTE 8 0.662 R9C15B.F1 to R9C14D.D1 n26 -CTOF_DEL --- 0.495 R9C14D.D1 to R9C14D.F1 SLICE_91 -ROUTE 1 0.626 R9C14D.F1 to R9C14C.D0 n2362 -CTOF_DEL --- 0.495 R9C14C.D0 to R9C14C.F0 SLICE_88 -ROUTE 3 1.093 R9C14C.F0 to R10C14B.LSR C1Submitted_N_237 (to PHI2_c) - -------- - 6.565 (37.0% logic, 63.0% route), 5 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_101: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R9C16C.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_10: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R10C14B.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 1.803ns (weighted slack = -3.606ns) - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q Bank_i6 (from PHI2_c +) - Destination: FF Data in C1Submitted_406 (to PHI2_c -) - - Delay: 6.565ns (37.0% logic, 63.0% route), 5 logic levels. - - Constraint Details: - - 6.565ns physical path delay SLICE_101 to SLICE_15 exceeds - 5.047ns delay constraint less - 0.000ns skew and - 0.285ns LSR_SET requirement (totaling 4.762ns) by 1.803ns - - Physical Path Details: - - Data path SLICE_101 to SLICE_15: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R9C16C.CLK to R9C16C.Q0 SLICE_101 (from PHI2_c) -ROUTE 1 0.986 R9C16C.Q0 to R9C14A.A0 Bank_6 -CTOF_DEL --- 0.495 R9C14A.A0 to R9C14A.F0 SLICE_68 -ROUTE 1 0.766 R9C14A.F0 to R9C15B.C1 n2287 -CTOF_DEL --- 0.495 R9C15B.C1 to R9C15B.F1 SLICE_74 -ROUTE 8 0.662 R9C15B.F1 to R9C14D.D1 n26 -CTOF_DEL --- 0.495 R9C14D.D1 to R9C14D.F1 SLICE_91 -ROUTE 1 0.626 R9C14D.F1 to R9C14C.D0 n2362 -CTOF_DEL --- 0.495 R9C14C.D0 to R9C14C.F0 SLICE_88 -ROUTE 3 1.093 R9C14C.F0 to R10C14C.LSR C1Submitted_N_237 (to PHI2_c) - -------- - 6.565 (37.0% logic, 63.0% route), 5 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_101: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R9C16C.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_15: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R10C14C.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 1.765ns (weighted slack = -3.530ns) - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q Bank_i1 (from PHI2_c +) - Destination: FF Data in ADSubmitted_407 (to PHI2_c -) - - Delay: 6.527ns (37.3% logic, 62.7% route), 5 logic levels. - - Constraint Details: - - 6.527ns physical path delay SLICE_93 to SLICE_10 exceeds - 5.047ns delay constraint less - 0.000ns skew and - 0.285ns LSR_SET requirement (totaling 4.762ns) by 1.765ns - - Physical Path Details: - - Data path SLICE_93 to SLICE_10: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R9C16A.CLK to R9C16A.Q1 SLICE_93 (from PHI2_c) -ROUTE 1 0.744 R9C16A.Q1 to R9C15C.C1 Bank_1 -CTOF_DEL --- 0.495 R9C15C.C1 to R9C15C.F1 SLICE_99 -ROUTE 2 0.635 R9C15C.F1 to R9C15D.D1 n22 -CTOF_DEL --- 0.495 R9C15D.D1 to R9C15D.F1 SLICE_79 -ROUTE 7 0.997 R9C15D.F1 to R9C14D.A1 n2369 -CTOF_DEL --- 0.495 R9C14D.A1 to R9C14D.F1 SLICE_91 -ROUTE 1 0.626 R9C14D.F1 to R9C14C.D0 n2362 -CTOF_DEL --- 0.495 R9C14C.D0 to R9C14C.F0 SLICE_88 -ROUTE 3 1.093 R9C14C.F0 to R10C14B.LSR C1Submitted_N_237 (to PHI2_c) - -------- - 6.527 (37.3% logic, 62.7% route), 5 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_93: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R9C16A.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_10: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R10C14B.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 1.765ns (weighted slack = -3.530ns) - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q Bank_i1 (from PHI2_c +) - Destination: FF Data in C1Submitted_406 (to PHI2_c -) - - Delay: 6.527ns (37.3% logic, 62.7% route), 5 logic levels. - - Constraint Details: - - 6.527ns physical path delay SLICE_93 to SLICE_15 exceeds - 5.047ns delay constraint less - 0.000ns skew and - 0.285ns LSR_SET requirement (totaling 4.762ns) by 1.765ns - - Physical Path Details: - - Data path SLICE_93 to SLICE_15: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R9C16A.CLK to R9C16A.Q1 SLICE_93 (from PHI2_c) -ROUTE 1 0.744 R9C16A.Q1 to R9C15C.C1 Bank_1 -CTOF_DEL --- 0.495 R9C15C.C1 to R9C15C.F1 SLICE_99 -ROUTE 2 0.635 R9C15C.F1 to R9C15D.D1 n22 -CTOF_DEL --- 0.495 R9C15D.D1 to R9C15D.F1 SLICE_79 -ROUTE 7 0.997 R9C15D.F1 to R9C14D.A1 n2369 -CTOF_DEL --- 0.495 R9C14D.A1 to R9C14D.F1 SLICE_91 -ROUTE 1 0.626 R9C14D.F1 to R9C14C.D0 n2362 -CTOF_DEL --- 0.495 R9C14C.D0 to R9C14C.F0 SLICE_88 -ROUTE 3 1.093 R9C14C.F0 to R10C14C.LSR C1Submitted_N_237 (to PHI2_c) - -------- - 6.527 (37.3% logic, 62.7% route), 5 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_93: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R9C16A.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_15: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R10C14C.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 1.750ns (weighted slack = -3.500ns) - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q Bank_i6 (from PHI2_c +) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) - - Delay: 6.490ns (37.5% logic, 62.5% route), 5 logic levels. - - Constraint Details: - - 6.490ns physical path delay SLICE_101 to SLICE_19 exceeds - 5.047ns delay constraint less - 0.000ns skew and - 0.307ns CE_SET requirement (totaling 4.740ns) by 1.750ns - - Physical Path Details: - - Data path SLICE_101 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R9C16C.CLK to R9C16C.Q0 SLICE_101 (from PHI2_c) -ROUTE 1 0.986 R9C16C.Q0 to R9C14A.A0 Bank_6 -CTOF_DEL --- 0.495 R9C14A.A0 to R9C14A.F0 SLICE_68 -ROUTE 1 0.766 R9C14A.F0 to R9C15B.C1 n2287 -CTOF_DEL --- 0.495 R9C15B.C1 to R9C15B.F1 SLICE_74 -ROUTE 8 0.688 R9C15B.F1 to R10C15C.D0 n26 -CTOF_DEL --- 0.495 R10C15C.D0 to R10C15C.F0 SLICE_104 -ROUTE 2 0.965 R10C15C.F0 to R9C14C.D1 n2363 -CTOF_DEL --- 0.495 R9C14C.D1 to R9C14C.F1 SLICE_88 -ROUTE 1 0.653 R9C14C.F1 to R9C14B.CE PHI2_N_120_enable_1 (to PHI2_c) - -------- - 6.490 (37.5% logic, 62.5% route), 5 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_101: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R9C16C.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R9C14B.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - -Warning: 67.833MHz is the maximum frequency for this preference. - -Report Summary --------------- ----------------------------------------------------------------------------- -Preference | Constraint| Actual|Levels ----------------------------------------------------------------------------- - | | | -FREQUENCY NET "RCLK_c" 299.401000 MHz ; | 299.401 MHz| 174.216 MHz| 5 * - | | | -FREQUENCY NET "PHI2_c" 99.079000 MHz ; | 99.079 MHz| 67.833 MHz| 6 * - | | | ----------------------------------------------------------------------------- - - -2 preferences(marked by "*" above) not met. - ----------------------------------------------------------------------------- -Critical Nets | Loads| Errors| % of total ----------------------------------------------------------------------------- -n26 | 8| 64| 19.10% - | | | -n1996 | 1| 49| 14.63% - | | | -n1997 | 1| 46| 13.73% - | | | -n1995 | 1| 45| 13.43% - | | | -n1998 | 1| 38| 11.34% - | | | -n1994 | 1| 37| 11.04% - | | | ----------------------------------------------------------------------------- - - -Clock Domains Analysis ------------------------- - -Found 4 clocks: - -Clock Domain: nCRAS_c Source: nCRAS.PAD Loads: 9 - No transfer within this clock domain is found - -Clock Domain: nCCAS_c Source: nCCAS.PAD Loads: 6 - No transfer within this clock domain is found - -Clock Domain: RCLK_c Source: RCLK.PAD Loads: 40 - Covered under: FREQUENCY NET "RCLK_c" 299.401000 MHz ; - - Data transfers from: - Clock Domain: nCRAS_c Source: nCRAS.PAD - Not reported because source and destination domains are unrelated. - To report these transfers please refer to preference CLKSKEWDIFF to define - external clock skew between clock ports. - - Clock Domain: PHI2_c Source: PHI2.PAD - Not reported because source and destination domains are unrelated. - To report these transfers please refer to preference CLKSKEWDIFF to define - external clock skew between clock ports. - -Clock Domain: PHI2_c Source: PHI2.PAD Loads: 14 - Covered under: FREQUENCY NET "PHI2_c" 99.079000 MHz ; - - Data transfers from: - Clock Domain: RCLK_c Source: RCLK.PAD - Not reported because source and destination domains are unrelated. - To report these transfers please refer to preference CLKSKEWDIFF to define - external clock skew between clock ports. - - -Timing summary (Setup): ---------------- - -Timing errors: 335 Score: 391939 -Cumulative negative slack: 304509 - -Constraints cover 572 paths, 2 nets, and 409 connections (60.68% coverage) - --------------------------------------------------------------------------------- -Lattice TRACE Report - Hold, Version Diamond (64-bit) 3.12.1.454 -Tue Aug 15 05:22:16 2023 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. - -Report Information ------------------- -Command line: trce -v 10 -gt -sethld -sp 4 -sphld m -o RAM2GS_LCMXO2_1200HC_impl1.twr -gui -msgset D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/promote.xml RAM2GS_LCMXO2_1200HC_impl1.ncd RAM2GS_LCMXO2_1200HC_impl1.prf -Design file: ram2gs_lcmxo2_1200hc_impl1.ncd -Preference file: ram2gs_lcmxo2_1200hc_impl1.prf -Device,speed: LCMXO2-1200HC,m -Report level: verbose report, limited to 10 items per preference --------------------------------------------------------------------------------- - -BLOCK ASYNCPATHS -BLOCK RESETPATHS --------------------------------------------------------------------------------- - - - -================================================================================ -Preference: FREQUENCY NET "RCLK_c" 299.401000 MHz ; - 459 items scored, 0 timing errors detected. --------------------------------------------------------------------------------- - - -Passed: The following path meets requirements by 0.304ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q IS_FSM__i4 (from RCLK_c +) - Destination: FF Data in IS_FSM__i5 (to RCLK_c +) - - Delay: 0.285ns (46.7% logic, 53.3% route), 1 logic levels. - - Constraint Details: - - 0.285ns physical path delay SLICE_106 to SLICE_106 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.304ns - - Physical Path Details: - - Data path SLICE_106 to SLICE_106: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R10C13B.CLK to R10C13B.Q0 SLICE_106 (from RCLK_c) -ROUTE 1 0.152 R10C13B.Q0 to R10C13B.M1 n736 (to RCLK_c) - -------- - 0.285 (46.7% logic, 53.3% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_106: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R10C13B.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_106: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R10C13B.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.304ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q CASr_382 (from RCLK_c +) - Destination: FF Data in CASr2_383 (to RCLK_c +) - - Delay: 0.285ns (46.7% logic, 53.3% route), 1 logic levels. - - Constraint Details: - - 0.285ns physical path delay SLICE_16 to SLICE_16 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.304ns - - Physical Path Details: - - Data path SLICE_16 to SLICE_16: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R7C12B.CLK to R7C12B.Q0 SLICE_16 (from RCLK_c) -ROUTE 1 0.152 R7C12B.Q0 to R7C12B.M1 CASr (to RCLK_c) - -------- - 0.285 (46.7% logic, 53.3% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_16: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R7C12B.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_16: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R7C12B.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.304ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q IS_FSM__i8 (from RCLK_c +) - Destination: FF Data in IS_FSM__i9 (to RCLK_c +) - - Delay: 0.285ns (46.7% logic, 53.3% route), 1 logic levels. - - Constraint Details: - - 0.285ns physical path delay SLICE_75 to SLICE_75 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.304ns - - Physical Path Details: - - Data path SLICE_75 to SLICE_75: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R10C13D.CLK to R10C13D.Q0 SLICE_75 (from RCLK_c) -ROUTE 1 0.152 R10C13D.Q0 to R10C13D.M1 n732 (to RCLK_c) - -------- - 0.285 (46.7% logic, 53.3% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_75: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R10C13D.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_75: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R10C13D.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.304ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q IS_FSM__i12 (from RCLK_c +) - Destination: FF Data in IS_FSM__i13 (to RCLK_c +) - - Delay: 0.285ns (46.7% logic, 53.3% route), 1 logic levels. - - Constraint Details: - - 0.285ns physical path delay SLICE_78 to SLICE_78 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.304ns - - Physical Path Details: - - Data path SLICE_78 to SLICE_78: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R8C12B.CLK to R8C12B.Q0 SLICE_78 (from RCLK_c) -ROUTE 1 0.152 R8C12B.Q0 to R8C12B.M1 n728 (to RCLK_c) - -------- - 0.285 (46.7% logic, 53.3% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_78: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R8C12B.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_78: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R8C12B.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.304ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q IS_FSM__i14 (from RCLK_c +) - Destination: FF Data in IS_FSM__i15 (to RCLK_c +) - - Delay: 0.285ns (46.7% logic, 53.3% route), 1 logic levels. - - Constraint Details: - - 0.285ns physical path delay SLICE_81 to SLICE_81 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.304ns - - Physical Path Details: - - Data path SLICE_81 to SLICE_81: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R9C12A.CLK to R9C12A.Q0 SLICE_81 (from RCLK_c) -ROUTE 1 0.152 R9C12A.Q0 to R9C12A.M1 n726 (to RCLK_c) - -------- - 0.285 (46.7% logic, 53.3% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_81: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R9C12A.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_81: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R9C12A.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.304ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q IS_FSM__i2 (from RCLK_c +) - Destination: FF Data in IS_FSM__i3 (to RCLK_c +) - - Delay: 0.285ns (46.7% logic, 53.3% route), 1 logic levels. - - Constraint Details: - - 0.285ns physical path delay SLICE_84 to SLICE_84 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.304ns - - Physical Path Details: - - Data path SLICE_84 to SLICE_84: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R8C16C.CLK to R8C16C.Q0 SLICE_84 (from RCLK_c) -ROUTE 1 0.152 R8C16C.Q0 to R8C16C.M1 n738 (to RCLK_c) - -------- - 0.285 (46.7% logic, 53.3% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_84: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R8C16C.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_84: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R8C16C.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.304ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q IS_FSM__i6 (from RCLK_c +) - Destination: FF Data in IS_FSM__i7 (to RCLK_c +) - - Delay: 0.285ns (46.7% logic, 53.3% route), 1 logic levels. - - Constraint Details: - - 0.285ns physical path delay SLICE_97 to SLICE_97 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.304ns - - Physical Path Details: - - Data path SLICE_97 to SLICE_97: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R10C14A.CLK to R10C14A.Q0 SLICE_97 (from RCLK_c) -ROUTE 1 0.152 R10C14A.Q0 to R10C14A.M1 n734 (to RCLK_c) - -------- - 0.285 (46.7% logic, 53.3% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_97: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R10C14A.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_97: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R10C14A.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.306ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q RASr_379 (from RCLK_c +) - Destination: FF Data in RASr2_380 (to RCLK_c +) - - Delay: 0.287ns (46.3% logic, 53.7% route), 1 logic levels. - - Constraint Details: - - 0.287ns physical path delay SLICE_30 to SLICE_30 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.306ns - - Physical Path Details: - - Data path SLICE_30 to SLICE_30: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R8C13B.CLK to R8C13B.Q0 SLICE_30 (from RCLK_c) -ROUTE 2 0.154 R8C13B.Q0 to R8C13B.M1 RASr (to RCLK_c) - -------- - 0.287 (46.3% logic, 53.7% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_30: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R8C13B.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_30: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R8C13B.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.306ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q IS_FSM__i1 (from RCLK_c +) - Destination: FF Data in IS_FSM__i2 (to RCLK_c +) - - Delay: 0.287ns (46.3% logic, 53.7% route), 1 logic levels. - - Constraint Details: - - 0.287ns physical path delay SLICE_98 to SLICE_84 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.306ns - - Physical Path Details: - - Data path SLICE_98 to SLICE_84: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R8C16D.CLK to R8C16D.Q1 SLICE_98 (from RCLK_c) -ROUTE 4 0.154 R8C16D.Q1 to R8C16C.M0 nRCAS_N_165 (to RCLK_c) - -------- - 0.287 (46.3% logic, 53.7% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_98: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R8C16D.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_84: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R8C16C.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.306ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q IS_FSM__i0 (from RCLK_c +) - Destination: FF Data in IS_FSM__i1 (to RCLK_c +) - - Delay: 0.287ns (46.3% logic, 53.7% route), 1 logic levels. - - Constraint Details: - - 0.287ns physical path delay SLICE_98 to SLICE_98 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.306ns - - Physical Path Details: - - Data path SLICE_98 to SLICE_98: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R8C16D.CLK to R8C16D.Q0 SLICE_98 (from RCLK_c) -ROUTE 4 0.154 R8C16D.Q0 to R8C16D.M1 nRCS_N_139 (to RCLK_c) - -------- - 0.287 (46.3% logic, 53.7% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_98: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R8C16D.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_98: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R8C16D.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - -================================================================================ -Preference: FREQUENCY NET "PHI2_c" 99.079000 MHz ; - 113 items scored, 0 timing errors detected. --------------------------------------------------------------------------------- - - -Passed: The following path meets requirements by 0.379ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q C1Submitted_406 (from PHI2_c -) - Destination: FF Data in C1Submitted_406 (to PHI2_c -) - - Delay: 0.366ns (63.9% logic, 36.1% route), 2 logic levels. - - Constraint Details: - - 0.366ns physical path delay SLICE_15 to SLICE_15 meets - -0.013ns DIN_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.013ns) by 0.379ns - - Physical Path Details: - - Data path SLICE_15 to SLICE_15: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R10C14C.CLK to R10C14C.Q0 SLICE_15 (from PHI2_c) -ROUTE 2 0.132 R10C14C.Q0 to R10C14C.A0 C1Submitted -CTOF_DEL --- 0.101 R10C14C.A0 to R10C14C.F0 SLICE_15 -ROUTE 1 0.000 R10C14C.F0 to R10C14C.DI0 n1398 (to PHI2_c) - -------- - 0.366 (63.9% logic, 36.1% route), 2 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_15: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R10C14C.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_15: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R10C14C.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.629ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q ADSubmitted_407 (from PHI2_c -) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) - - Delay: 0.601ns (38.9% logic, 61.1% route), 2 logic levels. - - Constraint Details: - - 0.601ns physical path delay SLICE_10 to SLICE_19 meets - -0.028ns CE_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.028ns) by 0.629ns - - Physical Path Details: - - Data path SLICE_10 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R10C14B.CLK to R10C14B.Q0 SLICE_10 (from PHI2_c) -ROUTE 1 0.224 R10C14B.Q0 to R9C14C.B1 ADSubmitted -CTOF_DEL --- 0.101 R9C14C.B1 to R9C14C.F1 SLICE_88 -ROUTE 1 0.143 R9C14C.F1 to R9C14B.CE PHI2_N_120_enable_1 (to PHI2_c) - -------- - 0.601 (38.9% logic, 61.1% route), 2 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_10: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R10C14B.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R9C14B.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.715ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q CmdEnable_405 (from PHI2_c -) - Destination: FF Data in XOR8MEG_408 (to PHI2_c -) - - Delay: 0.687ns (34.1% logic, 65.9% route), 2 logic levels. - - Constraint Details: - - 0.687ns physical path delay SLICE_19 to SLICE_50 meets - -0.028ns CE_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.028ns) by 0.715ns - - Physical Path Details: - - Data path SLICE_19 to SLICE_50: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R9C14B.CLK to R9C14B.Q0 SLICE_19 (from PHI2_c) -ROUTE 2 0.310 R9C14B.Q0 to R10C15B.B1 CmdEnable -CTOF_DEL --- 0.101 R10C15B.B1 to R10C15B.F1 SLICE_83 -ROUTE 1 0.143 R10C15B.F1 to R10C15D.CE PHI2_N_120_enable_3 (to PHI2_c) - -------- - 0.687 (34.1% logic, 65.9% route), 2 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R9C14B.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_50: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R10C15D.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.873ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q CmdEnable_405 (from PHI2_c -) - Destination: FF Data in CmdUFMCS_412 (to PHI2_c -) - FF CmdUFMCLK_413 - - Delay: 0.845ns (39.6% logic, 60.4% route), 3 logic levels. - - Constraint Details: - - 0.845ns physical path delay SLICE_19 to SLICE_100 meets - -0.028ns CE_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.028ns) by 0.873ns - - Physical Path Details: - - Data path SLICE_19 to SLICE_100: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R9C14B.CLK to R9C14B.Q0 SLICE_19 (from PHI2_c) -ROUTE 2 0.224 R9C14B.Q0 to R10C15A.C0 CmdEnable -CTOF_DEL --- 0.101 R10C15A.C0 to R10C15A.F0 SLICE_73 -ROUTE 2 0.138 R10C15A.F0 to R10C15A.C1 n2204 -CTOF_DEL --- 0.101 R10C15A.C1 to R10C15A.F1 SLICE_73 -ROUTE 2 0.148 R10C15A.F1 to R9C15A.CE PHI2_N_120_enable_8 (to PHI2_c) - -------- - 0.845 (39.6% logic, 60.4% route), 3 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R9C14B.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_100: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R9C15A.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.873ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q CmdEnable_405 (from PHI2_c -) - Destination: FF Data in CmdUFMSDI_414 (to PHI2_c -) - - Delay: 0.845ns (39.6% logic, 60.4% route), 3 logic levels. - - Constraint Details: - - 0.845ns physical path delay SLICE_19 to SLICE_99 meets - -0.028ns CE_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.028ns) by 0.873ns - - Physical Path Details: - - Data path SLICE_19 to SLICE_99: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R9C14B.CLK to R9C14B.Q0 SLICE_19 (from PHI2_c) -ROUTE 2 0.224 R9C14B.Q0 to R10C15A.C0 CmdEnable -CTOF_DEL --- 0.101 R10C15A.C0 to R10C15A.F0 SLICE_73 -ROUTE 2 0.138 R10C15A.F0 to R10C15A.C1 n2204 -CTOF_DEL --- 0.101 R10C15A.C1 to R10C15A.F1 SLICE_73 -ROUTE 2 0.148 R10C15A.F1 to R9C15C.CE PHI2_N_120_enable_8 (to PHI2_c) - -------- - 0.845 (39.6% logic, 60.4% route), 3 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R9C14B.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_99: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R9C15C.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 1.252ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q C1Submitted_406 (from PHI2_c -) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) - - Delay: 1.224ns (35.6% logic, 64.4% route), 4 logic levels. - - Constraint Details: - - 1.224ns physical path delay SLICE_15 to SLICE_19 meets - -0.028ns CE_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.028ns) by 1.252ns - - Physical Path Details: - - Data path SLICE_15 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R10C14C.CLK to R10C14C.Q0 SLICE_15 (from PHI2_c) -ROUTE 2 0.212 R10C14C.Q0 to R10C14D.A1 C1Submitted -CTOF_DEL --- 0.101 R10C14D.A1 to R10C14D.F1 SLICE_77 -ROUTE 1 0.222 R10C14D.F1 to R10C14A.B1 n2210 -CTOF_DEL --- 0.101 R10C14A.B1 to R10C14A.F1 SLICE_97 -ROUTE 1 0.211 R10C14A.F1 to R9C14C.A1 n7_adj_5 -CTOF_DEL --- 0.101 R9C14C.A1 to R9C14C.F1 SLICE_88 -ROUTE 1 0.143 R9C14C.F1 to R9C14B.CE PHI2_N_120_enable_1 (to PHI2_c) - -------- - 1.224 (35.6% logic, 64.4% route), 4 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_15: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R10C14C.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R9C14B.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 1.277ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q CmdEnable_405 (from PHI2_c -) - Destination: FF Data in CmdSubmitted_411 (to PHI2_c -) - - Delay: 1.249ns (34.9% logic, 65.1% route), 4 logic levels. - - Constraint Details: - - 1.249ns physical path delay SLICE_19 to SLICE_20 meets - -0.028ns CE_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.028ns) by 1.277ns - - Physical Path Details: - - Data path SLICE_19 to SLICE_20: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R9C14B.CLK to R9C14B.Q0 SLICE_19 (from PHI2_c) -ROUTE 2 0.224 R9C14B.Q0 to R10C15A.C0 CmdEnable -CTOF_DEL --- 0.101 R10C15A.C0 to R10C15A.F0 SLICE_73 -ROUTE 2 0.225 R10C15A.F0 to R9C15B.B0 n2204 -CTOF_DEL --- 0.101 R9C15B.B0 to R9C15B.F0 SLICE_74 -ROUTE 2 0.221 R9C15B.F0 to R9C17A.D1 n2220 -CTOF_DEL --- 0.101 R9C17A.D1 to R9C17A.F1 SLICE_89 -ROUTE 1 0.143 R9C17A.F1 to R9C17D.CE PHI2_N_120_enable_7 (to PHI2_c) - -------- - 1.249 (34.9% logic, 65.1% route), 4 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R9C14B.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_20: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R9C17D.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 1.277ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q CmdEnable_405 (from PHI2_c -) - Destination: FF Data in Cmdn8MEGEN_410 (to PHI2_c -) - - Delay: 1.249ns (34.9% logic, 65.1% route), 4 logic levels. - - Constraint Details: - - 1.249ns physical path delay SLICE_19 to SLICE_24 meets - -0.028ns CE_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.028ns) by 1.277ns - - Physical Path Details: - - Data path SLICE_19 to SLICE_24: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R9C14B.CLK to R9C14B.Q0 SLICE_19 (from PHI2_c) -ROUTE 2 0.224 R9C14B.Q0 to R10C15A.C0 CmdEnable -CTOF_DEL --- 0.101 R10C15A.C0 to R10C15A.F0 SLICE_73 -ROUTE 2 0.225 R10C15A.F0 to R9C15B.B0 n2204 -CTOF_DEL --- 0.101 R9C15B.B0 to R9C15B.F0 SLICE_74 -ROUTE 2 0.221 R9C15B.F0 to R9C17A.D0 n2220 -CTOF_DEL --- 0.101 R9C17A.D0 to R9C17A.F0 SLICE_89 -ROUTE 1 0.143 R9C17A.F0 to R9C17C.CE PHI2_N_120_enable_6 (to PHI2_c) - -------- - 1.249 (34.9% logic, 65.1% route), 4 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R9C14B.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_24: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R9C17C.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 5.431ns (weighted slack = 10.862ns) - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q XOR8MEG_408 (from PHI2_c -) - Destination: FF Data in RA11_385 (to PHI2_c +) - - Delay: 0.371ns (63.1% logic, 36.9% route), 2 logic levels. - - Constraint Details: - - 0.371ns physical path delay SLICE_50 to SLICE_33 meets - -0.013ns DIN_HLD and - -5.047ns delay constraint less - 0.000ns skew requirement (totaling -5.060ns) by 5.431ns - - Physical Path Details: - - Data path SLICE_50 to SLICE_33: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R10C15D.CLK to R10C15D.Q0 SLICE_50 (from PHI2_c) -ROUTE 1 0.137 R10C15D.Q0 to R10C16A.C0 XOR8MEG -CTOF_DEL --- 0.101 R10C16A.C0 to R10C16A.F0 SLICE_33 -ROUTE 1 0.000 R10C16A.F0 to R10C16A.DI0 RA11_N_184 (to PHI2_c) - -------- - 0.371 (63.1% logic, 36.9% route), 2 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_50: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R10C15D.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_33: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R10C16A.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 5.992ns (weighted slack = 11.984ns) - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q Bank_i0 (from PHI2_c +) - Destination: FF Data in CmdUFMCS_412 (to PHI2_c -) - FF CmdUFMCLK_413 - - Delay: 0.917ns (47.5% logic, 52.5% route), 4 logic levels. - - Constraint Details: - - 0.917ns physical path delay SLICE_93 to SLICE_100 meets - -0.028ns CE_HLD and - -5.047ns delay constraint less - 0.000ns skew requirement (totaling -5.075ns) by 5.992ns - - Physical Path Details: - - Data path SLICE_93 to SLICE_100: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R9C16A.CLK to R9C16A.Q0 SLICE_93 (from PHI2_c) -ROUTE 1 0.138 R9C16A.Q0 to R9C15A.C1 Bank_0 -CTOF_DEL --- 0.101 R9C15A.C1 to R9C15A.F1 SLICE_100 -ROUTE 1 0.053 R9C15A.F1 to R9C15B.D1 n2277 -CTOF_DEL --- 0.101 R9C15B.D1 to R9C15B.F1 SLICE_74 -ROUTE 8 0.142 R9C15B.F1 to R10C15A.D1 n26 -CTOF_DEL --- 0.101 R10C15A.D1 to R10C15A.F1 SLICE_73 -ROUTE 2 0.148 R10C15A.F1 to R9C15A.CE PHI2_N_120_enable_8 (to PHI2_c) - -------- - 0.917 (47.5% logic, 52.5% route), 4 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_93: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R9C16A.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_100: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R9C15A.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - -Report Summary --------------- ----------------------------------------------------------------------------- -Preference(MIN Delays) | Constraint| Actual|Levels ----------------------------------------------------------------------------- - | | | -FREQUENCY NET "RCLK_c" 299.401000 MHz ; | 0.000 ns| 0.304 ns| 1 - | | | -FREQUENCY NET "PHI2_c" 99.079000 MHz ; | 0.000 ns| 0.379 ns| 2 - | | | ----------------------------------------------------------------------------- - - -All preferences were met. - - -Clock Domains Analysis ------------------------- - -Found 4 clocks: - -Clock Domain: nCRAS_c Source: nCRAS.PAD Loads: 9 - No transfer within this clock domain is found - -Clock Domain: nCCAS_c Source: nCCAS.PAD Loads: 6 - No transfer within this clock domain is found - -Clock Domain: RCLK_c Source: RCLK.PAD Loads: 40 - Covered under: FREQUENCY NET "RCLK_c" 299.401000 MHz ; - - Data transfers from: - Clock Domain: nCRAS_c Source: nCRAS.PAD - Not reported because source and destination domains are unrelated. - To report these transfers please refer to preference CLKSKEWDIFF to define - external clock skew between clock ports. - - Clock Domain: PHI2_c Source: PHI2.PAD - Not reported because source and destination domains are unrelated. - To report these transfers please refer to preference CLKSKEWDIFF to define - external clock skew between clock ports. - -Clock Domain: PHI2_c Source: PHI2.PAD Loads: 14 - Covered under: FREQUENCY NET "PHI2_c" 99.079000 MHz ; - - Data transfers from: - Clock Domain: RCLK_c Source: RCLK.PAD - Not reported because source and destination domains are unrelated. - To report these transfers please refer to preference CLKSKEWDIFF to define - external clock skew between clock ports. - - -Timing summary (Hold): ---------------- - -Timing errors: 0 Score: 0 -Cumulative negative slack: 0 - -Constraints cover 572 paths, 2 nets, and 409 connections (60.68% coverage) - - - -Timing summary (Setup and Hold): ---------------- - -Timing errors: 335 (setup), 0 (hold) -Score: 391939 (setup), 0 (hold) -Cumulative negative slack: 304509 (304509+0) --------------------------------------------------------------------------------- - --------------------------------------------------------------------------------- - diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_bgn.html b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_bgn.html deleted file mode 100644 index 5f15130..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_bgn.html +++ /dev/null @@ -1,152 +0,0 @@ - -Bitgen Report - - -

BITGEN: Bitstream Generator Diamond (64-bit) 3.12.1.454
-Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved.
-Copyright (c) 1995 AT&T Corp.   All rights reserved.
-Copyright (c) 1995-2001 Lucent Technologies Inc.  All rights reserved.
-Copyright (c) 2001 Agere Systems   All rights reserved.
-Copyright (c) 2002-2020 Lattice Semiconductor Corporation,  All rights reserved.
-Tue Aug 15 05:03:42 2023
-
-
-Command: bitgen -g RamCfg:Reset -path D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC -w -jedec -gui -msgset D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/promote.xml RAM2GS_LCMXO2_1200HC_impl1.ncd RAM2GS_LCMXO2_1200HC_impl1.prf 
-
-Loading design for application Bitgen from file RAM2GS_LCMXO2_1200HC_impl1.ncd.
-Design name: RAM2GS
-NCD version: 3.3
-Vendor:      LATTICE
-Device:      LCMXO2-1200HC
-Package:     TQFP100
-Performance: 4
-Loading device for application Bitgen from file 'xo2c1200.nph' in environment: C:/lscc/diamond/3.12/ispfpga.
-Package Status:                     Final          Version 1.44.
-Performance Hardware Data Status:   Final          Version 34.4.
-
-Running DRC.
-DRC detected 0 errors and 0 warnings.
-Reading Preference File from RAM2GS_LCMXO2_1200HC_impl1.prf.
-
-
-Preference Summary:
-
-+---------------------------------+---------------------------------+
-|  Preference                     |  Current Setting                |
-+---------------------------------+---------------------------------+
-|                         RamCfg  |                        Reset**  |
-+---------------------------------+---------------------------------+
-|                     MCCLK_FREQ  |                         2.08**  |
-+---------------------------------+---------------------------------+
-|                  CONFIG_SECURE  |                          OFF**  |
-+---------------------------------+---------------------------------+
-|                          INBUF  |                           ON**  |
-+---------------------------------+---------------------------------+
-|                      JTAG_PORT  |                       ENABLE**  |
-+---------------------------------+---------------------------------+
-|                       SDM_PORT  |                      DISABLE**  |
-+---------------------------------+---------------------------------+
-|                 SLAVE_SPI_PORT  |                      DISABLE**  |
-+---------------------------------+---------------------------------+
-|                MASTER_SPI_PORT  |                      DISABLE**  |
-+---------------------------------+---------------------------------+
-|                       I2C_PORT  |                      DISABLE**  |
-+---------------------------------+---------------------------------+
-|        MUX_CONFIGURATION_PORTS  |                      DISABLE**  |
-+---------------------------------+---------------------------------+
-|                  CONFIGURATION  |                          CFG**  |
-+---------------------------------+---------------------------------+
-|                COMPRESS_CONFIG  |                           ON**  |
-+---------------------------------+---------------------------------+
-|                        MY_ASSP  |                          OFF**  |
-+---------------------------------+---------------------------------+
-|               ONE_TIME_PROGRAM  |                          OFF**  |
-+---------------------------------+---------------------------------+
-|                 ENABLE_TRANSFR  |                      DISABLE**  |
-+---------------------------------+---------------------------------+
-|                  SHAREDEBRINIT  |                      DISABLE**  |
-+---------------------------------+---------------------------------+
-|            BACKGROUND_RECONFIG  |                          OFF**  |
-+---------------------------------+---------------------------------+
- *  Default setting.
- ** The specified setting matches the default setting.
-
-
-Creating bit map...
- 
-Bitstream Status: Final           Version 1.95.
- 
-Saving bit stream in "RAM2GS_LCMXO2_1200HC_impl1.jed".
- 
-===========
-UFM Summary.
-===========
-UFM Size:        511 Pages (128*511 Bits).
-UFM Utilization: General Purpose Flash Memory.
- 
-Available General Purpose Flash Memory:  511 Pages (Page 0 to Page 510).
-Initialized UFM Pages:                     0 Page.
- 
-Total CPU Time: 2 secs 
-Total REAL Time: 3 secs 
-Peak Memory Usage: 253 MB
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_iotiming.html b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_iotiming.html deleted file mode 100644 index 7e2eb91..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_iotiming.html +++ /dev/null @@ -1,204 +0,0 @@ - -I/O Timing Report - - -
I/O Timing Report
-Loading design for application iotiming from file ram2gs_lcmxo2_1200hc_impl1.ncd.
-Design name: RAM2GS
-NCD version: 3.3
-Vendor:      LATTICE
-Device:      LCMXO2-1200HC
-Package:     TQFP100
-Performance: 5
-Package Status:                     Final          Version 1.44.
-Performance Hardware Data Status:   Final          Version 34.4.
-Loading design for application iotiming from file ram2gs_lcmxo2_1200hc_impl1.ncd.
-Design name: RAM2GS
-NCD version: 3.3
-Vendor:      LATTICE
-Device:      LCMXO2-1200HC
-Package:     TQFP100
-Performance: 6
-Package Status:                     Final          Version 1.44.
-Performance Hardware Data Status:   Final          Version 34.4.
-Loading design for application iotiming from file ram2gs_lcmxo2_1200hc_impl1.ncd.
-Design name: RAM2GS
-NCD version: 3.3
-Vendor:      LATTICE
-Device:      LCMXO2-1200HC
-Package:     TQFP100
-Performance: M
-Package Status:                     Final          Version 1.44.
-Performance Hardware Data Status:   Final          Version 34.4.
-// Design: RAM2GS
-// Package: TQFP100
-// ncd File: ram2gs_lcmxo2_1200hc_impl1.ncd
-// Version: Diamond (64-bit) 3.12.1.454
-// Written on Tue Aug 15 05:22:17 2023
-// M: Minimum Performance Grade
-// iotiming RAM2GS_LCMXO2_1200HC_impl1.ncd RAM2GS_LCMXO2_1200HC_impl1.prf -gui -msgset D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/promote.xml
-
-I/O Timing Report (All units are in ns)
-
-Worst Case Results across Performance Grades (M, 6, 5, 4):
-
-// Input Setup and Hold Times
-
-Port    Clock Edge  Setup Performance_Grade  Hold Performance_Grade
-----------------------------------------------------------------------
-CROW[0] nCRAS F     0.891      4       0.676     4
-CROW[1] nCRAS F     0.281      4       1.216     4
-Din[0]  PHI2  F     7.907      4       0.089     6
-Din[0]  nCCAS F     1.465      4       0.158     4
-Din[1]  PHI2  F     7.300      4       1.026     4
-Din[1]  nCCAS F     1.035      4       0.527     4
-Din[2]  PHI2  F     6.237      4       1.467     4
-Din[2]  nCCAS F     1.719      4      -0.108     M
-Din[3]  PHI2  F     6.623      4       0.176     6
-Din[3]  nCCAS F     0.339      4       0.916     4
-Din[4]  PHI2  F     6.902      4       1.033     4
-Din[4]  nCCAS F     0.687      4       0.951     4
-Din[5]  PHI2  F     6.837      4       1.369     4
-Din[5]  nCCAS F     2.810      4      -0.220     M
-Din[6]  PHI2  F     7.648      4      -0.050     M
-Din[6]  nCCAS F     1.281      4       0.266     4
-Din[7]  PHI2  F     7.823      4      -0.159     M
-Din[7]  nCCAS F     1.810      4      -0.096     M
-MAin[0] PHI2  F     6.751      4      -0.273     M
-MAin[0] nCRAS F     1.765      4      -0.033     4
-MAin[1] PHI2  F     5.718      4       0.117     M
-MAin[1] nCRAS F     1.814      4      -0.051     M
-MAin[2] PHI2  F     5.759      4      -0.021     M
-MAin[2] nCRAS F     1.323      4       0.309     4
-MAin[3] PHI2  F     6.165      4      -0.235     M
-MAin[3] nCRAS F     0.694      4       0.836     4
-MAin[4] PHI2  F     5.236      4      -0.147     M
-MAin[4] nCRAS F     0.730      4       0.835     4
-MAin[5] PHI2  F     6.024      4       0.135     M
-MAin[5] nCRAS F     0.734      4       0.868     4
-MAin[6] PHI2  F     5.689      4      -0.277     M
-MAin[6] nCRAS F     0.288      4       1.210     4
-MAin[7] PHI2  F     6.398      4      -0.307     M
-MAin[7] nCRAS F     1.215      4       0.401     4
-MAin[8] nCRAS F     0.817      4       0.727     4
-MAin[9] nCRAS F     0.941      4       0.601     4
-PHI2    RCLK  R     0.771      4       1.143     4
-UFMSDO  RCLK  R    -0.238      M       2.305     4
-nCCAS   RCLK  R     1.651      4       0.388     4
-nCCAS   nCRAS F     5.028      4      -0.828     M
-nCRAS   RCLK  R     0.593      4       1.309     4
-nFWE    PHI2  F     5.741      4       0.781     4
-nFWE    nCRAS F     0.578      4       0.996     4
-
-
-// Clock to Output Delay
-
-Port   Clock Edge  Max_Delay Performance_Grade  Min_Delay Performance_Grade
-------------------------------------------------------------------------
-LED    RCLK  R    14.758         4        4.129          M
-LED    nCRAS F    12.396         4        3.434          M
-RA[0]  RCLK  R    13.780         4        3.894          M
-RA[0]  nCRAS F    11.795         4        3.277          M
-RA[10] RCLK  R    12.425         4        3.587          M
-RA[11] PHI2  R    10.432         4        3.084          M
-RA[1]  RCLK  R    15.081         4        4.198          M
-RA[1]  nCRAS F    12.364         4        3.447          M
-RA[2]  RCLK  R    14.518         4        4.082          M
-RA[2]  nCRAS F    11.696         4        3.275          M
-RA[3]  RCLK  R    13.789         4        3.897          M
-RA[3]  nCRAS F    12.223         4        3.392          M
-RA[4]  RCLK  R    15.175         4        4.228          M
-RA[4]  nCRAS F    12.424         4        3.464          M
-RA[5]  RCLK  R    13.789         4        3.897          M
-RA[5]  nCRAS F    12.359         4        3.437          M
-RA[6]  RCLK  R    15.420         4        4.299          M
-RA[6]  nCRAS F    12.865         4        3.560          M
-RA[7]  RCLK  R    14.672         4        4.127          M
-RA[7]  nCRAS F    12.253         4        3.386          M
-RA[8]  RCLK  R    14.952         4        4.191          M
-RA[8]  nCRAS F    12.244         4        3.383          M
-RA[9]  RCLK  R    14.092         4        3.978          M
-RA[9]  nCRAS F    13.164         4        3.653          M
-RBA[0] nCRAS F    10.278         4        2.970          M
-RBA[1] nCRAS F    10.474         4        3.030          M
-RCKE   RCLK  R    12.407         4        3.610          M
-RDQMH  RCLK  R    13.754         4        3.857          M
-RDQML  RCLK  R    13.482         4        3.833          M
-RD[0]  nCCAS F    10.515         4        3.076          M
-RD[1]  nCCAS F    10.118         4        2.965          M
-RD[2]  nCCAS F     9.759         4        2.886          M
-RD[3]  nCCAS F     9.798         4        2.878          M
-RD[4]  nCCAS F    10.979         4        3.178          M
-RD[5]  nCCAS F    11.063         4        3.207          M
-RD[6]  nCCAS F    10.317         4        3.018          M
-RD[7]  nCCAS F    10.232         4        2.986          M
-UFMCLK RCLK  R    12.402         4        3.606          M
-UFMSDI RCLK  R    11.975         4        3.501          M
-nRCAS  RCLK  R    12.350         4        3.564          M
-nRCS   RCLK  R    11.923         4        3.459          M
-nRRAS  RCLK  R    11.995         4        3.494          M
-nRWE   RCLK  R    11.975         4        3.501          M
-nUFMCS RCLK  R    11.818         4        3.434          M
-WARNING: you must also run trce with hold speed: 4
-WARNING: you must also run trce with hold speed: 6
-WARNING: you must also run trce with setup speed: M
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_lattice.synproj b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_lattice.synproj deleted file mode 100644 index 7edeb6a..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_lattice.synproj +++ /dev/null @@ -1,41 +0,0 @@ --a "MachXO2" --d LCMXO2-1200HC --t TQFP100 --s 4 --frequency 200 --optimization_goal Balanced --bram_utilization 100 --ramstyle Auto --romstyle auto --dsp_utilization 100 --use_dsp 1 --use_carry_chain 1 --carry_chain_length 0 --force_gsr Auto --resource_sharing 1 --propagate_constants 1 --remove_duplicate_regs 1 --mux_style Auto --max_fanout 1000 --fsm_encoding_style Auto --twr_paths 3 --fix_gated_clocks 1 --loop_limit 1950 - - - --use_io_insertion 1 --resolve_mixed_drivers 0 --use_io_reg auto - - --lpf 1 --p "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC" --ver "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/RAM2GS-SPI.v" --top RAM2GS - - --p "C:/lscc/diamond/3.12/ispfpga/xo2c00/data" "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/impl1" "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC" - --ngd "RAM2GS_LCMXO2_1200HC_impl1.ngd" - diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_map.asd b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_map.asd deleted file mode 100644 index 4f5aca5..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_map.asd +++ /dev/null @@ -1,15 +0,0 @@ -[ActiveSupport MAP] -Device = LCMXO2-1200HC; -Package = TQFP100; -Performance = 4; -LUTS_avail = 1280; -LUTS_used = 143; -FF_avail = 1360; -FF_used = 102; -INPUT_LVCMOS25 = 26; -OUTPUT_LVCMOS25 = 33; -BIDI_LVCMOS25 = 8; -IO_avail = 80; -IO_used = 67; -EBR_avail = 7; -EBR_used = 0; diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_map.cam b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_map.cam deleted file mode 100644 index 764d169..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_map.cam +++ /dev/null @@ -1,88 +0,0 @@ -[ START MERGED ] -n2380 Ready -PHI2_N_120 PHI2_c -nRWE_N_176 nRWE_N_177 -n1407 nRowColSel_N_34 -n1408 nRowColSel_N_35 -[ END MERGED ] -[ START CLIPPED ] -GND_net -VCC_net -FS_610_add_4_19/S1 -FS_610_add_4_19/CO -FS_610_add_4_1/S0 -FS_610_add_4_1/CI -[ END CLIPPED ] -[ START DESIGN PREFS ] -SCHEMATIC START ; -# map: version Diamond (64-bit) 3.12.1.454 -- WARNING: Map write only section -- Tue Aug 15 05:22:06 2023 - -SYSCONFIG SDM_PORT=DISABLE SLAVE_SPI_PORT=DISABLE I2C_PORT=DISABLE MASTER_SPI_PORT=DISABLE COMPRESS_CONFIG=ON CONFIGURATION=CFG MY_ASSP=OFF ONE_TIME_PROGRAM=OFF CONFIG_SECURE=OFF MCCLK_FREQ=2.08 JTAG_PORT=ENABLE ENABLE_TRANSFR=DISABLE SHAREDEBRINIT=DISABLE MUX_CONFIGURATION_PORTS=DISABLE BACKGROUND_RECONFIG=OFF INBUF=ON ; -LOCATE COMP "RD[7]" SITE "43" ; -LOCATE COMP "RD[6]" SITE "42" ; -LOCATE COMP "RD[5]" SITE "41" ; -LOCATE COMP "RD[4]" SITE "40" ; -LOCATE COMP "RD[3]" SITE "39" ; -LOCATE COMP "RD[2]" SITE "38" ; -LOCATE COMP "RD[1]" SITE "37" ; -LOCATE COMP "RD[0]" SITE "36" ; -LOCATE COMP "Dout[7]" SITE "82" ; -LOCATE COMP "Dout[6]" SITE "78" ; -LOCATE COMP "Dout[5]" SITE "84" ; -LOCATE COMP "Dout[4]" SITE "83" ; -LOCATE COMP "Dout[3]" SITE "85" ; -LOCATE COMP "Dout[2]" SITE "87" ; -LOCATE COMP "Dout[1]" SITE "86" ; -LOCATE COMP "Dout[0]" SITE "76" ; -LOCATE COMP "LED" SITE "34" ; -LOCATE COMP "RBA[1]" SITE "60" ; -LOCATE COMP "RBA[0]" SITE "58" ; -LOCATE COMP "RA[11]" SITE "59" ; -LOCATE COMP "RA[10]" SITE "64" ; -LOCATE COMP "RA[9]" SITE "63" ; -LOCATE COMP "RA[8]" SITE "65" ; -LOCATE COMP "RA[7]" SITE "75" ; -LOCATE COMP "RA[6]" SITE "68" ; -LOCATE COMP "RA[5]" SITE "70" ; -LOCATE COMP "RA[4]" SITE "74" ; -LOCATE COMP "RA[3]" SITE "71" ; -LOCATE COMP "RA[2]" SITE "69" ; -LOCATE COMP "RA[1]" SITE "67" ; -LOCATE COMP "RA[0]" SITE "66" ; -LOCATE COMP "nRCS" SITE "57" ; -LOCATE COMP "RCKE" SITE "53" ; -LOCATE COMP "nRWE" SITE "49" ; -LOCATE COMP "nRRAS" SITE "54" ; -LOCATE COMP "nRCAS" SITE "52" ; -LOCATE COMP "RDQMH" SITE "51" ; -LOCATE COMP "RDQML" SITE "48" ; -LOCATE COMP "UFMCLK" SITE "29" ; -LOCATE COMP "UFMSDI" SITE "30" ; -LOCATE COMP "PHI2" SITE "8" ; -LOCATE COMP "MAin[9]" SITE "32" ; -LOCATE COMP "MAin[8]" SITE "25" ; -LOCATE COMP "MAin[7]" SITE "18" ; -LOCATE COMP "MAin[6]" SITE "24" ; -LOCATE COMP "MAin[5]" SITE "19" ; -LOCATE COMP "MAin[4]" SITE "20" ; -LOCATE COMP "MAin[3]" SITE "21" ; -LOCATE COMP "MAin[2]" SITE "13" ; -LOCATE COMP "MAin[1]" SITE "12" ; -LOCATE COMP "MAin[0]" SITE "14" ; -LOCATE COMP "CROW[1]" SITE "16" ; -LOCATE COMP "CROW[0]" SITE "10" ; -LOCATE COMP "Din[7]" SITE "1" ; -LOCATE COMP "Din[6]" SITE "2" ; -LOCATE COMP "Din[5]" SITE "98" ; -LOCATE COMP "Din[4]" SITE "99" ; -LOCATE COMP "Din[3]" SITE "97" ; -LOCATE COMP "Din[2]" SITE "88" ; -LOCATE COMP "Din[1]" SITE "96" ; -LOCATE COMP "Din[0]" SITE "3" ; -LOCATE COMP "nCCAS" SITE "9" ; -LOCATE COMP "nCRAS" SITE "17" ; -LOCATE COMP "nFWE" SITE "28" ; -LOCATE COMP "RCLK" SITE "62" ; -LOCATE COMP "UFMSDO" SITE "27" ; -SCHEMATIC END ; -[ END DESIGN PREFS ] diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_map.hrr b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_map.hrr deleted file mode 100644 index a9cd083..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_map.hrr +++ /dev/null @@ -1,10 +0,0 @@ ---------------------------------------------------- -Report for cell RAM2GS - Instance path: RAM2GS - Cell usage: - cell count Res Usage(%) - SLIC 75.00 100.0 - LUT4 123.00 100.0 - IOBUF 67 100.0 - PFUREG 102 100.0 - RIPPLE 10 100.0 diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_map.ncd b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_map.ncd deleted file mode 100644 index 2f8eda47865862a99814b4c51fef644bc9ba6125..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 140118 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 Owi^(nEML$acl F1) = (0:0:0,0:0:0); - (A1 => FCO) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (A0 => F1) = (0:0:0,0:0:0); - (A0 => FCO) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - (FCI => F0) = (0:0:0,0:0:0); - (FCI => F1) = (0:0:0,0:0:0); - (FCI => FCO) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI1, 0:0:0, 0:0:0,,,, CLK_dly, DI1_dly); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module vmuxregsre ( input D0, D1, SD, SP, CK, LSR, output Q ); - - FL1P3DX INST01( .D0(D0), .D1(D1), .SP(SP), .CK(CK), .SD(SD), .CD(LSR), .Q(Q)); - defparam INST01.GSR = "DISABLED"; -endmodule - -module vcc ( output PWR1 ); - - VHI INST1( .Z(PWR1)); -endmodule - -module gnd ( output PWR0 ); - - VLO INST1( .Z(PWR0)); -endmodule - -module ccu2 ( input A0, B0, C0, D0, A1, B1, C1, D1, CI, output S0, S1, CO1 ); - - CCU2D inst1( .CIN(CI), .A0(A0), .B0(B0), .C0(C0), .D0(D0), .A1(A1), .B1(B1), - .C1(C1), .D1(D1), .S0(S0), .S1(S1), .COUT(CO1)); - defparam inst1.INIT0 = 16'hfaaa; - defparam inst1.INIT1 = 16'hfaaa; - defparam inst1.INJECT1_0 = "NO"; - defparam inst1.INJECT1_1 = "NO"; -endmodule - -module SLICE_1 ( input A1, A0, DI1, DI0, CLK, FCI, output F0, Q0, F1, Q1, FCO ); - wire VCCI, GNDI, DI1_dly, CLK_dly, DI0_dly; - - vmuxregsre FS_610__i12( .D0(VCCI), .D1(DI1_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre FS_610__i11( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - ccu2 FS_610_add_4_13( .A0(A0), .B0(GNDI), .C0(GNDI), .D0(GNDI), .A1(A1), - .B1(GNDI), .C1(GNDI), .D1(GNDI), .CI(FCI), .S0(F0), .S1(F1), .CO1(FCO)); - - specify - (A1 => F1) = (0:0:0,0:0:0); - (A1 => FCO) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (A0 => F1) = (0:0:0,0:0:0); - (A0 => FCO) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - (FCI => F0) = (0:0:0,0:0:0); - (FCI => F1) = (0:0:0,0:0:0); - (FCI => FCO) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI1, 0:0:0, 0:0:0,,,, CLK_dly, DI1_dly); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module SLICE_2 ( input A1, A0, DI1, DI0, CLK, FCI, output F0, Q0, F1, Q1, FCO ); - wire VCCI, GNDI, DI1_dly, CLK_dly, DI0_dly; - - vmuxregsre FS_610__i8( .D0(VCCI), .D1(DI1_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre FS_610__i7( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - ccu2 FS_610_add_4_9( .A0(A0), .B0(GNDI), .C0(GNDI), .D0(GNDI), .A1(A1), - .B1(GNDI), .C1(GNDI), .D1(GNDI), .CI(FCI), .S0(F0), .S1(F1), .CO1(FCO)); - - specify - (A1 => F1) = (0:0:0,0:0:0); - (A1 => FCO) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (A0 => F1) = (0:0:0,0:0:0); - (A0 => FCO) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - (FCI => F0) = (0:0:0,0:0:0); - (FCI => F1) = (0:0:0,0:0:0); - (FCI => FCO) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI1, 0:0:0, 0:0:0,,,, CLK_dly, DI1_dly); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module SLICE_3 ( input A1, A0, DI1, DI0, CLK, FCI, output F0, Q0, F1, Q1, FCO ); - wire VCCI, GNDI, DI1_dly, CLK_dly, DI0_dly; - - vmuxregsre FS_610__i6( .D0(VCCI), .D1(DI1_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre FS_610__i5( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - ccu2 FS_610_add_4_7( .A0(A0), .B0(GNDI), .C0(GNDI), .D0(GNDI), .A1(A1), - .B1(GNDI), .C1(GNDI), .D1(GNDI), .CI(FCI), .S0(F0), .S1(F1), .CO1(FCO)); - - specify - (A1 => F1) = (0:0:0,0:0:0); - (A1 => FCO) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (A0 => F1) = (0:0:0,0:0:0); - (A0 => FCO) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - (FCI => F0) = (0:0:0,0:0:0); - (FCI => F1) = (0:0:0,0:0:0); - (FCI => FCO) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI1, 0:0:0, 0:0:0,,,, CLK_dly, DI1_dly); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module SLICE_4 ( input A1, A0, DI1, DI0, CLK, FCI, output F0, Q0, F1, Q1, FCO ); - wire VCCI, GNDI, DI1_dly, CLK_dly, DI0_dly; - - vmuxregsre FS_610__i2( .D0(VCCI), .D1(DI1_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre FS_610__i1( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - ccu2 FS_610_add_4_3( .A0(A0), .B0(GNDI), .C0(GNDI), .D0(GNDI), .A1(A1), - .B1(GNDI), .C1(GNDI), .D1(GNDI), .CI(FCI), .S0(F0), .S1(F1), .CO1(FCO)); - - specify - (A1 => F1) = (0:0:0,0:0:0); - (A1 => FCO) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (A0 => F1) = (0:0:0,0:0:0); - (A0 => FCO) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - (FCI => F0) = (0:0:0,0:0:0); - (FCI => F1) = (0:0:0,0:0:0); - (FCI => FCO) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI1, 0:0:0, 0:0:0,,,, CLK_dly, DI1_dly); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module SLICE_5 ( input A1, DI1, M0, CLK, output Q0, F1, Q1, FCO ); - wire VCCI, GNDI, DI1_dly, CLK_dly, M0_dly; - - vmuxregsre FS_610__i0( .D0(VCCI), .D1(DI1_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre CASr3_384( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - ccu20001 FS_610_add_4_1( .A0(GNDI), .B0(GNDI), .C0(GNDI), .D0(GNDI), .A1(A1), - .B1(GNDI), .C1(GNDI), .D1(GNDI), .CI(GNDI), .S0(), .S1(F1), .CO1(FCO)); - - specify - (A1 => F1) = (0:0:0,0:0:0); - (A1 => FCO) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI1, 0:0:0, 0:0:0,,,, CLK_dly, DI1_dly); - $setuphold (posedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module ccu20001 ( input A0, B0, C0, D0, A1, B1, C1, D1, CI, output S0, S1, CO1 ); - - CCU2D inst1( .CIN(CI), .A0(A0), .B0(B0), .C0(C0), .D0(D0), .A1(A1), .B1(B1), - .C1(C1), .D1(D1), .S0(S0), .S1(S1), .COUT(CO1)); - defparam inst1.INIT0 = 16'hF000; - defparam inst1.INIT1 = 16'h0555; - defparam inst1.INJECT1_0 = "NO"; - defparam inst1.INJECT1_1 = "NO"; -endmodule - -module SLICE_6 ( input A1, A0, DI1, DI0, CLK, FCI, output F0, Q0, F1, Q1, FCO ); - wire VCCI, GNDI, DI1_dly, CLK_dly, DI0_dly; - - vmuxregsre FS_610__i10( .D0(VCCI), .D1(DI1_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre FS_610__i9( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - ccu2 FS_610_add_4_11( .A0(A0), .B0(GNDI), .C0(GNDI), .D0(GNDI), .A1(A1), - .B1(GNDI), .C1(GNDI), .D1(GNDI), .CI(FCI), .S0(F0), .S1(F1), .CO1(FCO)); - - specify - (A1 => F1) = (0:0:0,0:0:0); - (A1 => FCO) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (A0 => F1) = (0:0:0,0:0:0); - (A0 => FCO) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - (FCI => F0) = (0:0:0,0:0:0); - (FCI => F1) = (0:0:0,0:0:0); - (FCI => FCO) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI1, 0:0:0, 0:0:0,,,, CLK_dly, DI1_dly); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module SLICE_7 ( input A0, DI0, CLK, FCI, output F0, Q0 ); - wire VCCI, GNDI, DI0_dly, CLK_dly; - - vmuxregsre FS_610__i17( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - gnd DRIVEGND( .PWR0(GNDI)); - ccu20002 FS_610_add_4_19( .A0(A0), .B0(GNDI), .C0(GNDI), .D0(GNDI), - .A1(GNDI), .B1(GNDI), .C1(GNDI), .D1(GNDI), .CI(FCI), .S0(F0), .S1(), - .CO1()); - - specify - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (FCI => F0) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module ccu20002 ( input A0, B0, C0, D0, A1, B1, C1, D1, CI, output S0, S1, CO1 ); - - CCU2D inst1( .CIN(CI), .A0(A0), .B0(B0), .C0(C0), .D0(D0), .A1(A1), .B1(B1), - .C1(C1), .D1(D1), .S0(S0), .S1(S1), .COUT(CO1)); - defparam inst1.INIT0 = 16'hfaaa; - defparam inst1.INIT1 = 16'h0000; - defparam inst1.INJECT1_0 = "NO"; - defparam inst1.INJECT1_1 = "NO"; -endmodule - -module SLICE_8 ( input A1, A0, DI1, DI0, CLK, FCI, output F0, Q0, F1, Q1, FCO ); - wire VCCI, GNDI, DI1_dly, CLK_dly, DI0_dly; - - vmuxregsre FS_610__i4( .D0(VCCI), .D1(DI1_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre FS_610__i3( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - ccu2 FS_610_add_4_5( .A0(A0), .B0(GNDI), .C0(GNDI), .D0(GNDI), .A1(A1), - .B1(GNDI), .C1(GNDI), .D1(GNDI), .CI(FCI), .S0(F0), .S1(F1), .CO1(FCO)); - - specify - (A1 => F1) = (0:0:0,0:0:0); - (A1 => FCO) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (A0 => F1) = (0:0:0,0:0:0); - (A0 => FCO) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - (FCI => F0) = (0:0:0,0:0:0); - (FCI => F1) = (0:0:0,0:0:0); - (FCI => FCO) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI1, 0:0:0, 0:0:0,,,, CLK_dly, DI1_dly); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module SLICE_9 ( input A1, A0, DI1, DI0, CLK, FCI, output F0, Q0, F1, Q1, FCO ); - wire VCCI, GNDI, DI1_dly, CLK_dly, DI0_dly; - - vmuxregsre FS_610__i16( .D0(VCCI), .D1(DI1_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre FS_610__i15( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - ccu2 FS_610_add_4_17( .A0(A0), .B0(GNDI), .C0(GNDI), .D0(GNDI), .A1(A1), - .B1(GNDI), .C1(GNDI), .D1(GNDI), .CI(FCI), .S0(F0), .S1(F1), .CO1(FCO)); - - specify - (A1 => F1) = (0:0:0,0:0:0); - (A1 => FCO) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (A0 => F1) = (0:0:0,0:0:0); - (A0 => FCO) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - (FCI => F0) = (0:0:0,0:0:0); - (FCI => F1) = (0:0:0,0:0:0); - (FCI => FCO) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI1, 0:0:0, 0:0:0,,,, CLK_dly, DI1_dly); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module SLICE_10 ( input D1, C1, B1, A1, D0, C0, B0, A0, DI0, CE, LSR, CLK, - output F0, Q0, F1 ); - wire VCCI, CLK_NOTIN, DI0_dly, CLK_dly, CE_dly, LSR_dly; - - lut4 i3_3_lut_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40003 i1_4_lut_adj_4( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre0004 ADSubmitted_407( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), - .SP(CE_dly), .CK(CLK_NOTIN), .LSR(LSR_dly), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - $width (posedge LSR, 0:0:0); - $width (negedge LSR, 0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - $setuphold (negedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (negedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $setuphold (negedge CLK, LSR, 0:0:0, 0:0:0,,,, CLK_dly, LSR_dly); - endspecify - -endmodule - -module lut4 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h0002) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module lut40003 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h2000) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module vmuxregsre0004 ( input D0, D1, SD, SP, CK, LSR, output Q ); - - FL1P3IY INST01( .D0(D0), .D1(D1), .SP(SP), .CK(CK), .SD(SD), .CD(LSR), .Q(Q)); - defparam INST01.GSR = "DISABLED"; -endmodule - -module inverter ( input I, output Z ); - - INV INST1( .A(I), .Z(Z)); -endmodule - -module SLICE_15 ( input D1, C1, B1, A1, D0, C0, B0, A0, DI0, LSR, CLK, output - F0, Q0, F1 ); - wire VCCI, CLK_NOTIN, DI0_dly, CLK_dly, LSR_dly; - - lut40005 i13_2_lut_rep_16_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40006 i1110_2_lut_3_lut_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre0007 C1Submitted_406( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), - .SP(VCCI), .CK(CLK_NOTIN), .LSR(LSR_dly), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - $width (posedge LSR, 0:0:0); - $width (negedge LSR, 0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - $setuphold (negedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (negedge CLK, LSR, 0:0:0, 0:0:0,,,, CLK_dly, LSR_dly); - endspecify - -endmodule - -module lut40005 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hFF7F) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module lut40006 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hE0F0) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module vmuxregsre0007 ( input D0, D1, SD, SP, CK, LSR, output Q ); - - FL1P3JY INST01( .D0(D0), .D1(D1), .SP(SP), .CK(CK), .SD(SD), .PD(LSR), .Q(Q)); - defparam INST01.GSR = "DISABLED"; -endmodule - -module SLICE_16 ( input A0, DI0, M1, CLK, output F0, Q0, Q1 ); - wire GNDI, VCCI, DI0_dly, CLK_dly, M1_dly; - - lut40008 i2045( .A(A0), .B(GNDI), .C(GNDI), .D(GNDI), .Z(F0)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre CASr2_383( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - vmuxregsre CASr_382( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - - specify - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module lut40008 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h5555) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_19 ( input D1, C1, B1, A1, D0, C0, B0, A0, DI0, CE, CLK, output - F0, Q0, F1 ); - wire VCCI, CLK_NOTIN, GNDI, DI0_dly, CLK_dly, CE_dly; - - lut40009 i26_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40010 i2_3_lut_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre CmdEnable_405( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), - .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - $setuphold (negedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (negedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - endspecify - -endmodule - -module lut40009 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hC0CA) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module lut40010 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h4000) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_20 ( input DI0, CE, CLK, output F0, Q0 ); - wire GNDI, VCCI, CLK_NOTIN, DI0_dly, CLK_dly, CE_dly; - - lut40011 \n2447\001/BUF1/BUF1 ( .A(GNDI), .B(GNDI), .C(GNDI), .D(GNDI), - .Z(F0)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre CmdSubmitted_411( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), - .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); - - specify - (CLK => Q0) = (0:0:0,0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - $setuphold (negedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (negedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - endspecify - -endmodule - -module lut40011 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hFFFF) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_24 ( input C1, B1, A1, D0, C0, B0, A0, DI0, CE, CLK, output F0, - Q0, F1 ); - wire GNDI, VCCI, CLK_NOTIN, DI0_dly, CLK_dly, CE_dly; - - lut40012 i1_2_lut_3_lut_adj_15( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40013 Cmdn8MEGEN_I_93_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre Cmdn8MEGEN_410( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), - .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); - - specify - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - $setuphold (negedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (negedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - endspecify - -endmodule - -module lut40012 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hFEFE) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module lut40013 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hCC5C) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_25 ( input C1, B1, A1, A0, DI0, M1, CLK, output F0, Q0, F1, Q1 ); - wire GNDI, VCCI, CLK_NOTIN, DI0_dly, CLK_dly, M1_dly; - - lut40014 i2_3_lut_3_lut( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40008 i2_1_lut_rep_24( .A(A0), .B(GNDI), .C(GNDI), .D(GNDI), .Z(F0)); - vmuxregsre CBR_390( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); - vmuxregsre FWEr_389( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q0)); - - specify - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - $setuphold (negedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (negedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - endspecify - -endmodule - -module lut40014 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h4040) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_26 ( input DI0, CE, CLK, output F0, Q0 ); - wire GNDI, VCCI, DI0_dly, CLK_dly, CE_dly; - - lut40011 \n2447\000/BUF1/BUF1 ( .A(GNDI), .B(GNDI), .C(GNDI), .D(GNDI), - .Z(F0)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre InitReady_394( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - - specify - (CLK => Q0) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module SLICE_27 ( input DI0, CE, CLK, output F0, Q0 ); - wire GNDI, VCCI, DI0_dly, CLK_dly, CE_dly; - - lut40011 m1_lut( .A(GNDI), .B(GNDI), .C(GNDI), .D(GNDI), .Z(F0)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre LEDEN_419( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - - specify - (CLK => Q0) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module SLICE_30 ( input C1, B1, A1, A0, DI0, M1, CLK, output F0, Q0, F1, Q1 ); - wire GNDI, VCCI, DI0_dly, CLK_dly, M1_dly; - - lut40015 i2010_3_lut_3_lut( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40008 i2044( .A(A0), .B(GNDI), .C(GNDI), .D(GNDI), .Z(F0)); - vmuxregsre RASr2_380( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - vmuxregsre RASr_379( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - - specify - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module lut40015 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hFBFB) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_32 ( input C1, B1, A1, D0, C0, B0, A0, DI0, LSR, CLK, output F0, - Q0, F1 ); - wire GNDI, VCCI, LSR_NOTIN, DI0_dly, CLK_dly, LSR_dly; - - lut40016 i2_3_lut_rep_32( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40017 i2_2_lut_3_lut_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre0007 RA10_400( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(LSR_NOTIN), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - inverter LSR_INVERTERIN( .I(LSR_dly), .Z(LSR_NOTIN)); - - specify - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, LSR, 0:0:0, 0:0:0,,,, CLK_dly, LSR_dly); - $width (posedge LSR, 0:0:0); - $width (negedge LSR, 0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module lut40016 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h8080) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module lut40017 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hFFFB) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_33 ( input C1, B1, A1, C0, B0, A0, DI0, LSR, CLK, output F0, Q0, - F1 ); - wire GNDI, VCCI, LSR_NOTIN, DI0_dly, CLK_dly, LSR_dly; - - lut40018 i1_2_lut_3_lut( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40019 RA11_I_54_3_lut( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); - vmuxregsre0004 RA11_385( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(LSR_NOTIN), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - inverter LSR_INVERTERIN( .I(LSR_dly), .Z(LSR_NOTIN)); - - specify - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, LSR, 0:0:0, 0:0:0,,,, CLK_dly, LSR_dly); - $width (posedge LSR, 0:0:0); - $width (negedge LSR, 0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module lut40018 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h1010) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module lut40019 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hC6C6) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_35 ( input D1, C1, B1, A1, C0, B0, A0, DI0, CE, CLK, output F0, - Q0, F1 ); - wire GNDI, VCCI, DI0_dly, CLK_dly, CE_dly; - - lut40020 i1_2_lut_4_lut_adj_25( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40021 i29_3_lut( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre RCKEEN_401( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module lut40020 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h20FF) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module lut40021 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hCACA) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_36 ( input D0, C0, B0, A0, DI0, M1, CLK, output F0, Q0, Q1 ); - wire VCCI, GNDI, DI0_dly, CLK_dly, M1_dly; - - lut40022 i1404_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre PHI2r2_377( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre RCKE_395( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - - specify - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module lut40022 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hCFC8) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_37 ( input DI0, CE, CLK, output F0, Q0 ); - wire GNDI, VCCI, DI0_dly, CLK_dly, CE_dly; - - lut40011 \n2447\002/BUF1/BUF1 ( .A(GNDI), .B(GNDI), .C(GNDI), .D(GNDI), - .Z(F0)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre Ready_404( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - - specify - (CLK => Q0) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module SLICE_44 ( input D1, C1, B1, A1, C0, B0, A0, DI0, CE, LSR, CLK, output - F0, Q0, F1 ); - wire GNDI, VCCI, DI0_dly, CLK_dly, CE_dly, LSR_dly; - - lut40023 i1970_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40021 i1603_3_lut( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre0004 UFMCLK_416( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), - .CK(CLK_dly), .LSR(LSR_dly), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $setuphold (posedge CLK, LSR, 0:0:0, 0:0:0,,,, CLK_dly, LSR_dly); - $width (posedge LSR, 0:0:0); - $width (negedge LSR, 0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module lut40023 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h3A0A) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_45 ( input D1, C1, B1, A1, D0, C0, B0, A0, DI0, CE, LSR, CLK, - output F0, Q0, F1 ); - wire VCCI, DI0_dly, CLK_dly, CE_dly, LSR_dly; - - lut4 i4_4_lut_adj_17( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40024 i1589_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre0004 UFMSDI_417( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), - .CK(CLK_dly), .LSR(LSR_dly), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $setuphold (posedge CLK, LSR, 0:0:0, 0:0:0,,,, CLK_dly, LSR_dly); - $width (posedge LSR, 0:0:0); - $width (negedge LSR, 0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module lut40024 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hCAC0) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_50 ( input D1, C1, B1, A1, D0, C0, B0, A0, DI0, CE, CLK, output - F0, Q0, F1 ); - wire VCCI, CLK_NOTIN, GNDI, DI0_dly, CLK_dly, CE_dly; - - lut40025 i1962_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40026 i2_3_lut_4_lut_adj_11( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre XOR8MEG_408( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), - .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - $setuphold (negedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (negedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - endspecify - -endmodule - -module lut40025 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hFEFA) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module lut40026 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h0008) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_57 ( input D1, C1, B1, A1, D0, C0, B0, A0, DI0, CE, CLK, output - F0, Q0, F1 ); - wire VCCI, GNDI, DI0_dly, CLK_dly, CE_dly; - - lut40027 i2_3_lut_rep_18_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40028 n8MEGEN_I_14_3_lut_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre n8MEGEN_418( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module lut40027 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h1000) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module lut40028 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hBF04) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_59 ( input D1, C1, B1, A1, D0, C0, B0, A0, DI0, CE, CLK, output - F0, Q0, F1 ); - wire VCCI, GNDI, DI0_dly, CLK_dly, CE_dly; - - lut40029 nRCAS_I_43_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40030 nRCAS_I_0_452_3_lut_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre0031 nRCAS_398( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module lut40029 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h3AFA) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module lut40030 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hFE0E) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module vmuxregsre0031 ( input D0, D1, SD, SP, CK, LSR, output Q ); - - FL1P3BX INST01( .D0(D0), .D1(D1), .SP(SP), .CK(CK), .SD(SD), .PD(LSR), .Q(Q)); - defparam INST01.GSR = "DISABLED"; -endmodule - -module SLICE_61 ( input D1, C1, B1, A1, C0, B0, A0, DI0, CE, CLK, output F0, - Q0, F1 ); - wire GNDI, VCCI, DI0_dly, CLK_dly, CE_dly; - - lut40032 nRCS_I_31_3_lut_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40021 nRCS_I_0_448_3_lut( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre0031 nRCS_396( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module lut40032 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h1F10) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_62 ( input D1, C1, B1, A1, D0, C0, B0, A0, DI0, CE, CLK, output - F0, Q0, F1 ); - wire VCCI, GNDI, DI0_dly, CLK_dly, CE_dly; - - lut40033 i3_4_lut_adj_2( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40029 nRCS_N_137_I_0_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre0031 nRRAS_397( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module lut40033 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hBFFF) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_64 ( input B1, A1, D0, C0, B0, A0, DI0, CE, CLK, output F0, Q0, - F1 ); - wire GNDI, VCCI, DI0_dly, CLK_dly, CE_dly; - - lut40034 i1477_2_lut( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40035 nRWE_I_0_455_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre0031 nRWE_399( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - - specify - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module lut40034 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hEEEE) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module lut40035 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hCFC5) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_65 ( input B1, A1, D0, C0, B0, A0, DI0, CE, CLK, output F0, Q0, - F1 ); - wire GNDI, VCCI, DI0_dly, CLK_dly, CE_dly; - - lut40034 i786_2_lut( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40036 i1432_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre nRowColSel_402( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - - specify - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module lut40036 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h3032) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_66 ( input B1, A1, B0, A0, DI0, LSR, CLK, output F0, Q0, F1 ); - wire GNDI, VCCI, LSR_NOTIN, DI0_dly, CLK_dly, LSR_dly; - - lut40037 i1_2_lut_adj_23( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40034 i1439_2_lut( .A(A0), .B(B0), .C(GNDI), .D(GNDI), .Z(F0)); - vmuxregsre0004 S_FSM_i4( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(LSR_NOTIN), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - inverter LSR_INVERTERIN( .I(LSR_dly), .Z(LSR_NOTIN)); - - specify - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, LSR, 0:0:0, 0:0:0,,,, CLK_dly, LSR_dly); - $width (posedge LSR, 0:0:0); - $width (negedge LSR, 0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module lut40037 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hBBBB) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_67 ( input B0, A0, DI0, LSR, CLK, output F0, Q0 ); - wire GNDI, VCCI, LSR_NOTIN, DI0_dly, CLK_dly, LSR_dly; - - lut40038 i1_2_lut_adj_10( .A(A0), .B(B0), .C(GNDI), .D(GNDI), .Z(F0)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre0004 S_FSM_i3( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(LSR_NOTIN), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - inverter LSR_INVERTERIN( .I(LSR_dly), .Z(LSR_NOTIN)); - - specify - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, LSR, 0:0:0, 0:0:0,,,, CLK_dly, LSR_dly); - $width (posedge LSR, 0:0:0); - $width (negedge LSR, 0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module lut40038 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h2222) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_68 ( input B1, A1, B0, A0, M0, LSR, CLK, output F0, Q0, F1 ); - wire GNDI, VCCI, LSR_NOTIN, M0_dly, CLK_dly, LSR_dly; - - lut40034 i4_2_lut( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40039 i1989_2_lut( .A(A0), .B(B0), .C(GNDI), .D(GNDI), .Z(F0)); - vmuxregsre0004 S_FSM_i2( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_dly), .LSR(LSR_NOTIN), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - inverter LSR_INVERTERIN( .I(LSR_dly), .Z(LSR_NOTIN)); - - specify - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - $setuphold (posedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $setuphold (posedge CLK, LSR, 0:0:0, 0:0:0,,,, CLK_dly, LSR_dly); - $width (posedge LSR, 0:0:0); - $width (negedge LSR, 0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module lut40039 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h8888) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_69 ( input B1, A1, A0, DI0, M1, CLK, output F0, Q0, F1, Q1 ); - wire GNDI, VCCI, DI0_dly, CLK_dly, M1_dly; - - lut40034 i1491_2_lut_rep_30( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40008 RASr2_I_0_1_lut_rep_25( .A(A0), .B(GNDI), .C(GNDI), .D(GNDI), - .Z(F0)); - vmuxregsre PHI2r3_378( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - vmuxregsre S_FSM_i1( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - - specify - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module SLICE_70 ( input D1, C1, B1, A1, D0, C0, B0, A0, DI0, CE, CLK, output - F0, Q0, F1 ); - wire VCCI, GNDI, DI0_dly, CLK_dly, CE_dly; - - lut40040 i1_2_lut_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40041 i1448_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre0031 nUFMCS_415( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module lut40040 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hFFFE) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module lut40041 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h3FBB) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module i30_SLICE_71 ( input C1, B1, A1, D0, C0, B0, A0, M0, output OFX0 ); - wire GNDI, \i30/SLICE_71/i30/SLICE_71_K1_H1 , \i30/SLICE_71/i30/GATE_H0 ; - - lut40042 \i30/SLICE_71_K1 ( .A(A1), .B(B1), .C(C1), .D(GNDI), - .Z(\i30/SLICE_71/i30/SLICE_71_K1_H1 )); - gnd DRIVEGND( .PWR0(GNDI)); - lut40043 \i30/GATE ( .A(A0), .B(B0), .C(C0), .D(D0), - .Z(\i30/SLICE_71/i30/GATE_H0 )); - selmux2 \i30/SLICE_71_K0K1MUX ( .D0(\i30/SLICE_71/i30/GATE_H0 ), - .D1(\i30/SLICE_71/i30/SLICE_71_K1_H1 ), .SD(M0), .Z(OFX0)); - - specify - (C1 => OFX0) = (0:0:0,0:0:0); - (B1 => OFX0) = (0:0:0,0:0:0); - (A1 => OFX0) = (0:0:0,0:0:0); - (D0 => OFX0) = (0:0:0,0:0:0); - (C0 => OFX0) = (0:0:0,0:0:0); - (B0 => OFX0) = (0:0:0,0:0:0); - (A0 => OFX0) = (0:0:0,0:0:0); - (M0 => OFX0) = (0:0:0,0:0:0); - endspecify - -endmodule - -module lut40042 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h1F1F) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module lut40043 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h5540) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module selmux2 ( input D0, D1, SD, output Z ); - - MUX21 INST1( .D0(D0), .D1(D1), .SD(SD), .Z(Z)); -endmodule - -module SLICE_72 ( input D1, C1, B1, A1, B0, A0, output F0, F1 ); - wire GNDI; - - lut40044 i1_4_lut_4_lut_adj_12( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40039 i2_2_lut( .A(A0), .B(B0), .C(GNDI), .D(GNDI), .Z(F0)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - endspecify - -endmodule - -module lut40044 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hFF40) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_73 ( input D1, C1, B1, A1, D0, C0, B0, A0, output F0, F1 ); - - lut40003 i2_3_lut_4_lut_adj_14( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40010 i4_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - endspecify - -endmodule - -module SLICE_74 ( input D1, C1, B1, A1, D0, C0, B0, A0, M1, M0, LSR, CLK, - output F0, Q0, F1, Q1 ); - wire VCCI, GNDI, CLK_NOTIN, LSR_NOTIN, M1_dly, CLK_dly, M0_dly, LSR_dly; - - lut40033 i12_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40045 i1_2_lut_3_lut_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre0004 RowA_i1( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(LSR_NOTIN), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - gnd DRIVEGND( .PWR0(GNDI)); - inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); - inverter LSR_INVERTERIN( .I(LSR_dly), .Z(LSR_NOTIN)); - vmuxregsre0004 RowA_i0( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(LSR_NOTIN), .Q(Q0)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $width (posedge LSR, 0:0:0); - $width (negedge LSR, 0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - $setuphold (negedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (negedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $setuphold (negedge CLK, LSR, 0:0:0, 0:0:0,,,, CLK_dly, LSR_dly); - endspecify - -endmodule - -module lut40045 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h0020) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_75 ( input D1, C1, B1, A1, B0, A0, M1, M0, CE, CLK, output F0, Q0, - F1, Q1 ); - wire GNDI, VCCI, M1_dly, CLK_dly, M0_dly, CE_dly; - - lut40027 i3_4_lut_adj_18( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40038 i1_2_lut( .A(A0), .B(B0), .C(GNDI), .D(GNDI), .Z(F0)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre IS_FSM__i9( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - vmuxregsre IS_FSM__i8( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $setuphold (posedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (posedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module SLICE_76 ( input C1, B1, A1, D0, C0, B0, A0, M1, M0, LSR, CLK, output - F0, Q0, F1, Q1 ); - wire GNDI, VCCI, CLK_NOTIN, LSR_NOTIN, M1_dly, CLK_dly, M0_dly, LSR_dly; - - lut40012 i1_2_lut_rep_19_3_lut( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40026 i1_2_lut_rep_15_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre0007 RowA_i9( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(LSR_NOTIN), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); - inverter LSR_INVERTERIN( .I(LSR_dly), .Z(LSR_NOTIN)); - vmuxregsre0004 RowA_i8( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(LSR_NOTIN), .Q(Q0)); - - specify - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $width (posedge LSR, 0:0:0); - $width (negedge LSR, 0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - $setuphold (negedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (negedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $setuphold (negedge CLK, LSR, 0:0:0, 0:0:0,,,, CLK_dly, LSR_dly); - endspecify - -endmodule - -module SLICE_77 ( input D1, C1, B1, A1, D0, C0, B0, A0, output F0, F1 ); - - lut40046 i3_4_lut_adj_22( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40046 i3_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - endspecify - -endmodule - -module lut40046 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h0800) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_78 ( input D1, C1, B1, A1, B0, A0, M1, M0, CE, CLK, output F0, Q0, - F1, Q1 ); - wire GNDI, VCCI, M1_dly, CLK_dly, M0_dly, CE_dly; - - lut40047 nRCS_N_146_bdd_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40048 i1423_2_lut( .A(A0), .B(B0), .C(GNDI), .D(GNDI), .Z(F0)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre IS_FSM__i13( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - vmuxregsre IS_FSM__i12( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $setuphold (posedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (posedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module lut40047 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hF0DD) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module lut40048 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hDDDD) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_79 ( input C1, B1, A1, D0, C0, B0, A0, M1, M0, CE, CLK, output F0, - Q0, F1, Q1 ); - wire GNDI, VCCI, M1_dly, CLK_dly, M0_dly, CE_dly; - - lut40016 i11_3_lut_rep_20( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40049 MAin_c_0_bdd_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre IS_FSM__i11( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - vmuxregsre IS_FSM__i10( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - - specify - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $setuphold (posedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (posedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module lut40049 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h0200) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_80 ( input B1, A1, D0, C0, B0, A0, output F0, F1 ); - wire GNDI; - - lut40034 i3_2_lut_rep_26( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40050 i2005_3_lut_rep_17_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - - specify - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - endspecify - -endmodule - -module lut40050 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h0001) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_81 ( input B1, A1, D0, C0, B0, A0, M1, M0, CE, CLK, output F0, Q0, - F1, Q1 ); - wire GNDI, VCCI, M1_dly, CLK_dly, M0_dly, CE_dly; - - lut40034 i1_2_lut_rep_29( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40051 i1427_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre IS_FSM__i15( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - vmuxregsre IS_FSM__i14( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - - specify - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $setuphold (posedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (posedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module lut40051 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hFCDD) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_82 ( input D1, C1, B1, A1, B0, A0, M1, M0, LSR, CLK, output F0, - Q0, F1, Q1 ); - wire GNDI, VCCI, CLK_NOTIN, LSR_NOTIN, M1_dly, CLK_dly, M0_dly, LSR_dly; - - lut40052 i6_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40039 i1_2_lut_adj_3( .A(A0), .B(B0), .C(GNDI), .D(GNDI), .Z(F0)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre0007 RowA_i5( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(LSR_NOTIN), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); - inverter LSR_INVERTERIN( .I(LSR_dly), .Z(LSR_NOTIN)); - vmuxregsre0004 RowA_i4( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(LSR_NOTIN), .Q(Q0)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $width (posedge LSR, 0:0:0); - $width (negedge LSR, 0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - $setuphold (negedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (negedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $setuphold (negedge CLK, LSR, 0:0:0, 0:0:0,,,, CLK_dly, LSR_dly); - endspecify - -endmodule - -module lut40052 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h8000) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_83 ( input D1, C1, B1, A1, D0, C0, B0, A0, output F0, F1 ); - - lut40053 i2_4_lut_adj_21( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40054 i2_3_lut_4_lut_adj_6( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - endspecify - -endmodule - -module lut40053 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h0004) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module lut40054 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hFFDF) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_84 ( input C1, B1, A1, D0, C0, B0, A0, M1, M0, CE, CLK, output F0, - Q0, F1, Q1 ); - wire GNDI, VCCI, M1_dly, CLK_dly, M0_dly, CE_dly; - - lut40055 i2_3_lut_rep_28( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40024 i1573_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre IS_FSM__i3( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - vmuxregsre IS_FSM__i2( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - - specify - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $setuphold (posedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (posedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module lut40055 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h2020) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_85 ( input D1, C1, B1, A1, D0, C0, B0, A0, output F0, F1 ); - - lut40056 i1969_2_lut_3_lut_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40040 i3_4_lut_adj_7( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - endspecify - -endmodule - -module lut40056 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hFFEF) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_86 ( input C1, B1, A1, D0, C0, B0, A0, M1, M0, CLK, output F0, Q0, - F1, Q1 ); - wire GNDI, VCCI, M1_dly, CLK_dly, M0_dly; - - lut40012 i5_3_lut( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut4 i1_4_lut_adj_8( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre RASr3_381( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - vmuxregsre PHI2r_376( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - - specify - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $setuphold (posedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (posedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module SLICE_87 ( input D1, C1, B1, A1, B0, A0, M1, M0, LSR, CLK, output F0, - Q0, F1, Q1 ); - wire GNDI, VCCI, CLK_NOTIN, LSR_NOTIN, M1_dly, CLK_dly, M0_dly, LSR_dly; - - lut40040 i4_4_lut_adj_16( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40048 i1_2_lut_2_lut( .A(A0), .B(B0), .C(GNDI), .D(GNDI), .Z(F0)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre0004 RBA__i2( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(LSR_NOTIN), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); - inverter LSR_INVERTERIN( .I(LSR_dly), .Z(LSR_NOTIN)); - vmuxregsre0004 RBA__i1( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(LSR_NOTIN), .Q(Q0)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $width (posedge LSR, 0:0:0); - $width (negedge LSR, 0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - $setuphold (negedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (negedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $setuphold (negedge CLK, LSR, 0:0:0, 0:0:0,,,, CLK_dly, LSR_dly); - endspecify - -endmodule - -module SLICE_88 ( input D1, C1, B1, A1, D0, C0, B0, A0, M1, M0, CLK, output F0, - Q0, F1, Q1 ); - wire VCCI, GNDI, CLK_NOTIN, M1_dly, CLK_dly, M0_dly; - - lut40057 i34_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40053 i1_4_lut_adj_13( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre WRD_i7( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - gnd DRIVEGND( .PWR0(GNDI)); - inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); - vmuxregsre WRD_i6( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q0)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - $setuphold (negedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (negedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - endspecify - -endmodule - -module lut40057 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hC0C5) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_89 ( input D1, C1, B1, A1, D0, C0, B0, A0, M1, M0, CLK, output F0, - Q0, F1, Q1 ); - wire VCCI, GNDI, CLK_NOTIN, M1_dly, CLK_dly, M0_dly; - - lut40058 i2_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40059 i1_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre WRD_i5( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - gnd DRIVEGND( .PWR0(GNDI)); - inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); - vmuxregsre WRD_i4( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q0)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - $setuphold (negedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (negedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - endspecify - -endmodule - -module lut40058 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h8088) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module lut40059 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hC444) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_90 ( input D1, C1, B1, A1, C0, B0, A0, M1, M0, CLK, output F0, Q0, - F1, Q1 ); - wire GNDI, VCCI, CLK_NOTIN, M1_dly, CLK_dly, M0_dly; - - lut40049 i1_2_lut_3_lut_4_lut_adj_1( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40055 i1_2_lut_rep_21_3_lut( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre WRD_i1( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); - vmuxregsre WRD_i0( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q0)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - $setuphold (negedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (negedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - endspecify - -endmodule - -module SLICE_91 ( input C1, B1, A1, D0, C0, B0, A0, M1, M0, LSR, CLK, output - F0, Q0, F1, Q1 ); - wire GNDI, VCCI, CLK_NOTIN, LSR_NOTIN, M1_dly, CLK_dly, M0_dly, LSR_dly; - - lut40060 i1_2_lut_rep_13_3_lut( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40061 i1_2_lut_3_lut_4_lut_adj_5( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre0004 RowA_i3( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(LSR_NOTIN), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); - inverter LSR_INVERTERIN( .I(LSR_dly), .Z(LSR_NOTIN)); - vmuxregsre0004 RowA_i2( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(LSR_NOTIN), .Q(Q0)); - - specify - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $width (posedge LSR, 0:0:0); - $width (negedge LSR, 0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - $setuphold (negedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (negedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $setuphold (negedge CLK, LSR, 0:0:0, 0:0:0,,,, CLK_dly, LSR_dly); - endspecify - -endmodule - -module lut40060 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hDFDF) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module lut40061 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hDFFF) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_92 ( input D1, C1, B1, A1, D0, C0, B0, A0, M1, M0, CLK, output F0, - Q0, F1, Q1 ); - wire VCCI, GNDI, CLK_NOTIN, M1_dly, CLK_dly, M0_dly; - - lut40062 i2008_2_lut_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40005 i1_2_lut_rep_22_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre WRD_i3( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - gnd DRIVEGND( .PWR0(GNDI)); - inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); - vmuxregsre WRD_i2( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q0)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - $setuphold (negedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (negedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - endspecify - -endmodule - -module lut40062 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h0080) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_93 ( input B1, A1, C0, B0, A0, M1, M0, CLK, output F0, Q0, F1, Q1 ); - wire GNDI, VCCI, M1_dly, CLK_dly, M0_dly; - - lut40063 i2001_2_lut( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40021 MAin_9__I_0_427_i10_3_lut( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); - vmuxregsre Bank_i1( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - vmuxregsre Bank_i0( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - - specify - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $setuphold (posedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (posedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module lut40063 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h7777) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_94 ( input B1, A1, D0, C0, B0, A0, output F0, F1 ); - wire GNDI; - - lut40048 i771_2_lut_rep_23_2_lut( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40064 i2_3_lut_4_lut_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - - specify - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - endspecify - -endmodule - -module lut40064 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hFFFD) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_95 ( input D1, C1, B1, A1, D0, C0, B0, A0, output F0, F1 ); - - lut40065 i2_4_lut_adj_20( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40040 i6_4_lut_adj_9( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - endspecify - -endmodule - -module lut40065 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h1404) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_96 ( input B1, A1, D0, C0, B0, A0, output F0, F1 ); - wire GNDI; - - lut40034 i1_2_lut_rep_27( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40027 i2_3_lut_4_lut_adj_24( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - - specify - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - endspecify - -endmodule - -module SLICE_97 ( input C1, B1, A1, B0, A0, M1, M0, CE, CLK, output F0, Q0, F1, - Q1 ); - wire GNDI, VCCI, M1_dly, CLK_dly, M0_dly, CE_dly; - - lut40066 i13_3_lut( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40034 i1956_2_lut( .A(A0), .B(B0), .C(GNDI), .D(GNDI), .Z(F0)); - vmuxregsre IS_FSM__i7( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - vmuxregsre IS_FSM__i6( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - - specify - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $setuphold (posedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (posedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module lut40066 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hC5C5) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_98 ( input B1, A1, C0, B0, A0, M1, M0, CE, CLK, output F0, Q0, F1, - Q1 ); - wire GNDI, VCCI, M1_dly, CLK_dly, M0_dly, CE_dly; - - lut40037 i1416_2_lut( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40021 MAin_9__I_0_427_i9_3_lut( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); - vmuxregsre IS_FSM__i1( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - vmuxregsre IS_FSM__i0( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - - specify - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $setuphold (posedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (posedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module SLICE_99 ( input D1, C1, B1, A1, C0, B0, A0, M0, CE, CLK, output F0, Q0, - F1 ); - wire GNDI, VCCI, CLK_NOTIN, M0_dly, CLK_dly, CE_dly; - - lut40052 i8_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40021 MAin_9__I_0_427_i8_3_lut( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre CmdUFMSDI_414( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - $setuphold (negedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $setuphold (negedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - endspecify - -endmodule - -module SLICE_100 ( input D1, C1, B1, A1, C0, B0, A0, M1, M0, CE, CLK, output - F0, Q0, F1, Q1 ); - wire GNDI, VCCI, CLK_NOTIN, M1_dly, CLK_dly, M0_dly, CE_dly; - - lut40052 i1979_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40021 MAin_9__I_0_427_i7_3_lut( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre CmdUFMCS_412( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); - vmuxregsre CmdUFMCLK_413( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q0)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - $setuphold (negedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (negedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $setuphold (negedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - endspecify - -endmodule - -module SLICE_101 ( input C1, B1, A1, C0, B0, A0, M1, M0, CLK, output F0, Q0, - F1, Q1 ); - wire GNDI, VCCI, M1_dly, CLK_dly, M0_dly; - - lut40021 MAin_9__I_0_427_i1_3_lut( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40021 MAin_9__I_0_427_i6_3_lut( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); - vmuxregsre Bank_i7( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - vmuxregsre Bank_i6( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - - specify - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $setuphold (posedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (posedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module SLICE_102 ( input C1, B1, A1, C0, B0, A0, M1, M0, CLK, output F0, Q0, - F1, Q1 ); - wire GNDI, VCCI, M1_dly, CLK_dly, M0_dly; - - lut40021 MAin_9__I_0_427_i2_3_lut( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40021 MAin_9__I_0_427_i5_3_lut( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); - vmuxregsre Bank_i5( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - vmuxregsre Bank_i4( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - - specify - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $setuphold (posedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (posedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module SLICE_103 ( input C1, B1, A1, C0, B0, A0, M1, M0, CLK, output F0, Q0, - F1, Q1 ); - wire GNDI, VCCI, M1_dly, CLK_dly, M0_dly; - - lut40021 MAin_9__I_0_427_i3_3_lut( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40021 MAin_9__I_0_427_i4_3_lut( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); - vmuxregsre Bank_i3( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - vmuxregsre Bank_i2( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - - specify - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $setuphold (posedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (posedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module SLICE_104 ( input B1, A1, C0, B0, A0, M1, M0, LSR, CLK, output F0, Q0, - F1, Q1 ); - wire GNDI, VCCI, CLK_NOTIN, LSR_NOTIN, M1_dly, CLK_dly, M0_dly, LSR_dly; - - lut40034 i1417_2_lut( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40067 i1_2_lut_rep_14_3_lut( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); - vmuxregsre0004 RowA_i7( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(LSR_NOTIN), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); - inverter LSR_INVERTERIN( .I(LSR_dly), .Z(LSR_NOTIN)); - vmuxregsre0004 RowA_i6( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(LSR_NOTIN), .Q(Q0)); - - specify - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $width (posedge LSR, 0:0:0); - $width (negedge LSR, 0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - $setuphold (negedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (negedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $setuphold (negedge CLK, LSR, 0:0:0, 0:0:0,,,, CLK_dly, LSR_dly); - endspecify - -endmodule - -module lut40067 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hFDFD) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_105 ( input B1, A1, D0, C0, B0, A0, output F0, F1 ); - wire GNDI; - - lut40039 i1_2_lut_adj_19( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40052 i5_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - - specify - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - endspecify - -endmodule - -module SLICE_106 ( input B1, A1, B0, A0, M1, M0, CE, CLK, output F0, Q0, F1, - Q1 ); - wire GNDI, VCCI, M1_dly, CLK_dly, M0_dly, CE_dly; - - lut40039 i1_2_lut_rep_33( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40034 i1930_2_lut( .A(A0), .B(B0), .C(GNDI), .D(GNDI), .Z(F0)); - vmuxregsre IS_FSM__i5( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - vmuxregsre IS_FSM__i4( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - - specify - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $setuphold (posedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (posedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module RD_7_ ( output PADDI, input PADDT, PADDO, inout RD7 ); - - xo2iobuf Dout_pad_7__713( .I(PADDO), .T(PADDT), .Z(PADDI), .PAD(RD7), - .PADI(RD7)); - - specify - (PADDT => RD7) = (0:0:0,0:0:0,0:0:0,0:0:0,0:0:0,0:0:0); - (PADDO => RD7) = (0:0:0,0:0:0); - (RD7 => PADDI) = (0:0:0,0:0:0); - $width (posedge RD7, 0:0:0); - $width (negedge RD7, 0:0:0); - endspecify - -endmodule - -module xo2iobuf ( input I, T, output Z, PAD, input PADI ); - - IBPD INST1( .I(PADI), .O(Z)); - OBZPD INST2( .I(I), .T(T), .O(PAD)); -endmodule - -module RD_6_ ( output PADDI, input PADDT, PADDO, inout RD6 ); - - xo2iobuf Dout_pad_6__714( .I(PADDO), .T(PADDT), .Z(PADDI), .PAD(RD6), - .PADI(RD6)); - - specify - (PADDT => RD6) = (0:0:0,0:0:0,0:0:0,0:0:0,0:0:0,0:0:0); - (PADDO => RD6) = (0:0:0,0:0:0); - (RD6 => PADDI) = (0:0:0,0:0:0); - $width (posedge RD6, 0:0:0); - $width (negedge RD6, 0:0:0); - endspecify - -endmodule - -module RD_5_ ( output PADDI, input PADDT, PADDO, inout RD5 ); - - xo2iobuf Dout_pad_5__715( .I(PADDO), .T(PADDT), .Z(PADDI), .PAD(RD5), - .PADI(RD5)); - - specify - (PADDT => RD5) = (0:0:0,0:0:0,0:0:0,0:0:0,0:0:0,0:0:0); - (PADDO => RD5) = (0:0:0,0:0:0); - (RD5 => PADDI) = (0:0:0,0:0:0); - $width (posedge RD5, 0:0:0); - $width (negedge RD5, 0:0:0); - endspecify - -endmodule - -module RD_4_ ( output PADDI, input PADDT, PADDO, inout RD4 ); - - xo2iobuf Dout_pad_4__716( .I(PADDO), .T(PADDT), .Z(PADDI), .PAD(RD4), - .PADI(RD4)); - - specify - (PADDT => RD4) = (0:0:0,0:0:0,0:0:0,0:0:0,0:0:0,0:0:0); - (PADDO => RD4) = (0:0:0,0:0:0); - (RD4 => PADDI) = (0:0:0,0:0:0); - $width (posedge RD4, 0:0:0); - $width (negedge RD4, 0:0:0); - endspecify - -endmodule - -module RD_3_ ( output PADDI, input PADDT, PADDO, inout RD3 ); - - xo2iobuf Dout_pad_3__717( .I(PADDO), .T(PADDT), .Z(PADDI), .PAD(RD3), - .PADI(RD3)); - - specify - (PADDT => RD3) = (0:0:0,0:0:0,0:0:0,0:0:0,0:0:0,0:0:0); - (PADDO => RD3) = (0:0:0,0:0:0); - (RD3 => PADDI) = (0:0:0,0:0:0); - $width (posedge RD3, 0:0:0); - $width (negedge RD3, 0:0:0); - endspecify - -endmodule - -module RD_2_ ( output PADDI, input PADDT, PADDO, inout RD2 ); - - xo2iobuf Dout_pad_2__718( .I(PADDO), .T(PADDT), .Z(PADDI), .PAD(RD2), - .PADI(RD2)); - - specify - (PADDT => RD2) = (0:0:0,0:0:0,0:0:0,0:0:0,0:0:0,0:0:0); - (PADDO => RD2) = (0:0:0,0:0:0); - (RD2 => PADDI) = (0:0:0,0:0:0); - $width (posedge RD2, 0:0:0); - $width (negedge RD2, 0:0:0); - endspecify - -endmodule - -module RD_1_ ( output PADDI, input PADDT, PADDO, inout RD1 ); - - xo2iobuf Dout_pad_1__719( .I(PADDO), .T(PADDT), .Z(PADDI), .PAD(RD1), - .PADI(RD1)); - - specify - (PADDT => RD1) = (0:0:0,0:0:0,0:0:0,0:0:0,0:0:0,0:0:0); - (PADDO => RD1) = (0:0:0,0:0:0); - (RD1 => PADDI) = (0:0:0,0:0:0); - $width (posedge RD1, 0:0:0); - $width (negedge RD1, 0:0:0); - endspecify - -endmodule - -module RD_0_ ( output PADDI, input PADDT, PADDO, inout RD0 ); - - xo2iobuf Dout_pad_0__720( .I(PADDO), .T(PADDT), .Z(PADDI), .PAD(RD0), - .PADI(RD0)); - - specify - (PADDT => RD0) = (0:0:0,0:0:0,0:0:0,0:0:0,0:0:0,0:0:0); - (PADDO => RD0) = (0:0:0,0:0:0); - (RD0 => PADDI) = (0:0:0,0:0:0); - $width (posedge RD0, 0:0:0); - $width (negedge RD0, 0:0:0); - endspecify - -endmodule - -module Dout_7_ ( input PADDO, output Dout7 ); - wire GNDI; - - xo2iobuf0068 Dout_pad_7( .I(PADDO), .T(GNDI), .PAD(Dout7)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => Dout7) = (0:0:0,0:0:0); - endspecify - -endmodule - -module xo2iobuf0068 ( input I, T, output PAD ); - - OBZPD INST5( .I(I), .T(T), .O(PAD)); -endmodule - -module Dout_6_ ( input PADDO, output Dout6 ); - wire GNDI; - - xo2iobuf0068 Dout_pad_6( .I(PADDO), .T(GNDI), .PAD(Dout6)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => Dout6) = (0:0:0,0:0:0); - endspecify - -endmodule - -module Dout_5_ ( input PADDO, output Dout5 ); - wire GNDI; - - xo2iobuf0068 Dout_pad_5( .I(PADDO), .T(GNDI), .PAD(Dout5)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => Dout5) = (0:0:0,0:0:0); - endspecify - -endmodule - -module Dout_4_ ( input PADDO, output Dout4 ); - wire GNDI; - - xo2iobuf0068 Dout_pad_4( .I(PADDO), .T(GNDI), .PAD(Dout4)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => Dout4) = (0:0:0,0:0:0); - endspecify - -endmodule - -module Dout_3_ ( input PADDO, output Dout3 ); - wire GNDI; - - xo2iobuf0068 Dout_pad_3( .I(PADDO), .T(GNDI), .PAD(Dout3)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => Dout3) = (0:0:0,0:0:0); - endspecify - -endmodule - -module Dout_2_ ( input PADDO, output Dout2 ); - wire GNDI; - - xo2iobuf0068 Dout_pad_2( .I(PADDO), .T(GNDI), .PAD(Dout2)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => Dout2) = (0:0:0,0:0:0); - endspecify - -endmodule - -module Dout_1_ ( input PADDO, output Dout1 ); - wire GNDI; - - xo2iobuf0068 Dout_pad_1( .I(PADDO), .T(GNDI), .PAD(Dout1)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => Dout1) = (0:0:0,0:0:0); - endspecify - -endmodule - -module Dout_0_ ( input PADDO, output Dout0 ); - wire GNDI; - - xo2iobuf0068 Dout_pad_0( .I(PADDO), .T(GNDI), .PAD(Dout0)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => Dout0) = (0:0:0,0:0:0); - endspecify - -endmodule - -module LED ( input PADDO, output LED ); - wire GNDI; - - xo2iobuf0068 LED_pad( .I(PADDO), .T(GNDI), .PAD(LED)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => LED) = (0:0:0,0:0:0); - endspecify - -endmodule - -module RBA_1_ ( input PADDO, output RBA1 ); - wire GNDI; - - xo2iobuf0068 RBA_pad_1( .I(PADDO), .T(GNDI), .PAD(RBA1)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => RBA1) = (0:0:0,0:0:0); - endspecify - -endmodule - -module RBA_0_ ( input PADDO, output RBA0 ); - wire GNDI; - - xo2iobuf0068 RBA_pad_0( .I(PADDO), .T(GNDI), .PAD(RBA0)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => RBA0) = (0:0:0,0:0:0); - endspecify - -endmodule - -module RA_11_ ( input PADDO, output RA11 ); - wire GNDI; - - xo2iobuf0068 RA_pad_11( .I(PADDO), .T(GNDI), .PAD(RA11)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => RA11) = (0:0:0,0:0:0); - endspecify - -endmodule - -module RA_10_ ( input PADDO, output RA10 ); - wire GNDI; - - xo2iobuf0068 RA_pad_10( .I(PADDO), .T(GNDI), .PAD(RA10)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => RA10) = (0:0:0,0:0:0); - endspecify - -endmodule - -module RA_9_ ( input PADDO, output RA9 ); - wire GNDI; - - xo2iobuf0068 RA_pad_9( .I(PADDO), .T(GNDI), .PAD(RA9)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => RA9) = (0:0:0,0:0:0); - endspecify - -endmodule - -module RA_8_ ( input PADDO, output RA8 ); - wire GNDI; - - xo2iobuf0068 RA_pad_8( .I(PADDO), .T(GNDI), .PAD(RA8)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => RA8) = (0:0:0,0:0:0); - endspecify - -endmodule - -module RA_7_ ( input PADDO, output RA7 ); - wire GNDI; - - xo2iobuf0068 RA_pad_7( .I(PADDO), .T(GNDI), .PAD(RA7)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => RA7) = (0:0:0,0:0:0); - endspecify - -endmodule - -module RA_6_ ( input PADDO, output RA6 ); - wire GNDI; - - xo2iobuf0068 RA_pad_6( .I(PADDO), .T(GNDI), .PAD(RA6)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => RA6) = (0:0:0,0:0:0); - endspecify - -endmodule - -module RA_5_ ( input PADDO, output RA5 ); - wire GNDI; - - xo2iobuf0068 RA_pad_5( .I(PADDO), .T(GNDI), .PAD(RA5)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => RA5) = (0:0:0,0:0:0); - endspecify - -endmodule - -module RA_4_ ( input PADDO, output RA4 ); - wire GNDI; - - xo2iobuf0068 RA_pad_4( .I(PADDO), .T(GNDI), .PAD(RA4)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => RA4) = (0:0:0,0:0:0); - endspecify - -endmodule - -module RA_3_ ( input PADDO, output RA3 ); - wire GNDI; - - xo2iobuf0068 RA_pad_3( .I(PADDO), .T(GNDI), .PAD(RA3)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => RA3) = (0:0:0,0:0:0); - endspecify - -endmodule - -module RA_2_ ( input PADDO, output RA2 ); - wire GNDI; - - xo2iobuf0068 RA_pad_2( .I(PADDO), .T(GNDI), .PAD(RA2)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => RA2) = (0:0:0,0:0:0); - endspecify - -endmodule - -module RA_1_ ( input PADDO, output RA1 ); - wire GNDI; - - xo2iobuf0068 RA_pad_1( .I(PADDO), .T(GNDI), .PAD(RA1)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => RA1) = (0:0:0,0:0:0); - endspecify - -endmodule - -module RA_0_ ( input PADDO, output RA0 ); - wire GNDI; - - xo2iobuf0068 RA_pad_0( .I(PADDO), .T(GNDI), .PAD(RA0)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => RA0) = (0:0:0,0:0:0); - endspecify - -endmodule - -module nRCS ( input PADDO, output nRCS ); - wire GNDI; - - xo2iobuf0068 nRCS_pad( .I(PADDO), .T(GNDI), .PAD(nRCS)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => nRCS) = (0:0:0,0:0:0); - endspecify - -endmodule - -module RCKE ( input PADDO, output RCKE ); - wire GNDI; - - xo2iobuf0068 RCKE_pad( .I(PADDO), .T(GNDI), .PAD(RCKE)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => RCKE) = (0:0:0,0:0:0); - endspecify - -endmodule - -module nRWE ( input PADDO, output nRWE ); - wire GNDI; - - xo2iobuf0068 nRWE_pad( .I(PADDO), .T(GNDI), .PAD(nRWE)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => nRWE) = (0:0:0,0:0:0); - endspecify - -endmodule - -module nRRAS ( input PADDO, output nRRAS ); - wire GNDI; - - xo2iobuf0068 nRRAS_pad( .I(PADDO), .T(GNDI), .PAD(nRRAS)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => nRRAS) = (0:0:0,0:0:0); - endspecify - -endmodule - -module nRCAS ( input PADDO, output nRCAS ); - wire GNDI; - - xo2iobuf0068 nRCAS_pad( .I(PADDO), .T(GNDI), .PAD(nRCAS)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => nRCAS) = (0:0:0,0:0:0); - endspecify - -endmodule - -module RDQMH ( input PADDO, output RDQMH ); - wire GNDI; - - xo2iobuf0068 RDQMH_pad( .I(PADDO), .T(GNDI), .PAD(RDQMH)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => RDQMH) = (0:0:0,0:0:0); - endspecify - -endmodule - -module RDQML ( input PADDO, output RDQML ); - wire GNDI; - - xo2iobuf0068 RDQML_pad( .I(PADDO), .T(GNDI), .PAD(RDQML)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => RDQML) = (0:0:0,0:0:0); - endspecify - -endmodule - -module nUFMCS ( input PADDO, output nUFMCS ); - wire GNDI; - - xo2iobuf0068 nUFMCS_pad( .I(PADDO), .T(GNDI), .PAD(nUFMCS)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => nUFMCS) = (0:0:0,0:0:0); - endspecify - -endmodule - -module UFMCLK ( input PADDO, output UFMCLK ); - wire GNDI; - - xo2iobuf0068 UFMCLK_pad( .I(PADDO), .T(GNDI), .PAD(UFMCLK)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => UFMCLK) = (0:0:0,0:0:0); - endspecify - -endmodule - -module UFMSDI ( input PADDO, output UFMSDI ); - wire GNDI; - - xo2iobuf0068 UFMSDI_pad( .I(PADDO), .T(GNDI), .PAD(UFMSDI)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => UFMSDI) = (0:0:0,0:0:0); - endspecify - -endmodule - -module PHI2 ( output PADDI, input PHI2 ); - - xo2iobuf0069 PHI2_pad( .Z(PADDI), .PAD(PHI2)); - - specify - (PHI2 => PADDI) = (0:0:0,0:0:0); - $width (posedge PHI2, 0:0:0); - $width (negedge PHI2, 0:0:0); - endspecify - -endmodule - -module xo2iobuf0069 ( output Z, input PAD ); - - IBPD INST1( .I(PAD), .O(Z)); -endmodule - -module MAin_9_ ( output PADDI, input MAin9 ); - - xo2iobuf0069 MAin_pad_9( .Z(PADDI), .PAD(MAin9)); - - specify - (MAin9 => PADDI) = (0:0:0,0:0:0); - $width (posedge MAin9, 0:0:0); - $width (negedge MAin9, 0:0:0); - endspecify - -endmodule - -module MAin_8_ ( output PADDI, input MAin8 ); - - xo2iobuf0069 MAin_pad_8( .Z(PADDI), .PAD(MAin8)); - - specify - (MAin8 => PADDI) = (0:0:0,0:0:0); - $width (posedge MAin8, 0:0:0); - $width (negedge MAin8, 0:0:0); - endspecify - -endmodule - -module MAin_7_ ( output PADDI, input MAin7 ); - - xo2iobuf0069 MAin_pad_7( .Z(PADDI), .PAD(MAin7)); - - specify - (MAin7 => PADDI) = (0:0:0,0:0:0); - $width (posedge MAin7, 0:0:0); - $width (negedge MAin7, 0:0:0); - endspecify - -endmodule - -module MAin_6_ ( output PADDI, input MAin6 ); - - xo2iobuf0069 MAin_pad_6( .Z(PADDI), .PAD(MAin6)); - - specify - (MAin6 => PADDI) = (0:0:0,0:0:0); - $width (posedge MAin6, 0:0:0); - $width (negedge MAin6, 0:0:0); - endspecify - -endmodule - -module MAin_5_ ( output PADDI, input MAin5 ); - - xo2iobuf0069 MAin_pad_5( .Z(PADDI), .PAD(MAin5)); - - specify - (MAin5 => PADDI) = (0:0:0,0:0:0); - $width (posedge MAin5, 0:0:0); - $width (negedge MAin5, 0:0:0); - endspecify - -endmodule - -module MAin_4_ ( output PADDI, input MAin4 ); - - xo2iobuf0069 MAin_pad_4( .Z(PADDI), .PAD(MAin4)); - - specify - (MAin4 => PADDI) = (0:0:0,0:0:0); - $width (posedge MAin4, 0:0:0); - $width (negedge MAin4, 0:0:0); - endspecify - -endmodule - -module MAin_3_ ( output PADDI, input MAin3 ); - - xo2iobuf0069 MAin_pad_3( .Z(PADDI), .PAD(MAin3)); - - specify - (MAin3 => PADDI) = (0:0:0,0:0:0); - $width (posedge MAin3, 0:0:0); - $width (negedge MAin3, 0:0:0); - endspecify - -endmodule - -module MAin_2_ ( output PADDI, input MAin2 ); - - xo2iobuf0069 MAin_pad_2( .Z(PADDI), .PAD(MAin2)); - - specify - (MAin2 => PADDI) = (0:0:0,0:0:0); - $width (posedge MAin2, 0:0:0); - $width (negedge MAin2, 0:0:0); - endspecify - -endmodule - -module MAin_1_ ( output PADDI, input MAin1 ); - - xo2iobuf0069 MAin_pad_1( .Z(PADDI), .PAD(MAin1)); - - specify - (MAin1 => PADDI) = (0:0:0,0:0:0); - $width (posedge MAin1, 0:0:0); - $width (negedge MAin1, 0:0:0); - endspecify - -endmodule - -module MAin_0_ ( output PADDI, input MAin0 ); - - xo2iobuf0069 MAin_pad_0( .Z(PADDI), .PAD(MAin0)); - - specify - (MAin0 => PADDI) = (0:0:0,0:0:0); - $width (posedge MAin0, 0:0:0); - $width (negedge MAin0, 0:0:0); - endspecify - -endmodule - -module CROW_1_ ( output PADDI, input CROW1 ); - - xo2iobuf0069 CROW_pad_1( .Z(PADDI), .PAD(CROW1)); - - specify - (CROW1 => PADDI) = (0:0:0,0:0:0); - $width (posedge CROW1, 0:0:0); - $width (negedge CROW1, 0:0:0); - endspecify - -endmodule - -module CROW_0_ ( output PADDI, input CROW0 ); - - xo2iobuf0069 CROW_pad_0( .Z(PADDI), .PAD(CROW0)); - - specify - (CROW0 => PADDI) = (0:0:0,0:0:0); - $width (posedge CROW0, 0:0:0); - $width (negedge CROW0, 0:0:0); - endspecify - -endmodule - -module Din_7_ ( output PADDI, input Din7 ); - - xo2iobuf0069 Din_pad_7( .Z(PADDI), .PAD(Din7)); - - specify - (Din7 => PADDI) = (0:0:0,0:0:0); - $width (posedge Din7, 0:0:0); - $width (negedge Din7, 0:0:0); - endspecify - -endmodule - -module Din_6_ ( output PADDI, input Din6 ); - - xo2iobuf0069 Din_pad_6( .Z(PADDI), .PAD(Din6)); - - specify - (Din6 => PADDI) = (0:0:0,0:0:0); - $width (posedge Din6, 0:0:0); - $width (negedge Din6, 0:0:0); - endspecify - -endmodule - -module Din_5_ ( output PADDI, input Din5 ); - - xo2iobuf0069 Din_pad_5( .Z(PADDI), .PAD(Din5)); - - specify - (Din5 => PADDI) = (0:0:0,0:0:0); - $width (posedge Din5, 0:0:0); - $width (negedge Din5, 0:0:0); - endspecify - -endmodule - -module Din_4_ ( output PADDI, input Din4 ); - - xo2iobuf0069 Din_pad_4( .Z(PADDI), .PAD(Din4)); - - specify - (Din4 => PADDI) = (0:0:0,0:0:0); - $width (posedge Din4, 0:0:0); - $width (negedge Din4, 0:0:0); - endspecify - -endmodule - -module Din_3_ ( output PADDI, input Din3 ); - - xo2iobuf0069 Din_pad_3( .Z(PADDI), .PAD(Din3)); - - specify - (Din3 => PADDI) = (0:0:0,0:0:0); - $width (posedge Din3, 0:0:0); - $width (negedge Din3, 0:0:0); - endspecify - -endmodule - -module Din_2_ ( output PADDI, input Din2 ); - - xo2iobuf0069 Din_pad_2( .Z(PADDI), .PAD(Din2)); - - specify - (Din2 => PADDI) = (0:0:0,0:0:0); - $width (posedge Din2, 0:0:0); - $width (negedge Din2, 0:0:0); - endspecify - -endmodule - -module Din_1_ ( output PADDI, input Din1 ); - - xo2iobuf0069 Din_pad_1( .Z(PADDI), .PAD(Din1)); - - specify - (Din1 => PADDI) = (0:0:0,0:0:0); - $width (posedge Din1, 0:0:0); - $width (negedge Din1, 0:0:0); - endspecify - -endmodule - -module Din_0_ ( output PADDI, input Din0 ); - - xo2iobuf0069 Din_pad_0( .Z(PADDI), .PAD(Din0)); - - specify - (Din0 => PADDI) = (0:0:0,0:0:0); - $width (posedge Din0, 0:0:0); - $width (negedge Din0, 0:0:0); - endspecify - -endmodule - -module nCCAS ( output PADDI, input nCCAS ); - - xo2iobuf0069 nCCAS_pad( .Z(PADDI), .PAD(nCCAS)); - - specify - (nCCAS => PADDI) = (0:0:0,0:0:0); - $width (posedge nCCAS, 0:0:0); - $width (negedge nCCAS, 0:0:0); - endspecify - -endmodule - -module nCRAS ( output PADDI, input nCRAS ); - - xo2iobuf0069 nCRAS_pad( .Z(PADDI), .PAD(nCRAS)); - - specify - (nCRAS => PADDI) = (0:0:0,0:0:0); - $width (posedge nCRAS, 0:0:0); - $width (negedge nCRAS, 0:0:0); - endspecify - -endmodule - -module nFWE ( output PADDI, input nFWE ); - - xo2iobuf0069 nFWE_pad( .Z(PADDI), .PAD(nFWE)); - - specify - (nFWE => PADDI) = (0:0:0,0:0:0); - $width (posedge nFWE, 0:0:0); - $width (negedge nFWE, 0:0:0); - endspecify - -endmodule - -module RCLK ( output PADDI, input RCLK ); - - xo2iobuf0069 RCLK_pad( .Z(PADDI), .PAD(RCLK)); - - specify - (RCLK => PADDI) = (0:0:0,0:0:0); - $width (posedge RCLK, 0:0:0); - $width (negedge RCLK, 0:0:0); - endspecify - -endmodule - -module UFMSDO ( output PADDI, input UFMSDO ); - - xo2iobuf0069 UFMSDO_pad( .Z(PADDI), .PAD(UFMSDO)); - - specify - (UFMSDO => PADDI) = (0:0:0,0:0:0); - $width (posedge UFMSDO, 0:0:0); - $width (negedge UFMSDO, 0:0:0); - endspecify - -endmodule diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_mrp.html b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_mrp.html deleted file mode 100644 index acc608c..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_mrp.html +++ /dev/null @@ -1,425 +0,0 @@ - -Project Summary - - -

-            Lattice Mapping Report File for Design Module 'RAM2GS'
-
-
-
-Design Information
-
-Command line:   map -a MachXO2 -p LCMXO2-1200HC -t TQFP100 -s 4 -oc Commercial
-     RAM2GS_LCMXO2_1200HC_impl1.ngd -o RAM2GS_LCMXO2_1200HC_impl1_map.ncd -pr
-     RAM2GS_LCMXO2_1200HC_impl1.prf -mp RAM2GS_LCMXO2_1200HC_impl1.mrp -lpf D:/O
-     neDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200
-     HC_impl1.lpf -lpf D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/RA
-     M2GS_LCMXO2_1200HC.lpf -c 0 -gui -msgset
-     D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/promote.xml 
-Target Vendor:  LATTICE
-Target Device:  LCMXO2-1200HCTQFP100
-Target Performance:   4
-Mapper:  xo2c00,  version:  Diamond (64-bit) 3.12.1.454
-Mapped on:  08/15/23  05:22:05
-
-
-Design Summary
-   Number of registers:    102 out of  1520 (7%)
-      PFU registers:          102 out of  1280 (8%)
-      PIO registers:            0 out of   240 (0%)
-   Number of SLICEs:        75 out of   640 (12%)
-      SLICEs as Logic/ROM:     75 out of   640 (12%)
-      SLICEs as RAM:            0 out of   480 (0%)
-      SLICEs as Carry:         10 out of   640 (2%)
-   Number of LUT4s:        143 out of  1280 (11%)
-      Number used as logic LUTs:        123
-      Number used as distributed RAM:     0
-      Number used as ripple logic:       20
-      Number used as shift registers:     0
-   Number of PIO sites used: 67 + 4(JTAG) out of 80 (89%)
-   Number of block RAMs:  0 out of 7 (0%)
-   Number of GSRs:        0 out of 1 (0%)
-   EFB used :        No
-   JTAG used :       No
-   Readback used :   No
-   Oscillator used : No
-   Startup used :    No
-   POR :             On
-   Bandgap :         On
-   Number of Power Controller:  0 out of 1 (0%)
-   Number of Dynamic Bank Controller (BCINRD):  0 out of 4 (0%)
-   Number of Dynamic Bank Controller (BCLVDSO):  0 out of 1 (0%)
-   Number of DCCA:  0 out of 8 (0%)
-   Number of DCMA:  0 out of 2 (0%)
-   Number of PLLs:  0 out of 1 (0%)
-   Number of DQSDLLs:  0 out of 2 (0%)
-   Number of CLKDIVC:  0 out of 4 (0%)
-   Number of ECLKSYNCA:  0 out of 4 (0%)
-   Number of ECLKBRIDGECS:  0 out of 2 (0%)
-   Notes:-
-      1. Total number of LUT4s = (Number of logic LUT4s) + 2*(Number of
-     distributed RAMs) + 2*(Number of ripple logic)
-      2. Number of logic LUT4s does not include count of distributed RAM and
-     ripple logic.
-   Number of clocks:  4
-     Net RCLK_c: 40 loads, 40 rising, 0 falling (Driver: PIO RCLK )
-
-     Net PHI2_c: 13 loads, 5 rising, 8 falling (Driver: PIO PHI2 )
-     Net nCCAS_c: 4 loads, 0 rising, 4 falling (Driver: PIO nCCAS )
-     Net nCRAS_c: 7 loads, 0 rising, 7 falling (Driver: PIO nCRAS )
-   Number of Clock Enables:  14
-     Net RCLK_c_enable_6: 4 loads, 4 LSLICEs
-     Net RCLK_c_enable_5: 2 loads, 2 LSLICEs
-     Net PHI2_N_120_enable_1: 1 loads, 1 LSLICEs
-     Net PHI2_N_120_enable_2: 1 loads, 1 LSLICEs
-     Net PHI2_N_120_enable_6: 1 loads, 1 LSLICEs
-     Net RCLK_c_enable_27: 8 loads, 8 LSLICEs
-     Net RCLK_c_enable_10: 3 loads, 3 LSLICEs
-     Net PHI2_N_120_enable_7: 1 loads, 1 LSLICEs
-     Net RCLK_c_enable_16: 1 loads, 1 LSLICEs
-     Net RCLK_c_enable_28: 1 loads, 1 LSLICEs
-     Net RCLK_c_enable_15: 1 loads, 1 LSLICEs
-     Net PHI2_N_120_enable_3: 1 loads, 1 LSLICEs
-     Net Ready_N_292: 1 loads, 1 LSLICEs
-     Net PHI2_N_120_enable_8: 2 loads, 2 LSLICEs
-   Number of LSRs:  7
-     Net RASr2: 1 loads, 1 LSLICEs
-     Net nRowColSel_N_35: 1 loads, 1 LSLICEs
-     Net Ready: 7 loads, 7 LSLICEs
-     Net nRWE_N_177: 1 loads, 1 LSLICEs
-     Net C1Submitted_N_237: 2 loads, 2 LSLICEs
-     Net n2366: 2 loads, 2 LSLICEs
-     Net nRowColSel_N_34: 1 loads, 1 LSLICEs
-   Number of nets driven by tri-state buffers:  0
-   Top 10 highest fanout non-clock nets:
-     Net Ready: 18 loads
-     Net InitReady: 15 loads
-     Net RASr2: 15 loads
-     Net nRowColSel_N_35: 13 loads
-     Net nRowColSel: 12 loads
-     Net Din_c_4: 10 loads
-     Net MAin_c_1: 10 loads
-     Net Din_c_5: 9 loads
-     Net MAin_c_0: 9 loads
-     Net Din_c_0: 8 loads
-
-
-
-
-   Number of warnings:  0
-   Number of errors:    0
-     
-
-
-
-
-Design Errors/Warnings
-
-   No errors or warnings present.
-
-
-
-IO (PIO) Attributes
-
-+---------------------+-----------+-----------+------------+
-| IO Name             | Direction | Levelmode | IO         |
-
-|                     |           |  IO_TYPE  | Register   |
-+---------------------+-----------+-----------+------------+
-| RD[7]               | BIDIR     | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| RD[6]               | BIDIR     | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| RD[5]               | BIDIR     | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| RD[4]               | BIDIR     | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| RD[3]               | BIDIR     | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| RD[2]               | BIDIR     | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| RD[1]               | BIDIR     | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| RD[0]               | BIDIR     | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| Dout[7]             | OUTPUT    | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| Dout[6]             | OUTPUT    | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| Dout[5]             | OUTPUT    | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| Dout[4]             | OUTPUT    | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| Dout[3]             | OUTPUT    | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| Dout[2]             | OUTPUT    | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| Dout[1]             | OUTPUT    | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| Dout[0]             | OUTPUT    | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| LED                 | OUTPUT    | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| RBA[1]              | OUTPUT    | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| RBA[0]              | OUTPUT    | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| RA[11]              | OUTPUT    | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| RA[10]              | OUTPUT    | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| RA[9]               | OUTPUT    | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| RA[8]               | OUTPUT    | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| RA[7]               | OUTPUT    | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| RA[6]               | OUTPUT    | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| RA[5]               | OUTPUT    | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| RA[4]               | OUTPUT    | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-
-| RA[3]               | OUTPUT    | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| RA[2]               | OUTPUT    | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| RA[1]               | OUTPUT    | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| RA[0]               | OUTPUT    | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| nRCS                | OUTPUT    | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| RCKE                | OUTPUT    | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| nRWE                | OUTPUT    | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| nRRAS               | OUTPUT    | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| nRCAS               | OUTPUT    | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| RDQMH               | OUTPUT    | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| RDQML               | OUTPUT    | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| nUFMCS              | OUTPUT    | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| UFMCLK              | OUTPUT    | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| UFMSDI              | OUTPUT    | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| PHI2                | INPUT     | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| MAin[9]             | INPUT     | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| MAin[8]             | INPUT     | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| MAin[7]             | INPUT     | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| MAin[6]             | INPUT     | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| MAin[5]             | INPUT     | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| MAin[4]             | INPUT     | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| MAin[3]             | INPUT     | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| MAin[2]             | INPUT     | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| MAin[1]             | INPUT     | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| MAin[0]             | INPUT     | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| CROW[1]             | INPUT     | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| CROW[0]             | INPUT     | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| Din[7]              | INPUT     | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-
-| Din[6]              | INPUT     | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| Din[5]              | INPUT     | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| Din[4]              | INPUT     | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| Din[3]              | INPUT     | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| Din[2]              | INPUT     | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| Din[1]              | INPUT     | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| Din[0]              | INPUT     | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| nCCAS               | INPUT     | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| nCRAS               | INPUT     | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| nFWE                | INPUT     | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| RCLK                | INPUT     | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-| UFMSDO              | INPUT     | LVCMOS25  |            |
-+---------------------+-----------+-----------+------------+
-
-
-
-Removed logic
-
-Block i2 undriven or does not drive anything - clipped.
-Block GSR_INST undriven or does not drive anything - clipped.
-Signal PHI2_N_120 was merged into signal PHI2_c
-Signal n1407 was merged into signal nRowColSel_N_34
-Signal n2380 was merged into signal Ready
-Signal n1408 was merged into signal nRowColSel_N_35
-Signal nRWE_N_176 was merged into signal nRWE_N_177
-Signal GND_net undriven or does not drive anything - clipped.
-Signal VCC_net undriven or does not drive anything - clipped.
-Signal FS_610_add_4_19/S1 undriven or does not drive anything - clipped.
-Signal FS_610_add_4_19/CO undriven or does not drive anything - clipped.
-Signal FS_610_add_4_1/S0 undriven or does not drive anything - clipped.
-Signal FS_610_add_4_1/CI undriven or does not drive anything - clipped.
-Block i2046 was optimized away.
-Block i1118_1_lut was optimized away.
-Block i637_1_lut_rep_31 was optimized away.
-Block i1119_1_lut was optimized away.
-Block nRWE_I_50_1_lut was optimized away.
-Block i1 was optimized away.
-
-     
-
-
-
-Run Time and Memory Usage
--------------------------
-
-   Total CPU Time: 0 secs  
-   Total REAL Time: 0 secs  
-   Peak Memory Usage: 41 MB
-
-        
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved.
-     Copyright (c) 1995 AT&T Corp.   All rights reserved.
-     Copyright (c) 1995-2001 Lucent Technologies Inc.  All rights reserved.
-     Copyright (c) 2001 Agere Systems   All rights reserved.
-     Copyright (c) 2002-2020 Lattice Semiconductor Corporation,  All rights
-     reserved.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_pad.html b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_pad.html deleted file mode 100644 index 232f92e..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_pad.html +++ /dev/null @@ -1,374 +0,0 @@ - -PAD Specification File - - -
PAD Specification File
-***************************
-
-PART TYPE:        LCMXO2-1200HC
-Performance Grade:      4
-PACKAGE:          TQFP100
-Package Status:                     Final          Version 1.44
-
-Tue Aug 15 05:22:12 2023
-
-Pinout by Port Name:
-+-----------+----------+---------------+-------+-----------+-----------+----------------------------------------------------------+
-| Port Name | Pin/Bank | Buffer Type   | Site  | PG Enable | BC Enable | Properties                                               |
-+-----------+----------+---------------+-------+-----------+-----------+----------------------------------------------------------+
-| CROW[0]   | 10/3     | LVCMOS25_IN   | PL4B  |           |           | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL                      |
-| CROW[1]   | 16/3     | LVCMOS25_IN   | PL8A  |           |           | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL                      |
-| Din[0]    | 3/3      | LVCMOS25_IN   | PL3A  |           |           | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL                      |
-| Din[1]    | 96/0     | LVCMOS25_IN   | PT10B |           |           | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL                      |
-| Din[2]    | 88/0     | LVCMOS25_IN   | PT12A |           |           | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL                      |
-| Din[3]    | 97/0     | LVCMOS25_IN   | PT10A |           |           | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL                      |
-| Din[4]    | 99/0     | LVCMOS25_IN   | PT9A  |           |           | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL                      |
-| Din[5]    | 98/0     | LVCMOS25_IN   | PT9B  |           |           | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL                      |
-| Din[6]    | 2/3      | LVCMOS25_IN   | PL2D  |           |           | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL                      |
-| Din[7]    | 1/3      | LVCMOS25_IN   | PL2C  |           |           | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL                      |
-| Dout[0]   | 76/0     | LVCMOS25_OUT  | PT17D |           |           | DRIVE:8mA PULL:DOWN SLEW:SLOW                            |
-| Dout[1]   | 86/0     | LVCMOS25_OUT  | PT12C |           |           | DRIVE:8mA PULL:DOWN SLEW:SLOW                            |
-| Dout[2]   | 87/0     | LVCMOS25_OUT  | PT12B |           |           | DRIVE:8mA PULL:DOWN SLEW:SLOW                            |
-| Dout[3]   | 85/0     | LVCMOS25_OUT  | PT12D |           |           | DRIVE:8mA PULL:DOWN SLEW:SLOW                            |
-| Dout[4]   | 83/0     | LVCMOS25_OUT  | PT15B |           |           | DRIVE:8mA PULL:DOWN SLEW:SLOW                            |
-| Dout[5]   | 84/0     | LVCMOS25_OUT  | PT15A |           |           | DRIVE:8mA PULL:DOWN SLEW:SLOW                            |
-| Dout[6]   | 78/0     | LVCMOS25_OUT  | PT16C |           |           | DRIVE:8mA PULL:DOWN SLEW:SLOW                            |
-| Dout[7]   | 82/0     | LVCMOS25_OUT  | PT15C |           |           | DRIVE:8mA PULL:DOWN SLEW:SLOW                            |
-| LED       | 34/2     | LVCMOS25_OUT  | PB9A  |           |           | DRIVE:8mA PULL:DOWN SLEW:SLOW                            |
-| MAin[0]   | 14/3     | LVCMOS25_IN   | PL5C  |           |           | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL                      |
-| MAin[1]   | 12/3     | LVCMOS25_IN   | PL5A  |           |           | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL                      |
-| MAin[2]   | 13/3     | LVCMOS25_IN   | PL5B  |           |           | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL                      |
-| MAin[3]   | 21/3     | LVCMOS25_IN   | PL9B  |           |           | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL                      |
-| MAin[4]   | 20/3     | LVCMOS25_IN   | PL9A  |           |           | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL                      |
-| MAin[5]   | 19/3     | LVCMOS25_IN   | PL8D  |           |           | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL                      |
-| MAin[6]   | 24/3     | LVCMOS25_IN   | PL10C |           |           | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL                      |
-| MAin[7]   | 18/3     | LVCMOS25_IN   | PL8C  |           |           | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL                      |
-| MAin[8]   | 25/3     | LVCMOS25_IN   | PL10D |           |           | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL                      |
-| MAin[9]   | 32/2     | LVCMOS25_IN   | PB6D  |           |           | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL                      |
-| PHI2      | 8/3      | LVCMOS25_IN   | PL3D  |           |           | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL                      |
-| RA[0]     | 66/1     | LVCMOS25_OUT  | PR4D  |           |           | DRIVE:8mA PULL:DOWN SLEW:SLOW                            |
-| RA[10]    | 64/1     | LVCMOS25_OUT  | PR5B  |           |           | DRIVE:8mA PULL:DOWN SLEW:SLOW                            |
-| RA[11]    | 59/1     | LVCMOS25_OUT  | PR8D  |           |           | DRIVE:8mA PULL:DOWN SLEW:SLOW                            |
-| RA[1]     | 67/1     | LVCMOS25_OUT  | PR4C  |           |           | DRIVE:8mA PULL:DOWN SLEW:SLOW                            |
-| RA[2]     | 69/1     | LVCMOS25_OUT  | PR4A  |           |           | DRIVE:8mA PULL:DOWN SLEW:SLOW                            |
-| RA[3]     | 71/1     | LVCMOS25_OUT  | PR3A  |           |           | DRIVE:8mA PULL:DOWN SLEW:SLOW                            |
-| RA[4]     | 74/1     | LVCMOS25_OUT  | PR2B  |           |           | DRIVE:8mA PULL:DOWN SLEW:SLOW                            |
-| RA[5]     | 70/1     | LVCMOS25_OUT  | PR3B  |           |           | DRIVE:8mA PULL:DOWN SLEW:SLOW                            |
-| RA[6]     | 68/1     | LVCMOS25_OUT  | PR4B  |           |           | DRIVE:8mA PULL:DOWN SLEW:SLOW                            |
-| RA[7]     | 75/1     | LVCMOS25_OUT  | PR2A  |           |           | DRIVE:8mA PULL:DOWN SLEW:SLOW                            |
-| RA[8]     | 65/1     | LVCMOS25_OUT  | PR5A  |           |           | DRIVE:8mA PULL:DOWN SLEW:SLOW                            |
-| RA[9]     | 63/1     | LVCMOS25_OUT  | PR5C  |           |           | DRIVE:8mA PULL:DOWN SLEW:SLOW                            |
-| RBA[0]    | 58/1     | LVCMOS25_OUT  | PR9A  |           |           | DRIVE:8mA PULL:DOWN SLEW:SLOW                            |
-| RBA[1]    | 60/1     | LVCMOS25_OUT  | PR8C  |           |           | DRIVE:8mA PULL:DOWN SLEW:SLOW                            |
-| RCKE      | 53/1     | LVCMOS25_OUT  | PR9D  |           |           | DRIVE:8mA PULL:DOWN SLEW:SLOW                            |
-| RCLK      | 62/1     | LVCMOS25_IN   | PR5D  |           |           | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL                      |
-| RDQMH     | 51/1     | LVCMOS25_OUT  | PR10D |           |           | DRIVE:8mA PULL:DOWN SLEW:SLOW                            |
-| RDQML     | 48/2     | LVCMOS25_OUT  | PB20C |           |           | DRIVE:8mA PULL:DOWN SLEW:SLOW                            |
-| RD[0]     | 36/2     | LVCMOS25_BIDI | PB11C |           |           | DRIVE:8mA PULL:DOWN CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW  |
-| RD[1]     | 37/2     | LVCMOS25_BIDI | PB11D |           |           | DRIVE:8mA PULL:DOWN CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW  |
-| RD[2]     | 38/2     | LVCMOS25_BIDI | PB11A |           |           | DRIVE:8mA PULL:DOWN CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW  |
-| RD[3]     | 39/2     | LVCMOS25_BIDI | PB11B |           |           | DRIVE:8mA PULL:DOWN CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW  |
-| RD[4]     | 40/2     | LVCMOS25_BIDI | PB15A |           |           | DRIVE:8mA PULL:DOWN CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW  |
-| RD[5]     | 41/2     | LVCMOS25_BIDI | PB15B |           |           | DRIVE:8mA PULL:DOWN CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW  |
-| RD[6]     | 42/2     | LVCMOS25_BIDI | PB18A |           |           | DRIVE:8mA PULL:DOWN CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW  |
-| RD[7]     | 43/2     | LVCMOS25_BIDI | PB18B |           |           | DRIVE:8mA PULL:DOWN CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW  |
-| UFMCLK    | 29/2     | LVCMOS25_OUT  | PB6A  |           |           | DRIVE:8mA PULL:DOWN SLEW:SLOW                            |
-| UFMSDI    | 30/2     | LVCMOS25_OUT  | PB6B  |           |           | DRIVE:8mA PULL:DOWN SLEW:SLOW                            |
-| UFMSDO    | 27/2     | LVCMOS25_IN   | PB4C  |           |           | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL                      |
-| nCCAS     | 9/3      | LVCMOS25_IN   | PL4A  |           |           | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL                      |
-| nCRAS     | 17/3     | LVCMOS25_IN   | PL8B  |           |           | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL                      |
-| nFWE      | 28/2     | LVCMOS25_IN   | PB4D  |           |           | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL                      |
-| nRCAS     | 52/1     | LVCMOS25_OUT  | PR10C |           |           | DRIVE:8mA PULL:DOWN SLEW:SLOW                            |
-| nRCS      | 57/1     | LVCMOS25_OUT  | PR9B  |           |           | DRIVE:8mA PULL:DOWN SLEW:SLOW                            |
-| nRRAS     | 54/1     | LVCMOS25_OUT  | PR9C  |           |           | DRIVE:8mA PULL:DOWN SLEW:SLOW                            |
-| nRWE      | 49/2     | LVCMOS25_OUT  | PB20D |           |           | DRIVE:8mA PULL:DOWN SLEW:SLOW                            |
-| nUFMCS    | 47/2     | LVCMOS25_OUT  | PB18D |           |           | DRIVE:8mA PULL:DOWN SLEW:SLOW                            |
-+-----------+----------+---------------+-------+-----------+-----------+----------------------------------------------------------+
-
-Vccio by Bank:
-+------+-------+
-| Bank | Vccio |
-+------+-------+
-| 0    | 2.5V  |
-| 1    | 2.5V  |
-| 2    | 2.5V  |
-| 3    | 2.5V  |
-+------+-------+
-
-
-Vref by Bank:
-+------+-----+-----------------+---------+
-| Vref | Pin | Bank # / Vref # | Load(s) |
-+------+-----+-----------------+---------+
-+------+-----+-----------------+---------+
-
-Pinout by Pin Number:
-+----------+-----------------------+------------+---------------+-------+---------------+-----------+-----------+
-| Pin/Bank | Pin Info              | Preference | Buffer Type   | Site  | Dual Function | PG Enable | BC Enable |
-+----------+-----------------------+------------+---------------+-------+---------------+-----------+-----------+
-| 1/3      | Din[7]                | LOCATED    | LVCMOS25_IN   | PL2C  | L_GPLLT_IN    |           |           |
-| 2/3      | Din[6]                | LOCATED    | LVCMOS25_IN   | PL2D  | L_GPLLC_IN    |           |           |
-| 3/3      | Din[0]                | LOCATED    | LVCMOS25_IN   | PL3A  | PCLKT3_2      |           |           |
-| 4/3      |     unused, PULL:DOWN |            |               | PL3B  | PCLKC3_2      |           |           |
-| 7/3      |     unused, PULL:DOWN |            |               | PL3C  |               |           |           |
-| 8/3      | PHI2                  | LOCATED    | LVCMOS25_IN   | PL3D  |               |           |           |
-| 9/3      | nCCAS                 | LOCATED    | LVCMOS25_IN   | PL4A  |               |           |           |
-| 10/3     | CROW[0]               | LOCATED    | LVCMOS25_IN   | PL4B  |               |           |           |
-| 12/3     | MAin[1]               | LOCATED    | LVCMOS25_IN   | PL5A  | PCLKT3_1      |           |           |
-| 13/3     | MAin[2]               | LOCATED    | LVCMOS25_IN   | PL5B  | PCLKC3_1      |           |           |
-| 14/3     | MAin[0]               | LOCATED    | LVCMOS25_IN   | PL5C  |               |           |           |
-| 15/3     |     unused, PULL:DOWN |            |               | PL5D  |               |           |           |
-| 16/3     | CROW[1]               | LOCATED    | LVCMOS25_IN   | PL8A  |               |           |           |
-| 17/3     | nCRAS                 | LOCATED    | LVCMOS25_IN   | PL8B  |               |           |           |
-| 18/3     | MAin[7]               | LOCATED    | LVCMOS25_IN   | PL8C  |               |           |           |
-| 19/3     | MAin[5]               | LOCATED    | LVCMOS25_IN   | PL8D  |               |           |           |
-| 20/3     | MAin[4]               | LOCATED    | LVCMOS25_IN   | PL9A  | PCLKT3_0      |           |           |
-| 21/3     | MAin[3]               | LOCATED    | LVCMOS25_IN   | PL9B  | PCLKC3_0      |           |           |
-| 24/3     | MAin[6]               | LOCATED    | LVCMOS25_IN   | PL10C |               |           |           |
-| 25/3     | MAin[8]               | LOCATED    | LVCMOS25_IN   | PL10D |               |           |           |
-| 27/2     | UFMSDO                | LOCATED    | LVCMOS25_IN   | PB4C  | CSSPIN        |           |           |
-| 28/2     | nFWE                  | LOCATED    | LVCMOS25_IN   | PB4D  |               |           |           |
-| 29/2     | UFMCLK                | LOCATED    | LVCMOS25_OUT  | PB6A  |               |           |           |
-| 30/2     | UFMSDI                | LOCATED    | LVCMOS25_OUT  | PB6B  |               |           |           |
-| 31/2     |     unused, PULL:DOWN |            |               | PB6C  | MCLK/CCLK     |           |           |
-| 32/2     | MAin[9]               | LOCATED    | LVCMOS25_IN   | PB6D  | SO/SPISO      |           |           |
-| 34/2     | LED                   | LOCATED    | LVCMOS25_OUT  | PB9A  | PCLKT2_0      |           |           |
-| 35/2     |     unused, PULL:DOWN |            |               | PB9B  | PCLKC2_0      |           |           |
-| 36/2     | RD[0]                 | LOCATED    | LVCMOS25_BIDI | PB11C |               |           |           |
-| 37/2     | RD[1]                 | LOCATED    | LVCMOS25_BIDI | PB11D |               |           |           |
-| 38/2     | RD[2]                 | LOCATED    | LVCMOS25_BIDI | PB11A | PCLKT2_1      |           |           |
-| 39/2     | RD[3]                 | LOCATED    | LVCMOS25_BIDI | PB11B | PCLKC2_1      |           |           |
-| 40/2     | RD[4]                 | LOCATED    | LVCMOS25_BIDI | PB15A |               |           |           |
-| 41/2     | RD[5]                 | LOCATED    | LVCMOS25_BIDI | PB15B |               |           |           |
-| 42/2     | RD[6]                 | LOCATED    | LVCMOS25_BIDI | PB18A |               |           |           |
-| 43/2     | RD[7]                 | LOCATED    | LVCMOS25_BIDI | PB18B |               |           |           |
-| 45/2     |     unused, PULL:DOWN |            |               | PB18C |               |           |           |
-| 47/2     | nUFMCS                |            | LVCMOS25_OUT  | PB18D |               |           |           |
-| 48/2     | RDQML                 | LOCATED    | LVCMOS25_OUT  | PB20C | SN            |           |           |
-| 49/2     | nRWE                  | LOCATED    | LVCMOS25_OUT  | PB20D | SI/SISPI      |           |           |
-| 51/1     | RDQMH                 | LOCATED    | LVCMOS25_OUT  | PR10D | DQ1           |           |           |
-| 52/1     | nRCAS                 | LOCATED    | LVCMOS25_OUT  | PR10C | DQ1           |           |           |
-| 53/1     | RCKE                  | LOCATED    | LVCMOS25_OUT  | PR9D  | DQ1           |           |           |
-| 54/1     | nRRAS                 | LOCATED    | LVCMOS25_OUT  | PR9C  | DQ1           |           |           |
-| 57/1     | nRCS                  | LOCATED    | LVCMOS25_OUT  | PR9B  | DQ1           |           |           |
-| 58/1     | RBA[0]                | LOCATED    | LVCMOS25_OUT  | PR9A  | DQ1           |           |           |
-| 59/1     | RA[11]                | LOCATED    | LVCMOS25_OUT  | PR8D  | DQ1           |           |           |
-| 60/1     | RBA[1]                | LOCATED    | LVCMOS25_OUT  | PR8C  | DQ1           |           |           |
-| 61/1     |     unused, PULL:DOWN |            |               | PR8A  | DQS1          |           |           |
-| 62/1     | RCLK                  | LOCATED    | LVCMOS25_IN   | PR5D  | PCLKC1_0/DQ0  |           |           |
-| 63/1     | RA[9]                 | LOCATED    | LVCMOS25_OUT  | PR5C  | PCLKT1_0/DQ0  |           |           |
-| 64/1     | RA[10]                | LOCATED    | LVCMOS25_OUT  | PR5B  | DQS0N         |           |           |
-| 65/1     | RA[8]                 | LOCATED    | LVCMOS25_OUT  | PR5A  | DQS0          |           |           |
-| 66/1     | RA[0]                 | LOCATED    | LVCMOS25_OUT  | PR4D  | DQ0           |           |           |
-| 67/1     | RA[1]                 | LOCATED    | LVCMOS25_OUT  | PR4C  | DQ0           |           |           |
-| 68/1     | RA[6]                 | LOCATED    | LVCMOS25_OUT  | PR4B  | DQ0           |           |           |
-| 69/1     | RA[2]                 | LOCATED    | LVCMOS25_OUT  | PR4A  | DQ0           |           |           |
-| 70/1     | RA[5]                 | LOCATED    | LVCMOS25_OUT  | PR3B  | DQ0           |           |           |
-| 71/1     | RA[3]                 | LOCATED    | LVCMOS25_OUT  | PR3A  | DQ0           |           |           |
-| 74/1     | RA[4]                 | LOCATED    | LVCMOS25_OUT  | PR2B  | DQ0           |           |           |
-| 75/1     | RA[7]                 | LOCATED    | LVCMOS25_OUT  | PR2A  | DQ0           |           |           |
-| 76/0     | Dout[0]               | LOCATED    | LVCMOS25_OUT  | PT17D | DONE          |           |           |
-| 77/0     |     unused, PULL:DOWN |            |               | PT17C | INITN         |           |           |
-| 78/0     | Dout[6]               | LOCATED    | LVCMOS25_OUT  | PT16C |               |           |           |
-| 81/0     |     unused, PULL:DOWN |            |               | PT15D | PROGRAMN      |           |           |
-| 82/0     | Dout[7]               | LOCATED    | LVCMOS25_OUT  | PT15C | JTAGENB       |           |           |
-| 83/0     | Dout[4]               | LOCATED    | LVCMOS25_OUT  | PT15B |               |           |           |
-| 84/0     | Dout[5]               | LOCATED    | LVCMOS25_OUT  | PT15A |               |           |           |
-| 85/0     | Dout[3]               | LOCATED    | LVCMOS25_OUT  | PT12D | SDA/PCLKC0_0  |           |           |
-| 86/0     | Dout[1]               | LOCATED    | LVCMOS25_OUT  | PT12C | SCL/PCLKT0_0  |           |           |
-| 87/0     | Dout[2]               | LOCATED    | LVCMOS25_OUT  | PT12B | PCLKC0_1      |           |           |
-| 88/0     | Din[2]                | LOCATED    | LVCMOS25_IN   | PT12A | PCLKT0_1      |           |           |
-| 90/0     | Reserved: sysCONFIG   |            |               | PT11D | TMS           |           |           |
-| 91/0     | Reserved: sysCONFIG   |            |               | PT11C | TCK           |           |           |
-| 94/0     | Reserved: sysCONFIG   |            |               | PT10D | TDI           |           |           |
-| 95/0     | Reserved: sysCONFIG   |            |               | PT10C | TDO           |           |           |
-| 96/0     | Din[1]                | LOCATED    | LVCMOS25_IN   | PT10B |               |           |           |
-| 97/0     | Din[3]                | LOCATED    | LVCMOS25_IN   | PT10A |               |           |           |
-| 98/0     | Din[5]                | LOCATED    | LVCMOS25_IN   | PT9B  |               |           |           |
-| 99/0     | Din[4]                | LOCATED    | LVCMOS25_IN   | PT9A  |               |           |           |
-| PB4A/2   |     unused, PULL:DOWN |            |               | PB4A  |               |           |           |
-| PB4B/2   |     unused, PULL:DOWN |            |               | PB4B  |               |           |           |
-| PB9C/2   |     unused, PULL:DOWN |            |               | PB9C  |               |           |           |
-| PB9D/2   |     unused, PULL:DOWN |            |               | PB9D  |               |           |           |
-| PB15C/2  |     unused, PULL:DOWN |            |               | PB15C |               |           |           |
-| PB15D/2  |     unused, PULL:DOWN |            |               | PB15D |               |           |           |
-| PB20A/2  |     unused, PULL:DOWN |            |               | PB20A |               |           |           |
-| PB20B/2  |     unused, PULL:DOWN |            |               | PB20B |               |           |           |
-| PL2A/3   |     unused, PULL:DOWN |            |               | PL2A  | L_GPLLT_FB    |           |           |
-| PL2B/3   |     unused, PULL:DOWN |            |               | PL2B  | L_GPLLC_FB    |           |           |
-| PL4C/3   |     unused, PULL:DOWN |            |               | PL4C  |               |           |           |
-| PL4D/3   |     unused, PULL:DOWN |            |               | PL4D  |               |           |           |
-| PL10A/3  |     unused, PULL:DOWN |            |               | PL10A |               |           |           |
-| PL10B/3  |     unused, PULL:DOWN |            |               | PL10B |               |           |           |
-| PR2C/1   |     unused, PULL:DOWN |            |               | PR2C  | DQ0           |           |           |
-| PR2D/1   |     unused, PULL:DOWN |            |               | PR2D  | DQ0           |           |           |
-| PR8B/1   |     unused, PULL:DOWN |            |               | PR8B  | DQS1N         |           |           |
-| PR10A/1  |     unused, PULL:DOWN |            |               | PR10A | DQ1           |           |           |
-| PR10B/1  |     unused, PULL:DOWN |            |               | PR10B | DQ1           |           |           |
-| PT9C/0   |     unused, PULL:DOWN |            |               | PT9C  |               |           |           |
-| PT9D/0   |     unused, PULL:DOWN |            |               | PT9D  |               |           |           |
-| PT11A/0  |     unused, PULL:DOWN |            |               | PT11A |               |           |           |
-| PT11B/0  |     unused, PULL:DOWN |            |               | PT11B |               |           |           |
-| PT16A/0  |     unused, PULL:DOWN |            |               | PT16A |               |           |           |
-| PT16B/0  |     unused, PULL:DOWN |            |               | PT16B |               |           |           |
-| PT16D/0  |     unused, PULL:DOWN |            |               | PT16D |               |           |           |
-| PT17A/0  |     unused, PULL:DOWN |            |               | PT17A |               |           |           |
-| PT17B/0  |     unused, PULL:DOWN |            |               | PT17B |               |           |           |
-+----------+-----------------------+------------+---------------+-------+---------------+-----------+-----------+
-
-sysCONFIG Pins:
-+----------+--------------------+--------------------+----------+-------------+-------------------+
-| Pad Name | sysCONFIG Pin Name | sysCONFIG Settings | Pin/Bank | Buffer Type | Config Pull Mode  |
-+----------+--------------------+--------------------+----------+-------------+-------------------+
-| PT11D    | TMS                | JTAG_PORT=ENABLE   | 90/0     |             | PULLUP            |
-| PT11C    | TCK/TEST_CLK       | JTAG_PORT=ENABLE   | 91/0     |             | NO pull up/down   |
-| PT10D    | TDI/MD7            | JTAG_PORT=ENABLE   | 94/0     |             | PULLUP            |
-| PT10C    | TDO                | JTAG_PORT=ENABLE   | 95/0     |             | PULLUP            |
-+----------+--------------------+--------------------+----------+-------------+-------------------+
-
-Dedicated sysCONFIG Pins:
-
-
-List of All Pins' Locate Preferences Based on Final Placement After PAR 
-to Help Users Lock Down ALL the Pins Easily (by Simply Copy & Paste): 
-
-LOCATE  COMP  "CROW[0]"  SITE  "10";
-LOCATE  COMP  "CROW[1]"  SITE  "16";
-LOCATE  COMP  "Din[0]"  SITE  "3";
-LOCATE  COMP  "Din[1]"  SITE  "96";
-LOCATE  COMP  "Din[2]"  SITE  "88";
-LOCATE  COMP  "Din[3]"  SITE  "97";
-LOCATE  COMP  "Din[4]"  SITE  "99";
-LOCATE  COMP  "Din[5]"  SITE  "98";
-LOCATE  COMP  "Din[6]"  SITE  "2";
-LOCATE  COMP  "Din[7]"  SITE  "1";
-LOCATE  COMP  "Dout[0]"  SITE  "76";
-LOCATE  COMP  "Dout[1]"  SITE  "86";
-LOCATE  COMP  "Dout[2]"  SITE  "87";
-LOCATE  COMP  "Dout[3]"  SITE  "85";
-LOCATE  COMP  "Dout[4]"  SITE  "83";
-LOCATE  COMP  "Dout[5]"  SITE  "84";
-LOCATE  COMP  "Dout[6]"  SITE  "78";
-LOCATE  COMP  "Dout[7]"  SITE  "82";
-LOCATE  COMP  "LED"  SITE  "34";
-LOCATE  COMP  "MAin[0]"  SITE  "14";
-LOCATE  COMP  "MAin[1]"  SITE  "12";
-LOCATE  COMP  "MAin[2]"  SITE  "13";
-LOCATE  COMP  "MAin[3]"  SITE  "21";
-LOCATE  COMP  "MAin[4]"  SITE  "20";
-LOCATE  COMP  "MAin[5]"  SITE  "19";
-LOCATE  COMP  "MAin[6]"  SITE  "24";
-LOCATE  COMP  "MAin[7]"  SITE  "18";
-LOCATE  COMP  "MAin[8]"  SITE  "25";
-LOCATE  COMP  "MAin[9]"  SITE  "32";
-LOCATE  COMP  "PHI2"  SITE  "8";
-LOCATE  COMP  "RA[0]"  SITE  "66";
-LOCATE  COMP  "RA[10]"  SITE  "64";
-LOCATE  COMP  "RA[11]"  SITE  "59";
-LOCATE  COMP  "RA[1]"  SITE  "67";
-LOCATE  COMP  "RA[2]"  SITE  "69";
-LOCATE  COMP  "RA[3]"  SITE  "71";
-LOCATE  COMP  "RA[4]"  SITE  "74";
-LOCATE  COMP  "RA[5]"  SITE  "70";
-LOCATE  COMP  "RA[6]"  SITE  "68";
-LOCATE  COMP  "RA[7]"  SITE  "75";
-LOCATE  COMP  "RA[8]"  SITE  "65";
-LOCATE  COMP  "RA[9]"  SITE  "63";
-LOCATE  COMP  "RBA[0]"  SITE  "58";
-LOCATE  COMP  "RBA[1]"  SITE  "60";
-LOCATE  COMP  "RCKE"  SITE  "53";
-LOCATE  COMP  "RCLK"  SITE  "62";
-LOCATE  COMP  "RDQMH"  SITE  "51";
-LOCATE  COMP  "RDQML"  SITE  "48";
-LOCATE  COMP  "RD[0]"  SITE  "36";
-LOCATE  COMP  "RD[1]"  SITE  "37";
-LOCATE  COMP  "RD[2]"  SITE  "38";
-LOCATE  COMP  "RD[3]"  SITE  "39";
-LOCATE  COMP  "RD[4]"  SITE  "40";
-LOCATE  COMP  "RD[5]"  SITE  "41";
-LOCATE  COMP  "RD[6]"  SITE  "42";
-LOCATE  COMP  "RD[7]"  SITE  "43";
-LOCATE  COMP  "UFMCLK"  SITE  "29";
-LOCATE  COMP  "UFMSDI"  SITE  "30";
-LOCATE  COMP  "UFMSDO"  SITE  "27";
-LOCATE  COMP  "nCCAS"  SITE  "9";
-LOCATE  COMP  "nCRAS"  SITE  "17";
-LOCATE  COMP  "nFWE"  SITE  "28";
-LOCATE  COMP  "nRCAS"  SITE  "52";
-LOCATE  COMP  "nRCS"  SITE  "57";
-LOCATE  COMP  "nRRAS"  SITE  "54";
-LOCATE  COMP  "nRWE"  SITE  "49";
-LOCATE  COMP  "nUFMCS"  SITE  "47";
-
-
-
-
-
-PAR: Place And Route Diamond (64-bit) 3.12.1.454.
-Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved.
-Copyright (c) 1995 AT&T Corp.   All rights reserved.
-Copyright (c) 1995-2001 Lucent Technologies Inc.  All rights reserved.
-Copyright (c) 2001 Agere Systems   All rights reserved.
-Copyright (c) 2002-2020 Lattice Semiconductor Corporation,  All rights reserved.
-Tue Aug 15 05:22:14 2023
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_par.html b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_par.html deleted file mode 100644 index 0c0c85e..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_par.html +++ /dev/null @@ -1,397 +0,0 @@ - -Place & Route Report - - -
PAR: Place And Route Diamond (64-bit) 3.12.1.454.
-Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved.
-Copyright (c) 1995 AT&T Corp.   All rights reserved.
-Copyright (c) 1995-2001 Lucent Technologies Inc.  All rights reserved.
-Copyright (c) 2001 Agere Systems   All rights reserved.
-Copyright (c) 2002-2020 Lattice Semiconductor Corporation,  All rights reserved.
-Tue Aug 15 05:22:08 2023
-
-C:/lscc/diamond/3.12/ispfpga\bin\nt64\par -f RAM2GS_LCMXO2_1200HC_impl1.p2t
-RAM2GS_LCMXO2_1200HC_impl1_map.ncd RAM2GS_LCMXO2_1200HC_impl1.dir
-RAM2GS_LCMXO2_1200HC_impl1.prf -gui -msgset
-D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/promote.xml
-
-
-Preference file: RAM2GS_LCMXO2_1200HC_impl1.prf.
-
-Cost Table Summary
-Level/       Number       Worst        Timing       Worst        Timing       Run          NCD
-Cost [ncd]   Unrouted     Slack        Score        Slack(hold)  Score(hold)  Time         Status
-----------   --------     -----        ------       -----------  -----------  ----         ------
-5_1   *      0            -4.650       391939       0.304        0            07           Completed
-* : Design saved.
-
-Total (real) run time for 1-seed: 7 secs 
-
-par done!
-
-Note: user must run 'Trace' for timing closure signoff.
-
-Lattice Place and Route Report for Design "RAM2GS_LCMXO2_1200HC_impl1_map.ncd"
-Tue Aug 15 05:22:08 2023
-
-
-Best Par Run
-PAR: Place And Route Diamond (64-bit) 3.12.1.454.
-Command Line: par -w -l 5 -i 6 -t 1 -c 0 -e 0 -gui -msgset D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/promote.xml -exp parUseNBR=1:parCDP=0:parCDR=0:parPathBased=OFF:parASE=1 RAM2GS_LCMXO2_1200HC_impl1_map.ncd RAM2GS_LCMXO2_1200HC_impl1.dir/5_1.ncd RAM2GS_LCMXO2_1200HC_impl1.prf
-Preference file: RAM2GS_LCMXO2_1200HC_impl1.prf.
-Placement level-cost: 5-1.
-Routing Iterations: 6
-
-Loading design for application par from file RAM2GS_LCMXO2_1200HC_impl1_map.ncd.
-Design name: RAM2GS
-NCD version: 3.3
-Vendor:      LATTICE
-Device:      LCMXO2-1200HC
-Package:     TQFP100
-Performance: 4
-Loading device for application par from file 'xo2c1200.nph' in environment: C:/lscc/diamond/3.12/ispfpga.
-Package Status:                     Final          Version 1.44.
-Performance Hardware Data Status:   Final          Version 34.4.
-License checked out.
-
-
-Ignore Preference Error(s):  True
-
-Device utilization summary:
-
-   PIO (prelim)   67+4(JTAG)/108     66% used
-                  67+4(JTAG)/80      89% bonded
-
-   SLICE             75/640          11% used
-
-
-
-Number of Signals: 285
-Number of Connections: 674
-WARNING - par: Placement timing preferences are hard to meet. However, placement will continue. Use static timing analysis to identify errors.
-
-Pin Constraint Summary:
-   66 out of 67 pins locked (98% locked).
-
-The following 2 signals are selected to use the primary clock routing resources:
-    RCLK_c (driver: RCLK, clk load #: 40)
-    PHI2_c (driver: PHI2, clk load #: 13)
-
-WARNING - par: Signal "RCLK_c" is selected to use Primary clock resources. However, its driver comp "RCLK" is located at "62", which is not a dedicated pin for connecting to Primary clock resources. General routing has to be used to route this signal, and it might suffer from excessive delay or skew.
-WARNING - par: Signal "PHI2_c" is selected to use Primary clock resources. However, its driver comp "PHI2" is located at "8", which is not a dedicated pin for connecting to Primary clock resources. General routing has to be used to route this signal, and it might suffer from excessive delay or skew.
-
-The following 1 signal is selected to use the secondary clock routing resources:
-    nCRAS_c (driver: nCRAS, clk load #: 7, sr load #: 0, ce load #: 0)
-
-WARNING - par: Signal "nCRAS_c" is selected to use Secondary clock resources. However, its driver comp "nCRAS" is located at "17", which is not a dedicated pin for connecting to Secondary clock resources. General routing has to be used to route this signal, and it might suffer from excessive delay or skew.
-No signal is selected as Global Set/Reset.
-.
-Starting Placer Phase 0.
-..........
-Finished Placer Phase 0.  REAL time: 0 secs 
-
-Starting Placer Phase 1.
-...................
-Placer score = 143529.
-Finished Placer Phase 1.  REAL time: 4 secs 
-
-Starting Placer Phase 2.
-.
-Placer score =  143450
-Finished Placer Phase 2.  REAL time: 4 secs 
-
-
-
-Clock Report
-
-Global Clock Resources:
-  CLK_PIN    : 0 out of 8 (0%)
-  General PIO: 3 out of 108 (2%)
-  PLL        : 0 out of 1 (0%)
-  DCM        : 0 out of 2 (0%)
-  DCC        : 0 out of 8 (0%)
-
-Global Clocks:
-  PRIMARY "RCLK_c" from comp "RCLK" on PIO site "62 (PR5D)", clk load = 40
-  PRIMARY "PHI2_c" from comp "PHI2" on PIO site "8 (PL3D)", clk load = 13
-  SECONDARY "nCRAS_c" from comp "nCRAS" on PIO site "17 (PL8B)", clk load = 7, ce load = 0, sr load = 0
-
-  PRIMARY  : 2 out of 8 (25%)
-  SECONDARY: 1 out of 8 (12%)
-
-Edge Clocks:
-  No edge clock selected.
-
-
-
-
-I/O Usage Summary (final):
-   67 + 4(JTAG) out of 108 (65.7%) PIO sites used.
-   67 + 4(JTAG) out of 80 (88.8%) bonded PIO sites used.
-   Number of PIO comps: 67; differential: 0.
-   Number of Vref pins used: 0.
-
-I/O Bank Usage Summary:
-+----------+----------------+------------+-----------+
-| I/O Bank | Usage          | Bank Vccio | Bank Vref |
-+----------+----------------+------------+-----------+
-| 0        | 13 / 19 ( 68%) | 2.5V       | -         |
-| 1        | 20 / 21 ( 95%) | 2.5V       | -         |
-| 2        | 17 / 20 ( 85%) | 2.5V       | -         |
-| 3        | 17 / 20 ( 85%) | 2.5V       | -         |
-+----------+----------------+------------+-----------+
-
-Total placer CPU time: 3 secs 
-
-Dumping design to file RAM2GS_LCMXO2_1200HC_impl1.dir/5_1.ncd.
-
-0 connections routed; 674 unrouted.
-Starting router resource preassignment
-WARNING - par: The driver of primary clock net RCLK_c is not placed on one of the sites dedicated for primary clocks. This primary clock will be routed to an H-spine through general routing resource and might suffer from excessive delay or skew.
-WARNING - par: The driver of primary clock net PHI2_c is not placed on one of the sites dedicated for primary clocks. This primary clock will be routed to an H-spine through general routing resource and might suffer from excessive delay or skew.
-
-WARNING - par: The following clock signals will be routed by using generic routing resource and may suffer from excessive delay and/or skew.
-   Signal=nCCAS_c loads=6 clock_loads=4
-
-Completed router resource preassignment. Real time: 6 secs 
-
-Start NBR router at 05:22:14 08/15/23
-
-*****************************************************************
-Info: NBR allows conflicts(one node used by more than one signal)
-      in the earlier iterations. In each iteration, it tries to  
-      solve the conflicts while keeping the critical connections 
-      routed as short as possible. The routing process is said to
-      be completed when no conflicts exist and all connections   
-      are routed.                                                
-Note: NBR uses a different method to calculate timing slacks. The
-      worst slack and total negative slack may not be the same as
-      that in TRCE report. You should always run TRCE to verify  
-      your design.                                               
-*****************************************************************
-
-Start NBR special constraint process at 05:22:14 08/15/23
-
-Start NBR section for initial routing at 05:22:14 08/15/23
-Level 1, iteration 1
-2(0.00%) conflicts; 537(79.67%) untouched conns; 468417 (nbr) score; 
-Estimated worst slack/total negative slack<setup>: -5.186ns/-468.418ns; real time: 6 secs 
-Level 2, iteration 1
-11(0.01%) conflicts; 474(70.33%) untouched conns; 377050 (nbr) score; 
-Estimated worst slack/total negative slack<setup>: -4.364ns/-377.051ns; real time: 7 secs 
-Level 3, iteration 1
-20(0.02%) conflicts; 254(37.69%) untouched conns; 373495 (nbr) score; 
-Estimated worst slack/total negative slack<setup>: -4.364ns/-373.496ns; real time: 7 secs 
-Level 4, iteration 1
-11(0.01%) conflicts; 0(0.00%) untouched conn; 386254 (nbr) score; 
-Estimated worst slack/total negative slack<setup>: -4.364ns/-386.255ns; real time: 7 secs 
-
-Info: Initial congestion level at 75% usage is 0
-Info: Initial congestion area  at 75% usage is 0 (0.00%)
-
-Start NBR section for normal routing at 05:22:15 08/15/23
-Level 1, iteration 1
-7(0.01%) conflicts; 4(0.59%) untouched conns; 379537 (nbr) score; 
-Estimated worst slack/total negative slack<setup>: -4.364ns/-379.537ns; real time: 7 secs 
-Level 4, iteration 1
-9(0.01%) conflicts; 0(0.00%) untouched conn; 380799 (nbr) score; 
-Estimated worst slack/total negative slack<setup>: -4.364ns/-380.800ns; real time: 7 secs 
-Level 4, iteration 2
-6(0.01%) conflicts; 0(0.00%) untouched conn; 390586 (nbr) score; 
-Estimated worst slack/total negative slack<setup>: -4.364ns/-390.587ns; real time: 7 secs 
-Level 4, iteration 3
-6(0.01%) conflicts; 0(0.00%) untouched conn; 384718 (nbr) score; 
-Estimated worst slack/total negative slack<setup>: -4.364ns/-384.719ns; real time: 7 secs 
-Level 4, iteration 4
-6(0.01%) conflicts; 0(0.00%) untouched conn; 384718 (nbr) score; 
-Estimated worst slack/total negative slack<setup>: -4.364ns/-384.719ns; real time: 7 secs 
-Level 4, iteration 5
-4(0.00%) conflicts; 0(0.00%) untouched conn; 393013 (nbr) score; 
-Estimated worst slack/total negative slack<setup>: -4.364ns/-393.014ns; real time: 7 secs 
-Level 4, iteration 6
-3(0.00%) conflicts; 0(0.00%) untouched conn; 393013 (nbr) score; 
-Estimated worst slack/total negative slack<setup>: -4.364ns/-393.014ns; real time: 7 secs 
-Level 4, iteration 7
-3(0.00%) conflicts; 0(0.00%) untouched conn; 393874 (nbr) score; 
-Estimated worst slack/total negative slack<setup>: -4.364ns/-393.875ns; real time: 7 secs 
-Level 4, iteration 8
-3(0.00%) conflicts; 0(0.00%) untouched conn; 393874 (nbr) score; 
-Estimated worst slack/total negative slack<setup>: -4.364ns/-393.875ns; real time: 7 secs 
-Level 4, iteration 9
-2(0.00%) conflicts; 0(0.00%) untouched conn; 409288 (nbr) score; 
-Estimated worst slack/total negative slack<setup>: -4.650ns/-409.289ns; real time: 7 secs 
-Level 4, iteration 10
-3(0.00%) conflicts; 0(0.00%) untouched conn; 409288 (nbr) score; 
-Estimated worst slack/total negative slack<setup>: -4.650ns/-409.289ns; real time: 7 secs 
-Level 4, iteration 11
-3(0.00%) conflicts; 0(0.00%) untouched conn; 393035 (nbr) score; 
-Estimated worst slack/total negative slack<setup>: -4.364ns/-393.036ns; real time: 7 secs 
-Level 4, iteration 12
-3(0.00%) conflicts; 0(0.00%) untouched conn; 393035 (nbr) score; 
-Estimated worst slack/total negative slack<setup>: -4.364ns/-393.036ns; real time: 7 secs 
-Level 4, iteration 13
-2(0.00%) conflicts; 0(0.00%) untouched conn; 404326 (nbr) score; 
-Estimated worst slack/total negative slack<setup>: -4.574ns/-404.327ns; real time: 7 secs 
-Level 4, iteration 14
-2(0.00%) conflicts; 0(0.00%) untouched conn; 404326 (nbr) score; 
-Estimated worst slack/total negative slack<setup>: -4.574ns/-404.327ns; real time: 7 secs 
-Level 4, iteration 15
-2(0.00%) conflicts; 0(0.00%) untouched conn; 411533 (nbr) score; 
-Estimated worst slack/total negative slack<setup>: -4.650ns/-411.534ns; real time: 7 secs 
-Level 4, iteration 16
-3(0.00%) conflicts; 0(0.00%) untouched conn; 411533 (nbr) score; 
-Estimated worst slack/total negative slack<setup>: -4.650ns/-411.534ns; real time: 7 secs 
-Level 4, iteration 17
-2(0.00%) conflicts; 0(0.00%) untouched conn; 404668 (nbr) score; 
-Estimated worst slack/total negative slack<setup>: -4.574ns/-404.669ns; real time: 7 secs 
-Level 4, iteration 18
-1(0.00%) conflict; 0(0.00%) untouched conn; 404668 (nbr) score; 
-Estimated worst slack/total negative slack<setup>: -4.574ns/-404.669ns; real time: 7 secs 
-Level 4, iteration 19
-1(0.00%) conflict; 0(0.00%) untouched conn; 411533 (nbr) score; 
-Estimated worst slack/total negative slack<setup>: -4.650ns/-411.534ns; real time: 7 secs 
-Level 4, iteration 20
-1(0.00%) conflict; 0(0.00%) untouched conn; 411533 (nbr) score; 
-Estimated worst slack/total negative slack<setup>: -4.650ns/-411.534ns; real time: 7 secs 
-Level 4, iteration 21
-1(0.00%) conflict; 0(0.00%) untouched conn; 411533 (nbr) score; 
-Estimated worst slack/total negative slack<setup>: -4.650ns/-411.534ns; real time: 7 secs 
-Level 4, iteration 22
-1(0.00%) conflict; 0(0.00%) untouched conn; 411533 (nbr) score; 
-Estimated worst slack/total negative slack<setup>: -4.650ns/-411.534ns; real time: 7 secs 
-Level 4, iteration 23
-1(0.00%) conflict; 0(0.00%) untouched conn; 411276 (nbr) score; 
-Estimated worst slack/total negative slack<setup>: -4.650ns/-411.277ns; real time: 7 secs 
-Level 4, iteration 24
-1(0.00%) conflict; 0(0.00%) untouched conn; 411276 (nbr) score; 
-Estimated worst slack/total negative slack<setup>: -4.650ns/-411.277ns; real time: 7 secs 
-Level 4, iteration 25
-0(0.00%) conflict; 0(0.00%) untouched conn; 411952 (nbr) score; 
-Estimated worst slack/total negative slack<setup>: -4.650ns/-411.953ns; real time: 7 secs 
-
-Start NBR section for performance tuning (iteration 1) at 05:22:15 08/15/23
-Level 4, iteration 1
-1(0.00%) conflict; 0(0.00%) untouched conn; 405829 (nbr) score; 
-Estimated worst slack/total negative slack<setup>: -4.650ns/-405.830ns; real time: 7 secs 
-Level 4, iteration 2
-0(0.00%) conflict; 0(0.00%) untouched conn; 411952 (nbr) score; 
-Estimated worst slack/total negative slack<setup>: -4.650ns/-411.953ns; real time: 7 secs 
-
-Start NBR section for re-routing at 05:22:15 08/15/23
-Level 4, iteration 1
-0(0.00%) conflict; 0(0.00%) untouched conn; 411952 (nbr) score; 
-Estimated worst slack/total negative slack<setup>: -4.650ns/-411.953ns; real time: 7 secs 
-
-Start NBR section for post-routing at 05:22:15 08/15/23
-
-End NBR router with 0 unrouted connection
-
-NBR Summary
------------
-  Number of unrouted connections : 0 (0.00%)
-  Number of connections with timing violations : 254 (37.69%)
-  Estimated worst slack<setup> : -4.650ns
-  Timing score<setup> : 391939
------------
-Notes: The timing info is calculated for SETUP only and all PAR_ADJs are ignored.
-
-
-
-WARNING - par: The following clock signals will be routed by using generic routing resource and may suffer from excessive delay and/or skew.
-   Signal=nCCAS_c loads=6 clock_loads=4
-
-Total CPU time 6 secs 
-Total REAL time: 7 secs 
-Completely routed.
-End of route.  674 routed (100.00%); 0 unrouted.
-
-Hold time timing score: 0, hold timing errors: 0
-
-Timing score: 391939 
-
-Dumping design to file RAM2GS_LCMXO2_1200HC_impl1.dir/5_1.ncd.
-
-
-All signals are completely routed.
-
-
-PAR_SUMMARY::Run status = Completed
-PAR_SUMMARY::Number of unrouted conns = 0
-PAR_SUMMARY::Worst  slack<setup/<ns>> = -4.650
-PAR_SUMMARY::Timing score<setup/<ns>> = 391.939
-PAR_SUMMARY::Worst  slack<hold /<ns>> = 0.304
-PAR_SUMMARY::Timing score<hold /<ns>> = 0.000
-PAR_SUMMARY::Number of errors = 0
-
-Total CPU  time to completion: 6 secs 
-Total REAL time to completion: 7 secs 
-
-par done!
-
-Note: user must run 'Trace' for timing closure signoff.
-
-Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved.
-Copyright (c) 1995 AT&T Corp.   All rights reserved.
-Copyright (c) 1995-2001 Lucent Technologies Inc.  All rights reserved.
-Copyright (c) 2001 Agere Systems   All rights reserved.
-Copyright (c) 2002-2020 Lattice Semiconductor Corporation,  All rights reserved.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_summary.html b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_summary.html deleted file mode 100644 index dfa4c74..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_summary.html +++ /dev/null @@ -1,83 +0,0 @@ - -Project Summary - - -

-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
RAM2GS_LCMXO2_1200HC project summary
Module Name:RAM2GS_LCMXO2_1200HCSynthesis:Lattice LSE
Implementation Name:impl1Strategy Name:Strategy1
Last Process:JEDEC FileState:Passed
Target Device:LCMXO2-1200HC-4TG100CDevice Family:MachXO2
Device Type:LCMXO2-1200HCPackage Type:TQFP100
Performance grade:4Operating conditions:COM
Logic preference file:RAM2GS_LCMXO2_1200HC.lpf
Physical Preference file:impl1/RAM2GS_LCMXO2_1200HC_impl1.prf
Product Version:3.12.1.454Patch Version:
Updated:2023/08/15 05:22:21
Implementation Location:D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/impl1
Project File:D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/RAM2GS_LCMXO2_1200HC.ldf
-
-
-
-
-
-
- - diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_tw1.html b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_tw1.html deleted file mode 100644 index 04d87c3..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_tw1.html +++ /dev/null @@ -1,430 +0,0 @@ - -Lattice Map TRACE Report - - -
Map TRACE Report
-
-Loading design for application trce from file ram2gs_lcmxo2_1200hc_impl1_map.ncd.
-Design name: RAM2GS
-NCD version: 3.3
-Vendor:      LATTICE
-Device:      LCMXO2-1200HC
-Package:     TQFP100
-Performance: 4
-Loading device for application trce from file 'xo2c1200.nph' in environment: C:/lscc/diamond/3.12/ispfpga.
-Package Status:                     Final          Version 1.44.
-Performance Hardware Data Status:   Final          Version 34.4.
-Setup and Hold Report
-
---------------------------------------------------------------------------------
-Lattice TRACE Report - Setup, Version Diamond (64-bit) 3.12.1.454
-Tue Aug 15 05:22:07 2023
-
-Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved.
-Copyright (c) 1995 AT&T Corp.   All rights reserved.
-Copyright (c) 1995-2001 Lucent Technologies Inc.  All rights reserved.
-Copyright (c) 2001 Agere Systems   All rights reserved.
-Copyright (c) 2002-2020 Lattice Semiconductor Corporation,  All rights reserved.
-
-Report Information
-------------------
-Command line:    trce -v 1 -gt -mapchkpnt 0 -sethld -o RAM2GS_LCMXO2_1200HC_impl1.tw1 -gui -msgset D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/promote.xml RAM2GS_LCMXO2_1200HC_impl1_map.ncd RAM2GS_LCMXO2_1200HC_impl1.prf 
-Design file:     ram2gs_lcmxo2_1200hc_impl1_map.ncd
-Preference file: ram2gs_lcmxo2_1200hc_impl1.prf
-Device,speed:    LCMXO2-1200HC,4
-Report level:    verbose report, limited to 1 item per preference
---------------------------------------------------------------------------------
-
-Preference Summary
-
-
  • FREQUENCY NET "RCLK_c" 299.401000 MHz (245 errors)
  • -
    459 items scored, 245 timing errors detected. -Warning: 139.762MHz is the maximum frequency for this preference. - -
  • FREQUENCY NET "PHI2_c" 99.079000 MHz (104 errors)
  • -
    113 items scored, 104 timing errors detected. -Warning: 50.592MHz is the maximum frequency for this preference. - -Report Type: based on TRACE automatically generated preferences -BLOCK ASYNCPATHS -BLOCK RESETPATHS --------------------------------------------------------------------------------- - - - -================================================================================ -Preference: FREQUENCY NET "RCLK_c" 299.401000 MHz ; - 459 items scored, 245 timing errors detected. --------------------------------------------------------------------------------- - - -Error: The following path exceeds requirements by 3.815ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q FS_610__i13 (from RCLK_c +) - Destination: FF Data in n8MEGEN_418 (to RCLK_c +) - - Delay: 6.873ns (28.2% logic, 71.8% route), 4 logic levels. - - Constraint Details: - - 6.873ns physical path delay SLICE_0 to SLICE_57 exceeds - 3.340ns delay constraint less - 0.282ns CE_SET requirement (totaling 3.058ns) by 3.815ns - - Physical Path Details: - - Data path SLICE_0 to SLICE_57: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 SLICE_0.CLK to SLICE_0.Q0 SLICE_0 (from RCLK_c) -ROUTE 3 e 1.234 SLICE_0.Q0 to SLICE_85.B0 FS_13 -CTOF_DEL --- 0.495 SLICE_85.B0 to SLICE_85.F0 SLICE_85 -ROUTE 5 e 1.234 SLICE_85.F0 to SLICE_57.A1 n10 -CTOF_DEL --- 0.495 SLICE_57.A1 to SLICE_57.F1 SLICE_57 -ROUTE 2 e 1.234 SLICE_57.F1 to SLICE_84.A0 n2367 -CTOF_DEL --- 0.495 SLICE_84.A0 to SLICE_84.F0 SLICE_84 -ROUTE 1 e 1.234 SLICE_84.F0 to SLICE_57.CE RCLK_c_enable_15 (to RCLK_c) - -------- - 6.873 (28.2% logic, 71.8% route), 4 logic levels. - -Warning: 139.762MHz is the maximum frequency for this preference. - - -================================================================================ -Preference: FREQUENCY NET "PHI2_c" 99.079000 MHz ; - 113 items scored, 104 timing errors detected. --------------------------------------------------------------------------------- - - -Error: The following path exceeds requirements by 4.837ns (weighted slack = -9.674ns) - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q Bank_i7 (from PHI2_c +) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) - - Delay: 9.577ns (30.6% logic, 69.4% route), 6 logic levels. - - Constraint Details: - - 9.577ns physical path delay SLICE_101 to SLICE_19 exceeds - 5.047ns delay constraint less - 0.307ns CE_SET requirement (totaling 4.740ns) by 4.837ns - - Physical Path Details: - - Data path SLICE_101 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 SLICE_101.CLK to SLICE_101.Q1 SLICE_101 (from PHI2_c) -ROUTE 1 e 1.234 SLICE_101.Q1 to SLICE_100.C1 Bank_7 -CTOF_DEL --- 0.495 SLICE_100.C1 to SLICE_100.F1 SLICE_100 -ROUTE 1 e 1.234 SLICE_100.F1 to SLICE_74.B1 n2277 -CTOF_DEL --- 0.495 SLICE_74.B1 to SLICE_74.F1 SLICE_74 -ROUTE 8 e 1.234 SLICE_74.F1 to SLICE_91.B1 n26 -CTOF_DEL --- 0.495 SLICE_91.B1 to SLICE_91.F1 SLICE_91 -ROUTE 1 e 1.234 SLICE_91.F1 to SLICE_88.D0 n2362 -CTOF_DEL --- 0.495 SLICE_88.D0 to SLICE_88.F0 SLICE_88 -ROUTE 3 e 0.480 SLICE_88.F0 to SLICE_88.C1 C1Submitted_N_237 -CTOF_DEL --- 0.495 SLICE_88.C1 to SLICE_88.F1 SLICE_88 -ROUTE 1 e 1.234 SLICE_88.F1 to SLICE_19.CE PHI2_N_120_enable_1 (to PHI2_c) - -------- - 9.577 (30.6% logic, 69.4% route), 6 logic levels. - -Warning: 50.592MHz is the maximum frequency for this preference. - -Report Summary --------------- ----------------------------------------------------------------------------- -Preference | Constraint| Actual|Levels ----------------------------------------------------------------------------- - | | | -FREQUENCY NET "RCLK_c" 299.401000 MHz ; | 299.401 MHz| 139.762 MHz| 4 * - | | | -FREQUENCY NET "PHI2_c" 99.079000 MHz ; | 99.079 MHz| 50.592 MHz| 6 * - | | | ----------------------------------------------------------------------------- - - -2 preferences(marked by "*" above) not met. - ----------------------------------------------------------------------------- -Critical Nets | Loads| Errors| % of total ----------------------------------------------------------------------------- -n26 | 8| 78| 22.35% - | | | ----------------------------------------------------------------------------- - - -Clock Domains Analysis ------------------------- - -Found 4 clocks: - -Clock Domain: nCRAS_c Source: nCRAS.PAD Loads: 9 - No transfer within this clock domain is found - -Clock Domain: nCCAS_c Source: nCCAS.PAD Loads: 6 - No transfer within this clock domain is found - -Clock Domain: RCLK_c Source: RCLK.PAD Loads: 40 - Covered under: FREQUENCY NET "RCLK_c" 299.401000 MHz ; - - Data transfers from: - Clock Domain: nCRAS_c Source: nCRAS.PAD - Not reported because source and destination domains are unrelated. - To report these transfers please refer to preference CLKSKEWDIFF to define - external clock skew between clock ports. - - Clock Domain: PHI2_c Source: PHI2.PAD - Not reported because source and destination domains are unrelated. - To report these transfers please refer to preference CLKSKEWDIFF to define - external clock skew between clock ports. - -Clock Domain: PHI2_c Source: PHI2.PAD Loads: 14 - Covered under: FREQUENCY NET "PHI2_c" 99.079000 MHz ; - - Data transfers from: - Clock Domain: RCLK_c Source: RCLK.PAD - Not reported because source and destination domains are unrelated. - To report these transfers please refer to preference CLKSKEWDIFF to define - external clock skew between clock ports. - - -Timing summary (Setup): ---------------- - -Timing errors: 349 Score: 848079 -Cumulative negative slack: 584487 - -Constraints cover 572 paths, 2 nets, and 409 connections (60.68% coverage) - --------------------------------------------------------------------------------- -Lattice TRACE Report - Hold, Version Diamond (64-bit) 3.12.1.454 -Tue Aug 15 05:22:07 2023 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. - -Report Information ------------------- -Command line: trce -v 1 -gt -mapchkpnt 0 -sethld -o RAM2GS_LCMXO2_1200HC_impl1.tw1 -gui -msgset D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/promote.xml RAM2GS_LCMXO2_1200HC_impl1_map.ncd RAM2GS_LCMXO2_1200HC_impl1.prf -Design file: ram2gs_lcmxo2_1200hc_impl1_map.ncd -Preference file: ram2gs_lcmxo2_1200hc_impl1.prf -Device,speed: LCMXO2-1200HC,M -Report level: verbose report, limited to 1 item per preference --------------------------------------------------------------------------------- - -Preference Summary - -
  • FREQUENCY NET "RCLK_c" 299.401000 MHz (0 errors)
  • 459 items scored, 0 timing errors detected. - -
  • FREQUENCY NET "PHI2_c" 99.079000 MHz (0 errors)
  • 113 items scored, 0 timing errors detected. - -BLOCK ASYNCPATHS -BLOCK RESETPATHS --------------------------------------------------------------------------------- - - - -================================================================================ -Preference: FREQUENCY NET "RCLK_c" 299.401000 MHz ; - 459 items scored, 0 timing errors detected. --------------------------------------------------------------------------------- - - -Passed: The following path meets requirements by 0.351ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q IS_FSM__i4 (from RCLK_c +) - Destination: FF Data in IS_FSM__i5 (to RCLK_c +) - - Delay: 0.332ns (40.1% logic, 59.9% route), 1 logic levels. - - Constraint Details: - - 0.332ns physical path delay SLICE_106 to SLICE_106 meets - -0.019ns M_HLD and - 0.000ns delay constraint requirement (totaling -0.019ns) by 0.351ns - - Physical Path Details: - - Data path SLICE_106 to SLICE_106: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 SLICE_106.CLK to SLICE_106.Q0 SLICE_106 (from RCLK_c) -ROUTE 1 e 0.199 SLICE_106.Q0 to SLICE_106.M1 n736 (to RCLK_c) - -------- - 0.332 (40.1% logic, 59.9% route), 1 logic levels. - - -================================================================================ -Preference: FREQUENCY NET "PHI2_c" 99.079000 MHz ; - 113 items scored, 0 timing errors detected. --------------------------------------------------------------------------------- - - -Passed: The following path meets requirements by 0.447ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q C1Submitted_406 (from PHI2_c -) - Destination: FF Data in C1Submitted_406 (to PHI2_c -) - - Delay: 0.434ns (53.9% logic, 46.1% route), 2 logic levels. - - Constraint Details: - - 0.434ns physical path delay SLICE_15 to SLICE_15 meets - -0.013ns DIN_HLD and - 0.000ns delay constraint requirement (totaling -0.013ns) by 0.447ns - - Physical Path Details: - - Data path SLICE_15 to SLICE_15: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 SLICE_15.CLK to SLICE_15.Q0 SLICE_15 (from PHI2_c) -ROUTE 2 e 0.199 SLICE_15.Q0 to SLICE_15.C0 C1Submitted -CTOF_DEL --- 0.101 SLICE_15.C0 to SLICE_15.F0 SLICE_15 -ROUTE 1 e 0.001 SLICE_15.F0 to SLICE_15.DI0 n1398 (to PHI2_c) - -------- - 0.434 (53.9% logic, 46.1% route), 2 logic levels. - -Report Summary --------------- ----------------------------------------------------------------------------- -Preference(MIN Delays) | Constraint| Actual|Levels ----------------------------------------------------------------------------- - | | | -FREQUENCY NET "RCLK_c" 299.401000 MHz ; | 0.000 ns| 0.351 ns| 1 - | | | -FREQUENCY NET "PHI2_c" 99.079000 MHz ; | 0.000 ns| 0.447 ns| 2 - | | | ----------------------------------------------------------------------------- - - -All preferences were met. - - -Clock Domains Analysis ------------------------- - -Found 4 clocks: - -Clock Domain: nCRAS_c Source: nCRAS.PAD Loads: 9 - No transfer within this clock domain is found - -Clock Domain: nCCAS_c Source: nCCAS.PAD Loads: 6 - No transfer within this clock domain is found - -Clock Domain: RCLK_c Source: RCLK.PAD Loads: 40 - Covered under: FREQUENCY NET "RCLK_c" 299.401000 MHz ; - - Data transfers from: - Clock Domain: nCRAS_c Source: nCRAS.PAD - Not reported because source and destination domains are unrelated. - To report these transfers please refer to preference CLKSKEWDIFF to define - external clock skew between clock ports. - - Clock Domain: PHI2_c Source: PHI2.PAD - Not reported because source and destination domains are unrelated. - To report these transfers please refer to preference CLKSKEWDIFF to define - external clock skew between clock ports. - -Clock Domain: PHI2_c Source: PHI2.PAD Loads: 14 - Covered under: FREQUENCY NET "PHI2_c" 99.079000 MHz ; - - Data transfers from: - Clock Domain: RCLK_c Source: RCLK.PAD - Not reported because source and destination domains are unrelated. - To report these transfers please refer to preference CLKSKEWDIFF to define - external clock skew between clock ports. - - -Timing summary (Hold): ---------------- - -Timing errors: 0 Score: 0 -Cumulative negative slack: 0 - -Constraints cover 572 paths, 2 nets, and 409 connections (60.68% coverage) - - - -Timing summary (Setup and Hold): ---------------- - -Timing errors: 349 (setup), 0 (hold) -Score: 848079 (setup), 0 (hold) -Cumulative negative slack: 584487 (584487+0) --------------------------------------------------------------------------------- - --------------------------------------------------------------------------------- - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_twr.html b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_twr.html deleted file mode 100644 index 987f2af..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1_twr.html +++ /dev/null @@ -1,2244 +0,0 @@ - -Lattice TRACE Report - - -
    Place & Route TRACE Report
    -
    -Loading design for application trce from file ram2gs_lcmxo2_1200hc_impl1.ncd.
    -Design name: RAM2GS
    -NCD version: 3.3
    -Vendor:      LATTICE
    -Device:      LCMXO2-1200HC
    -Package:     TQFP100
    -Performance: 4
    -Loading device for application trce from file 'xo2c1200.nph' in environment: C:/lscc/diamond/3.12/ispfpga.
    -Package Status:                     Final          Version 1.44.
    -Performance Hardware Data Status:   Final          Version 34.4.
    -Setup and Hold Report
    -
    ---------------------------------------------------------------------------------
    -Lattice TRACE Report - Setup, Version Diamond (64-bit) 3.12.1.454
    -Tue Aug 15 05:22:16 2023
    -
    -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved.
    -Copyright (c) 1995 AT&T Corp.   All rights reserved.
    -Copyright (c) 1995-2001 Lucent Technologies Inc.  All rights reserved.
    -Copyright (c) 2001 Agere Systems   All rights reserved.
    -Copyright (c) 2002-2020 Lattice Semiconductor Corporation,  All rights reserved.
    -
    -Report Information
    -------------------
    -Command line:    trce -v 10 -gt -sethld -sp 4 -sphld m -o RAM2GS_LCMXO2_1200HC_impl1.twr -gui -msgset D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/promote.xml RAM2GS_LCMXO2_1200HC_impl1.ncd RAM2GS_LCMXO2_1200HC_impl1.prf 
    -Design file:     ram2gs_lcmxo2_1200hc_impl1.ncd
    -Preference file: ram2gs_lcmxo2_1200hc_impl1.prf
    -Device,speed:    LCMXO2-1200HC,4
    -Report level:    verbose report, limited to 10 items per preference
    ---------------------------------------------------------------------------------
    -
    -Preference Summary
    -
    -
  • FREQUENCY NET "RCLK_c" 299.401000 MHz (247 errors)
  • -
    459 items scored, 247 timing errors detected. -Warning: 174.216MHz is the maximum frequency for this preference. - -
  • FREQUENCY NET "PHI2_c" 99.079000 MHz (88 errors)
  • -
    113 items scored, 88 timing errors detected. -Warning: 67.833MHz is the maximum frequency for this preference. - -Report Type: based on TRACE automatically generated preferences -BLOCK ASYNCPATHS -BLOCK RESETPATHS --------------------------------------------------------------------------------- - - - -================================================================================ -Preference: FREQUENCY NET "RCLK_c" 299.401000 MHz ; - 459 items scored, 247 timing errors detected. --------------------------------------------------------------------------------- - - -Error: The following path exceeds requirements by 2.400ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q FS_610__i12 (from RCLK_c +) - Destination: FF Data in UFMCLK_416 (to RCLK_c +) - - Delay: 5.574ns (43.6% logic, 56.4% route), 5 logic levels. - - Constraint Details: - - 5.574ns physical path delay SLICE_1 to SLICE_44 exceeds - 3.340ns delay constraint less - 0.000ns skew and - 0.166ns DIN_SET requirement (totaling 3.174ns) by 2.400ns - - Physical Path Details: - - Data path SLICE_1 to SLICE_44: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R7C15C.CLK to R7C15C.Q1 SLICE_1 (from RCLK_c) -ROUTE 5 1.440 R7C15C.Q1 to R8C15A.B0 FS_12 -CTOF_DEL --- 0.495 R8C15A.B0 to R8C15A.F0 SLICE_105 -ROUTE 1 0.626 R8C15A.F0 to R8C15D.D1 n12 -CTOF_DEL --- 0.495 R8C15D.D1 to R8C15D.F1 SLICE_82 -ROUTE 3 0.640 R8C15D.F1 to R8C16B.D1 n13_adj_6 -CTOF_DEL --- 0.495 R8C16B.D1 to R8C16B.F1 SLICE_44 -ROUTE 1 0.436 R8C16B.F1 to R8C16B.C0 n1893 -CTOF_DEL --- 0.495 R8C16B.C0 to R8C16B.F0 SLICE_44 -ROUTE 1 0.000 R8C16B.F0 to R8C16B.DI0 UFMCLK_N_224 (to RCLK_c) - -------- - 5.574 (43.6% logic, 56.4% route), 5 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_1: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R7C15C.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_44: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R8C16B.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 2.383ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q FS_610__i12 (from RCLK_c +) - Destination: FF Data in InitReady_394 (to RCLK_c +) - - Delay: 5.441ns (35.6% logic, 64.4% route), 4 logic levels. - - Constraint Details: - - 5.441ns physical path delay SLICE_1 to SLICE_26 exceeds - 3.340ns delay constraint less - 0.000ns skew and - 0.282ns CE_SET requirement (totaling 3.058ns) by 2.383ns - - Physical Path Details: - - Data path SLICE_1 to SLICE_26: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R7C15C.CLK to R7C15C.Q1 SLICE_1 (from RCLK_c) -ROUTE 5 1.440 R7C15C.Q1 to R8C15A.B0 FS_12 -CTOF_DEL --- 0.495 R8C15A.B0 to R8C15A.F0 SLICE_105 -ROUTE 1 0.626 R8C15A.F0 to R8C15D.D1 n12 -CTOF_DEL --- 0.495 R8C15D.D1 to R8C15D.F1 SLICE_82 -ROUTE 3 0.453 R8C15D.F1 to R8C15D.C0 n13_adj_6 -CTOF_DEL --- 0.495 R8C15D.C0 to R8C15D.F0 SLICE_82 -ROUTE 1 0.985 R8C15D.F0 to R8C13D.CE RCLK_c_enable_28 (to RCLK_c) - -------- - 5.441 (35.6% logic, 64.4% route), 4 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_1: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R7C15C.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_26: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R8C13D.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 2.217ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q FS_610__i16 (from RCLK_c +) - Destination: FF Data in nUFMCS_415 (to RCLK_c +) - - Delay: 5.391ns (45.1% logic, 54.9% route), 5 logic levels. - - Constraint Details: - - 5.391ns physical path delay SLICE_9 to SLICE_70 exceeds - 3.340ns delay constraint less - 0.000ns skew and - 0.166ns DIN_SET requirement (totaling 3.174ns) by 2.217ns - - Physical Path Details: - - Data path SLICE_9 to SLICE_70: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R7C16A.CLK to R7C16A.Q1 SLICE_9 (from RCLK_c) -ROUTE 3 1.017 R7C16A.Q1 to R7C16D.B0 FS_16 -CTOF_DEL --- 0.495 R7C16D.B0 to R7C16D.F0 SLICE_85 -ROUTE 5 0.340 R7C16D.F0 to R7C17A.D1 n10 -CTOF_DEL --- 0.495 R7C17A.D1 to R7C17A.F1 SLICE_76 -ROUTE 2 0.635 R7C17A.F1 to R7C17D.D1 n2368 -CTOF_DEL --- 0.495 R7C17D.D1 to R7C17D.F1 SLICE_70 -ROUTE 1 0.967 R7C17D.F1 to R7C17D.A0 n64 -CTOF_DEL --- 0.495 R7C17D.A0 to R7C17D.F0 SLICE_70 -ROUTE 1 0.000 R7C17D.F0 to R7C17D.DI0 nUFMCS_N_199 (to RCLK_c) - -------- - 5.391 (45.1% logic, 54.9% route), 5 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_9: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R7C16A.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_70: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R7C17D.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 2.180ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q FS_610__i15 (from RCLK_c +) - Destination: FF Data in nUFMCS_415 (to RCLK_c +) - - Delay: 5.354ns (45.4% logic, 54.6% route), 5 logic levels. - - Constraint Details: - - 5.354ns physical path delay SLICE_9 to SLICE_70 exceeds - 3.340ns delay constraint less - 0.000ns skew and - 0.166ns DIN_SET requirement (totaling 3.174ns) by 2.180ns - - Physical Path Details: - - Data path SLICE_9 to SLICE_70: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R7C16A.CLK to R7C16A.Q0 SLICE_9 (from RCLK_c) -ROUTE 3 0.980 R7C16A.Q0 to R7C16D.A0 FS_15 -CTOF_DEL --- 0.495 R7C16D.A0 to R7C16D.F0 SLICE_85 -ROUTE 5 0.340 R7C16D.F0 to R7C17A.D1 n10 -CTOF_DEL --- 0.495 R7C17A.D1 to R7C17A.F1 SLICE_76 -ROUTE 2 0.635 R7C17A.F1 to R7C17D.D1 n2368 -CTOF_DEL --- 0.495 R7C17D.D1 to R7C17D.F1 SLICE_70 -ROUTE 1 0.967 R7C17D.F1 to R7C17D.A0 n64 -CTOF_DEL --- 0.495 R7C17D.A0 to R7C17D.F0 SLICE_70 -ROUTE 1 0.000 R7C17D.F0 to R7C17D.DI0 nUFMCS_N_199 (to RCLK_c) - -------- - 5.354 (45.4% logic, 54.6% route), 5 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_9: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R7C16A.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_70: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R7C17D.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 2.166ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q FS_610__i16 (from RCLK_c +) - Destination: FF Data in UFMCLK_416 (to RCLK_c +) - - Delay: 5.340ns (45.5% logic, 54.5% route), 5 logic levels. - - Constraint Details: - - 5.340ns physical path delay SLICE_9 to SLICE_44 exceeds - 3.340ns delay constraint less - 0.000ns skew and - 0.166ns DIN_SET requirement (totaling 3.174ns) by 2.166ns - - Physical Path Details: - - Data path SLICE_9 to SLICE_44: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R7C16A.CLK to R7C16A.Q1 SLICE_9 (from RCLK_c) -ROUTE 3 1.206 R7C16A.Q1 to R8C15A.C0 FS_16 -CTOF_DEL --- 0.495 R8C15A.C0 to R8C15A.F0 SLICE_105 -ROUTE 1 0.626 R8C15A.F0 to R8C15D.D1 n12 -CTOF_DEL --- 0.495 R8C15D.D1 to R8C15D.F1 SLICE_82 -ROUTE 3 0.640 R8C15D.F1 to R8C16B.D1 n13_adj_6 -CTOF_DEL --- 0.495 R8C16B.D1 to R8C16B.F1 SLICE_44 -ROUTE 1 0.436 R8C16B.F1 to R8C16B.C0 n1893 -CTOF_DEL --- 0.495 R8C16B.C0 to R8C16B.F0 SLICE_44 -ROUTE 1 0.000 R8C16B.F0 to R8C16B.DI0 UFMCLK_N_224 (to RCLK_c) - -------- - 5.340 (45.5% logic, 54.5% route), 5 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_9: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R7C16A.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_44: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R8C16B.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 2.158ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q FS_610__i16 (from RCLK_c +) - Destination: FF Data in UFMCLK_416 (to RCLK_c +) - - Delay: 5.332ns (45.6% logic, 54.4% route), 5 logic levels. - - Constraint Details: - - 5.332ns physical path delay SLICE_9 to SLICE_44 exceeds - 3.340ns delay constraint less - 0.000ns skew and - 0.166ns DIN_SET requirement (totaling 3.174ns) by 2.158ns - - Physical Path Details: - - Data path SLICE_9 to SLICE_44: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R7C16A.CLK to R7C16A.Q1 SLICE_9 (from RCLK_c) -ROUTE 3 1.017 R7C16A.Q1 to R7C16D.B0 FS_16 -CTOF_DEL --- 0.495 R7C16D.B0 to R7C16D.F0 SLICE_85 -ROUTE 5 0.461 R7C16D.F0 to R7C16D.C1 n10 -CTOF_DEL --- 0.495 R7C16D.C1 to R7C16D.F1 SLICE_85 -ROUTE 1 0.986 R7C16D.F1 to R8C16B.A1 n2267 -CTOF_DEL --- 0.495 R8C16B.A1 to R8C16B.F1 SLICE_44 -ROUTE 1 0.436 R8C16B.F1 to R8C16B.C0 n1893 -CTOF_DEL --- 0.495 R8C16B.C0 to R8C16B.F0 SLICE_44 -ROUTE 1 0.000 R8C16B.F0 to R8C16B.DI0 UFMCLK_N_224 (to RCLK_c) - -------- - 5.332 (45.6% logic, 54.4% route), 5 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_9: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R7C16A.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_44: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R8C16B.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 2.149ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q FS_610__i16 (from RCLK_c +) - Destination: FF Data in InitReady_394 (to RCLK_c +) - - Delay: 5.207ns (37.2% logic, 62.8% route), 4 logic levels. - - Constraint Details: - - 5.207ns physical path delay SLICE_9 to SLICE_26 exceeds - 3.340ns delay constraint less - 0.000ns skew and - 0.282ns CE_SET requirement (totaling 3.058ns) by 2.149ns - - Physical Path Details: - - Data path SLICE_9 to SLICE_26: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R7C16A.CLK to R7C16A.Q1 SLICE_9 (from RCLK_c) -ROUTE 3 1.206 R7C16A.Q1 to R8C15A.C0 FS_16 -CTOF_DEL --- 0.495 R8C15A.C0 to R8C15A.F0 SLICE_105 -ROUTE 1 0.626 R8C15A.F0 to R8C15D.D1 n12 -CTOF_DEL --- 0.495 R8C15D.D1 to R8C15D.F1 SLICE_82 -ROUTE 3 0.453 R8C15D.F1 to R8C15D.C0 n13_adj_6 -CTOF_DEL --- 0.495 R8C15D.C0 to R8C15D.F0 SLICE_82 -ROUTE 1 0.985 R8C15D.F0 to R8C13D.CE RCLK_c_enable_28 (to RCLK_c) - -------- - 5.207 (37.2% logic, 62.8% route), 4 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_9: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R7C16A.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_26: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R8C13D.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 2.131ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q FS_610__i7 (from RCLK_c +) - Destination: FF Data in n8MEGEN_418 (to RCLK_c +) - - Delay: 5.189ns (37.3% logic, 62.7% route), 4 logic levels. - - Constraint Details: - - 5.189ns physical path delay SLICE_2 to SLICE_57 exceeds - 3.340ns delay constraint less - 0.000ns skew and - 0.282ns CE_SET requirement (totaling 3.058ns) by 2.131ns - - Physical Path Details: - - Data path SLICE_2 to SLICE_57: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R7C15A.CLK to R7C15A.Q0 SLICE_2 (from RCLK_c) -ROUTE 3 1.086 R7C15A.Q0 to R8C14D.D0 FS_7 -CTOF_DEL --- 0.495 R8C14D.D0 to R8C14D.F0 SLICE_95 -ROUTE 1 0.747 R8C14D.F0 to R8C14A.C0 n15 -CTOF_DEL --- 0.495 R8C14A.C0 to R8C14A.F0 SLICE_86 -ROUTE 1 0.766 R8C14A.F0 to R8C16C.C0 n4_adj_7 -CTOF_DEL --- 0.495 R8C16C.C0 to R8C16C.F0 SLICE_84 -ROUTE 1 0.653 R8C16C.F0 to R8C16A.CE RCLK_c_enable_15 (to RCLK_c) - -------- - 5.189 (37.3% logic, 62.7% route), 4 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_2: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R7C15A.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_57: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R8C16A.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 2.121ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q FS_610__i15 (from RCLK_c +) - Destination: FF Data in UFMCLK_416 (to RCLK_c +) - - Delay: 5.295ns (45.9% logic, 54.1% route), 5 logic levels. - - Constraint Details: - - 5.295ns physical path delay SLICE_9 to SLICE_44 exceeds - 3.340ns delay constraint less - 0.000ns skew and - 0.166ns DIN_SET requirement (totaling 3.174ns) by 2.121ns - - Physical Path Details: - - Data path SLICE_9 to SLICE_44: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R7C16A.CLK to R7C16A.Q0 SLICE_9 (from RCLK_c) -ROUTE 3 0.980 R7C16A.Q0 to R7C16D.A0 FS_15 -CTOF_DEL --- 0.495 R7C16D.A0 to R7C16D.F0 SLICE_85 -ROUTE 5 0.461 R7C16D.F0 to R7C16D.C1 n10 -CTOF_DEL --- 0.495 R7C16D.C1 to R7C16D.F1 SLICE_85 -ROUTE 1 0.986 R7C16D.F1 to R8C16B.A1 n2267 -CTOF_DEL --- 0.495 R8C16B.A1 to R8C16B.F1 SLICE_44 -ROUTE 1 0.436 R8C16B.F1 to R8C16B.C0 n1893 -CTOF_DEL --- 0.495 R8C16B.C0 to R8C16B.F0 SLICE_44 -ROUTE 1 0.000 R8C16B.F0 to R8C16B.DI0 UFMCLK_N_224 (to RCLK_c) - -------- - 5.295 (45.9% logic, 54.1% route), 5 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_9: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R7C16A.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_44: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R8C16B.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 2.087ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q FS_610__i12 (from RCLK_c +) - Destination: FF Data in UFMSDI_417 (to RCLK_c +) - - Delay: 5.261ns (46.2% logic, 53.8% route), 5 logic levels. - - Constraint Details: - - 5.261ns physical path delay SLICE_1 to SLICE_45 exceeds - 3.340ns delay constraint less - 0.000ns skew and - 0.166ns DIN_SET requirement (totaling 3.174ns) by 2.087ns - - Physical Path Details: - - Data path SLICE_1 to SLICE_45: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R7C15C.CLK to R7C15C.Q1 SLICE_1 (from RCLK_c) -ROUTE 5 0.786 R7C15C.Q1 to R8C15C.C1 FS_12 -CTOF_DEL --- 0.495 R8C15C.C1 to R8C15C.F1 SLICE_80 -ROUTE 3 0.640 R8C15C.F1 to R8C14D.D1 n2375 -CTOF_DEL --- 0.495 R8C14D.D1 to R8C14D.F1 SLICE_95 -ROUTE 1 0.967 R8C14D.F1 to R8C14C.A1 n7 -CTOF_DEL --- 0.495 R8C14C.A1 to R8C14C.F1 SLICE_45 -ROUTE 1 0.436 R8C14C.F1 to R8C14C.C0 n2174 -CTOF_DEL --- 0.495 R8C14C.C0 to R8C14C.F0 SLICE_45 -ROUTE 1 0.000 R8C14C.F0 to R8C14C.DI0 UFMSDI_N_231 (to RCLK_c) - -------- - 5.261 (46.2% logic, 53.8% route), 5 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_1: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R7C15C.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_45: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 4.865 62.PADDI to R8C14C.CLK RCLK_c - -------- - 4.865 (0.0% logic, 100.0% route), 0 logic levels. - -Warning: 174.216MHz is the maximum frequency for this preference. - - -================================================================================ -Preference: FREQUENCY NET "PHI2_c" 99.079000 MHz ; - 113 items scored, 88 timing errors detected. --------------------------------------------------------------------------------- - - -Error: The following path exceeds requirements by 2.325ns (weighted slack = -4.650ns) - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q Bank_i6 (from PHI2_c +) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) - - Delay: 7.065ns (41.4% logic, 58.6% route), 6 logic levels. - - Constraint Details: - - 7.065ns physical path delay SLICE_101 to SLICE_19 exceeds - 5.047ns delay constraint less - 0.000ns skew and - 0.307ns CE_SET requirement (totaling 4.740ns) by 2.325ns - - Physical Path Details: - - Data path SLICE_101 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R9C16C.CLK to R9C16C.Q0 SLICE_101 (from PHI2_c) -ROUTE 1 0.986 R9C16C.Q0 to R9C14A.A0 Bank_6 -CTOF_DEL --- 0.495 R9C14A.A0 to R9C14A.F0 SLICE_68 -ROUTE 1 0.766 R9C14A.F0 to R9C15B.C1 n2287 -CTOF_DEL --- 0.495 R9C15B.C1 to R9C15B.F1 SLICE_74 -ROUTE 8 0.662 R9C15B.F1 to R9C14D.D1 n26 -CTOF_DEL --- 0.495 R9C14D.D1 to R9C14D.F1 SLICE_91 -ROUTE 1 0.626 R9C14D.F1 to R9C14C.D0 n2362 -CTOF_DEL --- 0.495 R9C14C.D0 to R9C14C.F0 SLICE_88 -ROUTE 3 0.445 R9C14C.F0 to R9C14C.C1 C1Submitted_N_237 -CTOF_DEL --- 0.495 R9C14C.C1 to R9C14C.F1 SLICE_88 -ROUTE 1 0.653 R9C14C.F1 to R9C14B.CE PHI2_N_120_enable_1 (to PHI2_c) - -------- - 7.065 (41.4% logic, 58.6% route), 6 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_101: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R9C16C.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R9C14B.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 2.287ns (weighted slack = -4.574ns) - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q Bank_i1 (from PHI2_c +) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) - - Delay: 7.027ns (41.7% logic, 58.3% route), 6 logic levels. - - Constraint Details: - - 7.027ns physical path delay SLICE_93 to SLICE_19 exceeds - 5.047ns delay constraint less - 0.000ns skew and - 0.307ns CE_SET requirement (totaling 4.740ns) by 2.287ns - - Physical Path Details: - - Data path SLICE_93 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R9C16A.CLK to R9C16A.Q1 SLICE_93 (from PHI2_c) -ROUTE 1 0.744 R9C16A.Q1 to R9C15C.C1 Bank_1 -CTOF_DEL --- 0.495 R9C15C.C1 to R9C15C.F1 SLICE_99 -ROUTE 2 0.635 R9C15C.F1 to R9C15D.D1 n22 -CTOF_DEL --- 0.495 R9C15D.D1 to R9C15D.F1 SLICE_79 -ROUTE 7 0.997 R9C15D.F1 to R9C14D.A1 n2369 -CTOF_DEL --- 0.495 R9C14D.A1 to R9C14D.F1 SLICE_91 -ROUTE 1 0.626 R9C14D.F1 to R9C14C.D0 n2362 -CTOF_DEL --- 0.495 R9C14C.D0 to R9C14C.F0 SLICE_88 -ROUTE 3 0.445 R9C14C.F0 to R9C14C.C1 C1Submitted_N_237 -CTOF_DEL --- 0.495 R9C14C.C1 to R9C14C.F1 SLICE_88 -ROUTE 1 0.653 R9C14C.F1 to R9C14B.CE PHI2_N_120_enable_1 (to PHI2_c) - -------- - 7.027 (41.7% logic, 58.3% route), 6 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_93: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R9C16A.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R9C14B.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 2.166ns (weighted slack = -4.332ns) - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q Bank_i4 (from PHI2_c +) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) - - Delay: 6.906ns (42.4% logic, 57.6% route), 6 logic levels. - - Constraint Details: - - 6.906ns physical path delay SLICE_102 to SLICE_19 exceeds - 5.047ns delay constraint less - 0.000ns skew and - 0.307ns CE_SET requirement (totaling 4.740ns) by 2.166ns - - Physical Path Details: - - Data path SLICE_102 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R8C15B.CLK to R8C15B.Q0 SLICE_102 (from PHI2_c) -ROUTE 1 0.623 R8C15B.Q0 to R9C15C.D1 Bank_4 -CTOF_DEL --- 0.495 R9C15C.D1 to R9C15C.F1 SLICE_99 -ROUTE 2 0.635 R9C15C.F1 to R9C15D.D1 n22 -CTOF_DEL --- 0.495 R9C15D.D1 to R9C15D.F1 SLICE_79 -ROUTE 7 0.997 R9C15D.F1 to R9C14D.A1 n2369 -CTOF_DEL --- 0.495 R9C14D.A1 to R9C14D.F1 SLICE_91 -ROUTE 1 0.626 R9C14D.F1 to R9C14C.D0 n2362 -CTOF_DEL --- 0.495 R9C14C.D0 to R9C14C.F0 SLICE_88 -ROUTE 3 0.445 R9C14C.F0 to R9C14C.C1 C1Submitted_N_237 -CTOF_DEL --- 0.495 R9C14C.C1 to R9C14C.F1 SLICE_88 -ROUTE 1 0.653 R9C14C.F1 to R9C14B.CE PHI2_N_120_enable_1 (to PHI2_c) - -------- - 6.906 (42.4% logic, 57.6% route), 6 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_102: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R8C15B.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R9C14B.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 1.984ns (weighted slack = -3.968ns) - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q Bank_i3 (from PHI2_c +) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) - - Delay: 6.724ns (43.5% logic, 56.5% route), 6 logic levels. - - Constraint Details: - - 6.724ns physical path delay SLICE_103 to SLICE_19 exceeds - 5.047ns delay constraint less - 0.000ns skew and - 0.307ns CE_SET requirement (totaling 4.740ns) by 1.984ns - - Physical Path Details: - - Data path SLICE_103 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R9C16D.CLK to R9C16D.Q1 SLICE_103 (from PHI2_c) -ROUTE 1 0.645 R9C16D.Q1 to R9C14A.D0 Bank_3 -CTOF_DEL --- 0.495 R9C14A.D0 to R9C14A.F0 SLICE_68 -ROUTE 1 0.766 R9C14A.F0 to R9C15B.C1 n2287 -CTOF_DEL --- 0.495 R9C15B.C1 to R9C15B.F1 SLICE_74 -ROUTE 8 0.662 R9C15B.F1 to R9C14D.D1 n26 -CTOF_DEL --- 0.495 R9C14D.D1 to R9C14D.F1 SLICE_91 -ROUTE 1 0.626 R9C14D.F1 to R9C14C.D0 n2362 -CTOF_DEL --- 0.495 R9C14C.D0 to R9C14C.F0 SLICE_88 -ROUTE 3 0.445 R9C14C.F0 to R9C14C.C1 C1Submitted_N_237 -CTOF_DEL --- 0.495 R9C14C.C1 to R9C14C.F1 SLICE_88 -ROUTE 1 0.653 R9C14C.F1 to R9C14B.CE PHI2_N_120_enable_1 (to PHI2_c) - -------- - 6.724 (43.5% logic, 56.5% route), 6 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_103: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R9C16D.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R9C14B.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 1.874ns (weighted slack = -3.748ns) - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q Bank_i7 (from PHI2_c +) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) - - Delay: 6.614ns (44.3% logic, 55.7% route), 6 logic levels. - - Constraint Details: - - 6.614ns physical path delay SLICE_101 to SLICE_19 exceeds - 5.047ns delay constraint less - 0.000ns skew and - 0.307ns CE_SET requirement (totaling 4.740ns) by 1.874ns - - Physical Path Details: - - Data path SLICE_101 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R9C16C.CLK to R9C16C.Q1 SLICE_101 (from PHI2_c) -ROUTE 1 0.986 R9C16C.Q1 to R9C15A.A1 Bank_7 -CTOF_DEL --- 0.495 R9C15A.A1 to R9C15A.F1 SLICE_100 -ROUTE 1 0.315 R9C15A.F1 to R9C15B.D1 n2277 -CTOF_DEL --- 0.495 R9C15B.D1 to R9C15B.F1 SLICE_74 -ROUTE 8 0.662 R9C15B.F1 to R9C14D.D1 n26 -CTOF_DEL --- 0.495 R9C14D.D1 to R9C14D.F1 SLICE_91 -ROUTE 1 0.626 R9C14D.F1 to R9C14C.D0 n2362 -CTOF_DEL --- 0.495 R9C14C.D0 to R9C14C.F0 SLICE_88 -ROUTE 3 0.445 R9C14C.F0 to R9C14C.C1 C1Submitted_N_237 -CTOF_DEL --- 0.495 R9C14C.C1 to R9C14C.F1 SLICE_88 -ROUTE 1 0.653 R9C14C.F1 to R9C14B.CE PHI2_N_120_enable_1 (to PHI2_c) - -------- - 6.614 (44.3% logic, 55.7% route), 6 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_101: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R9C16C.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R9C14B.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 1.803ns (weighted slack = -3.606ns) - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q Bank_i6 (from PHI2_c +) - Destination: FF Data in ADSubmitted_407 (to PHI2_c -) - - Delay: 6.565ns (37.0% logic, 63.0% route), 5 logic levels. - - Constraint Details: - - 6.565ns physical path delay SLICE_101 to SLICE_10 exceeds - 5.047ns delay constraint less - 0.000ns skew and - 0.285ns LSR_SET requirement (totaling 4.762ns) by 1.803ns - - Physical Path Details: - - Data path SLICE_101 to SLICE_10: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R9C16C.CLK to R9C16C.Q0 SLICE_101 (from PHI2_c) -ROUTE 1 0.986 R9C16C.Q0 to R9C14A.A0 Bank_6 -CTOF_DEL --- 0.495 R9C14A.A0 to R9C14A.F0 SLICE_68 -ROUTE 1 0.766 R9C14A.F0 to R9C15B.C1 n2287 -CTOF_DEL --- 0.495 R9C15B.C1 to R9C15B.F1 SLICE_74 -ROUTE 8 0.662 R9C15B.F1 to R9C14D.D1 n26 -CTOF_DEL --- 0.495 R9C14D.D1 to R9C14D.F1 SLICE_91 -ROUTE 1 0.626 R9C14D.F1 to R9C14C.D0 n2362 -CTOF_DEL --- 0.495 R9C14C.D0 to R9C14C.F0 SLICE_88 -ROUTE 3 1.093 R9C14C.F0 to R10C14B.LSR C1Submitted_N_237 (to PHI2_c) - -------- - 6.565 (37.0% logic, 63.0% route), 5 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_101: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R9C16C.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_10: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R10C14B.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 1.803ns (weighted slack = -3.606ns) - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q Bank_i6 (from PHI2_c +) - Destination: FF Data in C1Submitted_406 (to PHI2_c -) - - Delay: 6.565ns (37.0% logic, 63.0% route), 5 logic levels. - - Constraint Details: - - 6.565ns physical path delay SLICE_101 to SLICE_15 exceeds - 5.047ns delay constraint less - 0.000ns skew and - 0.285ns LSR_SET requirement (totaling 4.762ns) by 1.803ns - - Physical Path Details: - - Data path SLICE_101 to SLICE_15: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R9C16C.CLK to R9C16C.Q0 SLICE_101 (from PHI2_c) -ROUTE 1 0.986 R9C16C.Q0 to R9C14A.A0 Bank_6 -CTOF_DEL --- 0.495 R9C14A.A0 to R9C14A.F0 SLICE_68 -ROUTE 1 0.766 R9C14A.F0 to R9C15B.C1 n2287 -CTOF_DEL --- 0.495 R9C15B.C1 to R9C15B.F1 SLICE_74 -ROUTE 8 0.662 R9C15B.F1 to R9C14D.D1 n26 -CTOF_DEL --- 0.495 R9C14D.D1 to R9C14D.F1 SLICE_91 -ROUTE 1 0.626 R9C14D.F1 to R9C14C.D0 n2362 -CTOF_DEL --- 0.495 R9C14C.D0 to R9C14C.F0 SLICE_88 -ROUTE 3 1.093 R9C14C.F0 to R10C14C.LSR C1Submitted_N_237 (to PHI2_c) - -------- - 6.565 (37.0% logic, 63.0% route), 5 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_101: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R9C16C.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_15: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R10C14C.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 1.765ns (weighted slack = -3.530ns) - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q Bank_i1 (from PHI2_c +) - Destination: FF Data in ADSubmitted_407 (to PHI2_c -) - - Delay: 6.527ns (37.3% logic, 62.7% route), 5 logic levels. - - Constraint Details: - - 6.527ns physical path delay SLICE_93 to SLICE_10 exceeds - 5.047ns delay constraint less - 0.000ns skew and - 0.285ns LSR_SET requirement (totaling 4.762ns) by 1.765ns - - Physical Path Details: - - Data path SLICE_93 to SLICE_10: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R9C16A.CLK to R9C16A.Q1 SLICE_93 (from PHI2_c) -ROUTE 1 0.744 R9C16A.Q1 to R9C15C.C1 Bank_1 -CTOF_DEL --- 0.495 R9C15C.C1 to R9C15C.F1 SLICE_99 -ROUTE 2 0.635 R9C15C.F1 to R9C15D.D1 n22 -CTOF_DEL --- 0.495 R9C15D.D1 to R9C15D.F1 SLICE_79 -ROUTE 7 0.997 R9C15D.F1 to R9C14D.A1 n2369 -CTOF_DEL --- 0.495 R9C14D.A1 to R9C14D.F1 SLICE_91 -ROUTE 1 0.626 R9C14D.F1 to R9C14C.D0 n2362 -CTOF_DEL --- 0.495 R9C14C.D0 to R9C14C.F0 SLICE_88 -ROUTE 3 1.093 R9C14C.F0 to R10C14B.LSR C1Submitted_N_237 (to PHI2_c) - -------- - 6.527 (37.3% logic, 62.7% route), 5 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_93: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R9C16A.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_10: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R10C14B.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 1.765ns (weighted slack = -3.530ns) - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q Bank_i1 (from PHI2_c +) - Destination: FF Data in C1Submitted_406 (to PHI2_c -) - - Delay: 6.527ns (37.3% logic, 62.7% route), 5 logic levels. - - Constraint Details: - - 6.527ns physical path delay SLICE_93 to SLICE_15 exceeds - 5.047ns delay constraint less - 0.000ns skew and - 0.285ns LSR_SET requirement (totaling 4.762ns) by 1.765ns - - Physical Path Details: - - Data path SLICE_93 to SLICE_15: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R9C16A.CLK to R9C16A.Q1 SLICE_93 (from PHI2_c) -ROUTE 1 0.744 R9C16A.Q1 to R9C15C.C1 Bank_1 -CTOF_DEL --- 0.495 R9C15C.C1 to R9C15C.F1 SLICE_99 -ROUTE 2 0.635 R9C15C.F1 to R9C15D.D1 n22 -CTOF_DEL --- 0.495 R9C15D.D1 to R9C15D.F1 SLICE_79 -ROUTE 7 0.997 R9C15D.F1 to R9C14D.A1 n2369 -CTOF_DEL --- 0.495 R9C14D.A1 to R9C14D.F1 SLICE_91 -ROUTE 1 0.626 R9C14D.F1 to R9C14C.D0 n2362 -CTOF_DEL --- 0.495 R9C14C.D0 to R9C14C.F0 SLICE_88 -ROUTE 3 1.093 R9C14C.F0 to R10C14C.LSR C1Submitted_N_237 (to PHI2_c) - -------- - 6.527 (37.3% logic, 62.7% route), 5 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_93: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R9C16A.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_15: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R10C14C.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - -Error: The following path exceeds requirements by 1.750ns (weighted slack = -3.500ns) - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q Bank_i6 (from PHI2_c +) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) - - Delay: 6.490ns (37.5% logic, 62.5% route), 5 logic levels. - - Constraint Details: - - 6.490ns physical path delay SLICE_101 to SLICE_19 exceeds - 5.047ns delay constraint less - 0.000ns skew and - 0.307ns CE_SET requirement (totaling 4.740ns) by 1.750ns - - Physical Path Details: - - Data path SLICE_101 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R9C16C.CLK to R9C16C.Q0 SLICE_101 (from PHI2_c) -ROUTE 1 0.986 R9C16C.Q0 to R9C14A.A0 Bank_6 -CTOF_DEL --- 0.495 R9C14A.A0 to R9C14A.F0 SLICE_68 -ROUTE 1 0.766 R9C14A.F0 to R9C15B.C1 n2287 -CTOF_DEL --- 0.495 R9C15B.C1 to R9C15B.F1 SLICE_74 -ROUTE 8 0.688 R9C15B.F1 to R10C15C.D0 n26 -CTOF_DEL --- 0.495 R10C15C.D0 to R10C15C.F0 SLICE_104 -ROUTE 2 0.965 R10C15C.F0 to R9C14C.D1 n2363 -CTOF_DEL --- 0.495 R9C14C.D1 to R9C14C.F1 SLICE_88 -ROUTE 1 0.653 R9C14C.F1 to R9C14B.CE PHI2_N_120_enable_1 (to PHI2_c) - -------- - 6.490 (37.5% logic, 62.5% route), 5 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_101: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R9C16C.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 3.498 8.PADDI to R9C14B.CLK PHI2_c - -------- - 3.498 (0.0% logic, 100.0% route), 0 logic levels. - -Warning: 67.833MHz is the maximum frequency for this preference. - -Report Summary --------------- ----------------------------------------------------------------------------- -Preference | Constraint| Actual|Levels ----------------------------------------------------------------------------- - | | | -FREQUENCY NET "RCLK_c" 299.401000 MHz ; | 299.401 MHz| 174.216 MHz| 5 * - | | | -FREQUENCY NET "PHI2_c" 99.079000 MHz ; | 99.079 MHz| 67.833 MHz| 6 * - | | | ----------------------------------------------------------------------------- - - -2 preferences(marked by "*" above) not met. - ----------------------------------------------------------------------------- -Critical Nets | Loads| Errors| % of total ----------------------------------------------------------------------------- -n26 | 8| 64| 19.10% - | | | -n1996 | 1| 49| 14.63% - | | | -n1997 | 1| 46| 13.73% - | | | -n1995 | 1| 45| 13.43% - | | | -n1998 | 1| 38| 11.34% - | | | -n1994 | 1| 37| 11.04% - | | | ----------------------------------------------------------------------------- - - -Clock Domains Analysis ------------------------- - -Found 4 clocks: - -Clock Domain: nCRAS_c Source: nCRAS.PAD Loads: 9 - No transfer within this clock domain is found - -Clock Domain: nCCAS_c Source: nCCAS.PAD Loads: 6 - No transfer within this clock domain is found - -Clock Domain: RCLK_c Source: RCLK.PAD Loads: 40 - Covered under: FREQUENCY NET "RCLK_c" 299.401000 MHz ; - - Data transfers from: - Clock Domain: nCRAS_c Source: nCRAS.PAD - Not reported because source and destination domains are unrelated. - To report these transfers please refer to preference CLKSKEWDIFF to define - external clock skew between clock ports. - - Clock Domain: PHI2_c Source: PHI2.PAD - Not reported because source and destination domains are unrelated. - To report these transfers please refer to preference CLKSKEWDIFF to define - external clock skew between clock ports. - -Clock Domain: PHI2_c Source: PHI2.PAD Loads: 14 - Covered under: FREQUENCY NET "PHI2_c" 99.079000 MHz ; - - Data transfers from: - Clock Domain: RCLK_c Source: RCLK.PAD - Not reported because source and destination domains are unrelated. - To report these transfers please refer to preference CLKSKEWDIFF to define - external clock skew between clock ports. - - -Timing summary (Setup): ---------------- - -Timing errors: 335 Score: 391939 -Cumulative negative slack: 304509 - -Constraints cover 572 paths, 2 nets, and 409 connections (60.68% coverage) - --------------------------------------------------------------------------------- -Lattice TRACE Report - Hold, Version Diamond (64-bit) 3.12.1.454 -Tue Aug 15 05:22:16 2023 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. - -Report Information ------------------- -Command line: trce -v 10 -gt -sethld -sp 4 -sphld m -o RAM2GS_LCMXO2_1200HC_impl1.twr -gui -msgset D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/promote.xml RAM2GS_LCMXO2_1200HC_impl1.ncd RAM2GS_LCMXO2_1200HC_impl1.prf -Design file: ram2gs_lcmxo2_1200hc_impl1.ncd -Preference file: ram2gs_lcmxo2_1200hc_impl1.prf -Device,speed: LCMXO2-1200HC,m -Report level: verbose report, limited to 10 items per preference --------------------------------------------------------------------------------- - -Preference Summary - -
  • FREQUENCY NET "RCLK_c" 299.401000 MHz (0 errors)
  • 459 items scored, 0 timing errors detected. - -
  • FREQUENCY NET "PHI2_c" 99.079000 MHz (0 errors)
  • 113 items scored, 0 timing errors detected. - -BLOCK ASYNCPATHS -BLOCK RESETPATHS --------------------------------------------------------------------------------- - - - -================================================================================ -Preference: FREQUENCY NET "RCLK_c" 299.401000 MHz ; - 459 items scored, 0 timing errors detected. --------------------------------------------------------------------------------- - - -Passed: The following path meets requirements by 0.304ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q IS_FSM__i4 (from RCLK_c +) - Destination: FF Data in IS_FSM__i5 (to RCLK_c +) - - Delay: 0.285ns (46.7% logic, 53.3% route), 1 logic levels. - - Constraint Details: - - 0.285ns physical path delay SLICE_106 to SLICE_106 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.304ns - - Physical Path Details: - - Data path SLICE_106 to SLICE_106: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R10C13B.CLK to R10C13B.Q0 SLICE_106 (from RCLK_c) -ROUTE 1 0.152 R10C13B.Q0 to R10C13B.M1 n736 (to RCLK_c) - -------- - 0.285 (46.7% logic, 53.3% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_106: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R10C13B.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_106: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R10C13B.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.304ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q CASr_382 (from RCLK_c +) - Destination: FF Data in CASr2_383 (to RCLK_c +) - - Delay: 0.285ns (46.7% logic, 53.3% route), 1 logic levels. - - Constraint Details: - - 0.285ns physical path delay SLICE_16 to SLICE_16 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.304ns - - Physical Path Details: - - Data path SLICE_16 to SLICE_16: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R7C12B.CLK to R7C12B.Q0 SLICE_16 (from RCLK_c) -ROUTE 1 0.152 R7C12B.Q0 to R7C12B.M1 CASr (to RCLK_c) - -------- - 0.285 (46.7% logic, 53.3% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_16: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R7C12B.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_16: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R7C12B.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.304ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q IS_FSM__i8 (from RCLK_c +) - Destination: FF Data in IS_FSM__i9 (to RCLK_c +) - - Delay: 0.285ns (46.7% logic, 53.3% route), 1 logic levels. - - Constraint Details: - - 0.285ns physical path delay SLICE_75 to SLICE_75 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.304ns - - Physical Path Details: - - Data path SLICE_75 to SLICE_75: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R10C13D.CLK to R10C13D.Q0 SLICE_75 (from RCLK_c) -ROUTE 1 0.152 R10C13D.Q0 to R10C13D.M1 n732 (to RCLK_c) - -------- - 0.285 (46.7% logic, 53.3% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_75: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R10C13D.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_75: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R10C13D.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.304ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q IS_FSM__i12 (from RCLK_c +) - Destination: FF Data in IS_FSM__i13 (to RCLK_c +) - - Delay: 0.285ns (46.7% logic, 53.3% route), 1 logic levels. - - Constraint Details: - - 0.285ns physical path delay SLICE_78 to SLICE_78 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.304ns - - Physical Path Details: - - Data path SLICE_78 to SLICE_78: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R8C12B.CLK to R8C12B.Q0 SLICE_78 (from RCLK_c) -ROUTE 1 0.152 R8C12B.Q0 to R8C12B.M1 n728 (to RCLK_c) - -------- - 0.285 (46.7% logic, 53.3% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_78: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R8C12B.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_78: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R8C12B.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.304ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q IS_FSM__i14 (from RCLK_c +) - Destination: FF Data in IS_FSM__i15 (to RCLK_c +) - - Delay: 0.285ns (46.7% logic, 53.3% route), 1 logic levels. - - Constraint Details: - - 0.285ns physical path delay SLICE_81 to SLICE_81 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.304ns - - Physical Path Details: - - Data path SLICE_81 to SLICE_81: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R9C12A.CLK to R9C12A.Q0 SLICE_81 (from RCLK_c) -ROUTE 1 0.152 R9C12A.Q0 to R9C12A.M1 n726 (to RCLK_c) - -------- - 0.285 (46.7% logic, 53.3% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_81: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R9C12A.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_81: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R9C12A.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.304ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q IS_FSM__i2 (from RCLK_c +) - Destination: FF Data in IS_FSM__i3 (to RCLK_c +) - - Delay: 0.285ns (46.7% logic, 53.3% route), 1 logic levels. - - Constraint Details: - - 0.285ns physical path delay SLICE_84 to SLICE_84 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.304ns - - Physical Path Details: - - Data path SLICE_84 to SLICE_84: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R8C16C.CLK to R8C16C.Q0 SLICE_84 (from RCLK_c) -ROUTE 1 0.152 R8C16C.Q0 to R8C16C.M1 n738 (to RCLK_c) - -------- - 0.285 (46.7% logic, 53.3% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_84: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R8C16C.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_84: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R8C16C.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.304ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q IS_FSM__i6 (from RCLK_c +) - Destination: FF Data in IS_FSM__i7 (to RCLK_c +) - - Delay: 0.285ns (46.7% logic, 53.3% route), 1 logic levels. - - Constraint Details: - - 0.285ns physical path delay SLICE_97 to SLICE_97 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.304ns - - Physical Path Details: - - Data path SLICE_97 to SLICE_97: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R10C14A.CLK to R10C14A.Q0 SLICE_97 (from RCLK_c) -ROUTE 1 0.152 R10C14A.Q0 to R10C14A.M1 n734 (to RCLK_c) - -------- - 0.285 (46.7% logic, 53.3% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_97: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R10C14A.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_97: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R10C14A.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.306ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q RASr_379 (from RCLK_c +) - Destination: FF Data in RASr2_380 (to RCLK_c +) - - Delay: 0.287ns (46.3% logic, 53.7% route), 1 logic levels. - - Constraint Details: - - 0.287ns physical path delay SLICE_30 to SLICE_30 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.306ns - - Physical Path Details: - - Data path SLICE_30 to SLICE_30: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R8C13B.CLK to R8C13B.Q0 SLICE_30 (from RCLK_c) -ROUTE 2 0.154 R8C13B.Q0 to R8C13B.M1 RASr (to RCLK_c) - -------- - 0.287 (46.3% logic, 53.7% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_30: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R8C13B.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_30: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R8C13B.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.306ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q IS_FSM__i1 (from RCLK_c +) - Destination: FF Data in IS_FSM__i2 (to RCLK_c +) - - Delay: 0.287ns (46.3% logic, 53.7% route), 1 logic levels. - - Constraint Details: - - 0.287ns physical path delay SLICE_98 to SLICE_84 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.306ns - - Physical Path Details: - - Data path SLICE_98 to SLICE_84: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R8C16D.CLK to R8C16D.Q1 SLICE_98 (from RCLK_c) -ROUTE 4 0.154 R8C16D.Q1 to R8C16C.M0 nRCAS_N_165 (to RCLK_c) - -------- - 0.287 (46.3% logic, 53.7% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_98: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R8C16D.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_84: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R8C16C.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.306ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q IS_FSM__i0 (from RCLK_c +) - Destination: FF Data in IS_FSM__i1 (to RCLK_c +) - - Delay: 0.287ns (46.3% logic, 53.7% route), 1 logic levels. - - Constraint Details: - - 0.287ns physical path delay SLICE_98 to SLICE_98 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.306ns - - Physical Path Details: - - Data path SLICE_98 to SLICE_98: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R8C16D.CLK to R8C16D.Q0 SLICE_98 (from RCLK_c) -ROUTE 4 0.154 R8C16D.Q0 to R8C16D.M1 nRCS_N_139 (to RCLK_c) - -------- - 0.287 (46.3% logic, 53.7% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_98: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R8C16D.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_98: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.668 62.PADDI to R8C16D.CLK RCLK_c - -------- - 1.668 (0.0% logic, 100.0% route), 0 logic levels. - - -================================================================================ -Preference: FREQUENCY NET "PHI2_c" 99.079000 MHz ; - 113 items scored, 0 timing errors detected. --------------------------------------------------------------------------------- - - -Passed: The following path meets requirements by 0.379ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q C1Submitted_406 (from PHI2_c -) - Destination: FF Data in C1Submitted_406 (to PHI2_c -) - - Delay: 0.366ns (63.9% logic, 36.1% route), 2 logic levels. - - Constraint Details: - - 0.366ns physical path delay SLICE_15 to SLICE_15 meets - -0.013ns DIN_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.013ns) by 0.379ns - - Physical Path Details: - - Data path SLICE_15 to SLICE_15: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R10C14C.CLK to R10C14C.Q0 SLICE_15 (from PHI2_c) -ROUTE 2 0.132 R10C14C.Q0 to R10C14C.A0 C1Submitted -CTOF_DEL --- 0.101 R10C14C.A0 to R10C14C.F0 SLICE_15 -ROUTE 1 0.000 R10C14C.F0 to R10C14C.DI0 n1398 (to PHI2_c) - -------- - 0.366 (63.9% logic, 36.1% route), 2 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_15: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R10C14C.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_15: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R10C14C.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.629ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q ADSubmitted_407 (from PHI2_c -) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) - - Delay: 0.601ns (38.9% logic, 61.1% route), 2 logic levels. - - Constraint Details: - - 0.601ns physical path delay SLICE_10 to SLICE_19 meets - -0.028ns CE_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.028ns) by 0.629ns - - Physical Path Details: - - Data path SLICE_10 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R10C14B.CLK to R10C14B.Q0 SLICE_10 (from PHI2_c) -ROUTE 1 0.224 R10C14B.Q0 to R9C14C.B1 ADSubmitted -CTOF_DEL --- 0.101 R9C14C.B1 to R9C14C.F1 SLICE_88 -ROUTE 1 0.143 R9C14C.F1 to R9C14B.CE PHI2_N_120_enable_1 (to PHI2_c) - -------- - 0.601 (38.9% logic, 61.1% route), 2 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_10: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R10C14B.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R9C14B.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.715ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q CmdEnable_405 (from PHI2_c -) - Destination: FF Data in XOR8MEG_408 (to PHI2_c -) - - Delay: 0.687ns (34.1% logic, 65.9% route), 2 logic levels. - - Constraint Details: - - 0.687ns physical path delay SLICE_19 to SLICE_50 meets - -0.028ns CE_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.028ns) by 0.715ns - - Physical Path Details: - - Data path SLICE_19 to SLICE_50: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R9C14B.CLK to R9C14B.Q0 SLICE_19 (from PHI2_c) -ROUTE 2 0.310 R9C14B.Q0 to R10C15B.B1 CmdEnable -CTOF_DEL --- 0.101 R10C15B.B1 to R10C15B.F1 SLICE_83 -ROUTE 1 0.143 R10C15B.F1 to R10C15D.CE PHI2_N_120_enable_3 (to PHI2_c) - -------- - 0.687 (34.1% logic, 65.9% route), 2 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R9C14B.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_50: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R10C15D.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.873ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q CmdEnable_405 (from PHI2_c -) - Destination: FF Data in CmdUFMCS_412 (to PHI2_c -) - FF CmdUFMCLK_413 - - Delay: 0.845ns (39.6% logic, 60.4% route), 3 logic levels. - - Constraint Details: - - 0.845ns physical path delay SLICE_19 to SLICE_100 meets - -0.028ns CE_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.028ns) by 0.873ns - - Physical Path Details: - - Data path SLICE_19 to SLICE_100: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R9C14B.CLK to R9C14B.Q0 SLICE_19 (from PHI2_c) -ROUTE 2 0.224 R9C14B.Q0 to R10C15A.C0 CmdEnable -CTOF_DEL --- 0.101 R10C15A.C0 to R10C15A.F0 SLICE_73 -ROUTE 2 0.138 R10C15A.F0 to R10C15A.C1 n2204 -CTOF_DEL --- 0.101 R10C15A.C1 to R10C15A.F1 SLICE_73 -ROUTE 2 0.148 R10C15A.F1 to R9C15A.CE PHI2_N_120_enable_8 (to PHI2_c) - -------- - 0.845 (39.6% logic, 60.4% route), 3 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R9C14B.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_100: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R9C15A.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.873ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q CmdEnable_405 (from PHI2_c -) - Destination: FF Data in CmdUFMSDI_414 (to PHI2_c -) - - Delay: 0.845ns (39.6% logic, 60.4% route), 3 logic levels. - - Constraint Details: - - 0.845ns physical path delay SLICE_19 to SLICE_99 meets - -0.028ns CE_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.028ns) by 0.873ns - - Physical Path Details: - - Data path SLICE_19 to SLICE_99: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R9C14B.CLK to R9C14B.Q0 SLICE_19 (from PHI2_c) -ROUTE 2 0.224 R9C14B.Q0 to R10C15A.C0 CmdEnable -CTOF_DEL --- 0.101 R10C15A.C0 to R10C15A.F0 SLICE_73 -ROUTE 2 0.138 R10C15A.F0 to R10C15A.C1 n2204 -CTOF_DEL --- 0.101 R10C15A.C1 to R10C15A.F1 SLICE_73 -ROUTE 2 0.148 R10C15A.F1 to R9C15C.CE PHI2_N_120_enable_8 (to PHI2_c) - -------- - 0.845 (39.6% logic, 60.4% route), 3 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R9C14B.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_99: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R9C15C.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 1.252ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q C1Submitted_406 (from PHI2_c -) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) - - Delay: 1.224ns (35.6% logic, 64.4% route), 4 logic levels. - - Constraint Details: - - 1.224ns physical path delay SLICE_15 to SLICE_19 meets - -0.028ns CE_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.028ns) by 1.252ns - - Physical Path Details: - - Data path SLICE_15 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R10C14C.CLK to R10C14C.Q0 SLICE_15 (from PHI2_c) -ROUTE 2 0.212 R10C14C.Q0 to R10C14D.A1 C1Submitted -CTOF_DEL --- 0.101 R10C14D.A1 to R10C14D.F1 SLICE_77 -ROUTE 1 0.222 R10C14D.F1 to R10C14A.B1 n2210 -CTOF_DEL --- 0.101 R10C14A.B1 to R10C14A.F1 SLICE_97 -ROUTE 1 0.211 R10C14A.F1 to R9C14C.A1 n7_adj_5 -CTOF_DEL --- 0.101 R9C14C.A1 to R9C14C.F1 SLICE_88 -ROUTE 1 0.143 R9C14C.F1 to R9C14B.CE PHI2_N_120_enable_1 (to PHI2_c) - -------- - 1.224 (35.6% logic, 64.4% route), 4 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_15: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R10C14C.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R9C14B.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 1.277ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q CmdEnable_405 (from PHI2_c -) - Destination: FF Data in CmdSubmitted_411 (to PHI2_c -) - - Delay: 1.249ns (34.9% logic, 65.1% route), 4 logic levels. - - Constraint Details: - - 1.249ns physical path delay SLICE_19 to SLICE_20 meets - -0.028ns CE_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.028ns) by 1.277ns - - Physical Path Details: - - Data path SLICE_19 to SLICE_20: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R9C14B.CLK to R9C14B.Q0 SLICE_19 (from PHI2_c) -ROUTE 2 0.224 R9C14B.Q0 to R10C15A.C0 CmdEnable -CTOF_DEL --- 0.101 R10C15A.C0 to R10C15A.F0 SLICE_73 -ROUTE 2 0.225 R10C15A.F0 to R9C15B.B0 n2204 -CTOF_DEL --- 0.101 R9C15B.B0 to R9C15B.F0 SLICE_74 -ROUTE 2 0.221 R9C15B.F0 to R9C17A.D1 n2220 -CTOF_DEL --- 0.101 R9C17A.D1 to R9C17A.F1 SLICE_89 -ROUTE 1 0.143 R9C17A.F1 to R9C17D.CE PHI2_N_120_enable_7 (to PHI2_c) - -------- - 1.249 (34.9% logic, 65.1% route), 4 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R9C14B.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_20: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R9C17D.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 1.277ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q CmdEnable_405 (from PHI2_c -) - Destination: FF Data in Cmdn8MEGEN_410 (to PHI2_c -) - - Delay: 1.249ns (34.9% logic, 65.1% route), 4 logic levels. - - Constraint Details: - - 1.249ns physical path delay SLICE_19 to SLICE_24 meets - -0.028ns CE_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.028ns) by 1.277ns - - Physical Path Details: - - Data path SLICE_19 to SLICE_24: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R9C14B.CLK to R9C14B.Q0 SLICE_19 (from PHI2_c) -ROUTE 2 0.224 R9C14B.Q0 to R10C15A.C0 CmdEnable -CTOF_DEL --- 0.101 R10C15A.C0 to R10C15A.F0 SLICE_73 -ROUTE 2 0.225 R10C15A.F0 to R9C15B.B0 n2204 -CTOF_DEL --- 0.101 R9C15B.B0 to R9C15B.F0 SLICE_74 -ROUTE 2 0.221 R9C15B.F0 to R9C17A.D0 n2220 -CTOF_DEL --- 0.101 R9C17A.D0 to R9C17A.F0 SLICE_89 -ROUTE 1 0.143 R9C17A.F0 to R9C17C.CE PHI2_N_120_enable_6 (to PHI2_c) - -------- - 1.249 (34.9% logic, 65.1% route), 4 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R9C14B.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_24: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R9C17C.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 5.431ns (weighted slack = 10.862ns) - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q XOR8MEG_408 (from PHI2_c -) - Destination: FF Data in RA11_385 (to PHI2_c +) - - Delay: 0.371ns (63.1% logic, 36.9% route), 2 logic levels. - - Constraint Details: - - 0.371ns physical path delay SLICE_50 to SLICE_33 meets - -0.013ns DIN_HLD and - -5.047ns delay constraint less - 0.000ns skew requirement (totaling -5.060ns) by 5.431ns - - Physical Path Details: - - Data path SLICE_50 to SLICE_33: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R10C15D.CLK to R10C15D.Q0 SLICE_50 (from PHI2_c) -ROUTE 1 0.137 R10C15D.Q0 to R10C16A.C0 XOR8MEG -CTOF_DEL --- 0.101 R10C16A.C0 to R10C16A.F0 SLICE_33 -ROUTE 1 0.000 R10C16A.F0 to R10C16A.DI0 RA11_N_184 (to PHI2_c) - -------- - 0.371 (63.1% logic, 36.9% route), 2 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_50: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R10C15D.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_33: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R10C16A.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 5.992ns (weighted slack = 11.984ns) - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q Bank_i0 (from PHI2_c +) - Destination: FF Data in CmdUFMCS_412 (to PHI2_c -) - FF CmdUFMCLK_413 - - Delay: 0.917ns (47.5% logic, 52.5% route), 4 logic levels. - - Constraint Details: - - 0.917ns physical path delay SLICE_93 to SLICE_100 meets - -0.028ns CE_HLD and - -5.047ns delay constraint less - 0.000ns skew requirement (totaling -5.075ns) by 5.992ns - - Physical Path Details: - - Data path SLICE_93 to SLICE_100: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R9C16A.CLK to R9C16A.Q0 SLICE_93 (from PHI2_c) -ROUTE 1 0.138 R9C16A.Q0 to R9C15A.C1 Bank_0 -CTOF_DEL --- 0.101 R9C15A.C1 to R9C15A.F1 SLICE_100 -ROUTE 1 0.053 R9C15A.F1 to R9C15B.D1 n2277 -CTOF_DEL --- 0.101 R9C15B.D1 to R9C15B.F1 SLICE_74 -ROUTE 8 0.142 R9C15B.F1 to R10C15A.D1 n26 -CTOF_DEL --- 0.101 R10C15A.D1 to R10C15A.F1 SLICE_73 -ROUTE 2 0.148 R10C15A.F1 to R9C15A.CE PHI2_N_120_enable_8 (to PHI2_c) - -------- - 0.917 (47.5% logic, 52.5% route), 4 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_93: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R9C16A.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_100: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.203 8.PADDI to R9C15A.CLK PHI2_c - -------- - 1.203 (0.0% logic, 100.0% route), 0 logic levels. - -Report Summary --------------- ----------------------------------------------------------------------------- -Preference(MIN Delays) | Constraint| Actual|Levels ----------------------------------------------------------------------------- - | | | -FREQUENCY NET "RCLK_c" 299.401000 MHz ; | 0.000 ns| 0.304 ns| 1 - | | | -FREQUENCY NET "PHI2_c" 99.079000 MHz ; | 0.000 ns| 0.379 ns| 2 - | | | ----------------------------------------------------------------------------- - - -All preferences were met. - - -Clock Domains Analysis ------------------------- - -Found 4 clocks: - -Clock Domain: nCRAS_c Source: nCRAS.PAD Loads: 9 - No transfer within this clock domain is found - -Clock Domain: nCCAS_c Source: nCCAS.PAD Loads: 6 - No transfer within this clock domain is found - -Clock Domain: RCLK_c Source: RCLK.PAD Loads: 40 - Covered under: FREQUENCY NET "RCLK_c" 299.401000 MHz ; - - Data transfers from: - Clock Domain: nCRAS_c Source: nCRAS.PAD - Not reported because source and destination domains are unrelated. - To report these transfers please refer to preference CLKSKEWDIFF to define - external clock skew between clock ports. - - Clock Domain: PHI2_c Source: PHI2.PAD - Not reported because source and destination domains are unrelated. - To report these transfers please refer to preference CLKSKEWDIFF to define - external clock skew between clock ports. - -Clock Domain: PHI2_c Source: PHI2.PAD Loads: 14 - Covered under: FREQUENCY NET "PHI2_c" 99.079000 MHz ; - - Data transfers from: - Clock Domain: RCLK_c Source: RCLK.PAD - Not reported because source and destination domains are unrelated. - To report these transfers please refer to preference CLKSKEWDIFF to define - external clock skew between clock ports. - - -Timing summary (Hold): ---------------- - -Timing errors: 0 Score: 0 -Cumulative negative slack: 0 - -Constraints cover 572 paths, 2 nets, and 409 connections (60.68% coverage) - - - -Timing summary (Setup and Hold): ---------------- - -Timing errors: 335 (setup), 0 (hold) -Score: 391939 (setup), 0 (hold) -Cumulative negative slack: 304509 (304509+0) --------------------------------------------------------------------------------- - --------------------------------------------------------------------------------- - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_drc.log b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_drc.log deleted file mode 100644 index d48a448..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_drc.log +++ /dev/null @@ -1,16 +0,0 @@ -Results of NGD DRC are available in RAM2GS_drc.log. -Loading NGL library 'C:/lscc/diamond/3.12/ispfpga/xo2c00a/data/xo2alib.ngl'... -Loading NGL library 'C:/lscc/diamond/3.12/ispfpga/xo2c00/data/xo2clib.ngl'... -Loading NGL library 'C:/lscc/diamond/3.12/ispfpga/mg5g00/data/mg5glib.ngl'... -Loading NGL library 'C:/lscc/diamond/3.12/ispfpga/or5g00/data/orc5glib.ngl'... - - -Running DRC... - -DRC complete with no errors or warnings - -Design Results: - 309 blocks expanded -completed the first expansion -All blocks are expanded and NGD expansion is successful. -Writing NGD file RAM2GS_LCMXO2_1200HC_impl1.ngd. diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_lse.twr b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_lse.twr deleted file mode 100644 index ccd5368..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_lse.twr +++ /dev/null @@ -1,297 +0,0 @@ --------------------------------------------------------------------------------- -Lattice Synthesis Timing Report, Version -Tue Aug 15 05:03:26 2023 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. - -Report Information ------------------- -Design: RAM2GS -Constraint file: -Report level: verbose report, limited to 3 items per constraint --------------------------------------------------------------------------------- - - - -================================================================================ -Constraint: create_clock -period 5.000000 -name clk3 [get_nets nCCAS_c] - 0 items scored, 0 timing errors detected. --------------------------------------------------------------------------------- - - -================================================================================ -Constraint: create_clock -period 5.000000 -name clk2 [get_nets nCRAS_c] - 0 items scored, 0 timing errors detected. --------------------------------------------------------------------------------- - - -================================================================================ -Constraint: create_clock -period 5.000000 -name clk1 [get_nets PHI2_c] - 122 items scored, 119 timing errors detected. --------------------------------------------------------------------------------- - - -Error: The following path violates requirements by 7.418ns - - Logical Details: Cell type Pin type Cell name (clock net +/-) - - Source: FD1S3AX CK Bank_i1 (from PHI2_c +) - Destination: FD1P3AX SP CmdEnable_405 (to PHI2_c -) - - Delay: 9.633ns (30.2% logic, 69.8% route), 6 logic levels. - - Constraint Details: - - 9.633ns data_path Bank_i1 to CmdEnable_405 violates - 2.500ns delay constraint less - 0.285ns LCE_S requirement (totaling 2.215ns) by 7.418ns - - Path Details: Bank_i1 to CmdEnable_405 - - Name Fanout Delay (ns) Pins Resource(Cell.Net) -L_CO --- 0.444 CK to Q Bank_i1 (from PHI2_c) -Route 1 e 0.941 Bank[1] -LUT4 --- 0.493 D to Z i8_4_lut -Route 2 e 1.141 n22 -LUT4 --- 0.493 B to Z i11_3_lut_rep_20 -Route 7 e 1.502 n2369 -LUT4 --- 0.493 A to Z i1_2_lut_rep_13_3_lut -Route 1 e 0.941 n2362 -LUT4 --- 0.493 D to Z i1_4_lut_adj_13 -Route 3 e 1.258 C1Submitted_N_237 -LUT4 --- 0.493 C to Z i34_4_lut -Route 1 e 0.941 PHI2_N_120_enable_1 - -------- - 9.633 (30.2% logic, 69.8% route), 6 logic levels. - - -Error: The following path violates requirements by 7.418ns - - Logical Details: Cell type Pin type Cell name (clock net +/-) - - Source: FD1S3AX CK Bank_i4 (from PHI2_c +) - Destination: FD1P3AX SP CmdEnable_405 (to PHI2_c -) - - Delay: 9.633ns (30.2% logic, 69.8% route), 6 logic levels. - - Constraint Details: - - 9.633ns data_path Bank_i4 to CmdEnable_405 violates - 2.500ns delay constraint less - 0.285ns LCE_S requirement (totaling 2.215ns) by 7.418ns - - Path Details: Bank_i4 to CmdEnable_405 - - Name Fanout Delay (ns) Pins Resource(Cell.Net) -L_CO --- 0.444 CK to Q Bank_i4 (from PHI2_c) -Route 1 e 0.941 Bank[4] -LUT4 --- 0.493 C to Z i8_4_lut -Route 2 e 1.141 n22 -LUT4 --- 0.493 B to Z i11_3_lut_rep_20 -Route 7 e 1.502 n2369 -LUT4 --- 0.493 A to Z i1_2_lut_rep_13_3_lut -Route 1 e 0.941 n2362 -LUT4 --- 0.493 D to Z i1_4_lut_adj_13 -Route 3 e 1.258 C1Submitted_N_237 -LUT4 --- 0.493 C to Z i34_4_lut -Route 1 e 0.941 PHI2_N_120_enable_1 - -------- - 9.633 (30.2% logic, 69.8% route), 6 logic levels. - - -Error: The following path violates requirements by 7.256ns - - Logical Details: Cell type Pin type Cell name (clock net +/-) - - Source: FD1S3AX CK Bank_i3 (from PHI2_c +) - Destination: FD1P3AX SP CmdEnable_405 (to PHI2_c -) - - Delay: 9.471ns (30.7% logic, 69.3% route), 6 logic levels. - - Constraint Details: - - 9.471ns data_path Bank_i3 to CmdEnable_405 violates - 2.500ns delay constraint less - 0.285ns LCE_S requirement (totaling 2.215ns) by 7.256ns - - Path Details: Bank_i3 to CmdEnable_405 - - Name Fanout Delay (ns) Pins Resource(Cell.Net) -L_CO --- 0.444 CK to Q Bank_i3 (from PHI2_c) -Route 1 e 0.941 Bank[3] -LUT4 --- 0.493 B to Z i1989_2_lut -Route 1 e 0.941 n2287 -LUT4 --- 0.493 C to Z i12_4_lut -Route 8 e 1.540 n26 -LUT4 --- 0.493 B to Z i1_2_lut_rep_13_3_lut -Route 1 e 0.941 n2362 -LUT4 --- 0.493 D to Z i1_4_lut_adj_13 -Route 3 e 1.258 C1Submitted_N_237 -LUT4 --- 0.493 C to Z i34_4_lut -Route 1 e 0.941 PHI2_N_120_enable_1 - -------- - 9.471 (30.7% logic, 69.3% route), 6 logic levels. - -Warning: 9.918 ns is the maximum delay for this constraint. - - - -================================================================================ -Constraint: create_clock -period 5.000000 -name clk0 [get_nets RCLK_c] - 498 items scored, 186 timing errors detected. --------------------------------------------------------------------------------- - - -Error: The following path violates requirements by 3.319ns - - Logical Details: Cell type Pin type Cell name (clock net +/-) - - Source: FD1S3AX CK FS_610__i13 (from RCLK_c +) - Destination: FD1P3AY D nUFMCS_415 (to RCLK_c +) - - Delay: 8.159ns (29.6% logic, 70.4% route), 5 logic levels. - - Constraint Details: - - 8.159ns data_path FS_610__i13 to nUFMCS_415 violates - 5.000ns delay constraint less - 0.160ns L_S requirement (totaling 4.840ns) by 3.319ns - - Path Details: FS_610__i13 to nUFMCS_415 - - Name Fanout Delay (ns) Pins Resource(Cell.Net) -L_CO --- 0.444 CK to Q FS_610__i13 (from RCLK_c) -Route 3 e 1.315 FS[13] -LUT4 --- 0.493 B to Z i3_4_lut_adj_7 -Route 5 e 1.405 n10 -LUT4 --- 0.493 C to Z i1_2_lut_rep_19_3_lut -Route 2 e 1.141 n2368 -LUT4 --- 0.493 B to Z i1_2_lut_4_lut -Route 1 e 0.941 n64 -LUT4 --- 0.493 B to Z i1448_4_lut -Route 1 e 0.941 nUFMCS_N_199 - -------- - 8.159 (29.6% logic, 70.4% route), 5 logic levels. - - -Error: The following path violates requirements by 3.319ns - - Logical Details: Cell type Pin type Cell name (clock net +/-) - - Source: FD1S3AX CK FS_610__i15 (from RCLK_c +) - Destination: FD1P3AY D nUFMCS_415 (to RCLK_c +) - - Delay: 8.159ns (29.6% logic, 70.4% route), 5 logic levels. - - Constraint Details: - - 8.159ns data_path FS_610__i15 to nUFMCS_415 violates - 5.000ns delay constraint less - 0.160ns L_S requirement (totaling 4.840ns) by 3.319ns - - Path Details: FS_610__i15 to nUFMCS_415 - - Name Fanout Delay (ns) Pins Resource(Cell.Net) -L_CO --- 0.444 CK to Q FS_610__i15 (from RCLK_c) -Route 3 e 1.315 FS[15] -LUT4 --- 0.493 C to Z i3_4_lut_adj_7 -Route 5 e 1.405 n10 -LUT4 --- 0.493 C to Z i1_2_lut_rep_19_3_lut -Route 2 e 1.141 n2368 -LUT4 --- 0.493 B to Z i1_2_lut_4_lut -Route 1 e 0.941 n64 -LUT4 --- 0.493 B to Z i1448_4_lut -Route 1 e 0.941 nUFMCS_N_199 - -------- - 8.159 (29.6% logic, 70.4% route), 5 logic levels. - - -Error: The following path violates requirements by 3.319ns - - Logical Details: Cell type Pin type Cell name (clock net +/-) - - Source: FD1S3AX CK FS_610__i16 (from RCLK_c +) - Destination: FD1P3AY D nUFMCS_415 (to RCLK_c +) - - Delay: 8.159ns (29.6% logic, 70.4% route), 5 logic levels. - - Constraint Details: - - 8.159ns data_path FS_610__i16 to nUFMCS_415 violates - 5.000ns delay constraint less - 0.160ns L_S requirement (totaling 4.840ns) by 3.319ns - - Path Details: FS_610__i16 to nUFMCS_415 - - Name Fanout Delay (ns) Pins Resource(Cell.Net) -L_CO --- 0.444 CK to Q FS_610__i16 (from RCLK_c) -Route 3 e 1.315 FS[16] -LUT4 --- 0.493 D to Z i3_4_lut_adj_7 -Route 5 e 1.405 n10 -LUT4 --- 0.493 C to Z i1_2_lut_rep_19_3_lut -Route 2 e 1.141 n2368 -LUT4 --- 0.493 B to Z i1_2_lut_4_lut -Route 1 e 0.941 n64 -LUT4 --- 0.493 B to Z i1448_4_lut -Route 1 e 0.941 nUFMCS_N_199 - -------- - 8.159 (29.6% logic, 70.4% route), 5 logic levels. - -Warning: 8.319 ns is the maximum delay for this constraint. - - -Timing Report Summary --------------- --------------------------------------------------------------------------------- -Constraint | Constraint| Actual|Levels --------------------------------------------------------------------------------- - | | | -create_clock -period 5.000000 -name | | | -clk3 [get_nets nCCAS_c] | -| -| 0 - | | | -create_clock -period 5.000000 -name | | | -clk2 [get_nets nCRAS_c] | -| -| 0 - | | | -create_clock -period 5.000000 -name | | | -clk1 [get_nets PHI2_c] | 5.000 ns| 19.836 ns| 6 * - | | | -create_clock -period 5.000000 -name | | | -clk0 [get_nets RCLK_c] | 5.000 ns| 8.319 ns| 5 * - | | | --------------------------------------------------------------------------------- - - -2 constraints not met. - --------------------------------------------------------------------------------- -Critical Nets | Loads| Errors| % of total --------------------------------------------------------------------------------- -n26 | 8| 84| 27.54% - | | | -n1997 | 1| 36| 11.80% - | | | -n1996 | 1| 35| 11.48% - | | | -n1995 | 1| 33| 10.82% - | | | -n10 | 5| 32| 10.49% - | | | -n1998 | 1| 32| 10.49% - | | | --------------------------------------------------------------------------------- - - -Timing summary: ---------------- - -Timing errors: 305 Score: 1313492 - -Constraints cover 621 paths, 182 nets, and 471 connections (64.2% coverage) - - -Peak memory: 57921536 bytes, TRCE: 2363392 bytes, DLYMAN: 0 bytes -CPU_TIME_REPORT: 0 secs diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_lse_lsetwr.html b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_lse_lsetwr.html deleted file mode 100644 index 8da9b01..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_lse_lsetwr.html +++ /dev/null @@ -1,362 +0,0 @@ - -Lattice Synthesis Timing Report - - -
    Lattice Synthesis Timing Report
    ---------------------------------------------------------------------------------
    -Lattice Synthesis Timing Report, Version  
    -Tue Aug 15 05:03:26 2023
    -
    -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved.
    -Copyright (c) 1995 AT&T Corp.   All rights reserved.
    -Copyright (c) 1995-2001 Lucent Technologies Inc.  All rights reserved.
    -Copyright (c) 2001 Agere Systems   All rights reserved.
    -Copyright (c) 2002-2020 Lattice Semiconductor Corporation,  All rights reserved.
    -
    -Report Information
    -------------------
    -Design:     RAM2GS
    -Constraint file:  
    -Report level:    verbose report, limited to 3 items per constraint
    ---------------------------------------------------------------------------------
    -
    -
    -
    -================================================================================
    -Constraint: create_clock -period 5.000000 -name clk3 [get_nets nCCAS_c]
    -            0 items scored, 0 timing errors detected.
    ---------------------------------------------------------------------------------
    -
    -
    -================================================================================
    -Constraint: create_clock -period 5.000000 -name clk2 [get_nets nCRAS_c]
    -            0 items scored, 0 timing errors detected.
    ---------------------------------------------------------------------------------
    -
    -
    -================================================================================
    -Constraint: create_clock -period 5.000000 -name clk1 [get_nets PHI2_c]
    -            122 items scored, 119 timing errors detected.
    ---------------------------------------------------------------------------------
    -
    -
    -Error:  The following path violates requirements by 7.418ns
    -
    - Logical Details:  Cell type  Pin type       Cell name  (clock net +/-)
    -
    -   Source:         FD1S3AX    CK             Bank_i1  (from PHI2_c +)
    -   Destination:    FD1P3AX    SP             CmdEnable_405  (to PHI2_c -)
    -
    -   Delay:                   9.633ns  (30.2% logic, 69.8% route), 6 logic levels.
    -
    - Constraint Details:
    -
    -      9.633ns data_path Bank_i1 to CmdEnable_405 violates
    -      2.500ns delay constraint less
    -      0.285ns LCE_S requirement (totaling 2.215ns) by 7.418ns
    -
    - Path Details: Bank_i1 to CmdEnable_405
    -
    -   Name    Fanout   Delay (ns)          Pins               Resource(Cell.Net)
    -L_CO        ---     0.444             CK to Q              Bank_i1 (from PHI2_c)
    -Route         1   e 0.941                                  Bank[1]
    -LUT4        ---     0.493              D to Z              i8_4_lut
    -Route         2   e 1.141                                  n22
    -LUT4        ---     0.493              B to Z              i11_3_lut_rep_20
    -Route         7   e 1.502                                  n2369
    -LUT4        ---     0.493              A to Z              i1_2_lut_rep_13_3_lut
    -Route         1   e 0.941                                  n2362
    -LUT4        ---     0.493              D to Z              i1_4_lut_adj_13
    -Route         3   e 1.258                                  C1Submitted_N_237
    -LUT4        ---     0.493              C to Z              i34_4_lut
    -Route         1   e 0.941                                  PHI2_N_120_enable_1
    -                  --------
    -                    9.633  (30.2% logic, 69.8% route), 6 logic levels.
    -
    -
    -Error:  The following path violates requirements by 7.418ns
    -
    - Logical Details:  Cell type  Pin type       Cell name  (clock net +/-)
    -
    -   Source:         FD1S3AX    CK             Bank_i4  (from PHI2_c +)
    -   Destination:    FD1P3AX    SP             CmdEnable_405  (to PHI2_c -)
    -
    -   Delay:                   9.633ns  (30.2% logic, 69.8% route), 6 logic levels.
    -
    - Constraint Details:
    -
    -      9.633ns data_path Bank_i4 to CmdEnable_405 violates
    -      2.500ns delay constraint less
    -      0.285ns LCE_S requirement (totaling 2.215ns) by 7.418ns
    -
    - Path Details: Bank_i4 to CmdEnable_405
    -
    -   Name    Fanout   Delay (ns)          Pins               Resource(Cell.Net)
    -L_CO        ---     0.444             CK to Q              Bank_i4 (from PHI2_c)
    -Route         1   e 0.941                                  Bank[4]
    -LUT4        ---     0.493              C to Z              i8_4_lut
    -Route         2   e 1.141                                  n22
    -LUT4        ---     0.493              B to Z              i11_3_lut_rep_20
    -Route         7   e 1.502                                  n2369
    -LUT4        ---     0.493              A to Z              i1_2_lut_rep_13_3_lut
    -Route         1   e 0.941                                  n2362
    -LUT4        ---     0.493              D to Z              i1_4_lut_adj_13
    -Route         3   e 1.258                                  C1Submitted_N_237
    -LUT4        ---     0.493              C to Z              i34_4_lut
    -Route         1   e 0.941                                  PHI2_N_120_enable_1
    -                  --------
    -                    9.633  (30.2% logic, 69.8% route), 6 logic levels.
    -
    -
    -Error:  The following path violates requirements by 7.256ns
    -
    - Logical Details:  Cell type  Pin type       Cell name  (clock net +/-)
    -
    -   Source:         FD1S3AX    CK             Bank_i3  (from PHI2_c +)
    -   Destination:    FD1P3AX    SP             CmdEnable_405  (to PHI2_c -)
    -
    -   Delay:                   9.471ns  (30.7% logic, 69.3% route), 6 logic levels.
    -
    - Constraint Details:
    -
    -      9.471ns data_path Bank_i3 to CmdEnable_405 violates
    -      2.500ns delay constraint less
    -      0.285ns LCE_S requirement (totaling 2.215ns) by 7.256ns
    -
    - Path Details: Bank_i3 to CmdEnable_405
    -
    -   Name    Fanout   Delay (ns)          Pins               Resource(Cell.Net)
    -L_CO        ---     0.444             CK to Q              Bank_i3 (from PHI2_c)
    -Route         1   e 0.941                                  Bank[3]
    -LUT4        ---     0.493              B to Z              i1989_2_lut
    -Route         1   e 0.941                                  n2287
    -LUT4        ---     0.493              C to Z              i12_4_lut
    -Route         8   e 1.540                                  n26
    -LUT4        ---     0.493              B to Z              i1_2_lut_rep_13_3_lut
    -Route         1   e 0.941                                  n2362
    -LUT4        ---     0.493              D to Z              i1_4_lut_adj_13
    -Route         3   e 1.258                                  C1Submitted_N_237
    -LUT4        ---     0.493              C to Z              i34_4_lut
    -Route         1   e 0.941                                  PHI2_N_120_enable_1
    -                  --------
    -                    9.471  (30.7% logic, 69.3% route), 6 logic levels.
    -
    -Warning: 9.918 ns is the maximum delay for this constraint.
    -
    -
    -
    -================================================================================
    -Constraint: create_clock -period 5.000000 -name clk0 [get_nets RCLK_c]
    -            498 items scored, 186 timing errors detected.
    ---------------------------------------------------------------------------------
    -
    -
    -Error:  The following path violates requirements by 3.319ns
    -
    - Logical Details:  Cell type  Pin type       Cell name  (clock net +/-)
    -
    -   Source:         FD1S3AX    CK             FS_610__i13  (from RCLK_c +)
    -   Destination:    FD1P3AY    D              nUFMCS_415  (to RCLK_c +)
    -
    -   Delay:                   8.159ns  (29.6% logic, 70.4% route), 5 logic levels.
    -
    - Constraint Details:
    -
    -      8.159ns data_path FS_610__i13 to nUFMCS_415 violates
    -      5.000ns delay constraint less
    -      0.160ns L_S requirement (totaling 4.840ns) by 3.319ns
    -
    - Path Details: FS_610__i13 to nUFMCS_415
    -
    -   Name    Fanout   Delay (ns)          Pins               Resource(Cell.Net)
    -L_CO        ---     0.444             CK to Q              FS_610__i13 (from RCLK_c)
    -Route         3   e 1.315                                  FS[13]
    -LUT4        ---     0.493              B to Z              i3_4_lut_adj_7
    -Route         5   e 1.405                                  n10
    -LUT4        ---     0.493              C to Z              i1_2_lut_rep_19_3_lut
    -Route         2   e 1.141                                  n2368
    -LUT4        ---     0.493              B to Z              i1_2_lut_4_lut
    -Route         1   e 0.941                                  n64
    -LUT4        ---     0.493              B to Z              i1448_4_lut
    -Route         1   e 0.941                                  nUFMCS_N_199
    -                  --------
    -                    8.159  (29.6% logic, 70.4% route), 5 logic levels.
    -
    -
    -Error:  The following path violates requirements by 3.319ns
    -
    - Logical Details:  Cell type  Pin type       Cell name  (clock net +/-)
    -
    -   Source:         FD1S3AX    CK             FS_610__i15  (from RCLK_c +)
    -   Destination:    FD1P3AY    D              nUFMCS_415  (to RCLK_c +)
    -
    -   Delay:                   8.159ns  (29.6% logic, 70.4% route), 5 logic levels.
    -
    - Constraint Details:
    -
    -      8.159ns data_path FS_610__i15 to nUFMCS_415 violates
    -      5.000ns delay constraint less
    -      0.160ns L_S requirement (totaling 4.840ns) by 3.319ns
    -
    - Path Details: FS_610__i15 to nUFMCS_415
    -
    -   Name    Fanout   Delay (ns)          Pins               Resource(Cell.Net)
    -L_CO        ---     0.444             CK to Q              FS_610__i15 (from RCLK_c)
    -Route         3   e 1.315                                  FS[15]
    -LUT4        ---     0.493              C to Z              i3_4_lut_adj_7
    -Route         5   e 1.405                                  n10
    -LUT4        ---     0.493              C to Z              i1_2_lut_rep_19_3_lut
    -Route         2   e 1.141                                  n2368
    -LUT4        ---     0.493              B to Z              i1_2_lut_4_lut
    -Route         1   e 0.941                                  n64
    -LUT4        ---     0.493              B to Z              i1448_4_lut
    -Route         1   e 0.941                                  nUFMCS_N_199
    -                  --------
    -                    8.159  (29.6% logic, 70.4% route), 5 logic levels.
    -
    -
    -Error:  The following path violates requirements by 3.319ns
    -
    - Logical Details:  Cell type  Pin type       Cell name  (clock net +/-)
    -
    -   Source:         FD1S3AX    CK             FS_610__i16  (from RCLK_c +)
    -   Destination:    FD1P3AY    D              nUFMCS_415  (to RCLK_c +)
    -
    -   Delay:                   8.159ns  (29.6% logic, 70.4% route), 5 logic levels.
    -
    - Constraint Details:
    -
    -      8.159ns data_path FS_610__i16 to nUFMCS_415 violates
    -      5.000ns delay constraint less
    -      0.160ns L_S requirement (totaling 4.840ns) by 3.319ns
    -
    - Path Details: FS_610__i16 to nUFMCS_415
    -
    -   Name    Fanout   Delay (ns)          Pins               Resource(Cell.Net)
    -L_CO        ---     0.444             CK to Q              FS_610__i16 (from RCLK_c)
    -Route         3   e 1.315                                  FS[16]
    -LUT4        ---     0.493              D to Z              i3_4_lut_adj_7
    -Route         5   e 1.405                                  n10
    -LUT4        ---     0.493              C to Z              i1_2_lut_rep_19_3_lut
    -Route         2   e 1.141                                  n2368
    -LUT4        ---     0.493              B to Z              i1_2_lut_4_lut
    -Route         1   e 0.941                                  n64
    -LUT4        ---     0.493              B to Z              i1448_4_lut
    -Route         1   e 0.941                                  nUFMCS_N_199
    -                  --------
    -                    8.159  (29.6% logic, 70.4% route), 5 logic levels.
    -
    -Warning: 8.319 ns is the maximum delay for this constraint.
    -
    -
    -Timing Report Summary
    ---------------
    ---------------------------------------------------------------------------------
    -Constraint                              |   Constraint|       Actual|Levels
    ---------------------------------------------------------------------------------
    -                                        |             |             |
    -create_clock -period 5.000000 -name     |             |             |
    -clk3 [get_nets nCCAS_c]                 |            -|            -|     0  
    -                                        |             |             |
    -create_clock -period 5.000000 -name     |             |             |
    -clk2 [get_nets nCRAS_c]                 |            -|            -|     0  
    -                                        |             |             |
    -create_clock -period 5.000000 -name     |             |             |
    -clk1 [get_nets PHI2_c]                  |     5.000 ns|    19.836 ns|     6 *
    -                                        |             |             |
    -create_clock -period 5.000000 -name     |             |             |
    -clk0 [get_nets RCLK_c]                  |     5.000 ns|     8.319 ns|     5 *
    -                                        |             |             |
    ---------------------------------------------------------------------------------
    -
    -
    -2 constraints not met.
    -
    ---------------------------------------------------------------------------------
    -Critical Nets                           |   Loads|  Errors| % of total
    ---------------------------------------------------------------------------------
    -n26                                     |       8|      84|     27.54%
    -                                        |        |        |
    -n1997                                   |       1|      36|     11.80%
    -                                        |        |        |
    -n1996                                   |       1|      35|     11.48%
    -                                        |        |        |
    -n1995                                   |       1|      33|     10.82%
    -                                        |        |        |
    -n10                                     |       5|      32|     10.49%
    -                                        |        |        |
    -n1998                                   |       1|      32|     10.49%
    -                                        |        |        |
    ---------------------------------------------------------------------------------
    -
    -
    -Timing summary:
    ----------------
    -
    -Timing errors: 305  Score: 1313492
    -
    -Constraints cover  621 paths, 182 nets, and 471 connections (64.2% coverage)
    -
    -
    -Peak memory: 57921536 bytes, TRCE: 2363392 bytes, DLYMAN: 0 bytes
    -CPU_TIME_REPORT: 0 secs 
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_prim.v b/CPLD/LCMXO2-1200HC/impl1/RAM2GS_prim.v deleted file mode 100644 index 28a3dbb..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/RAM2GS_prim.v +++ /dev/null @@ -1,802 +0,0 @@ -// Verilog netlist produced by program LSE : version Diamond (64-bit) 3.12.1.454 -// Netlist written on Tue Aug 15 05:03:26 2023 -// -// Verilog Description of module RAM2GS -// - -module RAM2GS (PHI2, MAin, CROW, Din, Dout, nCCAS, nCRAS, nFWE, - LED, RBA, RA, RD, nRCS, RCLK, RCKE, nRWE, nRRAS, - nRCAS, RDQMH, RDQML, nUFMCS, UFMCLK, UFMSDI, UFMSDO) /* synthesis syn_module_defined=1 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(1[8:14]) - input PHI2; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(8[8:12]) - input [9:0]MAin; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(35[14:18]) - input [1:0]CROW; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(34[14:18]) - input [7:0]Din; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(26[14:17]) - output [7:0]Dout; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(27[15:19]) - input nCCAS; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(11[8:13]) - input nCRAS; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(11[15:20]) - input nFWE; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(36[8:12]) - output LED; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(22[9:12]) - output [1:0]RBA; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(47[19:22]) - output [11:0]RA; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(52[16:18]) - inout [7:0]RD; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(60[14:16]) - output nRCS; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(46[13:17]) - input RCLK; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(41[8:12]) - output RCKE; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(45[13:17]) - output nRWE; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(46[45:49]) - output nRRAS; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(46[23:28]) - output nRCAS; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(46[34:39]) - output RDQMH; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(56[16:21]) - output RDQML; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(56[9:14]) - output nUFMCS; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(63[13:19]) - output UFMCLK; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(64[13:19]) - output UFMSDI; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(65[13:19]) - input UFMSDO; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(66[8:14]) - - wire PHI2_c /* synthesis is_clock=1, SET_AS_NETWORK=PHI2_c */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(8[8:12]) - wire nCCAS_c /* synthesis is_clock=1 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(11[8:13]) - wire nCRAS_c /* synthesis is_clock=1 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(11[15:20]) - wire RCLK_c /* synthesis SET_AS_NETWORK=RCLK_c, is_clock=1 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(41[8:12]) - wire nCCAS_N_3 /* synthesis is_inv_clock=1 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(27[15:19]) - wire PHI2_N_120 /* synthesis is_inv_clock=1 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(38[6:13]) - wire nCRAS_c__inv /* synthesis is_inv_clock=1 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(11[15:20]) - - wire GND_net, VCC_net, PHI2r, PHI2r2, PHI2r3, RASr, RASr2, - RASr3, CASr, CASr2, CASr3, FWEr, CBR, LEDEN, LED_c, - Din_c_7, Din_c_6, Din_c_5, Din_c_4, Din_c_3, Din_c_2, Din_c_1, - Din_c_0; - wire [7:0]Bank; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(31[12:16]) - - wire CROW_c_1, CROW_c_0, MAin_c_9, MAin_c_8, MAin_c_7, MAin_c_6, - MAin_c_5, MAin_c_4, MAin_c_3, MAin_c_2, MAin_c_1, MAin_c_0, - nFWE_c, n8MEGEN, XOR8MEG, RCKEEN, RCKE_c, nRCS_c, nRRAS_c, - nRCAS_c, nRWE_c, RBA_c_1, RBA_c_0, nRowColSel, RA_c, RA_0; - wire [9:0]RowA; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(51[12:16]) - - wire RA_1_9, RA_1_8, RA_1_7, RA_1_6, RA_1_5, RA_1_4, RA_1_3, - RA_1_2, RA_1_1, RA_1_0, RDQML_c, RDQMH_c; - wire [7:0]WRD; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(59[12:15]) - - wire nUFMCS_c, UFMCLK_c, UFMSDI_c, UFMSDO_c, C1Submitted, ADSubmitted, - CmdEnable, CmdSubmitted, Cmdn8MEGEN, CmdUFMCLK, CmdUFMSDI, - CmdUFMCS, InitReady, Ready, n10; - wire [17:0]FS; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(86[13:15]) - - wire RA11_N_184, PHI2_N_120_enable_8, n2036, n1765, n1893, n7, - n917, n4, n2277, RCKE_N_132, nRowColSel_N_35, nRWE_N_182, - nRowColSel_N_34, nRowColSel_N_33, nRowColSel_N_32, nRCS_N_146, - n15, n2260, nRCS_N_142, n2362, nRCS_N_141, nRCAS_N_166, - nRWE_N_178, n2180, nRCS_N_139, nRCAS_N_165, nRWE_N_177, nRWE_N_176, - n14, n6, n13, n1993, n2254, Ready_N_296, RCLK_c_enable_28, - nRCS_N_137, Ready_N_292, nRCS_N_136, nRRAS_N_156, nRCAS_N_161, - nRWE_N_171, n2220, RCKEEN_N_121, n15_adj_1, n2371, ADSubmitted_N_246, - CmdEnable_N_248, C1Submitted_N_237, PHI2_N_120_enable_3, n2174, - n6_adj_2, Cmdn8MEGEN_N_264, XOR8MEG_N_110, n2204, n1996, n6_adj_3, - RCLK_c_enable_10, n2191, n2208, n22, n8MEGEN_N_91, UFMCLK_N_224, - UFMSDI_N_231, n26, nUFMCS_N_199, n2055, PHI2_N_120_enable_2, - n1999, n2287, n726, n727, n728, n729, n730, n732, n733, - n734, n735, n736, n737, n738, n2267, n1398, n2183, n1995, - PHI2_N_120_enable_1, n1060, n1408, n2228, n2447, n1406, - PHI2_N_120_enable_6, n2225, n827, n2370, n1277, n15_adj_4, - Dout_c, n78, n79, n80, n81, n82, n83, n84, n85, n86, - n87, n88, n89, n90, n91, n92, n93, n94, n95, n2382, - RCLK_c_enable_15, n9, n2369, n7_adj_5, n13_adj_6, n2381, - n2210, n2380, n2227, n2368, PHI2_N_120_enable_7, n12, n1994, - RCLK_c_enable_27, n2367, n1407, n2379, n2378, n2377, n2366, - n2365, n2376, n1998, n2375, n4_adj_7, n2374, RCLK_c_enable_6, - Dout_0, Dout_1, n984, Dout_2, n8, Dout_3, Dout_4, n1314, - Dout_5, Dout_6, RCLK_c_enable_16, n2363, n13_adj_8, n2000, - n2373, RCLK_c_enable_5, n1992, n1997, n2372, n64; - - VHI i2 (.Z(VCC_net)); - INV i2046 (.A(PHI2_c), .Z(PHI2_N_120)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(8[8:12]) - FD1S3AX PHI2r2_377 (.D(PHI2r), .CK(RCLK_c), .Q(PHI2r2)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(91[9] 95[5]) - defparam PHI2r2_377.GSR = "ENABLED"; - LUT4 nRCAS_I_43_4_lut (.A(nRCS_N_142), .B(RASr2), .C(nRowColSel_N_35), - .D(CBR), .Z(nRCAS_N_166)) /* synthesis lut_function=(!(A (B (C (D)))+!A (B ((D)+!C)+!B !(C)))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(186[13] 231[7]) - defparam nRCAS_I_43_4_lut.init = 16'h3afa; - LUT4 nRCAS_I_0_452_3_lut_4_lut (.A(n2371), .B(nRCAS_N_165), .C(Ready), - .D(nRCAS_N_166), .Z(nRCAS_N_161)) /* synthesis lut_function=(A ((D)+!C)+!A (B ((D)+!C)+!B (C (D)))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(232[12] 284[6]) - defparam nRCAS_I_0_452_3_lut_4_lut.init = 16'hfe0e; - LUT4 nRWE_I_0_455_4_lut (.A(n1765), .B(nRWE_N_178), .C(Ready), .D(n2371), - .Z(nRWE_N_171)) /* synthesis lut_function=(A (B (C+(D))+!B !(C+!(D)))+!A (B+!(C))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(232[12] 284[6]) - defparam nRWE_I_0_455_4_lut.init = 16'hcfc5; - FD1S3AX PHI2r3_378 (.D(PHI2r2), .CK(RCLK_c), .Q(PHI2r3)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(91[9] 95[5]) - defparam PHI2r3_378.GSR = "ENABLED"; - FD1S3AX RASr_379 (.D(nCRAS_c__inv), .CK(RCLK_c), .Q(RASr)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(91[9] 95[5]) - defparam RASr_379.GSR = "ENABLED"; - FD1S3AX RASr2_380 (.D(RASr), .CK(RCLK_c), .Q(RASr2)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(91[9] 95[5]) - defparam RASr2_380.GSR = "ENABLED"; - FD1S3AX RASr3_381 (.D(RASr2), .CK(RCLK_c), .Q(RASr3)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(91[9] 95[5]) - defparam RASr3_381.GSR = "ENABLED"; - FD1S3AX CASr_382 (.D(nCCAS_N_3), .CK(RCLK_c), .Q(CASr)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(91[9] 95[5]) - defparam CASr_382.GSR = "ENABLED"; - FD1S3AX CASr2_383 (.D(CASr), .CK(RCLK_c), .Q(CASr2)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(91[9] 95[5]) - defparam CASr2_383.GSR = "ENABLED"; - FD1S3AX CASr3_384 (.D(CASr2), .CK(RCLK_c), .Q(CASr3)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(91[9] 95[5]) - defparam CASr3_384.GSR = "ENABLED"; - FD1S3IX RA11_385 (.D(RA11_N_184), .CK(PHI2_c), .CD(n2380), .Q(RA_c)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(98[9] 102[5]) - defparam RA11_385.GSR = "ENABLED"; - CCU2D FS_610_add_4_15 (.A0(FS[13]), .B0(GND_net), .C0(GND_net), .D0(GND_net), - .A1(FS[14]), .B1(GND_net), .C1(GND_net), .D1(GND_net), .CIN(n1998), - .COUT(n1999), .S0(n82), .S1(n81)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam FS_610_add_4_15.INIT0 = 16'hfaaa; - defparam FS_610_add_4_15.INIT1 = 16'hfaaa; - defparam FS_610_add_4_15.INJECT1_0 = "NO"; - defparam FS_610_add_4_15.INJECT1_1 = "NO"; - FD1S3IX RowA_i0 (.D(MAin_c_0), .CK(nCRAS_c__inv), .CD(n2380), .Q(RowA[0])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(105[9] 120[5]) - defparam RowA_i0.GSR = "ENABLED"; - FD1S3AX WRD_i0 (.D(Din_c_0), .CK(nCCAS_N_3), .Q(WRD[0])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(123[9] 125[5]) - defparam WRD_i0.GSR = "ENABLED"; - FD1S3AX FWEr_389 (.D(n2373), .CK(nCRAS_c__inv), .Q(FWEr)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(105[9] 120[5]) - defparam FWEr_389.GSR = "ENABLED"; - FD1S3AX CBR_390 (.D(nCCAS_N_3), .CK(nCRAS_c__inv), .Q(CBR)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(105[9] 120[5]) - defparam CBR_390.GSR = "ENABLED"; - FD1S3AX RCKE_395 (.D(RCKE_N_132), .CK(RCLK_c), .Q(RCKE_c)) /* synthesis lse_init_val=0 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(141[9] 144[5]) - defparam RCKE_395.GSR = "ENABLED"; - FD1P3AY nRCS_396 (.D(nRCS_N_136), .SP(RCLK_c_enable_6), .CK(RCLK_c), - .Q(nRCS_c)) /* synthesis lse_init_val=1 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(147[9] 285[5]) - defparam nRCS_396.GSR = "ENABLED"; - LUT4 i1477_2_lut (.A(nRWE_N_177), .B(nRCAS_N_165), .Z(n1765)) /* synthesis lut_function=(A+(B)) */ ; - defparam i1477_2_lut.init = 16'heeee; - FD1P3AX nRowColSel_402 (.D(n917), .SP(RCLK_c_enable_5), .CK(RCLK_c), - .Q(nRowColSel)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(147[9] 285[5]) - defparam nRowColSel_402.GSR = "ENABLED"; - CCU2D FS_610_add_4_13 (.A0(FS[11]), .B0(GND_net), .C0(GND_net), .D0(GND_net), - .A1(FS[12]), .B1(GND_net), .C1(GND_net), .D1(GND_net), .CIN(n1997), - .COUT(n1998), .S0(n84), .S1(n83)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam FS_610_add_4_13.INIT0 = 16'hfaaa; - defparam FS_610_add_4_13.INIT1 = 16'hfaaa; - defparam FS_610_add_4_13.INJECT1_0 = "NO"; - defparam FS_610_add_4_13.INJECT1_1 = "NO"; - LUT4 i2_2_lut (.A(InitReady), .B(Ready_N_296), .Z(n6_adj_3)) /* synthesis lut_function=(A (B)) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(91[9] 95[5]) - defparam i2_2_lut.init = 16'h8888; - FD1P3AX CmdEnable_405 (.D(CmdEnable_N_248), .SP(PHI2_N_120_enable_1), - .CK(PHI2_N_120), .Q(CmdEnable)) /* synthesis lse_init_val=0 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(288[9] 337[5]) - defparam CmdEnable_405.GSR = "ENABLED"; - LUT4 i4_4_lut (.A(MAin_c_1), .B(MAin_c_0), .C(CmdEnable), .D(n6_adj_2), - .Z(n2204)) /* synthesis lut_function=(!(A+!(B (C (D))))) */ ; - defparam i4_4_lut.init = 16'h4000; - FD1P3IX ADSubmitted_407 (.D(ADSubmitted_N_246), .SP(PHI2_N_120_enable_2), - .CD(C1Submitted_N_237), .CK(PHI2_N_120), .Q(ADSubmitted)) /* synthesis lse_init_val=0 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(288[9] 337[5]) - defparam ADSubmitted_407.GSR = "ENABLED"; - LUT4 i26_4_lut (.A(n2183), .B(n2191), .C(Din_c_5), .D(n2254), .Z(n15_adj_1)) /* synthesis lut_function=(A (B (C+!(D))+!B !(C+(D)))+!A (B (C))) */ ; - defparam i26_4_lut.init = 16'hc0ca; - LUT4 i1_2_lut_3_lut_4_lut (.A(n2369), .B(n26), .C(n2204), .D(nFWE_c), - .Z(n2220)) /* synthesis lut_function=(!((B+((D)+!C))+!A)) */ ; - defparam i1_2_lut_3_lut_4_lut.init = 16'h0020; - FD1P3AY nRRAS_397 (.D(nRRAS_N_156), .SP(RCLK_c_enable_6), .CK(RCLK_c), - .Q(nRRAS_c)) /* synthesis lse_init_val=1 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(147[9] 285[5]) - defparam nRRAS_397.GSR = "ENABLED"; - LUT4 nRWE_I_50_1_lut (.A(nRWE_N_177), .Z(nRWE_N_176)) /* synthesis lut_function=(!(A)) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(255[14] 262[8]) - defparam nRWE_I_50_1_lut.init = 16'h5555; - BB Dout_pad_7__713 (.I(WRD[7]), .T(n984), .B(RD[7]), .O(Dout_c)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(60[14:16]) - FD1P3AY nRCAS_398 (.D(nRCAS_N_161), .SP(RCLK_c_enable_6), .CK(RCLK_c), - .Q(nRCAS_c)) /* synthesis lse_init_val=1 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(147[9] 285[5]) - defparam nRCAS_398.GSR = "ENABLED"; - FD1P3AY nRWE_399 (.D(nRWE_N_171), .SP(RCLK_c_enable_5), .CK(RCLK_c), - .Q(nRWE_c)) /* synthesis lse_init_val=1 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(147[9] 285[5]) - defparam nRWE_399.GSR = "ENABLED"; - FD1S3JX RA10_400 (.D(n2036), .CK(RCLK_c), .PD(nRWE_N_176), .Q(RA_0)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(147[9] 285[5]) - defparam RA10_400.GSR = "ENABLED"; - FD1P3AX RCKEEN_401 (.D(RCKEEN_N_121), .SP(RCLK_c_enable_6), .CK(RCLK_c), - .Q(RCKEEN)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(147[9] 285[5]) - defparam RCKEEN_401.GSR = "ENABLED"; - FD1S3AX FS_610__i0 (.D(n95), .CK(RCLK_c), .Q(FS[0])) /* synthesis syn_use_carry_chain=1 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam FS_610__i0.GSR = "ENABLED"; - FD1S3IX RBA__i1 (.D(CROW_c_0), .CK(nCRAS_c__inv), .CD(n2380), .Q(RBA_c_0)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(105[9] 120[5]) - defparam RBA__i1.GSR = "ENABLED"; - LUT4 i1_4_lut (.A(Din_c_5), .B(n2220), .C(Din_c_4), .D(Din_c_3), - .Z(PHI2_N_120_enable_6)) /* synthesis lut_function=(A (B (C (D)))+!A (B)) */ ; - defparam i1_4_lut.init = 16'hc444; - LUT4 i29_3_lut (.A(InitReady), .B(n15_adj_4), .C(Ready), .Z(RCKEEN_N_121)) /* synthesis lut_function=(A (B+!(C))+!A (B (C))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(232[12] 284[6]) - defparam i29_3_lut.init = 16'hcaca; - LUT4 Cmdn8MEGEN_I_93_4_lut (.A(Din_c_0), .B(n8MEGEN), .C(Din_c_4), - .D(n1314), .Z(Cmdn8MEGEN_N_264)) /* synthesis lut_function=(A (B ((D)+!C))+!A (B+!((D)+!C))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(321[13] 335[7]) - defparam Cmdn8MEGEN_I_93_4_lut.init = 16'hcc5c; - LUT4 i1956_2_lut (.A(MAin_c_0), .B(Din_c_2), .Z(n2254)) /* synthesis lut_function=(A+(B)) */ ; - defparam i1956_2_lut.init = 16'heeee; - FD1P3AX IS_FSM__i0 (.D(Ready_N_296), .SP(RCLK_c_enable_27), .CK(RCLK_c), - .Q(nRCS_N_139)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(263[11:15]) - defparam IS_FSM__i0.GSR = "ENABLED"; - CCU2D FS_610_add_4_9 (.A0(FS[7]), .B0(GND_net), .C0(GND_net), .D0(GND_net), - .A1(FS[8]), .B1(GND_net), .C1(GND_net), .D1(GND_net), .CIN(n1995), - .COUT(n1996), .S0(n88), .S1(n87)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam FS_610_add_4_9.INIT0 = 16'hfaaa; - defparam FS_610_add_4_9.INIT1 = 16'hfaaa; - defparam FS_610_add_4_9.INJECT1_0 = "NO"; - defparam FS_610_add_4_9.INJECT1_1 = "NO"; - FD1S3JX C1Submitted_406 (.D(n1398), .CK(PHI2_N_120), .PD(C1Submitted_N_237), - .Q(C1Submitted)) /* synthesis lse_init_val=0 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(288[9] 337[5]) - defparam C1Submitted_406.GSR = "ENABLED"; - FD1P3AY nUFMCS_415 (.D(nUFMCS_N_199), .SP(RCLK_c_enable_10), .CK(RCLK_c), - .Q(nUFMCS_c)) /* synthesis lse_init_val=1 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(340[9] 410[5]) - defparam nUFMCS_415.GSR = "ENABLED"; - LUT4 i2_4_lut (.A(n2220), .B(Din_c_4), .C(Din_c_3), .D(Din_c_5), - .Z(PHI2_N_120_enable_7)) /* synthesis lut_function=(A (B (C+!(D)))) */ ; - defparam i2_4_lut.init = 16'h8088; - FD1S3AX S_FSM_i1 (.D(n2374), .CK(RCLK_c), .Q(nRowColSel_N_35)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(131[13:16]) - defparam S_FSM_i1.GSR = "ENABLED"; - CCU2D FS_610_add_4_7 (.A0(FS[5]), .B0(GND_net), .C0(GND_net), .D0(GND_net), - .A1(FS[6]), .B1(GND_net), .C1(GND_net), .D1(GND_net), .CIN(n1994), - .COUT(n1995), .S0(n90), .S1(n89)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam FS_610_add_4_7.INIT0 = 16'hfaaa; - defparam FS_610_add_4_7.INIT1 = 16'hfaaa; - defparam FS_610_add_4_7.INJECT1_0 = "NO"; - defparam FS_610_add_4_7.INJECT1_1 = "NO"; - LUT4 i1_2_lut (.A(Din_c_6), .B(Din_c_3), .Z(n2183)) /* synthesis lut_function=(!((B)+!A)) */ ; - defparam i1_2_lut.init = 16'h2222; - LUT4 i1_2_lut_rep_15_4_lut (.A(FS[10]), .B(FS[11]), .C(n2368), .D(InitReady), - .Z(RCLK_c_enable_16)) /* synthesis lut_function=(!(((C+(D))+!B)+!A)) */ ; - defparam i1_2_lut_rep_15_4_lut.init = 16'h0008; - CCU2D FS_610_add_4_3 (.A0(FS[1]), .B0(GND_net), .C0(GND_net), .D0(GND_net), - .A1(FS[2]), .B1(GND_net), .C1(GND_net), .D1(GND_net), .CIN(n1992), - .COUT(n1993), .S0(n94), .S1(n93)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam FS_610_add_4_3.INIT0 = 16'hfaaa; - defparam FS_610_add_4_3.INIT1 = 16'hfaaa; - defparam FS_610_add_4_3.INJECT1_0 = "NO"; - defparam FS_610_add_4_3.INJECT1_1 = "NO"; - LUT4 RA11_I_54_3_lut (.A(Din_c_6), .B(XOR8MEG), .C(n8MEGEN), .Z(RA11_N_184)) /* synthesis lut_function=(A (B (C)+!B !(C))+!A (B)) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(99[22:51]) - defparam RA11_I_54_3_lut.init = 16'hc6c6; - LUT4 i9_2_lut_3_lut (.A(FWEr), .B(CBR), .C(RASr2), .Z(n9)) /* synthesis lut_function=(!(A (C)+!A (B (C)))) */ ; - defparam i9_2_lut_3_lut.init = 16'h1f1f; - LUT4 i1491_2_lut_rep_30 (.A(RCKE_c), .B(RASr2), .Z(n2379)) /* synthesis lut_function=(A+(B)) */ ; - defparam i1491_2_lut_rep_30.init = 16'heeee; - LUT4 nRCS_I_31_3_lut_4_lut (.A(RCKE_c), .B(RASr2), .C(nRowColSel_N_35), - .D(nRCS_N_142), .Z(nRCS_N_141)) /* synthesis lut_function=(!(A (C+!(D))+!A (B (C+!(D))+!B !(C+(D))))) */ ; - defparam nRCS_I_31_3_lut_4_lut.init = 16'h1f10; - FD1P3IX UFMCLK_416 (.D(UFMCLK_N_224), .SP(RCLK_c_enable_10), .CD(n2366), - .CK(RCLK_c), .Q(UFMCLK_c)) /* synthesis lse_init_val=0 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(340[9] 410[5]) - defparam UFMCLK_416.GSR = "ENABLED"; - LUT4 MAin_9__I_0_427_i10_3_lut (.A(RowA[9]), .B(MAin_c_9), .C(nRowColSel), - .Z(RA_1_9)) /* synthesis lut_function=(A (B+!(C))+!A (B (C))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(55[19:54]) - defparam MAin_9__I_0_427_i10_3_lut.init = 16'hcaca; - LUT4 i3_4_lut (.A(Din_c_2), .B(Din_c_3), .C(Din_c_6), .D(MAin_c_0), - .Z(n2191)) /* synthesis lut_function=(!(((C+!(D))+!B)+!A)) */ ; - defparam i3_4_lut.init = 16'h0800; - LUT4 i1_2_lut_rep_21_3_lut (.A(Din_c_7), .B(Din_c_1), .C(Din_c_0), - .Z(n2370)) /* synthesis lut_function=(!((B+!(C))+!A)) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(309[7:24]) - defparam i1_2_lut_rep_21_3_lut.init = 16'h2020; - LUT4 MAin_9__I_0_427_i9_3_lut (.A(RowA[8]), .B(MAin_c_8), .C(nRowColSel), - .Z(RA_1_8)) /* synthesis lut_function=(A (B+!(C))+!A (B (C))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(55[19:54]) - defparam MAin_9__I_0_427_i9_3_lut.init = 16'hcaca; - LUT4 MAin_9__I_0_427_i8_3_lut (.A(RowA[7]), .B(MAin_c_7), .C(nRowColSel), - .Z(RA_1_7)) /* synthesis lut_function=(A (B+!(C))+!A (B (C))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(55[19:54]) - defparam MAin_9__I_0_427_i8_3_lut.init = 16'hcaca; - LUT4 MAin_9__I_0_427_i7_3_lut (.A(RowA[6]), .B(MAin_c_6), .C(nRowColSel), - .Z(RA_1_6)) /* synthesis lut_function=(A (B+!(C))+!A (B (C))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(55[19:54]) - defparam MAin_9__I_0_427_i7_3_lut.init = 16'hcaca; - LUT4 MAin_9__I_0_427_i6_3_lut (.A(RowA[5]), .B(MAin_c_5), .C(nRowColSel), - .Z(RA_1_5)) /* synthesis lut_function=(A (B+!(C))+!A (B (C))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(55[19:54]) - defparam MAin_9__I_0_427_i6_3_lut.init = 16'hcaca; - CCU2D FS_610_add_4_1 (.A0(GND_net), .B0(GND_net), .C0(GND_net), .D0(GND_net), - .A1(FS[0]), .B1(GND_net), .C1(GND_net), .D1(GND_net), .COUT(n1992), - .S1(n95)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam FS_610_add_4_1.INIT0 = 16'hF000; - defparam FS_610_add_4_1.INIT1 = 16'h0555; - defparam FS_610_add_4_1.INJECT1_0 = "NO"; - defparam FS_610_add_4_1.INJECT1_1 = "NO"; - LUT4 MAin_9__I_0_427_i5_3_lut (.A(RowA[4]), .B(MAin_c_4), .C(nRowColSel), - .Z(RA_1_4)) /* synthesis lut_function=(A (B+!(C))+!A (B (C))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(55[19:54]) - defparam MAin_9__I_0_427_i5_3_lut.init = 16'hcaca; - FD1S3AX PHI2r_376 (.D(PHI2_c), .CK(RCLK_c), .Q(PHI2r)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(91[9] 95[5]) - defparam PHI2r_376.GSR = "ENABLED"; - LUT4 i1962_4_lut (.A(Din_c_4), .B(Din_c_1), .C(n1314), .D(LEDEN), - .Z(n2260)) /* synthesis lut_function=(A+(B (C+(D))+!B (C))) */ ; - defparam i1962_4_lut.init = 16'hfefa; - LUT4 i1423_2_lut (.A(RCKE_c), .B(RASr2), .Z(nRWE_N_182)) /* synthesis lut_function=((B)+!A) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(168[14] 184[8]) - defparam i1423_2_lut.init = 16'hdddd; - LUT4 MAin_9__I_0_427_i4_3_lut (.A(RowA[3]), .B(MAin_c_3), .C(nRowColSel), - .Z(RA_1_3)) /* synthesis lut_function=(A (B+!(C))+!A (B (C))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(55[19:54]) - defparam MAin_9__I_0_427_i4_3_lut.init = 16'hcaca; - FD1S3IX S_FSM_i3 (.D(n1406), .CK(RCLK_c), .CD(n1407), .Q(nRowColSel_N_33)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(131[13:16]) - defparam S_FSM_i3.GSR = "ENABLED"; - FD1S3IX S_FSM_i4 (.D(n827), .CK(RCLK_c), .CD(n2374), .Q(nRowColSel_N_32)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(131[13:16]) - defparam S_FSM_i4.GSR = "ENABLED"; - LUT4 i1_2_lut_3_lut_4_lut_adj_1 (.A(Din_c_7), .B(Din_c_1), .C(Din_c_4), - .D(Din_c_0), .Z(n2208)) /* synthesis lut_function=(!((B+(C+!(D)))+!A)) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(309[7:24]) - defparam i1_2_lut_3_lut_4_lut_adj_1.init = 16'h0200; - LUT4 MAin_c_0_bdd_4_lut (.A(n2369), .B(n26), .C(nFWE_c), .D(MAin_c_1), - .Z(PHI2_N_120_enable_2)) /* synthesis lut_function=(!((B+(C+!(D)))+!A)) */ ; - defparam MAin_c_0_bdd_4_lut.init = 16'h0200; - FD1P3IX UFMSDI_417 (.D(UFMSDI_N_231), .SP(RCLK_c_enable_10), .CD(n2366), - .CK(RCLK_c), .Q(UFMSDI_c)) /* synthesis lse_init_val=0 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(340[9] 410[5]) - defparam UFMSDI_417.GSR = "ENABLED"; - LUT4 MAin_9__I_0_427_i3_3_lut (.A(RowA[2]), .B(MAin_c_2), .C(nRowColSel), - .Z(RA_1_2)) /* synthesis lut_function=(A (B+!(C))+!A (B (C))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(55[19:54]) - defparam MAin_9__I_0_427_i3_3_lut.init = 16'hcaca; - LUT4 MAin_9__I_0_427_i2_3_lut (.A(RowA[1]), .B(MAin_c_1), .C(nRowColSel), - .Z(RA_1_1)) /* synthesis lut_function=(A (B+!(C))+!A (B (C))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(55[19:54]) - defparam MAin_9__I_0_427_i2_3_lut.init = 16'hcaca; - LUT4 i1448_4_lut (.A(n13_adj_6), .B(n64), .C(CmdUFMCS), .D(InitReady), - .Z(nUFMCS_N_199)) /* synthesis lut_function=(!(A (B (C (D)))+!A (B (C+!(D))))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(345[12] 409[6]) - defparam i1448_4_lut.init = 16'h3fbb; - LUT4 i2_3_lut_rep_18_4_lut (.A(n10), .B(n2375), .C(FS[11]), .D(FS[10]), - .Z(n2367)) /* synthesis lut_function=(!(A+(B+!(C (D))))) */ ; - defparam i2_3_lut_rep_18_4_lut.init = 16'h1000; - LUT4 i3_4_lut_adj_2 (.A(nRCS_N_139), .B(InitReady), .C(nRowColSel_N_35), - .D(RASr2), .Z(nRCS_N_137)) /* synthesis lut_function=(A+!(B (C (D)))) */ ; - defparam i3_4_lut_adj_2.init = 16'hbfff; - LUT4 MAin_9__I_0_427_i1_3_lut (.A(RowA[0]), .B(MAin_c_0), .C(nRowColSel), - .Z(RA_1_0)) /* synthesis lut_function=(A (B+!(C))+!A (B (C))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(55[19:54]) - defparam MAin_9__I_0_427_i1_3_lut.init = 16'hcaca; - LUT4 i1416_2_lut (.A(MAin_c_9), .B(nRowColSel), .Z(RDQMH_c)) /* synthesis lut_function=(A+!(B)) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(58[17:46]) - defparam i1416_2_lut.init = 16'hbbbb; - LUT4 i2001_2_lut (.A(MAin_c_9), .B(nRowColSel), .Z(RDQML_c)) /* synthesis lut_function=(!(A (B))) */ ; - defparam i2001_2_lut.init = 16'h7777; - LUT4 i2_3_lut_4_lut (.A(n2363), .B(MAin_c_1), .C(n2208), .D(n15_adj_1), - .Z(CmdEnable_N_248)) /* synthesis lut_function=(!(A+!(B (C (D))))) */ ; - defparam i2_3_lut_4_lut.init = 16'h4000; - LUT4 i2005_3_lut_rep_17_4_lut (.A(n10), .B(n2375), .C(InitReady), - .D(FS[11]), .Z(n2366)) /* synthesis lut_function=(!(A+(B+(C+(D))))) */ ; - defparam i2005_3_lut_rep_17_4_lut.init = 16'h0001; - FD1S3AX Bank_i0 (.D(Din_c_0), .CK(PHI2_c), .Q(Bank[0])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(98[9] 102[5]) - defparam Bank_i0.GSR = "ENABLED"; - LUT4 i1427_4_lut (.A(nRCS_N_146), .B(nRowColSel_N_34), .C(n2378), - .D(nRowColSel_N_33), .Z(nRCS_N_142)) /* synthesis lut_function=(A (B+(C (D)))+!A (B+(C+!(D)))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(195[13] 231[7]) - defparam i1427_4_lut.init = 16'hfcdd; - LUT4 i3_3_lut_4_lut (.A(Din_c_7), .B(Din_c_1), .C(Din_c_6), .D(Din_c_4), - .Z(n8)) /* synthesis lut_function=(!((B+(C+(D)))+!A)) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(309[7:24]) - defparam i3_3_lut_4_lut.init = 16'h0002; - LUT4 i1_2_lut_adj_3 (.A(FS[10]), .B(n13_adj_6), .Z(RCLK_c_enable_28)) /* synthesis lut_function=(A (B)) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam i1_2_lut_adj_3.init = 16'h8888; - LUT4 i1119_1_lut (.A(nRowColSel_N_35), .Z(n1408)) /* synthesis lut_function=(!(A)) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(131[13:16]) - defparam i1119_1_lut.init = 16'h5555; - LUT4 nRCS_N_146_bdd_4_lut (.A(nRCS_N_146), .B(n1060), .C(nRWE_N_182), - .D(nRowColSel_N_35), .Z(nRWE_N_178)) /* synthesis lut_function=(A (B (C+!(D))+!B (C (D)))+!A (C+!(D))) */ ; - defparam nRCS_N_146_bdd_4_lut.init = 16'hf0dd; - LUT4 i11_3_lut_rep_20 (.A(MAin_c_2), .B(n22), .C(MAin_c_5), .Z(n2369)) /* synthesis lut_function=(A (B (C))) */ ; - defparam i11_3_lut_rep_20.init = 16'h8080; - LUT4 i13_2_lut_rep_16_4_lut (.A(MAin_c_2), .B(n22), .C(MAin_c_5), - .D(n26), .Z(n2365)) /* synthesis lut_function=((((D)+!C)+!B)+!A) */ ; - defparam i13_2_lut_rep_16_4_lut.init = 16'hff7f; - GSR GSR_INST (.GSR(VCC_net)); - LUT4 i1_4_lut_adj_4 (.A(n2180), .B(n2225), .C(n8), .D(n2382), .Z(ADSubmitted_N_246)) /* synthesis lut_function=(!((B+!(C (D)))+!A)) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(309[7:24]) - defparam i1_4_lut_adj_4.init = 16'h2000; - LUT4 i6_4_lut (.A(FS[11]), .B(n12), .C(FS[14]), .D(FS[17]), .Z(n13_adj_6)) /* synthesis lut_function=(A (B (C (D)))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam i6_4_lut.init = 16'h8000; - LUT4 i8_4_lut (.A(MAin_c_7), .B(MAin_c_3), .C(Bank[4]), .D(Bank[1]), - .Z(n22)) /* synthesis lut_function=(A (B (C (D)))) */ ; - defparam i8_4_lut.init = 16'h8000; - LUT4 i1_2_lut_3_lut_4_lut_adj_5 (.A(n2369), .B(n26), .C(MAin_c_0), - .D(MAin_c_1), .Z(n2225)) /* synthesis lut_function=((B+!(C (D)))+!A) */ ; - defparam i1_2_lut_3_lut_4_lut_adj_5.init = 16'hdfff; - LUT4 i5_4_lut (.A(FS[13]), .B(FS[12]), .C(FS[15]), .D(FS[16]), .Z(n12)) /* synthesis lut_function=(A (B (C (D)))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam i5_4_lut.init = 16'h8000; - LUT4 i12_4_lut (.A(Bank[2]), .B(n2277), .C(n2287), .D(Bank[5]), - .Z(n26)) /* synthesis lut_function=(A+!(B (C (D)))) */ ; - defparam i12_4_lut.init = 16'hbfff; - LUT4 i2_3_lut_4_lut_adj_6 (.A(n2369), .B(n26), .C(MAin_c_0), .D(MAin_c_1), - .Z(n1277)) /* synthesis lut_function=((B+((D)+!C))+!A) */ ; - defparam i2_3_lut_4_lut_adj_6.init = 16'hffdf; - LUT4 i637_1_lut_rep_31 (.A(Ready), .Z(n2380)) /* synthesis lut_function=(!(A)) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(147[9] 285[5]) - defparam i637_1_lut_rep_31.init = 16'h5555; - LUT4 i1573_4_lut (.A(n2367), .B(n2377), .C(InitReady), .D(n4_adj_7), - .Z(RCLK_c_enable_15)) /* synthesis lut_function=(A (B (C+(D))+!B !(C+!(D)))+!A (B (C))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(83[6:15]) - defparam i1573_4_lut.init = 16'hcac0; - LUT4 i3_4_lut_adj_7 (.A(FS[17]), .B(FS[13]), .C(FS[15]), .D(FS[16]), - .Z(n10)) /* synthesis lut_function=(A+(B+(C+(D)))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam i3_4_lut_adj_7.init = 16'hfffe; - LUT4 i786_2_lut (.A(nRowColSel_N_33), .B(nRowColSel_N_34), .Z(n1060)) /* synthesis lut_function=(A+(B)) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(195[13] 231[7]) - defparam i786_2_lut.init = 16'heeee; - LUT4 i1_4_lut_adj_8 (.A(FS[4]), .B(n15), .C(n13), .D(n14), .Z(n4_adj_7)) /* synthesis lut_function=(!((B+(C+(D)))+!A)) */ ; - defparam i1_4_lut_adj_8.init = 16'h0002; - LUT4 i2_2_lut_3_lut_4_lut (.A(nRCS_N_139), .B(n2381), .C(Ready), .D(nRCAS_N_165), - .Z(n2036)) /* synthesis lut_function=(A+((C+(D))+!B)) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(263[11:15]) - defparam i2_2_lut_3_lut_4_lut.init = 16'hfffb; - LUT4 i2_3_lut_4_lut_4_lut (.A(Ready), .B(n1060), .C(nRowColSel_N_32), - .D(nRowColSel_N_35), .Z(RCLK_c_enable_5)) /* synthesis lut_function=((B+(C+(D)))+!A) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(147[9] 285[5]) - defparam i2_3_lut_4_lut_4_lut.init = 16'hfffd; - CCU2D FS_610_add_4_11 (.A0(FS[9]), .B0(GND_net), .C0(GND_net), .D0(GND_net), - .A1(FS[10]), .B1(GND_net), .C1(GND_net), .D1(GND_net), .CIN(n1996), - .COUT(n1997), .S0(n86), .S1(n85)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam FS_610_add_4_11.INIT0 = 16'hfaaa; - defparam FS_610_add_4_11.INIT1 = 16'hfaaa; - defparam FS_610_add_4_11.INJECT1_0 = "NO"; - defparam FS_610_add_4_11.INJECT1_1 = "NO"; - LUT4 i1603_3_lut (.A(n1893), .B(CmdUFMCLK), .C(InitReady), .Z(UFMCLK_N_224)) /* synthesis lut_function=(A (B+!(C))+!A (B (C))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(83[6:15]) - defparam i1603_3_lut.init = 16'hcaca; - LUT4 i1979_4_lut (.A(MAin_c_6), .B(MAin_c_4), .C(Bank[7]), .D(Bank[0]), - .Z(n2277)) /* synthesis lut_function=(A (B (C (D)))) */ ; - defparam i1979_4_lut.init = 16'h8000; - FD1P3AX IS_FSM__i15 (.D(n726), .SP(RCLK_c_enable_27), .CK(RCLK_c), - .Q(Ready_N_296)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(263[11:15]) - defparam IS_FSM__i15.GSR = "ENABLED"; - LUT4 i771_2_lut_rep_23_2_lut (.A(Ready), .B(nRowColSel_N_35), .Z(n2372)) /* synthesis lut_function=((B)+!A) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(147[9] 285[5]) - defparam i771_2_lut_rep_23_2_lut.init = 16'hdddd; - LUT4 i6_4_lut_adj_9 (.A(FS[5]), .B(FS[7]), .C(FS[1]), .D(FS[2]), - .Z(n15)) /* synthesis lut_function=(A+(B+(C+(D)))) */ ; - defparam i6_4_lut_adj_9.init = 16'hfffe; - LUT4 i1970_4_lut (.A(FS[4]), .B(n13_adj_6), .C(n2267), .D(FS[1]), - .Z(n1893)) /* synthesis lut_function=(!(A (B (C)+!B !((D)+!C))+!A (B+!(C (D))))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(86[13:15]) - defparam i1970_4_lut.init = 16'h3a0a; - LUT4 i1_2_lut_2_lut (.A(Ready), .B(nRowColSel_N_34), .Z(n6)) /* synthesis lut_function=((B)+!A) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(147[9] 285[5]) - defparam i1_2_lut_2_lut.init = 16'hdddd; - PFUMX i30 (.BLUT(n13_adj_8), .ALUT(n9), .C0(nRowColSel_N_35), .Z(n15_adj_4)); - FD1P3AX IS_FSM__i14 (.D(n727), .SP(RCLK_c_enable_27), .CK(RCLK_c), - .Q(n726)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(263[11:15]) - defparam IS_FSM__i14.GSR = "ENABLED"; - FD1P3AX IS_FSM__i13 (.D(n728), .SP(RCLK_c_enable_27), .CK(RCLK_c), - .Q(n727)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(263[11:15]) - defparam IS_FSM__i13.GSR = "ENABLED"; - LUT4 i1989_2_lut (.A(Bank[6]), .B(Bank[3]), .Z(n2287)) /* synthesis lut_function=(A (B)) */ ; - defparam i1989_2_lut.init = 16'h8888; - LUT4 i2_3_lut_rep_32 (.A(RASr2), .B(InitReady), .C(nRowColSel_N_35), - .Z(n2381)) /* synthesis lut_function=(A (B (C))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(233[8:20]) - defparam i2_3_lut_rep_32.init = 16'h8080; - LUT4 i1_2_lut_rep_22_4_lut (.A(RASr2), .B(InitReady), .C(nRowColSel_N_35), - .D(nRCS_N_139), .Z(n2371)) /* synthesis lut_function=((((D)+!C)+!B)+!A) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(233[8:20]) - defparam i1_2_lut_rep_22_4_lut.init = 16'hff7f; - FD1P3AX IS_FSM__i12 (.D(n729), .SP(RCLK_c_enable_27), .CK(RCLK_c), - .Q(n728)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(263[11:15]) - defparam IS_FSM__i12.GSR = "ENABLED"; - FD1P3AX XOR8MEG_408 (.D(XOR8MEG_N_110), .SP(PHI2_N_120_enable_3), .CK(PHI2_N_120), - .Q(XOR8MEG)) /* synthesis lse_init_val=0 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(288[9] 337[5]) - defparam XOR8MEG_408.GSR = "ENABLED"; - FD1P3AX n8MEGEN_418 (.D(n8MEGEN_N_91), .SP(RCLK_c_enable_15), .CK(RCLK_c), - .Q(n8MEGEN)) /* synthesis lse_init_val=0 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(340[9] 410[5]) - defparam n8MEGEN_418.GSR = "ENABLED"; - CCU2D FS_610_add_4_19 (.A0(FS[17]), .B0(GND_net), .C0(GND_net), .D0(GND_net), - .A1(GND_net), .B1(GND_net), .C1(GND_net), .D1(GND_net), .CIN(n2000), - .S0(n78)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam FS_610_add_4_19.INIT0 = 16'hfaaa; - defparam FS_610_add_4_19.INIT1 = 16'h0000; - defparam FS_610_add_4_19.INJECT1_0 = "NO"; - defparam FS_610_add_4_19.INJECT1_1 = "NO"; - FD1P3AX LEDEN_419 (.D(n2447), .SP(RCLK_c_enable_16), .CK(RCLK_c), - .Q(LEDEN)) /* synthesis lse_init_val=0 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(340[9] 410[5]) - defparam LEDEN_419.GSR = "ENABLED"; - FD1P3AX Ready_404 (.D(n2447), .SP(Ready_N_292), .CK(RCLK_c), .Q(Ready)) /* synthesis lse_init_val=0 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(147[9] 285[5]) - defparam Ready_404.GSR = "ENABLED"; - FD1P3AX CmdUFMCLK_413 (.D(Din_c_1), .SP(PHI2_N_120_enable_8), .CK(PHI2_N_120), - .Q(CmdUFMCLK)) /* synthesis lse_init_val=0 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(288[9] 337[5]) - defparam CmdUFMCLK_413.GSR = "ENABLED"; - FD1P3AX CmdUFMSDI_414 (.D(Din_c_0), .SP(PHI2_N_120_enable_8), .CK(PHI2_N_120), - .Q(CmdUFMSDI)) /* synthesis lse_init_val=0 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(288[9] 337[5]) - defparam CmdUFMSDI_414.GSR = "ENABLED"; - FD1P3AX Cmdn8MEGEN_410 (.D(Cmdn8MEGEN_N_264), .SP(PHI2_N_120_enable_6), - .CK(PHI2_N_120), .Q(Cmdn8MEGEN)) /* synthesis lse_init_val=0 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(288[9] 337[5]) - defparam Cmdn8MEGEN_410.GSR = "ENABLED"; - FD1P3AX CmdSubmitted_411 (.D(n2447), .SP(PHI2_N_120_enable_7), .CK(PHI2_N_120), - .Q(CmdSubmitted)) /* synthesis lse_init_val=0 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(288[9] 337[5]) - defparam CmdSubmitted_411.GSR = "ENABLED"; - FD1P3AX CmdUFMCS_412 (.D(Din_c_2), .SP(PHI2_N_120_enable_8), .CK(PHI2_N_120), - .Q(CmdUFMCS)) /* synthesis lse_init_val=0 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(288[9] 337[5]) - defparam CmdUFMCS_412.GSR = "ENABLED"; - FD1P3AX IS_FSM__i11 (.D(n730), .SP(RCLK_c_enable_27), .CK(RCLK_c), - .Q(n729)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(263[11:15]) - defparam IS_FSM__i11.GSR = "ENABLED"; - LUT4 i2008_2_lut_4_lut (.A(RASr2), .B(InitReady), .C(nRowColSel_N_35), - .D(Ready), .Z(RCLK_c_enable_27)) /* synthesis lut_function=(!((((D)+!C)+!B)+!A)) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(233[8:20]) - defparam i2008_2_lut_4_lut.init = 16'h0080; - LUT4 i1404_4_lut (.A(RASr), .B(RCKEEN), .C(RASr2), .D(RASr3), .Z(RCKE_N_132)) /* synthesis lut_function=(A (B+!(C+!(D)))+!A (B (C+(D))+!B !(C+!(D)))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(15[12:17]) - defparam i1404_4_lut.init = 16'hcfc8; - LUT4 i1118_1_lut (.A(nRowColSel_N_34), .Z(n1407)) /* synthesis lut_function=(!(A)) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(131[13:16]) - defparam i1118_1_lut.init = 16'h5555; - FD1P3AX IS_FSM__i10 (.D(nRWE_N_177), .SP(RCLK_c_enable_27), .CK(RCLK_c), - .Q(n730)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(263[11:15]) - defparam IS_FSM__i10.GSR = "ENABLED"; - LUT4 i1_2_lut_adj_10 (.A(RASr2), .B(nRowColSel_N_32), .Z(n1406)) /* synthesis lut_function=(!((B)+!A)) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(91[9] 95[5]) - defparam i1_2_lut_adj_10.init = 16'h2222; - LUT4 i1439_2_lut (.A(nRowColSel_N_33), .B(nRowColSel_N_32), .Z(n827)) /* synthesis lut_function=(A+(B)) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(131[13:16]) - defparam i1439_2_lut.init = 16'heeee; - FD1P3AX IS_FSM__i9 (.D(n732), .SP(RCLK_c_enable_27), .CK(RCLK_c), - .Q(nRWE_N_177)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(263[11:15]) - defparam IS_FSM__i9.GSR = "ENABLED"; - LUT4 i1432_4_lut (.A(FWEr), .B(n2372), .C(n1060), .D(n2376), .Z(n917)) /* synthesis lut_function=(!(A (B+!(C+!(D)))+!A (B+!(C)))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(147[9] 285[5]) - defparam i1432_4_lut.init = 16'h3032; - LUT4 i1_2_lut_rep_33 (.A(Din_c_0), .B(Din_c_2), .Z(n2382)) /* synthesis lut_function=(A (B)) */ ; - defparam i1_2_lut_rep_33.init = 16'h8888; - LUT4 i1_4_lut_4_lut (.A(CBR), .B(n2227), .C(FWEr), .D(nRowColSel_N_34), - .Z(n13_adj_8)) /* synthesis lut_function=(!(A+!(B (C+(D))+!B (D)))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(23[27:31]) - defparam i1_4_lut_4_lut.init = 16'h5540; - LUT4 i4_2_lut (.A(FS[8]), .B(FS[0]), .Z(n13)) /* synthesis lut_function=(A+(B)) */ ; - defparam i4_2_lut.init = 16'heeee; - LUT4 i1589_4_lut (.A(n2174), .B(CmdUFMSDI), .C(InitReady), .D(n4), - .Z(UFMSDI_N_231)) /* synthesis lut_function=(A (B (C+(D))+!B !(C+!(D)))+!A (B (C))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(83[6:15]) - defparam i1589_4_lut.init = 16'hcac0; - LUT4 i2_1_lut_rep_24 (.A(nFWE_c), .Z(n2373)) /* synthesis lut_function=(!(A)) */ ; - defparam i2_1_lut_rep_24.init = 16'h5555; - LUT4 i2_3_lut_4_lut_adj_11 (.A(Din_c_0), .B(Din_c_2), .C(n2260), .D(Din_c_3), - .Z(XOR8MEG_N_110)) /* synthesis lut_function=(!(((C+(D))+!B)+!A)) */ ; - defparam i2_3_lut_4_lut_adj_11.init = 16'h0008; - FD1P3AX IS_FSM__i8 (.D(n733), .SP(RCLK_c_enable_27), .CK(RCLK_c), - .Q(n732)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(263[11:15]) - defparam IS_FSM__i8.GSR = "ENABLED"; - FD1P3AX IS_FSM__i7 (.D(n734), .SP(RCLK_c_enable_27), .CK(RCLK_c), - .Q(n733)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(263[11:15]) - defparam IS_FSM__i7.GSR = "ENABLED"; - FD1P3AX IS_FSM__i6 (.D(n735), .SP(RCLK_c_enable_27), .CK(RCLK_c), - .Q(n734)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(263[11:15]) - defparam IS_FSM__i6.GSR = "ENABLED"; - FD1P3AX IS_FSM__i5 (.D(n736), .SP(RCLK_c_enable_27), .CK(RCLK_c), - .Q(n735)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(263[11:15]) - defparam IS_FSM__i5.GSR = "ENABLED"; - FD1P3AX IS_FSM__i4 (.D(n737), .SP(RCLK_c_enable_27), .CK(RCLK_c), - .Q(n736)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(263[11:15]) - defparam IS_FSM__i4.GSR = "ENABLED"; - FD1P3AX IS_FSM__i3 (.D(n738), .SP(RCLK_c_enable_27), .CK(RCLK_c), - .Q(n737)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(263[11:15]) - defparam IS_FSM__i3.GSR = "ENABLED"; - FD1P3AX IS_FSM__i2 (.D(nRCAS_N_165), .SP(RCLK_c_enable_27), .CK(RCLK_c), - .Q(n738)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(263[11:15]) - defparam IS_FSM__i2.GSR = "ENABLED"; - FD1P3AX IS_FSM__i1 (.D(nRCS_N_139), .SP(RCLK_c_enable_27), .CK(RCLK_c), - .Q(nRCAS_N_165)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(263[11:15]) - defparam IS_FSM__i1.GSR = "ENABLED"; - FD1S3IX RBA__i2 (.D(CROW_c_1), .CK(nCRAS_c__inv), .CD(n2380), .Q(RBA_c_1)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(105[9] 120[5]) - defparam RBA__i2.GSR = "ENABLED"; - FD1S3AX FS_610__i17 (.D(n78), .CK(RCLK_c), .Q(FS[17])) /* synthesis syn_use_carry_chain=1 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam FS_610__i17.GSR = "ENABLED"; - FD1S3AX FS_610__i16 (.D(n79), .CK(RCLK_c), .Q(FS[16])) /* synthesis syn_use_carry_chain=1 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam FS_610__i16.GSR = "ENABLED"; - FD1S3AX FS_610__i15 (.D(n80), .CK(RCLK_c), .Q(FS[15])) /* synthesis syn_use_carry_chain=1 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam FS_610__i15.GSR = "ENABLED"; - FD1S3AX FS_610__i14 (.D(n81), .CK(RCLK_c), .Q(FS[14])) /* synthesis syn_use_carry_chain=1 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam FS_610__i14.GSR = "ENABLED"; - FD1S3AX FS_610__i13 (.D(n82), .CK(RCLK_c), .Q(FS[13])) /* synthesis syn_use_carry_chain=1 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam FS_610__i13.GSR = "ENABLED"; - FD1S3AX FS_610__i12 (.D(n83), .CK(RCLK_c), .Q(FS[12])) /* synthesis syn_use_carry_chain=1 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam FS_610__i12.GSR = "ENABLED"; - FD1S3AX FS_610__i11 (.D(n84), .CK(RCLK_c), .Q(FS[11])) /* synthesis syn_use_carry_chain=1 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam FS_610__i11.GSR = "ENABLED"; - FD1S3AX FS_610__i10 (.D(n85), .CK(RCLK_c), .Q(FS[10])) /* synthesis syn_use_carry_chain=1 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam FS_610__i10.GSR = "ENABLED"; - FD1S3AX FS_610__i9 (.D(n86), .CK(RCLK_c), .Q(FS[9])) /* synthesis syn_use_carry_chain=1 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam FS_610__i9.GSR = "ENABLED"; - FD1S3AX FS_610__i8 (.D(n87), .CK(RCLK_c), .Q(FS[8])) /* synthesis syn_use_carry_chain=1 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam FS_610__i8.GSR = "ENABLED"; - FD1S3AX FS_610__i7 (.D(n88), .CK(RCLK_c), .Q(FS[7])) /* synthesis syn_use_carry_chain=1 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam FS_610__i7.GSR = "ENABLED"; - FD1S3AX FS_610__i6 (.D(n89), .CK(RCLK_c), .Q(FS[6])) /* synthesis syn_use_carry_chain=1 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam FS_610__i6.GSR = "ENABLED"; - FD1S3AX FS_610__i5 (.D(n90), .CK(RCLK_c), .Q(FS[5])) /* synthesis syn_use_carry_chain=1 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam FS_610__i5.GSR = "ENABLED"; - FD1S3AX FS_610__i4 (.D(n91), .CK(RCLK_c), .Q(FS[4])) /* synthesis syn_use_carry_chain=1 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam FS_610__i4.GSR = "ENABLED"; - FD1S3AX FS_610__i3 (.D(n92), .CK(RCLK_c), .Q(FS[3])) /* synthesis syn_use_carry_chain=1 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam FS_610__i3.GSR = "ENABLED"; - FD1S3AX FS_610__i2 (.D(n93), .CK(RCLK_c), .Q(FS[2])) /* synthesis syn_use_carry_chain=1 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam FS_610__i2.GSR = "ENABLED"; - FD1S3AX FS_610__i1 (.D(n94), .CK(RCLK_c), .Q(FS[1])) /* synthesis syn_use_carry_chain=1 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam FS_610__i1.GSR = "ENABLED"; - FD1S3AX WRD_i7 (.D(Din_c_7), .CK(nCCAS_N_3), .Q(WRD[7])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(123[9] 125[5]) - defparam WRD_i7.GSR = "ENABLED"; - FD1S3AX WRD_i6 (.D(Din_c_6), .CK(nCCAS_N_3), .Q(WRD[6])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(123[9] 125[5]) - defparam WRD_i6.GSR = "ENABLED"; - FD1S3AX WRD_i5 (.D(Din_c_5), .CK(nCCAS_N_3), .Q(WRD[5])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(123[9] 125[5]) - defparam WRD_i5.GSR = "ENABLED"; - FD1S3AX WRD_i4 (.D(Din_c_4), .CK(nCCAS_N_3), .Q(WRD[4])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(123[9] 125[5]) - defparam WRD_i4.GSR = "ENABLED"; - FD1S3AX WRD_i3 (.D(Din_c_3), .CK(nCCAS_N_3), .Q(WRD[3])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(123[9] 125[5]) - defparam WRD_i3.GSR = "ENABLED"; - FD1S3AX WRD_i2 (.D(Din_c_2), .CK(nCCAS_N_3), .Q(WRD[2])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(123[9] 125[5]) - defparam WRD_i2.GSR = "ENABLED"; - FD1S3AX WRD_i1 (.D(Din_c_1), .CK(nCCAS_N_3), .Q(WRD[1])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(123[9] 125[5]) - defparam WRD_i1.GSR = "ENABLED"; - FD1S3JX RowA_i9 (.D(MAin_c_9), .CK(nCRAS_c__inv), .PD(n2380), .Q(RowA[9])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(105[9] 120[5]) - defparam RowA_i9.GSR = "ENABLED"; - FD1S3IX RowA_i8 (.D(MAin_c_8), .CK(nCRAS_c__inv), .CD(n2380), .Q(RowA[8])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(105[9] 120[5]) - defparam RowA_i8.GSR = "ENABLED"; - FD1S3IX RowA_i7 (.D(MAin_c_7), .CK(nCRAS_c__inv), .CD(n2380), .Q(RowA[7])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(105[9] 120[5]) - defparam RowA_i7.GSR = "ENABLED"; - FD1S3IX RowA_i6 (.D(MAin_c_6), .CK(nCRAS_c__inv), .CD(n2380), .Q(RowA[6])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(105[9] 120[5]) - defparam RowA_i6.GSR = "ENABLED"; - FD1S3JX RowA_i5 (.D(MAin_c_5), .CK(nCRAS_c__inv), .PD(n2380), .Q(RowA[5])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(105[9] 120[5]) - defparam RowA_i5.GSR = "ENABLED"; - FD1S3IX RowA_i4 (.D(MAin_c_4), .CK(nCRAS_c__inv), .CD(n2380), .Q(RowA[4])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(105[9] 120[5]) - defparam RowA_i4.GSR = "ENABLED"; - FD1S3IX RowA_i3 (.D(MAin_c_3), .CK(nCRAS_c__inv), .CD(n2380), .Q(RowA[3])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(105[9] 120[5]) - defparam RowA_i3.GSR = "ENABLED"; - FD1S3IX RowA_i2 (.D(MAin_c_2), .CK(nCRAS_c__inv), .CD(n2380), .Q(RowA[2])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(105[9] 120[5]) - defparam RowA_i2.GSR = "ENABLED"; - FD1S3IX RowA_i1 (.D(MAin_c_1), .CK(nCRAS_c__inv), .CD(n2380), .Q(RowA[1])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(105[9] 120[5]) - defparam RowA_i1.GSR = "ENABLED"; - FD1S3AX Bank_i7 (.D(Din_c_7), .CK(PHI2_c), .Q(Bank[7])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(98[9] 102[5]) - defparam Bank_i7.GSR = "ENABLED"; - LUT4 i2_3_lut_3_lut (.A(nFWE_c), .B(Din_c_5), .C(Din_c_3), .Z(n2180)) /* synthesis lut_function=(!(A+!(B (C)))) */ ; - defparam i2_3_lut_3_lut.init = 16'h4040; - LUT4 i1_2_lut_3_lut (.A(Din_c_6), .B(Din_c_7), .C(Din_c_4), .Z(n6_adj_2)) /* synthesis lut_function=(!(A+(B+!(C)))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(315[17:31]) - defparam i1_2_lut_3_lut.init = 16'h1010; - LUT4 RASr2_I_0_1_lut_rep_25 (.A(RASr2), .Z(n2374)) /* synthesis lut_function=(!(A)) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(143[40:46]) - defparam RASr2_I_0_1_lut_rep_25.init = 16'h5555; - LUT4 i1_4_lut_4_lut_adj_12 (.A(RASr2), .B(n6_adj_3), .C(nRowColSel_N_32), - .D(Ready), .Z(Ready_N_292)) /* synthesis lut_function=(A (D)+!A (B (C+(D))+!B (D))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(143[40:46]) - defparam i1_4_lut_4_lut_adj_12.init = 16'hff40; - LUT4 i1_4_lut_adj_13 (.A(Din_c_2), .B(n2055), .C(MAin_c_0), .D(n2362), - .Z(C1Submitted_N_237)) /* synthesis lut_function=(!(A+((C+(D))+!B))) */ ; - defparam i1_4_lut_adj_13.init = 16'h0004; - FD1S3AX Bank_i6 (.D(Din_c_6), .CK(PHI2_c), .Q(Bank[6])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(98[9] 102[5]) - defparam Bank_i6.GSR = "ENABLED"; - FD1S3AX Bank_i5 (.D(Din_c_5), .CK(PHI2_c), .Q(Bank[5])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(98[9] 102[5]) - defparam Bank_i5.GSR = "ENABLED"; - FD1S3AX Bank_i4 (.D(Din_c_4), .CK(PHI2_c), .Q(Bank[4])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(98[9] 102[5]) - defparam Bank_i4.GSR = "ENABLED"; - FD1S3AX Bank_i3 (.D(Din_c_3), .CK(PHI2_c), .Q(Bank[3])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(98[9] 102[5]) - defparam Bank_i3.GSR = "ENABLED"; - FD1S3AX Bank_i2 (.D(Din_c_2), .CK(PHI2_c), .Q(Bank[2])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(98[9] 102[5]) - defparam Bank_i2.GSR = "ENABLED"; - FD1S3AX Bank_i1 (.D(Din_c_1), .CK(PHI2_c), .Q(Bank[1])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(98[9] 102[5]) - defparam Bank_i1.GSR = "ENABLED"; - CCU2D FS_610_add_4_5 (.A0(FS[3]), .B0(GND_net), .C0(GND_net), .D0(GND_net), - .A1(FS[4]), .B1(GND_net), .C1(GND_net), .D1(GND_net), .CIN(n1993), - .COUT(n1994), .S0(n92), .S1(n91)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam FS_610_add_4_5.INIT0 = 16'hfaaa; - defparam FS_610_add_4_5.INIT1 = 16'hfaaa; - defparam FS_610_add_4_5.INJECT1_0 = "NO"; - defparam FS_610_add_4_5.INJECT1_1 = "NO"; - BB Dout_pad_6__714 (.I(WRD[6]), .T(n984), .B(RD[6]), .O(Dout_0)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(60[14:16]) - LUT4 i2_3_lut_4_lut_adj_14 (.A(n2369), .B(n26), .C(n2180), .D(n2204), - .Z(PHI2_N_120_enable_8)) /* synthesis lut_function=(!((B+!(C (D)))+!A)) */ ; - defparam i2_3_lut_4_lut_adj_14.init = 16'h2000; - BB Dout_pad_5__715 (.I(WRD[5]), .T(n984), .B(RD[5]), .O(Dout_1)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(60[14:16]) - BB Dout_pad_4__716 (.I(WRD[4]), .T(n984), .B(RD[4]), .O(Dout_2)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(60[14:16]) - BB Dout_pad_3__717 (.I(WRD[3]), .T(n984), .B(RD[3]), .O(Dout_3)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(60[14:16]) - BB Dout_pad_2__718 (.I(WRD[2]), .T(n984), .B(RD[2]), .O(Dout_4)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(60[14:16]) - LUT4 i1_2_lut_3_lut_adj_15 (.A(Din_c_6), .B(Din_c_7), .C(Din_c_5), - .Z(n1314)) /* synthesis lut_function=(A+(B+(C))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(315[17:31]) - defparam i1_2_lut_3_lut_adj_15.init = 16'hfefe; - BB Dout_pad_1__719 (.I(WRD[1]), .T(n984), .B(RD[1]), .O(Dout_5)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(60[14:16]) - BB Dout_pad_0__720 (.I(WRD[0]), .T(n984), .B(RD[0]), .O(Dout_6)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(60[14:16]) - OB Dout_pad_7 (.I(Dout_c), .O(Dout[7])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(27[15:19]) - OB Dout_pad_6 (.I(Dout_0), .O(Dout[6])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(27[15:19]) - OB Dout_pad_5 (.I(Dout_1), .O(Dout[5])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(27[15:19]) - OB Dout_pad_4 (.I(Dout_2), .O(Dout[4])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(27[15:19]) - OB Dout_pad_3 (.I(Dout_3), .O(Dout[3])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(27[15:19]) - OB Dout_pad_2 (.I(Dout_4), .O(Dout[2])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(27[15:19]) - OB Dout_pad_1 (.I(Dout_5), .O(Dout[1])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(27[15:19]) - OB Dout_pad_0 (.I(Dout_6), .O(Dout[0])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(27[15:19]) - OB LED_pad (.I(LED_c), .O(LED)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(22[9:12]) - OB RBA_pad_1 (.I(RBA_c_1), .O(RBA[1])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(47[19:22]) - OB RBA_pad_0 (.I(RBA_c_0), .O(RBA[0])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(47[19:22]) - OB RA_pad_11 (.I(RA_c), .O(RA[11])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(52[16:18]) - OB RA_pad_10 (.I(RA_0), .O(RA[10])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(52[16:18]) - OB RA_pad_9 (.I(RA_1_9), .O(RA[9])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(52[16:18]) - OB RA_pad_8 (.I(RA_1_8), .O(RA[8])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(52[16:18]) - OB RA_pad_7 (.I(RA_1_7), .O(RA[7])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(52[16:18]) - OB RA_pad_6 (.I(RA_1_6), .O(RA[6])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(52[16:18]) - OB RA_pad_5 (.I(RA_1_5), .O(RA[5])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(52[16:18]) - OB RA_pad_4 (.I(RA_1_4), .O(RA[4])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(52[16:18]) - OB RA_pad_3 (.I(RA_1_3), .O(RA[3])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(52[16:18]) - OB RA_pad_2 (.I(RA_1_2), .O(RA[2])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(52[16:18]) - OB RA_pad_1 (.I(RA_1_1), .O(RA[1])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(52[16:18]) - OB RA_pad_0 (.I(RA_1_0), .O(RA[0])); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(52[16:18]) - OB nRCS_pad (.I(nRCS_c), .O(nRCS)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(46[13:17]) - OB RCKE_pad (.I(RCKE_c), .O(RCKE)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(45[13:17]) - OB nRWE_pad (.I(nRWE_c), .O(nRWE)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(46[45:49]) - OB nRRAS_pad (.I(nRRAS_c), .O(nRRAS)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(46[23:28]) - OB nRCAS_pad (.I(nRCAS_c), .O(nRCAS)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(46[34:39]) - OB RDQMH_pad (.I(RDQMH_c), .O(RDQMH)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(56[16:21]) - OB RDQML_pad (.I(RDQML_c), .O(RDQML)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(56[9:14]) - OB nUFMCS_pad (.I(nUFMCS_c), .O(nUFMCS)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(63[13:19]) - OB UFMCLK_pad (.I(UFMCLK_c), .O(UFMCLK)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(64[13:19]) - OB UFMSDI_pad (.I(UFMSDI_c), .O(UFMSDI)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(65[13:19]) - IB PHI2_pad (.I(PHI2), .O(PHI2_c)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(8[8:12]) - IB MAin_pad_9 (.I(MAin[9]), .O(MAin_c_9)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(35[14:18]) - IB MAin_pad_8 (.I(MAin[8]), .O(MAin_c_8)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(35[14:18]) - IB MAin_pad_7 (.I(MAin[7]), .O(MAin_c_7)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(35[14:18]) - IB MAin_pad_6 (.I(MAin[6]), .O(MAin_c_6)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(35[14:18]) - IB MAin_pad_5 (.I(MAin[5]), .O(MAin_c_5)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(35[14:18]) - IB MAin_pad_4 (.I(MAin[4]), .O(MAin_c_4)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(35[14:18]) - IB MAin_pad_3 (.I(MAin[3]), .O(MAin_c_3)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(35[14:18]) - IB MAin_pad_2 (.I(MAin[2]), .O(MAin_c_2)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(35[14:18]) - IB MAin_pad_1 (.I(MAin[1]), .O(MAin_c_1)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(35[14:18]) - IB MAin_pad_0 (.I(MAin[0]), .O(MAin_c_0)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(35[14:18]) - IB CROW_pad_1 (.I(CROW[1]), .O(CROW_c_1)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(34[14:18]) - IB CROW_pad_0 (.I(CROW[0]), .O(CROW_c_0)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(34[14:18]) - IB Din_pad_7 (.I(Din[7]), .O(Din_c_7)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(26[14:17]) - IB Din_pad_6 (.I(Din[6]), .O(Din_c_6)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(26[14:17]) - IB Din_pad_5 (.I(Din[5]), .O(Din_c_5)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(26[14:17]) - IB Din_pad_4 (.I(Din[4]), .O(Din_c_4)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(26[14:17]) - IB Din_pad_3 (.I(Din[3]), .O(Din_c_3)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(26[14:17]) - IB Din_pad_2 (.I(Din[2]), .O(Din_c_2)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(26[14:17]) - IB Din_pad_1 (.I(Din[1]), .O(Din_c_1)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(26[14:17]) - IB Din_pad_0 (.I(Din[0]), .O(Din_c_0)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(26[14:17]) - IB nCCAS_pad (.I(nCCAS), .O(nCCAS_c)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(11[8:13]) - IB nCRAS_pad (.I(nCRAS), .O(nCRAS_c)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(11[15:20]) - IB nFWE_pad (.I(nFWE), .O(nFWE_c)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(36[8:12]) - IB RCLK_pad (.I(RCLK), .O(RCLK_c)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(41[8:12]) - IB UFMSDO_pad (.I(UFMSDO), .O(UFMSDO_c)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(66[8:14]) - CCU2D FS_610_add_4_17 (.A0(FS[15]), .B0(GND_net), .C0(GND_net), .D0(GND_net), - .A1(FS[16]), .B1(GND_net), .C1(GND_net), .D1(GND_net), .CIN(n1999), - .COUT(n2000), .S0(n80), .S1(n79)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam FS_610_add_4_17.INIT0 = 16'hfaaa; - defparam FS_610_add_4_17.INIT1 = 16'hfaaa; - defparam FS_610_add_4_17.INJECT1_0 = "NO"; - defparam FS_610_add_4_17.INJECT1_1 = "NO"; - LUT4 i1_2_lut_rep_14_3_lut (.A(n2369), .B(n26), .C(nFWE_c), .Z(n2363)) /* synthesis lut_function=((B+(C))+!A) */ ; - defparam i1_2_lut_rep_14_3_lut.init = 16'hfdfd; - LUT4 i1_2_lut_rep_13_3_lut (.A(n2369), .B(n26), .C(MAin_c_1), .Z(n2362)) /* synthesis lut_function=((B+!(C))+!A) */ ; - defparam i1_2_lut_rep_13_3_lut.init = 16'hdfdf; - LUT4 i2010_3_lut_3_lut (.A(nCRAS_c), .B(LEDEN), .C(CBR), .Z(LED_c)) /* synthesis lut_function=(A+((C)+!B)) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(23[17:23]) - defparam i2010_3_lut_3_lut.init = 16'hfbfb; - LUT4 i5_3_lut (.A(FS[3]), .B(FS[9]), .C(FS[6]), .Z(n14)) /* synthesis lut_function=(A+(B+(C))) */ ; - defparam i5_3_lut.init = 16'hfefe; - LUT4 i4_4_lut_adj_16 (.A(nRowColSel_N_35), .B(nRowColSel_N_33), .C(nRowColSel_N_32), - .D(n6), .Z(RCLK_c_enable_6)) /* synthesis lut_function=(A+(B+(C+(D)))) */ ; - defparam i4_4_lut_adj_16.init = 16'hfffe; - LUT4 i4_4_lut_adj_17 (.A(n7), .B(FS[8]), .C(FS[10]), .D(n10), .Z(n2174)) /* synthesis lut_function=(!((B+(C+(D)))+!A)) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam i4_4_lut_adj_17.init = 16'h0002; - LUT4 i34_4_lut (.A(n7_adj_5), .B(ADSubmitted), .C(C1Submitted_N_237), - .D(n2363), .Z(PHI2_N_120_enable_1)) /* synthesis lut_function=(A (B (C))+!A (B (C+!(D))+!B !(C+(D)))) */ ; - defparam i34_4_lut.init = 16'hc0c5; - LUT4 i13_3_lut (.A(MAin_c_0), .B(n2210), .C(MAin_c_1), .Z(n7_adj_5)) /* synthesis lut_function=(A (B (C))+!A (B+!(C))) */ ; - defparam i13_3_lut.init = 16'hc5c5; - LUT4 i1_2_lut_4_lut (.A(FS[11]), .B(n2368), .C(InitReady), .D(FS[10]), - .Z(n64)) /* synthesis lut_function=(A+(B+(C+(D)))) */ ; - defparam i1_2_lut_4_lut.init = 16'hfffe; - LUT4 nRCS_N_137_I_0_4_lut (.A(nRCS_N_137), .B(n2379), .C(Ready), .D(nRowColSel_N_35), - .Z(nRRAS_N_156)) /* synthesis lut_function=(!(A (B (C (D)))+!A (B ((D)+!C)+!B !(C)))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(232[12] 284[6]) - defparam nRCS_N_137_I_0_4_lut.init = 16'h3afa; - LUT4 i3_4_lut_adj_18 (.A(Din_c_5), .B(n2228), .C(n2183), .D(n2370), - .Z(n2055)) /* synthesis lut_function=(!(A+(B+!(C (D))))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(309[7:24]) - defparam i3_4_lut_adj_18.init = 16'h1000; - LUT4 i1930_2_lut (.A(nFWE_c), .B(Din_c_4), .Z(n2228)) /* synthesis lut_function=(A+(B)) */ ; - defparam i1930_2_lut.init = 16'heeee; - LUT4 i1110_2_lut_3_lut_4_lut (.A(nFWE_c), .B(n2365), .C(C1Submitted), - .D(MAin_c_1), .Z(n1398)) /* synthesis lut_function=(A (C)+!A (B (C)+!B !((D)+!C))) */ ; - defparam i1110_2_lut_3_lut_4_lut.init = 16'he0f0; - LUT4 i1_2_lut_adj_19 (.A(FS[11]), .B(FS[6]), .Z(n4)) /* synthesis lut_function=(A (B)) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam i1_2_lut_adj_19.init = 16'h8888; - LUT4 i2_4_lut_adj_20 (.A(n2375), .B(FS[7]), .C(FS[9]), .D(FS[5]), - .Z(n7)) /* synthesis lut_function=(!(A+(B (C)+!B !(C (D))))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam i2_4_lut_adj_20.init = 16'h1404; - LUT4 i1417_2_lut (.A(nCCAS_c), .B(nFWE_c), .Z(n984)) /* synthesis lut_function=(A+(B)) */ ; - defparam i1417_2_lut.init = 16'heeee; - LUT4 i2_4_lut_adj_21 (.A(n2228), .B(CmdEnable), .C(n1277), .D(n1314), - .Z(PHI2_N_120_enable_3)) /* synthesis lut_function=(!(A+((C+(D))+!B))) */ ; - defparam i2_4_lut_adj_21.init = 16'h0004; - LUT4 i3_4_lut_adj_22 (.A(Din_c_5), .B(n2191), .C(C1Submitted), .D(n2208), - .Z(n2210)) /* synthesis lut_function=(!(((C+!(D))+!B)+!A)) */ ; - defparam i3_4_lut_adj_22.init = 16'h0800; - LUT4 i1_2_lut_adj_23 (.A(nRowColSel_N_33), .B(CASr2), .Z(n2227)) /* synthesis lut_function=(A+!(B)) */ ; - defparam i1_2_lut_adj_23.init = 16'hbbbb; - FD1P3AX InitReady_394 (.D(n2447), .SP(RCLK_c_enable_28), .CK(RCLK_c), - .Q(InitReady)) /* synthesis lse_init_val=0 */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(134[9] 138[5]) - defparam InitReady_394.GSR = "ENABLED"; - LUT4 nRCS_I_0_448_3_lut (.A(nRCS_N_137), .B(nRCS_N_141), .C(Ready), - .Z(nRCS_N_136)) /* synthesis lut_function=(A (B+!(C))+!A (B (C))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(232[12] 284[6]) - defparam nRCS_I_0_448_3_lut.init = 16'hcaca; - LUT4 i1969_2_lut_3_lut_4_lut (.A(FS[12]), .B(FS[14]), .C(FS[11]), - .D(n10), .Z(n2267)) /* synthesis lut_function=(A+(B+((D)+!C))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam i1969_2_lut_3_lut_4_lut.init = 16'hffef; - LUT4 i1_2_lut_rep_19_3_lut (.A(FS[12]), .B(FS[14]), .C(n10), .Z(n2368)) /* synthesis lut_function=(A+(B+(C))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam i1_2_lut_rep_19_3_lut.init = 16'hfefe; - LUT4 i2_3_lut_4_lut_adj_24 (.A(CBR), .B(CASr3), .C(FWEr), .D(CASr2), - .Z(nRCS_N_146)) /* synthesis lut_function=(!(A+(B+!(C (D))))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(105[9] 120[5]) - defparam i2_3_lut_4_lut_adj_24.init = 16'h1000; - LUT4 i3_2_lut_rep_26 (.A(FS[12]), .B(FS[14]), .Z(n2375)) /* synthesis lut_function=(A+(B)) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136[9:13]) - defparam i3_2_lut_rep_26.init = 16'heeee; - LUT4 i1_2_lut_rep_27 (.A(CBR), .B(CASr3), .Z(n2376)) /* synthesis lut_function=(A+(B)) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(105[9] 120[5]) - defparam i1_2_lut_rep_27.init = 16'heeee; - LUT4 i2_3_lut_rep_28 (.A(PHI2r3), .B(PHI2r2), .C(CmdSubmitted), .Z(n2377)) /* synthesis lut_function=(!((B+!(C))+!A)) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(402[16:47]) - defparam i2_3_lut_rep_28.init = 16'h2020; - INV i2044 (.A(nCRAS_c), .Z(nCRAS_c__inv)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(11[15:20]) - FD1S3IX S_FSM_i2 (.D(n1406), .CK(RCLK_c), .CD(n1408), .Q(nRowColSel_N_34)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(131[13:16]) - defparam S_FSM_i2.GSR = "ENABLED"; - INV i2045 (.A(nCCAS_c), .Z(nCCAS_N_3)); // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(11[8:13]) - VLO i1 (.Z(GND_net)); - TSALL TSALL_INST (.TSALL(GND_net)); - PUR PUR_INST (.PUR(VCC_net)); - defparam PUR_INST.RST_PULSE = 1; - LUT4 i1_2_lut_4_lut_adj_25 (.A(PHI2r3), .B(PHI2r2), .C(CmdSubmitted), - .D(InitReady), .Z(RCLK_c_enable_10)) /* synthesis lut_function=(!(A (B (D)+!B !(C+!(D)))+!A (D))) */ ; // d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(402[16:47]) - defparam i1_2_lut_4_lut_adj_25.init = 16'h20ff; - LUT4 i1_2_lut_rep_29 (.A(FWEr), .B(CBR), .Z(n2378)) /* synthesis lut_function=(A+(B)) */ ; - defparam i1_2_lut_rep_29.init = 16'heeee; - LUT4 m1_lut (.Z(n2447)) /* synthesis lut_function=1, syn_instantiated=1 */ ; - defparam m1_lut.init = 16'hffff; - LUT4 n8MEGEN_I_14_3_lut_4_lut (.A(InitReady), .B(n2367), .C(UFMSDO_c), - .D(Cmdn8MEGEN), .Z(n8MEGEN_N_91)) /* synthesis lut_function=(A (D)+!A !(B (C)+!B !(D))) */ ; - defparam n8MEGEN_I_14_3_lut_4_lut.init = 16'hbf04; - -endmodule -// -// Verilog Description of module TSALL -// module not written out since it is a black-box. -// - -// -// Verilog Description of module PUR -// module not written out since it is a black-box. -// - diff --git a/CPLD/LCMXO2-1200HC/impl1/automake.log b/CPLD/LCMXO2-1200HC/impl1/automake.log deleted file mode 100644 index f56d09d..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/automake.log +++ /dev/null @@ -1,859 +0,0 @@ - -map -a "MachXO2" -p LCMXO2-1200HC -t TQFP100 -s 4 -oc Commercial "RAM2GS_LCMXO2_1200HC_impl1.ngd" -o "RAM2GS_LCMXO2_1200HC_impl1_map.ncd" -pr "RAM2GS_LCMXO2_1200HC_impl1.prf" -mp "RAM2GS_LCMXO2_1200HC_impl1.mrp" -lpf "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.lpf" -lpf "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/RAM2GS_LCMXO2_1200HC.lpf" -c 0 -map: version Diamond (64-bit) 3.12.1.454 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. - Process the file: RAM2GS_LCMXO2_1200HC_impl1.ngd - Picdevice="LCMXO2-1200HC" - - Pictype="TQFP100" - - Picspeed=4 - - Remove unused logic - - Do not produce over sized NCDs. - -Part used: LCMXO2-1200HCTQFP100, Performance used: 4. - -Loading device for application map from file 'xo2c1200.nph' in environment: C:/lscc/diamond/3.12/ispfpga. -Package Status: Final Version 1.44. - -Running general design DRC... - -Removing unused logic... - -Optimizing... - - - - -Design Summary: - Number of registers: 102 out of 1520 (7%) - PFU registers: 102 out of 1280 (8%) - PIO registers: 0 out of 240 (0%) - Number of SLICEs: 75 out of 640 (12%) - SLICEs as Logic/ROM: 75 out of 640 (12%) - SLICEs as RAM: 0 out of 480 (0%) - SLICEs as Carry: 10 out of 640 (2%) - Number of LUT4s: 143 out of 1280 (11%) - Number used as logic LUTs: 123 - Number used as distributed RAM: 0 - Number used as ripple logic: 20 - Number used as shift registers: 0 - Number of PIO sites used: 67 + 4(JTAG) out of 80 (89%) - Number of block RAMs: 0 out of 7 (0%) - Number of GSRs: 0 out of 1 (0%) - EFB used : No - JTAG used : No - Readback used : No - Oscillator used : No - Startup used : No - POR : On - Bandgap : On - Number of Power Controller: 0 out of 1 (0%) - Number of Dynamic Bank Controller (BCINRD): 0 out of 4 (0%) - Number of Dynamic Bank Controller (BCLVDSO): 0 out of 1 (0%) - Number of DCCA: 0 out of 8 (0%) - Number of DCMA: 0 out of 2 (0%) - Number of PLLs: 0 out of 1 (0%) - Number of DQSDLLs: 0 out of 2 (0%) - Number of CLKDIVC: 0 out of 4 (0%) - Number of ECLKSYNCA: 0 out of 4 (0%) - Number of ECLKBRIDGECS: 0 out of 2 (0%) - Notes:- - 1. Total number of LUT4s = (Number of logic LUT4s) + 2*(Number of distributed RAMs) + 2*(Number of ripple logic) - 2. Number of logic LUT4s does not include count of distributed RAM and ripple logic. - Number of clocks: 4 - Net RCLK_c: 40 loads, 40 rising, 0 falling (Driver: PIO RCLK ) - Net PHI2_c: 13 loads, 5 rising, 8 falling (Driver: PIO PHI2 ) - Net nCCAS_c: 4 loads, 0 rising, 4 falling (Driver: PIO nCCAS ) - Net nCRAS_c: 7 loads, 0 rising, 7 falling (Driver: PIO nCRAS ) - Number of Clock Enables: 14 - Net RCLK_c_enable_6: 4 loads, 4 LSLICEs - Net RCLK_c_enable_5: 2 loads, 2 LSLICEs - Net PHI2_N_120_enable_1: 1 loads, 1 LSLICEs - Net PHI2_N_120_enable_2: 1 loads, 1 LSLICEs - Net PHI2_N_120_enable_6: 1 loads, 1 LSLICEs - Net RCLK_c_enable_27: 8 loads, 8 LSLICEs - Net RCLK_c_enable_10: 3 loads, 3 LSLICEs - Net PHI2_N_120_enable_7: 1 loads, 1 LSLICEs - Net RCLK_c_enable_16: 1 loads, 1 LSLICEs - Net RCLK_c_enable_28: 1 loads, 1 LSLICEs - Net RCLK_c_enable_15: 1 loads, 1 LSLICEs - Net PHI2_N_120_enable_3: 1 loads, 1 LSLICEs - Net Ready_N_292: 1 loads, 1 LSLICEs - Net PHI2_N_120_enable_8: 2 loads, 2 LSLICEs - Number of LSRs: 7 - Net RASr2: 1 loads, 1 LSLICEs - Net nRowColSel_N_35: 1 loads, 1 LSLICEs - Net Ready: 7 loads, 7 LSLICEs - Net nRWE_N_177: 1 loads, 1 LSLICEs - Net C1Submitted_N_237: 2 loads, 2 LSLICEs - Net n2366: 2 loads, 2 LSLICEs - Net nRowColSel_N_34: 1 loads, 1 LSLICEs - Number of nets driven by tri-state buffers: 0 - Top 10 highest fanout non-clock nets: - Net Ready: 18 loads - Net InitReady: 15 loads - Net RASr2: 15 loads - Net nRowColSel_N_35: 13 loads - Net nRowColSel: 12 loads - Net Din_c_4: 10 loads - Net MAin_c_1: 10 loads - Net Din_c_5: 9 loads - Net MAin_c_0: 9 loads - Net Din_c_0: 8 loads - - - Number of warnings: 0 - Number of errors: 0 - - - -Total CPU Time: 0 secs -Total REAL Time: 0 secs -Peak Memory Usage: 41 MB - -Dumping design to file RAM2GS_LCMXO2_1200HC_impl1_map.ncd. - -ncd2vdb "RAM2GS_LCMXO2_1200HC_impl1_map.ncd" ".vdbs/RAM2GS_LCMXO2_1200HC_impl1_map.vdb" - -Loading device for application ncd2vdb from file 'xo2c1200.nph' in environment: C:/lscc/diamond/3.12/ispfpga. - -trce -f "RAM2GS_LCMXO2_1200HC_impl1.mt" -o "RAM2GS_LCMXO2_1200HC_impl1.tw1" "RAM2GS_LCMXO2_1200HC_impl1_map.ncd" "RAM2GS_LCMXO2_1200HC_impl1.prf" -trce: version Diamond (64-bit) 3.12.1.454 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. - -Loading design for application trce from file ram2gs_lcmxo2_1200hc_impl1_map.ncd. -Design name: RAM2GS -NCD version: 3.3 -Vendor: LATTICE -Device: LCMXO2-1200HC -Package: TQFP100 -Performance: 4 -Loading device for application trce from file 'xo2c1200.nph' in environment: C:/lscc/diamond/3.12/ispfpga. -Package Status: Final Version 1.44. -Performance Hardware Data Status: Final Version 34.4. -Setup and Hold Report - --------------------------------------------------------------------------------- -Lattice TRACE Report - Setup, Version Diamond (64-bit) 3.12.1.454 -Tue Aug 15 05:22:07 2023 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. - -Report Information ------------------- -Command line: trce -v 1 -gt -mapchkpnt 0 -sethld -o RAM2GS_LCMXO2_1200HC_impl1.tw1 -gui -msgset D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/promote.xml RAM2GS_LCMXO2_1200HC_impl1_map.ncd RAM2GS_LCMXO2_1200HC_impl1.prf -Design file: ram2gs_lcmxo2_1200hc_impl1_map.ncd -Preference file: ram2gs_lcmxo2_1200hc_impl1.prf -Device,speed: LCMXO2-1200HC,4 -Report level: verbose report, limited to 1 item per preference --------------------------------------------------------------------------------- - -Report Type: based on TRACE automatically generated preferences -BLOCK ASYNCPATHS -BLOCK RESETPATHS --------------------------------------------------------------------------------- - - - -Timing summary (Setup): ---------------- - -Timing errors: 349 Score: 848079 -Cumulative negative slack: 584487 - -Constraints cover 572 paths, 2 nets, and 409 connections (60.68% coverage) - --------------------------------------------------------------------------------- -Lattice TRACE Report - Hold, Version Diamond (64-bit) 3.12.1.454 -Tue Aug 15 05:22:07 2023 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. - -Report Information ------------------- -Command line: trce -v 1 -gt -mapchkpnt 0 -sethld -o RAM2GS_LCMXO2_1200HC_impl1.tw1 -gui -msgset D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/promote.xml RAM2GS_LCMXO2_1200HC_impl1_map.ncd RAM2GS_LCMXO2_1200HC_impl1.prf -Design file: ram2gs_lcmxo2_1200hc_impl1_map.ncd -Preference file: ram2gs_lcmxo2_1200hc_impl1.prf -Device,speed: LCMXO2-1200HC,M -Report level: verbose report, limited to 1 item per preference --------------------------------------------------------------------------------- - -BLOCK ASYNCPATHS -BLOCK RESETPATHS --------------------------------------------------------------------------------- - - - -Timing summary (Hold): ---------------- - -Timing errors: 0 Score: 0 -Cumulative negative slack: 0 - -Constraints cover 572 paths, 2 nets, and 409 connections (60.68% coverage) - - - -Timing summary (Setup and Hold): ---------------- - -Timing errors: 349 (setup), 0 (hold) -Score: 848079 (setup), 0 (hold) -Cumulative negative slack: 584487 (584487+0) --------------------------------------------------------------------------------- - --------------------------------------------------------------------------------- - -Total CPU Time: 0 secs -Total REAL Time: 0 secs -Peak Memory Usage: 48 MB - - -ldbanno "RAM2GS_LCMXO2_1200HC_impl1_map.ncd" -n Verilog -o "RAM2GS_LCMXO2_1200HC_impl1_mapvo.vo" -w -neg -ldbanno: version Diamond (64-bit) 3.12.1.454 -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. - -Writing a Verilog netlist using the orca library type based on the RAM2GS_LCMXO2_1200HC_impl1_map design file. - - -Loading design for application ldbanno from file RAM2GS_LCMXO2_1200HC_impl1_map.ncd. -Design name: RAM2GS -NCD version: 3.3 -Vendor: LATTICE -Device: LCMXO2-1200HC -Package: TQFP100 -Performance: 4 -Loading device for application ldbanno from file 'xo2c1200.nph' in environment: C:/lscc/diamond/3.12/ispfpga. -Package Status: Final Version 1.44. -Performance Hardware Data Status: Final Version 34.4. -Converting design RAM2GS_LCMXO2_1200HC_impl1_map.ncd into .ldb format. -Writing Verilog netlist to file RAM2GS_LCMXO2_1200HC_impl1_mapvo.vo -Writing SDF timing to file RAM2GS_LCMXO2_1200HC_impl1_mapvo.sdf - -Total CPU Time: 0 secs -Total REAL Time: 0 secs -Peak Memory Usage: 40 MB - -ldbanno "RAM2GS_LCMXO2_1200HC_impl1_map.ncd" -n VHDL -o "RAM2GS_LCMXO2_1200HC_impl1_mapvho.vho" -w -neg -ldbanno: version Diamond (64-bit) 3.12.1.454 -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. - -Writing a VHDL netlist using the orca library type based on the RAM2GS_LCMXO2_1200HC_impl1_map design file. - - -Loading design for application ldbanno from file RAM2GS_LCMXO2_1200HC_impl1_map.ncd. -Design name: RAM2GS -NCD version: 3.3 -Vendor: LATTICE -Device: LCMXO2-1200HC -Package: TQFP100 -Performance: 4 -Loading device for application ldbanno from file 'xo2c1200.nph' in environment: C:/lscc/diamond/3.12/ispfpga. -Package Status: Final Version 1.44. -Performance Hardware Data Status: Final Version 34.4. -Converting design RAM2GS_LCMXO2_1200HC_impl1_map.ncd into .ldb format. -Writing VHDL netlist to file RAM2GS_LCMXO2_1200HC_impl1_mapvho.vho -Writing SDF timing to file RAM2GS_LCMXO2_1200HC_impl1_mapvho.sdf - -Total CPU Time: 0 secs -Total REAL Time: 0 secs -Peak Memory Usage: 41 MB - -mpartrce -p "RAM2GS_LCMXO2_1200HC_impl1.p2t" -f "RAM2GS_LCMXO2_1200HC_impl1.p3t" -tf "RAM2GS_LCMXO2_1200HC_impl1.pt" "RAM2GS_LCMXO2_1200HC_impl1_map.ncd" "RAM2GS_LCMXO2_1200HC_impl1.ncd" - ----- MParTrce Tool ---- -Removing old design directory at request of -rem command line option to this program. -Running par. Please wait . . . - -Lattice Place and Route Report for Design "RAM2GS_LCMXO2_1200HC_impl1_map.ncd" -Tue Aug 15 05:22:08 2023 - -PAR: Place And Route Diamond (64-bit) 3.12.1.454. -Command Line: par -w -l 5 -i 6 -t 1 -c 0 -e 0 -gui -msgset D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/promote.xml -exp parUseNBR=1:parCDP=0:parCDR=0:parPathBased=OFF:parASE=1 RAM2GS_LCMXO2_1200HC_impl1_map.ncd RAM2GS_LCMXO2_1200HC_impl1.dir/5_1.ncd RAM2GS_LCMXO2_1200HC_impl1.prf -Preference file: RAM2GS_LCMXO2_1200HC_impl1.prf. -Placement level-cost: 5-1. -Routing Iterations: 6 - -Loading design for application par from file RAM2GS_LCMXO2_1200HC_impl1_map.ncd. -Design name: RAM2GS -NCD version: 3.3 -Vendor: LATTICE -Device: LCMXO2-1200HC -Package: TQFP100 -Performance: 4 -Loading device for application par from file 'xo2c1200.nph' in environment: C:/lscc/diamond/3.12/ispfpga. -Package Status: Final Version 1.44. -Performance Hardware Data Status: Final Version 34.4. -License checked out. - - -Ignore Preference Error(s): True -Device utilization summary: - - PIO (prelim) 67+4(JTAG)/108 66% used - 67+4(JTAG)/80 89% bonded - - SLICE 75/640 11% used - - - -Number of Signals: 285 -Number of Connections: 674 - - -Pin Constraint Summary: - 66 out of 67 pins locked (98% locked). - -The following 2 signals are selected to use the primary clock routing resources: - RCLK_c (driver: RCLK, clk load #: 40) - PHI2_c (driver: PHI2, clk load #: 13) - - - - -The following 1 signal is selected to use the secondary clock routing resources: - nCRAS_c (driver: nCRAS, clk load #: 7, sr load #: 0, ce load #: 0) - - -No signal is selected as Global Set/Reset. -. -Starting Placer Phase 0. -.......... -Finished Placer Phase 0. REAL time: 0 secs - -Starting Placer Phase 1. -................... -Placer score = 143529. -Finished Placer Phase 1. REAL time: 4 secs - -Starting Placer Phase 2. -. -Placer score = 143450 -Finished Placer Phase 2. REAL time: 4 secs - - ------------------- Clock Report ------------------ - -Global Clock Resources: - CLK_PIN : 0 out of 8 (0%) - General PIO: 3 out of 108 (2%) - PLL : 0 out of 1 (0%) - DCM : 0 out of 2 (0%) - DCC : 0 out of 8 (0%) - -Global Clocks: - PRIMARY "RCLK_c" from comp "RCLK" on PIO site "62 (PR5D)", clk load = 40 - PRIMARY "PHI2_c" from comp "PHI2" on PIO site "8 (PL3D)", clk load = 13 - SECONDARY "nCRAS_c" from comp "nCRAS" on PIO site "17 (PL8B)", clk load = 7, ce load = 0, sr load = 0 - - PRIMARY : 2 out of 8 (25%) - SECONDARY: 1 out of 8 (12%) - -Edge Clocks: - No edge clock selected. - ---------------- End of Clock Report --------------- - - -I/O Usage Summary (final): - 67 + 4(JTAG) out of 108 (65.7%) PIO sites used. - 67 + 4(JTAG) out of 80 (88.8%) bonded PIO sites used. - Number of PIO comps: 67; differential: 0. - Number of Vref pins used: 0. - -I/O Bank Usage Summary: -+----------+----------------+------------+-----------+ -| I/O Bank | Usage | Bank Vccio | Bank Vref | -+----------+----------------+------------+-----------+ -| 0 | 13 / 19 ( 68%) | 2.5V | - | -| 1 | 20 / 21 ( 95%) | 2.5V | - | -| 2 | 17 / 20 ( 85%) | 2.5V | - | -| 3 | 17 / 20 ( 85%) | 2.5V | - | -+----------+----------------+------------+-----------+ - -Total placer CPU time: 3 secs - -Dumping design to file RAM2GS_LCMXO2_1200HC_impl1.dir/5_1.ncd. - -0 connections routed; 674 unrouted. -Starting router resource preassignment - - - - - -Completed router resource preassignment. Real time: 6 secs - -Start NBR router at 05:22:14 08/15/23 - -***************************************************************** -Info: NBR allows conflicts(one node used by more than one signal) - in the earlier iterations. In each iteration, it tries to - solve the conflicts while keeping the critical connections - routed as short as possible. The routing process is said to - be completed when no conflicts exist and all connections - are routed. -Note: NBR uses a different method to calculate timing slacks. The - worst slack and total negative slack may not be the same as - that in TRCE report. You should always run TRCE to verify - your design. -***************************************************************** - -Start NBR special constraint process at 05:22:14 08/15/23 - -Start NBR section for initial routing at 05:22:14 08/15/23 -Level 1, iteration 1 -2(0.00%) conflicts; 537(79.67%) untouched conns; 468417 (nbr) score; -Estimated worst slack/total negative slack: -5.186ns/-468.418ns; real time: 6 secs -Level 2, iteration 1 -11(0.01%) conflicts; 474(70.33%) untouched conns; 377050 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-377.051ns; real time: 7 secs -Level 3, iteration 1 -20(0.02%) conflicts; 254(37.69%) untouched conns; 373495 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-373.496ns; real time: 7 secs -Level 4, iteration 1 -11(0.01%) conflicts; 0(0.00%) untouched conn; 386254 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-386.255ns; real time: 7 secs - -Info: Initial congestion level at 75% usage is 0 -Info: Initial congestion area at 75% usage is 0 (0.00%) - -Start NBR section for normal routing at 05:22:15 08/15/23 -Level 1, iteration 1 -7(0.01%) conflicts; 4(0.59%) untouched conns; 379537 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-379.537ns; real time: 7 secs -Level 4, iteration 1 -9(0.01%) conflicts; 0(0.00%) untouched conn; 380799 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-380.800ns; real time: 7 secs -Level 4, iteration 2 -6(0.01%) conflicts; 0(0.00%) untouched conn; 390586 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-390.587ns; real time: 7 secs -Level 4, iteration 3 -6(0.01%) conflicts; 0(0.00%) untouched conn; 384718 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-384.719ns; real time: 7 secs -Level 4, iteration 4 -6(0.01%) conflicts; 0(0.00%) untouched conn; 384718 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-384.719ns; real time: 7 secs -Level 4, iteration 5 -4(0.00%) conflicts; 0(0.00%) untouched conn; 393013 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-393.014ns; real time: 7 secs -Level 4, iteration 6 -3(0.00%) conflicts; 0(0.00%) untouched conn; 393013 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-393.014ns; real time: 7 secs -Level 4, iteration 7 -3(0.00%) conflicts; 0(0.00%) untouched conn; 393874 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-393.875ns; real time: 7 secs -Level 4, iteration 8 -3(0.00%) conflicts; 0(0.00%) untouched conn; 393874 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-393.875ns; real time: 7 secs -Level 4, iteration 9 -2(0.00%) conflicts; 0(0.00%) untouched conn; 409288 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-409.289ns; real time: 7 secs -Level 4, iteration 10 -3(0.00%) conflicts; 0(0.00%) untouched conn; 409288 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-409.289ns; real time: 7 secs -Level 4, iteration 11 -3(0.00%) conflicts; 0(0.00%) untouched conn; 393035 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-393.036ns; real time: 7 secs -Level 4, iteration 12 -3(0.00%) conflicts; 0(0.00%) untouched conn; 393035 (nbr) score; -Estimated worst slack/total negative slack: -4.364ns/-393.036ns; real time: 7 secs -Level 4, iteration 13 -2(0.00%) conflicts; 0(0.00%) untouched conn; 404326 (nbr) score; -Estimated worst slack/total negative slack: -4.574ns/-404.327ns; real time: 7 secs -Level 4, iteration 14 -2(0.00%) conflicts; 0(0.00%) untouched conn; 404326 (nbr) score; -Estimated worst slack/total negative slack: -4.574ns/-404.327ns; real time: 7 secs -Level 4, iteration 15 -2(0.00%) conflicts; 0(0.00%) untouched conn; 411533 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-411.534ns; real time: 7 secs -Level 4, iteration 16 -3(0.00%) conflicts; 0(0.00%) untouched conn; 411533 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-411.534ns; real time: 7 secs -Level 4, iteration 17 -2(0.00%) conflicts; 0(0.00%) untouched conn; 404668 (nbr) score; -Estimated worst slack/total negative slack: -4.574ns/-404.669ns; real time: 7 secs -Level 4, iteration 18 -1(0.00%) conflict; 0(0.00%) untouched conn; 404668 (nbr) score; -Estimated worst slack/total negative slack: -4.574ns/-404.669ns; real time: 7 secs -Level 4, iteration 19 -1(0.00%) conflict; 0(0.00%) untouched conn; 411533 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-411.534ns; real time: 7 secs -Level 4, iteration 20 -1(0.00%) conflict; 0(0.00%) untouched conn; 411533 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-411.534ns; real time: 7 secs -Level 4, iteration 21 -1(0.00%) conflict; 0(0.00%) untouched conn; 411533 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-411.534ns; real time: 7 secs -Level 4, iteration 22 -1(0.00%) conflict; 0(0.00%) untouched conn; 411533 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-411.534ns; real time: 7 secs -Level 4, iteration 23 -1(0.00%) conflict; 0(0.00%) untouched conn; 411276 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-411.277ns; real time: 7 secs -Level 4, iteration 24 -1(0.00%) conflict; 0(0.00%) untouched conn; 411276 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-411.277ns; real time: 7 secs -Level 4, iteration 25 -0(0.00%) conflict; 0(0.00%) untouched conn; 411952 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-411.953ns; real time: 7 secs - -Start NBR section for performance tuning (iteration 1) at 05:22:15 08/15/23 -Level 4, iteration 1 -1(0.00%) conflict; 0(0.00%) untouched conn; 405829 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-405.830ns; real time: 7 secs -Level 4, iteration 2 -0(0.00%) conflict; 0(0.00%) untouched conn; 411952 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-411.953ns; real time: 7 secs - -Start NBR section for re-routing at 05:22:15 08/15/23 -Level 4, iteration 1 -0(0.00%) conflict; 0(0.00%) untouched conn; 411952 (nbr) score; -Estimated worst slack/total negative slack: -4.650ns/-411.953ns; real time: 7 secs - -Start NBR section for post-routing at 05:22:15 08/15/23 - -End NBR router with 0 unrouted connection - -NBR Summary ------------ - Number of unrouted connections : 0 (0.00%) - Number of connections with timing violations : 254 (37.69%) - Estimated worst slack : -4.650ns - Timing score : 391939 ------------ -Notes: The timing info is calculated for SETUP only and all PAR_ADJs are ignored. - - - - - -Total CPU time 6 secs -Total REAL time: 7 secs -Completely routed. -End of route. 674 routed (100.00%); 0 unrouted. - -Hold time timing score: 0, hold timing errors: 0 - -Timing score: 391939 - -Dumping design to file RAM2GS_LCMXO2_1200HC_impl1.dir/5_1.ncd. - - -PAR_SUMMARY::Run status = Completed -PAR_SUMMARY::Number of unrouted conns = 0 -PAR_SUMMARY::Worst slack> = -4.650 -PAR_SUMMARY::Timing score> = 391.939 -PAR_SUMMARY::Worst slack> = 0.304 -PAR_SUMMARY::Timing score> = 0.000 -PAR_SUMMARY::Number of errors = 0 - -Total CPU time to completion: 6 secs -Total REAL time to completion: 7 secs - -par done! - -Note: user must run 'Trace' for timing closure signoff. - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. -Exiting par with exit code 0 -Exiting mpartrce with exit code 0 - -trce -f "RAM2GS_LCMXO2_1200HC_impl1.pt" -o "RAM2GS_LCMXO2_1200HC_impl1.twr" "RAM2GS_LCMXO2_1200HC_impl1.ncd" "RAM2GS_LCMXO2_1200HC_impl1.prf" -trce: version Diamond (64-bit) 3.12.1.454 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. - -Loading design for application trce from file ram2gs_lcmxo2_1200hc_impl1.ncd. -Design name: RAM2GS -NCD version: 3.3 -Vendor: LATTICE -Device: LCMXO2-1200HC -Package: TQFP100 -Performance: 4 -Loading device for application trce from file 'xo2c1200.nph' in environment: C:/lscc/diamond/3.12/ispfpga. -Package Status: Final Version 1.44. -Performance Hardware Data Status: Final Version 34.4. -Setup and Hold Report - --------------------------------------------------------------------------------- -Lattice TRACE Report - Setup, Version Diamond (64-bit) 3.12.1.454 -Tue Aug 15 05:22:16 2023 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. - -Report Information ------------------- -Command line: trce -v 10 -gt -sethld -sp 4 -sphld m -o RAM2GS_LCMXO2_1200HC_impl1.twr -gui -msgset D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/promote.xml RAM2GS_LCMXO2_1200HC_impl1.ncd RAM2GS_LCMXO2_1200HC_impl1.prf -Design file: ram2gs_lcmxo2_1200hc_impl1.ncd -Preference file: ram2gs_lcmxo2_1200hc_impl1.prf -Device,speed: LCMXO2-1200HC,4 -Report level: verbose report, limited to 10 items per preference --------------------------------------------------------------------------------- - -Report Type: based on TRACE automatically generated preferences -BLOCK ASYNCPATHS -BLOCK RESETPATHS --------------------------------------------------------------------------------- - - - -Timing summary (Setup): ---------------- - -Timing errors: 335 Score: 391939 -Cumulative negative slack: 304509 - -Constraints cover 572 paths, 2 nets, and 409 connections (60.68% coverage) - --------------------------------------------------------------------------------- -Lattice TRACE Report - Hold, Version Diamond (64-bit) 3.12.1.454 -Tue Aug 15 05:22:16 2023 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. - -Report Information ------------------- -Command line: trce -v 10 -gt -sethld -sp 4 -sphld m -o RAM2GS_LCMXO2_1200HC_impl1.twr -gui -msgset D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/promote.xml RAM2GS_LCMXO2_1200HC_impl1.ncd RAM2GS_LCMXO2_1200HC_impl1.prf -Design file: ram2gs_lcmxo2_1200hc_impl1.ncd -Preference file: ram2gs_lcmxo2_1200hc_impl1.prf -Device,speed: LCMXO2-1200HC,m -Report level: verbose report, limited to 10 items per preference --------------------------------------------------------------------------------- - -BLOCK ASYNCPATHS -BLOCK RESETPATHS --------------------------------------------------------------------------------- - - - -Timing summary (Hold): ---------------- - -Timing errors: 0 Score: 0 -Cumulative negative slack: 0 - -Constraints cover 572 paths, 2 nets, and 409 connections (60.68% coverage) - - - -Timing summary (Setup and Hold): ---------------- - -Timing errors: 335 (setup), 0 (hold) -Score: 391939 (setup), 0 (hold) -Cumulative negative slack: 304509 (304509+0) --------------------------------------------------------------------------------- - --------------------------------------------------------------------------------- - -Total CPU Time: 0 secs -Total REAL Time: 0 secs -Peak Memory Usage: 46 MB - - -iotiming "RAM2GS_LCMXO2_1200HC_impl1.ncd" "RAM2GS_LCMXO2_1200HC_impl1.prf" -I/O Timing Report: -: version Diamond (64-bit) 3.12.1.454 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. - -Loading design for application iotiming from file ram2gs_lcmxo2_1200hc_impl1.ncd. -Design name: RAM2GS -NCD version: 3.3 -Vendor: LATTICE -Device: LCMXO2-1200HC -Package: TQFP100 -Performance: 4 -Loading device for application iotiming from file 'xo2c1200.nph' in environment: C:/lscc/diamond/3.12/ispfpga. -Package Status: Final Version 1.44. -Performance Hardware Data Status: Final Version 34.4. -Running Performance Grade: 4 -Computing Setup Time ... -Computing Max Clock to Output Delay ... -Computing Hold Time ... -Computing Min Clock to Output Delay ... - -Loading design for application iotiming from file ram2gs_lcmxo2_1200hc_impl1.ncd. -Design name: RAM2GS -NCD version: 3.3 -Vendor: LATTICE -Device: LCMXO2-1200HC -Package: TQFP100 -Performance: 5 -Package Status: Final Version 1.44. -Performance Hardware Data Status: Final Version 34.4. -Running Performance Grade: 5 -Computing Setup Time ... -Computing Max Clock to Output Delay ... -Computing Hold Time ... -Computing Min Clock to Output Delay ... - -Loading design for application iotiming from file ram2gs_lcmxo2_1200hc_impl1.ncd. -Design name: RAM2GS -NCD version: 3.3 -Vendor: LATTICE -Device: LCMXO2-1200HC -Package: TQFP100 -Performance: 6 -Package Status: Final Version 1.44. -Performance Hardware Data Status: Final Version 34.4. -Running Performance Grade: 6 -Computing Setup Time ... -Computing Max Clock to Output Delay ... -Computing Hold Time ... -Computing Min Clock to Output Delay ... - -Loading design for application iotiming from file ram2gs_lcmxo2_1200hc_impl1.ncd. -Design name: RAM2GS -NCD version: 3.3 -Vendor: LATTICE -Device: LCMXO2-1200HC -Package: TQFP100 -Performance: M -Package Status: Final Version 1.44. -Performance Hardware Data Status: Final Version 34.4. -Running Performance Grade: M -Computing Setup Time ... -Computing Max Clock to Output Delay ... -Computing Hold Time ... -Computing Min Clock to Output Delay ... -Done. - -tmcheck -par "RAM2GS_LCMXO2_1200HC_impl1.par" - -bitgen -f "RAM2GS_LCMXO2_1200HC_impl1.t2b" -w "RAM2GS_LCMXO2_1200HC_impl1.ncd" -jedec "RAM2GS_LCMXO2_1200HC_impl1.prf" - - -BITGEN: Bitstream Generator Diamond (64-bit) 3.12.1.454 -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. - - -Loading design for application Bitgen from file RAM2GS_LCMXO2_1200HC_impl1.ncd. -Design name: RAM2GS -NCD version: 3.3 -Vendor: LATTICE -Device: LCMXO2-1200HC -Package: TQFP100 -Performance: 4 -Loading device for application Bitgen from file 'xo2c1200.nph' in environment: C:/lscc/diamond/3.12/ispfpga. -Package Status: Final Version 1.44. -Performance Hardware Data Status: Final Version 34.4. - -Running DRC. -DRC detected 0 errors and 0 warnings. -Reading Preference File from RAM2GS_LCMXO2_1200HC_impl1.prf. - -Preference Summary: -+---------------------------------+---------------------------------+ -| Preference | Current Setting | -+---------------------------------+---------------------------------+ -| RamCfg | Reset** | -+---------------------------------+---------------------------------+ -| MCCLK_FREQ | 2.08** | -+---------------------------------+---------------------------------+ -| CONFIG_SECURE | OFF** | -+---------------------------------+---------------------------------+ -| INBUF | ON** | -+---------------------------------+---------------------------------+ -| JTAG_PORT | ENABLE** | -+---------------------------------+---------------------------------+ -| SDM_PORT | DISABLE** | -+---------------------------------+---------------------------------+ -| SLAVE_SPI_PORT | DISABLE** | -+---------------------------------+---------------------------------+ -| MASTER_SPI_PORT | DISABLE** | -+---------------------------------+---------------------------------+ -| I2C_PORT | DISABLE** | -+---------------------------------+---------------------------------+ -| MUX_CONFIGURATION_PORTS | DISABLE** | -+---------------------------------+---------------------------------+ -| CONFIGURATION | CFG** | -+---------------------------------+---------------------------------+ -| COMPRESS_CONFIG | ON** | -+---------------------------------+---------------------------------+ -| MY_ASSP | OFF** | -+---------------------------------+---------------------------------+ -| ONE_TIME_PROGRAM | OFF** | -+---------------------------------+---------------------------------+ -| ENABLE_TRANSFR | DISABLE** | -+---------------------------------+---------------------------------+ -| SHAREDEBRINIT | DISABLE** | -+---------------------------------+---------------------------------+ -| BACKGROUND_RECONFIG | OFF** | -+---------------------------------+---------------------------------+ - * Default setting. - ** The specified setting matches the default setting. - - -Creating bit map... - -Bitstream Status: Final Version 1.95. - -Saving bit stream in "RAM2GS_LCMXO2_1200HC_impl1.jed". - -=========== -UFM Summary. -=========== -UFM Size: 511 Pages (128*511 Bits). -UFM Utilization: General Purpose Flash Memory. - -Available General Purpose Flash Memory: 511 Pages (Page 0 to Page 510). -Initialized UFM Pages: 0 Page. - -Total CPU Time: 1 secs -Total REAL Time: 2 secs -Peak Memory Usage: 253 MB diff --git a/CPLD/LCMXO2-1200HC/impl1/hdla_gen_hierarchy.html b/CPLD/LCMXO2-1200HC/impl1/hdla_gen_hierarchy.html deleted file mode 100644 index 2f2bbe3..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/hdla_gen_hierarchy.html +++ /dev/null @@ -1,9 +0,0 @@ -
    Setting log file to 'D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/impl1/hdla_gen_hierarchy.html'.
    -Starting: parse design source files
    -(VERI-1482) Analyzing Verilog file 'C:/lscc/diamond/3.12/ispfpga/userware/NT/SYNTHESIS_HEADERS/machxo2.v'
    -(VERI-1482) Analyzing Verilog file 'D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/RAM2GS-SPI.v'
    -INFO - D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/RAM2GS-SPI.v(1,8-1,14) (VERI-1018) compiling module 'RAM2GS'
    -INFO - D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/RAM2GS-SPI.v(1,1-411,10) (VERI-9000) elaborating module 'RAM2GS'
    -Done: design load finished with (0) errors, and (0) warnings
    -
    -
    \ No newline at end of file diff --git a/CPLD/LCMXO2-1200HC/impl1/impl1.xcf b/CPLD/LCMXO2-1200HC/impl1/impl1.xcf deleted file mode 100644 index 9cdf76b..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/impl1.xcf +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - JTAG - - - 1 - Lattice - MachXO2 - LCMXO2-1200HC - 0x012ba043 - All - LCMXO2-1200HC - - 8 - 11111111 - 1 - 0 - - D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/impl1/RAM2GS_LCMXO2_1200HC_impl1.jed - 08/15/23 05:01:25 - 0x680B - FLASH Erase,Program,Verify - - - - - SEQUENTIAL - ENTIRED CHAIN - No Override - TLR - TLR - - 1 - - - USB - EzUSB-0 - \\?\usb#vid_1134&amp;pid_8001#5&amp;887acb0&amp;0&amp;13# - - TRST ABSENT; - ISPEN ABSENT; - - - diff --git a/CPLD/LCMXO2-1200HC/impl1/ram2gs_lcmxo2_1200hc_impl1.ior b/CPLD/LCMXO2-1200HC/impl1/ram2gs_lcmxo2_1200hc_impl1.ior deleted file mode 100644 index 7695bfd..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/ram2gs_lcmxo2_1200hc_impl1.ior +++ /dev/null @@ -1,139 +0,0 @@ -Loading design for application iotiming from file ram2gs_lcmxo2_1200hc_impl1.ncd. -Design name: RAM2GS -NCD version: 3.3 -Vendor: LATTICE -Device: LCMXO2-1200HC -Package: TQFP100 -Performance: 5 -Package Status: Final Version 1.44. -Performance Hardware Data Status: Final Version 34.4. -Loading design for application iotiming from file ram2gs_lcmxo2_1200hc_impl1.ncd. -Design name: RAM2GS -NCD version: 3.3 -Vendor: LATTICE -Device: LCMXO2-1200HC -Package: TQFP100 -Performance: 6 -Package Status: Final Version 1.44. -Performance Hardware Data Status: Final Version 34.4. -Loading design for application iotiming from file ram2gs_lcmxo2_1200hc_impl1.ncd. -Design name: RAM2GS -NCD version: 3.3 -Vendor: LATTICE -Device: LCMXO2-1200HC -Package: TQFP100 -Performance: M -Package Status: Final Version 1.44. -Performance Hardware Data Status: Final Version 34.4. -// Design: RAM2GS -// Package: TQFP100 -// ncd File: ram2gs_lcmxo2_1200hc_impl1.ncd -// Version: Diamond (64-bit) 3.12.1.454 -// Written on Tue Aug 15 05:22:17 2023 -// M: Minimum Performance Grade -// iotiming RAM2GS_LCMXO2_1200HC_impl1.ncd RAM2GS_LCMXO2_1200HC_impl1.prf -gui -msgset D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/promote.xml - -I/O Timing Report (All units are in ns) - -Worst Case Results across Performance Grades (M, 6, 5, 4): - -// Input Setup and Hold Times - -Port Clock Edge Setup Performance_Grade Hold Performance_Grade ----------------------------------------------------------------------- -CROW[0] nCRAS F 0.891 4 0.676 4 -CROW[1] nCRAS F 0.281 4 1.216 4 -Din[0] PHI2 F 7.907 4 0.089 6 -Din[0] nCCAS F 1.465 4 0.158 4 -Din[1] PHI2 F 7.300 4 1.026 4 -Din[1] nCCAS F 1.035 4 0.527 4 -Din[2] PHI2 F 6.237 4 1.467 4 -Din[2] nCCAS F 1.719 4 -0.108 M -Din[3] PHI2 F 6.623 4 0.176 6 -Din[3] nCCAS F 0.339 4 0.916 4 -Din[4] PHI2 F 6.902 4 1.033 4 -Din[4] nCCAS F 0.687 4 0.951 4 -Din[5] PHI2 F 6.837 4 1.369 4 -Din[5] nCCAS F 2.810 4 -0.220 M -Din[6] PHI2 F 7.648 4 -0.050 M -Din[6] nCCAS F 1.281 4 0.266 4 -Din[7] PHI2 F 7.823 4 -0.159 M -Din[7] nCCAS F 1.810 4 -0.096 M -MAin[0] PHI2 F 6.751 4 -0.273 M -MAin[0] nCRAS F 1.765 4 -0.033 4 -MAin[1] PHI2 F 5.718 4 0.117 M -MAin[1] nCRAS F 1.814 4 -0.051 M -MAin[2] PHI2 F 5.759 4 -0.021 M -MAin[2] nCRAS F 1.323 4 0.309 4 -MAin[3] PHI2 F 6.165 4 -0.235 M -MAin[3] nCRAS F 0.694 4 0.836 4 -MAin[4] PHI2 F 5.236 4 -0.147 M -MAin[4] nCRAS F 0.730 4 0.835 4 -MAin[5] PHI2 F 6.024 4 0.135 M -MAin[5] nCRAS F 0.734 4 0.868 4 -MAin[6] PHI2 F 5.689 4 -0.277 M -MAin[6] nCRAS F 0.288 4 1.210 4 -MAin[7] PHI2 F 6.398 4 -0.307 M -MAin[7] nCRAS F 1.215 4 0.401 4 -MAin[8] nCRAS F 0.817 4 0.727 4 -MAin[9] nCRAS F 0.941 4 0.601 4 -PHI2 RCLK R 0.771 4 1.143 4 -UFMSDO RCLK R -0.238 M 2.305 4 -nCCAS RCLK R 1.651 4 0.388 4 -nCCAS nCRAS F 5.028 4 -0.828 M -nCRAS RCLK R 0.593 4 1.309 4 -nFWE PHI2 F 5.741 4 0.781 4 -nFWE nCRAS F 0.578 4 0.996 4 - - -// Clock to Output Delay - -Port Clock Edge Max_Delay Performance_Grade Min_Delay Performance_Grade ------------------------------------------------------------------------- -LED RCLK R 14.758 4 4.129 M -LED nCRAS F 12.396 4 3.434 M -RA[0] RCLK R 13.780 4 3.894 M -RA[0] nCRAS F 11.795 4 3.277 M -RA[10] RCLK R 12.425 4 3.587 M -RA[11] PHI2 R 10.432 4 3.084 M -RA[1] RCLK R 15.081 4 4.198 M -RA[1] nCRAS F 12.364 4 3.447 M -RA[2] RCLK R 14.518 4 4.082 M -RA[2] nCRAS F 11.696 4 3.275 M -RA[3] RCLK R 13.789 4 3.897 M -RA[3] nCRAS F 12.223 4 3.392 M -RA[4] RCLK R 15.175 4 4.228 M -RA[4] nCRAS F 12.424 4 3.464 M -RA[5] RCLK R 13.789 4 3.897 M -RA[5] nCRAS F 12.359 4 3.437 M -RA[6] RCLK R 15.420 4 4.299 M -RA[6] nCRAS F 12.865 4 3.560 M -RA[7] RCLK R 14.672 4 4.127 M -RA[7] nCRAS F 12.253 4 3.386 M -RA[8] RCLK R 14.952 4 4.191 M -RA[8] nCRAS F 12.244 4 3.383 M -RA[9] RCLK R 14.092 4 3.978 M -RA[9] nCRAS F 13.164 4 3.653 M -RBA[0] nCRAS F 10.278 4 2.970 M -RBA[1] nCRAS F 10.474 4 3.030 M -RCKE RCLK R 12.407 4 3.610 M -RDQMH RCLK R 13.754 4 3.857 M -RDQML RCLK R 13.482 4 3.833 M -RD[0] nCCAS F 10.515 4 3.076 M -RD[1] nCCAS F 10.118 4 2.965 M -RD[2] nCCAS F 9.759 4 2.886 M -RD[3] nCCAS F 9.798 4 2.878 M -RD[4] nCCAS F 10.979 4 3.178 M -RD[5] nCCAS F 11.063 4 3.207 M -RD[6] nCCAS F 10.317 4 3.018 M -RD[7] nCCAS F 10.232 4 2.986 M -UFMCLK RCLK R 12.402 4 3.606 M -UFMSDI RCLK R 11.975 4 3.501 M -nRCAS RCLK R 12.350 4 3.564 M -nRCS RCLK R 11.923 4 3.459 M -nRRAS RCLK R 11.995 4 3.494 M -nRWE RCLK R 11.975 4 3.501 M -nUFMCS RCLK R 11.818 4 3.434 M -WARNING: you must also run trce with hold speed: 4 -WARNING: you must also run trce with hold speed: 6 -WARNING: you must also run trce with setup speed: M diff --git a/CPLD/LCMXO2-1200HC/impl1/ram2gs_lcmxo2_1200hc_impl1_trce.asd b/CPLD/LCMXO2-1200HC/impl1/ram2gs_lcmxo2_1200hc_impl1_trce.asd deleted file mode 100644 index 0894708..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/ram2gs_lcmxo2_1200hc_impl1_trce.asd +++ /dev/null @@ -1,13 +0,0 @@ -[ActiveSupport TRCE] -; Setup Analysis -Fmax_0 = 174.216 MHz (299.401 MHz); -Fmax_1 = 67.833 MHz (99.079 MHz); -Failed = 2 (Total 2); -Clock_ports = 4; -Clock_nets = 4; -; Hold Analysis -Fmax_0 = 0.304 ns (0.000 ns); -Fmax_1 = 0.379 ns (0.000 ns); -Failed = 0 (Total 2); -Clock_ports = 4; -Clock_nets = 4; diff --git a/CPLD/LCMXO2-1200HC/impl1/synthesis.log b/CPLD/LCMXO2-1200HC/impl1/synthesis.log deleted file mode 100644 index fee4113..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/synthesis.log +++ /dev/null @@ -1,239 +0,0 @@ -synthesis: version Diamond (64-bit) 3.12.1.454 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. -Tue Aug 15 05:03:25 2023 - - -Command Line: synthesis -f RAM2GS_LCMXO2_1200HC_impl1_lattice.synproj -gui -msgset D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/promote.xml - -Synthesis options: -The -a option is MachXO2. -The -s option is 4. -The -t option is TQFP100. -The -d option is LCMXO2-1200HC. -Using package TQFP100. -Using performance grade 4. - - -########################################################## - -### Lattice Family : MachXO2 - -### Device : LCMXO2-1200HC - -### Package : TQFP100 - -### Speed : 4 - -########################################################## - - - -INFO - synthesis: User-Selected Strategy Settings -Optimization goal = Balanced -Top-level module name = RAM2GS. -Target frequency = 200.000000 MHz. -Maximum fanout = 1000. -Timing path count = 3 -BRAM utilization = 100.000000 % -DSP usage = true -DSP utilization = 100.000000 % -fsm_encoding_style = auto -resolve_mixed_drivers = 0 -fix_gated_clocks = 1 - -Mux style = Auto -Use Carry Chain = true -carry_chain_length = 0 -Loop Limit = 1950. -Use IO Insertion = TRUE -Use IO Reg = AUTO - -Resource Sharing = TRUE -Propagate Constants = TRUE -Remove Duplicate Registers = TRUE -force_gsr = auto -ROM style = auto -RAM style = auto -The -comp option is FALSE. -The -syn option is FALSE. --p D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC (searchpath added) --p C:/lscc/diamond/3.12/ispfpga/xo2c00/data (searchpath added) --p D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/impl1 (searchpath added) --p D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC (searchpath added) -Verilog design file = D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/RAM2GS-SPI.v -NGD file = RAM2GS_LCMXO2_1200HC_impl1.ngd --sdc option: SDC file input not used. --lpf option: Output file option is ON. -Hardtimer checking is enabled (default). The -dt option is not used. -The -r option is OFF. [ Remove LOC Properties is OFF. ] -Technology check ok... - -Analyzing Verilog file C:/lscc/diamond/3.12/ispfpga/userware/NT/SYNTHESIS_HEADERS/machxo2.v. VERI-1482 -Compile design. -Compile Design Begin -Analyzing Verilog file d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v. VERI-1482 -Analyzing Verilog file C:/lscc/diamond/3.12/ispfpga/userware/NT/SYNTHESIS_HEADERS/machxo2.v. VERI-1482 -Top module name (Verilog): RAM2GS -INFO - synthesis: d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(1): compiling module RAM2GS. VERI-1018 -WARNING - synthesis: d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(131): expression size 32 truncated to fit in target size 2. VERI-1209 -WARNING - synthesis: d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136): expression size 32 truncated to fit in target size 18. VERI-1209 -WARNING - synthesis: d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(263): expression size 32 truncated to fit in target size 4. VERI-1209 -Loading NGL library 'C:/lscc/diamond/3.12/ispfpga/xo2c00a/data/xo2alib.ngl'... -Loading NGL library 'C:/lscc/diamond/3.12/ispfpga/xo2c00/data/xo2clib.ngl'... -Loading NGL library 'C:/lscc/diamond/3.12/ispfpga/mg5g00/data/mg5glib.ngl'... -Loading NGL library 'C:/lscc/diamond/3.12/ispfpga/or5g00/data/orc5glib.ngl'... -Loading device for application map from file 'xo2c1200.nph' in environment: C:/lscc/diamond/3.12/ispfpga. -Package Status: Final Version 1.44. -Top-level module name = RAM2GS. -INFO - synthesis: Extracted state machine for register 'IS' with one-hot encoding -original encoding -> new encoding (one-hot encoding) - - 0000 -> 0000000000000001 - - 0001 -> 0000000000000010 - - 0010 -> 0000000000000100 - - 0011 -> 0000000000001000 - - 0100 -> 0000000000010000 - - 0101 -> 0000000000100000 - - 0110 -> 0000000001000000 - - 0111 -> 0000000010000000 - - 1000 -> 0000000100000000 - - 1001 -> 0000001000000000 - - 1010 -> 0000010000000000 - - 1011 -> 0000100000000000 - - 1100 -> 0001000000000000 - - 1101 -> 0010000000000000 - - 1110 -> 0100000000000000 - - 1111 -> 1000000000000000 - -INFO - synthesis: Extracted state machine for register 'S' with one-hot encoding -original encoding -> new encoding (one-hot encoding) - - 00 -> 0001 - - 01 -> 0010 - - 10 -> 0100 - - 11 -> 1000 - - - - -GSR will not be inferred because no asynchronous signal was found in the netlist. -WARNING - synthesis: Initial value found on instance C1Submitted_406 will be ignored. -Applying 200.000000 MHz constraint to all clocks - -WARNING - synthesis: No user .sdc file. -Results of NGD DRC are available in RAM2GS_drc.log. -Loading NGL library 'C:/lscc/diamond/3.12/ispfpga/xo2c00a/data/xo2alib.ngl'... -Loading NGL library 'C:/lscc/diamond/3.12/ispfpga/xo2c00/data/xo2clib.ngl'... -Loading NGL library 'C:/lscc/diamond/3.12/ispfpga/mg5g00/data/mg5glib.ngl'... -Loading NGL library 'C:/lscc/diamond/3.12/ispfpga/or5g00/data/orc5glib.ngl'... -All blocks are expanded and NGD expansion is successful. -Writing NGD file RAM2GS_LCMXO2_1200HC_impl1.ngd. - -################### Begin Area Report (RAM2GS)###################### -Number of register bits => 102 of 1520 (6 % ) -BB => 8 -CCU2D => 10 -FD1P3AX => 29 -FD1P3AY => 5 -FD1P3IX => 3 -FD1S3AX => 47 -FD1S3IX => 14 -FD1S3JX => 4 -GSR => 1 -IB => 26 -INV => 3 -LUT4 => 122 -OB => 33 -PFUMX => 1 -################### End Area Report ################## - -################### Begin BlackBox Report ###################### -TSALL => 1 -################### End BlackBox Report ################## - -################### Begin Clock Report ###################### -Clock Nets -Number of Clocks: 4 - Net : RCLK_c, loads : 62 - Net : PHI2_c, loads : 11 - Net : nCCAS_c, loads : 2 - Net : nCRAS_c, loads : 2 -Clock Enable Nets -Number of Clock Enables: 14 -Top 10 highest fanout Clock Enables: - Net : RCLK_c_enable_27, loads : 16 - Net : RCLK_c_enable_6, loads : 4 - Net : PHI2_N_120_enable_8, loads : 3 - Net : RCLK_c_enable_10, loads : 3 - Net : RCLK_c_enable_5, loads : 2 - Net : PHI2_N_120_enable_3, loads : 1 - Net : Ready_N_292, loads : 1 - Net : PHI2_N_120_enable_2, loads : 1 - Net : RCLK_c_enable_15, loads : 1 - Net : PHI2_N_120_enable_6, loads : 1 -Highest fanout non-clock nets -Top 10 highest fanout non-clock nets: - Net : RCLK_c_enable_27, loads : 16 - Net : InitReady, loads : 15 - Net : nCRAS_c__inv, loads : 15 - Net : RASr2, loads : 14 - Net : nRowColSel_N_35, loads : 13 - Net : n2380, loads : 13 - Net : nRowColSel, loads : 12 - Net : Ready, loads : 12 - Net : Din_c_4, loads : 10 - Net : MAin_c_1, loads : 10 -################### End Clock Report ################## - -Timing Report Summary --------------- --------------------------------------------------------------------------------- -Constraint | Constraint| Actual|Levels --------------------------------------------------------------------------------- - | | | -create_clock -period 5.000000 -name | | | -clk3 [get_nets nCCAS_c] | -| -| 0 - | | | -create_clock -period 5.000000 -name | | | -clk2 [get_nets nCRAS_c] | -| -| 0 - | | | -create_clock -period 5.000000 -name | | | -clk1 [get_nets PHI2_c] | 200.000 MHz| 50.413 MHz| 6 * - | | | -create_clock -period 5.000000 -name | | | -clk0 [get_nets RCLK_c] | 200.000 MHz| 120.207 MHz| 5 * - | | | --------------------------------------------------------------------------------- - - -2 constraints not met. - - -Peak Memory Usage: 55.238 MB - --------------------------------------------------------------- -Elapsed CPU time for LSE flow : 0.891 secs --------------------------------------------------------------- diff --git a/CPLD/LCMXO2-1200HC/impl1/synthesis_lse.html b/CPLD/LCMXO2-1200HC/impl1/synthesis_lse.html deleted file mode 100644 index 1a480d5..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/synthesis_lse.html +++ /dev/null @@ -1,304 +0,0 @@ - -Synthesis and Ngdbuild Report - - -
    Synthesis and Ngdbuild  Report
    -synthesis:  version Diamond (64-bit) 3.12.1.454
    -
    -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved.
    -Copyright (c) 1995 AT&T Corp.   All rights reserved.
    -Copyright (c) 1995-2001 Lucent Technologies Inc.  All rights reserved.
    -Copyright (c) 2001 Agere Systems   All rights reserved.
    -Copyright (c) 2002-2020 Lattice Semiconductor Corporation,  All rights reserved.
    -Tue Aug 15 05:03:25 2023
    -
    -
    -Command Line:  synthesis -f RAM2GS_LCMXO2_1200HC_impl1_lattice.synproj -gui -msgset D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/promote.xml 
    -
    -Synthesis options:
    -The -a option is MachXO2.
    -The -s option is 4.
    -The -t option is TQFP100.
    -The -d option is LCMXO2-1200HC.
    -Using package TQFP100.
    -Using performance grade 4.
    -                                                          
    -
    -##########################################################
    -
    -### Lattice Family : MachXO2
    -
    -### Device  : LCMXO2-1200HC
    -
    -### Package : TQFP100
    -
    -### Speed   : 4
    -
    -##########################################################
    -
    -                                                          
    -
    -INFO - synthesis: User-Selected Strategy Settings
    -Optimization goal = Balanced
    -Top-level module name = RAM2GS.
    -Target frequency = 200.000000 MHz.
    -Maximum fanout = 1000.
    -Timing path count = 3
    -BRAM utilization = 100.000000 %
    -DSP usage = true
    -DSP utilization = 100.000000 %
    -fsm_encoding_style = auto
    -resolve_mixed_drivers = 0
    -fix_gated_clocks = 1
    -
    -Mux style = Auto
    -Use Carry Chain = true
    -carry_chain_length = 0
    -Loop Limit = 1950.
    -Use IO Insertion = TRUE
    -Use IO Reg = AUTO
    -
    -Resource Sharing = TRUE
    -Propagate Constants = TRUE
    -Remove Duplicate Registers = TRUE
    -force_gsr = auto
    -ROM style = auto
    -RAM style = auto
    -The -comp option is FALSE.
    -The -syn option is FALSE.
    --p D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC (searchpath added)
    --p C:/lscc/diamond/3.12/ispfpga/xo2c00/data (searchpath added)
    --p D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC/impl1 (searchpath added)
    --p D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-1200HC (searchpath added)
    -Verilog design file = D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/RAM2GS-SPI.v
    -NGD file = RAM2GS_LCMXO2_1200HC_impl1.ngd
    --sdc option: SDC file input not used.
    --lpf option: Output file option is ON.
    -Hardtimer checking is enabled (default). The -dt option is not used.
    -The -r option is OFF. [ Remove LOC Properties is OFF. ]
    -Technology check ok...
    -
    -Analyzing Verilog file C:/lscc/diamond/3.12/ispfpga/userware/NT/SYNTHESIS_HEADERS/machxo2.v. VERI-1482
    -Compile design.
    -Compile Design Begin
    -Analyzing Verilog file d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v. VERI-1482
    -Analyzing Verilog file C:/lscc/diamond/3.12/ispfpga/userware/NT/SYNTHESIS_HEADERS/machxo2.v. VERI-1482
    -Top module name (Verilog): RAM2GS
    -INFO - synthesis: d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(1): compiling module RAM2GS. VERI-1018
    -WARNING - synthesis: d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(131): expression size 32 truncated to fit in target size 2. VERI-1209
    -WARNING - synthesis: d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(136): expression size 32 truncated to fit in target size 18. VERI-1209
    -WARNING - synthesis: d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v(263): expression size 32 truncated to fit in target size 4. VERI-1209
    -Loading NGL library 'C:/lscc/diamond/3.12/ispfpga/xo2c00a/data/xo2alib.ngl'...
    -Loading NGL library 'C:/lscc/diamond/3.12/ispfpga/xo2c00/data/xo2clib.ngl'...
    -Loading NGL library 'C:/lscc/diamond/3.12/ispfpga/mg5g00/data/mg5glib.ngl'...
    -Loading NGL library 'C:/lscc/diamond/3.12/ispfpga/or5g00/data/orc5glib.ngl'...
    -Loading device for application map from file 'xo2c1200.nph' in environment: C:/lscc/diamond/3.12/ispfpga.
    -Package Status:                     Final          Version 1.44.
    -Top-level module name = RAM2GS.
    -INFO - synthesis: Extracted state machine for register 'IS' with one-hot encoding
    -original encoding -> new encoding (one-hot encoding)
    -
    - 0000 -> 0000000000000001
    -
    - 0001 -> 0000000000000010
    -
    - 0010 -> 0000000000000100
    -
    - 0011 -> 0000000000001000
    -
    - 0100 -> 0000000000010000
    -
    - 0101 -> 0000000000100000
    -
    - 0110 -> 0000000001000000
    -
    - 0111 -> 0000000010000000
    -
    - 1000 -> 0000000100000000
    -
    - 1001 -> 0000001000000000
    -
    - 1010 -> 0000010000000000
    -
    - 1011 -> 0000100000000000
    -
    - 1100 -> 0001000000000000
    -
    - 1101 -> 0010000000000000
    -
    - 1110 -> 0100000000000000
    -
    - 1111 -> 1000000000000000
    -
    -INFO - synthesis: Extracted state machine for register 'S' with one-hot encoding
    -original encoding -> new encoding (one-hot encoding)
    -
    - 00 -> 0001
    -
    - 01 -> 0010
    -
    - 10 -> 0100
    -
    - 11 -> 1000
    -
    -
    -
    -
    -GSR will not be inferred because no asynchronous signal was found in the netlist.
    -WARNING - synthesis: Initial value found on instance C1Submitted_406 will be ignored.
    -Applying 200.000000 MHz constraint to all clocks
    -
    -WARNING - synthesis: No user .sdc file.
    -Results of NGD DRC are available in RAM2GS_drc.log.
    -Loading NGL library 'C:/lscc/diamond/3.12/ispfpga/xo2c00a/data/xo2alib.ngl'...
    -Loading NGL library 'C:/lscc/diamond/3.12/ispfpga/xo2c00/data/xo2clib.ngl'...
    -Loading NGL library 'C:/lscc/diamond/3.12/ispfpga/mg5g00/data/mg5glib.ngl'...
    -Loading NGL library 'C:/lscc/diamond/3.12/ispfpga/or5g00/data/orc5glib.ngl'...
    -All blocks are expanded and NGD expansion is successful.
    -Writing NGD file RAM2GS_LCMXO2_1200HC_impl1.ngd.
    -
    -################### Begin Area Report (RAM2GS)######################
    -Number of register bits => 102 of 1520 (6 % )
    -BB => 8
    -CCU2D => 10
    -FD1P3AX => 29
    -FD1P3AY => 5
    -FD1P3IX => 3
    -FD1S3AX => 47
    -FD1S3IX => 14
    -FD1S3JX => 4
    -GSR => 1
    -IB => 26
    -INV => 3
    -LUT4 => 122
    -OB => 33
    -PFUMX => 1
    -################### End Area Report ##################
    -
    -################### Begin BlackBox Report ######################
    -TSALL => 1
    -################### End BlackBox Report ##################
    -
    -################### Begin Clock Report ######################
    -Clock Nets
    -Number of Clocks: 4
    -  Net : RCLK_c, loads : 62
    -  Net : PHI2_c, loads : 11
    -  Net : nCCAS_c, loads : 2
    -  Net : nCRAS_c, loads : 2
    -Clock Enable Nets
    -Number of Clock Enables: 14
    -Top 10 highest fanout Clock Enables:
    -  Net : RCLK_c_enable_27, loads : 16
    -  Net : RCLK_c_enable_6, loads : 4
    -  Net : PHI2_N_120_enable_8, loads : 3
    -  Net : RCLK_c_enable_10, loads : 3
    -  Net : RCLK_c_enable_5, loads : 2
    -  Net : PHI2_N_120_enable_3, loads : 1
    -  Net : Ready_N_292, loads : 1
    -  Net : PHI2_N_120_enable_2, loads : 1
    -  Net : RCLK_c_enable_15, loads : 1
    -  Net : PHI2_N_120_enable_6, loads : 1
    -Highest fanout non-clock nets
    -Top 10 highest fanout non-clock nets:
    -  Net : RCLK_c_enable_27, loads : 16
    -  Net : InitReady, loads : 15
    -  Net : nCRAS_c__inv, loads : 15
    -  Net : RASr2, loads : 14
    -  Net : nRowColSel_N_35, loads : 13
    -  Net : n2380, loads : 13
    -  Net : nRowColSel, loads : 12
    -  Net : Ready, loads : 12
    -  Net : Din_c_4, loads : 10
    -  Net : MAin_c_1, loads : 10
    -################### End Clock Report ##################
    -
    -Timing Report Summary
    ---------------
    ---------------------------------------------------------------------------------
    -Constraint                              |   Constraint|       Actual|Levels
    ---------------------------------------------------------------------------------
    -                                        |             |             |
    -create_clock -period 5.000000 -name     |             |             |
    -clk3 [get_nets nCCAS_c]                 |            -|            -|     0  
    -                                        |             |             |
    -create_clock -period 5.000000 -name     |             |             |
    -clk2 [get_nets nCRAS_c]                 |            -|            -|     0  
    -                                        |             |             |
    -create_clock -period 5.000000 -name     |             |             |
    -clk1 [get_nets PHI2_c]                  |  200.000 MHz|   50.413 MHz|     6 *
    -                                        |             |             |
    -create_clock -period 5.000000 -name     |             |             |
    -clk0 [get_nets RCLK_c]                  |  200.000 MHz|  120.207 MHz|     5 *
    -                                        |             |             |
    ---------------------------------------------------------------------------------
    -
    -
    -2 constraints not met.
    -
    -
    -Peak Memory Usage: 55.238  MB
    -
    ---------------------------------------------------------------
    -Elapsed CPU time for LSE flow : 0.891  secs
    ---------------------------------------------------------------
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/CPLD/LCMXO2-1200HC/impl1/xxx_lse_cp_file_list b/CPLD/LCMXO2-1200HC/impl1/xxx_lse_cp_file_list deleted file mode 100644 index 1c1a02c..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/xxx_lse_cp_file_list +++ /dev/null @@ -1,250 +0,0 @@ -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v -3 d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v diff --git a/CPLD/LCMXO2-1200HC/impl1/xxx_lse_sign_file b/CPLD/LCMXO2-1200HC/impl1/xxx_lse_sign_file deleted file mode 100644 index 7e27975..0000000 --- a/CPLD/LCMXO2-1200HC/impl1/xxx_lse_sign_file +++ /dev/null @@ -1,250 +0,0 @@ -LSE_CPS_ID_1 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:8[8:12]" -LSE_CPS_ID_2 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:91[9] 95[5]" -LSE_CPS_ID_3 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:186[13] 231[7]" -LSE_CPS_ID_4 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:232[12] 284[6]" -LSE_CPS_ID_5 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:232[12] 284[6]" -LSE_CPS_ID_6 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:91[9] 95[5]" -LSE_CPS_ID_7 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:91[9] 95[5]" -LSE_CPS_ID_8 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:91[9] 95[5]" -LSE_CPS_ID_9 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:91[9] 95[5]" -LSE_CPS_ID_10 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:91[9] 95[5]" -LSE_CPS_ID_11 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:91[9] 95[5]" -LSE_CPS_ID_12 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:91[9] 95[5]" -LSE_CPS_ID_13 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:98[9] 102[5]" -LSE_CPS_ID_14 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_15 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:105[9] 120[5]" -LSE_CPS_ID_16 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:123[9] 125[5]" -LSE_CPS_ID_17 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:105[9] 120[5]" -LSE_CPS_ID_18 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:105[9] 120[5]" -LSE_CPS_ID_19 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:141[9] 144[5]" -LSE_CPS_ID_20 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:147[9] 285[5]" -LSE_CPS_ID_21 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:147[9] 285[5]" -LSE_CPS_ID_22 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_23 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:91[9] 95[5]" -LSE_CPS_ID_24 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:288[9] 337[5]" -LSE_CPS_ID_25 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:288[9] 337[5]" -LSE_CPS_ID_26 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:147[9] 285[5]" -LSE_CPS_ID_27 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:255[14] 262[8]" -LSE_CPS_ID_28 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:60[14:16]" -LSE_CPS_ID_29 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:147[9] 285[5]" -LSE_CPS_ID_30 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:147[9] 285[5]" -LSE_CPS_ID_31 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:147[9] 285[5]" -LSE_CPS_ID_32 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:147[9] 285[5]" -LSE_CPS_ID_33 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_34 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:105[9] 120[5]" -LSE_CPS_ID_35 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:232[12] 284[6]" -LSE_CPS_ID_36 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:321[13] 335[7]" -LSE_CPS_ID_37 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:263[11:15]" -LSE_CPS_ID_38 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_39 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:288[9] 337[5]" -LSE_CPS_ID_40 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:340[9] 410[5]" -LSE_CPS_ID_41 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:131[13:16]" -LSE_CPS_ID_42 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_43 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_44 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:99[22:51]" -LSE_CPS_ID_45 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:340[9] 410[5]" -LSE_CPS_ID_46 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:55[19:54]" -LSE_CPS_ID_47 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:309[7:24]" -LSE_CPS_ID_48 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:55[19:54]" -LSE_CPS_ID_49 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:55[19:54]" -LSE_CPS_ID_50 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:55[19:54]" -LSE_CPS_ID_51 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:55[19:54]" -LSE_CPS_ID_52 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_53 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:55[19:54]" -LSE_CPS_ID_54 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:91[9] 95[5]" -LSE_CPS_ID_55 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:168[14] 184[8]" -LSE_CPS_ID_56 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:55[19:54]" -LSE_CPS_ID_57 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:131[13:16]" -LSE_CPS_ID_58 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:131[13:16]" -LSE_CPS_ID_59 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:309[7:24]" -LSE_CPS_ID_60 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:340[9] 410[5]" -LSE_CPS_ID_61 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:55[19:54]" -LSE_CPS_ID_62 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:55[19:54]" -LSE_CPS_ID_63 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:345[12] 409[6]" -LSE_CPS_ID_64 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:55[19:54]" -LSE_CPS_ID_65 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:58[17:46]" -LSE_CPS_ID_66 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:98[9] 102[5]" -LSE_CPS_ID_67 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:195[13] 231[7]" -LSE_CPS_ID_68 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:309[7:24]" -LSE_CPS_ID_69 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_70 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:131[13:16]" -LSE_CPS_ID_71 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:309[7:24]" -LSE_CPS_ID_72 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_73 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_74 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:147[9] 285[5]" -LSE_CPS_ID_75 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:83[6:15]" -LSE_CPS_ID_76 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_77 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:195[13] 231[7]" -LSE_CPS_ID_78 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:263[11:15]" -LSE_CPS_ID_79 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:147[9] 285[5]" -LSE_CPS_ID_80 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_81 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:83[6:15]" -LSE_CPS_ID_82 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:263[11:15]" -LSE_CPS_ID_83 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:147[9] 285[5]" -LSE_CPS_ID_84 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:86[13:15]" -LSE_CPS_ID_85 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:147[9] 285[5]" -LSE_CPS_ID_86 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:263[11:15]" -LSE_CPS_ID_87 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:263[11:15]" -LSE_CPS_ID_88 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:233[8:20]" -LSE_CPS_ID_89 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:233[8:20]" -LSE_CPS_ID_90 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:263[11:15]" -LSE_CPS_ID_91 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:288[9] 337[5]" -LSE_CPS_ID_92 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:340[9] 410[5]" -LSE_CPS_ID_93 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_94 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:340[9] 410[5]" -LSE_CPS_ID_95 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:147[9] 285[5]" -LSE_CPS_ID_96 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:288[9] 337[5]" -LSE_CPS_ID_97 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:288[9] 337[5]" -LSE_CPS_ID_98 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:288[9] 337[5]" -LSE_CPS_ID_99 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:288[9] 337[5]" -LSE_CPS_ID_100 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:288[9] 337[5]" -LSE_CPS_ID_101 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:263[11:15]" -LSE_CPS_ID_102 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:233[8:20]" -LSE_CPS_ID_103 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:15[12:17]" -LSE_CPS_ID_104 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:131[13:16]" -LSE_CPS_ID_105 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:263[11:15]" -LSE_CPS_ID_106 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:91[9] 95[5]" -LSE_CPS_ID_107 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:131[13:16]" -LSE_CPS_ID_108 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:263[11:15]" -LSE_CPS_ID_109 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:147[9] 285[5]" -LSE_CPS_ID_110 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:23[27:31]" -LSE_CPS_ID_111 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:83[6:15]" -LSE_CPS_ID_112 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:263[11:15]" -LSE_CPS_ID_113 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:263[11:15]" -LSE_CPS_ID_114 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:263[11:15]" -LSE_CPS_ID_115 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:263[11:15]" -LSE_CPS_ID_116 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:263[11:15]" -LSE_CPS_ID_117 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:263[11:15]" -LSE_CPS_ID_118 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:263[11:15]" -LSE_CPS_ID_119 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:263[11:15]" -LSE_CPS_ID_120 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:105[9] 120[5]" -LSE_CPS_ID_121 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_122 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_123 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_124 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_125 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_126 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_127 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_128 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_129 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_130 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_131 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_132 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_133 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_134 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_135 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_136 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_137 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_138 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:123[9] 125[5]" -LSE_CPS_ID_139 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:123[9] 125[5]" -LSE_CPS_ID_140 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:123[9] 125[5]" -LSE_CPS_ID_141 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:123[9] 125[5]" -LSE_CPS_ID_142 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:123[9] 125[5]" -LSE_CPS_ID_143 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:123[9] 125[5]" -LSE_CPS_ID_144 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:123[9] 125[5]" -LSE_CPS_ID_145 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:105[9] 120[5]" -LSE_CPS_ID_146 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:105[9] 120[5]" -LSE_CPS_ID_147 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:105[9] 120[5]" -LSE_CPS_ID_148 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:105[9] 120[5]" -LSE_CPS_ID_149 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:105[9] 120[5]" -LSE_CPS_ID_150 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:105[9] 120[5]" -LSE_CPS_ID_151 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:105[9] 120[5]" -LSE_CPS_ID_152 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:105[9] 120[5]" -LSE_CPS_ID_153 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:105[9] 120[5]" -LSE_CPS_ID_154 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:98[9] 102[5]" -LSE_CPS_ID_155 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:315[17:31]" -LSE_CPS_ID_156 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:143[40:46]" -LSE_CPS_ID_157 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:143[40:46]" -LSE_CPS_ID_158 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:98[9] 102[5]" -LSE_CPS_ID_159 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:98[9] 102[5]" -LSE_CPS_ID_160 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:98[9] 102[5]" -LSE_CPS_ID_161 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:98[9] 102[5]" -LSE_CPS_ID_162 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:98[9] 102[5]" -LSE_CPS_ID_163 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:98[9] 102[5]" -LSE_CPS_ID_164 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_165 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:60[14:16]" -LSE_CPS_ID_166 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:60[14:16]" -LSE_CPS_ID_167 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:60[14:16]" -LSE_CPS_ID_168 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:60[14:16]" -LSE_CPS_ID_169 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:60[14:16]" -LSE_CPS_ID_170 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:315[17:31]" -LSE_CPS_ID_171 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:60[14:16]" -LSE_CPS_ID_172 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:60[14:16]" -LSE_CPS_ID_173 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:27[15:19]" -LSE_CPS_ID_174 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:27[15:19]" -LSE_CPS_ID_175 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:27[15:19]" -LSE_CPS_ID_176 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:27[15:19]" -LSE_CPS_ID_177 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:27[15:19]" -LSE_CPS_ID_178 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:27[15:19]" -LSE_CPS_ID_179 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:27[15:19]" -LSE_CPS_ID_180 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:27[15:19]" -LSE_CPS_ID_181 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:22[9:12]" -LSE_CPS_ID_182 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:47[19:22]" -LSE_CPS_ID_183 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:47[19:22]" -LSE_CPS_ID_184 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:52[16:18]" -LSE_CPS_ID_185 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:52[16:18]" -LSE_CPS_ID_186 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:52[16:18]" -LSE_CPS_ID_187 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:52[16:18]" -LSE_CPS_ID_188 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:52[16:18]" -LSE_CPS_ID_189 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:52[16:18]" -LSE_CPS_ID_190 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:52[16:18]" -LSE_CPS_ID_191 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:52[16:18]" -LSE_CPS_ID_192 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:52[16:18]" -LSE_CPS_ID_193 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:52[16:18]" -LSE_CPS_ID_194 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:52[16:18]" -LSE_CPS_ID_195 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:52[16:18]" -LSE_CPS_ID_196 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:46[13:17]" -LSE_CPS_ID_197 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:45[13:17]" -LSE_CPS_ID_198 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:46[45:49]" -LSE_CPS_ID_199 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:46[23:28]" -LSE_CPS_ID_200 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:46[34:39]" -LSE_CPS_ID_201 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:56[16:21]" -LSE_CPS_ID_202 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:56[9:14]" -LSE_CPS_ID_203 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:63[13:19]" -LSE_CPS_ID_204 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:64[13:19]" -LSE_CPS_ID_205 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:65[13:19]" -LSE_CPS_ID_206 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:8[8:12]" -LSE_CPS_ID_207 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:35[14:18]" -LSE_CPS_ID_208 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:35[14:18]" -LSE_CPS_ID_209 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:35[14:18]" -LSE_CPS_ID_210 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:35[14:18]" -LSE_CPS_ID_211 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:35[14:18]" -LSE_CPS_ID_212 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:35[14:18]" -LSE_CPS_ID_213 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:35[14:18]" -LSE_CPS_ID_214 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:35[14:18]" -LSE_CPS_ID_215 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:35[14:18]" -LSE_CPS_ID_216 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:35[14:18]" -LSE_CPS_ID_217 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:34[14:18]" -LSE_CPS_ID_218 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:34[14:18]" -LSE_CPS_ID_219 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:26[14:17]" -LSE_CPS_ID_220 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:26[14:17]" -LSE_CPS_ID_221 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:26[14:17]" -LSE_CPS_ID_222 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:26[14:17]" -LSE_CPS_ID_223 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:26[14:17]" -LSE_CPS_ID_224 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:26[14:17]" -LSE_CPS_ID_225 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:26[14:17]" -LSE_CPS_ID_226 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:26[14:17]" -LSE_CPS_ID_227 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:11[8:13]" -LSE_CPS_ID_228 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:11[15:20]" -LSE_CPS_ID_229 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:36[8:12]" -LSE_CPS_ID_230 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:41[8:12]" -LSE_CPS_ID_231 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:66[8:14]" -LSE_CPS_ID_232 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_233 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:23[17:23]" -LSE_CPS_ID_234 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_235 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:232[12] 284[6]" -LSE_CPS_ID_236 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:309[7:24]" -LSE_CPS_ID_237 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_238 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_239 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:134[9] 138[5]" -LSE_CPS_ID_240 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:232[12] 284[6]" -LSE_CPS_ID_241 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_242 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_243 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:105[9] 120[5]" -LSE_CPS_ID_244 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:136[9:13]" -LSE_CPS_ID_245 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:105[9] 120[5]" -LSE_CPS_ID_246 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:402[16:47]" -LSE_CPS_ID_247 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:11[15:20]" -LSE_CPS_ID_248 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:131[13:16]" -LSE_CPS_ID_249 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:11[8:13]" -LSE_CPS_ID_250 "d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v:402[16:47]" diff --git a/CPLD/LCMXO2-640HC/.setting.ini b/CPLD/LCMXO2-640HC/.setting.ini index 713c9cf..4c7a004 100644 --- a/CPLD/LCMXO2-640HC/.setting.ini +++ b/CPLD/LCMXO2-640HC/.setting.ini @@ -1,4 +1,4 @@ [General] Export.auto_tasks=Jedecgen -PAR.auto_tasks=PARTrace, IOTiming -Map.auto_tasks=MapTrace, MapVerilogSimFile, MapVHDLSimFile +PAR.auto_tasks=@@empty() +Map.auto_tasks=@@empty() diff --git a/CPLD/LCMXO2-640HC/.spreadsheet_view.ini b/CPLD/LCMXO2-640HC/.spreadsheet_view.ini index f26306f..0d0cdb7 100644 --- a/CPLD/LCMXO2-640HC/.spreadsheet_view.ini +++ b/CPLD/LCMXO2-640HC/.spreadsheet_view.ini @@ -6,14 +6,14 @@ sig_sort_ascending=true active_Sheet=Port Assignments [Port%20Assignments] -Name="164,0" +Name="154,0" Group%20By="84,1" Pin="50,2" BANK="62,3" BANK_VCC="90,4" VREF="60,5" IO_TYPE="147,6" -PULLMODE="97,7" +PULLMODE="119,7" DRIVE="67,8" SLEWRATE="92,9" CLAMP="71,10" @@ -63,7 +63,7 @@ Name="100,ELLIPSIS" Prioritize="100,ELLIPSIS" [Timing%20Preferences] -Preference%20Name="129,ELLIPSIS" +Preference%20Name="158,ELLIPSIS" Preference%20Value="105,ELLIPSIS" Preference%20Unit="98,ELLIPSIS" diff --git a/CPLD/LCMXO2-640HC/RAM2GS_LCMXO2_640HC.ldf b/CPLD/LCMXO2-640HC/RAM2GS_LCMXO2_640HC.ldf index 49c9e13..5b8e620 100644 --- a/CPLD/LCMXO2-640HC/RAM2GS_LCMXO2_640HC.ldf +++ b/CPLD/LCMXO2-640HC/RAM2GS_LCMXO2_640HC.ldf @@ -1,7 +1,7 @@ - + @@ -12,6 +12,9 @@ + + + diff --git a/CPLD/LCMXO2-640HC/RAM2GS_LCMXO2_640HC.lpf b/CPLD/LCMXO2-640HC/RAM2GS_LCMXO2_640HC.lpf index 63de512..dbcda5a 100644 --- a/CPLD/LCMXO2-640HC/RAM2GS_LCMXO2_640HC.lpf +++ b/CPLD/LCMXO2-640HC/RAM2GS_LCMXO2_640HC.lpf @@ -25,7 +25,7 @@ LOCATE COMP "MAin[7]" SITE "18" ; LOCATE COMP "MAin[8]" SITE "25" ; LOCATE COMP "MAin[9]" SITE "32" ; LOCATE COMP "UFMSDO" SITE "27" ; -LOCATE COMP "nFWE" SITE "28" ; +LOCATE COMP "nFWE" SITE "15" ; LOCATE COMP "Dout[0]" SITE "76" ; LOCATE COMP "Dout[1]" SITE "86" ; LOCATE COMP "Dout[2]" SITE "87" ; @@ -52,8 +52,8 @@ LOCATE COMP "RBA[1]" SITE "60" ; LOCATE COMP "RCKE" SITE "53" ; LOCATE COMP "RDQMH" SITE "51" ; LOCATE COMP "RDQML" SITE "48" ; -LOCATE COMP "UFMCLK" SITE "29" ; -LOCATE COMP "UFMSDI" SITE "30" ; +LOCATE COMP "UFMCLK" SITE "28" ; +LOCATE COMP "UFMSDI" SITE "29" ; LOCATE COMP "nRCAS" SITE "52" ; LOCATE COMP "nRCS" SITE "57" ; LOCATE COMP "nRRAS" SITE "54" ; @@ -66,3 +66,71 @@ LOCATE COMP "RD[4]" SITE "40" ; LOCATE COMP "RD[5]" SITE "41" ; LOCATE COMP "RD[6]" SITE "42" ; LOCATE COMP "RD[7]" SITE "43" ; +IOBUF PORT "CROW[0]" IO_TYPE=LVCMOS33 DRIVE=NA PULLMODE=KEEPER ; +IOBUF PORT "CROW[1]" IO_TYPE=LVCMOS33 SLEWRATE=NA DRIVE=NA PULLMODE=KEEPER ; +IOBUF PORT "PHI2" IO_TYPE=LVCMOS33 ; +IOBUF PORT "RCLK" IO_TYPE=LVCMOS33 PULLMODE=KEEPER ; +IOBUF PORT "nCCAS" IO_TYPE=LVCMOS33 PULLMODE=UP ; +IOBUF PORT "nCRAS" IO_TYPE=LVCMOS33 PULLMODE=UP ; +IOBUF PORT "Din[0]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER ; +IOBUF PORT "Din[1]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER ; +IOBUF PORT "Din[2]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER ; +IOBUF PORT "Din[3]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER ; +IOBUF PORT "Din[4]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER ; +IOBUF PORT "Din[5]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER ; +IOBUF PORT "Din[6]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER ; +IOBUF PORT "Din[7]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER ; +IOBUF PORT "MAin[0]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER ; +IOBUF PORT "MAin[1]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER ; +IOBUF PORT "MAin[2]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER ; +IOBUF PORT "MAin[3]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER ; +IOBUF PORT "MAin[4]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER ; +IOBUF PORT "MAin[5]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER ; +IOBUF PORT "MAin[6]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER ; +IOBUF PORT "MAin[7]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER ; +IOBUF PORT "MAin[8]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER ; +IOBUF PORT "MAin[9]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER ; +IOBUF PORT "UFMSDO" IO_TYPE=LVCMOS33 PULLMODE=KEEPER ; +IOBUF PORT "nFWE" IO_TYPE=LVCMOS33 PULLMODE=UP ; +IOBUF PORT "Dout[0]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 DIFFRESISTOR=OFF SLEWRATE=SLOW ; +IOBUF PORT "Dout[1]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 DIFFRESISTOR=OFF SLEWRATE=SLOW ; +IOBUF PORT "Dout[2]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "Dout[3]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "Dout[4]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "Dout[5]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "Dout[6]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "Dout[7]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "LED" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=24 SLEWRATE=SLOW ; +IOBUF PORT "RA[0]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 DIFFRESISTOR=OFF SLEWRATE=SLOW ; +IOBUF PORT "RA[1]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "RA[2]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "RA[3]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "RA[4]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "RA[5]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "RA[6]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "RA[7]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "RA[8]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "RA[9]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "RA[10]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "RA[11]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "RBA[0]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "RBA[1]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "RCKE" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "RDQMH" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "RDQML" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "UFMCLK" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "UFMSDI" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "nRCAS" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "nRCS" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "nRRAS" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "nRWE" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "nUFMCS" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "RD[0]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "RD[1]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "RD[2]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "RD[3]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "RD[4]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "RD[5]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "RD[6]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +IOBUF PORT "RD[7]" IO_TYPE=LVCMOS33 PULLMODE=KEEPER DRIVE=4 SLEWRATE=SLOW ; +LOCATE COMP "nUFMCS" SITE "30" ; diff --git a/CPLD/LCMXO2-640HC/RAM2GS_LCMXO2_640HC1.sty b/CPLD/LCMXO2-640HC/RAM2GS_LCMXO2_640HC1.sty index feec63c..39b91c8 100644 --- a/CPLD/LCMXO2-640HC/RAM2GS_LCMXO2_640HC1.sty +++ b/CPLD/LCMXO2-640HC/RAM2GS_LCMXO2_640HC1.sty @@ -88,7 +88,7 @@ - + @@ -172,15 +172,15 @@ - - + + - + - + diff --git a/CPLD/LCMXO2-640HC/RAM2GS_LCMXO2_640HC_tcr.dir/pn230816015720.tcr b/CPLD/LCMXO2-640HC/RAM2GS_LCMXO2_640HC_tcr.dir/pn230816015720.tcr new file mode 100644 index 0000000..391d367 --- /dev/null +++ b/CPLD/LCMXO2-640HC/RAM2GS_LCMXO2_640HC_tcr.dir/pn230816015720.tcr @@ -0,0 +1,79 @@ +#Start recording tcl command: 8/15/2023 22:16:47 +#Project Location: D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC; Project name: RAM2GS_LCMXO2_640HC +prj_project open "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/RAM2GS_LCMXO2_640HC.ldf" +prj_run Export -impl impl1 +prj_src add "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/RAM2GS.sdc" +prj_run Export -impl impl1 +pgr_project open "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/impl1/impl1.xcf" +prj_run Export -impl impl1 +pgr_project save "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/impl1/impl1.xcf" +prj_run Export -impl impl1 -forceAll +pgr_program run +pgr_project save "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/impl1/impl1.xcf" +pgr_program run +prj_run Export -impl impl1 -forceAll +pgr_project save "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/impl1/impl1.xcf" +pgr_program run +prj_run Export -impl impl1 +launch_synplify_prj impl1 +pgr_project save "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/impl1/impl1.xcf" +prj_strgy set_value -strategy Strategy1 syn_pipelining_retiming=None syn_frequency=70 +prj_strgy set_value -strategy Strategy1 map_io_reg=Both +prj_run Export -impl impl1 +prj_run Export -impl impl1 +pgr_project save "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/impl1/impl1.xcf" +pgr_project close +pgr_project open "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/impl1/impl1.xcf" +pgr_project close +pgr_project open "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/impl1/impl1.xcf" +pgr_project close +pgr_project open "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/impl1/impl1.xcf" +pgr_project close +pgr_project open "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/impl1/impl1.xcf" +pgr_program run +prj_run Export -impl impl1 +pgr_program run +prj_run Export -impl impl1 +pgr_program run +pgr_project save "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/impl1/impl1.xcf" +pgr_program run +prj_run Export -impl impl1 -forceAll +pgr_program run +pgr_project save "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/impl1/impl1.xcf" +prj_run Export -impl impl1 +pgr_program run +prj_run Export -impl impl1 +pgr_project save "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/impl1/impl1.xcf" +prj_run Export -impl impl1 +prj_run Export -impl impl1 +pgr_program run +prj_run Export -impl impl1 +pgr_program run +pgr_project save "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/impl1/impl1.xcf" +prj_run Export -impl impl1 +pgr_program run +pgr_project save "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/impl1/impl1.xcf" +prj_run Export -impl impl1 +pgr_program run +prj_run Export -impl impl1 +pgr_program run +pgr_project save "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/impl1/impl1.xcf" +prj_run Export -impl impl1 +pgr_program run +pgr_project save "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/impl1/impl1.xcf" +prj_run Export -impl impl1 -forceAll +pgr_project save "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/impl1/impl1.xcf" +pgr_program run +prj_run Export -impl impl1 +pgr_project save "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/impl1/impl1.xcf" +pgr_program run +pgr_program run +prj_run Export -impl impl1 +pgr_program run +pgr_project save "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/impl1/impl1.xcf" +prj_run Export -impl impl1 +pgr_program run +pgr_project save "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/impl1/impl1.xcf" +prj_project save +prj_project close +#Stop recording: 8/16/2023 01:57:20 diff --git a/CPLD/LCMXO2-640HC/impl1/.build_status b/CPLD/LCMXO2-640HC/impl1/.build_status index 96c9059..c1e52c6 100644 --- a/CPLD/LCMXO2-640HC/impl1/.build_status +++ b/CPLD/LCMXO2-640HC/impl1/.build_status @@ -6,43 +6,46 @@ - + - - - - - + + + + + - - - - + + + + - - - + + - - + + + + + - - - + + + + - - - - - - - - - + + + + + + + + + diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.alt b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.alt index 4bf1035..84dc5f9 100644 --- a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.alt +++ b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.alt @@ -1,9 +1,24 @@ NOTE Copyright (C), 1992-2010, Lattice Semiconductor Corporation * NOTE All Rights Reserved * -NOTE DATE CREATED: Tue Aug 15 05:03:41 2023 * +NOTE DATE CREATED: Tue Aug 15 23:30:13 2023 * NOTE DESIGN NAME: RAM2GS * NOTE DEVICE NAME: LCMXO2-640HC-4TQFP100 * NOTE PIN ASSIGNMENTS * +NOTE PINS RD[0] : 36 : inout * +NOTE PINS Dout[0] : 76 : out * +NOTE PINS PHI2 : 8 : in * +NOTE PINS UFMSDO : 27 : in * +NOTE PINS UFMSDI : 29 : out * +NOTE PINS UFMCLK : 28 : out * +NOTE PINS nUFMCS : 30 : out * +NOTE PINS RDQML : 48 : out * +NOTE PINS RDQMH : 51 : out * +NOTE PINS nRCAS : 52 : out * +NOTE PINS nRRAS : 54 : out * +NOTE PINS nRWE : 49 : out * +NOTE PINS RCKE : 53 : out * +NOTE PINS RCLK : 62 : in * +NOTE PINS nRCS : 57 : out * NOTE PINS RD[7] : 43 : inout * NOTE PINS RD[6] : 42 : inout * NOTE PINS RD[5] : 41 : inout * @@ -11,18 +26,6 @@ NOTE PINS RD[4] : 40 : inout * NOTE PINS RD[3] : 39 : inout * NOTE PINS RD[2] : 38 : inout * NOTE PINS RD[1] : 37 : inout * -NOTE PINS RD[0] : 36 : inout * -NOTE PINS Dout[7] : 82 : out * -NOTE PINS Dout[6] : 78 : out * -NOTE PINS Dout[5] : 84 : out * -NOTE PINS Dout[4] : 83 : out * -NOTE PINS Dout[3] : 85 : out * -NOTE PINS Dout[2] : 87 : out * -NOTE PINS Dout[1] : 86 : out * -NOTE PINS Dout[0] : 76 : out * -NOTE PINS LED : 34 : out * -NOTE PINS RBA[1] : 60 : out * -NOTE PINS RBA[0] : 58 : out * NOTE PINS RA[11] : 59 : out * NOTE PINS RA[10] : 64 : out * NOTE PINS RA[9] : 63 : out * @@ -35,17 +38,29 @@ NOTE PINS RA[3] : 71 : out * NOTE PINS RA[2] : 69 : out * NOTE PINS RA[1] : 67 : out * NOTE PINS RA[0] : 66 : out * -NOTE PINS nRCS : 57 : out * -NOTE PINS RCKE : 53 : out * -NOTE PINS nRWE : 49 : out * -NOTE PINS nRRAS : 54 : out * -NOTE PINS nRCAS : 52 : out * -NOTE PINS RDQMH : 51 : out * -NOTE PINS RDQML : 48 : out * -NOTE PINS nUFMCS : 77 : out * -NOTE PINS UFMCLK : 29 : out * -NOTE PINS UFMSDI : 30 : out * -NOTE PINS PHI2 : 8 : in * +NOTE PINS RBA[1] : 60 : out * +NOTE PINS RBA[0] : 58 : out * +NOTE PINS LED : 34 : out * +NOTE PINS nFWE : 15 : in * +NOTE PINS nCRAS : 17 : in * +NOTE PINS nCCAS : 9 : in * +NOTE PINS Dout[7] : 82 : out * +NOTE PINS Dout[6] : 78 : out * +NOTE PINS Dout[5] : 84 : out * +NOTE PINS Dout[4] : 83 : out * +NOTE PINS Dout[3] : 85 : out * +NOTE PINS Dout[2] : 87 : out * +NOTE PINS Dout[1] : 86 : out * +NOTE PINS Din[7] : 1 : in * +NOTE PINS Din[6] : 2 : in * +NOTE PINS Din[5] : 98 : in * +NOTE PINS Din[4] : 99 : in * +NOTE PINS Din[3] : 97 : in * +NOTE PINS Din[2] : 88 : in * +NOTE PINS Din[1] : 96 : in * +NOTE PINS Din[0] : 3 : in * +NOTE PINS CROW[1] : 16 : in * +NOTE PINS CROW[0] : 10 : in * NOTE PINS MAin[9] : 32 : in * NOTE PINS MAin[8] : 25 : in * NOTE PINS MAin[7] : 18 : in * @@ -56,20 +71,5 @@ NOTE PINS MAin[3] : 21 : in * NOTE PINS MAin[2] : 13 : in * NOTE PINS MAin[1] : 12 : in * NOTE PINS MAin[0] : 14 : in * -NOTE PINS CROW[1] : 16 : in * -NOTE PINS CROW[0] : 10 : in * -NOTE PINS Din[7] : 1 : in * -NOTE PINS Din[6] : 2 : in * -NOTE PINS Din[5] : 98 : in * -NOTE PINS Din[4] : 99 : in * -NOTE PINS Din[3] : 97 : in * -NOTE PINS Din[2] : 88 : in * -NOTE PINS Din[1] : 96 : in * -NOTE PINS Din[0] : 3 : in * -NOTE PINS nCCAS : 9 : in * -NOTE PINS nCRAS : 17 : in * -NOTE PINS nFWE : 28 : in * -NOTE PINS RCLK : 62 : in * -NOTE PINS UFMSDO : 27 : in * NOTE CONFIGURATION MODE: NONE * NOTE COMPRESSION: on * diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.areasrr b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.areasrr new file mode 100644 index 0000000..41b5352 --- /dev/null +++ b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.areasrr @@ -0,0 +1,29 @@ +---------------------------------------------------------------------- +Report for cell RAM2GS.verilog + +Register bits: 90 of 640 (14%) +PIC Latch: 0 +I/O cells: 67 + Cell usage: + cell count Res Usage(%) + BB 8 100.0 + CCU2D 10 100.0 + FD1P3AX 11 100.0 + FD1S3AX 49 100.0 + FD1S3AY 1 100.0 + FD1S3IX 3 100.0 + GSR 1 100.0 + IB 26 100.0 + IFS1P3DX 9 100.0 + INV 7 100.0 + OB 33 100.0 + OFS1P3BX 4 100.0 + OFS1P3DX 12 100.0 + OFS1P3JX 1 100.0 + ORCALUT4 135 100.0 + PFUMX 1 100.0 + PUR 1 100.0 + VHI 1 100.0 + VLO 1 100.0 + + TOTAL 314 diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.bgn b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.bgn index e34c8b7..e41242e 100644 --- a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.bgn +++ b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.bgn @@ -4,7 +4,7 @@ Copyright (c) 1995 AT&T Corp. All rights reserved. Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. Copyright (c) 2001 Agere Systems All rights reserved. Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. -Tue Aug 15 05:03:39 2023 +Tue Aug 15 23:30:11 2023 Command: bitgen -g RamCfg:Reset -path D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC -w -jedec -gui -msgset D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/promote.xml RAM2GS_LCMXO2_640HC_impl1.ncd RAM2GS_LCMXO2_640HC_impl1.prf @@ -83,4 +83,4 @@ Initialized UFM Pages: 0 Page. Total CPU Time: 1 secs Total REAL Time: 2 secs -Peak Memory Usage: 245 MB +Peak Memory Usage: 246 MB diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.dir/5_1.ncd b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.dir/5_1.ncd index f841f9031ef51586d90adaa5aa327f17523d9888..b1a670d640a400d10a43846ee53854678f7663b1 100644 GIT binary patch literal 204561 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

    Z$T`a&|LGchd}-lvSkM&T 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�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: -4.914ns/-481.988ns; real time: 7 secs +0(0.00%) conflict; 529(75.25%) untouched conns; 0 (nbr) score; +Estimated worst slack/total negative slack: 6.016ns/0.000ns; real time: 6 secs Level 2, iteration 1 -7(0.02%) conflicts; 473(70.18%) untouched conns; 424953 (nbr) score; -Estimated worst slack/total negative slack: -4.988ns/-424.953ns; real time: 7 secs +0(0.00%) conflict; 526(74.82%) untouched conns; 0 (nbr) score; +Estimated worst slack/total negative slack: 5.772ns/0.000ns; real time: 6 secs Level 3, iteration 1 -12(0.03%) conflicts; 254(37.69%) untouched conns; 455640 (nbr) score; -Estimated worst slack/total negative slack: -5.118ns/-455.640ns; real time: 7 secs +0(0.00%) conflict; 526(74.82%) untouched conns; 0 (nbr) score; +Estimated worst slack/total negative slack: 6.058ns/0.000ns; real time: 6 secs Level 4, iteration 1 -6(0.01%) conflicts; 0(0.00%) untouched conn; 465237 (nbr) score; -Estimated worst slack/total negative slack: -5.122ns/-465.237ns; real time: 7 secs +3(0.01%) conflicts; 0(0.00%) untouched conn; 0 (nbr) score; +Estimated worst slack/total negative slack: 5.827ns/0.000ns; real time: 6 secs Info: Initial congestion level at 75% usage is 0 Info: Initial congestion area at 75% usage is 0 (0.00%) -Start NBR section for normal routing at 05:03:35 08/15/23 +Start NBR section for normal routing at 23:30:11 08/15/23 Level 4, iteration 1 -6(0.01%) conflicts; 0(0.00%) untouched conn; 461186 (nbr) score; -Estimated worst slack/total negative slack: -4.992ns/-461.186ns; real time: 7 secs +1(0.00%) conflict; 0(0.00%) untouched conn; 0 (nbr) score; +Estimated worst slack/total negative slack: 5.827ns/0.000ns; real time: 6 secs Level 4, iteration 2 -3(0.01%) conflicts; 0(0.00%) untouched conn; 460933 (nbr) score; -Estimated worst slack/total negative slack: -4.992ns/-460.933ns; real time: 7 secs -Level 4, iteration 3 -2(0.00%) conflicts; 0(0.00%) untouched conn; 461063 (nbr) score; -Estimated worst slack/total negative slack: -4.992ns/-461.063ns; real time: 7 secs -Level 4, iteration 4 -1(0.00%) conflict; 0(0.00%) untouched conn; 461063 (nbr) score; -Estimated worst slack/total negative slack: -4.992ns/-461.063ns; real time: 7 secs -Level 4, iteration 5 -0(0.00%) conflict; 0(0.00%) untouched conn; 468515 (nbr) score; -Estimated worst slack/total negative slack: -5.122ns/-468.515ns; real time: 7 secs +0(0.00%) conflict; 0(0.00%) untouched conn; 0 (nbr) score; +Estimated worst slack/total negative slack: 5.827ns/0.000ns; real time: 6 secs -Start NBR section for performance tuning (iteration 1) at 05:03:35 08/15/23 +Start NBR section for setup/hold timing optimization with effort level 3 at 23:30:11 08/15/23 + +Start NBR section for re-routing at 23:30:11 08/15/23 Level 4, iteration 1 -0(0.00%) conflict; 0(0.00%) untouched conn; 468515 (nbr) score; -Estimated worst slack/total negative slack: -5.122ns/-468.515ns; real time: 7 secs +0(0.00%) conflict; 0(0.00%) untouched conn; 0 (nbr) score; +Estimated worst slack/total negative slack: 5.827ns/0.000ns; real time: 6 secs -Start NBR section for re-routing at 05:03:35 08/15/23 -Level 4, iteration 1 -0(0.00%) conflict; 0(0.00%) untouched conn; 468515 (nbr) score; -Estimated worst slack/total negative slack: -5.122ns/-468.515ns; real time: 7 secs - -Start NBR section for post-routing at 05:03:35 08/15/23 +Start NBR section for post-routing at 23:30:11 08/15/23 End NBR router with 0 unrouted connection NBR Summary ----------- Number of unrouted connections : 0 (0.00%) - Number of connections with timing violations : 260 (38.58%) - Estimated worst slack : -5.122ns - Timing score : 452301 + Number of connections with timing violations : 0 (0.00%) + Estimated worst slack : 5.827ns + Timing score : 0 ----------- Notes: The timing info is calculated for SETUP only and all PAR_ADJs are ignored. -WARNING - par: The following clock signals will be routed by using generic routing resource and may suffer from excessive delay and/or skew. - Signal=nCCAS_c loads=6 clock_loads=4 - -Total CPU time 7 secs -Total REAL time: 7 secs +Total CPU time 5 secs +Total REAL time: 6 secs Completely routed. -End of route. 674 routed (100.00%); 0 unrouted. +End of route. 703 routed (100.00%); 0 unrouted. Hold time timing score: 0, hold timing errors: 0 -Timing score: 452301 +Timing score: 0 Dumping design to file RAM2GS_LCMXO2_640HC_impl1.dir/5_1.ncd. @@ -211,14 +194,14 @@ All signals are completely routed. PAR_SUMMARY::Run status = Completed PAR_SUMMARY::Number of unrouted conns = 0 -PAR_SUMMARY::Worst slack> = -5.122 -PAR_SUMMARY::Timing score> = 452.301 +PAR_SUMMARY::Worst slack> = 5.827 +PAR_SUMMARY::Timing score> = 0.000 PAR_SUMMARY::Worst slack> = 0.304 PAR_SUMMARY::Timing score> = 0.000 PAR_SUMMARY::Number of errors = 0 -Total CPU time to completion: 7 secs -Total REAL time to completion: 7 secs +Total CPU time to completion: 5 secs +Total REAL time to completion: 6 secs par done! diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.dir/5_1_par.asd b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.dir/5_1_par.asd index cf7ea22..293586e 100644 --- a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.dir/5_1_par.asd +++ b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.dir/5_1_par.asd @@ -4,35 +4,40 @@ GLOBAL_PRIMARY_USED = 2; ; Global primary clock #0 GLOBAL_PRIMARY_0_SIGNALNAME = RCLK_c; GLOBAL_PRIMARY_0_DRIVERTYPE = PIO; -GLOBAL_PRIMARY_0_LOADNUM = 40; +GLOBAL_PRIMARY_0_LOADNUM = 39; ; Global primary clock #1 GLOBAL_PRIMARY_1_SIGNALNAME = PHI2_c; GLOBAL_PRIMARY_1_DRIVERTYPE = PIO; -GLOBAL_PRIMARY_1_LOADNUM = 13; +GLOBAL_PRIMARY_1_LOADNUM = 18; ; # of global secondary clocks -GLOBAL_SECONDARY_USED = 1; +GLOBAL_SECONDARY_USED = 2; ; Global secondary clock #0 GLOBAL_SECONDARY_0_SIGNALNAME = nCRAS_c; GLOBAL_SECONDARY_0_DRIVERTYPE = PIO; -GLOBAL_SECONDARY_0_LOADNUM = 9; +GLOBAL_SECONDARY_0_LOADNUM = 11; GLOBAL_SECONDARY_0_SIGTYPE = CLK; +; Global secondary clock #1 +GLOBAL_SECONDARY_1_SIGNALNAME = nCCAS_c; +GLOBAL_SECONDARY_1_DRIVERTYPE = PIO; +GLOBAL_SECONDARY_1_LOADNUM = 10; +GLOBAL_SECONDARY_1_SIGTYPE = CLK; ; I/O Bank 0 Usage -BANK_0_USED = 14; +BANK_0_USED = 13; BANK_0_AVAIL = 19; -BANK_0_VCCIO = 2.5V; +BANK_0_VCCIO = 3.3V; BANK_0_VREF1 = NA; ; I/O Bank 1 Usage BANK_1_USED = 20; BANK_1_AVAIL = 20; -BANK_1_VCCIO = 2.5V; +BANK_1_VCCIO = 3.3V; BANK_1_VREF1 = NA; ; I/O Bank 2 Usage BANK_2_USED = 16; BANK_2_AVAIL = 20; -BANK_2_VCCIO = 2.5V; +BANK_2_VCCIO = 3.3V; BANK_2_VREF1 = NA; ; I/O Bank 3 Usage -BANK_3_USED = 17; +BANK_3_USED = 18; BANK_3_AVAIL = 20; -BANK_3_VCCIO = 2.5V; +BANK_3_VCCIO = 3.3V; BANK_3_VREF1 = NA; diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.dir/RAM2GS_LCMXO2_640HC_impl1.par b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.dir/RAM2GS_LCMXO2_640HC_impl1.par index 6a48b30..a998d0c 100644 --- a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.dir/RAM2GS_LCMXO2_640HC_impl1.par +++ b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.dir/RAM2GS_LCMXO2_640HC_impl1.par @@ -4,7 +4,7 @@ Copyright (c) 1995 AT&T Corp. All rights reserved. Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. Copyright (c) 2001 Agere Systems All rights reserved. Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. -Tue Aug 15 05:03:28 2023 +Tue Aug 15 23:30:05 2023 C:/lscc/diamond/3.12/ispfpga\bin\nt64\par -f RAM2GS_LCMXO2_640HC_impl1.p2t RAM2GS_LCMXO2_640HC_impl1_map.ncd RAM2GS_LCMXO2_640HC_impl1.dir @@ -17,11 +17,11 @@ Preference file: RAM2GS_LCMXO2_640HC_impl1.prf. Level/ Number Worst Timing Worst Timing Run NCD Cost [ncd] Unrouted Slack Score Slack(hold) Score(hold) Time Status ---------- -------- ----- ------ ----------- ----------- ---- ------ -5_1 * 0 -5.122 452301 0.304 0 07 Completed +5_1 * 0 5.827 0 0.304 0 06 Completed * : Design saved. -Total (real) run time for 1-seed: 7 secs +Total (real) run time for 1-seed: 6 secs par done! diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.edi b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.edi new file mode 100644 index 0000000..84a0084 --- /dev/null +++ b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.edi @@ -0,0 +1,2989 @@ +(edif RAM2GS + (edifVersion 2 0 0) + (edifLevel 0) + (keywordMap (keywordLevel 0)) + (status + (written + (timeStamp 2023 8 15 23 12 46) + (author "Synopsys, Inc.") + (program "Synplify Pro" (version "R-2021.03L-SP1, mapper map202103lat, Build 070R")) + ) + ) + (library LUCENT + (edifLevel 0) + (technology (numberDefinition )) + (cell CCU2D (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port A0 (direction INPUT)) + (port B0 (direction INPUT)) + (port C0 (direction INPUT)) + (port D0 (direction INPUT)) + (port A1 (direction INPUT)) + (port B1 (direction INPUT)) + (port C1 (direction INPUT)) + (port D1 (direction INPUT)) + (port CIN (direction INPUT)) + (port COUT (direction OUTPUT)) + (port S0 (direction OUTPUT)) + (port S1 (direction OUTPUT)) + ) + (property INJECT1_1 (string "NO")) + (property INJECT1_0 (string "NO")) + (property INIT1 (string "0000")) + (property INIT0 (string "0000")) + ) + ) + (cell BB (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port B (direction INOUT)) + (port I (direction INPUT)) + (port T (direction INPUT)) + (port O (direction OUTPUT)) + ) + ) + ) + (cell OB (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port I (direction INPUT)) + (port O (direction OUTPUT)) + ) + ) + ) + (cell IB (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port I (direction INPUT)) + (port O (direction OUTPUT)) + ) + ) + ) + (cell FD1S3IX (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port D (direction INPUT)) + (port CK (direction INPUT)) + (port CD (direction INPUT)) + (port Q (direction OUTPUT)) + ) + ) + ) + (cell FD1S3AY (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port D (direction INPUT)) + (port CK (direction INPUT)) + (port Q (direction OUTPUT)) + ) + ) + ) + (cell FD1S3AX (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port D (direction INPUT)) + (port CK (direction INPUT)) + (port Q (direction OUTPUT)) + ) + ) + ) + (cell OFS1P3JX (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port D (direction INPUT)) + (port SP (direction INPUT)) + (port SCLK (direction INPUT)) + (port PD (direction INPUT)) + (port Q (direction OUTPUT)) + ) + ) + ) + (cell OFS1P3DX (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port D (direction INPUT)) + (port SP (direction INPUT)) + (port SCLK (direction INPUT)) + (port CD (direction INPUT)) + (port Q (direction OUTPUT)) + ) + ) + ) + (cell IFS1P3DX (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port D (direction INPUT)) + (port SP (direction INPUT)) + (port SCLK (direction INPUT)) + (port CD (direction INPUT)) + (port Q (direction OUTPUT)) + ) + ) + ) + (cell OFS1P3BX (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port D (direction INPUT)) + (port SP (direction INPUT)) + (port SCLK (direction INPUT)) + (port PD (direction INPUT)) + (port Q (direction OUTPUT)) + ) + ) + ) + (cell FD1P3AX (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port D (direction INPUT)) + (port SP (direction INPUT)) + (port CK (direction INPUT)) + (port Q (direction OUTPUT)) + ) + ) + ) + (cell ORCALUT4 (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port A (direction INPUT)) + (port B (direction INPUT)) + (port C (direction INPUT)) + (port D (direction INPUT)) + (port Z (direction OUTPUT)) + ) + ) + ) + (cell PFUMX (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port ALUT (direction INPUT)) + (port BLUT (direction INPUT)) + (port C0 (direction INPUT)) + (port Z (direction OUTPUT)) + ) + ) + ) + (cell GSR (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port GSR (direction INPUT)) + ) + ) + ) + (cell INV (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port A (direction INPUT)) + (port Z (direction OUTPUT)) + ) + ) + ) + (cell VHI (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port Z (direction OUTPUT)) + ) + ) + ) + (cell VLO (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port Z (direction OUTPUT)) + ) + ) + ) + ) + (library work + (edifLevel 0) + (technology (numberDefinition )) + (cell RAM2GS (cellType GENERIC) + (view verilog (viewType NETLIST) + (interface + (port PHI2 (direction INPUT)) + (port (array (rename main "MAin[9:0]") 10) (direction INPUT)) + (port (array (rename crow "CROW[1:0]") 2) (direction INPUT)) + (port (array (rename din "Din[7:0]") 8) (direction INPUT)) + (port (array (rename dout "Dout[7:0]") 8) (direction OUTPUT)) + (port nCCAS (direction INPUT)) + (port nCRAS (direction INPUT)) + (port nFWE (direction INPUT)) + (port LED (direction OUTPUT)) + (port (array (rename rba "RBA[1:0]") 2) (direction OUTPUT)) + (port (array (rename ra "RA[11:0]") 12) (direction OUTPUT)) + (port (array (rename rd "RD[7:0]") 8) (direction INOUT)) + (port nRCS (direction OUTPUT)) + (port RCLK (direction INPUT)) + (port RCKE (direction OUTPUT)) + (port nRWE (direction OUTPUT)) + (port nRRAS (direction OUTPUT)) + (port nRCAS (direction OUTPUT)) + (port RDQMH (direction OUTPUT)) + (port RDQML (direction OUTPUT)) + (port nUFMCS (direction OUTPUT)) + (port UFMCLK (direction OUTPUT)) + (port UFMSDI (direction OUTPUT)) + (port UFMSDO (direction INPUT)) + ) + (contents + (instance VCC (viewRef PRIM (cellRef VHI (libraryRef LUCENT))) ) + (instance GND (viewRef PRIM (cellRef VLO (libraryRef LUCENT))) ) + (instance GSR_INST (viewRef PRIM (cellRef GSR (libraryRef LUCENT))) + ) + (instance RASr2_RNIAFR1 (viewRef PRIM (cellRef INV (libraryRef LUCENT))) ) + (instance RA10_0io_RNO (viewRef PRIM (cellRef INV (libraryRef LUCENT))) ) + (instance nCCAS_pad_RNISUR8 (viewRef PRIM (cellRef INV (libraryRef LUCENT))) ) + (instance RASr_RNO (viewRef PRIM (cellRef INV (libraryRef LUCENT))) ) + (instance FWEr_RNO (viewRef PRIM (cellRef INV (libraryRef LUCENT))) ) + (instance (rename S_RNICVV51_0 "S_RNICVV51[0]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C (!B A))")) + ) + (instance RCKEEN_8_u_0_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (!C (!B A)+C (!B+!A))+D (C !A))")) + ) + (instance (rename IS_RNO_3 "IS_RNO[3]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D A+D (!C A+C (!B A+B !A)))")) + ) + (instance Ready_RNO (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D A+D (!C (B+A)+C A))")) + ) + (instance UFMSDI_RNO (viewRef PRIM (cellRef PFUMX (libraryRef LUCENT))) ) + (instance UFMSDI_RNO_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (C (!B !A))+D (!B !A))")) + ) + (instance UFMSDI_RNO_1 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!B A)")) + ) + (instance Ready_fast_RNO (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B+A)")) + ) + (instance InitReady_RNO (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B+A)")) + ) + (instance CmdSubmitted_RNO (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B+A)")) + ) + (instance nCRAS_pad_RNIBPVB (viewRef PRIM (cellRef INV (libraryRef LUCENT))) ) + (instance (rename XOR8MEG_CN "XOR8MEG.CN") (viewRef PRIM (cellRef INV (libraryRef LUCENT))) ) + (instance (rename WRD_0io_0 "WRD_0io[0]") (viewRef PRIM (cellRef OFS1P3DX (libraryRef LUCENT))) + (property IOB (string "TRUE")) + ) + (instance (rename WRD_0io_1 "WRD_0io[1]") (viewRef PRIM (cellRef OFS1P3DX (libraryRef LUCENT))) + (property IOB (string "TRUE")) + ) + (instance (rename WRD_0io_2 "WRD_0io[2]") (viewRef PRIM (cellRef OFS1P3DX (libraryRef LUCENT))) + (property IOB (string "TRUE")) + ) + (instance (rename WRD_0io_3 "WRD_0io[3]") (viewRef PRIM (cellRef OFS1P3DX (libraryRef LUCENT))) + (property IOB (string "TRUE")) + ) + (instance (rename WRD_0io_4 "WRD_0io[4]") (viewRef PRIM (cellRef OFS1P3DX (libraryRef LUCENT))) + (property IOB (string "TRUE")) + ) + (instance (rename WRD_0io_5 "WRD_0io[5]") (viewRef PRIM (cellRef OFS1P3DX (libraryRef LUCENT))) + (property IOB (string "TRUE")) + ) + (instance (rename WRD_0io_6 "WRD_0io[6]") (viewRef PRIM (cellRef OFS1P3DX (libraryRef LUCENT))) + (property IOB (string "TRUE")) + ) + (instance (rename WRD_0io_7 "WRD_0io[7]") (viewRef PRIM (cellRef OFS1P3DX (libraryRef LUCENT))) + (property IOB (string "TRUE")) + ) + (instance PHI2r_0io (viewRef PRIM (cellRef IFS1P3DX (libraryRef LUCENT))) + (property IOB (string "FALSE")) + ) + (instance (rename Bank_0io_0 "Bank_0io[0]") (viewRef PRIM (cellRef IFS1P3DX (libraryRef LUCENT))) + ) + (instance (rename Bank_0io_1 "Bank_0io[1]") (viewRef PRIM (cellRef IFS1P3DX (libraryRef LUCENT))) + ) + (instance (rename Bank_0io_2 "Bank_0io[2]") (viewRef PRIM (cellRef IFS1P3DX (libraryRef LUCENT))) + ) + (instance (rename Bank_0io_3 "Bank_0io[3]") (viewRef PRIM (cellRef IFS1P3DX (libraryRef LUCENT))) + ) + (instance (rename Bank_0io_4 "Bank_0io[4]") (viewRef PRIM (cellRef IFS1P3DX (libraryRef LUCENT))) + ) + (instance (rename Bank_0io_5 "Bank_0io[5]") (viewRef PRIM (cellRef IFS1P3DX (libraryRef LUCENT))) + ) + (instance (rename Bank_0io_6 "Bank_0io[6]") (viewRef PRIM (cellRef IFS1P3DX (libraryRef LUCENT))) + ) + (instance (rename Bank_0io_7 "Bank_0io[7]") (viewRef PRIM (cellRef IFS1P3DX (libraryRef LUCENT))) + ) + (instance nRWE_0io (viewRef PRIM (cellRef OFS1P3BX (libraryRef LUCENT))) + (property IOB (string "FALSE")) + ) + (instance nRRAS_0io (viewRef PRIM (cellRef OFS1P3BX (libraryRef LUCENT))) + (property IOB (string "FALSE")) + ) + (instance nRCS_0io (viewRef PRIM (cellRef OFS1P3BX (libraryRef LUCENT))) + (property IOB (string "FALSE")) + ) + (instance nRCAS_0io (viewRef PRIM (cellRef OFS1P3BX (libraryRef LUCENT))) + (property IOB (string "FALSE")) + ) + (instance UFMCLK_0io (viewRef PRIM (cellRef OFS1P3DX (libraryRef LUCENT))) + (property IOB (string "FALSE")) + ) + (instance (rename RBA_0io_0 "RBA_0io[0]") (viewRef PRIM (cellRef OFS1P3DX (libraryRef LUCENT))) + (property IOB (string "FALSE")) + ) + (instance (rename RBA_0io_1 "RBA_0io[1]") (viewRef PRIM (cellRef OFS1P3DX (libraryRef LUCENT))) + (property IOB (string "FALSE")) + ) + (instance RA11_0io (viewRef PRIM (cellRef OFS1P3DX (libraryRef LUCENT))) + (property IOB (string "FALSE")) + ) + (instance RA10_0io (viewRef PRIM (cellRef OFS1P3JX (libraryRef LUCENT))) + (property IOB (string "FALSE")) + ) + (instance nUFMCS (viewRef PRIM (cellRef FD1S3AY (libraryRef LUCENT))) + ) + (instance nRowColSel (viewRef PRIM (cellRef FD1S3IX (libraryRef LUCENT))) + ) + (instance n8MEGEN (viewRef PRIM (cellRef FD1P3AX (libraryRef LUCENT))) + ) + (instance XOR8MEG (viewRef PRIM (cellRef FD1P3AX (libraryRef LUCENT))) + ) + (instance UFMSDI (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename S_0 "S[0]") (viewRef PRIM (cellRef FD1S3IX (libraryRef LUCENT))) + ) + (instance (rename S_1 "S[1]") (viewRef PRIM (cellRef FD1S3IX (libraryRef LUCENT))) + ) + (instance (rename RowA_0 "RowA[0]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename RowA_1 "RowA[1]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename RowA_2 "RowA[2]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename RowA_3 "RowA[3]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename RowA_4 "RowA[4]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename RowA_5 "RowA[5]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename RowA_6 "RowA[6]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename RowA_7 "RowA[7]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename RowA_8 "RowA[8]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename RowA_9 "RowA[9]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance Ready_fast (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance Ready (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance RCKEEN (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance RCKE (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance RASr3 (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance RASr2 (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance RASr (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance PHI2r3 (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance PHI2r2 (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance LEDEN (viewRef PRIM (cellRef FD1P3AX (libraryRef LUCENT))) + ) + (instance InitReady (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename IS_0 "IS[0]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename IS_1 "IS[1]") (viewRef PRIM (cellRef FD1P3AX (libraryRef LUCENT))) + ) + (instance (rename IS_2 "IS[2]") (viewRef PRIM (cellRef FD1P3AX (libraryRef LUCENT))) + ) + (instance (rename IS_3 "IS[3]") (viewRef PRIM (cellRef FD1P3AX (libraryRef LUCENT))) + ) + (instance FWEr (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_0 "FS[0]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_1 "FS[1]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_2 "FS[2]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_3 "FS[3]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_4 "FS[4]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_5 "FS[5]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_6 "FS[6]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_7 "FS[7]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_8 "FS[8]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_9 "FS[9]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_10 "FS[10]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_11 "FS[11]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_12 "FS[12]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_13 "FS[13]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_14 "FS[14]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_15 "FS[15]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_16 "FS[16]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_17 "FS[17]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance Cmdn8MEGEN (viewRef PRIM (cellRef FD1P3AX (libraryRef LUCENT))) + ) + (instance CmdUFMSDI (viewRef PRIM (cellRef FD1P3AX (libraryRef LUCENT))) + ) + (instance CmdUFMCS (viewRef PRIM (cellRef FD1P3AX (libraryRef LUCENT))) + ) + (instance CmdUFMCLK (viewRef PRIM (cellRef FD1P3AX (libraryRef LUCENT))) + ) + (instance CmdSubmitted (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance CmdLEDEN (viewRef PRIM (cellRef FD1P3AX (libraryRef LUCENT))) + ) + (instance CmdEnable (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance CBR (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance CASr3 (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance CASr2 (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance CASr (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance C1Submitted (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance ADSubmitted (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance UFMSDO_pad (viewRef PRIM (cellRef IB (libraryRef LUCENT))) ) + (instance UFMSDI_pad (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance UFMCLK_pad (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance nUFMCS_pad (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance RDQML_pad (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance RDQMH_pad (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance nRCAS_pad (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance nRRAS_pad (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance nRWE_pad (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance RCKE_pad (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance RCLK_pad (viewRef PRIM (cellRef IB (libraryRef LUCENT))) ) + (instance nRCS_pad (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename RD_pad_7 "RD_pad[7]") (viewRef PRIM (cellRef BB (libraryRef LUCENT))) ) + (instance (rename RD_pad_6 "RD_pad[6]") (viewRef PRIM (cellRef BB (libraryRef LUCENT))) ) + (instance (rename RD_pad_5 "RD_pad[5]") (viewRef PRIM (cellRef BB (libraryRef LUCENT))) ) + (instance (rename RD_pad_4 "RD_pad[4]") (viewRef PRIM (cellRef BB (libraryRef LUCENT))) ) + (instance (rename RD_pad_3 "RD_pad[3]") (viewRef PRIM (cellRef BB (libraryRef LUCENT))) ) + (instance (rename RD_pad_2 "RD_pad[2]") (viewRef PRIM (cellRef BB (libraryRef LUCENT))) ) + (instance (rename RD_pad_1 "RD_pad[1]") (viewRef PRIM (cellRef BB (libraryRef LUCENT))) ) + (instance (rename RD_pad_0 "RD_pad[0]") (viewRef PRIM (cellRef BB (libraryRef LUCENT))) ) + (instance (rename RA_pad_11 "RA_pad[11]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename RA_pad_10 "RA_pad[10]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename RA_pad_9 "RA_pad[9]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename RA_pad_8 "RA_pad[8]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename RA_pad_7 "RA_pad[7]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename RA_pad_6 "RA_pad[6]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename RA_pad_5 "RA_pad[5]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename RA_pad_4 "RA_pad[4]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename RA_pad_3 "RA_pad[3]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename RA_pad_2 "RA_pad[2]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename RA_pad_1 "RA_pad[1]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename RA_pad_0 "RA_pad[0]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename RBA_pad_1 "RBA_pad[1]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename RBA_pad_0 "RBA_pad[0]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance LED_pad (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance nFWE_pad (viewRef PRIM (cellRef IB (libraryRef LUCENT))) ) + (instance nCRAS_pad (viewRef PRIM (cellRef IB (libraryRef LUCENT))) ) + (instance nCCAS_pad (viewRef PRIM (cellRef IB (libraryRef LUCENT))) ) + (instance (rename Dout_pad_7 "Dout_pad[7]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename Dout_pad_6 "Dout_pad[6]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename Dout_pad_5 "Dout_pad[5]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename Dout_pad_4 "Dout_pad[4]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename Dout_pad_3 "Dout_pad[3]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename Dout_pad_2 "Dout_pad[2]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename Dout_pad_1 "Dout_pad[1]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename Dout_pad_0 "Dout_pad[0]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename Din_pad_7 "Din_pad[7]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) + ) + (instance (rename Din_pad_6 "Din_pad[6]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) + ) + (instance (rename Din_pad_5 "Din_pad[5]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) + ) + (instance (rename Din_pad_4 "Din_pad[4]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) + ) + (instance (rename Din_pad_3 "Din_pad[3]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) + ) + (instance (rename Din_pad_2 "Din_pad[2]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) + ) + (instance (rename Din_pad_1 "Din_pad[1]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) + ) + (instance (rename Din_pad_0 "Din_pad[0]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) + ) + (instance (rename CROW_pad_1 "CROW_pad[1]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) ) + (instance (rename CROW_pad_0 "CROW_pad[0]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) ) + (instance (rename MAin_pad_9 "MAin_pad[9]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) ) + (instance (rename MAin_pad_8 "MAin_pad[8]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) ) + (instance (rename MAin_pad_7 "MAin_pad[7]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) ) + (instance (rename MAin_pad_6 "MAin_pad[6]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) ) + (instance (rename MAin_pad_5 "MAin_pad[5]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) ) + (instance (rename MAin_pad_4 "MAin_pad[4]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) ) + (instance (rename MAin_pad_3 "MAin_pad[3]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) ) + (instance (rename MAin_pad_2 "MAin_pad[2]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) ) + (instance (rename MAin_pad_1 "MAin_pad[1]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) ) + (instance (rename MAin_pad_0 "MAin_pad[0]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) ) + (instance PHI2_pad (viewRef PRIM (cellRef IB (libraryRef LUCENT))) + ) + (instance CmdEnable_s (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D+(!C A+C B))")) + ) + (instance CmdEnable_s_RNO (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (!B+A)+D (!C (!B+A)))")) + ) + (instance CmdEnable_0_sqmuxa_0_a2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(C (B A))")) + ) + (instance CmdEnable17_0_a2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (C (B A)))")) + ) + (instance UFMCLK_0io_RNO (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (!C (!B+A)))")) + ) + (instance XOR8MEG18 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B A)")) + ) + (instance un1_FS_14_i_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D C+D (C+(B A)))")) + ) + (instance un1_FS_13_i_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D C+D (C+(B A)))")) + ) + (instance CmdEnable17_0_a2_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (C (!B A)))")) + ) + (instance nUFMCS_s_0_N_5_i (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (!C (B+A)+C (B !A))+D (!C+!A))")) + ) + (instance Cmdn8MEGEN_RNO (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C (!B !A)+C !A)")) + ) + (instance CmdLEDEN_RNO (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C !A+C (B !A))")) + ) + (instance RA10_0io_RNO_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D+(!C+(B+A)))")) + ) + (instance un1_FS_13_i_a2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(C (B A))")) + ) + (instance un1_FS_14_i_a2_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(C (B A))")) + ) + (instance CMDWR (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (C (B A)))")) + ) + (instance un1_CmdEnable20_0_o3_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D+(C+(!B+!A)))")) + ) + (instance nRWE_s_i_tz_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D+(C (B !A)))")) + ) + (instance UFMCLK_0io_RNO_1 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C (B+A))")) + ) + (instance XOR8MEG_3_u_0_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D C+D (C+(!B+!A)))")) + ) + (instance nRWE_s_i_a3_1_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (!C (!B A)))")) + ) + (instance UFMSDI_ens2_i_a0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D !A+D (!C (!B !A)+C !A))")) + ) + (instance un1_FS_13_i_a2_8 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (C (!B A)))")) + ) + (instance nRRAS_5_u_i (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D+(!C (!B A)+C !B))")) + ) + (instance C1WR_7_0_o3 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D+(C+(!B+!A)))")) + ) + (instance un1_CmdEnable20_0_a2_0_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (C !A)+D (!C (!B !A)+C !A))")) + ) + (instance un1_nRCAS_6_sqmuxa_i_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (C+(!B+A))+D (!C (!B+A)))")) + ) + (instance UFMSDI_en_ss0_0_a2_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C (!B !A))")) + ) + (instance nUFMCS15_0_a2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (!C (!B !A)))")) + ) + (instance nUFMCS_s_0_m4_yy (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (!C (!B+A)))")) + ) + (instance Cmdn8MEGEN_4_u_i_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (C A)+D (!C !B+C (!B+A)))")) + ) + (instance CmdLEDEN_4_u_i_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (!C B)+D (!C (B+!A)+C !A))")) + ) + (instance UFMCLK_r_i_m2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (C B)+D A)")) + ) + (instance PHI2r3_RNITCN41 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D !B+D (!C (!B+A)+C !B))")) + ) + (instance IS_0_sqmuxa_0_o2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B+A)")) + ) + (instance nRCAS_0_sqmuxa_1_0_a3 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (C (!B A)))")) + ) + (instance nRowColSel_0_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (!C B+C (B+A))+D (!C B+C (B+!A)))")) + ) + (instance nRCAS_r_i_a3_1_1_tz (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D !C+D (C (!B A)))")) + ) + (instance Ready_0_sqmuxa_0_a3 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (!C (!B A)))")) + ) + (instance Cmdn8MEGEN_4_u_i_a2_2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C (B A))")) + ) + (instance un1_CmdEnable20_0_a2_1 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (!C (B !A)))")) + ) + (instance XOR8MEG_3_u_0_a2_0_2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (!C (B A)))")) + ) + (instance C1WR_7_0_o3_6 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D+(C+(B+!A)))")) + ) + (instance nRRAS_5_u_i_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (!C (B !A)+C !A))")) + ) + (instance (rename IS_RNO_2 "IS_RNO[2]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C (B A)+C (!B+!A))")) + ) + (instance XOR8MEG_3_u_0_a2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B A)")) + ) + (instance Cmdn8MEGEN_4_u_i_o2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(C+(B !A))")) + ) + (instance UFMSDI_ens2_i_o2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C B+C (!B A))")) + ) + (instance ADSubmitted_r_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (C+(B A)))")) + ) + (instance CmdEnable16_0_a2_0_2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(C (!B !A))")) + ) + (instance LED_pad_RNO (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(C+(!B+A))")) + ) + (instance UFMCLK_r_i_a2_2_2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (C (!B A)))")) + ) + (instance UFMSDI_ens2_i_o2_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(C+(B+A))")) + ) + (instance InitReady3_0_a2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (C (B A)))")) + ) + (instance nRowColSel_0_0_a3_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (C (!B !A)))")) + ) + (instance RCKE_2_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (C !B)+D (C+(B+A)))")) + ) + (instance LEDEN_RNO (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!B+A)")) + ) + (instance (rename S_RNO_0 "S_RNO[0]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B+!A)")) + ) + (instance XOR8MEG_3_u_0_o3_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D+(C+(B+A)))")) + ) + (instance C1Submitted_s_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(C+(B A))")) + ) + (instance Cmdn8MEGEN_4_u_i_o2_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(C+(B+!A))")) + ) + (instance un1_nRCAS_6_sqmuxa_i_o2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(C+(B+A))")) + ) + (instance Ready_0_sqmuxa_0_o2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C+(!B+!A))")) + ) + (instance RDQMH_pad_RNO (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!B+A)")) + ) + (instance nCCAS_pad_RNI01SJ (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B+A)")) + ) + (instance UFMCLK_0io_RNO_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B+A)")) + ) + (instance InitReady3_0_a2_5 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (C (B A)))")) + ) + (instance un1_FS_13_i_a2_6 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (!C (!B !A)))")) + ) + (instance CmdEnable16_0_a2_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (C (!B !A)))")) + ) + (instance UFMSDI_ens2_i_o2_0_3 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D+(C+(B+A)))")) + ) + (instance Ready_0_sqmuxa_0_a3_2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (!C (B A)))")) + ) + (instance C1WR_7_0_o3_7 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D+(!C+(!B+!A)))")) + ) + (instance UFMSDI_ens2_i_a2_4_2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (!C (!B A)))")) + ) + (instance un1_CmdEnable20_0_o3_0_1 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(C+(!B+!A))")) + ) + (instance CMDWR_2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (C (B !A)))")) + ) + (instance un1_FS_13_i_a2_1 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (!C (!B !A)))")) + ) + (instance un1_FS_14_i_a2_0_1 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (!C (!B !A)))")) + ) + (instance CmdEnable17_0_a2_1 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(C (B A))")) + ) + (instance (rename un9_RA_8 "un9_RA[8]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C B+C A)")) + ) + (instance (rename un9_RA_i_m3_0 "un9_RA_i_m3[0]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C B+C A)")) + ) + (instance (rename un9_RA_i_m3_1 "un9_RA_i_m3[1]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C B+C A)")) + ) + (instance (rename un9_RA_i_m3_2 "un9_RA_i_m3[2]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C B+C A)")) + ) + (instance (rename un9_RA_i_m3_3 "un9_RA_i_m3[3]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C B+C A)")) + ) + (instance (rename un9_RA_i_m3_4 "un9_RA_i_m3[4]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C B+C A)")) + ) + (instance (rename un9_RA_i_m3_5 "un9_RA_i_m3[5]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C B+C A)")) + ) + (instance (rename un9_RA_i_m3_6 "un9_RA_i_m3[6]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C B+C A)")) + ) + (instance (rename un9_RA_i_m3_7 "un9_RA_i_m3[7]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C B+C A)")) + ) + (instance (rename un9_RA_i_m3_9 "un9_RA_i_m3[9]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C B+C A)")) + ) + (instance n8MEGEN_5_i_m2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C (!B+A)+C (B A))")) + ) + (instance RDQML_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!B+!A)")) + ) + (instance InitReady3_0_a2_3 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B A)")) + ) + (instance (rename S_0_i_o2_1 "S_0_i_o2[1]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B+A)")) + ) + (instance IS_n1_0_x2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!B A+B !A)")) + ) + (instance un1_PHI2r3_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B !A)")) + ) + (instance C1WR_7_0_o3_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!B+!A)")) + ) + (instance CmdEnable17_0_a2_0_2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!B !A)")) + ) + (instance RCKEEN_8_u_1_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (!C+B)+D (C (!B+!A)))")) + ) + (instance RCKEEN_8_u (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D B+D (!C B+C (B+!A)))")) + ) + (instance nRCAS_0io_RNO (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (!C !B)+D (!C !B+C (!B !A)))")) + ) + (instance nRCAS_0io_RNO_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C !B+C (!B !A))")) + ) + (instance nRWE_0io_RNO (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (!C+(!B+A))+D A)")) + ) + (instance nRWE_0io_RNO_1 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (C (B !A)))")) + ) + (instance nRWE_0io_RNO_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(C (!B A))")) + ) + (instance nRCS_0io_RNO_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(C (!B !A))")) + ) + (instance nRCS_0io_RNO (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (C+A)+D (!C A+C !B))")) + ) + (instance RA11d (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (!C (B A)+C (B !A))+D (C B))")) + ) + (instance CmdLEDEN_4_u_i_a2_0_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (!C (!B !A)))")) + ) + (instance (rename RowAd_3 "RowAd[3]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B A)")) + ) + (instance (rename RowAd_0 "RowAd[0]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B A)")) + ) + (instance (rename RowAd_1 "RowAd[1]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B A)")) + ) + (instance (rename RowAd_2 "RowAd[2]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B A)")) + ) + (instance (rename RowAd_7 "RowAd[7]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B A)")) + ) + (instance (rename RowAd_4 "RowAd[4]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B A)")) + ) + (instance (rename RowAd_5 "RowAd[5]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!B+A)")) + ) + (instance (rename RowAd_6 "RowAd[6]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B A)")) + ) + (instance (rename RBAd_1 "RBAd[1]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B A)")) + ) + (instance (rename RowAd_8 "RowAd[8]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B A)")) + ) + (instance (rename RowAd_9 "RowAd[9]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!B+A)")) + ) + (instance (rename RBAd_0 "RBAd[0]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B A)")) + ) + (instance IS_0_sqmuxa_0_o2_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D+(C+(!B+!A)))")) + ) + (instance CmdUFMCLK_1_sqmuxa_0_a2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (C (!B A)))")) + ) + (instance CmdSubmitted_1_sqmuxa_0_a2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (!C (!B A))+D (!B A))")) + ) + (instance CmdEnable16_0_a2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (!C (B A)))")) + ) + (instance nRRAS_5_u_i_0_RNILD5I (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (!C (!B !A)+C !A)+D (C !A))")) + ) + (instance IS_0_sqmuxa_0_o2_0_RNIS63D (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!B !A)")) + ) + (instance (rename IS_RNO_0 "IS_RNO[0]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C (!B !A+B A)+C A)")) + ) + (instance (rename FS_s_0_17 "FS_s_0[17]") (viewRef PRIM (cellRef CCU2D (libraryRef LUCENT))) + (property INIT0 (string "0x5002")) + (property INJECT1_1 (string "NO")) + (property INJECT1_0 (string "NO")) + (property INIT1 (string "0x300A")) + ) + (instance (rename FS_cry_0_15 "FS_cry_0[15]") (viewRef PRIM (cellRef CCU2D (libraryRef LUCENT))) + (property INIT0 (string "0x300A")) + (property INJECT1_1 (string "NO")) + (property INJECT1_0 (string "NO")) + (property INIT1 (string "0x300A")) + ) + (instance (rename FS_cry_0_13 "FS_cry_0[13]") (viewRef PRIM (cellRef CCU2D (libraryRef LUCENT))) + (property INIT0 (string "0x300A")) + (property INJECT1_1 (string "NO")) + (property INJECT1_0 (string "NO")) + (property INIT1 (string "0x300A")) + ) + (instance (rename FS_cry_0_11 "FS_cry_0[11]") (viewRef PRIM (cellRef CCU2D (libraryRef LUCENT))) + (property INIT0 (string "0x300A")) + (property INJECT1_1 (string "NO")) + (property INJECT1_0 (string "NO")) + (property INIT1 (string "0x300A")) + ) + (instance (rename FS_cry_0_9 "FS_cry_0[9]") (viewRef PRIM (cellRef CCU2D (libraryRef LUCENT))) + (property INIT0 (string "0x300A")) + (property INJECT1_1 (string "NO")) + (property INJECT1_0 (string "NO")) + (property INIT1 (string "0x300A")) + ) + (instance (rename FS_cry_0_7 "FS_cry_0[7]") (viewRef PRIM (cellRef CCU2D (libraryRef LUCENT))) + (property INIT0 (string "0x300A")) + (property INJECT1_1 (string "NO")) + (property INJECT1_0 (string "NO")) + (property INIT1 (string "0x300A")) + ) + (instance (rename FS_cry_0_5 "FS_cry_0[5]") (viewRef PRIM (cellRef CCU2D (libraryRef LUCENT))) + (property INIT0 (string "0x300A")) + (property INJECT1_1 (string "NO")) + (property INJECT1_0 (string "NO")) + (property INIT1 (string "0x300A")) + ) + (instance (rename FS_cry_0_3 "FS_cry_0[3]") (viewRef PRIM (cellRef CCU2D (libraryRef LUCENT))) + (property INIT0 (string "0x300A")) + (property INJECT1_1 (string "NO")) + (property INJECT1_0 (string "NO")) + (property INIT1 (string "0x300A")) + ) + (instance (rename FS_cry_0_1 "FS_cry_0[1]") (viewRef PRIM (cellRef CCU2D (libraryRef LUCENT))) + (property INIT0 (string "0x300A")) + (property INJECT1_1 (string "NO")) + (property INJECT1_0 (string "NO")) + (property INIT1 (string "0x300A")) + ) + (instance (rename FS_cry_0_0 "FS_cry_0[0]") (viewRef PRIM (cellRef CCU2D (libraryRef LUCENT))) + (property INIT0 (string "0x300A")) + (property INJECT1_1 (string "NO")) + (property INJECT1_0 (string "NO")) + (property INIT1 (string "0x300A")) + ) + (net CBR (joined + (portRef Q (instanceRef CBR)) + (portRef A (instanceRef nRCS_0io_RNO_0)) + (portRef A (instanceRef nRWE_0io_RNO_1)) + (portRef A (instanceRef nRCAS_0io_RNO_0)) + (portRef A (instanceRef RCKEEN_8_u)) + (portRef B (instanceRef nRowColSel_0_0_a3_0)) + (portRef A (instanceRef LED_pad_RNO)) + (portRef A (instanceRef nRCAS_0_sqmuxa_1_0_a3)) + )) + (net C1Submitted (joined + (portRef Q (instanceRef C1Submitted)) + (portRef A (instanceRef C1Submitted_s_0)) + (portRef A (instanceRef un1_CmdEnable20_0_a2_1)) + )) + (net (rename Bank_2 "Bank[2]") (joined + (portRef Q (instanceRef Bank_0io_2)) + (portRef B (instanceRef C1WR_7_0_o3_6)) + )) + (net Ready (joined + (portRef Q (instanceRef Ready)) + (portRef B (instanceRef IS_RNO_0)) + (portRef A (instanceRef IS_0_sqmuxa_0_o2_0_RNIS63D)) + (portRef D (instanceRef nRCS_0io_RNO)) + (portRef C (instanceRef nRWE_0io_RNO_1)) + (portRef D (instanceRef RCKEEN_8_u)) + (portRef D (instanceRef nRowColSel_0_0_a3_0)) + (portRef D (instanceRef nRRAS_5_u_i_0)) + (portRef C (instanceRef Ready_0_sqmuxa_0_a3)) + (portRef C (instanceRef nRowColSel_0_0)) + (portRef D (instanceRef nRCAS_0_sqmuxa_1_0_a3)) + (portRef B (instanceRef IS_0_sqmuxa_0_o2)) + (portRef C (instanceRef un1_nRCAS_6_sqmuxa_i_0)) + (portRef A (instanceRef Ready_RNO)) + (portRef A (instanceRef RCKEEN_8_u_0_0)) + (portRef A (instanceRef S_RNICVV51_0)) + )) + (net n8MEGEN (joined + (portRef Q (instanceRef n8MEGEN)) + (portRef D (instanceRef RA11d)) + (portRef C (instanceRef Cmdn8MEGEN_RNO)) + )) + (net CO0 (joined + (portRef Q (instanceRef S_0)) + (portRef D (instanceRef IS_0_sqmuxa_0_o2_0)) + (portRef C (instanceRef nRWE_0io_RNO_0)) + (portRef B (instanceRef RCKEEN_8_u_1_0)) + (portRef A (instanceRef S_0_i_o2_1)) + (portRef A (instanceRef Ready_0_sqmuxa_0_a3_2)) + (portRef A (instanceRef S_RNO_0)) + (portRef C (instanceRef nRCAS_r_i_a3_1_1_tz)) + (portRef A (instanceRef nRowColSel_0_0)) + (portRef C (instanceRef S_RNICVV51_0)) + )) + (net (rename S_1 "S[1]") (joined + (portRef Q (instanceRef S_1)) + (portRef C (instanceRef IS_0_sqmuxa_0_o2_0)) + (portRef C (instanceRef nRCS_0io_RNO_0)) + (portRef D (instanceRef nRWE_0io_RNO_1)) + (portRef C (instanceRef nRCAS_0io_RNO_0)) + (portRef D (instanceRef nRCAS_0io_RNO)) + (portRef D (instanceRef RCKEEN_8_u_1_0)) + (portRef B (instanceRef S_0_i_o2_1)) + (portRef D (instanceRef Ready_0_sqmuxa_0_a3_2)) + (portRef B (instanceRef S_RNO_0)) + (portRef D (instanceRef nRowColSel_0_0)) + (portRef D (instanceRef un1_nRCAS_6_sqmuxa_i_0)) + (portRef B (instanceRef S_RNICVV51_0)) + )) + (net RASr2 (joined + (portRef Q (instanceRef RASr2)) + (portRef A (instanceRef IS_0_sqmuxa_0_o2_0)) + (portRef C (instanceRef Ready_0_sqmuxa_0_a3_2)) + (portRef B (instanceRef RCKE_2_0)) + (portRef B (instanceRef nRRAS_5_u_i_0)) + (portRef C (instanceRef nRCAS_0_sqmuxa_1_0_a3)) + (portRef A (instanceRef nRWE_s_i_tz_0)) + (portRef D (instanceRef RASr3)) + (portRef B (instanceRef RCKEEN_8_u_0_0)) + (portRef A (instanceRef RASr2_RNIAFR1)) + )) + (net InitReady (joined + (portRef Q (instanceRef InitReady)) + (portRef B (instanceRef IS_0_sqmuxa_0_o2_0)) + (portRef B (instanceRef n8MEGEN_5_i_m2)) + (portRef B (instanceRef LEDEN_RNO)) + (portRef B (instanceRef UFMCLK_r_i_a2_2_2)) + (portRef A (instanceRef Ready_0_sqmuxa_0_a3)) + (portRef B (instanceRef PHI2r3_RNITCN41)) + (portRef B (instanceRef nUFMCS_s_0_m4_yy)) + (portRef C (instanceRef nUFMCS15_0_a2)) + (portRef B (instanceRef UFMSDI_en_ss0_0_a2_0)) + (portRef A (instanceRef UFMSDI_ens2_i_a0)) + (portRef A (instanceRef UFMCLK_0io_RNO_1)) + (portRef B (instanceRef un1_FS_13_i_0)) + (portRef B (instanceRef un1_FS_14_i_0)) + (portRef B (instanceRef UFMCLK_0io_RNO)) + (portRef B (instanceRef InitReady_RNO)) + (portRef D (instanceRef Ready_RNO)) + (portRef C (instanceRef RCKEEN_8_u_0_0)) + )) + (net FWEr (joined + (portRef Q (instanceRef FWEr)) + (portRef B (instanceRef nRWE_0io_RNO_1)) + (portRef C (instanceRef RCKEEN_8_u_1_0)) + (portRef C (instanceRef nRowColSel_0_0_a3_0)) + (portRef D (instanceRef nRCAS_r_i_a3_1_1_tz)) + )) + (net CASr3 (joined + (portRef Q (instanceRef CASr3)) + (portRef B (instanceRef nRWE_0io_RNO_0)) + (portRef A (instanceRef nRowColSel_0_0_a3_0)) + (portRef B (instanceRef nRCAS_r_i_a3_1_1_tz)) + )) + (net (rename IS_0 "IS[0]") (joined + (portRef Q (instanceRef IS_0)) + (portRef A (instanceRef IS_RNO_0)) + (portRef D (instanceRef nRRAS_5_u_i_0_RNILD5I)) + (portRef A (instanceRef IS_n1_0_x2)) + (portRef A (instanceRef Ready_0_sqmuxa_0_o2)) + (portRef A (instanceRef IS_RNO_2)) + (portRef A (instanceRef nRRAS_5_u_i)) + (portRef A (instanceRef nRWE_s_i_a3_1_0)) + (portRef D (instanceRef IS_RNO_3)) + (portRef A (instanceRef RA10_0io_RNO)) + )) + (net (rename IS_3 "IS[3]") (joined + (portRef Q (instanceRef IS_3)) + (portRef B (instanceRef Ready_0_sqmuxa_0_a3_2)) + (portRef C (instanceRef un1_nRCAS_6_sqmuxa_i_o2)) + (portRef C (instanceRef RA10_0io_RNO_0)) + (portRef A (instanceRef IS_RNO_3)) + )) + (net (rename IS_2 "IS[2]") (joined + (portRef Q (instanceRef IS_2)) + (portRef C (instanceRef Ready_0_sqmuxa_0_o2)) + (portRef B (instanceRef un1_nRCAS_6_sqmuxa_i_o2)) + (portRef C (instanceRef IS_RNO_2)) + (portRef C (instanceRef nRWE_s_i_a3_1_0)) + (portRef B (instanceRef RA10_0io_RNO_0)) + (portRef B (instanceRef IS_RNO_3)) + )) + (net (rename IS_1 "IS[1]") (joined + (portRef Q (instanceRef IS_1)) + (portRef B (instanceRef IS_n1_0_x2)) + (portRef B (instanceRef Ready_0_sqmuxa_0_o2)) + (portRef A (instanceRef un1_nRCAS_6_sqmuxa_i_o2)) + (portRef B (instanceRef IS_RNO_2)) + (portRef B (instanceRef nRWE_s_i_a3_1_0)) + (portRef A (instanceRef RA10_0io_RNO_0)) + (portRef C (instanceRef IS_RNO_3)) + )) + (net (rename FS_5 "FS[5]") (joined + (portRef Q (instanceRef FS_5)) + (portRef A0 (instanceRef FS_cry_0_5)) + (portRef D (instanceRef un1_FS_14_i_a2_0_1)) + (portRef D (instanceRef un1_FS_13_i_a2_1)) + (portRef A (instanceRef UFMSDI_ens2_i_o2)) + )) + (net (rename FS_6 "FS[6]") (joined + (portRef Q (instanceRef FS_6)) + (portRef A1 (instanceRef FS_cry_0_5)) + (portRef A (instanceRef UFMSDI_ens2_i_a2_4_2)) + (portRef B (instanceRef un1_FS_13_i_a2_6)) + )) + (net (rename FS_7 "FS[7]") (joined + (portRef Q (instanceRef FS_7)) + (portRef A0 (instanceRef FS_cry_0_7)) + (portRef C (instanceRef un1_FS_13_i_a2_6)) + (portRef B (instanceRef UFMSDI_ens2_i_o2)) + )) + (net (rename FS_8 "FS[8]") (joined + (portRef Q (instanceRef FS_8)) + (portRef A1 (instanceRef FS_cry_0_7)) + (portRef B (instanceRef UFMSDI_ens2_i_a2_4_2)) + (portRef A (instanceRef UFMSDI_en_ss0_0_a2_0)) + )) + (net (rename FS_9 "FS[9]") (joined + (portRef Q (instanceRef FS_9)) + (portRef A0 (instanceRef FS_cry_0_9)) + (portRef C (instanceRef UFMSDI_ens2_i_o2)) + (portRef B (instanceRef un1_FS_13_i_a2_8)) + )) + (net (rename FS_0 "FS[0]") (joined + (portRef Q (instanceRef FS_0)) + (portRef A1 (instanceRef FS_cry_0_0)) + (portRef A (instanceRef un1_FS_14_i_a2_0_1)) + (portRef A (instanceRef un1_FS_13_i_a2_1)) + )) + (net (rename FS_1 "FS[1]") (joined + (portRef Q (instanceRef FS_1)) + (portRef A0 (instanceRef FS_cry_0_1)) + (portRef A (instanceRef un1_FS_13_i_a2_6)) + (portRef A (instanceRef UFMCLK_r_i_m2)) + )) + (net (rename FS_2 "FS[2]") (joined + (portRef Q (instanceRef FS_2)) + (portRef A1 (instanceRef FS_cry_0_1)) + (portRef B (instanceRef un1_FS_14_i_a2_0_1)) + (portRef B (instanceRef un1_FS_13_i_a2_1)) + )) + (net (rename FS_3 "FS[3]") (joined + (portRef Q (instanceRef FS_3)) + (portRef A0 (instanceRef FS_cry_0_3)) + (portRef C (instanceRef un1_FS_14_i_a2_0_1)) + (portRef C (instanceRef un1_FS_13_i_a2_1)) + )) + (net (rename FS_10 "FS[10]") (joined + (portRef Q (instanceRef FS_10)) + (portRef A1 (instanceRef FS_cry_0_9)) + (portRef C (instanceRef UFMSDI_ens2_i_a2_4_2)) + (portRef D (instanceRef un1_FS_13_i_a2_6)) + (portRef A (instanceRef InitReady3_0_a2)) + (portRef A (instanceRef nUFMCS15_0_a2)) + )) + (net (rename FS_11 "FS[11]") (joined + (portRef Q (instanceRef FS_11)) + (portRef A0 (instanceRef FS_cry_0_11)) + (portRef A (instanceRef InitReady3_0_a2_3)) + (portRef D (instanceRef UFMSDI_ens2_i_a2_4_2)) + (portRef C (instanceRef UFMCLK_r_i_m2)) + (portRef B (instanceRef nUFMCS15_0_a2)) + (portRef C (instanceRef un1_FS_13_i_a2_8)) + )) + (net (rename FS_12 "FS[12]") (joined + (portRef Q (instanceRef FS_12)) + (portRef A1 (instanceRef FS_cry_0_11)) + (portRef A (instanceRef UFMSDI_ens2_i_o2_0_3)) + (portRef A (instanceRef InitReady3_0_a2_5)) + )) + (net (rename FS_13 "FS[13]") (joined + (portRef Q (instanceRef FS_13)) + (portRef A0 (instanceRef FS_cry_0_13)) + (portRef B (instanceRef UFMSDI_ens2_i_o2_0_3)) + (portRef B (instanceRef InitReady3_0_a2_5)) + )) + (net (rename FS_14 "FS[14]") (joined + (portRef Q (instanceRef FS_14)) + (portRef A1 (instanceRef FS_cry_0_13)) + (portRef B (instanceRef InitReady3_0_a2_3)) + (portRef C (instanceRef UFMSDI_ens2_i_o2_0_3)) + )) + (net (rename FS_15 "FS[15]") (joined + (portRef Q (instanceRef FS_15)) + (portRef A0 (instanceRef FS_cry_0_15)) + (portRef C (instanceRef InitReady3_0_a2_5)) + (portRef A (instanceRef UFMSDI_ens2_i_o2_0)) + )) + (net (rename FS_16 "FS[16]") (joined + (portRef Q (instanceRef FS_16)) + (portRef A1 (instanceRef FS_cry_0_15)) + (portRef B (instanceRef InitReady3_0_a2)) + (portRef B (instanceRef UFMSDI_ens2_i_o2_0)) + (portRef A (instanceRef UFMCLK_r_i_a2_2_2)) + )) + (net (rename FS_17 "FS[17]") (joined + (portRef Q (instanceRef FS_17)) + (portRef A0 (instanceRef FS_s_0_17)) + (portRef D (instanceRef UFMSDI_ens2_i_o2_0_3)) + (portRef D (instanceRef InitReady3_0_a2_5)) + )) + (net PHI2r2 (joined + (portRef Q (instanceRef PHI2r2)) + (portRef A (instanceRef un1_PHI2r3_0)) + (portRef C (instanceRef PHI2r3_RNITCN41)) + (portRef D (instanceRef PHI2r3)) + )) + (net CmdUFMCS (joined + (portRef Q (instanceRef CmdUFMCS)) + (portRef A (instanceRef nUFMCS_s_0_m4_yy)) + )) + (net CASr2 (joined + (portRef Q (instanceRef CASr2)) + (portRef A (instanceRef nRWE_0io_RNO_0)) + (portRef A (instanceRef RCKEEN_8_u_1_0)) + (portRef A (instanceRef nRCAS_r_i_a3_1_1_tz)) + (portRef D (instanceRef CASr3)) + )) + (net CASr (joined + (portRef Q (instanceRef CASr)) + (portRef D (instanceRef CASr2)) + )) + (net PHI2r (joined + (portRef Q (instanceRef PHI2r_0io)) + (portRef D (instanceRef PHI2r2)) + )) + (net RASr (joined + (portRef Q (instanceRef RASr)) + (portRef A (instanceRef RCKE_2_0)) + (portRef D (instanceRef RASr2)) + )) + (net (rename Bank_0 "Bank[0]") (joined + (portRef Q (instanceRef Bank_0io_0)) + (portRef A (instanceRef C1WR_7_0_o3_6)) + )) + (net (rename Bank_1 "Bank[1]") (joined + (portRef Q (instanceRef Bank_0io_1)) + (portRef A (instanceRef C1WR_7_0_o3_7)) + )) + (net (rename Bank_3 "Bank[3]") (joined + (portRef Q (instanceRef Bank_0io_3)) + (portRef B (instanceRef C1WR_7_0_o3_7)) + )) + (net (rename Bank_4 "Bank[4]") (joined + (portRef Q (instanceRef Bank_0io_4)) + (portRef C (instanceRef C1WR_7_0_o3_7)) + )) + (net (rename Bank_5 "Bank[5]") (joined + (portRef Q (instanceRef Bank_0io_5)) + (portRef D (instanceRef C1WR_7_0_o3_7)) + )) + (net (rename Bank_6 "Bank[6]") (joined + (portRef Q (instanceRef Bank_0io_6)) + (portRef A (instanceRef C1WR_7_0_o3)) + )) + (net (rename Bank_7 "Bank[7]") (joined + (portRef Q (instanceRef Bank_0io_7)) + (portRef B (instanceRef C1WR_7_0_o3)) + )) + (net (rename RowA_0 "RowA[0]") (joined + (portRef Q (instanceRef RowA_0)) + (portRef B (instanceRef un9_RA_i_m3_0)) + )) + (net (rename RowA_1 "RowA[1]") (joined + (portRef Q (instanceRef RowA_1)) + (portRef B (instanceRef un9_RA_i_m3_1)) + )) + (net (rename RowA_2 "RowA[2]") (joined + (portRef Q (instanceRef RowA_2)) + (portRef B (instanceRef un9_RA_i_m3_2)) + )) + (net (rename RowA_3 "RowA[3]") (joined + (portRef Q (instanceRef RowA_3)) + (portRef B (instanceRef un9_RA_i_m3_3)) + )) + (net (rename RowA_4 "RowA[4]") (joined + (portRef Q (instanceRef RowA_4)) + (portRef B (instanceRef un9_RA_i_m3_4)) + )) + (net (rename RowA_5 "RowA[5]") (joined + (portRef Q (instanceRef RowA_5)) + (portRef B (instanceRef un9_RA_i_m3_5)) + )) + (net (rename RowA_6 "RowA[6]") (joined + (portRef Q (instanceRef RowA_6)) + (portRef B (instanceRef un9_RA_i_m3_6)) + )) + (net (rename RowA_7 "RowA[7]") (joined + (portRef Q (instanceRef RowA_7)) + (portRef B (instanceRef un9_RA_i_m3_7)) + )) + (net (rename RowA_8 "RowA[8]") (joined + (portRef Q (instanceRef RowA_8)) + (portRef B (instanceRef un9_RA_8)) + )) + (net (rename RowA_9 "RowA[9]") (joined + (portRef Q (instanceRef RowA_9)) + (portRef B (instanceRef un9_RA_i_m3_9)) + )) + (net (rename WRD_0 "WRD[0]") (joined + (portRef Q (instanceRef WRD_0io_0)) + (portRef I (instanceRef RD_pad_0)) + )) + (net (rename WRD_1 "WRD[1]") (joined + (portRef Q (instanceRef WRD_0io_1)) + (portRef I (instanceRef RD_pad_1)) + )) + (net (rename WRD_2 "WRD[2]") (joined + (portRef Q (instanceRef WRD_0io_2)) + (portRef I (instanceRef RD_pad_2)) + )) + (net (rename WRD_3 "WRD[3]") (joined + (portRef Q (instanceRef WRD_0io_3)) + (portRef I (instanceRef RD_pad_3)) + )) + (net (rename WRD_4 "WRD[4]") (joined + (portRef Q (instanceRef WRD_0io_4)) + (portRef I (instanceRef RD_pad_4)) + )) + (net (rename WRD_5 "WRD[5]") (joined + (portRef Q (instanceRef WRD_0io_5)) + (portRef I (instanceRef RD_pad_5)) + )) + (net (rename WRD_6 "WRD[6]") (joined + (portRef Q (instanceRef WRD_0io_6)) + (portRef I (instanceRef RD_pad_6)) + )) + (net (rename WRD_7 "WRD[7]") (joined + (portRef Q (instanceRef WRD_0io_7)) + (portRef I (instanceRef RD_pad_7)) + )) + (net nRowColSel (joined + (portRef Q (instanceRef nRowColSel)) + (portRef B (instanceRef RDQML_0)) + (portRef C (instanceRef un9_RA_i_m3_9)) + (portRef C (instanceRef un9_RA_i_m3_7)) + (portRef C (instanceRef un9_RA_i_m3_6)) + (portRef C (instanceRef un9_RA_i_m3_5)) + (portRef C (instanceRef un9_RA_i_m3_4)) + (portRef C (instanceRef un9_RA_i_m3_3)) + (portRef C (instanceRef un9_RA_i_m3_2)) + (portRef C (instanceRef un9_RA_i_m3_1)) + (portRef C (instanceRef un9_RA_i_m3_0)) + (portRef C (instanceRef un9_RA_8)) + (portRef B (instanceRef RDQMH_pad_RNO)) + )) + (net RASr3 (joined + (portRef Q (instanceRef RASr3)) + (portRef C (instanceRef RCKE_2_0)) + )) + (net LEDEN (joined + (portRef Q (instanceRef LEDEN)) + (portRef B (instanceRef LED_pad_RNO)) + (portRef B (instanceRef XOR8MEG_3_u_0_0)) + (portRef B (instanceRef CmdLEDEN_RNO)) + )) + (net Cmdn8MEGEN (joined + (portRef Q (instanceRef Cmdn8MEGEN)) + (portRef A (instanceRef n8MEGEN_5_i_m2)) + (portRef B (instanceRef Cmdn8MEGEN_4_u_i_0)) + )) + (net PHI2r3 (joined + (portRef Q (instanceRef PHI2r3)) + (portRef B (instanceRef un1_PHI2r3_0)) + (portRef D (instanceRef PHI2r3_RNITCN41)) + )) + (net CmdSubmitted (joined + (portRef Q (instanceRef CmdSubmitted)) + (portRef A (instanceRef PHI2r3_RNITCN41)) + (portRef A (instanceRef un1_FS_13_i_0)) + (portRef A (instanceRef un1_FS_14_i_0)) + (portRef B (instanceRef CmdSubmitted_RNO)) + )) + (net CmdLEDEN (joined + (portRef Q (instanceRef CmdLEDEN)) + (portRef A (instanceRef LEDEN_RNO)) + (portRef A (instanceRef CmdLEDEN_4_u_i_0)) + )) + (net (rename FS_4 "FS[4]") (joined + (portRef Q (instanceRef FS_4)) + (portRef A1 (instanceRef FS_cry_0_3)) + (portRef B (instanceRef UFMCLK_r_i_m2)) + (portRef A (instanceRef un1_FS_13_i_a2_8)) + )) + (net InitReady3 (joined + (portRef Z (instanceRef InitReady3_0_a2)) + (portRef A (instanceRef InitReady_RNO)) + )) + (net RCKEEN (joined + (portRef Q (instanceRef RCKEEN)) + (portRef D (instanceRef RCKE_2_0)) + )) + (net XOR8MEG (joined + (portRef Q (instanceRef XOR8MEG)) + (portRef C (instanceRef RA11d)) + (portRef B (instanceRef XOR8MEG_3_u_0_a2)) + )) + (net nRRAS_0_sqmuxa (joined + (portRef Z (instanceRef S_RNICVV51_0)) + (portRef C (instanceRef nRWE_s_i_tz_0)) + (portRef CD (instanceRef nRowColSel)) + )) + (net nUFMCS15 (joined + (portRef Z (instanceRef nUFMCS15_0_a2)) + (portRef B (instanceRef UFMCLK_0io_RNO_0)) + (portRef C (instanceRef nUFMCS_s_0_m4_yy)) + (portRef B (instanceRef nUFMCS_s_0_N_5_i)) + (portRef C (instanceRef UFMCLK_0io_RNO)) + (portRef B (instanceRef UFMSDI_RNO_1)) + (portRef B (instanceRef UFMSDI_RNO_0)) + )) + (net Ready_0_sqmuxa (joined + (portRef Z (instanceRef Ready_0_sqmuxa_0_a3)) + (portRef A (instanceRef Ready_fast_RNO)) + )) + (net RCKE_2 (joined + (portRef Z (instanceRef RCKE_2_0)) + (portRef D (instanceRef RCKE)) + )) + (net nRCAS_0_sqmuxa_1 (joined + (portRef Z (instanceRef nRCAS_0_sqmuxa_1_0_a3)) + (portRef A (instanceRef nRWE_0io_RNO)) + (portRef B (instanceRef nRCAS_0io_RNO)) + )) + (net XOR8MEG18 (joined + (portRef Z (instanceRef XOR8MEG18)) + (portRef A (instanceRef CmdSubmitted_1_sqmuxa_0_a2)) + (portRef A (instanceRef CmdUFMCLK_1_sqmuxa_0_a2)) + (portRef SP (instanceRef CmdLEDEN)) + (portRef SP (instanceRef Cmdn8MEGEN)) + (portRef SP (instanceRef XOR8MEG)) + )) + (net CmdEnable (joined + (portRef Q (instanceRef CmdEnable)) + (portRef B (instanceRef XOR8MEG18)) + (portRef A (instanceRef CmdEnable_s)) + )) + (net CmdEnable16 (joined + (portRef Z (instanceRef CmdEnable16_0_a2)) + (portRef C (instanceRef C1Submitted_s_0)) + (portRef D (instanceRef ADSubmitted_r_0)) + )) + (net CmdEnable17 (joined + (portRef Z (instanceRef CmdEnable17_0_a2)) + (portRef C (instanceRef ADSubmitted_r_0)) + (portRef B (instanceRef CmdEnable_s)) + )) + (net CmdSubmitted_1_sqmuxa (joined + (portRef Z (instanceRef CmdSubmitted_1_sqmuxa_0_a2)) + (portRef A (instanceRef CmdSubmitted_RNO)) + )) + (net CmdUFMCLK_1_sqmuxa (joined + (portRef Z (instanceRef CmdUFMCLK_1_sqmuxa_0_a2)) + (portRef SP (instanceRef CmdUFMCLK)) + (portRef SP (instanceRef CmdUFMCS)) + (portRef SP (instanceRef CmdUFMSDI)) + )) + (net CmdUFMCLK (joined + (portRef Q (instanceRef CmdUFMCLK)) + (portRef A (instanceRef UFMCLK_0io_RNO)) + )) + (net CmdUFMSDI (joined + (portRef Q (instanceRef CmdUFMSDI)) + (portRef D (instanceRef UFMSDI_RNO_0)) + )) + (net ADSubmitted (joined + (portRef Q (instanceRef ADSubmitted)) + (portRef A (instanceRef ADSubmitted_r_0)) + (portRef A (instanceRef CmdEnable_0_sqmuxa_0_a2)) + )) + (net CmdEnable_0_sqmuxa (joined + (portRef Z (instanceRef CmdEnable_0_sqmuxa_0_a2)) + (portRef D (instanceRef CmdEnable_s)) + )) + (net C1Submitted_s_0 (joined + (portRef Z (instanceRef C1Submitted_s_0)) + (portRef D (instanceRef C1Submitted)) + )) + (net ADSubmitted_r_0 (joined + (portRef Z (instanceRef ADSubmitted_r_0)) + (portRef D (instanceRef ADSubmitted)) + )) + (net UFMSDI_RNO (joined + (portRef Z (instanceRef UFMSDI_RNO)) + (portRef D (instanceRef UFMSDI)) + )) + (net CmdEnable_s (joined + (portRef Z (instanceRef CmdEnable_s)) + (portRef D (instanceRef CmdEnable)) + )) + (net nRowColSel_0_0 (joined + (portRef Z (instanceRef nRowColSel_0_0)) + (portRef D (instanceRef nRowColSel)) + )) + (net XOR8MEG_3 (joined + (portRef Z (instanceRef XOR8MEG_3_u_0_0)) + (portRef D (instanceRef XOR8MEG)) + )) + (net RCKEEN_8 (joined + (portRef Z (instanceRef RCKEEN_8_u)) + (portRef D (instanceRef RCKEEN)) + )) + (net N_26 (joined + (portRef Z (instanceRef un1_FS_14_i_0)) + (portRef SP (instanceRef n8MEGEN)) + )) + (net N_28 (joined + (portRef Z (instanceRef un1_FS_13_i_0)) + (portRef SP (instanceRef LEDEN)) + )) + (net N_24 (joined + (portRef Z (instanceRef nRRAS_5_u_i)) + (portRef B (instanceRef nRCS_0io_RNO_0)) + )) + (net un1_nRCAS_6_sqmuxa_i_0 (joined + (portRef Z (instanceRef un1_nRCAS_6_sqmuxa_i_0)) + (portRef B (instanceRef nRCAS_0io_RNO_0)) + )) + (net (rename S_0_i_o2_1 "S_0_i_o2[1]") (joined + (portRef Z (instanceRef S_0_i_o2_1)) + (portRef A (instanceRef nRRAS_5_u_i_0)) + (portRef B (instanceRef nRCAS_0_sqmuxa_1_0_a3)) + (portRef D (instanceRef S_1)) + (portRef D (instanceRef RCKEEN_8_u_0_0)) + )) + (net N_46 (joined + (portRef Z (instanceRef C1WR_7_0_o3)) + (portRef C (instanceRef un1_CmdEnable20_0_o3_0)) + (portRef D (instanceRef CMDWR)) + )) + (net N_45 (joined + (portRef Z (instanceRef Cmdn8MEGEN_4_u_i_o2)) + (portRef D (instanceRef CmdLEDEN_4_u_i_0)) + (portRef D (instanceRef Cmdn8MEGEN_4_u_i_0)) + )) + (net N_36 (joined + (portRef Z (instanceRef Cmdn8MEGEN_4_u_i_o2_0)) + (portRef B (instanceRef CmdSubmitted_1_sqmuxa_0_a2)) + (portRef B (instanceRef CmdUFMCLK_1_sqmuxa_0_a2)) + (portRef C (instanceRef Cmdn8MEGEN_4_u_i_o2)) + (portRef C (instanceRef Cmdn8MEGEN_4_u_i_a2_2)) + )) + (net CMDWR (joined + (portRef Z (instanceRef CMDWR)) + (portRef A (instanceRef XOR8MEG18)) + (portRef A (instanceRef CmdEnable_s_RNO)) + )) + (net N_151 (joined + (portRef Z (instanceRef un1_CmdEnable20_0_o3_0)) + (portRef B (instanceRef C1Submitted_s_0)) + (portRef B (instanceRef ADSubmitted_r_0)) + (portRef D (instanceRef CmdEnable17_0_a2_0)) + (portRef B (instanceRef CmdEnable_s_RNO)) + )) + (net N_189 (joined + (portRef Z (instanceRef un1_nRCAS_6_sqmuxa_i_o2)) + (portRef B (instanceRef nRRAS_5_u_i_0_RNILD5I)) + (portRef B (instanceRef un1_nRCAS_6_sqmuxa_i_0)) + (portRef C (instanceRef nRRAS_5_u_i)) + )) + (net N_183 (joined + (portRef Z (instanceRef IS_0_sqmuxa_0_o2_0)) + (portRef C (instanceRef IS_RNO_0)) + (portRef B (instanceRef IS_0_sqmuxa_0_o2_0_RNIS63D)) + (portRef C (instanceRef nRRAS_5_u_i_0_RNILD5I)) + (portRef A (instanceRef IS_0_sqmuxa_0_o2)) + (portRef A (instanceRef un1_nRCAS_6_sqmuxa_i_0)) + (portRef B (instanceRef nRRAS_5_u_i)) + )) + (net N_188 (joined + (portRef Z (instanceRef IS_0_sqmuxa_0_o2)) + (portRef D (instanceRef nRWE_s_i_a3_1_0)) + (portRef D (instanceRef RA10_0io_RNO_0)) + )) + (net N_160 (joined + (portRef Z (instanceRef XOR8MEG_3_u_0_o3_0)) + (portRef A (instanceRef XOR8MEG_3_u_0_a2)) + (portRef D (instanceRef XOR8MEG_3_u_0_a2_0_2)) + )) + (net N_139_8 (joined + (portRef Z (instanceRef un1_FS_13_i_a2_8)) + (portRef B (instanceRef un1_FS_14_i_a2_0)) + (portRef B (instanceRef un1_FS_13_i_a2)) + )) + (net N_139_6 (joined + (portRef Z (instanceRef un1_FS_13_i_a2_6)) + (portRef A (instanceRef un1_FS_14_i_a2_0)) + (portRef A (instanceRef un1_FS_13_i_a2)) + )) + (net N_177 (joined + (portRef Z (instanceRef CmdEnable17_0_a2_0)) + (portRef A (instanceRef CmdEnable16_0_a2)) + (portRef D (instanceRef CmdEnable17_0_a2)) + (portRef C (instanceRef CmdEnable_0_sqmuxa_0_a2)) + (portRef C (instanceRef CmdEnable_s_RNO)) + )) + (net N_178 (joined + (portRef Z (instanceRef CmdEnable16_0_a2_0)) + (portRef B (instanceRef CmdEnable16_0_a2)) + (portRef C (instanceRef CmdEnable16_0_a2_0_2)) + (portRef D (instanceRef un1_CmdEnable20_0_a2_0_0)) + )) + (net N_168 (joined + (portRef Z (instanceRef un1_CmdEnable20_0_a2_1)) + (portRef C (instanceRef un1_CmdEnable20_0_a2_0_0)) + )) + (net N_76 (joined + (portRef Z (instanceRef XOR8MEG_3_u_0_a2)) + (portRef C (instanceRef XOR8MEG_3_u_0_0)) + )) + (net N_94 (joined + (portRef Z (instanceRef Cmdn8MEGEN_4_u_i_a2_2)) + (portRef C (instanceRef CmdLEDEN_RNO)) + (portRef B (instanceRef Cmdn8MEGEN_RNO)) + )) + (net N_131 (joined + (portRef Z (instanceRef n8MEGEN_5_i_m2)) + (portRef D (instanceRef n8MEGEN)) + )) + (net N_205 (joined + (portRef Z (instanceRef nRowColSel_0_0_a3_0)) + (portRef B (instanceRef nRowColSel_0_0)) + )) + (net N_137_5 (joined + (portRef Z (instanceRef InitReady3_0_a2_5)) + (portRef D (instanceRef InitReady3_0_a2)) + (portRef D (instanceRef UFMCLK_r_i_a2_2_2)) + )) + (net N_137_3 (joined + (portRef Z (instanceRef InitReady3_0_a2_3)) + (portRef C (instanceRef InitReady3_0_a2)) + (portRef C (instanceRef UFMCLK_r_i_a2_2_2)) + )) + (net N_129 (joined + (portRef Z (instanceRef UFMSDI_ens2_i_o2_0)) + (portRef D (instanceRef UFMCLK_r_i_m2)) + (portRef D (instanceRef nUFMCS15_0_a2)) + (portRef C (instanceRef UFMSDI_en_ss0_0_a2_0)) + (portRef C (instanceRef UFMSDI_ens2_i_a0)) + )) + (net N_34 (joined + (portRef Z (instanceRef UFMSDI_ens2_i_o2)) + (portRef B (instanceRef UFMSDI_ens2_i_a0)) + )) + (net N_145 (joined + (portRef Z (instanceRef UFMSDI_en_ss0_0_a2_0)) + (portRef D (instanceRef un1_FS_13_i_a2_8)) + (portRef C (instanceRef UFMSDI_RNO_0)) + )) + (net N_50 (joined + (portRef Z (instanceRef UFMCLK_r_i_m2)) + (portRef B (instanceRef UFMCLK_0io_RNO_1)) + )) + (net N_139 (joined + (portRef Z (instanceRef un1_FS_14_i_a2_0)) + (portRef C (instanceRef un1_FS_14_i_0)) + )) + (net N_140 (joined + (portRef Z (instanceRef un1_FS_13_i_a2)) + (portRef C (instanceRef un1_FS_13_i_0)) + )) + (net N_215 (joined + (portRef Z (instanceRef IS_n1_0_x2)) + (portRef D (instanceRef IS_1)) + )) + (net N_56 (joined + (portRef Z (instanceRef Ready_0_sqmuxa_0_o2)) + (portRef B (instanceRef Ready_0_sqmuxa_0_a3)) + (portRef C (instanceRef Ready_RNO)) + )) + (net nRWE_s_i_a3_1_0 (joined + (portRef Z (instanceRef nRWE_s_i_a3_1_0)) + (portRef D (instanceRef nRWE_s_i_tz_0)) + )) + (net RCKEEN_8_u_0_0 (joined + (portRef Z (instanceRef RCKEEN_8_u_0_0)) + (portRef B (instanceRef RCKEEN_8_u)) + )) + (net UFMCLK_r_i_a2_2_2 (joined + (portRef Z (instanceRef UFMCLK_r_i_a2_2_2)) + (portRef D (instanceRef nUFMCS_s_0_m4_yy)) + (portRef C (instanceRef UFMCLK_0io_RNO_1)) + )) + (net i1_i (joined + (portRef Z (instanceRef UFMCLK_0io_RNO)) + (portRef D (instanceRef UFMCLK_0io)) + )) + (net UFMSDI_ens2_i_a0 (joined + (portRef Z (instanceRef UFMSDI_ens2_i_a0)) + (portRef A (instanceRef UFMSDI_RNO_0)) + )) + (net nUFMCS_s_0_m4_yy (joined + (portRef Z (instanceRef nUFMCS_s_0_m4_yy)) + (portRef C (instanceRef nUFMCS_s_0_N_5_i)) + )) + (net N_27_i_1 (joined + (portRef Z (instanceRef nRCAS_r_i_a3_1_1_tz)) + (portRef B (instanceRef nRCS_0io_RNO)) + (portRef A (instanceRef nRCAS_0io_RNO)) + )) + (net CmdLEDEN_4_u_i_a2_0_0 (joined + (portRef Z (instanceRef CmdLEDEN_4_u_i_a2_0_0)) + (portRef B (instanceRef CmdLEDEN_4_u_i_0)) + (portRef A (instanceRef Cmdn8MEGEN_4_u_i_0)) + )) + (net CmdEnable16_0_a2_0 (joined + (portRef Z (instanceRef CmdEnable16_0_a2_0_2)) + (portRef B (instanceRef CmdEnable_0_sqmuxa_0_a2)) + )) + (net nCRAS_c_i (joined + (portRef Z (instanceRef nCRAS_pad_RNIBPVB)) + (portRef CK (instanceRef CBR)) + (portRef CK (instanceRef FWEr)) + (portRef CK (instanceRef RowA_9)) + (portRef CK (instanceRef RowA_8)) + (portRef CK (instanceRef RowA_7)) + (portRef CK (instanceRef RowA_6)) + (portRef CK (instanceRef RowA_5)) + (portRef CK (instanceRef RowA_4)) + (portRef CK (instanceRef RowA_3)) + (portRef CK (instanceRef RowA_2)) + (portRef CK (instanceRef RowA_1)) + (portRef CK (instanceRef RowA_0)) + (portRef SCLK (instanceRef RBA_0io_1)) + (portRef SCLK (instanceRef RBA_0io_0)) + )) + (net N_188_i (joined + (portRef Z (instanceRef IS_0_sqmuxa_0_o2_0_RNIS63D)) + (portRef SP (instanceRef IS_3)) + (portRef SP (instanceRef IS_2)) + (portRef SP (instanceRef IS_1)) + )) + (net RD_1_i (joined + (portRef Z (instanceRef nCCAS_pad_RNI01SJ)) + (portRef T (instanceRef RD_pad_0)) + (portRef T (instanceRef RD_pad_1)) + (portRef T (instanceRef RD_pad_2)) + (portRef T (instanceRef RD_pad_3)) + (portRef T (instanceRef RD_pad_4)) + (portRef T (instanceRef RD_pad_5)) + (portRef T (instanceRef RD_pad_6)) + (portRef T (instanceRef RD_pad_7)) + )) + (net N_27_i (joined + (portRef Z (instanceRef nRCS_0io_RNO)) + (portRef D (instanceRef nRCS_0io)) + )) + (net N_179_i (joined + (portRef Z (instanceRef nRCAS_0io_RNO)) + (portRef D (instanceRef nRCAS_0io)) + )) + (net N_24_i (joined + (portRef Z (instanceRef nRRAS_5_u_i_0_RNILD5I)) + (portRef A (instanceRef nRCS_0io_RNO)) + (portRef D (instanceRef nRRAS_0io)) + )) + (net nUFMCS_s_0_N_5_i (joined + (portRef Z (instanceRef nUFMCS_s_0_N_5_i)) + (portRef D (instanceRef nUFMCS)) + )) + (net N_180_i (joined + (portRef Z (instanceRef nRWE_0io_RNO)) + (portRef D (instanceRef nRWE_0io)) + )) + (net N_60_i_i (joined + (portRef Z (instanceRef IS_RNO_0)) + (portRef D (instanceRef IS_0)) + )) + (net N_58_i_i (joined + (portRef Z (instanceRef IS_RNO_3)) + (portRef D (instanceRef IS_3)) + )) + (net N_57_i_i (joined + (portRef Z (instanceRef IS_RNO_2)) + (portRef D (instanceRef IS_2)) + )) + (net N_203_i (joined + (portRef Z (instanceRef S_RNO_0)) + (portRef D (instanceRef S_0)) + )) + (net N_14_i (joined + (portRef Z (instanceRef CmdLEDEN_RNO)) + (portRef D (instanceRef CmdLEDEN)) + )) + (net N_12_i (joined + (portRef Z (instanceRef Cmdn8MEGEN_RNO)) + (portRef D (instanceRef Cmdn8MEGEN)) + )) + (net N_74_i (joined + (portRef Z (instanceRef LEDEN_RNO)) + (portRef D (instanceRef LEDEN)) + )) + (net un1_CmdEnable20_i (joined + (portRef Z (instanceRef CmdEnable_s_RNO)) + (portRef C (instanceRef CmdEnable_s)) + )) + (net N_141_i (joined + (portRef Z (instanceRef PHI2r3_RNITCN41)) + (portRef A (instanceRef UFMCLK_0io_RNO_0)) + (portRef A (instanceRef nUFMCS_s_0_N_5_i)) + (portRef C0 (instanceRef UFMSDI_RNO)) + )) + (net i2_i (joined + (portRef Z (instanceRef UFMCLK_0io_RNO_0)) + (portRef SP (instanceRef UFMCLK_0io)) + )) + (net (rename FS_cry_0 "FS_cry[0]") (joined + (portRef COUT (instanceRef FS_cry_0_0)) + (portRef CIN (instanceRef FS_cry_0_1)) + )) + (net (rename FS_s_0 "FS_s[0]") (joined + (portRef S1 (instanceRef FS_cry_0_0)) + (portRef D (instanceRef FS_0)) + )) + (net (rename FS_s_1 "FS_s[1]") (joined + (portRef S0 (instanceRef FS_cry_0_1)) + (portRef D (instanceRef FS_1)) + )) + (net (rename FS_cry_2 "FS_cry[2]") (joined + (portRef COUT (instanceRef FS_cry_0_1)) + (portRef CIN (instanceRef FS_cry_0_3)) + )) + (net (rename FS_s_2 "FS_s[2]") (joined + (portRef S1 (instanceRef FS_cry_0_1)) + (portRef D (instanceRef FS_2)) + )) + (net (rename FS_s_3 "FS_s[3]") (joined + (portRef S0 (instanceRef FS_cry_0_3)) + (portRef D (instanceRef FS_3)) + )) + (net (rename FS_cry_4 "FS_cry[4]") (joined + (portRef COUT (instanceRef FS_cry_0_3)) + (portRef CIN (instanceRef FS_cry_0_5)) + )) + (net (rename FS_s_4 "FS_s[4]") (joined + (portRef S1 (instanceRef FS_cry_0_3)) + (portRef D (instanceRef FS_4)) + )) + (net (rename FS_s_5 "FS_s[5]") (joined + (portRef S0 (instanceRef FS_cry_0_5)) + (portRef D (instanceRef FS_5)) + )) + (net (rename FS_cry_6 "FS_cry[6]") (joined + (portRef COUT (instanceRef FS_cry_0_5)) + (portRef CIN (instanceRef FS_cry_0_7)) + )) + (net (rename FS_s_6 "FS_s[6]") (joined + (portRef S1 (instanceRef FS_cry_0_5)) + (portRef D (instanceRef FS_6)) + )) + (net (rename FS_s_7 "FS_s[7]") (joined + (portRef S0 (instanceRef FS_cry_0_7)) + (portRef D (instanceRef FS_7)) + )) + (net (rename FS_cry_8 "FS_cry[8]") (joined + (portRef COUT (instanceRef FS_cry_0_7)) + (portRef CIN (instanceRef FS_cry_0_9)) + )) + (net (rename FS_s_8 "FS_s[8]") (joined + (portRef S1 (instanceRef FS_cry_0_7)) + (portRef D (instanceRef FS_8)) + )) + (net (rename FS_s_9 "FS_s[9]") (joined + (portRef S0 (instanceRef FS_cry_0_9)) + (portRef D (instanceRef FS_9)) + )) + (net (rename FS_cry_10 "FS_cry[10]") (joined + (portRef COUT (instanceRef FS_cry_0_9)) + (portRef CIN (instanceRef FS_cry_0_11)) + )) + (net (rename FS_s_10 "FS_s[10]") (joined + (portRef S1 (instanceRef FS_cry_0_9)) + (portRef D (instanceRef FS_10)) + )) + (net (rename FS_s_11 "FS_s[11]") (joined + (portRef S0 (instanceRef FS_cry_0_11)) + (portRef D (instanceRef FS_11)) + )) + (net (rename FS_cry_12 "FS_cry[12]") (joined + (portRef COUT (instanceRef FS_cry_0_11)) + (portRef CIN (instanceRef FS_cry_0_13)) + )) + (net (rename FS_s_12 "FS_s[12]") (joined + (portRef S1 (instanceRef FS_cry_0_11)) + (portRef D (instanceRef FS_12)) + )) + (net (rename FS_s_13 "FS_s[13]") (joined + (portRef S0 (instanceRef FS_cry_0_13)) + (portRef D (instanceRef FS_13)) + )) + (net (rename FS_cry_14 "FS_cry[14]") (joined + (portRef COUT (instanceRef FS_cry_0_13)) + (portRef CIN (instanceRef FS_cry_0_15)) + )) + (net (rename FS_s_14 "FS_s[14]") (joined + (portRef S1 (instanceRef FS_cry_0_13)) + (portRef D (instanceRef FS_14)) + )) + (net (rename FS_s_15 "FS_s[15]") (joined + (portRef S0 (instanceRef FS_cry_0_15)) + (portRef D (instanceRef FS_15)) + )) + (net (rename FS_cry_16 "FS_cry[16]") (joined + (portRef COUT (instanceRef FS_cry_0_15)) + (portRef CIN (instanceRef FS_s_0_17)) + )) + (net (rename FS_s_16 "FS_s[16]") (joined + (portRef S1 (instanceRef FS_cry_0_15)) + (portRef D (instanceRef FS_16)) + )) + (net (rename FS_s_17 "FS_s[17]") (joined + (portRef S0 (instanceRef FS_s_0_17)) + (portRef D (instanceRef FS_17)) + )) + (net RA10s_i (joined + (portRef Z (instanceRef RA10_0io_RNO_0)) + (portRef PD (instanceRef RA10_0io)) + )) + (net un1_PHI2r3_0 (joined + (portRef Z (instanceRef un1_PHI2r3_0)) + (portRef D (instanceRef un1_FS_13_i_0)) + (portRef D (instanceRef un1_FS_14_i_0)) + )) + (net Cmdn8MEGEN_4_u_i_0 (joined + (portRef Z (instanceRef Cmdn8MEGEN_4_u_i_0)) + (portRef A (instanceRef Cmdn8MEGEN_RNO)) + )) + (net CmdLEDEN_4_u_i_0 (joined + (portRef Z (instanceRef CmdLEDEN_4_u_i_0)) + (portRef A (instanceRef CmdLEDEN_RNO)) + )) + (net d_m3_0_a2_0 (joined + (portRef Z (instanceRef UFMCLK_0io_RNO_1)) + (portRef D (instanceRef UFMCLK_0io_RNO)) + )) + (net XOR8MEG_3_u_0_a2_0_2 (joined + (portRef Z (instanceRef XOR8MEG_3_u_0_a2_0_2)) + (portRef D (instanceRef XOR8MEG_3_u_0_0)) + )) + (net UFMSDI_ens2_i_o2_0_3 (joined + (portRef Z (instanceRef UFMSDI_ens2_i_o2_0_3)) + (portRef C (instanceRef UFMSDI_ens2_i_o2_0)) + )) + (net Ready_0_sqmuxa_0_a3_2 (joined + (portRef Z (instanceRef Ready_0_sqmuxa_0_a3_2)) + (portRef D (instanceRef Ready_0_sqmuxa_0_a3)) + (portRef B (instanceRef Ready_RNO)) + )) + (net C1WR_7_0_o3_0 (joined + (portRef Z (instanceRef C1WR_7_0_o3_0)) + (portRef C (instanceRef C1WR_7_0_o3_6)) + )) + (net C1WR_7_0_o3_6 (joined + (portRef Z (instanceRef C1WR_7_0_o3_6)) + (portRef C (instanceRef C1WR_7_0_o3)) + )) + (net C1WR_7_0_o3_7 (joined + (portRef Z (instanceRef C1WR_7_0_o3_7)) + (portRef D (instanceRef C1WR_7_0_o3)) + )) + (net nRWE_s_i_tz_0 (joined + (portRef Z (instanceRef nRWE_s_i_tz_0)) + (portRef D (instanceRef nRWE_0io_RNO)) + )) + (net UFMSDI_ens2_i_a2_4_2 (joined + (portRef Z (instanceRef UFMSDI_ens2_i_a2_4_2)) + (portRef D (instanceRef UFMSDI_ens2_i_a0)) + )) + (net nRRAS_5_u_i_0 (joined + (portRef Z (instanceRef nRRAS_5_u_i_0)) + (portRef A (instanceRef nRRAS_5_u_i_0_RNILD5I)) + (portRef D (instanceRef nRRAS_5_u_i)) + )) + (net un1_CmdEnable20_0_o3_0_1 (joined + (portRef Z (instanceRef un1_CmdEnable20_0_o3_0_1)) + (portRef D (instanceRef un1_CmdEnable20_0_o3_0)) + )) + (net CMDWR_2 (joined + (portRef Z (instanceRef CMDWR_2)) + (portRef A (instanceRef CMDWR)) + )) + (net un1_FS_13_i_a2_1 (joined + (portRef Z (instanceRef un1_FS_13_i_a2_1)) + (portRef C (instanceRef un1_FS_13_i_a2)) + )) + (net un1_FS_14_i_a2_0_1 (joined + (portRef Z (instanceRef un1_FS_14_i_a2_0_1)) + (portRef C (instanceRef un1_FS_14_i_a2_0)) + )) + (net un1_CmdEnable20_0_a2_0_0 (joined + (portRef Z (instanceRef un1_CmdEnable20_0_a2_0_0)) + (portRef D (instanceRef CmdEnable_s_RNO)) + )) + (net CmdEnable17_0_a2_0 (joined + (portRef Z (instanceRef CmdEnable17_0_a2_0_2)) + (portRef A (instanceRef CmdEnable17_0_a2)) + )) + (net CmdEnable17_0_a2_1 (joined + (portRef Z (instanceRef CmdEnable17_0_a2_1)) + (portRef B (instanceRef un1_CmdEnable20_0_a2_1)) + (portRef B (instanceRef CmdEnable17_0_a2)) + )) + (net (rename FS_cry_0_S0_0 "FS_cry_0_S0[0]") (joined + (portRef S0 (instanceRef FS_cry_0_0)) + )) + (net (rename FS_s_0_S1_17 "FS_s_0_S1[17]") (joined + (portRef S1 (instanceRef FS_s_0_17)) + )) + (net (rename FS_s_0_COUT_17 "FS_s_0_COUT[17]") (joined + (portRef COUT (instanceRef FS_s_0_17)) + )) + (net RCKEEN_8_u_1_0 (joined + (portRef Z (instanceRef RCKEEN_8_u_1_0)) + (portRef C (instanceRef RCKEEN_8_u)) + )) + (net (rename RowAd_0_3 "RowAd_0[3]") (joined + (portRef Z (instanceRef RowAd_3)) + (portRef D (instanceRef RowA_3)) + )) + (net (rename RowAd_0_0 "RowAd_0[0]") (joined + (portRef Z (instanceRef RowAd_0)) + (portRef D (instanceRef RowA_0)) + )) + (net (rename RowAd_0_1 "RowAd_0[1]") (joined + (portRef Z (instanceRef RowAd_1)) + (portRef D (instanceRef RowA_1)) + )) + (net (rename RowAd_0_2 "RowAd_0[2]") (joined + (portRef Z (instanceRef RowAd_2)) + (portRef D (instanceRef RowA_2)) + )) + (net (rename RowAd_0_7 "RowAd_0[7]") (joined + (portRef Z (instanceRef RowAd_7)) + (portRef D (instanceRef RowA_7)) + )) + (net (rename RowAd_0_4 "RowAd_0[4]") (joined + (portRef Z (instanceRef RowAd_4)) + (portRef D (instanceRef RowA_4)) + )) + (net (rename RowAd_0_5 "RowAd_0[5]") (joined + (portRef Z (instanceRef RowAd_5)) + (portRef D (instanceRef RowA_5)) + )) + (net (rename RowAd_0_6 "RowAd_0[6]") (joined + (portRef Z (instanceRef RowAd_6)) + (portRef D (instanceRef RowA_6)) + )) + (net (rename RBAd_0_1 "RBAd_0[1]") (joined + (portRef Z (instanceRef RBAd_1)) + (portRef D (instanceRef RBA_0io_1)) + )) + (net (rename RowAd_0_8 "RowAd_0[8]") (joined + (portRef Z (instanceRef RowAd_8)) + (portRef D (instanceRef RowA_8)) + )) + (net (rename RowAd_0_9 "RowAd_0[9]") (joined + (portRef Z (instanceRef RowAd_9)) + (portRef D (instanceRef RowA_9)) + )) + (net (rename RBAd_0_0 "RBAd_0[0]") (joined + (portRef Z (instanceRef RBAd_0)) + (portRef D (instanceRef RBA_0io_0)) + )) + (net RA11d_0 (joined + (portRef Z (instanceRef RA11d)) + (portRef D (instanceRef RA11_0io)) + )) + (net Ready_fast (joined + (portRef Q (instanceRef Ready_fast)) + (portRef B (instanceRef RBAd_0)) + (portRef B (instanceRef RowAd_9)) + (portRef B (instanceRef RowAd_8)) + (portRef B (instanceRef RBAd_1)) + (portRef B (instanceRef RowAd_6)) + (portRef B (instanceRef RowAd_5)) + (portRef B (instanceRef RowAd_4)) + (portRef B (instanceRef RowAd_7)) + (portRef B (instanceRef RowAd_2)) + (portRef B (instanceRef RowAd_1)) + (portRef B (instanceRef RowAd_0)) + (portRef B (instanceRef RowAd_3)) + (portRef B (instanceRef RA11d)) + (portRef B (instanceRef Ready_fast_RNO)) + )) + (net N_179_i_1 (joined + (portRef Z (instanceRef nRCAS_0io_RNO_0)) + (portRef C (instanceRef nRCAS_0io_RNO)) + )) + (net nRWE_0io_RNO_0 (joined + (portRef Z (instanceRef nRWE_0io_RNO_0)) + (portRef B (instanceRef nRWE_0io_RNO)) + )) + (net nRWE_0io_RNO_1 (joined + (portRef Z (instanceRef nRWE_0io_RNO_1)) + (portRef C (instanceRef nRWE_0io_RNO)) + )) + (net N_27_i_sn (joined + (portRef Z (instanceRef nRCS_0io_RNO_0)) + (portRef C (instanceRef nRCS_0io_RNO)) + )) + (net (rename XOR8MEG_CN "XOR8MEG.CN") (joined + (portRef Z (instanceRef XOR8MEG_CN)) + (portRef CK (instanceRef ADSubmitted)) + (portRef CK (instanceRef C1Submitted)) + (portRef CK (instanceRef CmdEnable)) + (portRef CK (instanceRef CmdLEDEN)) + (portRef CK (instanceRef CmdSubmitted)) + (portRef CK (instanceRef CmdUFMCLK)) + (portRef CK (instanceRef CmdUFMCS)) + (portRef CK (instanceRef CmdUFMSDI)) + (portRef CK (instanceRef Cmdn8MEGEN)) + (portRef CK (instanceRef XOR8MEG)) + )) + (net VCC (joined + (portRef Z (instanceRef VCC)) + (portRef B0 (instanceRef FS_cry_0_0)) + (portRef SP (instanceRef RA10_0io)) + (portRef SP (instanceRef RA11_0io)) + (portRef SP (instanceRef RBA_0io_1)) + (portRef SP (instanceRef RBA_0io_0)) + (portRef SP (instanceRef nRCAS_0io)) + (portRef SP (instanceRef nRCS_0io)) + (portRef SP (instanceRef nRRAS_0io)) + (portRef SP (instanceRef nRWE_0io)) + (portRef SP (instanceRef Bank_0io_7)) + (portRef SP (instanceRef Bank_0io_6)) + (portRef SP (instanceRef Bank_0io_5)) + (portRef SP (instanceRef Bank_0io_4)) + (portRef SP (instanceRef Bank_0io_3)) + (portRef SP (instanceRef Bank_0io_2)) + (portRef SP (instanceRef Bank_0io_1)) + (portRef SP (instanceRef Bank_0io_0)) + (portRef SP (instanceRef PHI2r_0io)) + (portRef SP (instanceRef WRD_0io_7)) + (portRef SP (instanceRef WRD_0io_6)) + (portRef SP (instanceRef WRD_0io_5)) + (portRef SP (instanceRef WRD_0io_4)) + (portRef SP (instanceRef WRD_0io_3)) + (portRef SP (instanceRef WRD_0io_2)) + (portRef SP (instanceRef WRD_0io_1)) + (portRef SP (instanceRef WRD_0io_0)) + (portRef GSR (instanceRef GSR_INST)) + )) + (net GND (joined + (portRef Z (instanceRef GND)) + (portRef D1 (instanceRef FS_cry_0_0)) + (portRef C1 (instanceRef FS_cry_0_0)) + (portRef B1 (instanceRef FS_cry_0_0)) + (portRef D0 (instanceRef FS_cry_0_0)) + (portRef C0 (instanceRef FS_cry_0_0)) + (portRef A0 (instanceRef FS_cry_0_0)) + (portRef D1 (instanceRef FS_cry_0_1)) + (portRef C1 (instanceRef FS_cry_0_1)) + (portRef B1 (instanceRef FS_cry_0_1)) + (portRef D0 (instanceRef FS_cry_0_1)) + (portRef C0 (instanceRef FS_cry_0_1)) + (portRef B0 (instanceRef FS_cry_0_1)) + (portRef D1 (instanceRef FS_cry_0_3)) + (portRef C1 (instanceRef FS_cry_0_3)) + (portRef B1 (instanceRef FS_cry_0_3)) + (portRef D0 (instanceRef FS_cry_0_3)) + (portRef C0 (instanceRef FS_cry_0_3)) + (portRef B0 (instanceRef FS_cry_0_3)) + (portRef D1 (instanceRef FS_cry_0_5)) + (portRef C1 (instanceRef FS_cry_0_5)) + (portRef B1 (instanceRef FS_cry_0_5)) + (portRef D0 (instanceRef FS_cry_0_5)) + (portRef C0 (instanceRef FS_cry_0_5)) + (portRef B0 (instanceRef FS_cry_0_5)) + (portRef D1 (instanceRef FS_cry_0_7)) + (portRef C1 (instanceRef FS_cry_0_7)) + (portRef B1 (instanceRef FS_cry_0_7)) + (portRef D0 (instanceRef FS_cry_0_7)) + (portRef C0 (instanceRef FS_cry_0_7)) + (portRef B0 (instanceRef FS_cry_0_7)) + (portRef D1 (instanceRef FS_cry_0_9)) + (portRef C1 (instanceRef FS_cry_0_9)) + (portRef B1 (instanceRef FS_cry_0_9)) + (portRef D0 (instanceRef FS_cry_0_9)) + (portRef C0 (instanceRef FS_cry_0_9)) + (portRef B0 (instanceRef FS_cry_0_9)) + (portRef D1 (instanceRef FS_cry_0_11)) + (portRef C1 (instanceRef FS_cry_0_11)) + (portRef B1 (instanceRef FS_cry_0_11)) + (portRef D0 (instanceRef FS_cry_0_11)) + (portRef C0 (instanceRef FS_cry_0_11)) + (portRef B0 (instanceRef FS_cry_0_11)) + (portRef D1 (instanceRef FS_cry_0_13)) + (portRef C1 (instanceRef FS_cry_0_13)) + (portRef B1 (instanceRef FS_cry_0_13)) + (portRef D0 (instanceRef FS_cry_0_13)) + (portRef C0 (instanceRef FS_cry_0_13)) + (portRef B0 (instanceRef FS_cry_0_13)) + (portRef D1 (instanceRef FS_cry_0_15)) + (portRef C1 (instanceRef FS_cry_0_15)) + (portRef B1 (instanceRef FS_cry_0_15)) + (portRef D0 (instanceRef FS_cry_0_15)) + (portRef C0 (instanceRef FS_cry_0_15)) + (portRef B0 (instanceRef FS_cry_0_15)) + (portRef D1 (instanceRef FS_s_0_17)) + (portRef C1 (instanceRef FS_s_0_17)) + (portRef B1 (instanceRef FS_s_0_17)) + (portRef A1 (instanceRef FS_s_0_17)) + (portRef D0 (instanceRef FS_s_0_17)) + (portRef C0 (instanceRef FS_s_0_17)) + (portRef B0 (instanceRef FS_s_0_17)) + (portRef CD (instanceRef RA11_0io)) + (portRef CD (instanceRef RBA_0io_1)) + (portRef CD (instanceRef RBA_0io_0)) + (portRef CD (instanceRef UFMCLK_0io)) + (portRef PD (instanceRef nRCAS_0io)) + (portRef PD (instanceRef nRCS_0io)) + (portRef PD (instanceRef nRRAS_0io)) + (portRef PD (instanceRef nRWE_0io)) + (portRef CD (instanceRef Bank_0io_7)) + (portRef CD (instanceRef Bank_0io_6)) + (portRef CD (instanceRef Bank_0io_5)) + (portRef CD (instanceRef Bank_0io_4)) + (portRef CD (instanceRef Bank_0io_3)) + (portRef CD (instanceRef Bank_0io_2)) + (portRef CD (instanceRef Bank_0io_1)) + (portRef CD (instanceRef Bank_0io_0)) + (portRef CD (instanceRef PHI2r_0io)) + (portRef CD (instanceRef WRD_0io_7)) + (portRef CD (instanceRef WRD_0io_6)) + (portRef CD (instanceRef WRD_0io_5)) + (portRef CD (instanceRef WRD_0io_4)) + (portRef CD (instanceRef WRD_0io_3)) + (portRef CD (instanceRef WRD_0io_2)) + (portRef CD (instanceRef WRD_0io_1)) + (portRef CD (instanceRef WRD_0io_0)) + )) + (net PHI2_c (joined + (portRef O (instanceRef PHI2_pad)) + (portRef SCLK (instanceRef RA11_0io)) + (portRef SCLK (instanceRef Bank_0io_7)) + (portRef SCLK (instanceRef Bank_0io_6)) + (portRef SCLK (instanceRef Bank_0io_5)) + (portRef SCLK (instanceRef Bank_0io_4)) + (portRef SCLK (instanceRef Bank_0io_3)) + (portRef SCLK (instanceRef Bank_0io_2)) + (portRef SCLK (instanceRef Bank_0io_1)) + (portRef SCLK (instanceRef Bank_0io_0)) + (portRef D (instanceRef PHI2r_0io)) + (portRef A (instanceRef XOR8MEG_CN)) + )) + (net PHI2 (joined + (portRef PHI2) + (portRef I (instanceRef PHI2_pad)) + )) + (net (rename MAin_c_0 "MAin_c[0]") (joined + (portRef O (instanceRef MAin_pad_0)) + (portRef A (instanceRef RowAd_0)) + (portRef A (instanceRef un9_RA_i_m3_0)) + (portRef D (instanceRef CmdEnable16_0_a2_0)) + (portRef D (instanceRef un1_CmdEnable20_0_a2_1)) + (portRef B (instanceRef CMDWR)) + (portRef C (instanceRef CmdEnable17_0_a2)) + )) + (net (rename MAin_0 "MAin[0]") (joined + (portRef (member main 9)) + (portRef I (instanceRef MAin_pad_0)) + )) + (net (rename MAin_c_1 "MAin_c[1]") (joined + (portRef O (instanceRef MAin_pad_1)) + (portRef A (instanceRef RowAd_1)) + (portRef A (instanceRef un9_RA_i_m3_1)) + (portRef A (instanceRef CMDWR_2)) + (portRef A (instanceRef un1_CmdEnable20_0_o3_0)) + )) + (net (rename MAin_1 "MAin[1]") (joined + (portRef (member main 8)) + (portRef I (instanceRef MAin_pad_1)) + )) + (net (rename MAin_c_2 "MAin_c[2]") (joined + (portRef O (instanceRef MAin_pad_2)) + (portRef A (instanceRef RowAd_2)) + (portRef A (instanceRef un9_RA_i_m3_2)) + (portRef B (instanceRef un1_CmdEnable20_0_o3_0)) + (portRef C (instanceRef CMDWR)) + )) + (net (rename MAin_2 "MAin[2]") (joined + (portRef (member main 7)) + (portRef I (instanceRef MAin_pad_2)) + )) + (net (rename MAin_c_3 "MAin_c[3]") (joined + (portRef O (instanceRef MAin_pad_3)) + (portRef A (instanceRef RowAd_3)) + (portRef A (instanceRef un9_RA_i_m3_3)) + (portRef B (instanceRef CMDWR_2)) + (portRef A (instanceRef un1_CmdEnable20_0_o3_0_1)) + )) + (net (rename MAin_3 "MAin[3]") (joined + (portRef (member main 6)) + (portRef I (instanceRef MAin_pad_3)) + )) + (net (rename MAin_c_4 "MAin_c[4]") (joined + (portRef O (instanceRef MAin_pad_4)) + (portRef A (instanceRef RowAd_4)) + (portRef A (instanceRef un9_RA_i_m3_4)) + (portRef C (instanceRef CMDWR_2)) + (portRef B (instanceRef un1_CmdEnable20_0_o3_0_1)) + )) + (net (rename MAin_4 "MAin[4]") (joined + (portRef (member main 5)) + (portRef I (instanceRef MAin_pad_4)) + )) + (net (rename MAin_c_5 "MAin_c[5]") (joined + (portRef O (instanceRef MAin_pad_5)) + (portRef A (instanceRef RowAd_5)) + (portRef A (instanceRef C1WR_7_0_o3_0)) + (portRef A (instanceRef un9_RA_i_m3_5)) + )) + (net (rename MAin_5 "MAin[5]") (joined + (portRef (member main 4)) + (portRef I (instanceRef MAin_pad_5)) + )) + (net (rename MAin_c_6 "MAin_c[6]") (joined + (portRef O (instanceRef MAin_pad_6)) + (portRef A (instanceRef RowAd_6)) + (portRef A (instanceRef un9_RA_i_m3_6)) + (portRef D (instanceRef C1WR_7_0_o3_6)) + )) + (net (rename MAin_6 "MAin[6]") (joined + (portRef (member main 3)) + (portRef I (instanceRef MAin_pad_6)) + )) + (net (rename MAin_c_7 "MAin_c[7]") (joined + (portRef O (instanceRef MAin_pad_7)) + (portRef A (instanceRef RowAd_7)) + (portRef B (instanceRef C1WR_7_0_o3_0)) + (portRef A (instanceRef un9_RA_i_m3_7)) + )) + (net (rename MAin_7 "MAin[7]") (joined + (portRef (member main 2)) + (portRef I (instanceRef MAin_pad_7)) + )) + (net (rename MAin_c_8 "MAin_c[8]") (joined + (portRef O (instanceRef MAin_pad_8)) + (portRef A (instanceRef RowAd_8)) + (portRef A (instanceRef un9_RA_8)) + )) + (net (rename MAin_8 "MAin[8]") (joined + (portRef (member main 1)) + (portRef I (instanceRef MAin_pad_8)) + )) + (net (rename MAin_c_9 "MAin_c[9]") (joined + (portRef O (instanceRef MAin_pad_9)) + (portRef A (instanceRef RowAd_9)) + (portRef A (instanceRef RDQML_0)) + (portRef A (instanceRef un9_RA_i_m3_9)) + (portRef A (instanceRef RDQMH_pad_RNO)) + )) + (net (rename MAin_9 "MAin[9]") (joined + (portRef (member main 0)) + (portRef I (instanceRef MAin_pad_9)) + )) + (net (rename CROW_c_0 "CROW_c[0]") (joined + (portRef O (instanceRef CROW_pad_0)) + (portRef A (instanceRef RBAd_0)) + )) + (net (rename CROW_0 "CROW[0]") (joined + (portRef (member crow 1)) + (portRef I (instanceRef CROW_pad_0)) + )) + (net (rename CROW_c_1 "CROW_c[1]") (joined + (portRef O (instanceRef CROW_pad_1)) + (portRef A (instanceRef RBAd_1)) + )) + (net (rename CROW_1 "CROW[1]") (joined + (portRef (member crow 0)) + (portRef I (instanceRef CROW_pad_1)) + )) + (net (rename Din_c_0 "Din_c[0]") (joined + (portRef O (instanceRef Din_pad_0)) + (portRef A (instanceRef XOR8MEG_3_u_0_a2_0_2)) + (portRef C (instanceRef Cmdn8MEGEN_4_u_i_0)) + (portRef A (instanceRef CmdEnable17_0_a2_0)) + (portRef D (instanceRef CmdUFMSDI)) + (portRef D (instanceRef Bank_0io_0)) + (portRef D (instanceRef WRD_0io_0)) + )) + (net (rename Din_0 "Din[0]") (joined + (portRef (member din 7)) + (portRef I (instanceRef Din_pad_0)) + )) + (net (rename Din_c_1 "Din_c[1]") (joined + (portRef O (instanceRef Din_pad_1)) + (portRef C (instanceRef CmdLEDEN_4_u_i_0)) + (portRef A (instanceRef XOR8MEG_3_u_0_0)) + (portRef B (instanceRef CmdEnable17_0_a2_0)) + (portRef D (instanceRef CmdUFMCLK)) + (portRef D (instanceRef Bank_0io_1)) + (portRef D (instanceRef WRD_0io_1)) + )) + (net (rename Din_1 "Din[1]") (joined + (portRef (member din 6)) + (portRef I (instanceRef Din_pad_1)) + )) + (net (rename Din_c_2 "Din_c[2]") (joined + (portRef O (instanceRef Din_pad_2)) + (portRef A (instanceRef CmdEnable17_0_a2_1)) + (portRef A (instanceRef CmdEnable16_0_a2_0)) + (portRef B (instanceRef XOR8MEG_3_u_0_a2_0_2)) + (portRef D (instanceRef CmdUFMCS)) + (portRef D (instanceRef Bank_0io_2)) + (portRef D (instanceRef WRD_0io_2)) + )) + (net (rename Din_2 "Din[2]") (joined + (portRef (member din 5)) + (portRef I (instanceRef Din_pad_2)) + )) + (net (rename Din_c_3 "Din_c[3]") (joined + (portRef O (instanceRef Din_pad_3)) + (portRef D (instanceRef CmdSubmitted_1_sqmuxa_0_a2)) + (portRef D (instanceRef CmdUFMCLK_1_sqmuxa_0_a2)) + (portRef B (instanceRef CmdEnable17_0_a2_1)) + (portRef B (instanceRef CmdEnable16_0_a2_0)) + (portRef A (instanceRef Cmdn8MEGEN_4_u_i_o2)) + (portRef C (instanceRef XOR8MEG_3_u_0_a2_0_2)) + (portRef A (instanceRef Cmdn8MEGEN_4_u_i_a2_2)) + (portRef D (instanceRef Bank_0io_3)) + (portRef D (instanceRef WRD_0io_3)) + )) + (net (rename Din_3 "Din[3]") (joined + (portRef (member din 4)) + (portRef I (instanceRef Din_pad_3)) + )) + (net (rename Din_c_4 "Din_c[4]") (joined + (portRef O (instanceRef Din_pad_4)) + (portRef D (instanceRef CmdEnable16_0_a2)) + (portRef D (instanceRef CmdLEDEN_4_u_i_a2_0_0)) + (portRef A (instanceRef CmdEnable17_0_a2_0_2)) + (portRef A (instanceRef Cmdn8MEGEN_4_u_i_o2_0)) + (portRef A (instanceRef XOR8MEG_3_u_0_o3_0)) + (portRef A (instanceRef CmdEnable16_0_a2_0_2)) + (portRef A (instanceRef un1_CmdEnable20_0_a2_0_0)) + (portRef D (instanceRef Bank_0io_4)) + (portRef D (instanceRef WRD_0io_4)) + )) + (net (rename Din_4 "Din[4]") (joined + (portRef (member din 3)) + (portRef I (instanceRef Din_pad_4)) + )) + (net (rename Din_c_5 "Din_c[5]") (joined + (portRef O (instanceRef Din_pad_5)) + (portRef C (instanceRef CmdEnable16_0_a2)) + (portRef C (instanceRef CmdSubmitted_1_sqmuxa_0_a2)) + (portRef C (instanceRef CmdUFMCLK_1_sqmuxa_0_a2)) + (portRef A (instanceRef CmdLEDEN_4_u_i_a2_0_0)) + (portRef C (instanceRef CmdEnable17_0_a2_1)) + (portRef B (instanceRef XOR8MEG_3_u_0_o3_0)) + (portRef B (instanceRef CmdEnable16_0_a2_0_2)) + (portRef B (instanceRef Cmdn8MEGEN_4_u_i_o2)) + (portRef B (instanceRef Cmdn8MEGEN_4_u_i_a2_2)) + (portRef B (instanceRef un1_CmdEnable20_0_a2_0_0)) + (portRef D (instanceRef Bank_0io_5)) + (portRef D (instanceRef WRD_0io_5)) + )) + (net (rename Din_5 "Din[5]") (joined + (portRef (member din 2)) + (portRef I (instanceRef Din_pad_5)) + )) + (net (rename Din_c_6 "Din_c[6]") (joined + (portRef O (instanceRef Din_pad_6)) + (portRef C (instanceRef CmdLEDEN_4_u_i_a2_0_0)) + (portRef A (instanceRef RA11d)) + (portRef B (instanceRef CmdEnable17_0_a2_0_2)) + (portRef C (instanceRef CmdEnable16_0_a2_0)) + (portRef B (instanceRef Cmdn8MEGEN_4_u_i_o2_0)) + (portRef C (instanceRef XOR8MEG_3_u_0_o3_0)) + (portRef C (instanceRef un1_CmdEnable20_0_a2_1)) + (portRef D (instanceRef Bank_0io_6)) + (portRef D (instanceRef WRD_0io_6)) + )) + (net (rename Din_6 "Din[6]") (joined + (portRef (member din 1)) + (portRef I (instanceRef Din_pad_6)) + )) + (net (rename Din_c_7 "Din_c[7]") (joined + (portRef O (instanceRef Din_pad_7)) + (portRef B (instanceRef CmdLEDEN_4_u_i_a2_0_0)) + (portRef C (instanceRef Cmdn8MEGEN_4_u_i_o2_0)) + (portRef D (instanceRef XOR8MEG_3_u_0_o3_0)) + (portRef C (instanceRef CmdEnable17_0_a2_0)) + (portRef D (instanceRef Bank_0io_7)) + (portRef D (instanceRef WRD_0io_7)) + )) + (net (rename Din_7 "Din[7]") (joined + (portRef (member din 0)) + (portRef I (instanceRef Din_pad_7)) + )) + (net (rename Dout_0 "Dout[0]") (joined + (portRef O (instanceRef Dout_pad_0)) + (portRef (member dout 7)) + )) + (net (rename Dout_1 "Dout[1]") (joined + (portRef O (instanceRef Dout_pad_1)) + (portRef (member dout 6)) + )) + (net (rename Dout_2 "Dout[2]") (joined + (portRef O (instanceRef Dout_pad_2)) + (portRef (member dout 5)) + )) + (net (rename Dout_3 "Dout[3]") (joined + (portRef O (instanceRef Dout_pad_3)) + (portRef (member dout 4)) + )) + (net (rename Dout_4 "Dout[4]") (joined + (portRef O (instanceRef Dout_pad_4)) + (portRef (member dout 3)) + )) + (net (rename Dout_5 "Dout[5]") (joined + (portRef O (instanceRef Dout_pad_5)) + (portRef (member dout 2)) + )) + (net (rename Dout_6 "Dout[6]") (joined + (portRef O (instanceRef Dout_pad_6)) + (portRef (member dout 1)) + )) + (net (rename Dout_7 "Dout[7]") (joined + (portRef O (instanceRef Dout_pad_7)) + (portRef (member dout 0)) + )) + (net nCCAS_c (joined + (portRef O (instanceRef nCCAS_pad)) + (portRef A (instanceRef nCCAS_pad_RNI01SJ)) + (portRef A (instanceRef nCCAS_pad_RNISUR8)) + )) + (net nCCAS (joined + (portRef nCCAS) + (portRef I (instanceRef nCCAS_pad)) + )) + (net nCRAS_c (joined + (portRef O (instanceRef nCRAS_pad)) + (portRef C (instanceRef LED_pad_RNO)) + (portRef A (instanceRef nCRAS_pad_RNIBPVB)) + (portRef A (instanceRef RASr_RNO)) + )) + (net nCRAS (joined + (portRef nCRAS) + (portRef I (instanceRef nCRAS_pad)) + )) + (net nFWE_c (joined + (portRef O (instanceRef nFWE_pad)) + (portRef D (instanceRef CMDWR_2)) + (portRef C (instanceRef un1_CmdEnable20_0_o3_0_1)) + (portRef B (instanceRef nCCAS_pad_RNI01SJ)) + (portRef A (instanceRef FWEr_RNO)) + )) + (net nFWE (joined + (portRef nFWE) + (portRef I (instanceRef nFWE_pad)) + )) + (net LED_c (joined + (portRef Z (instanceRef LED_pad_RNO)) + (portRef I (instanceRef LED_pad)) + )) + (net LED (joined + (portRef O (instanceRef LED_pad)) + (portRef LED) + )) + (net (rename RBA_c_0 "RBA_c[0]") (joined + (portRef Q (instanceRef RBA_0io_0)) + (portRef I (instanceRef RBA_pad_0)) + )) + (net (rename RBA_0 "RBA[0]") (joined + (portRef O (instanceRef RBA_pad_0)) + (portRef (member rba 1)) + )) + (net (rename RBA_c_1 "RBA_c[1]") (joined + (portRef Q (instanceRef RBA_0io_1)) + (portRef I (instanceRef RBA_pad_1)) + )) + (net (rename RBA_1 "RBA[1]") (joined + (portRef O (instanceRef RBA_pad_1)) + (portRef (member rba 0)) + )) + (net (rename RA_c_0 "RA_c[0]") (joined + (portRef Z (instanceRef un9_RA_i_m3_0)) + (portRef I (instanceRef RA_pad_0)) + )) + (net (rename RA_0 "RA[0]") (joined + (portRef O (instanceRef RA_pad_0)) + (portRef (member ra 11)) + )) + (net (rename RA_c_1 "RA_c[1]") (joined + (portRef Z (instanceRef un9_RA_i_m3_1)) + (portRef I (instanceRef RA_pad_1)) + )) + (net (rename RA_1 "RA[1]") (joined + (portRef O (instanceRef RA_pad_1)) + (portRef (member ra 10)) + )) + (net (rename RA_c_2 "RA_c[2]") (joined + (portRef Z (instanceRef un9_RA_i_m3_2)) + (portRef I (instanceRef RA_pad_2)) + )) + (net (rename RA_2 "RA[2]") (joined + (portRef O (instanceRef RA_pad_2)) + (portRef (member ra 9)) + )) + (net (rename RA_c_3 "RA_c[3]") (joined + (portRef Z (instanceRef un9_RA_i_m3_3)) + (portRef I (instanceRef RA_pad_3)) + )) + (net (rename RA_3 "RA[3]") (joined + (portRef O (instanceRef RA_pad_3)) + (portRef (member ra 8)) + )) + (net (rename RA_c_4 "RA_c[4]") (joined + (portRef Z (instanceRef un9_RA_i_m3_4)) + (portRef I (instanceRef RA_pad_4)) + )) + (net (rename RA_4 "RA[4]") (joined + (portRef O (instanceRef RA_pad_4)) + (portRef (member ra 7)) + )) + (net (rename RA_c_5 "RA_c[5]") (joined + (portRef Z (instanceRef un9_RA_i_m3_5)) + (portRef I (instanceRef RA_pad_5)) + )) + (net (rename RA_5 "RA[5]") (joined + (portRef O (instanceRef RA_pad_5)) + (portRef (member ra 6)) + )) + (net (rename RA_c_6 "RA_c[6]") (joined + (portRef Z (instanceRef un9_RA_i_m3_6)) + (portRef I (instanceRef RA_pad_6)) + )) + (net (rename RA_6 "RA[6]") (joined + (portRef O (instanceRef RA_pad_6)) + (portRef (member ra 5)) + )) + (net (rename RA_c_7 "RA_c[7]") (joined + (portRef Z (instanceRef un9_RA_i_m3_7)) + (portRef I (instanceRef RA_pad_7)) + )) + (net (rename RA_7 "RA[7]") (joined + (portRef O (instanceRef RA_pad_7)) + (portRef (member ra 4)) + )) + (net (rename RA_c_8 "RA_c[8]") (joined + (portRef Z (instanceRef un9_RA_8)) + (portRef I (instanceRef RA_pad_8)) + )) + (net (rename RA_8 "RA[8]") (joined + (portRef O (instanceRef RA_pad_8)) + (portRef (member ra 3)) + )) + (net (rename RA_c_9 "RA_c[9]") (joined + (portRef Z (instanceRef un9_RA_i_m3_9)) + (portRef I (instanceRef RA_pad_9)) + )) + (net (rename RA_9 "RA[9]") (joined + (portRef O (instanceRef RA_pad_9)) + (portRef (member ra 2)) + )) + (net (rename RA_c_10 "RA_c[10]") (joined + (portRef Q (instanceRef RA10_0io)) + (portRef I (instanceRef RA_pad_10)) + )) + (net (rename RA_10 "RA[10]") (joined + (portRef O (instanceRef RA_pad_10)) + (portRef (member ra 1)) + )) + (net (rename RA_c_11 "RA_c[11]") (joined + (portRef Q (instanceRef RA11_0io)) + (portRef I (instanceRef RA_pad_11)) + )) + (net (rename RA_11 "RA[11]") (joined + (portRef O (instanceRef RA_pad_11)) + (portRef (member ra 0)) + )) + (net (rename RD_in_0 "RD_in[0]") (joined + (portRef O (instanceRef RD_pad_0)) + (portRef I (instanceRef Dout_pad_0)) + )) + (net (rename RD_0 "RD[0]") (joined + (portRef B (instanceRef RD_pad_0)) + (portRef (member rd 7)) + )) + (net (rename RD_in_1 "RD_in[1]") (joined + (portRef O (instanceRef RD_pad_1)) + (portRef I (instanceRef Dout_pad_1)) + )) + (net (rename RD_1 "RD[1]") (joined + (portRef B (instanceRef RD_pad_1)) + (portRef (member rd 6)) + )) + (net (rename RD_in_2 "RD_in[2]") (joined + (portRef O (instanceRef RD_pad_2)) + (portRef I (instanceRef Dout_pad_2)) + )) + (net (rename RD_2 "RD[2]") (joined + (portRef B (instanceRef RD_pad_2)) + (portRef (member rd 5)) + )) + (net (rename RD_in_3 "RD_in[3]") (joined + (portRef O (instanceRef RD_pad_3)) + (portRef I (instanceRef Dout_pad_3)) + )) + (net (rename RD_3 "RD[3]") (joined + (portRef B (instanceRef RD_pad_3)) + (portRef (member rd 4)) + )) + (net (rename RD_in_4 "RD_in[4]") (joined + (portRef O (instanceRef RD_pad_4)) + (portRef I (instanceRef Dout_pad_4)) + )) + (net (rename RD_4 "RD[4]") (joined + (portRef B (instanceRef RD_pad_4)) + (portRef (member rd 3)) + )) + (net (rename RD_in_5 "RD_in[5]") (joined + (portRef O (instanceRef RD_pad_5)) + (portRef I (instanceRef Dout_pad_5)) + )) + (net (rename RD_5 "RD[5]") (joined + (portRef B (instanceRef RD_pad_5)) + (portRef (member rd 2)) + )) + (net (rename RD_in_6 "RD_in[6]") (joined + (portRef O (instanceRef RD_pad_6)) + (portRef I (instanceRef Dout_pad_6)) + )) + (net (rename RD_6 "RD[6]") (joined + (portRef B (instanceRef RD_pad_6)) + (portRef (member rd 1)) + )) + (net (rename RD_in_7 "RD_in[7]") (joined + (portRef O (instanceRef RD_pad_7)) + (portRef I (instanceRef Dout_pad_7)) + )) + (net (rename RD_7 "RD[7]") (joined + (portRef B (instanceRef RD_pad_7)) + (portRef (member rd 0)) + )) + (net nRCS_c (joined + (portRef Q (instanceRef nRCS_0io)) + (portRef I (instanceRef nRCS_pad)) + )) + (net nRCS (joined + (portRef O (instanceRef nRCS_pad)) + (portRef nRCS) + )) + (net RCLK_c (joined + (portRef O (instanceRef RCLK_pad)) + (portRef CK (instanceRef CASr)) + (portRef CK (instanceRef CASr2)) + (portRef CK (instanceRef CASr3)) + (portRef CK (instanceRef FS_17)) + (portRef CK (instanceRef FS_16)) + (portRef CK (instanceRef FS_15)) + (portRef CK (instanceRef FS_14)) + (portRef CK (instanceRef FS_13)) + (portRef CK (instanceRef FS_12)) + (portRef CK (instanceRef FS_11)) + (portRef CK (instanceRef FS_10)) + (portRef CK (instanceRef FS_9)) + (portRef CK (instanceRef FS_8)) + (portRef CK (instanceRef FS_7)) + (portRef CK (instanceRef FS_6)) + (portRef CK (instanceRef FS_5)) + (portRef CK (instanceRef FS_4)) + (portRef CK (instanceRef FS_3)) + (portRef CK (instanceRef FS_2)) + (portRef CK (instanceRef FS_1)) + (portRef CK (instanceRef FS_0)) + (portRef CK (instanceRef IS_3)) + (portRef CK (instanceRef IS_2)) + (portRef CK (instanceRef IS_1)) + (portRef CK (instanceRef IS_0)) + (portRef CK (instanceRef InitReady)) + (portRef CK (instanceRef LEDEN)) + (portRef CK (instanceRef PHI2r2)) + (portRef CK (instanceRef PHI2r3)) + (portRef CK (instanceRef RASr)) + (portRef CK (instanceRef RASr2)) + (portRef CK (instanceRef RASr3)) + (portRef CK (instanceRef RCKE)) + (portRef CK (instanceRef RCKEEN)) + (portRef CK (instanceRef Ready)) + (portRef CK (instanceRef Ready_fast)) + (portRef CK (instanceRef S_1)) + (portRef CK (instanceRef S_0)) + (portRef CK (instanceRef UFMSDI)) + (portRef CK (instanceRef n8MEGEN)) + (portRef CK (instanceRef nRowColSel)) + (portRef CK (instanceRef nUFMCS)) + (portRef SCLK (instanceRef RA10_0io)) + (portRef SCLK (instanceRef UFMCLK_0io)) + (portRef SCLK (instanceRef nRCAS_0io)) + (portRef SCLK (instanceRef nRCS_0io)) + (portRef SCLK (instanceRef nRRAS_0io)) + (portRef SCLK (instanceRef nRWE_0io)) + (portRef SCLK (instanceRef PHI2r_0io)) + )) + (net RCLK (joined + (portRef RCLK) + (portRef I (instanceRef RCLK_pad)) + )) + (net RCKE_c (joined + (portRef Q (instanceRef RCKE)) + (portRef C (instanceRef nRRAS_5_u_i_0)) + (portRef B (instanceRef nRWE_s_i_tz_0)) + (portRef I (instanceRef RCKE_pad)) + )) + (net RCKE (joined + (portRef O (instanceRef RCKE_pad)) + (portRef RCKE) + )) + (net nRWE_c (joined + (portRef Q (instanceRef nRWE_0io)) + (portRef I (instanceRef nRWE_pad)) + )) + (net nRWE (joined + (portRef O (instanceRef nRWE_pad)) + (portRef nRWE) + )) + (net nRRAS_c (joined + (portRef Q (instanceRef nRRAS_0io)) + (portRef I (instanceRef nRRAS_pad)) + )) + (net nRRAS (joined + (portRef O (instanceRef nRRAS_pad)) + (portRef nRRAS) + )) + (net nRCAS_c (joined + (portRef Q (instanceRef nRCAS_0io)) + (portRef I (instanceRef nRCAS_pad)) + )) + (net nRCAS (joined + (portRef O (instanceRef nRCAS_pad)) + (portRef nRCAS) + )) + (net RDQMH_c (joined + (portRef Z (instanceRef RDQMH_pad_RNO)) + (portRef I (instanceRef RDQMH_pad)) + )) + (net RDQMH (joined + (portRef O (instanceRef RDQMH_pad)) + (portRef RDQMH) + )) + (net RDQML_c (joined + (portRef Z (instanceRef RDQML_0)) + (portRef I (instanceRef RDQML_pad)) + )) + (net RDQML (joined + (portRef O (instanceRef RDQML_pad)) + (portRef RDQML) + )) + (net nUFMCS_c (joined + (portRef Q (instanceRef nUFMCS)) + (portRef D (instanceRef nUFMCS_s_0_N_5_i)) + (portRef I (instanceRef nUFMCS_pad)) + )) + (net nUFMCS (joined + (portRef O (instanceRef nUFMCS_pad)) + (portRef nUFMCS) + )) + (net UFMCLK_c (joined + (portRef Q (instanceRef UFMCLK_0io)) + (portRef I (instanceRef UFMCLK_pad)) + )) + (net UFMCLK (joined + (portRef O (instanceRef UFMCLK_pad)) + (portRef UFMCLK) + )) + (net UFMSDI_c (joined + (portRef Q (instanceRef UFMSDI)) + (portRef I (instanceRef UFMSDI_pad)) + (portRef A (instanceRef UFMSDI_RNO_1)) + )) + (net UFMSDI (joined + (portRef O (instanceRef UFMSDI_pad)) + (portRef UFMSDI) + )) + (net UFMSDO_c (joined + (portRef O (instanceRef UFMSDO_pad)) + (portRef C (instanceRef n8MEGEN_5_i_m2)) + )) + (net UFMSDO (joined + (portRef UFMSDO) + (portRef I (instanceRef UFMSDO_pad)) + )) + (net N_415_0 (joined + (portRef Z (instanceRef CmdSubmitted_RNO)) + (portRef D (instanceRef CmdSubmitted)) + )) + (net N_416_0 (joined + (portRef Z (instanceRef InitReady_RNO)) + (portRef D (instanceRef InitReady)) + )) + (net N_417_0 (joined + (portRef Z (instanceRef Ready_RNO)) + (portRef D (instanceRef Ready)) + )) + (net N_418_0 (joined + (portRef Z (instanceRef Ready_fast_RNO)) + (portRef D (instanceRef Ready_fast)) + )) + (net nFWE_c_i (joined + (portRef Z (instanceRef FWEr_RNO)) + (portRef D (instanceRef FWEr)) + )) + (net nCRAS_c_i_0 (joined + (portRef Z (instanceRef RASr_RNO)) + (portRef D (instanceRef RASr)) + )) + (net nCCAS_c_i (joined + (portRef Z (instanceRef nCCAS_pad_RNISUR8)) + (portRef D (instanceRef CASr)) + (portRef D (instanceRef CBR)) + (portRef SCLK (instanceRef WRD_0io_7)) + (portRef SCLK (instanceRef WRD_0io_6)) + (portRef SCLK (instanceRef WRD_0io_5)) + (portRef SCLK (instanceRef WRD_0io_4)) + (portRef SCLK (instanceRef WRD_0io_3)) + (portRef SCLK (instanceRef WRD_0io_2)) + (portRef SCLK (instanceRef WRD_0io_1)) + (portRef SCLK (instanceRef WRD_0io_0)) + )) + (net (rename IS_i_0 "IS_i[0]") (joined + (portRef Z (instanceRef RA10_0io_RNO)) + (portRef D (instanceRef RA10_0io)) + )) + (net RASr2_i (joined + (portRef Z (instanceRef RASr2_RNIAFR1)) + (portRef CD (instanceRef S_1)) + (portRef CD (instanceRef S_0)) + )) + (net UFMSDI_RNO_1 (joined + (portRef Z (instanceRef UFMSDI_RNO_1)) + (portRef BLUT (instanceRef UFMSDI_RNO)) + )) + (net UFMSDI_RNO_0 (joined + (portRef Z (instanceRef UFMSDI_RNO_0)) + (portRef ALUT (instanceRef UFMSDI_RNO)) + )) + (net N_1 (joined + (portRef CIN (instanceRef FS_cry_0_0)) + )) + ) + (property orig_inst_of (string "RAM2GS")) + ) + ) + ) + (design RAM2GS (cellRef RAM2GS (libraryRef work)) + (property PART (string "lcmxo2_640hc-4") )) +) diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.fse b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.fse new file mode 100644 index 0000000..e69de29 diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.htm b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.htm new file mode 100644 index 0000000..c490adf --- /dev/null +++ b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.htm @@ -0,0 +1,9 @@ + + + syntmp/RAM2GS_LCMXO2_640HC_impl1_srr.htm log file + + + + + + diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.jed b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.jed index 94c4dd3..bf90645 100644 --- a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.jed +++ b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.jed @@ -2,11 +2,26 @@ NOTE Diamond (64-bit) 3.12.1.454 JEDEC Compatible Fuse File.* NOTE Copyright (C), 1992-2010, Lattice Semiconductor Corporation.* NOTE All Rights Reserved.* -NOTE DATE CREATED: Tue Aug 15 05:03:40 2023* +NOTE DATE CREATED: Tue Aug 15 23:30:12 2023* NOTE DESIGN NAME: RAM2GS_LCMXO2_640HC_impl1.ncd* NOTE DEVICE NAME: LCMXO2-640HC-4TQFP100* NOTE JEDEC FILE STATUS: Final Version 1.95* NOTE PIN ASSIGNMENTS* +NOTE PINS RD[0] : 36 : inout* +NOTE PINS Dout[0] : 76 : out* +NOTE PINS PHI2 : 8 : in* +NOTE PINS UFMSDO : 27 : in* +NOTE PINS UFMSDI : 29 : out* +NOTE PINS UFMCLK : 28 : out* +NOTE PINS nUFMCS : 30 : out* +NOTE PINS RDQML : 48 : out* +NOTE PINS RDQMH : 51 : out* +NOTE PINS nRCAS : 52 : out* +NOTE PINS nRRAS : 54 : out* +NOTE PINS nRWE : 49 : out* +NOTE PINS RCKE : 53 : out* +NOTE PINS RCLK : 62 : in* +NOTE PINS nRCS : 57 : out* NOTE PINS RD[7] : 43 : inout* NOTE PINS RD[6] : 42 : inout* NOTE PINS RD[5] : 41 : inout* @@ -14,18 +29,6 @@ NOTE PINS RD[4] : 40 : inout* NOTE PINS RD[3] : 39 : inout* NOTE PINS RD[2] : 38 : inout* NOTE PINS RD[1] : 37 : inout* -NOTE PINS RD[0] : 36 : inout* -NOTE PINS Dout[7] : 82 : out* -NOTE PINS Dout[6] : 78 : out* -NOTE PINS Dout[5] : 84 : out* -NOTE PINS Dout[4] : 83 : out* -NOTE PINS Dout[3] : 85 : out* -NOTE PINS Dout[2] : 87 : out* -NOTE PINS Dout[1] : 86 : out* -NOTE PINS Dout[0] : 76 : out* -NOTE PINS LED : 34 : out* -NOTE PINS RBA[1] : 60 : out* -NOTE PINS RBA[0] : 58 : out* NOTE PINS RA[11] : 59 : out* NOTE PINS RA[10] : 64 : out* NOTE PINS RA[9] : 63 : out* @@ -38,17 +41,29 @@ NOTE PINS RA[3] : 71 : out* NOTE PINS RA[2] : 69 : out* NOTE PINS RA[1] : 67 : out* NOTE PINS RA[0] : 66 : out* -NOTE PINS nRCS : 57 : out* -NOTE PINS RCKE : 53 : out* -NOTE PINS nRWE : 49 : out* -NOTE PINS nRRAS : 54 : out* -NOTE PINS nRCAS : 52 : out* -NOTE PINS RDQMH : 51 : out* -NOTE PINS RDQML : 48 : out* -NOTE PINS nUFMCS : 77 : out* -NOTE PINS UFMCLK : 29 : out* -NOTE PINS UFMSDI : 30 : out* -NOTE PINS PHI2 : 8 : in* +NOTE PINS RBA[1] : 60 : out* +NOTE PINS RBA[0] : 58 : out* +NOTE PINS LED : 34 : out* +NOTE PINS nFWE : 15 : in* +NOTE PINS nCRAS : 17 : in* +NOTE PINS nCCAS : 9 : in* +NOTE PINS Dout[7] : 82 : out* +NOTE PINS Dout[6] : 78 : out* +NOTE PINS Dout[5] : 84 : out* +NOTE PINS Dout[4] : 83 : out* +NOTE PINS Dout[3] : 85 : out* +NOTE PINS Dout[2] : 87 : out* +NOTE PINS Dout[1] : 86 : out* +NOTE PINS Din[7] : 1 : in* +NOTE PINS Din[6] : 2 : in* +NOTE PINS Din[5] : 98 : in* +NOTE PINS Din[4] : 99 : in* +NOTE PINS Din[3] : 97 : in* +NOTE PINS Din[2] : 88 : in* +NOTE PINS Din[1] : 96 : in* +NOTE PINS Din[0] : 3 : in* +NOTE PINS CROW[1] : 16 : in* +NOTE PINS CROW[0] : 10 : in* NOTE PINS MAin[9] : 32 : in* NOTE PINS MAin[8] : 25 : in* NOTE PINS MAin[7] : 18 : in* @@ -59,352 +74,337 @@ NOTE PINS MAin[3] : 21 : in* NOTE PINS MAin[2] : 13 : in* NOTE PINS MAin[1] : 12 : in* NOTE PINS MAin[0] : 14 : in* -NOTE PINS CROW[1] : 16 : in* -NOTE PINS CROW[0] : 10 : in* -NOTE PINS Din[7] : 1 : in* -NOTE PINS Din[6] : 2 : in* -NOTE PINS Din[5] : 98 : in* -NOTE PINS Din[4] : 99 : in* -NOTE PINS Din[3] : 97 : in* -NOTE PINS Din[2] : 88 : in* -NOTE PINS Din[1] : 96 : in* -NOTE PINS Din[0] : 3 : in* -NOTE PINS nCCAS : 9 : in* -NOTE PINS nCRAS : 17 : in* -NOTE PINS nFWE : 28 : in* -NOTE PINS RCLK : 62 : in* -NOTE PINS UFMSDO : 27 : in* QP100* QF171904* G0* F0* L000000 -11111111111111111011110110110011111111111111111100111011000000000000000000000000000000100000000000000000000000000000011000001001 -00110000000001010101000000101000010010001111111101000110000000000000000000000000101110001110000000000000110101110000000000000000 +11111111111111111011110110110011111111111111111100111011000000000000000000000000000000100000000000000000000000000000010100110000 +10001000001010000000100101010000010010001111111101000110000000000000000000000000101110001110000000000000110101110000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100010000000000000000 +00000000100010000000000000000001000100000010001000000000000000000000000000000000000000000000000000000000000000000001001000000000 +00000000000000001001000000000000000000010010000000100100000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000010001000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000010010000000000000000000000000100100000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010 +00111001000000011001001000100111001001001000100000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000001001100000010111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000001001100010010100000001000110110110000001001000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000010001100000001001100011101000001000100100110000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000100110000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000100001000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000101111000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000100001000000000000000000000000000000000000001001001011010 -00001100100100010011100100100100010000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000 -00000000000010001001001100000010110100100101000000000000000010010000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000001001010000000010001110011001001000000000000001000001011100000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000100101100011000000010011000100101110001010001001100000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000010110100000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000010000100000000000000000000000000000000000000000 +00000000000000100100000010101000000000010001000000000000010011100000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000001000010000000000000000000000000000000000000000000000000000000000000000000 +00000000101111000101010000000010111100000000010011100000000001000100000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000010010100000000000000000000000000000101010001000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000001001110000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000010101100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000010010100000000000101001000000000000000000000000000000000000000000000000000000000000000000000 -00000000101100000101011000000010110000000000100001000000100011000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000010000000000100010100111000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000001001110000100010000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000010001000000000000010100100000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000001001110000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000001011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000010010000000000000000000000000000000000000000000000000000000000000000000000000000000010 -01010000000000000010111000000100000000000000000001001010000000000000000000000000000000000000000000000000000000000000000000000000 -00000010001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000001000110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000001000000000000000000000000000011100000010000000000001001010000000000000000000000000000000000000000000000000000000000000000 -00000000000000010001000000000000000000000001000100000000000000100011000000000000000000000000000000000000000000000000000000000000 -00000000000000000000001001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000100101000000000000000010111110011100000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000101001000000000000000000000000000000000000000000000000000000000000 -00000100001100111000000000000000001000110000000000000000000000000000000000100110000000000000000000000000000000000000000000000000 -00000000001001010000000000000000001001010000000000000000000000000000100110100110000000000000000000000000000000000000000000000000 -00000000000000000000010010000000000000000000000000000000000000000000000000100100100100000000000000000000000000000000000000000000 -00000000000001001000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010 -00110000000000000000010001100001000101001110000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000100001000000000000000000001001010000000000000000000000000000000000000110000011100000000000000000000000000000 -00000000000000100101000000000000000001001100000010011100000000001001000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000010011000000000000000000000000000000000000000000000001001000000000000000000 -00000000000000000000000000000000000000000000000001001110100011000000000000000000000000000000000000000000000000000000000000000010 -00011001110000000000000000000000000000000000000000000100001000000000000000000000000000000000000000000011000001110000000000000000 +00000000000000000000000000000000000000100000000000001000010000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000010000000000000000001000100000000001000000000000000000000000000000000100001100111000000000000000000000000 +00000000000000000000000000000000000000000010001010011100000000000000000001000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000101011000001000000000000000000000100011100110000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000011010000101001100000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000001000110000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000001000000010000100000000000000100000010001011100100001110010000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000001000000011001001001001100010011100000000000100100001001101000101101000100 +10011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100010000010000110011100000000000 +00010000110011000000000000000000001100000011000000000000000000000000000000000000000000000000000000000000000000000000000000000010 +11000000000000010011000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000100101000000000000000000000000000000000010100100000000000000000000000000000000000000000000000000000000000000100001100 +11100000000000000000100011100100000100011000000000000000000000000001000011101000100001000000000000100110000000000000000000000000 +00000000000000000000000000000000000000000000000010011001001100100101101001000000000000000000000000001001100100110110100101000000 +00000000000000000000000000000000000000000000000000000000000000000000000000100101100100100000000000000000000000000000000001000000 +10011110010000000000000000000000000000000000000000000000000000000000010010000000000000000000000000000000000000000000000000000001 +00010001000100000110011110000000000000000000000000000000000000000000000000000000000000000000000000000001001010000000000000000000 +00000000000010011100000001100111100000000000000000000000000000000000000101100000000001001000000100001000000000000000000000000000 +00000000000000000000000101100000100110000110100011100000000000000000000000000000000000000000000000000010000000000000000000000000 +00000000000100101000000000000000000000000000110010000100001010100110011110000000000000000000000000000000000000000000000000000000 +00000000000000000001000111001110001011110000000000000000000000000000000110010011100000000110011110010010000000000000000000000000 +00000000000000000000000000000000100011000100111000000000001001100010000111110000001110110000100000000000000000000000000001000000 +01001110000000000110011110000000000000000000000000000000000000000000000000000000000000000000000000001001000001001110000000000000 +00000000000001000100000110001011100000000000000000000000000000000000000000000000000000000000000000100110001000100000000000000001 +00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010100000000000000000000100111001001 +10100100000000000000000000000100010100111000000000000000000000000000000000000000000000000000000000001010100000000000100000000000 +00000000100010000100100000000000000000000000000000000000001100001011000000000000000000000000000000000000000000000000000000000000 +00000000000000000001001010000000000000000000000000000000000110100000100000000000000000000000000000000000000000000000000000000001 +00010000000000000000000000000000000000000000000000000000000000000010011100000100100000000000000000000000000000000000000010010100 +00000000010001100000100110000000000000000000000000000000000000000000000100000110000011100000000000000000000000000000000000000000 +00000000000000000000000010001100000000000000000010011100000000000100111000000000000000000000000010010100100111001000110000000000 +00000000000000000000000000000000010010100000000000000000000000000000000000100001000000000000000000000000000000000010001000010010 +10000000000000000000000000000000100100000000000000000000000000000000000001000010000000000000000000000000000110000011100000000110 +01101000100101000000000000000000000000000000000000000000000000000000000000000000000001001110000000000000000000000000000000111100 +00000000000000011101000000000000000000000000000000000000000000000000000000000000000000000000001000001001010000000000000000000000 +00000000001111000000000000000100010010011100000000000000000000000000000000000001010110000010101100000000000000000000000001000001 +00110100101000000000000000000000000100001100100000000000001001000000000000000000000000000000000000000000000000000000000000000000 +00000000000011101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000100110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +00001100011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +10001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000101 +01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011000110 +00000000000000000000000000000000000000000000000000000000000000000000000000001001010000000000000000000000010011100000000000000000 +01001000000000001000101001000000001000000000000000000000000000000000000000000000000000000010000111001000011001000000000000000000 +00000001001010000000000001000110000001000110000000100001111000000100001000011001110100001001000011001110000100001001010100000000 +00100110000000000000000000000000000000001100100100000000000000000000000000000000000000001000100001000100000000000100111100111000 +01001111000100000100111000001001110100011000000000000000000000000000000000000000001000000000000000000000000000001000111001100000 +00000000100101100000000100000100101100101000000010000000000100000001001110010000000000000100110000000000000000000000000000000000 +00000000000000000000000000000000000001000000000000000000000000000000000000000010000000001000000000000000011001111000000000000000 +00000000000000000000000000000000000000000000000000000000000001000011001100000000000010101100001000011001111000101000010010000110 +01111000010000000000000001100111100000000000000000000000000000000000001010011010010000000000010110000000000000000000000000000000 +00000000000000010011101001111001110010011100000000011000011100000000000000000000000000000000000000000000000000000000000000000100 +01000000000000000000000000000000000100000001000010010000000000000000000001100111100000000000000000000000000000000010000101000011 +11000001000010011000000000000000000100100010010100000000001001110000001000000000000010000110101001000010001010100001001110101010 +00000101010000011001011000000000011001111001001000000000000000000000000000010011100100001001000111001110001000110000000000000000 +01001101000011001111100001011000000001000010000000001000000000000001100001100000000010000000000000000000011001111000000000000000 +00000000000000000010101101101000001100100000000010110000000000000001001011000010000000000000000001000110000000000010000000000010 +00010000000000000110001111000000000000000000000000000000000010001000001000000101001110001000100000000000000000000010010000100111 +00000000000000001100001010000000001000000000000000000000000000000000000000000000000000000000000000010101110010000000000000000000 +01000000001000011001111001100000000000000001000100000000000010100110011111011001001001110101010000100111010101000010011100000010 +00100000000000000000000000000000000000000001001001000001001100000000000000010001100100001001000110010001111101100000000000100001 +00000010011000000000000110100001000000000000000000000110000001100000000000000000000000000000000000010010110010010001100000000000 +00000000000100101110100001000000000000000000000000000001001011001010000010000100000100001101001000001000000000000000000000000000 +00000000000000000100001100111100010110010001010110100000000000000100110000001001101000010100101101010000000001001110000010100100 +00000000011000010100100111000000000000000000000000100111010000000010010000000000000000000000000100001001001100101101000000000000 +00000001000110100001010011000000000000000000000000001000110100000100111110101000100010001001001111001110010001001110000101000000 +01100001110000000000000000000000010011100000000000000000100010100111000000000000000000000101110001000110000000000000001001100000 +00000100101000010000111011000001011101001100100011010011001001100100011000000000000010000100010010100000101100010000100000000000 +00000100100011000110010101001000000000100111000000000100001001101100000000000000000000010001100000000010000101010011001111000010 +10010001000110110100001001001001000101011010100110000000000000000000000000000000000000000000000000000000000000100001000000000000 +10000001101100000000000000000000000000000100001001000010101101000100100010010100010010001001010000000110000111000000010010101110 +01100000000000000000000000000000000100011000000000000000000100110001000011001111001100000000000000100010001000110000000100101010 +01000110001001011100000011100000011010101010001001001110001000100100111100111000000000000000010001100000000000000000000000000000 +00100111000000000000000000000010010100000000000001001100000000000010010000100110010001101100101001010011001000110001001100001010 +11000000011110000000001011000100111000000000000000000000000000001000110000000000000000001001000010000001000110000000000001001000 +00100001000000000100101100011100000110100001000100010101101010011010000100100011010000100000000001111000000100100000000000000000 +00000000000000011000100100001001100000000000000000000000011101000000000000000000100100000000000000001000111001010100101010010001 +00101010010101001000100101010010010011100000000000000000000000000000000000000000011110011111111110000100001110011111110100010011 +00000000000000000000101000001010000000000000000111100000000000000000100000100111100100110111111111111111101101001001111011111111 +11111101111001001011011111111111111110110100100111101111111111111101111001001011011111111111111110101001000000000000000000000000 +00000000000000000110000001111110011001100010100110011111111111100001011000000000000000000000110111111100111111100110001100000000 +00001111000000000000000001000000100100110111110011001111101100001101111011110011001111011110110000110111110011001111101100001101 +11101111001100111101111011000011011111001100111110100011000000000000000000000000000000000000000001100000011111010101010010011001 +11111111111000010001100000000000000000001100001111001110111111000000000000110000011000000000000011010001111111111110100100111111 +11101100111110110000110111101111001100111101111011000011011111001100111110110000110111101111001100111101111011000011011111001100 +11111110001100000000000000000000000000000000000000000000011110011111111001100100001110011111110100010011000000000000000000001111 +01111100101000000000000000010010100000000000110111011110100010000111001111111111111110110100000111101111111111111101111000001011 +01111111111111111011010000011110111111111111110111100000101101111111101000000000000000000000000000000000000000000000000010000000 +11100001000010010000000000000000000000100111000000000000001100000011100100000000000010000000111000010011011010001000001111010011 +10010010001111110001001101101000100000111101001110010010001111110001001101101000100000111101000000000000000000000000000000000000 +00000000000000000000000010100100000000000100101100001000000000000000000000000000010111000000000000100100000000000000000000000000 +00000000000000000000000000000000000000100001000001000011001011000110001000011010110000000000000010001100001000110000000010000100 +00000100101000010101100000000101010000000000100001100110000000000000000000000000000000000000000001001010000010011101000111001100 +01001111000111101000001000000000010001010001100000100101000000000101101100011000010001100000000000100110010010110110000000000000 +00000000000000000000000000000000000000000001010101000000100101100110100100000010010000000000001000001001011001010000000000000010 +00011001100110000001100100001100110000001001100000100111010010000000000000000000000000000000000000000000000000000000000100001010 +01000100111000100010000011101100000000000000000000000000000000010111100000100001100111000000000000000000000000000000000000000000 +00000000000000000000000000001000011101000100100111101011001000011001100000000000000000000000000000011100001000000100001110000110 +10000000000000000000000000000000000000000000000000000000000000000001011000001000100100110000010010110010110111100101001100111100 +11100000000000000000000000000000010011000100111100000000000000000000000000000000000000000000000000000000000000000000000000100010 +00100000000010000011000010101100010010000000000000000000000000000100000100001001001000010000010001000000000000000000000000000000 +00000000000000000000000000000000010011100010000101011101000011001010111010001000100000111001010110001111100100000110010001010011 +00000000000000000000000000010000110011110001110010110011001001000100101100000100011100111001010110100110010010000000000000000000 +00000000000000000000000000100011000100111010001000000010001001001111000000010000110001001100100011100001100011100010010011000000 +00000000000000000000001100010001100001001100100010011000001101001101001101000000000000000000000000000000000000000000000000000000 +00000000000001010110100011010001101001100100111111100100011100100001001100100101100000100100100100000000000000000000000000000100 +10110111000000110011000110000100000101101000000000000000000000000000000000000000000000000010011000100010000000010000000110001100 +11001110110010000110001010000010000001001001110100010101111101001110010000110101010101000000000000001011100000000000001100000110 +11000100011001010111000101001101000110100010101010000110011100010011110010101001110000000000000000000000000000100110000000000000 +00000000000011001001000100010100111010000111100000011001011001011001101000010101011100110100110000000000000000000000000000101011 +10010111011000011001100110001000110100100100111000101111000000000000000000000000000000000000001000110000000000000000000000000000 +10010001010010100111010010001101100000100000110000110010001100000000000001100000011000000000000100110100000100011000100001101011 +11100100000000001000110000000000000000000000000000000000000000000010101000101111000000000100011000100110000100101010010110011010 +00001001101000001001010000000100001000101100000000000000100011001000101101000010001001010011100010100000110000011001001100000000 +00000000000000000000000000000000000000000000000100110000001010010100110110101100010000010001110001110001010100100000000100000000 +00000000000000100111110001100011000001100100011010000110000111011000000101110000000000000000000000000000000000000000000000000000 +00000000000001001010010010000010010010011000100101010010011000010101001010000000000000000000000000000100011101101100110010110001 +10100100101001100000100001000010000101000110000000000000000000000000000000000001000000010001100100010000000000010000000001100001 +01010011010011100100101100110110000011010011100000000000000000000000001110100000011001000101000011000111000000010011010000100000 +00000001001100000000000000101010000000000000000000000000001000000000000100110001001000001001011001000010010000010101100000000000 +00000000000000000001001100010011110001110001100000000000100110000000000000000000000000000000000000000001000100010011000000000000 +00100001000010111110011010001110000010011001101001010100110111011000000101111000000000000000000000000110010010011000100011001011 +00001100110010000011110000001110110000100000100110001000100000000000000000000000000000000000000000000000000000000000000100000110 +00011011110100000010010110000110000001001100001100100001110001001010010110011100000000000000000000000000101011111000010010011010 +00001001011000001000111101000010100110100100100011011010010011001011110100000000000000000000000000000000000000000000000000000000 +00000010011100000100111011011000100000111000010010001010011100000000000000000000000001001010110110000010000010010010000000100110 +00000000000000000000101010000000000000000000000000000000000000000100001001000011000001001010010000011000110010000100001100001100 +10111000010100000000000000000000000010001000010001110000100000010110100100111100001100101100011000000000000000000000000000000000 +00000000000000000000010101000110110000010011110000110001100100100111001100000010100111001000011001110000000000000000000000001110 +00001000100000101001111001000001001101000011101000101100010100011100101001011000100111000000000000000000000000000000000000000000 +00000000000001100100111010000111001000101110011001010010111101111111000011010001111111011010100010100001010001010000000000000000 +00000000000011111111101010000111111110011111111010111111101111111111010101000110011111100001111101111110111111100000000000000000 +00000000000000000000000000000000000001100100111011000101001100100010111100110010001101010001001001010001010001011001101110111111 +11111101001001111101111111110111110001100000000000000000000000010100011111111101001001111111101101000100011111111101010100010010 +01111111110101000100011001001001010001010001000110000000000000000000000000000000000000000000000000000100011010010011101110111100 +01000110001001101110111100100101000111111101111000011001000001100110011101110111110111011001110110000000000000000000000000111101 +11110101110110110000011000011111000101111110000110011101101100110011101000000011110011111111011101000000000000000100110000000000 +00000000000000000000000000000000001000110100001111011101111110111010110011111111011101111000010101000101010110011000111111110111 +00001101000101011000000000000000000000000011110011111111001100011011000111110011111100010101000110011001101010001111111101000011 +00110011101000000000000000000000000000000000000000000000000000000000100000001000100011000000111011100111000010100110001001110111 +01100001100111100011000000000000000000000000000100000010001111110001000011000000111001000100111000000000000000000001000101001100 +00000000000000000000000010010010010000000000000000000000000000010001100000000000010001000000000000001001010000010001000100000000 +00001001000000010100100000001000010000000000000000011001000101010110000010011100000000000000000000001000111000001001010000010010 +10000000000010000010001100000010001100000000000010011100000000000000000001001101001100010011100000000000000001000111001110000000 +10011000000000000101100000000000110100010000000010011000000000001001100100101000000000000100100000010110010000000110000110000000 +00100101000001001101001100000000000000000000000000000000000010000001001100000000000000000000001100100001010011000001000010000000 +00010000000000000010010100000000000100001001000010000000000000100100100100000000000000000000000000000000100101001000010110000011 +01001011000000001000010000000000100010000100100010010100000000000000000000000000000000000000000010000000000000000000000001100111 +00000000000000000000000110010001011100001010000100001100111000010000110001000000000001000011110000100000011000010101101000101000 +01101000010000000000000000000000000000000000001000010000000000000000000001100111100000101011000000010001000000000100011111000010 +01001110101100001001110000011100001000000000101100001001101001010010011001000111101000100000001001110000000000000000000000000000 +00000001110000100100111000000000000001100001111000000000000001000000000000010000010000111000110000001110000001010010010001000001 +00111000000000100000100001000011001000010100111000100010000000000000000000000000000000000000010001100000000000000000000001100111 +11000000000000000000001000010011010010101110011000000100000100100110100010100001000011000001001010100010000100011001001000001101 +10000010110010010011011011101001110100100110000001101001011001110000000000001011000000000000000000001000110010010100000000000000 +11000011110000000110011100011000110010000000000000000000000010101100011000001100000111000010110110110011010010001000000001010010 +01000110010000001001011101000110010001111000000110011010001101000100100011000000000000000001000000000000000000010000001110010000 +10000000000000000000000001100111110111001000000000000000000000010101100000000100110100100001000101100010010100110111000101000000 +00001100010100000011000100101110001010100000100110010011010000010110010000001001100100001100111000000010011000000000000000000000 +00100101000000000000001100001111000000000000000000000110110000101000011100010001100111100110000100000000011000101001100001010100 +01100000010011000001000011001110000110010001010011101000100010010100000000000100100000000000000000000010011101000011010111110010 +00000000000000000000000001000000010011000000100000000000000000101100100001101101101100000100101011110000000100100110001100000000 +00100010000100100100110100111010010010010010111110000110011000001100001010100110000000000000000000000000000000010000100100110000 +00000000000100011000000000101110010001100000000000000001001100010001100101110011010000100101010010111101101000001110010000110011 +10000001001111000110100011000100110100101110110000010011010001100010000101000111000110000000000000000000000000000001101010001011 +00010100010001100000000100110000000000000010010101010010000010000100000000000000101001010100100110011000110000110010001101110000 +01010101011010000000100001011000101101000101011100100101001100011000100110100011001001111001010100110000000000000000000000000000 +00011010010010100001010011000000010110000000000000000000000000000000010010101101000100101011001001011001111010110000010101111000 +00110100101000000011011000000010000010011101001011011111000111000001001011001010100001100001111000010110100100000000000000000000 +00000000000100101011000101000000000000100011000000000000010001010011101001100000000000000001001000010101111100000100101100100101 +01100100001011010001010010010010010110000100010010000000101001011010001001001101011000010101111110100000001000001000001100100010 +11101000000000000000000000000000000000001001111110100000010000001001100000000100000000001100001111000000000010001100000000010001 +10000001001010110110000001000110001000111101000100100011000100011100101111001000000100101000000111000000110111100100100001000001 +11010000010000001001100000000000000000000000000001001100100100000000100110000000000000000000000000000000000000100101000001001010 +01000111001111001101000000011001001001000001010100010010110001011000011001110100000100011000001001100100001001001000111001000010 +00111100110010010011100100011110100010010010100000000000000000000000001001000000100001000100011100110111011000000000001000100000 +00000000010001000000000000000000010000100100001100100000000000011010000011000000100110000001100010001100110011001010011100100001 +01000010100101100010010001101001101000101000001000100000000000000000000000000001001100001000011001100100000100110000000000000001 +10000111100000000000000101010000000000000100001001011111110010010011001010101001000100000100101101111100101100100010011010010110 +01101001110000000000100010100111001010011110000010100110010011101000001001010000000000000000000000000000000100001000100110100110 +00000000000000000100111000001001000000000001001110001001010100110100101100101011101000000110001100011001000101010011001000010101 +11100100101000000010000001001110100001000010000110010110010111110100000100110001011010000000000010001100000000000000000000001000 +01100010000000100011000000000000010011000010001001001110000000000000001010110000100111110010000110001110011000100111100000100000 +11000010100000000000001000011001000100000011010000101001010100100100110010011110100100000000001001100000000000000000000100100010 +00011001001000111001110000000000000000000000010010100000000001000100000111100000001001001010111001110100101010001011000010101000 +11000110010010010010011011000000000000101001011001001001001000000010001010001110010010011001011111001101001010000000000000000000 +00000000000000010111110110100000010011000000101110000000011110000000000000000000000000101000110111011110000111100111111011010010 +10000010100001101010101111111001101111001110000000001101110111111110111001110111011001100001101111010111101000001010000101000101 +00001000111010000000000000010100000000000000000000001100010001111010101000101000000000000000000001001110000000000000000000111111 +11101101110111100100110110000010110110001111101000001111111011100100101000111011111110001111111111001010001001001111001111100100 +10001100000100010110111011111001000101001001110111011001111011101111000110010010001111110111101100101000111110111110010010001111 +00111011100011000000000010100010110000000000000000000110000011011000100011010000011111111001000110000000000000000000000000000000 +00001000101001111011011011101111110000100111100010110000110111111100001001010011000011001100110001101010011110011111100001111000 +00010001011001100111101011100100101110011111101000101111001111110011001110010111001111111110001100110000110001110001100011110011 +11111001100100000000000010001100000000000000000110000011011101010101111100000001111010000000000000000000000000000000000000000110 +11111111101110111100001110000111100110000111100101011111001100110011011001100111111010000011110111111100010001000000010100011010 +11100011011110110011110011001101110111011001111111011011001101111110000111000110001010001010000000000000011110011001001100000000 +00000000000110010101011111100000011111100000000000000000000000000100110000000000000000000110000001110010010001111110001000011000 +00011100100100000100110001100010011100100010011100000000110000001110111010001111110000000011000000111011101100001100111100000000 +11000100111001000100111000000000000001001000000000000000000011000000111001000100111000000000000000000000010011000000000000000000 +00000000000000101100000000000000000000000000000000000000000000000000000000000000000000000000000010010100010011110011001000011101 +10000000000000000000001000010000001100001011000100001111000001010011100000000000000000000000000000000000001000110000010001100000 +00000000000000000000000001001000001101100000000000000000000000001001010000000000010011100101001000000000000000000000000000000000 +10001000000010010100000000000000000000000000000101101000001001110100000000000000000000000000000100001000010000011000001100000000 +00000000000000000000000000000100000100101000000101110000000000000000000000000000100001100110000000000000000000000000000000010001 +01001110100101100101000001001000100101000010010100010000100000000000000000000000000000000000000000000000000000000000000001100111 +10000100001100101000000000000000000000010000100100100001000011100000011000100100100001111000010000000000000000000000000000000000 +00000000000000000000000000000000000000000110011110010011100100111000000000000000000000001001111110100000000011001000100100110101 +00100100101000000000000000000000000000000000000000000000000000000000000000000000110000111100000001100000011100111010000000000000 +00000000000000000100011000010000100001000001000010010001100010000000000000000000000000000000000000000000000000000000000000000000 +00000000011001111100000000000000000000001001010100111000001001011010101000010010000110000100000010001100000001001010000000000000 +00000000000000000000000000000000000000000000011000011110011001111001100011001100001000100001111000001100000000000010010001010110 +01000001001000110010010011001010101001111000011001000100010100100100110000000100110000001000000000110000001100000000000000000000 +00000000000000000000000000000000000000000110011110010011100000000000000000011010010010100010011011100000001101000001100010001010 +01001100101001101110101001000000000000010010000000000000000000000000000000000000000000000000000000000001100001111000000000010000 +10000000000000000000100110100101001001110100010100000111001000010100110000011100001011100010010010011110011100000000000000001000 +01111101000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000100011011000000100111001000011 +10110000001000100100000110100001010011000011000110000100010000000000001000000000010000110010000000000000000000000000000000000001 +00001000000000000010000100101110000000000000000000010000000000011001001011001100010010010011111100001001001101000110001000000101 +01010011100000000001000010000000000000000000000000000000000000000000000000000000000000000010010100000000000000000000001001010001 +00001000100101111000010001000111001100010000110011100000000000000100111000010000000000000000000000000000000000000000000000000000 +00000000001001110000000000000000000000100111010010001011001101011010101010010000101100111010010001100001001010000000000001000010 +00000100101000000000000000000000000000000000010000000000000000000000000000111100100001000000000000010001010011100000000010000010 +01111000010010000011001000100100110100011010001110001111000100100100010001001010000000000000000000000000000000000000000000000000 +00000000100101000010000000000110000111100000000000000000000000100111001001011000111100001010010110010001111011100000000100000111 +00100000101001011001001010010001100000001001100000000000000000000000000000000000000000000000000000000000000000000000100001000000 +00000000000001100001110101010100110010011111000110001001110100100110001010001000001011010011000101001110000100111000001010010101 +00101010011000000100100000000000000000000000000000000000000000000000000000010001000000000000000000000000000001001000000010111001 +00001010011110000010001010011111001101001000001001111001110010110001000011001110100100000000000000000000000000000000000000000000 +00000000000100100000000000011000011110000011111000000011001001000100110000000000000010010101000000100100100001100011011010001101 +00000011100000011101001001100111100100111000001000000000000001001000000000000100001000000000000000000000000000000000001000010000 +00000000000000000010011100001000011001110000000000001001110000000001110010100000110000011000010001100000000000010011000000000000 +00000000000000010000110011100000000000100111000000000000000000000010010100001000110000000000000000100111000100111100100100111110 +00010101010011001000011100000101011010111001000010011100010100100000000000000000000000000000000000000000000001000010000000000000 +00000000001100011000001101000100011011000000000000000000100100100111100001100101100111010010101011111100111010100111111000000110 +01000110010101011000011000000000000000100110010001100000000100000000000000000000000000000000000000001000000000000000000000111001 +00000000000000000000000010000110110111100111000111011111111111111100110001001110100001111010101110000001101010001111011101100110 +11001100111000110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110011001111000101 +00101101111001110010001110100010100010010011001100111111101110100011100111101000011110111111111011101100011010001111011000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100100111011101111010001001000100 +11010110010101000110001100101110111111110001111111000101000100111110000110010100011010101011001010000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000110011001110000111101110111111011101011101101111101011000011111100 +11101011011110011001100111111100001111001100111111100111001100110101010100000000000000000000000000000000000000000000000000000000 +00000000000000000011110100000000000000000000000011100001000010000100100111001000000010011100110001101110111010001111110000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000100001000000000000000000000000000000000001100100001 +01000101001110000000011001000100000000000000000000000000000000000000000000000000000000000000000000100110010000110011100000000000 +00000000000000000000000100001001000110000000010000101001011100000110100111000100000000000000000100011100011000000000000011001000 +10000000000000000000000000000000001101100000001110000100000000000000000000000000000000000001000101000101001011001110001011110000 +10001010011111100000010000100001000000000000010010100000100011000000001001111001000100110000000000000000010110110110100000111001 +00000100000000000000000000000000000000000000001000001001010111000001000000000100000100101100001000000000000000000100101000000100 +11000000001000100100110010010000000000000000010000111010000101001100000000000000000000000000000000000000000000100100001001010000 +00000001001010010010000010000100000000000000000000000000000000000000000000000000000000000110011110000010011100000000000000001000 +00000001000010000000000010000110000100000001001110010000100000000000000000000000000000000000100001100111000000000000000000000000 +01100111100100111000000000000000000001001010000010011100000000100101000000000101111000000000001000000000000000000000000000000000 +10011100000000000000000000011000011110000100001100111010000000000000000000000000000000000000000100000100101100111000001000100001 +00000100101001001010000000000000000000000000000000100000000000000000000000000000011001111100000000000000000000011011010000000000 +00000000001000111001100100111100110000000100100010010001100100010000000000000000000000000000000000000000000000000000000011000011 +11000000011001111001100011001000000000000000000000001000000000000000000010001101001010000001000011110000010100011100011010011000 +00000000000000000000000000000000000000001000000000000000000000000110011110010011100000000000000000001001000000000000010000110011 +10000100101110100010001010101001000000001000101001011100010100011101000000000000000000000000000000000000000000000000000000000000 +11000011110000000000000000000000000000000000000000000001000011001110000000000000010000000101110000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000001000110000010001100000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000101110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000010010100000000000000000000000001001010000010010100000000000000010011100000101100000000000000000000000000000000 +00000000000000000000000000000000001001110000000000000000000000000000000101111000000000000001000010000000010111000000000000000000 +00000000000000000000000000000000000000000011110010000000000000010010000000000000000000000001000010000000000000000000000000000000 +00000000000000000000000000000000000000000011000011110000001001000000000000000010011100000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000100000000000000000100001100100 +00000000000000000000000000000000000000000000000000000000000000000000000100001000000100110010001000000000000000000000000000000101 +11100000000000000000000000000000000000000000000000110000001100000000000000001100001111000011110000000000101001000000000000000000 +00100011100010000000001000000010111001010010000000100111010001101001100000000000000000000000000000000000000000000000000000000000 +00100111001000110000000000000000000000000000000001001010100010000000000100101000000000000000000000000000000000000011001001000100 +11000000000000000000000000000001010010000000000000100101000000100101100101000000000101011000000000010000011000110010100110010001 +10000000000000000000000000000000001001000000000000000000000000000010010000110110100000000000000000100000000000001011000000000000 +01000100111001000000000000011010001000101101101010000000000000000000001011000000000000010001101001010000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000001010110000001010010010001010011101001000010000000000100010000001000100000000000000000000000000000000000000000 -00000000000000000000000000000000000010101100000000000000000001001010010000100000010011100000100111000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000010011000000000000100001100111001010100000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000100011000000000000000000000000000000000000000000000000 -00000000001001110000010010000000000000000000000000000000000000001001010000000000000000000000000000010001100000000000000000000000 -00000000000110000011100000000000000100111000000000000000000000000000000000000000000000000000000001001110000000000000000000000000 -00000000000000000000000000000000100101010000100000000010101000000000000000000000000000000000000000000000100111010000100000000100 -10100000000000000000000000000000000000000000000000000000000000000000000000000000000000100100000000000000000001000010000000000000 -00000000000000000000000000000000011000001110000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000001000100100110000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000001011010111001000000000000000000000000000000000000000000000001011100000000000000000000000000 -00000000000000000000000000000000000000000010010000100011010010000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000001000101001010101111100101100011100010100001110100010010000000000001001010000000000000000100001000000000000000000 -10010100000000000000000000000000000000000000000000000000000000000100111010001010110110011001001111000011001110000110010001000100 -01100000000000000000000000100011000000000001001000000000001001100000000000000000000000000000000000000000000000000000010001011100 -01000110010010010011011010001001000101110000100010010111100010100010011101000111001110100111101010000000000000000000000000000000 -00001001100000000000000000000000000000000000000000000000000000000000000001010011000001000011000000011100000111000001000010100001 -00001000011010100000000000000000100000000000100110000000000001001000000000000000000000000000000000000000000000000000000000000010 -00100011000110001001000100010100111010010110001100000100101001100010100100111000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000100001100111000010011101001101011111101100000101011000110100001011011000000001001101000 -01010001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000010000101001111011 -00000100011001001101100011000110000101011100110001001111110100000100110000000000000000000000000000000000000110000111000000000000 -00000000000000000000000000000000000000000000001000010010011000100011001000111000001000010010010010010101000011000010100100000000 -00000000000000000000000000000000000110110000000000000000000000000000000000000000000000000000010000100001110001000100100100011100 -00010011110011001001001001000111001100011100100000000000100110000000000000000000000000000001010110000000001001001000010000000000 -00000000000000000000000000000000000000100000000111011001101001111011010100101111001000010011010010111110001101001101000010010010 -01101100100001110000001010010000100000000000000000000000000000000000000000000000000000000000000100111000000000000000000000000000 -00000011000110001001010010000100100001100011100101000011100010000100001000000000000000000000000000000000000011000011100000010001 -00000000000000000001000100000000000000000000000000000000010001001001110100011100010110110000001000110100001110000101010011010011 -00110100001000000110000001100100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -01001111010010101111100100010000110011101000101001101111000000100000001001101001101001110000011100100000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000010001100010110110010010011110110001001101110100000110001001001000111 -00000010001101011011000011000001100100010001001000010000100000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000001101000100001001001000010100110010010110111111000100101001010100001100111110001100010010010001101000011 -00111000000000000000000000000000010001010011100000000000000000000000000000000000000000000000000000000000000010011000001001000100 -10011100000011110001000100011100010000010001110001001000001100100010100111100110010011000010011000000000000000000000000000000000 -00100111000000000000000000000000000000000010001000000000000000000000100100110001100011000010101100100001001000011000110010011000 -01001111001010010111000010011100000000000000000000000000000011000011100000000000000100111000000000000000000000000001001110000000 -00001001110100011001100000011100001100100011000100101010011110000010010011001110000010100001110100000100010000011000100101001111 -00111010010100100001000000000000000000000000000000000000000000000010000100000000000000000000000000000000000000000000000100101010 -00001001010011000000111000011111000101010010100100001100111110010001000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000010001000100110000000101110100110100110010011001001001001001100001100110001100000011000100011001 -10101011010001000000000000000000000000000000000001100001110000000000011011000000100110000000000000000000000000000000000000001010 -01000000000010001111000100101011101100101010111000000100011000101000011010010011001010000100111000001001110000000000000000000000 -00000000000000000000010001000000000000000000000000000000000000000000000000000010011011010000010100011001001011011011101000001111 -10000001110010000010110001001000000000000000000000000000000000000000000001111000000000001001010000000000000000000000000000000000 -00000000000000011000101001100100100111100000011001000011100010010010101110001011100010001011000000111000010000000001000010000000 -00000000000000000000000000000000011110000001001000010001001010010000000000000000000000000000000000000000000000000110000001110010 -01101000110001000000010000101110010000001000100010001000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000001110111111111111101101010001101100110100110101000101000001111110111010100011111111010100000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011111010001010001101110000111111101111 -11001100110000111011001100111110111011110110010010001010100010010110100011111111001101110100100000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000010111110100010100011011000001101111111111000100011000011 -10101100110101010110110110010011111110111100001100011111101001101110000110010111000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000001101010101111110111001010001110001000101011101100110101010101010001010001001100 -11111101011000011100001111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -11000000111001001100001100111100000000110001101110010011000011001111000000001100000011101101110000110011110001000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000010010100100111000000000100101100011001011111000010010 -00010100101011010001001000111100100001100100100100000000000000000000000000010000000000000000000000000000000000000000000000000000 -00000011010000101001100000010001001001100100111110000101010011010100100010000110011010010101110001000100111100011010010101001001 -00001110010001011110000001100100010000000000000000000000000000010010000000000000000010000110011000000000000000000000000000000000 -00000000000001001000100110111001000000001010010100000001000110100110100001110100000100101001100000000100011100000010010100000000 -00000000000000000000001001010000000000000000000000000000000000000000000000000010001000000100000110000101001000111100000111011001 -00001100001101101100001000100001000100000110001000110000110011000011001000010101011010010100000000000000000000000000000100100000 -00000000000000000000000000000000000000000000000000010100110011100100000011100001001110000100100000110001010010011101001000110000 -11101010101000000110101100000001001000001001110000000000000000000000000000000000000000000000000000000000000000000000001000110000 -10001100000000100001110100000110011000010000101001100010110100010000100100001111100000010001100010000010011100000000000000000000 -00000000000000000000000000000000000000000000000000000010010100001001010000001011001000100110100010000100111001101101010100101000 -11001001001001101000101001110000010001011110000001000010000100110000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000100000010010010111110001001100010001100001100110001001011000001000011010100010011010000001001010001110000001 -10100110101001001000000000000000000000000000000000000000000000000000000000000000000000000000000001001110000000001000100110001100 -01011111011000110010001001000001011111010010100001111000001011010010011101100001111001000010010101000101010100111001010000010110 -01001101110011000100111000000010000000000000000000001000100000000000000000000000000000000000000000000000100010000000000100111010 -01101110010000001100000011010110110011000100111010011010011001000100100110100000100000101100011101010010011011000000010111000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000010011101001011001100110010000100110111001000 -01011001000111000111001001001000001101100010100111100100100000011100010000100110000000000000000000000000010000100000000000000000 -00000000000000000000000000000000000000000100010001100001100101100010010001011000101111011100101000010111010000010111010011010011 -11000110110001101010010010010110011010001010001010000010011110001010011000000001000010000000000000000000000000000000000000000000 -00000000000000000000000000000000000000100100010011101101010010110001000110011010011001110010010111100110011100101011001101101000 -10010011111000100101110010001110001011010001101010011001010100000110110000100000000010000000100010000000000000000000000000000000 -00000000000000000000000000000000000000000010011100010000000111011000010000011010001001001101100000011000100110101110100100100101 -10011011001001011001101101000001000000111001000000000000000100000000000000000000000000000000000000000000000000000000000000000000 -00000000000100011001001001000010000011100110000101101011100000101001101001111001001001100101110010010110001110011001110000001100 -01101000110000000100001000000000000000000000000000000000000000000000000000000000000000000000000001000100010011101000010011000100 -10100111110000101000001000101000111011101001000100011100001011010100101001101001010100010010111001001010000000000000000000000000 -00000000000010011000000000000000000000000000000000000000010000000000001000011110000001110010101011011001001111001000100101110000 -11001010101001011001001010010100010011000010101110010000010000110000011001001100110110000000100100000000000000000000000000000000 -10000100000000000000100011000000000000000000000000000000000000000010010100000100100010011000010011001000000100110010010100001100 -00101011000110001001110110101000110001000010000111110000100000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000010001101001011000000110010100111001001000100111101001011010011011001101011100100101001100100101100111000100 -10110011111000011001000111000110000000000000000000000000001001100000000000000000000000000000000000000000000000000000000000010011 -10011000100011001110100110100101001000111000010100000101111100110111000100001000111000010110001000101001110100010100000100000100 -11110011000000000000000000000000000000000000000000000000000000000000000000000000000000000001000010010000010110010011011101000000 -01001111011001100000011010001011010010101111000000100100001100001100110010001001001100001100001010100101000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000100000010101010110110010010001000100111110100010110000101001100 -10010110001110010001110010000111101100010001101110000100100010010001110110000100101111001100000000000000000000000000000000000000 -00000001000000000000000000000000000000000000000000000001000000010001111000010101001011001001100010100000100011001001011001110100 -00110010101100100001001011011001101001010100000010011110010100000000000000000000000000000000000000000001000010000000000000000000 -00000000000000000000001000100001000011001101001110011100010001000011101001010101001010011010001011100001011100001010100110010001 -01000101101001001110110000110011010000000100110001001000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000101000001010111110101010011110001001010001001101100000011010000110100010011101100000011111111110001010000011000000111111 -11101001111101111111110111100111101111101111111011111100100000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000010010010100000101011011011100001111000100101000110000101001111111101100100101000010001111000000111010001101110000 -11111011111001111100001110011000010101101110000111110110110100000111101111101111001000010101000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000100100001000100101000100101110110011011100110011100001110101000110000110010110111 -11001100100001100011101000111110001011011100001000100101111111111111011110010101101100000011110100011000110101011101101110001011 -11010001000110000000000000000000000000000000000000000000000000000000000000000000000000000000000100001000110101010100110111111111 -11001000100110111101111111111111001000011111001100110000111001111111110111110111010000111111101111001110101000111100101001000001 -11101110110011001110101111100001110001011111111111101001100000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000010001000100001100111100011111100000000110001101011101000001000111111000101001100010001010001111110001000011000000 -11100100100011111100000000001000001001100010010000000000000000000000000000000000000000000000000000000000000000000000000000000100 -00000000000000100011011000011100100100011010100101000110100111000101010100000110010000100101010000100111100100000000000000000000 -00000000000000000000000000000000000000000000000000000010001100000100011100001100001100110000010000111010000100001010011000010000 -01101000010110110100000100000100011100001100011110010001000001001110000000000000000000100011000000000000000000000100110100110000 -00000000000000000000000000000000000000100101000100111000010011010011110101001001100111001000011100001001111000000100010101101010 -00110010000011010000100111100000010100110100101010010011000100100100110000000000000000010011000000000000010001100000000000000000 -00000000000000000000001001010000000001000110001100011001100001100011000100000100001100011001001111101000001100000001011110110100 -00010000010000001001100000000000000000000000000000000100110000000000000000001000100000000000000000000000000000000001100001100011 -00110100100010011110100000000100001110101001001011001001100011101110001010101000101010011000101100010010110010001010011110000000 -10010000100000100110000000000000000000000000100011000000000000000000000000001000000000000000001000110000000000000000000011001000 -10110100000101001111001111001000010010101000111110010000110010001011001000100100111100010010000111100000011001010100111100111100 -00111001001000000010001100100111000000000000000000000010011000000000000001000100000000000000000000000010010100000000000000000101 -01000011010000100100110010010101001001001110110100001000100111110001100001011100010011111100001001001111001101010010110010001010 -11000100110010001010011000101010000000000000000000000010101000000010101011000001110000000000000000000000000000000000000000000000 -00000011000100010101011100100100010010000000001111000000110100010110000111001001000110100010010011010000000010001011100010101110 -00000110000100001100100001010010010001000000000000000000000000000000000000000000000000001001100000000000000000000000000000100101 -00100011110110000101000011100010100111000001010110110010010101010011110010111001000011001010011011000101000100111000001010011101 -00111100010100110110001101000001001011101011000100011000000000000000000000000000000000000010010000000000000001000110000000000000 -00000000000000000110110010111010010011000011000000011001001001110000010100000110000001100101010110000110110011011001110001001011 -00110110100101010101010001010010101001101011100010000010011001000101000011101100000110000001100000000000000000000000000000000000 -01000100000010000000000000000000101011000000000000000000000010011001000111000000010111010010101100010001111000001010100100100010 -01001010010110011100010010011100110001001001011101100011010110110000101010100010001110000001010010000000000000000000000000000001 -10000011100000000000000100001000000000000000000000000000000000000000100000100110001000000100001000100100100011100001110100000111 -10100000100110110001000110001110011001110110000100110000010000110011110001101100010001010011000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000100011110000101001001100110101001010000010011001001101100010100100001100111110010 -01100101010100010001000011001010100001010110010010001001101001110100010100001000000000000000000000000000000000000000000000000000 -00000000000000000000000000000001101100000100011001110010000100111010000111100100000100110011010001100100111011101100000101010010 -01100111011000011010000101001101110000010011000110001000011001100100011000000000000000000000000000100110000000000000101001001011 -00000000000000000000000000000000000000000000100100100011110100100110011001000101110010000110010001010101110010111100100010010010 -01001111100010100110000110011101000001001011000011000000100001111000110101000111100001100100011110001000101001100000000000000000 -00000000000001010010000000000000000000000000000000000000000000000000010000110011110001110000000001011111100100100101011010001101 -01110010010110101100010000101001001001001000111100011010111000100001001011001011000001101100000001001000000000000000000000000000 -10001100000000000100010100111000000000000000000000000000000000001001100000010011100110011100001011001001101110001010110001010001 -00101110000101110011000001100010010100000110010000101000110110001001000011000110000000010001100000000000000000000000000000000011 -00000111000010001100000000000000000000000000000000010010000000000000100100011011000001000001001111001101001001001001101000101111 -01001011000101001101001110100001100001110100011001100001010110101001001001111011101110100000101110010011001000010000000000000000 -00000000000000000000000000001000011001110000000000000010101000000000000000000000000000100010000100100100000110100001001110001010 -01110010000110000110010001010011011010100111100001010011010100111110010000010011010011011000101000110100010001001001001101100010 -10001011010000100001100111000000000000000000000000000000010001000100110000000000000000000000000000000000000001000100000101110001 -10001001010001110001000111101001000100101100000010010110101101100010101110100011010000000100001001001100100001100011100011110000 -11010000000000000000000000000000000011000001110000000001001110000000000000000000000010001000000010001101010010001001110100100110 -00110011011110010000110100110001001101100001001100010100100011100001000010000010000101010110010100110001011011000001000010100011 -10000110011010010100000000000000000000000000000000000000000000010010100000000000000000000000010011100000100110000000111010000000 -10011010011110000111011010100111001000011001001011001010100011111110000010000010110111010101001001011110101000110100010010011110 -01111000110100101111100000010011110111110001000100101111000010011000100101001111000110000010001100000000000100011000000000000000 -01001100001000100100110000000000000000000000000000000000000010010010010101001010011000101001001101100101001100011111000001011001 -00010100100110001000111001000101000001011101101000010110001001010111010010011010100101000101110010010100100110000110010000000111 -01010000100010110011000100100110000000000000000001001010000010000110010000000000000001001010100011000000000000000000000000000000 -00000100010100000001100101001101110100101001100001100010000101001001100010001001100100100100111110001100001000101100001010100100 -10011011010000101000110110010010011010000100010011001000111100100101000000010010100000000000000000000000000000000100110000000000 -00000000000000000000000000000000000101000010100011100110010101011101000100001110000110011111100000110101001110011110000111000011 -11110011100110011010100011000100011000011110111111100101100110011111100001000011010001111110000010100010100001111101111111110111 -01001100000000000000000000000000000000000000000000000000000000000000000000000000000001001101010000110011111111100100011000111010 -11111111110111011100000010001111010111110110111000011001100111111111001101010110111111111000100011101110000111011111110010111001 -00110100110011011101001110111111001111110111101000100100101000111000100010001100000000000000000000000000000000000000000000000000 -00000000000000000000000000000111011000101100110100011111110010010000111011100001010001100011111110000110010100011111100001101110 -00011001110011010001100001110110100010011001000101101110000111111011101100101110111110111101101110000101101111111100110101010100 -00100101011111010001000110000000000000000000000000000000011110000000000000000000000000000000000000000000000000110001000100100011 -11111110010100100010000101110011111100110110111111101000011100111001111011111110101111011101111111101110100001101000100001101011 -10100010110110000111001111111111111001101011110111111100100010111110100010101100000000000000000000000000000000000000000000000000 -00000000000000000000000000001100000011100100100011111100000000100000011000011001111000101001100010011101101101100110100011100110 -00110111011011000111111000111001100001010111010000010110011010001110010000001000111111000000001100011000000000000000000000000000 -00000000010011000000000000000000000000000000000000000000001001011000100010001010011110000100000000000000000000100010100111010011 -00001000000000000000000000000000000000010010100001001110000000000000000000000000000000000000000001000110010001000110000001101100 -10011011010000100000100001100110000010000110011000001000011001100001100011100010010111010000011000010000000000000000000000000000 -01001000000000000010011000000000000000000000000000000000000000001010101001101010101001101001100010000001001111001100100110000100 -11000000100110000100110010011010001000100110010001111001000100000000000000000000000000000001000110000000000000000000000000000000 -00000000000000000000010001110000010000100100001010000010000101001000010000000000100000000010010010000001000000001101000001100001 -00000000000000000000000000000001001100000000000000000000000000000000000000000000000000100011000001100010100010101010011101001010 -01100101001100010111001000000001000000000001001000000000000000000000000000000000000000000000000000000000000000000000000000000100 -01100000000110010001011010000100000100001100110000100100100011100010100011000100001100110010000100100001100110100101000001001010 -00000000000000000000000000000000000000000000000000000000000000000000010011000000101010000001010100001001101000010010011010011010 -01101101000010010010100100110000001001101001100000000000000000000000000000000000000011000011110000000000000000000000000000000000 -00000000000000001001110001100100101000010010010000010000100001000000000010000000010010100010010100000000000000000000000000000000 -00000000000000000000000011010000010000000000000000000000000000000110001100000100100110000101010001100000000001000100000000000001 -00001010001100000000000000000000000000000000000000100100000000000000010001100000000000000000000000000001000110010000011100100000 -01110000001100110110010110101000000000000000100010000001000100000011100001001100000011000000000000000000000000000000000000000000 -00000000000000000000000000000000000000100111001000101001110110010010010001100000010110000010000000000000010100101010010100101010 -01110000000000000000000000000000001100001111000000000000000000001000100000000000000000000000000000000100000101011011100000101000 -00110001001010000101010110000000101010000100111000001001110010000110011100000000000000000000000000000000000000000000100110001000 -10000000000000000000000000000000000000000000100011010000001110000110001001111000100100111010101001000011001110100001000100111000 -10001000010001100000000000000000000000000000000000001000110001001110000000000000000000000000000000000000100111101001001001011110 -01000001011111001110100011010000011001010011001010001001000000010001000010011010000000010011000000000000000000000000000000000000 -00010011100000000000000000000000000000000000000000000000000001001010010001001110001000100110011011010000000010101100100010111001 -00000101011100000010011000000000000000000000000000000000000100100000000000000000000000000000000000000000001000010101001000010001 -01100010010110000101010101101001010110010001000100100000001111010000000000000100110110001001100000000000000000000000000000000000 -00100111010000000000000000000000000000000000000010001100000100111000001001101000111000001110011000100101000100011100010010011110 -00001100010100111000001011100001000100111101010001000100100111000001001010000000000000000000000000100000000001100001111000000000 -00000000000000000000000000000010011000000000101010001000011001011100010010110100000111000011011100100100011011000001001111001100 -10010110001110010101001100110000110010000110010001001100110000110000100110010011111010001000000000000000000000000000000000000000 -00001101010010000000000000000000000000000000000000000100001100010000001000101001110100000100111100000100010011100001000010011010 -00100100011010011001000100100011010011000100011001001100000000000000000000000000100010000000000000000000000000000000000000000000 -00000000000100010010011010011100010001101111000100101111100110010011110011011010000101101000010100110111000101010011100100100010 -01011001111000010100100010010110011100100001010010010011100000000000000000000000000000011000011110000000000001000100000000000000 -00000000000000000000000001000011000000010001000011000010101001111000011011001001101001110001110000010010000010001010001001001111 -01010100000010001001001110000010010100000000000000000000000000000000000000000100100010100100000000000000000000100011000000000000 -00010011110010101000001000000101101010011011000110001001110110001001010010101001101000101000111000011001010100110010001110001110 -01010100110000001000000100110000000000000100111000000000000000000000000000000000000000000000000000000000000000000000100000100010 -01000010110100110010100111100101001001011000100000010001110000110011010001110001011010010011000110110100010010011111010001001010 -01100011010001010011100100000100110000000000000100001000000000000010001000000000001001000011010001000111010000000000000000000000 -00010011000000000000000100010010011000110110101001001110111000100011000100011001000010011011000000110010010111101000000010010001 -00101100110001001000100101010010010011101001100000000000000000000000000001001110000000000000000000000000000000000000000000000000 -00000111110111100011000100011001101011011110100000010111010100001100110011111111000010010010100011111111001101001001110011111111 -11111100111001001011001111111111111100110100100111001111111111111100111001001011001111111100000011101001010100000101000000000000 -00000000000000000000000000000000000000000000000000000000000000000000011111000000001100010001110000111011001101011110100000100100 -11010011011010000001101110000101000011000011010011101100000011000011010011101100000101000100011011110011000011111111011001010000 -00000000000000000000000000000000000000000000000000000000000000000000000000000110010011100011000100011100001110011111100001001001 -10011001111111101101010101111101111111110000011011100000011000011010011101100000011000011010011101100000111111110010001101111111 -11000111111100110101000000000000000000000000000000000000000000000000000000000000000000000000000000000110010011100011110111011010 -11111111000011010001000101110111111011010011010100010010110000111001111111111111100110100000111001111111111111100111000001011001 -11111111111110011010000011100111111111111110011100000101100111111111111110010101101010000011111110011010110000000000000000000000 -00000000000000000000000000000000000000000000000000000000000011000000111001000000110001101110010010001111110001000010000001000111 -11100010011011010001000001111010011100100100011111100010011011010001000001111010011100100100011111100010011011010001000001111010 -00000100111001000110000000000000000000000000000000000000000001000000000000000000000000000000000000000001001101000101001110000000 -00000000000000000000000000000000000000000000000000000000010100110010100000000000000000000000000000000000000000000100001100100000 -00000000001001100000000000000000000000010001100000000000000000000000000000100100000000000010011000100010000000000000000000000000 -00000000000010001001001110000000000100111000000000000000001000000000010001000000000000100010100110000000000000000010011011100010 -00000000000000000000000000000000000000000000000000100111111000001000000000001000010100011000000000000000010000100000011101000000 -00000000001110010000000000000000000011000100101001100000000000000000000000000000000000000000000000000000000000000000100001100000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010011100010010100000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101100000000000001000001 -00001000000000000000000000000000100011000000000000000000000110000111100000000000000000000000000000000000000000000000000010001000 -01000000000000000000000000000000000000000001000000000000000000000000000000000000000000001000000000000000000000000000001010010101 -00100000000010001101001100000010000100000010011000000000001000100000000000000000000000000000000000100100100001000000000000000000 -00000000000000000000000000000010011010010001001011000010000000000000000000110000001100010011100000000000000000000000000000000000 -00000000000000000000000000000000000000000100110010001100000010011101001001001010100100000000001001100001110010000010001100100010 -10101000100111000000000000000000000000000000000110000111100000000001000010000000000001000100000000000000000000000001000100100111 -00000100001000100010010011110101100001000000010001100100001001001010010000000100001001000011001110000000000000000000000000000000 -00000000000000000000000000000000000000000000000000001000011001110000100101001000010000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000010011000000000000000000000000000000000000000000000000000 -00010011100000000000000000000000000000000000000000000000100000000000000100000001001000000010101100000000101100000000000000000000 -00000000000000000001001000000000000000000000000000000000000000000000000010000100000010001100000000000000000000000000000000000000 -00000000000000000010011100000000000000000000000000000000000000000000100111000000000000000000000000000000000000000000000000000000 -00000000011000011110000000000000000000000000000000000000000000000000001000010000000000010011000000000000000000000000000000000000 -00000000000000000000000000000000000100111000000000000000000000000000000000000000000000000001001010000000000000000000000000000000 -00000000000000000000000000000000001000010000000000000000000000000000000000000000000000010010000010010000000000000000000000000000 -00000000000000000000001100001111000001000110101001000000000000000000000100011000000001000000000010011000000000100010010101100000 -00000000000000000000000000000000000000000000000000000000000001001000000000000000000000000010010000000000010010101101100100011101 -10000100100000000100101010011001000100000000000000000000001001100000000000011001001000000000000000000000000000000000000100101000 -00000000000000000000000000000010001000000000110000001111000110010001001110000000000000000000001000100000000000000000000000000000 -00000000001001000011010001000100110000000000000000000000110001100000000000000001001100000000001101000100011001000010000000000000 -00000000000000000000110010010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000001000010000000000000000000000010000100000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000100001000001100110010000000000000000001000010000011 -00110010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000010010110000100000000001001011000010000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000010011000000000000100110000000000001001100000000000000000000000000000 -00000001001100000000000000000000000000000000000000000000000000000000100111000000000001001110000000000010011100000000000000000000 -00010011100000000000100111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000001011111100011000000000000010111111000110000000000 -00000000000000000000000000010000110001101001111001110000000000000000000000000000000000000000000010000100000000000000101111110001 -10000000000000101111110001100000000000000000000000001000011000110100111100111000000010000110001101001111001110000000000000000000 -00000000000000000000010011100000000000000000100111000000000000000000000000000000000000000000010111111000110001000001110000001100 -11100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000011000110100111100111000000 -00000001011111100011000100000111000000110011100000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010011110001100100011001000110100111 -10001101001111000110100111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000010010100000000000000011100010100000000101001001110111011111111111111111111111111111111 -11111111111111111111111111111111110000101000000000000000000000000000000000000000000000000000000000101010101001110010001000000000 -00000000000000000100000000000000000000000000000011111111111111111111111111111111111111111111111101011110000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001000000000000000000000001 +00001000000000000000001000010000010000100000000000000000000000000000000000000000000000000000000000000100001000001100110010000000 +00000000000100001000001011100000000000000000011001100100000011001100100000000000000000000000010000100000000000000000100001000001 +00001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000100000000000001000001110000100101101101001100101100001000000100000111000010010110110100110010110000 +10000000000000000000000000000001000001110000100100111101011100101000000000000000000000000000000000000000000000000000100110000000 +00001110011010111110100100100010000000011100110101111101001001000100000000000000000000000000000000101101110110000000000000000000 +00000000000000000000000000000000000000000001000001110000010100000000000000100000111000001011101000011001100000000010000011100000 +10111010000110011000000000000000000000010011100000000001000001110000010100000100110000000000000000000000000000000000000000000000 +00100000010011110010000000000100000100010111000000110101000000000100000100010111000000110101000000000000000000000000000000000100 +00010001011100000011001000000000000000000000000000000000000000000000000000000100000110101000110011000000001100000110110001100010 +00001111111001111110000000000001100000110110001100010000011111110011111100000000000000000000000000100010110001010000000000100001 +10001110000011110110011111000000000000000000000000000000000000000000000000000000000001000001101010001100110000000011000001101100 +01100010000011111110011111100000000000011000001101100011000100000111111100111111000000000000000000000000100001100011010110110011 +10000000001000001111111001111110000000000000000000000000000000000000010011100000000000000000100111000000000000000100000110101000 +11001100000111010100011101000000001000001111111001111110000000000000000001100000110110001100010000011100110011001110000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000011101010001110100000000100000111111100111111000000100001 +10001110000011110110011111000000000000000000011000001101100011000100000111001100110011100000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000100011100111000000000000101101010011110001101001110000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000010011000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000010011100010001100100011010011110001101001111000110100111100100000000000000100000010 +01001110000001100011100100100111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100 +11010011100000000000100001100011011100001001000111001101001110000000001001010000000000000001110001010000000000000101000101011000 +11111111111111111111111111111111111111111111111111111111111111111100001010000000000000000000000000000000000000000000000000000000 +00101010101001110010001000000000000000000000000001000000000000000000000000000000111111111111111101011110000000000000000000000000 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 * NOTE END CONFIG DATA* -L41088 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +L41344 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 @@ -1426,10 +1426,10 @@ L41088 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 * -C5769* +C812F* NOTE FEATURE_ROW* E0000000000000000000000000000000000000000000000000000000000000000 0000010001100000* NOTE User Electronic Signature Data* UH00000000* -0994 +0A8E diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.mrp b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.mrp index 36bafd6..d92d1b7 100644 --- a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.mrp +++ b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.mrp @@ -6,30 +6,30 @@ Design Information ------------------ Command line: map -a MachXO2 -p LCMXO2-640HC -t TQFP100 -s 4 -oc Commercial - RAM2GS_LCMXO2_640HC_impl1.ngd -o RAM2GS_LCMXO2_640HC_impl1_map.ncd -pr - RAM2GS_LCMXO2_640HC_impl1.prf -mp RAM2GS_LCMXO2_640HC_impl1.mrp -lpf D:/One - Drive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_i - mpl1.lpf -lpf D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/RAM2GS_ - LCMXO2_640HC.lpf -c 0 -gui -msgset + -ioreg b RAM2GS_LCMXO2_640HC_impl1.ngd -o RAM2GS_LCMXO2_640HC_impl1_map.ncd + -pr RAM2GS_LCMXO2_640HC_impl1.prf -mp RAM2GS_LCMXO2_640HC_impl1.mrp -lpf D: + /OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640 + HC_impl1_synplify.lpf -lpf D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2- + 640HC/RAM2GS_LCMXO2_640HC.lpf -c 0 -gui -msgset D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/promote.xml Target Vendor: LATTICE Target Device: LCMXO2-640HCTQFP100 Target Performance: 4 Mapper: xo2c00, version: Diamond (64-bit) 3.12.1.454 -Mapped on: 08/15/23 05:03:24 +Mapped on: 08/15/23 23:30:05 Design Summary -------------- - Number of registers: 102 out of 877 (12%) - PFU registers: 102 out of 640 (16%) - PIO registers: 0 out of 237 (0%) - Number of SLICEs: 75 out of 320 (23%) - SLICEs as Logic/ROM: 75 out of 320 (23%) + Number of registers: 93 out of 877 (11%) + PFU registers: 64 out of 640 (10%) + PIO registers: 29 out of 237 (12%) + Number of SLICEs: 81 out of 320 (25%) + SLICEs as Logic/ROM: 81 out of 320 (25%) SLICEs as RAM: 0 out of 240 (0%) SLICEs as Carry: 10 out of 320 (3%) - Number of LUT4s: 143 out of 640 (22%) - Number used as logic LUTs: 123 + Number of LUT4s: 159 out of 640 (25%) + Number used as logic LUTs: 139 Number used as distributed RAM: 0 Number used as ripple logic: 20 Number used as shift registers: 0 @@ -53,67 +53,66 @@ Design Summary 2. Number of logic LUT4s does not include count of distributed RAM and ripple logic. Number of clocks: 4 - Net RCLK_c: 40 loads, 40 rising, 0 falling (Driver: PIO RCLK ) - Net PHI2_c: 13 loads, 5 rising, 8 falling (Driver: PIO PHI2 ) - Net nCCAS_c: 4 loads, 0 rising, 4 falling (Driver: PIO nCCAS ) - Net nCRAS_c: 7 loads, 0 rising, 7 falling (Driver: PIO nCRAS ) - Number of Clock Enables: 14 - Net RCLK_c_enable_6: 4 loads, 4 LSLICEs - Net RCLK_c_enable_5: 2 loads, 2 LSLICEs + Net PHI2_c: 18 loads, 8 rising, 10 falling (Driver: PIO PHI2 ) + Net RCLK_c: 39 loads, 39 rising, 0 falling (Driver: PIO RCLK ) + Net nCRAS_c: 9 loads, 0 rising, 9 falling (Driver: PIO nCRAS ) + Net nCCAS_c: 8 loads, 0 rising, 8 falling (Driver: PIO nCCAS ) + Number of Clock Enables: 6 + Net XOR8MEG18: 3 loads, 3 LSLICEs + Net i2_i: 1 loads, 0 LSLICEs Page 1 -Design: RAM2GS Date: 08/15/23 05:03:24 +Design: RAM2GS Date: 08/15/23 23:30:05 Design Summary (cont) --------------------- - Net PHI2_N_120_enable_1: 1 loads, 1 LSLICEs - Net PHI2_N_120_enable_2: 1 loads, 1 LSLICEs - Net PHI2_N_120_enable_6: 1 loads, 1 LSLICEs - Net RCLK_c_enable_27: 8 loads, 8 LSLICEs - Net RCLK_c_enable_10: 3 loads, 3 LSLICEs - Net PHI2_N_120_enable_7: 1 loads, 1 LSLICEs - Net RCLK_c_enable_16: 1 loads, 1 LSLICEs - Net RCLK_c_enable_28: 1 loads, 1 LSLICEs - Net RCLK_c_enable_15: 1 loads, 1 LSLICEs - Net PHI2_N_120_enable_3: 1 loads, 1 LSLICEs - Net Ready_N_292: 1 loads, 1 LSLICEs - Net PHI2_N_120_enable_8: 2 loads, 2 LSLICEs - Number of LSRs: 7 - Net RASr2: 1 loads, 1 LSLICEs - Net nRowColSel_N_35: 1 loads, 1 LSLICEs - Net Ready: 7 loads, 7 LSLICEs - Net nRWE_N_177: 1 loads, 1 LSLICEs - Net C1Submitted_N_237: 2 loads, 2 LSLICEs - Net n2366: 2 loads, 2 LSLICEs - Net nRowColSel_N_34: 1 loads, 1 LSLICEs + Net N_26: 1 loads, 1 LSLICEs + Net N_28: 1 loads, 1 LSLICEs + Net N_188_i: 2 loads, 2 LSLICEs + Net CmdUFMCLK_1_sqmuxa: 3 loads, 0 LSLICEs + Number of LSRs: 3 + Net RA10s_i: 1 loads, 0 LSLICEs + Net nRRAS_0_sqmuxa: 1 loads, 1 LSLICEs + Net RASr2: 2 loads, 2 LSLICEs Number of nets driven by tri-state buffers: 0 Top 10 highest fanout non-clock nets: - Net Ready: 18 loads - Net InitReady: 15 loads - Net RASr2: 15 loads - Net nRowColSel_N_35: 13 loads + Net InitReady: 17 loads + Net Ready: 15 loads + Net Ready_fast: 14 loads + Net Din_c[5]: 12 loads Net nRowColSel: 12 loads - Net Din_c_4: 10 loads - Net MAin_c_1: 10 loads - Net Din_c_5: 9 loads - Net MAin_c_0: 9 loads - Net Din_c_0: 8 loads + Net S[1]: 12 loads + Net RASr2: 10 loads + Net CO0: 9 loads + Net Din_c[3]: 9 loads + Net Din_c[4]: 9 loads - Number of warnings: 0 + Number of warnings: 6 Number of errors: 0 Design Errors/Warnings ---------------------- - No errors or warnings present. +WARNING - map: Output register UFMSDI$r0 is replicated for UFMSDI_pad. +WARNING - map: Output register nUFMCS$r1 is replicated for nUFMCS_pad. +WARNING - map: Output register RCKE$r2 is replicated for RCKE_pad. +WARNING - map: Register Bank_0io[0] cannot be packed into IOC as intended by its + primitive type or preference due to command option or architecture + limitation. The register was packed into SLICE instead. +WARNING - map: Register Bank_0io[1] cannot be packed into IOC as intended by its + primitive type or preference due to command option or architecture + limitation. The register was packed into SLICE instead. +WARNING - map: Register Bank_0io[2] cannot be packed into IOC as intended by its + primitive type or preference due to command option or architecture + limitation. The register was packed into SLICE instead. IO (PIO) Attributes ------------------- @@ -122,193 +121,187 @@ IO (PIO) Attributes | IO Name | Direction | Levelmode | IO | | | | IO_TYPE | Register | +---------------------+-----------+-----------+------------+ -| RD[7] | BIDIR | LVCMOS25 | | +| RD[0] | BIDIR | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| RD[6] | BIDIR | LVCMOS25 | | +| Dout[0] | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ +| PHI2 | INPUT | LVCMOS33 | IN | Page 2 -Design: RAM2GS Date: 08/15/23 05:03:24 +Design: RAM2GS Date: 08/15/23 23:30:05 IO (PIO) Attributes (cont) -------------------------- -| RD[5] | BIDIR | LVCMOS25 | | +---------------------+-----------+-----------+------------+ -| RD[4] | BIDIR | LVCMOS25 | | +| UFMSDO | INPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| RD[3] | BIDIR | LVCMOS25 | | +| UFMSDI | OUTPUT | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| RD[2] | BIDIR | LVCMOS25 | | +| UFMCLK | OUTPUT | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| RD[1] | BIDIR | LVCMOS25 | | +| nUFMCS | OUTPUT | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| RD[0] | BIDIR | LVCMOS25 | | +| RDQML | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| Dout[7] | OUTPUT | LVCMOS25 | | +| RDQMH | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| Dout[6] | OUTPUT | LVCMOS25 | | +| nRCAS | OUTPUT | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| Dout[5] | OUTPUT | LVCMOS25 | | +| nRRAS | OUTPUT | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| Dout[4] | OUTPUT | LVCMOS25 | | +| nRWE | OUTPUT | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| Dout[3] | OUTPUT | LVCMOS25 | | +| RCKE | OUTPUT | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| Dout[2] | OUTPUT | LVCMOS25 | | +| RCLK | INPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| Dout[1] | OUTPUT | LVCMOS25 | | +| nRCS | OUTPUT | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| Dout[0] | OUTPUT | LVCMOS25 | | +| RD[7] | BIDIR | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| LED | OUTPUT | LVCMOS25 | | +| RD[6] | BIDIR | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| RBA[1] | OUTPUT | LVCMOS25 | | +| RD[5] | BIDIR | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| RBA[0] | OUTPUT | LVCMOS25 | | +| RD[4] | BIDIR | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| RA[11] | OUTPUT | LVCMOS25 | | +| RD[3] | BIDIR | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| RA[10] | OUTPUT | LVCMOS25 | | +| RD[2] | BIDIR | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| RA[9] | OUTPUT | LVCMOS25 | | +| RD[1] | BIDIR | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| RA[8] | OUTPUT | LVCMOS25 | | +| RA[11] | OUTPUT | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| RA[7] | OUTPUT | LVCMOS25 | | +| RA[10] | OUTPUT | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| RA[6] | OUTPUT | LVCMOS25 | | +| RA[9] | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| RA[5] | OUTPUT | LVCMOS25 | | +| RA[8] | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| RA[4] | OUTPUT | LVCMOS25 | | +| RA[7] | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| RA[3] | OUTPUT | LVCMOS25 | | +| RA[6] | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| RA[2] | OUTPUT | LVCMOS25 | | +| RA[5] | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| RA[1] | OUTPUT | LVCMOS25 | | +| RA[4] | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ +| RA[3] | OUTPUT | LVCMOS33 | | Page 3 -Design: RAM2GS Date: 08/15/23 05:03:24 +Design: RAM2GS Date: 08/15/23 23:30:05 IO (PIO) Attributes (cont) -------------------------- -| RA[0] | OUTPUT | LVCMOS25 | | +---------------------+-----------+-----------+------------+ -| nRCS | OUTPUT | LVCMOS25 | | +| RA[2] | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| RCKE | OUTPUT | LVCMOS25 | | +| RA[1] | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| nRWE | OUTPUT | LVCMOS25 | | +| RA[0] | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| nRRAS | OUTPUT | LVCMOS25 | | +| RBA[1] | OUTPUT | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| nRCAS | OUTPUT | LVCMOS25 | | +| RBA[0] | OUTPUT | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| RDQMH | OUTPUT | LVCMOS25 | | +| LED | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| RDQML | OUTPUT | LVCMOS25 | | +| nFWE | INPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| nUFMCS | OUTPUT | LVCMOS25 | | +| nCRAS | INPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| UFMCLK | OUTPUT | LVCMOS25 | | +| nCCAS | INPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| UFMSDI | OUTPUT | LVCMOS25 | | +| Dout[7] | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| PHI2 | INPUT | LVCMOS25 | | +| Dout[6] | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| MAin[9] | INPUT | LVCMOS25 | | +| Dout[5] | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| MAin[8] | INPUT | LVCMOS25 | | +| Dout[4] | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| MAin[7] | INPUT | LVCMOS25 | | +| Dout[3] | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| MAin[6] | INPUT | LVCMOS25 | | +| Dout[2] | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| MAin[5] | INPUT | LVCMOS25 | | +| Dout[1] | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| MAin[4] | INPUT | LVCMOS25 | | +| Din[7] | INPUT | LVCMOS33 | IN | +---------------------+-----------+-----------+------------+ -| MAin[3] | INPUT | LVCMOS25 | | +| Din[6] | INPUT | LVCMOS33 | IN | +---------------------+-----------+-----------+------------+ -| MAin[2] | INPUT | LVCMOS25 | | +| Din[5] | INPUT | LVCMOS33 | IN | +---------------------+-----------+-----------+------------+ -| MAin[1] | INPUT | LVCMOS25 | | +| Din[4] | INPUT | LVCMOS33 | IN | +---------------------+-----------+-----------+------------+ -| MAin[0] | INPUT | LVCMOS25 | | +| Din[3] | INPUT | LVCMOS33 | IN | +---------------------+-----------+-----------+------------+ -| CROW[1] | INPUT | LVCMOS25 | | +| Din[2] | INPUT | LVCMOS33 | IN | +---------------------+-----------+-----------+------------+ -| CROW[0] | INPUT | LVCMOS25 | | +| Din[1] | INPUT | LVCMOS33 | IN | +---------------------+-----------+-----------+------------+ -| Din[7] | INPUT | LVCMOS25 | | +| Din[0] | INPUT | LVCMOS33 | IN | +---------------------+-----------+-----------+------------+ -| Din[6] | INPUT | LVCMOS25 | | +| CROW[1] | INPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| Din[5] | INPUT | LVCMOS25 | | +| CROW[0] | INPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| Din[4] | INPUT | LVCMOS25 | | +| MAin[9] | INPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ +| MAin[8] | INPUT | LVCMOS33 | | Page 4 -Design: RAM2GS Date: 08/15/23 05:03:24 +Design: RAM2GS Date: 08/15/23 23:30:05 IO (PIO) Attributes (cont) -------------------------- -| Din[3] | INPUT | LVCMOS25 | | +---------------------+-----------+-----------+------------+ -| Din[2] | INPUT | LVCMOS25 | | +| MAin[7] | INPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| Din[1] | INPUT | LVCMOS25 | | +| MAin[6] | INPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| Din[0] | INPUT | LVCMOS25 | | +| MAin[5] | INPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| nCCAS | INPUT | LVCMOS25 | | +| MAin[4] | INPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| nCRAS | INPUT | LVCMOS25 | | +| MAin[3] | INPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| nFWE | INPUT | LVCMOS25 | | +| MAin[2] | INPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| RCLK | INPUT | LVCMOS25 | | +| MAin[1] | INPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| UFMSDO | INPUT | LVCMOS25 | | +| MAin[0] | INPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ Removed logic ------------- -Block i2 undriven or does not drive anything - clipped. Block GSR_INST undriven or does not drive anything - clipped. -Signal PHI2_N_120 was merged into signal PHI2_c -Signal n1407 was merged into signal nRowColSel_N_34 -Signal n2380 was merged into signal Ready -Signal n1408 was merged into signal nRowColSel_N_35 -Signal nRWE_N_176 was merged into signal nRWE_N_177 -Signal GND_net undriven or does not drive anything - clipped. -Signal VCC_net undriven or does not drive anything - clipped. -Signal FS_610_add_4_19/S1 undriven or does not drive anything - clipped. -Signal FS_610_add_4_19/CO undriven or does not drive anything - clipped. -Signal FS_610_add_4_1/S0 undriven or does not drive anything - clipped. -Signal FS_610_add_4_1/CI undriven or does not drive anything - clipped. -Block i2046 was optimized away. -Block i1118_1_lut was optimized away. -Block i637_1_lut_rep_31 was optimized away. -Block i1119_1_lut was optimized away. -Block nRWE_I_50_1_lut was optimized away. -Block i1 was optimized away. +Signal nCRAS_c_i was merged into signal nCRAS_c +Signal RASr2_i was merged into signal RASr2 +Signal XOR8MEG.CN was merged into signal PHI2_c +Signal GND undriven or does not drive anything - clipped. +Signal FS_s_0_S1[17] undriven or does not drive anything - clipped. +Signal FS_s_0_COUT[17] undriven or does not drive anything - clipped. +Signal FS_cry_0_S0[0] undriven or does not drive anything - clipped. +Signal N_1 undriven or does not drive anything - clipped. +Block nCRAS_pad_RNIBPVB was optimized away. +Block RASr2_RNIAFR1 was optimized away. +Block XOR8MEG.CN was optimized away. +Block GND was optimized away. @@ -317,7 +310,7 @@ Run Time and Memory Usage Total CPU Time: 0 secs Total REAL Time: 0 secs - Peak Memory Usage: 35 MB + Peak Memory Usage: 36 MB @@ -325,6 +318,13 @@ Run Time and Memory Usage + + + + + + + Page 5 diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.ncd b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.ncd index f841f9031ef51586d90adaa5aa327f17523d9888..b1a670d640a400d10a43846ee53854678f7663b1 100644 GIT binary patch literal 204561 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

    Z$T`a&|LGchd}-lvSkM&T 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�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 literal 156242 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%0D*) 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: -4.914ns/-481.988ns; real time: 7 secs +0(0.00%) conflict; 529(75.25%) untouched conns; 0 (nbr) score; +Estimated worst slack/total negative slack: 6.016ns/0.000ns; real time: 6 secs Level 2, iteration 1 -7(0.02%) conflicts; 473(70.18%) untouched conns; 424953 (nbr) score; -Estimated worst slack/total negative slack: -4.988ns/-424.953ns; real time: 7 secs +0(0.00%) conflict; 526(74.82%) untouched conns; 0 (nbr) score; +Estimated worst slack/total negative slack: 5.772ns/0.000ns; real time: 6 secs Level 3, iteration 1 -12(0.03%) conflicts; 254(37.69%) untouched conns; 455640 (nbr) score; -Estimated worst slack/total negative slack: -5.118ns/-455.640ns; real time: 7 secs +0(0.00%) conflict; 526(74.82%) untouched conns; 0 (nbr) score; +Estimated worst slack/total negative slack: 6.058ns/0.000ns; real time: 6 secs Level 4, iteration 1 -6(0.01%) conflicts; 0(0.00%) untouched conn; 465237 (nbr) score; -Estimated worst slack/total negative slack: -5.122ns/-465.237ns; real time: 7 secs +3(0.01%) conflicts; 0(0.00%) untouched conn; 0 (nbr) score; +Estimated worst slack/total negative slack: 5.827ns/0.000ns; real time: 6 secs Info: Initial congestion level at 75% usage is 0 Info: Initial congestion area at 75% usage is 0 (0.00%) -Start NBR section for normal routing at 05:03:35 08/15/23 +Start NBR section for normal routing at 23:30:11 08/15/23 Level 4, iteration 1 -6(0.01%) conflicts; 0(0.00%) untouched conn; 461186 (nbr) score; -Estimated worst slack/total negative slack: -4.992ns/-461.186ns; real time: 7 secs +1(0.00%) conflict; 0(0.00%) untouched conn; 0 (nbr) score; +Estimated worst slack/total negative slack: 5.827ns/0.000ns; real time: 6 secs Level 4, iteration 2 -3(0.01%) conflicts; 0(0.00%) untouched conn; 460933 (nbr) score; -Estimated worst slack/total negative slack: -4.992ns/-460.933ns; real time: 7 secs -Level 4, iteration 3 -2(0.00%) conflicts; 0(0.00%) untouched conn; 461063 (nbr) score; -Estimated worst slack/total negative slack: -4.992ns/-461.063ns; real time: 7 secs -Level 4, iteration 4 -1(0.00%) conflict; 0(0.00%) untouched conn; 461063 (nbr) score; -Estimated worst slack/total negative slack: -4.992ns/-461.063ns; real time: 7 secs -Level 4, iteration 5 -0(0.00%) conflict; 0(0.00%) untouched conn; 468515 (nbr) score; -Estimated worst slack/total negative slack: -5.122ns/-468.515ns; real time: 7 secs +0(0.00%) conflict; 0(0.00%) untouched conn; 0 (nbr) score; +Estimated worst slack/total negative slack: 5.827ns/0.000ns; real time: 6 secs -Start NBR section for performance tuning (iteration 1) at 05:03:35 08/15/23 +Start NBR section for setup/hold timing optimization with effort level 3 at 23:30:11 08/15/23 + +Start NBR section for re-routing at 23:30:11 08/15/23 Level 4, iteration 1 -0(0.00%) conflict; 0(0.00%) untouched conn; 468515 (nbr) score; -Estimated worst slack/total negative slack: -5.122ns/-468.515ns; real time: 7 secs +0(0.00%) conflict; 0(0.00%) untouched conn; 0 (nbr) score; +Estimated worst slack/total negative slack: 5.827ns/0.000ns; real time: 6 secs -Start NBR section for re-routing at 05:03:35 08/15/23 -Level 4, iteration 1 -0(0.00%) conflict; 0(0.00%) untouched conn; 468515 (nbr) score; -Estimated worst slack/total negative slack: -5.122ns/-468.515ns; real time: 7 secs - -Start NBR section for post-routing at 05:03:35 08/15/23 +Start NBR section for post-routing at 23:30:11 08/15/23 End NBR router with 0 unrouted connection NBR Summary ----------- Number of unrouted connections : 0 (0.00%) - Number of connections with timing violations : 260 (38.58%) - Estimated worst slack : -5.122ns - Timing score : 452301 + Number of connections with timing violations : 0 (0.00%) + Estimated worst slack : 5.827ns + Timing score : 0 ----------- Notes: The timing info is calculated for SETUP only and all PAR_ADJs are ignored. -WARNING - par: The following clock signals will be routed by using generic routing resource and may suffer from excessive delay and/or skew. - Signal=nCCAS_c loads=6 clock_loads=4 - -Total CPU time 7 secs -Total REAL time: 7 secs +Total CPU time 5 secs +Total REAL time: 6 secs Completely routed. -End of route. 674 routed (100.00%); 0 unrouted. +End of route. 703 routed (100.00%); 0 unrouted. Hold time timing score: 0, hold timing errors: 0 -Timing score: 452301 +Timing score: 0 Dumping design to file RAM2GS_LCMXO2_640HC_impl1.dir/5_1.ncd. @@ -239,14 +222,14 @@ All signals are completely routed. PAR_SUMMARY::Run status = Completed PAR_SUMMARY::Number of unrouted conns = 0 -PAR_SUMMARY::Worst slack> = -5.122 -PAR_SUMMARY::Timing score> = 452.301 +PAR_SUMMARY::Worst slack> = 5.827 +PAR_SUMMARY::Timing score> = 0.000 PAR_SUMMARY::Worst slack> = 0.304 PAR_SUMMARY::Timing score> = 0.000 PAR_SUMMARY::Number of errors = 0 -Total CPU time to completion: 7 secs -Total REAL time to completion: 7 secs +Total CPU time to completion: 5 secs +Total REAL time to completion: 6 secs par done! diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.prf b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.prf index ccdc34a..0109563 100644 --- a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.prf +++ b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.prf @@ -1,7 +1,22 @@ SCHEMATIC START ; -# map: version Diamond (64-bit) 3.12.1.454 -- WARNING: Map write only section -- Tue Aug 15 05:03:24 2023 +# map: version Diamond (64-bit) 3.12.1.454 -- WARNING: Map write only section -- Tue Aug 15 23:30:05 2023 SYSCONFIG SDM_PORT=DISABLE SLAVE_SPI_PORT=DISABLE I2C_PORT=DISABLE MASTER_SPI_PORT=DISABLE COMPRESS_CONFIG=ON CONFIGURATION=CFG MY_ASSP=OFF ONE_TIME_PROGRAM=OFF CONFIG_SECURE=OFF MCCLK_FREQ=2.08 JTAG_PORT=ENABLE ENABLE_TRANSFR=DISABLE SHAREDEBRINIT=DISABLE MUX_CONFIGURATION_PORTS=DISABLE BACKGROUND_RECONFIG=OFF INBUF=ON ; +LOCATE COMP "RD[0]" SITE "36" ; +LOCATE COMP "Dout[0]" SITE "76" ; +LOCATE COMP "PHI2" SITE "8" ; +LOCATE COMP "UFMSDO" SITE "27" ; +LOCATE COMP "UFMSDI" SITE "29" ; +LOCATE COMP "UFMCLK" SITE "28" ; +LOCATE COMP "nUFMCS" SITE "30" ; +LOCATE COMP "RDQML" SITE "48" ; +LOCATE COMP "RDQMH" SITE "51" ; +LOCATE COMP "nRCAS" SITE "52" ; +LOCATE COMP "nRRAS" SITE "54" ; +LOCATE COMP "nRWE" SITE "49" ; +LOCATE COMP "RCKE" SITE "53" ; +LOCATE COMP "RCLK" SITE "62" ; +LOCATE COMP "nRCS" SITE "57" ; LOCATE COMP "RD[7]" SITE "43" ; LOCATE COMP "RD[6]" SITE "42" ; LOCATE COMP "RD[5]" SITE "41" ; @@ -9,18 +24,6 @@ LOCATE COMP "RD[4]" SITE "40" ; LOCATE COMP "RD[3]" SITE "39" ; LOCATE COMP "RD[2]" SITE "38" ; LOCATE COMP "RD[1]" SITE "37" ; -LOCATE COMP "RD[0]" SITE "36" ; -LOCATE COMP "Dout[7]" SITE "82" ; -LOCATE COMP "Dout[6]" SITE "78" ; -LOCATE COMP "Dout[5]" SITE "84" ; -LOCATE COMP "Dout[4]" SITE "83" ; -LOCATE COMP "Dout[3]" SITE "85" ; -LOCATE COMP "Dout[2]" SITE "87" ; -LOCATE COMP "Dout[1]" SITE "86" ; -LOCATE COMP "Dout[0]" SITE "76" ; -LOCATE COMP "LED" SITE "34" ; -LOCATE COMP "RBA[1]" SITE "60" ; -LOCATE COMP "RBA[0]" SITE "58" ; LOCATE COMP "RA[11]" SITE "59" ; LOCATE COMP "RA[10]" SITE "64" ; LOCATE COMP "RA[9]" SITE "63" ; @@ -33,16 +36,29 @@ LOCATE COMP "RA[3]" SITE "71" ; LOCATE COMP "RA[2]" SITE "69" ; LOCATE COMP "RA[1]" SITE "67" ; LOCATE COMP "RA[0]" SITE "66" ; -LOCATE COMP "nRCS" SITE "57" ; -LOCATE COMP "RCKE" SITE "53" ; -LOCATE COMP "nRWE" SITE "49" ; -LOCATE COMP "nRRAS" SITE "54" ; -LOCATE COMP "nRCAS" SITE "52" ; -LOCATE COMP "RDQMH" SITE "51" ; -LOCATE COMP "RDQML" SITE "48" ; -LOCATE COMP "UFMCLK" SITE "29" ; -LOCATE COMP "UFMSDI" SITE "30" ; -LOCATE COMP "PHI2" SITE "8" ; +LOCATE COMP "RBA[1]" SITE "60" ; +LOCATE COMP "RBA[0]" SITE "58" ; +LOCATE COMP "LED" SITE "34" ; +LOCATE COMP "nFWE" SITE "15" ; +LOCATE COMP "nCRAS" SITE "17" ; +LOCATE COMP "nCCAS" SITE "9" ; +LOCATE COMP "Dout[7]" SITE "82" ; +LOCATE COMP "Dout[6]" SITE "78" ; +LOCATE COMP "Dout[5]" SITE "84" ; +LOCATE COMP "Dout[4]" SITE "83" ; +LOCATE COMP "Dout[3]" SITE "85" ; +LOCATE COMP "Dout[2]" SITE "87" ; +LOCATE COMP "Dout[1]" SITE "86" ; +LOCATE COMP "Din[7]" SITE "1" ; +LOCATE COMP "Din[6]" SITE "2" ; +LOCATE COMP "Din[5]" SITE "98" ; +LOCATE COMP "Din[4]" SITE "99" ; +LOCATE COMP "Din[3]" SITE "97" ; +LOCATE COMP "Din[2]" SITE "88" ; +LOCATE COMP "Din[1]" SITE "96" ; +LOCATE COMP "Din[0]" SITE "3" ; +LOCATE COMP "CROW[1]" SITE "16" ; +LOCATE COMP "CROW[0]" SITE "10" ; LOCATE COMP "MAin[9]" SITE "32" ; LOCATE COMP "MAin[8]" SITE "25" ; LOCATE COMP "MAin[7]" SITE "18" ; @@ -53,28 +69,11 @@ LOCATE COMP "MAin[3]" SITE "21" ; LOCATE COMP "MAin[2]" SITE "13" ; LOCATE COMP "MAin[1]" SITE "12" ; LOCATE COMP "MAin[0]" SITE "14" ; -LOCATE COMP "CROW[1]" SITE "16" ; -LOCATE COMP "CROW[0]" SITE "10" ; -LOCATE COMP "Din[7]" SITE "1" ; -LOCATE COMP "Din[6]" SITE "2" ; -LOCATE COMP "Din[5]" SITE "98" ; -LOCATE COMP "Din[4]" SITE "99" ; -LOCATE COMP "Din[3]" SITE "97" ; -LOCATE COMP "Din[2]" SITE "88" ; -LOCATE COMP "Din[1]" SITE "96" ; -LOCATE COMP "Din[0]" SITE "3" ; -LOCATE COMP "nCCAS" SITE "9" ; -LOCATE COMP "nCRAS" SITE "17" ; -LOCATE COMP "nFWE" SITE "28" ; -LOCATE COMP "RCLK" SITE "62" ; -LOCATE COMP "UFMSDO" SITE "27" ; +FREQUENCY PORT "PHI2" 2.900000 MHz ; +FREQUENCY PORT "nCCAS" 2.900000 MHz ; +FREQUENCY PORT "nCRAS" 2.900000 MHz ; +FREQUENCY PORT "RCLK" 62.500000 MHz ; SCHEMATIC END ; BLOCK RESETPATHS ; BLOCK ASYNCPATHS ; COMMERCIAL ; - -// No timing preferences found. TRCE invokes auto-generation of timing preferences -// Section Autogen -FREQUENCY NET "RCLK_c" 299.401 MHz ; -FREQUENCY NET "PHI2_c" 99.079 MHz ; -// End Section Autogen diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.srd b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.srd new file mode 100644 index 0000000000000000000000000000000000000000..0c57533a2947b26a5d6f4bda09ac1f8f70d3d50b GIT binary patch literal 22959 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

    2$@}RJrpd4_c&s~W=>n#`Y2*Zw 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 literal 0 HcmV?d00001 diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.srf b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.srf new file mode 100644 index 0000000..f622489 --- /dev/null +++ b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.srf @@ -0,0 +1,964 @@ +#Build: Synplify Pro (R) R-2021.03L-SP1, Build 093R, Aug 10 2021 +#install: C:\lscc\diamond\3.12\synpbase +#OS: Windows 8 6.2 +#Hostname: ZANEPC + +# Tue Aug 15 23:12:41 2023 + +#Implementation: impl1 + + +Copyright (C) 1994-2021 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. +Tool: Synplify Pro (R) +Build: R-2021.03L-SP1 +Install: C:\lscc\diamond\3.12\synpbase +OS: Windows 6.2 + +Hostname: ZANEPC + +Implementation : impl1 +Synopsys HDL Compiler, Version comp202103synp2, Build 093R, Built Aug 10 2021 09:15:36, @ + +@N|Running in 64-bit mode +###########################################################[ + +Copyright (C) 1994-2021 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. +Tool: Synplify Pro (R) +Build: R-2021.03L-SP1 +Install: C:\lscc\diamond\3.12\synpbase +OS: Windows 6.2 + +Hostname: ZANEPC + +Implementation : impl1 +Synopsys Verilog Compiler, Version comp202103synp2, Build 093R, Built Aug 10 2021 09:15:36, @ + +@N|Running in 64-bit mode +@I::"C:\lscc\diamond\3.12\synpbase\lib\lucent\machxo2.v" (library work) +@I::"C:\lscc\diamond\3.12\synpbase\lib\lucent\pmi_def.v" (library work) +@I::"C:\lscc\diamond\3.12\synpbase\lib\vlog\hypermods.v" (library __hyper__lib__) +@I::"C:\lscc\diamond\3.12\synpbase\lib\vlog\umr_capim.v" (library snps_haps) +@I::"C:\lscc\diamond\3.12\synpbase\lib\vlog\scemi_objects.v" (library snps_haps) +@I::"C:\lscc\diamond\3.12\synpbase\lib\vlog\scemi_pipes.svh" (library snps_haps) +@I::"D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\RAM2GS-SPI.v" (library work) +Verilog syntax check successful! + +Compiler output is up to date. No re-compile necessary + +Selecting top level module RAM2GS +@N: CG364 :"D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\RAM2GS-SPI.v":1:7:1:12|Synthesizing module RAM2GS in library work. +Running optimization stage 1 on RAM2GS ....... +Finished optimization stage 1 on RAM2GS (CPU Time 0h:00m:00s, Memory Used current: 93MB peak: 93MB) +Running optimization stage 2 on RAM2GS ....... +Finished optimization stage 2 on RAM2GS (CPU Time 0h:00m:00s, Memory Used current: 93MB peak: 94MB) + +For a summary of runtime and memory usage per design unit, please see file: +========================================================== +@L: D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\LCMXO2-640HC\impl1\synwork\layer0.rt.csv + + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 90MB peak: 91MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Tue Aug 15 23:12:41 2023 + +###########################################################] +###########################################################[ + +Copyright (C) 1994-2021 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. +Tool: Synplify Pro (R) +Build: R-2021.03L-SP1 +Install: C:\lscc\diamond\3.12\synpbase +OS: Windows 6.2 + +Hostname: ZANEPC + +Implementation : impl1 +Synopsys Synopsys Netlist Linker, Version comp202103synp2, Build 093R, Built Aug 10 2021 09:15:36, @ + +@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: 90MB peak: 91MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Tue Aug 15 23:12:41 2023 + +###########################################################] + +For a summary of runtime and memory usage for all design units, please see file: +========================================================== +@L: D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\LCMXO2-640HC\impl1\synwork\RAM2GS_LCMXO2_640HC_impl1_comp.rt.csv + +@END + +At c_hdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 23MB peak: 23MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Tue Aug 15 23:12:41 2023 + +###########################################################] +###########################################################[ + +Copyright (C) 1994-2021 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. +Tool: Synplify Pro (R) +Build: R-2021.03L-SP1 +Install: C:\lscc\diamond\3.12\synpbase +OS: Windows 6.2 + +Hostname: ZANEPC + +Implementation : impl1 +Synopsys Synopsys Netlist Linker, Version comp202103synp2, Build 093R, Built Aug 10 2021 09:15:36, @ + +@N|Running in 64-bit mode +File D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\LCMXO2-640HC\impl1\synwork\RAM2GS_LCMXO2_640HC_impl1_comp.srs changed - recompiling + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 90MB peak: 91MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Tue Aug 15 23:12:42 2023 + +###########################################################] +# Tue Aug 15 23:12:42 2023 + + +Copyright (C) 1994-2021 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. +Tool: Synplify Pro (R) +Build: R-2021.03L-SP1 +Install: C:\lscc\diamond\3.12\synpbase +OS: Windows 6.2 + +Hostname: ZANEPC + +Implementation : impl1 +Synopsys Lattice Technology Pre-mapping, Version map202103lat, Build 070R, Built Oct 6 2021 11:12:38, @ + + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 118MB peak: 118MB) + + +Done reading skeleton netlist (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 121MB peak: 130MB) + +Reading constraint file: D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\RAM2GS.sdc +@L: D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\LCMXO2-640HC\impl1\RAM2GS_LCMXO2_640HC_impl1_scck.rpt +See clock summary report "D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\LCMXO2-640HC\impl1\RAM2GS_LCMXO2_640HC_impl1_scck.rpt" +@N: MF916 |Option synthesis_strategy=base is enabled. +@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: 125MB peak: 130MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 125MB peak: 130MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 138MB peak: 138MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 138MB peak: 140MB) + +@N: FX493 |Applying initial value "0" on instance InitReady. +@W: FX474 |User-specified initial value defined for some sequential elements which can prevent optimum synthesis results from being achieved. +@N: FX493 |Applying initial value "0" on instance Ready. +@N: FX493 |Applying initial value "0" on instance RCKE. +@N: FX493 |Applying initial value "1" on instance nRCAS. +@N: FX493 |Applying initial value "0" on instance CmdLEDEN. +@N: FX493 |Applying initial value "0" on instance Cmdn8MEGEN. +@N: FX493 |Applying initial value "1" on instance nRCS. +@N: FX493 |Applying initial value "0" on instance LEDEN. +@N: FX493 |Applying initial value "0" on instance n8MEGEN. +@N: FX493 |Applying initial value "1" on instance nRRAS. +@N: FX493 |Applying initial value "0" on instance CmdUFMCLK. +@N: FX493 |Applying initial value "0" on instance CmdUFMCS. +@N: FX493 |Applying initial value "0" on instance CmdUFMSDI. +@N: FX493 |Applying initial value "0" on instance C1Submitted. +@N: FX493 |Applying initial value "0" on instance CmdSubmitted. +@N: FX493 |Applying initial value "0" on instance ADSubmitted. +@N: FX493 |Applying initial value "0" on instance XOR8MEG. +@N: FX493 |Applying initial value "1" on instance nUFMCS. +@N: FX493 |Applying initial value "0" on instance UFMSDI. +@N: FX493 |Applying initial value "0" on instance UFMCLK. +@N: FX493 |Applying initial value "0" on instance CmdEnable. +@N: FX493 |Applying initial value "1" on instance nRWE. + +Starting clock optimization phase (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 170MB peak: 170MB) + + +Finished clock optimization phase (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 170MB peak: 171MB) + + +Starting clock optimization report phase (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 171MB peak: 171MB) + + +Finished clock optimization report phase (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 171MB peak: 171MB) + +@N: FX1184 |Applying syn_allowed_resources blockrams=2 on top level netlist RAM2GS + +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 171MB peak: 171MB) + + + +Clock Summary +****************** + + Start Requested Requested Clock Clock Clock +Level Clock Frequency Period Type Group Load +--------------------------------------------------------------------------------------- +0 - RCLK 62.5 MHz 16.000 declared default_clkgroup 48 + +0 - PHI2 2.9 MHz 350.000 declared default_clkgroup 19 + +0 - nCRAS 2.9 MHz 350.000 declared default_clkgroup 14 + +0 - nCCAS 2.9 MHz 350.000 declared default_clkgroup 8 +======================================================================================= + + + +Clock Load Summary +*********************** + + Clock Source Clock Pin Non-clock Pin Non-clock Pin +Clock Load Pin Seq Example Seq Example Comb Example +---------------------------------------------------------------------------------------- +RCLK 48 RCLK(port) CASr2.C - - + +PHI2 19 PHI2(port) Bank[7:0].C PHI2r.D[0] un1_PHI2.I[0](inv) + +nCRAS 14 nCRAS(port) CBR.C RASr.D[0] RASr_2.I[0](inv) + +nCCAS 8 nCCAS(port) WRD[7:0].C CASr.D[0] CASr_2.I[0](inv) +======================================================================================== + +ICG Latch Removal Summary: +Number of ICG latches removed: 0 +Number of ICG latches not removed: 0 +For details review file gcc_ICG_report.rpt + + +@S |Clock Optimization Summary + + + +#### START OF PREMAP CLOCK OPTIMIZATION REPORT #####[ + +4 non-gated/non-generated clock tree(s) driving 89 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 +--------------------------------------------------------------------------------------- +@KP:ckid0_0 RCLK port 48 nRWE +@KP:ckid0_1 PHI2 port 19 RA11 +@KP:ckid0_2 nCCAS port 8 WRD[7:0] +@KP:ckid0_3 nCRAS port 14 RowA[9:0] +======================================================================================= + + +##### END OF CLOCK OPTIMIZATION REPORT ###### + +@N: FX1143 |Skipping assigning INTERNAL_VREF to iobanks, because the table of mapping from pin to iobank is not initialized. +Finished Pre Mapping Phase. + +Starting constraint checker (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 171MB peak: 171MB) + + +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 171MB peak: 171MB) + + +Finished constraint checker (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 172MB peak: 172MB) + +Pre-mapping successful! + +At Mapper Exit (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 88MB peak: 174MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime +# Tue Aug 15 23:12:44 2023 + +###########################################################] +# Tue Aug 15 23:12:44 2023 + + +Copyright (C) 1994-2021 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. +Tool: Synplify Pro (R) +Build: R-2021.03L-SP1 +Install: C:\lscc\diamond\3.12\synpbase +OS: Windows 6.2 + +Hostname: ZANEPC + +Implementation : impl1 +Synopsys Lattice Technology Mapper, Version map202103lat, Build 070R, Built Oct 6 2021 11:12:38, @ + + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 117MB peak: 117MB) + +@N: MF916 |Option synthesis_strategy=base is enabled. +@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: 119MB peak: 130MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 119MB peak: 130MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 133MB peak: 133MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 135MB peak: 136MB) + + + +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 168MB peak: 168MB) + + +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 171MB peak: 171MB) + +@N: MO231 :"d:\onedrive\documents\github\ram2gs\cpld\ram2gs-spi.v":147:1:147:6|Found counter in view:work.RAM2GS(verilog) instance IS[3:0] +@N: MO231 :"d:\onedrive\documents\github\ram2gs\cpld\ram2gs-spi.v":134:1:134:6|Found counter in view:work.RAM2GS(verilog) instance FS[17:0] +@N: FX493 |Applying initial value "0" on instance IS[0]. +@W: FX474 |User-specified initial value defined for some sequential elements which can prevent optimum synthesis results from being achieved. +@N: FX493 |Applying initial value "0" on instance IS[1]. +@N: FX493 |Applying initial value "0" on instance IS[2]. +@N: FX493 |Applying initial value "0" on instance IS[3]. + +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 173MB peak: 173MB) + + +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 174MB peak: 174MB) + + +Available hyper_sources - for debug and ip models + None Found + + +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 175MB peak: 175MB) + + +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 175MB peak: 175MB) + + +Finished Early Timing Optimization (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 176MB peak: 176MB) + + +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 176MB peak: 176MB) + + +Finished preparing to map (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 176MB peak: 176MB) + + +Finished technology mapping (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 176MB peak: 176MB) + +Pass CPU time Worst Slack Luts / Registers +------------------------------------------------------------ + 1 0h:00m:01s -2.34ns 128 / 89 + 2 0h:00m:01s -2.34ns 140 / 89 + 3 0h:00m:01s -2.34ns 140 / 89 +@N: FX271 :"d:\onedrive\documents\github\ram2gs\cpld\ram2gs-spi.v":147:1:147:6|Replicating instance Ready (in view: work.RAM2GS(verilog)) with 12 loads 1 time to improve timing. +Timing driven replication report +Added 1 Registers via timing driven replication +Added 0 LUTs via timing driven replication + + 4 0h:00m:01s -2.04ns 140 / 90 + + + 5 0h:00m:01s -2.04ns 141 / 90 + 6 0h:00m:01s -2.04ns 141 / 90 + 7 0h:00m:01s -2.04ns 141 / 90 + 8 0h:00m:01s -2.04ns 141 / 90 + 9 0h:00m:01s -2.04ns 141 / 90 + +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 177MB peak: 177MB) + +@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: 177MB peak: 177MB) + + +Start Writing Netlists (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 141MB peak: 178MB) + +Writing Analyst data base D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\LCMXO2-640HC\impl1\synwork\RAM2GS_LCMXO2_640HC_impl1_m.srm + +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 178MB peak: 178MB) + +Writing EDIF Netlist and constraint files +@N: FX1056 |Writing EDF file: D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\LCMXO2-640HC\impl1\RAM2GS_LCMXO2_640HC_impl1.edi +@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: 183MB peak: 183MB) + + +Finished Writing Netlists (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 183MB peak: 184MB) + + +Start final timing analysis (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 181MB peak: 184MB) + +@N: MT615 |Found clock RCLK with period 16.00ns +@N: MT615 |Found clock PHI2 with period 350.00ns +@N: MT615 |Found clock nCRAS with period 350.00ns +@N: MT615 |Found clock nCCAS with period 350.00ns + + +##### START OF TIMING REPORT #####[ +# Timing report written on Tue Aug 15 23:12:47 2023 +# + + +Top view: RAM2GS +Requested Frequency: 2.9 MHz +Wire load mode: top +Paths requested: 3 +Constraint File(s): D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\RAM2GS.sdc + +@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: -2.389 + + Requested Estimated Requested Estimated Clock Clock +Starting Clock Frequency Frequency Period Period Slack Type Group +------------------------------------------------------------------------------------------------------------------- +PHI2 2.9 MHz 0.8 MHz 350.000 1186.150 -2.389 declared default_clkgroup +RCLK 62.5 MHz 18.4 MHz 16.000 54.224 -0.784 declared default_clkgroup +nCCAS 2.9 MHz NA 350.000 NA NA declared default_clkgroup +nCRAS 2.9 MHz 1.0 MHz 350.000 987.210 -1.821 declared default_clkgroup +=================================================================================================================== +Estimated period and frequency reported as NA means no slack depends directly on the clock waveform + + +@W: MT118 |Paths from clock (PHI2:f) to clock (RCLK:r) are overconstrained because the required time of 1.00 ns is too small. +@W: MT117 |Paths from clock (RCLK:r) to clock (PHI2:f) are overconstrained because the required time of 1.00 ns is too small. +@W: MT118 |Paths from clock (nCRAS:f) to clock (RCLK:r) are overconstrained because the required time of 1.00 ns is too small. +@W: MT116 |Paths from clock (RCLK:r) to clock (PHI2:r) are overconstrained because the required time of 2.00 ns is too small. +@W: MT117 |Paths from clock (RCLK:r) to clock (nCRAS:f) are overconstrained because the required time of 1.00 ns is too small. + + + +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 +-------------------------------------------------------------------------------------------------------------- +RCLK RCLK | 16.000 8.400 | No paths - | No paths - | No paths - +RCLK PHI2 | 2.000 0.216 | No paths - | 1.000 -0.636 | No paths - +RCLK nCRAS | No paths - | No paths - | 1.000 -0.784 | No paths - +PHI2 RCLK | No paths - | No paths - | No paths - | 1.000 -2.389 +PHI2 PHI2 | No paths - | 350.000 345.378 | 175.000 167.920 | 175.000 173.428 +nCRAS RCLK | No paths - | No paths - | No paths - | 1.000 -1.821 +============================================================================================================== + 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: PHI2 +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +---------------------------------------------------------------------------------------- +CmdSubmitted PHI2 FD1S3AX Q CmdSubmitted 1.148 -2.389 +CmdUFMCS PHI2 FD1P3AX Q CmdUFMCS 0.972 -1.517 +CmdUFMSDI PHI2 FD1P3AX Q CmdUFMSDI 0.972 -0.740 +CmdLEDEN PHI2 FD1P3AX Q CmdLEDEN 1.044 -0.572 +Cmdn8MEGEN PHI2 FD1P3AX Q Cmdn8MEGEN 1.044 -0.572 +CmdUFMCLK PHI2 FD1P3AX Q CmdUFMCLK 0.972 -0.500 +Bank_0io[0] PHI2 IFS1P3DX Q Bank[0] 0.972 167.920 +Bank_0io[1] PHI2 IFS1P3DX Q Bank[1] 0.972 167.920 +Bank_0io[2] PHI2 IFS1P3DX Q Bank[2] 0.972 167.920 +Bank_0io[3] PHI2 IFS1P3DX Q Bank[3] 0.972 167.920 +======================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +-------------------------------------------------------------------------------------------- +UFMCLK_0io PHI2 OFS1P3DX SP i2_i 0.528 -2.389 +nUFMCS PHI2 FD1S3AY D nUFMCS_s_0_N_5_i 1.089 -1.829 +UFMSDI PHI2 FD1S3AX D UFMSDI_RNO 1.462 -1.751 +LEDEN PHI2 FD1P3AX SP N_28 0.528 -1.236 +n8MEGEN PHI2 FD1P3AX SP N_26 0.528 -1.236 +LEDEN PHI2 FD1P3AX D N_74_i 1.089 -0.572 +n8MEGEN PHI2 FD1P3AX D N_131 1.089 -0.572 +UFMCLK_0io PHI2 OFS1P3DX D i1_i 1.089 -0.500 +ADSubmitted PHI2 FD1S3AX D ADSubmitted_r_0 175.089 167.920 +C1Submitted PHI2 FD1S3AX D C1Submitted_s_0 175.089 167.920 +============================================================================================ + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 1.000 + - Setup time: 0.472 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 0.528 + + - Propagation time: 2.917 + - Clock delay at starting point: 0.000 (ideal) + = Slack (critical) : -2.389 + + Number of logic level(s): 2 + Starting point: CmdSubmitted / Q + Ending point: UFMCLK_0io / SP + The start point is clocked by PHI2 [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK + The end point is clocked by RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin SCLK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +----------------------------------------------------------------------------------- +CmdSubmitted FD1S3AX Q Out 1.148 1.148 r - +CmdSubmitted Net - - - - 4 +PHI2r3_RNITCN41 ORCALUT4 A In 0.000 1.148 r - +PHI2r3_RNITCN41 ORCALUT4 Z Out 1.153 2.301 r - +N_141_i Net - - - - 3 +UFMCLK_0io_RNO_0 ORCALUT4 A In 0.000 2.301 r - +UFMCLK_0io_RNO_0 ORCALUT4 Z Out 0.617 2.917 r - +i2_i Net - - - - 1 +UFMCLK_0io OFS1P3DX SP In 0.000 2.917 r - +=================================================================================== + + +Path information for path number 2: + Requested Period: 1.000 + - Setup time: -0.089 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 1.089 + + - Propagation time: 2.917 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : -1.829 + + Number of logic level(s): 2 + Starting point: CmdSubmitted / Q + Ending point: nUFMCS / D + The start point is clocked by PHI2 [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK + The end point is clocked by RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +----------------------------------------------------------------------------------- +CmdSubmitted FD1S3AX Q Out 1.148 1.148 r - +CmdSubmitted Net - - - - 4 +PHI2r3_RNITCN41 ORCALUT4 A In 0.000 1.148 r - +PHI2r3_RNITCN41 ORCALUT4 Z Out 1.153 2.301 r - +N_141_i Net - - - - 3 +nUFMCS_s_0_N_5_i ORCALUT4 A In 0.000 2.301 r - +nUFMCS_s_0_N_5_i ORCALUT4 Z Out 0.617 2.917 r - +nUFMCS_s_0_N_5_i Net - - - - 1 +nUFMCS FD1S3AY D In 0.000 2.917 r - +=================================================================================== + + +Path information for path number 3: + Requested Period: 1.000 + - Setup time: -0.462 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 1.462 + + - Propagation time: 3.214 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : -1.751 + + Number of logic level(s): 2 + Starting point: CmdSubmitted / Q + Ending point: UFMSDI / D + The start point is clocked by PHI2 [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK + The end point is clocked by RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +---------------------------------------------------------------------------------- +CmdSubmitted FD1S3AX Q Out 1.148 1.148 r - +CmdSubmitted Net - - - - 4 +PHI2r3_RNITCN41 ORCALUT4 A In 0.000 1.148 r - +PHI2r3_RNITCN41 ORCALUT4 Z Out 1.153 2.301 r - +N_141_i Net - - - - 3 +UFMSDI_RNO PFUMX C0 In 0.000 2.301 r - +UFMSDI_RNO PFUMX Z Out 0.913 3.214 r - +UFMSDI_RNO Net - - - - 1 +UFMSDI FD1S3AX D In 0.000 3.214 r - +================================================================================== + + + + +==================================== +Detailed Report for Clock: RCLK +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +---------------------------------------------------------------------------------- +Ready_fast RCLK FD1S3AX Q Ready_fast 1.256 -0.784 +LEDEN RCLK FD1P3AX Q LEDEN 1.108 -0.636 +n8MEGEN RCLK FD1P3AX Q n8MEGEN 1.044 -0.572 +FS[12] RCLK FD1S3AX Q FS[12] 1.108 8.400 +FS[13] RCLK FD1S3AX Q FS[13] 1.108 8.400 +FS[14] RCLK FD1S3AX Q FS[14] 1.108 8.400 +FS[17] RCLK FD1S3AX Q FS[17] 1.108 8.400 +FS[16] RCLK FD1S3AX Q FS[16] 1.148 9.377 +FS[15] RCLK FD1S3AX Q FS[15] 1.108 9.417 +InitReady RCLK FD1S3AX Q InitReady 1.268 9.849 +================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------ +RBA_0io[0] RCLK OFS1P3DX D RBAd_0[0] 1.089 -0.784 +RBA_0io[1] RCLK OFS1P3DX D RBAd_0[1] 1.089 -0.784 +RowA[0] RCLK FD1S3AX D RowAd_0[0] 1.089 -0.784 +RowA[1] RCLK FD1S3AX D RowAd_0[1] 1.089 -0.784 +RowA[2] RCLK FD1S3AX D RowAd_0[2] 1.089 -0.784 +RowA[3] RCLK FD1S3AX D RowAd_0[3] 1.089 -0.784 +RowA[4] RCLK FD1S3AX D RowAd_0[4] 1.089 -0.784 +RowA[5] RCLK FD1S3AX D RowAd_0[5] 1.089 -0.784 +RowA[6] RCLK FD1S3AX D RowAd_0[6] 1.089 -0.784 +RowA[7] RCLK FD1S3AX D RowAd_0[7] 1.089 -0.784 +==================================================================================== + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 1.000 + - Setup time: -0.089 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 1.089 + + - Propagation time: 1.873 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : -0.784 + + Number of logic level(s): 1 + Starting point: Ready_fast / Q + Ending point: RBA_0io[0] / D + The start point is clocked by RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin CK + The end point is clocked by nCRAS [falling] (rise=0.000 fall=175.000 period=350.000) on pin SCLK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +--------------------------------------------------------------------------------- +Ready_fast FD1S3AX Q Out 1.256 1.256 r - +Ready_fast Net - - - - 14 +RBAd[0] ORCALUT4 B In 0.000 1.256 r - +RBAd[0] ORCALUT4 Z Out 0.617 1.873 r - +RBAd_0[0] Net - - - - 1 +RBA_0io[0] OFS1P3DX D In 0.000 1.873 r - +================================================================================= + + +Path information for path number 2: + Requested Period: 1.000 + - Setup time: -0.089 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 1.089 + + - Propagation time: 1.873 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : -0.784 + + Number of logic level(s): 1 + Starting point: Ready_fast / Q + Ending point: RowA[9] / D + The start point is clocked by RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin CK + The end point is clocked by nCRAS [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +--------------------------------------------------------------------------------- +Ready_fast FD1S3AX Q Out 1.256 1.256 r - +Ready_fast Net - - - - 14 +RowAd[9] ORCALUT4 B In 0.000 1.256 r - +RowAd[9] ORCALUT4 Z Out 0.617 1.873 f - +RowAd_0[9] Net - - - - 1 +RowA[9] FD1S3AX D In 0.000 1.873 f - +================================================================================= + + +Path information for path number 3: + Requested Period: 1.000 + - Setup time: -0.089 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 1.089 + + - Propagation time: 1.873 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : -0.784 + + Number of logic level(s): 1 + Starting point: Ready_fast / Q + Ending point: RowA[8] / D + The start point is clocked by RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin CK + The end point is clocked by nCRAS [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +--------------------------------------------------------------------------------- +Ready_fast FD1S3AX Q Out 1.256 1.256 r - +Ready_fast Net - - - - 14 +RowAd[8] ORCALUT4 B In 0.000 1.256 r - +RowAd[8] ORCALUT4 Z Out 0.617 1.873 r - +RowAd_0[8] Net - - - - 1 +RowA[8] FD1S3AX D In 0.000 1.873 r - +================================================================================= + + + + +==================================== +Detailed Report for Clock: nCRAS +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +-------------------------------------------------------------------------- +CBR nCRAS FD1S3AX Q CBR 1.204 -1.821 +FWEr nCRAS FD1S3AX Q FWEr 1.148 -1.765 +========================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +---------------------------------------------------------------------------------------- +nRCAS_0io nCRAS OFS1P3BX D N_179_i 1.089 -1.821 +nRWE_0io nCRAS OFS1P3BX D N_180_i 1.089 -1.821 +nRCS_0io nCRAS OFS1P3BX D N_27_i 1.089 -1.765 +nRowColSel nCRAS FD1S3IX D nRowColSel_0_0 1.089 -1.749 +RCKEEN nCRAS FD1S3AX D RCKEEN_8 1.089 -1.693 +======================================================================================== + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 1.000 + - Setup time: -0.089 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 1.089 + + - Propagation time: 2.909 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : -1.821 + + Number of logic level(s): 2 + Starting point: CBR / Q + Ending point: nRCAS_0io / D + The start point is clocked by nCRAS [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK + The end point is clocked by RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin SCLK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +---------------------------------------------------------------------------------------- +CBR FD1S3AX Q Out 1.204 1.204 r - +CBR Net - - - - 7 +nRCAS_0_sqmuxa_1_0_a3 ORCALUT4 A In 0.000 1.204 r - +nRCAS_0_sqmuxa_1_0_a3 ORCALUT4 Z Out 1.089 2.293 r - +nRCAS_0_sqmuxa_1 Net - - - - 2 +nRCAS_0io_RNO ORCALUT4 B In 0.000 2.293 r - +nRCAS_0io_RNO ORCALUT4 Z Out 0.617 2.909 f - +N_179_i Net - - - - 1 +nRCAS_0io OFS1P3BX D In 0.000 2.909 f - +======================================================================================== + + +Path information for path number 2: + Requested Period: 1.000 + - Setup time: -0.089 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 1.089 + + - Propagation time: 2.909 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : -1.821 + + Number of logic level(s): 2 + Starting point: CBR / Q + Ending point: nRWE_0io / D + The start point is clocked by nCRAS [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK + The end point is clocked by RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin SCLK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +---------------------------------------------------------------------------------------- +CBR FD1S3AX Q Out 1.204 1.204 r - +CBR Net - - - - 7 +nRCAS_0_sqmuxa_1_0_a3 ORCALUT4 A In 0.000 1.204 r - +nRCAS_0_sqmuxa_1_0_a3 ORCALUT4 Z Out 1.089 2.293 r - +nRCAS_0_sqmuxa_1 Net - - - - 2 +nRWE_0io_RNO ORCALUT4 A In 0.000 2.293 r - +nRWE_0io_RNO ORCALUT4 Z Out 0.617 2.909 r - +N_180_i Net - - - - 1 +nRWE_0io OFS1P3BX D In 0.000 2.909 r - +======================================================================================== + + +Path information for path number 3: + Requested Period: 1.000 + - Setup time: -0.089 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 1.089 + + - Propagation time: 2.853 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : -1.765 + + Number of logic level(s): 2 + Starting point: FWEr / Q + Ending point: nRCAS_0io / D + The start point is clocked by nCRAS [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK + The end point is clocked by RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin SCLK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------------- +FWEr FD1S3AX Q Out 1.148 1.148 r - +FWEr Net - - - - 4 +nRCAS_r_i_a3_1_1_tz ORCALUT4 D In 0.000 1.148 r - +nRCAS_r_i_a3_1_1_tz ORCALUT4 Z Out 1.089 2.237 r - +N_27_i_1 Net - - - - 2 +nRCAS_0io_RNO ORCALUT4 A In 0.000 2.237 r - +nRCAS_0io_RNO ORCALUT4 Z Out 0.617 2.853 f - +N_179_i Net - - - - 1 +nRCAS_0io OFS1P3BX D In 0.000 2.853 f - +====================================================================================== + + + +##### END OF TIMING REPORT #####] + +Timing exceptions that could not be applied + +Finished final timing analysis (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 182MB peak: 184MB) + + +Finished timing report (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 182MB peak: 184MB) + +--------------------------------------- +Resource Usage Report +Part: lcmxo2_640hc-4 + +Register bits: 90 of 640 (14%) +PIC Latch: 0 +I/O cells: 67 + + +Details: +BB: 8 +CCU2D: 10 +FD1P3AX: 11 +FD1S3AX: 49 +FD1S3AY: 1 +FD1S3IX: 3 +GSR: 1 +IB: 26 +IFS1P3DX: 9 +INV: 7 +OB: 33 +OFS1P3BX: 4 +OFS1P3DX: 12 +OFS1P3JX: 1 +ORCALUT4: 135 +PFUMX: 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: 67MB peak: 184MB) + +Process took 0h:00m:02s realtime, 0h:00m:02s cputime +# Tue Aug 15 23:12:47 2023 + +###########################################################] diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.srm b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.srm new file mode 100644 index 0000000000000000000000000000000000000000..33a15e2b3c8940c428801e37843c0d766a5e4b2a GIT binary patch literal 30417 zcmV)OK(@ahiwFP!000003sO~8RVXORFG)=-WZL)n*Ho5%Q~1)4tc2jWO(fEELN3So7Hlxq4ce2Ok0sEU;y_riGn@NAfGZL%PtcaeU(2G7rFaFU#i`0wP zw)~>TH>MT#`i+b4jp*f7Zd0~+mG7QeF!%npD4P+t$E2AW*Jh1htKsB()JVR^UKjL^ zJL-pc(_^Jc^ zy7^(509H4c)E*;vt)J7yTV0(zJgST5_C!GcFpo7AIMcspOvhx$Z) z98T2X^5PZF^i{ozc=|~=o zbg1?3UA+e1{}lu=DASO$UAx!q1wius1w1}qz;al7)g9{wq#w+Uv*)>%6oWNO<|2Xm zt!FdKw9oihx3On8jqD!VX45}s0|#PhRP*${4)?Wxxe&njU@SR3{`BzP=JR=jMBZ?* zd;?rx{Jsrpf9l3IF(HwK#L;FJqg-`I<#S`-?B1DWn_WKk)=1Zje?QTWT4QsMJ($k^ zl$;p!rd(U{TWc3ve%tVJk@3s#x8uG$1=}o?H;e7C+wYk-oNvBv$K>#$wl9v!!NTX} z`Q})%;oAXKiJ8MEAHG+#sgj?=hW<#FlX-qqCEH>>J3ce5MmM9W=4mGT1)rmZ&oz=cS=8cl zs%h_aV*)Q4UU_|eG=V-+pf#$y0sQN`6@X1|fKdxrU@^##8+_cz#*K8`;p1VKKLhR~ z)-tRX3n*h&uwIJ?zRv-DzK9+cZ(hJUO;?6kw`R%uJKgxll!XeBV8ic}*)wPGXDmz5 zsmX=wgEZA$nrhszX2^S#@NS?yXiY0vBLSZE}SnWFD4>kowA_Y26 z^e4Fxvl5!>mZqB0Y$S4tP%cJ|rh20FaqK=_$EyJPVVtfbX@&fAm(Th;^u~_#V#4G_ zg9+EE#&d9=WwdP^&^gD9#;!ges1iHIE_O;J1eERPo0 zHbjMz%FuOub!~3HLSisu@tp)FOmw1eG z9*F9$tanc9F49y}nkRL)&)3RJ?9@y2?jx92gl#w;@$o1dkKSQk7>VL%lA}XJ>wrPo$})G=+2^;5rc9Lo4HP9Drl? zB+yCLRM~YY8XV}CHTmQuwbNeXr*U*Md7Kh5f&g_&2Nt=7G;sG=5aG)IX zEm!JuoBQh8Av@-K;2eD$9kg28f+fme(WXE7^Q~_n*%Gq`gI@nEc}D2Af6|5SavJ!o z*zGIMxEFd-iiI545_@+PCJnwNbLO~sTYIsf&HcBHu7n(Kfcs@OXZ7Nxy^$I8;{o)N z3qNb=RLk#!5CpwC2hBD#nNA<-|{(KAXvwG5?4}&uj>NS@_ zdr|vYC=*NLU$fTyd~+n53=*H_7U|~K=f<)j4!KT17{A!tHATDV!63QtGitZAJicGU z7;a|(Z4H*$_!zq5am+v9pWxgEKcQEP^^g{<59(L4rWfz$-}L2qZItMprP!9moZbzX zajsSf?m4r$fBZI^drocc zA9qC9XA=5y`bY?UJ@L~_V~tKXe}2{vGkEo%G!%;$T0ZXe|am#AS}#q`T`+?_eec+il^<)xR6=byQgD+<65 z*71n-bB*cv`M{ETXZ-=r8S(XJ!J2r9pL47CCvdyj3oPl(jT!%<(;=d|)(tqOkEQV~ zhX|^{PyD=QpTPCDFs_q)Jk96Iw~xtf9_!P5<8UVq;%nv(dKPEO+^l2HMjeZ<|3){4 zD>BUKMqgpmsp2X*-56%N!STktwz(r~#^E!ZCs=hpyeo>YoLJe_4KCa<8K-*8t_C}} zwI7RabFS^-p*;ohG}}|S?|Nu2p~rjx#1zy6{dR(wg#1bFnZ*YE*dd){zj@Ky7x_3f z*-uapFgKQ8n=TA2yi&TU&U76cKlb9WMJT+5!CN*oTewbt%7pDCF2OtELZhiK4zj(v#BK% zU=82R-eZj~Uv~I7IgT|x`11^Fme5Z9f7C4tzF9Vt`h(tpoTc`y)1QUwc-v3?%-SUN zVI+l}aR~1_@t}jx6!l@QW>fBuTyqceR!iryt5-7)6F`6B_bQDIa&~|^H9@~C^IcXC zfc6?K@8CiozHa=Jp6Oc3z%g?^%LWI&NXM*LaxF63J|pi3p%0Z|;nfWc_H?c=FO;w8 zi26uG4!mq!*hiwpz7g(i#r|+L_?3%IwEqGg4VT7_&bXK&7Of>2>hNeyVQ9f-fA6|Z zx(0lYfswaKm5=C1@CNNB<-yo zkKJm<`#jppV=JH~>HwqQWF8G^s#L5FfbmFp1qACJMg*JsPnKWP?xCfJW`(dJVVm^aO zC#g@hsD--B<>0Uzll#~bLmdK1o(D}b@<#I=zm0{+!NkMwV_gGv-BG0*%Vd1FR}w6o z%g`K=V5HBzqPol|2u9*{8E$U^bs3~td3`dUw{EozT3lxw1^i~AIwQe4<6NZ9h&09O zj1G)@Aek>P(O&e)CQet(c$zZvxaW6=!F>xNqt&8X5kCeCg!vJzo2E3&)J@;lM=>`6 zp&v#*Wc3f>y!$R~YT?Cc(|qkU!<$yGeFX)3vDfK%!h5kS3+=^7Q*7?6SBCgHOol& zrD<;RJ{Rkh?1|C1zG$hwXgfVI8Lt{W%jO5E-Rd!vwM+1@Da6TMMIGT7-0W3A{A|3SSj-Xkf< zKhiA2e}ZpZUr*Zc4z|(HV_UO?@5lGUriee#EaCed?t#Sd$ij<{NBjF^BtyRcDZeKs zIfPJa$)EKv5BQNmiC$8y>5KT0foLyjWqxFVZVC98>wZ*v)W=Nxp^mVOMk2m;O0$ek zz1N*AW(w~?&hX$PITnrkV_N2qX{Yl#auS=!Cw=pP$z}2fLViX{^NV!rL@dJh9^-Hv zvhqvVktY&!rZmgMA!!alu-81nl~(8{JiW&j?bFzj=y=6goYMR(7CT)((P3ZP%S~?f zu8_9;FSftpeC|p(pDWb=o8)s>$Mdau4~eo1T9D9c?fE`KW9N1Vmgmn4di@ z8=|H(Ps*m6TwFQdAeR%{_y#mM?Emwygoyh8*heGc|0gtmU#xQ|W-c2qY+@$-#0b{C z?nea~C_<;Ua}8NP6g?SU+$cL_~F zxutU@VMMljUwL~i-Y1fpQjpY?xct-oU$mx#>lOqosh5Rbi=6&mflhWbDk|G1$a5i` zM4DxE@?cI%4mHg0mCQ*M;pF}qATBosjz0nB8D;8tdoq_lB6Au=!umV{BBaj=&64_T z~0`{mt!0;7U{0@-5$1glE@Po$})G=Gbag=aBP9yIltP==Z)b{vlZ zlN?RUIFf%20$CV0MDwo+&9Cvl%J^9ue@f$)bJ`CbjjGPMCp3Sb9CmW<>%3%9OyWUM z;=HCj5{XGXH4r!MG%$SxH=y z`p)^dB=eJKHGUEWnTp#vIekVOX{ssBO6@%Jhd7R-Txd1EP#SBm{d4TCmQ3e{NtUhj z*w~RnZq)N;FdvP)12w0WsC|g$%2S%+_OZ_Y=I!H1?zadh^SNK`)45-QduW+=KM3p{ zNK^FP57p#Lj^ifUUM?SZ09Op*9Gs}{n9%%vJq(+7qqMlkaA=RHV@+AGZ%wq{GNoC4 zZ7knwb5M6H_Jb4M{W3rJW4gQXgAcr;WQFhU@Jq-cI9;PanyUX5a@fgjc3Kb#$I1B| z8~-LtdIFB@0egE9o2~PyczPCj!Sf|Il4IIqn+EKi7AViv^w0P}O$ ze(>E~tI=pB+5`rzzThmCF-G@A9fu^bBdZ&s46LNb`&OItt>1Y)|7ceHJIY z!e@OFa#}_Ksa{3_`4SnG=>-#z5#5!Mc34IuaXpgBlbDP~zfX_$&eLf}^r6Z3Ch`5j z4@7uHn!i;as<5S;zqH@qaxBN%gjKWZ9BWfeY5rGZjoco6s>hw%zj%+k=zDNE&EKj+ zC$Iz0aYiR_Bcim#dr-yB+agU-Ic)meB4c~T`{OnF(a1Hb^{Y~vW&HiqHB}=j=Q|f+ zApcjj{vypXXR|(X{$$54Klz^GIn3wcG3@*_jv-AorCI7d#km~lhj{U@4(fT8#^Xp+ zO=$|nP36E@#?84dq5i^xo;8gM z_X&#D;}V*JIh0Lp(I{J66szY^vdO;|_nZ*l7w6v>>p4N1mDD4>Q1f={k%xTf-1(Z2 zdIjf$kDO8YNY7l6AL26(NaDSLLg$@QnxFGSgwN2?T{)k4Z+B=^bKX2!aVJnXhV{kX z$4G#rE1PZ4^q#$6ZT*&QKXP90E5HG{%udcQ%MWn^>c4A()vLZ9y&ust_i^u8E9^o7rNwNNiBs6j^2)03$GI0xAi zI>UrC%lMC_&#>pPDd+Qi<~NAAo>7@5vcdngfOYs*!dT!3d>yvE4S78B@cmNT9<3Q0 zOW`!`yIsbazTC$8k`%jtItrZntwi+?A~oV!k-q*rnm6Z99r;PV45$}el1u+7^6As1 zJd(*OqO!JX8v1{>zcDAx#tg2nli1V*^(t0O4r#sQUEg{XpneDGdsqX+#Psio;COlu zB{-h^J)uLyO#1NrhX1!Y&wY}-i`RzrZ&5r%`6PRqOfHEb%k#_TNM1!Fty5n$ z^WzDaoI04HchITCZmKcUiKd)OuuQ8k8JVEb}oAT<3Yt^_F=p3Iv0E~@){oR zH3kjG?y=gSKYKv}9*cwLgP>A7_6}b$r(Wm%!E|9CGg@KZt3$Wv*v##d3YEVI;^*vr6_3J(7#2z*JEPKYW>#r7lr+1;+Yj&pX#`xlF;Gve)ICi2f`?sTwt?$r%OjN>@{{AAGPuj-y% zVSixX2fTgqyy3Xa`=jzoFe?6_48M0UbJOqWub9OyKhQsqE62x`Kk;{z2qC}kvICr_ zKX44g>vsg_wDRZipE!@Qt#G|97uss-3C_iz*d9J7s0i?P2d|iGdo$Ut#axRe&HSCv zrkuNl%k9OPZQJeufYBTL@kqAcZ0yzTKV~c+_u0Z840`=Xd%Q7 zkl*H9#KF73I*@&K*rDsy8?M)I8r*K5je7mM+TWh@s@LFkk2P$8-$i^4T;A`wuRQpL z*KRnhBGP^1xxDwX*S8mKZcpnlsRNt!YA5~0;E~sv)k%TJMx%x8@p@g3Zwkz^n0b2z z9w2Iu5R!724)a8s>Caa7bGAng`)9qESsx`w^bXJZ)0fA=A z@@UbwshhTk-ygl?p1S}ra1;j~$_|^hSHE|ly#*iH^^up)4Yqg20UY*1j)&FjlH1SN zVUPD;)&W=?#7g}F$hbZ0UohJ({{F1d^BO=hYyGo%dob$HlpHyGiQS!fBWAaY&puxO zwLf1B_F$(1jQVSR^h%ZL zi$$Xa64aJh!@gSZo9o`7--3befml|b-@f1*d0K74W3p*SN!d;7Njb})GBwVheJ@4h{J8`8JrZGE)op4eXft@E~b0^gas1G_PM`__9gc;0_S z4nNrkZP0=Sy-&`G_11jb8`KBz-L~h>`t9&7G(*W-kT!9ac3u0^r-R_&%yDf{jqK;YHl0srje{36@9dN3 zBHzQD%ohB@c5L@-(O%e+%RfD;i`l1xsncuJKP~D9gOT^h_AWlr_aDV4VI82}Xnk67 z<$?8S^l8yQ=#Lg{l)ZbOfFee{v(X-39P~de+EdpVFFpcP{QC^_aF8`KI$|-6h!Gn`fO~zw4oA=Vzy>@`4`wVRfe7GVAAdJxhmOM=GvraP zKIl=K!Lkb3AMfyaeTMSQP4#O0Zja;ldV_;Uj6|WI%dNW07ar{H+Vga*mrZWXZ+?^Z z0DosWz1fH!@>#vMm>si<^NaaQ?3d9v%~v z;STD(sE0XHFO~Y8)3;ClXYfZu{w$R4iu#z7>0={4kk5c7QPV;aaS@V`@`%Q1$5SIj*qymtUaWfQF$N#PE)}rJtKu zR9Ht$znY&@e2@C9aM*9qq$cm6GtuRuZC^AE$2#T z<`MR9!44b!9$&bbjR(Ig?RQ`Gn`o2-rlvvrQ;@^vl_pw8tba9a$hOsIW&Q5gTGQjk zR=@kTX+z9F zMgW>gE!4tDa878b!GA%-i3Vu)IR%uHn%V=nhfg@Ds-P#bMnhs0_p1wf=5(|`g=1!n zQjDXm1f;dFrz!t{TC>-7`2`0wqudcrn^Tg0w|_WV^cr59Ig47&aRI{@t8tImfVEE~ zZk27=AF-3c|JV)L{}IdW$8^t)4pDB@9x<@VEVRj;Ul>d*;(-P*v!-vEt`7F3wAsoq zpy#^&22X@v#1n=VQU5FPM0f{JsBz=IZ~t+E;~3E}wc$r6tp7it8pxla|7$ikt_7~0 z%W7!17xr?j#byZeE8ObxoSnPNYT3Nv=TfdY3~f0N=`b*Hx-JH8Vt4Tijy(ATtoBWWK(U(POis5khCEuFTmkXJ{DN%Rx+ z8fPB6sQdY|WcRb-ea{BFpEd4#Hs1ZLw&U4+&4QQ)#EcD?U(3~-I&-ZuPS$~w6>lK_ zIgZ=tz4BPCMoTe~@1Fo^A2BDSPwG;)K9ubr{5->emErNHfc)BqdUNU@^i z0O)dU8251jBgGX&4c&dwT@Ba&Z#H{1X4{}dtoI6_iA4dhw9j$ThNZQiU*QDl0 z?qNgDCkd!w8kVVl(5uk?hicirvT7fyIp2aE<#>%(Jprq>sRzI=Zm9NSY(IcMv8m~% zd+t`5etf>&K5(U8JKt`fKBRpDs{*==uH==zOJ3>8=ish@>o5pS;JXlUow!Y=gU(UL zYw&KXnPCt2kkfFTSIq0xj_EFarjPoJK|zm%e_<^m{igN$9qh%|$2afF)}i(8_02tV z0*mRJASbB#T5sLxmmnfu-<0w&yz6o&U-r`pCXz1$>T2e#wY+KGGI!a$u}a5(bG!Vk zy`9f7P606u)EBW0cKHF{by@ka%^%C!?G5bzn$oMljB;Or*;nf^anD%dbSyEw)y!q< zra4@)+nZstRW_E}=JKX>JS-cFxSOY9&|FMB)FHBs+d0E`&C4(eV{O)2^HTlp1oS(! z)8M(2P1}QcCsHQck9eD1*tPn?v5_C#6X`pLXIJ}u<&(YR8GZd3{hntoPgu3mg1J6f z*L4bgb4w9#@G2+teSp#{9*SyeskIUM)#}!M|$jL>x2F}wC`bke)H%0 z4Xu9k@w=AGX3Mt31+P>7>x7P75%`$GX8a1d*MOb7mQ4J zT=sqZ9NV9`j2{z_gPtq*W5Wd{9`@se)p(8gvJITGL6h@}1M}i;&5K){moruay!Pa{ z>W7Z>;m}7c|2z7lKorS&0$Cv6?^9p3jr+mnc0=w5UYk(v`;L?kE^Bd4ox=Na8_3Pp z7wi(-ZeK7Uq5831lVe)f_vGI%Y_HMI&L>c(aY6s0T-2Sid7^qEK;uT;(w(#4^s0aJ zadK$o??g-?mgWA;=BCZ<3s}dq9`GZ!iMptIpZfcjZhGPVer#D=>+n0w^Rb0`yNmWc zuMFgS>Vu0^uELl{&%MlFy8ihf_x-pmx4WQS^_l$pHLJa=4apbJVeWHrnKP)b*4K6A zzWv+#E%9e<<4^6&hvF~mU&;4#+{@ox9Mmy zr5xmz@x$gE%D-RK@eIe_>Yvm@H|G4(Wz|88|0C~2o9v%x7diBp4`e$R^$TUog4OFi zSGX&F?hg94`h0Map8wj9+=lurv+MLso_-NVfO|6CbYm|7deCmv zqz?nze+ch+wX@!F@8Nrvvx$5+=o%h>Wh3uOyNFO`RN~_W>RhJjYw#afr~C0c^LjWY zOfXYiR&TAz@9){W>mk$G@aFf5Wu5;1rejsC2R(OrJ(tgYtV~*`AK!E)Aan11?)p8u zz1HP(*Zfu=zMnKJx2M;-)%o30eh}p^!EyhxV88fTi~C?FUB~7-HY8&qOlDo)R@vnJ zN7mG@Z*&;M$0lzM;e*O)^LJg2W6P#tm4)=tnSoCNlluE+NcGsXsvoKokYdGlhivk@ zY!_tYLMME(947iHtt3eYaIqk#`kPKdnhTVBa@^P+DE!!V81GZ_gKkxMb>dSt*8IqT z88IRj1acmR@7d(~cR3HbNGR_MhtKs%rE{7LMf2)t$i`G7#0Ps7BS+Yq%4vrWo6gY{ zSXASAvAw@ECe*t|P44M!KDiw>^;5r+SRL2mNppbjvR3-SMKWU2Ml0D@=ucYXtv3(< zuC#$uF1~17I8t8RIgf&k%}c>xupOO)?uZ4W6wQ(;fRci%kdyO|$0<+uw^o{KCpJ=>=+3StJKZ|<8k)~nWs zsz2e(gw?oZm)3h&n%{>oifjGmoGq*Rf=^E8m1Nm*&j(cwICz78IPMJiz3Us0&<7hW zFam=>+wZ%Vu)cFWd4G8u5H7@sumy8w%?a0szgxc>f?gdZu*RNlx5s;IXiyTtjE8X; z2dAvkz3MdS_=pVyO2WeD*1Tg0h073e8ON*z?X*5lWPj1N<)DO3f1SM;du(3pSA`ve zWyz*z4L)tS0~sS>J$uZ$@ZZzqY3;sw3&x>==M9<>5X8Xn{bg5YbL%#_d~XC?FpZ36 z3x_GJa6T0kE>88NWAB04LdQecOpzJTz+ljw&S_U)Bu%2m18)t8VK58E;|xKM&*mnk zM1whyV}Lnm@lI0!ruvk~JxbyrjMcNaZ;J0{T#SSHs^7;#`kQ+&180M&3+8v9J+3`# zJ!a1=_^{W#{L`@Hi)So3;)I-2-O)YX z-V?v_`plcY;GWlB`S`33XGV;lQ?%RF=ff6|kJDJ;E-udR8!(6h4Y3i; zVJK1XpgHNXXZ!ofQwuO6@em^RXlSBW^D;;|amlW4+0Ac~-_dsGt)b*a+#}15^d;c> z^RZw1Gt(;zVZr@9PfIj3CI)`D6hlYTD6B-B1hhd#s9XjEGLpdYkVHkr@ ziHrbw;Z31!7LMn6zm5Y|87~<1BOiSm*v=+4L84QM&CJ&!`*$jk2h+dTZI{4)^RUlh z02_&zuw0?!soRe9_0X{aYZw5nt$t_m&V;hS7ze{Zm@%QDL1-mlr&g;YZE^_FWW1Bk$5w%hH`a1q>`Uobk}gxYiU=M=lygZH{>XmYOzx4h zhF4d5i`-iU{vQTmhxhQ@-x>NH2O7{JxjX#tG-ilZ{J-ubnJ%gi`*Z;g=)WszTH} z?(I0;+aWat*}1p7wP*XaMDp60Xd-~UsQHHQFa34dRt#^SKvsfc@08Amt>h+nG(<&6CE=X)qWH9m2|Jei#JN9rJJC{A+b3MPH-==4keAJfuNB6pm{m$(2RBy=audl7AmFZ#y{}5tY`fE_1oOf1! zBRt!#B&j~TX$Oxs>{0pMHxK)+v$6#*9Iqi`$#b~}A{V$Q+y`bok4-%9!gI``Za=5X z=Jju3OO8Wl=PieeKG+K|j#i61?f`$jK5cfa-@!CGZC<(`I?}HLI%cH>{GMX?_4$?F z5~oL%kDaET`m-)ZO|Zdbf77^juMn#}O3&!oAKuxB!2o)+c#i*owb?wg3vg|l?4w@t zySNgRo!OnY3g;T$z)5WkJipK4&gGd|@678J;@PEt{=(&hI>2J;HR=|tT~4Y=?z`!!YGG3|YKTF&7TT4_{0d{gKX|wEEmRxtgAdhiXSQaiDSw^P z)g>YUnQuhk|LO=i(*=am!PQZ-a(a#SKm6b7 zTz<&?C7^S*kY8UTzn<$?6?$|EHa_B4?yJkD^x2Patvr`IDqek*#V!BQl=wt{O@5a8 zP}{UVVtXT(_sYu(<5p@VutCaxAR#xU=GMXOqWQeCGiw*|c7( zT9?W3WS#3qkN9&NbUUZk2J#rxiX5A9UA@=XvoBZ;<=__2Vjcq<*iX_k!6zzCs;zjo z{m22Enn;|T0M6P|*W-)5g=1gT;f0E;rVIBBb{ltJv~8BfkUG8oS${FQ=(FkQ39Pp> z?Vp^%+DSfs!BFTrCvKxZpl2!Gy2ClhmG`&D)pU#_`-KgA;Dq-u|K&vXp$&a#xP5qk zW2WLIHqSNDe~ES$qEhl@ydUf4xs2rjTRPX5=I`0^x=BOUO6@nmE&2qdt=?*N9GD~d zbEkPN{j|t^%3oLE&S}SLN&W5obw|eF6nvl;%|cwp78i|jE*fod(S!7xG)4qt2fVZ1 zMNm(59^mP%-^Fznl$|rfSaU2CdE8m!ac7Oki+qRqDD}paUDm8>Etza`-KhTDv)ioZ z3>J2yz@s_W?bRDS*c(z$+2q+iuTSm8fLTvm>q!=?xfv5fRxvRrZhzX|^A`MKVLNuc zu~1xfHgy*q*uZw%FOFH5e&+Oh7yS`T&y=;E=*WxH@a*ac`54-I0T}N0PZ};8oJqXR z*|7T_V^MC?SdCw-VbwI)P3_ahcDMDgMv;OJXEI)e(IFp zu1*=;ty2cyx=v{nbV}oMbV}o=PWcV%l*XMprSZ+{lyO0)j32I3#y@q+Z&{~|@6svb zZ(pa>3Oc3sFr8BSsZ)OAI;FN#r_{clP8m_meZp+I{WOnnykL>9(aqS0HC*EN!~y`< zue9EEu7?A{*K|r9bV`2tVNjIaS=)0OX?RBI2T{O^_-uVf%)(t*#+Y_?`9bn4#zXxJ z{E9y4#co|xzx?Ba#4@Z-{a?f~#>+mrQ{UVrr!SWPpo|lXF<(k2G$Wt-W+ZveGrO+# zD78~??PEN^^P`n+I9%z5-5cg{_YulrQINx8Qx416Pd>=`uKT*%KY9XI8wNg^-TUo+|UAU=mT*> zf8yrb!VUfUxVh7pyaPAnCvLti+>o!2o3MbJ@PW7qf8yrb!cF+~aT6496Fd+%!B5T;{lv|;g&XZNa1)J*kTLFQTz-Cj*Uhlu-Y}h?S4G9?pH5mGE~wAP4jYOzo?piN zZk*+zZwO;DuUBU#Y0k{U&rFohY_vA-U+WyNSWlwNzfp3IqUzi_TR8r@XM5O>UFXeW z*LgGf4F6wQU51U?Ad7&FV*=nP`jqptj&ABx#(El}nfjD@XF{9+bBKn;=SqFd*99Ll zwt+Fq-xIE~eE!XIRI%$UM9wMu!&^8E&|?2<=X0_jPj;Pmkh@|JmQ4WsU3E=1eailr z$egS@Imv3~oWzOdV6Io_8-W0wm-+s^*ufe@D9auiTad5AXmcIDR=mrq?$P?Wk|>Qg z(4F*L#MwR<`KmE6I(uS0x%{vzrhwda7Ms+Tm$l~Zx;~q=K*kFOQb{Nbl=6|uQwxlM_@(i6mSgn;8d9>KvhEphUmnjX3wA5 zx4Q`!BFzCNz8079mW=b%x8gi?-c4kl(PzXj>Hl*4QeN+|Jbp?4CgPX$Rs7PHejR?^ zS?R7bcUA91#=IepWXzi|WGqLbcdxL{rOY+gh~y*8RV;~pLk#3+r`-<7!#2NS^l0o4 zfv`v{^)BSBqV2Dj#KPgT*}3ay#0~5JYTR(QrYF1XeTDUJB5qhuc5_o$67xnM##e>7 zAbl+^$j7)KUt)>s3C(dtcH@Yqbx|ZI!Ov~XtIaS($}qI)Khj@!Bz`_8Z%nrFFUr59 zrcTTW;9uG_SaWaXrK0bDKEI^{DF>*5;{WEM$%)@o+5t+q#s* zk|@X0k7mDZ_=s{0Wi`9dE-La92dm`-`}VtQrnUK?Z+l+dT@1M0sN2k}xxd#eE7uEP zE?^)aBh9qVAj(O?#;FcokcBO_q)9XU|1v*2^iJM3ue_eD@#eAhRpV`6S0+1r8J}k>f~efhrtBa1*ugh-!*4F#LrNuPqI;8)=_msu338mHqQ?`#WSmo|MQ;u_iOs{gqBx{puoKPh1br!QHu; zu5pd}MVY#=!9YRW0vAbNEg6T@3}Z@yI9QjPN$#s1f@TLYGq1HZ24k4wH8CKMgP5$z z%g*U*`MtrA=h!3E2w@kboS4=gdwn`t^L1EX)93$s#3noRw$C~bxMek2zdqalP7l7% z`lIkiJs&8mzyDBs!~^*?*mHRu5Qz4LW&UnuGMe~A!)v4{i;Mi&9A^C3%>1YZCu1{{1dl7B5vbv8@E~!x7q`7s}*sp{lx8$h+FO3#;sq(t^YvW`bFIOKXLmb z;@1DRaT^tJ8$A%WQ4zP%Pu%{9xQ+fP++uu^K@49r)B7e1vArs;9PbO`^)s)5adN?g zQ{i(Kj)%qj)7E0*0GIhQc>b>1&*FOJ{b?RQtG{mi7_q%}P4{Z;z3)0M?iFAQup!5z za$wp6?%3_cNYy*wF9wZ8o7*Z+@ge82n|RFc+P(vi5#R-Dk;g$)%9VIW-RYjpI}SM2 zM4ERT1nTa*jd&!9H^gDFU5o?C?&

    Vv%%K!#(%C=O(|xyaXIi0dwtz)6Ox6d49an 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 M09^EAN;V<_045KMv;Y7A literal 0 HcmV?d00001 diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.srr b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.srr new file mode 100644 index 0000000..f622489 --- /dev/null +++ b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.srr @@ -0,0 +1,964 @@ +#Build: Synplify Pro (R) R-2021.03L-SP1, Build 093R, Aug 10 2021 +#install: C:\lscc\diamond\3.12\synpbase +#OS: Windows 8 6.2 +#Hostname: ZANEPC + +# Tue Aug 15 23:12:41 2023 + +#Implementation: impl1 + + +Copyright (C) 1994-2021 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. +Tool: Synplify Pro (R) +Build: R-2021.03L-SP1 +Install: C:\lscc\diamond\3.12\synpbase +OS: Windows 6.2 + +Hostname: ZANEPC + +Implementation : impl1 +Synopsys HDL Compiler, Version comp202103synp2, Build 093R, Built Aug 10 2021 09:15:36, @ + +@N|Running in 64-bit mode +###########################################################[ + +Copyright (C) 1994-2021 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. +Tool: Synplify Pro (R) +Build: R-2021.03L-SP1 +Install: C:\lscc\diamond\3.12\synpbase +OS: Windows 6.2 + +Hostname: ZANEPC + +Implementation : impl1 +Synopsys Verilog Compiler, Version comp202103synp2, Build 093R, Built Aug 10 2021 09:15:36, @ + +@N|Running in 64-bit mode +@I::"C:\lscc\diamond\3.12\synpbase\lib\lucent\machxo2.v" (library work) +@I::"C:\lscc\diamond\3.12\synpbase\lib\lucent\pmi_def.v" (library work) +@I::"C:\lscc\diamond\3.12\synpbase\lib\vlog\hypermods.v" (library __hyper__lib__) +@I::"C:\lscc\diamond\3.12\synpbase\lib\vlog\umr_capim.v" (library snps_haps) +@I::"C:\lscc\diamond\3.12\synpbase\lib\vlog\scemi_objects.v" (library snps_haps) +@I::"C:\lscc\diamond\3.12\synpbase\lib\vlog\scemi_pipes.svh" (library snps_haps) +@I::"D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\RAM2GS-SPI.v" (library work) +Verilog syntax check successful! + +Compiler output is up to date. No re-compile necessary + +Selecting top level module RAM2GS +@N: CG364 :"D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\RAM2GS-SPI.v":1:7:1:12|Synthesizing module RAM2GS in library work. +Running optimization stage 1 on RAM2GS ....... +Finished optimization stage 1 on RAM2GS (CPU Time 0h:00m:00s, Memory Used current: 93MB peak: 93MB) +Running optimization stage 2 on RAM2GS ....... +Finished optimization stage 2 on RAM2GS (CPU Time 0h:00m:00s, Memory Used current: 93MB peak: 94MB) + +For a summary of runtime and memory usage per design unit, please see file: +========================================================== +@L: D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\LCMXO2-640HC\impl1\synwork\layer0.rt.csv + + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 90MB peak: 91MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Tue Aug 15 23:12:41 2023 + +###########################################################] +###########################################################[ + +Copyright (C) 1994-2021 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. +Tool: Synplify Pro (R) +Build: R-2021.03L-SP1 +Install: C:\lscc\diamond\3.12\synpbase +OS: Windows 6.2 + +Hostname: ZANEPC + +Implementation : impl1 +Synopsys Synopsys Netlist Linker, Version comp202103synp2, Build 093R, Built Aug 10 2021 09:15:36, @ + +@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: 90MB peak: 91MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Tue Aug 15 23:12:41 2023 + +###########################################################] + +For a summary of runtime and memory usage for all design units, please see file: +========================================================== +@L: D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\LCMXO2-640HC\impl1\synwork\RAM2GS_LCMXO2_640HC_impl1_comp.rt.csv + +@END + +At c_hdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 23MB peak: 23MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Tue Aug 15 23:12:41 2023 + +###########################################################] +###########################################################[ + +Copyright (C) 1994-2021 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. +Tool: Synplify Pro (R) +Build: R-2021.03L-SP1 +Install: C:\lscc\diamond\3.12\synpbase +OS: Windows 6.2 + +Hostname: ZANEPC + +Implementation : impl1 +Synopsys Synopsys Netlist Linker, Version comp202103synp2, Build 093R, Built Aug 10 2021 09:15:36, @ + +@N|Running in 64-bit mode +File D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\LCMXO2-640HC\impl1\synwork\RAM2GS_LCMXO2_640HC_impl1_comp.srs changed - recompiling + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 90MB peak: 91MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Tue Aug 15 23:12:42 2023 + +###########################################################] +# Tue Aug 15 23:12:42 2023 + + +Copyright (C) 1994-2021 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. +Tool: Synplify Pro (R) +Build: R-2021.03L-SP1 +Install: C:\lscc\diamond\3.12\synpbase +OS: Windows 6.2 + +Hostname: ZANEPC + +Implementation : impl1 +Synopsys Lattice Technology Pre-mapping, Version map202103lat, Build 070R, Built Oct 6 2021 11:12:38, @ + + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 118MB peak: 118MB) + + +Done reading skeleton netlist (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 121MB peak: 130MB) + +Reading constraint file: D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\RAM2GS.sdc +@L: D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\LCMXO2-640HC\impl1\RAM2GS_LCMXO2_640HC_impl1_scck.rpt +See clock summary report "D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\LCMXO2-640HC\impl1\RAM2GS_LCMXO2_640HC_impl1_scck.rpt" +@N: MF916 |Option synthesis_strategy=base is enabled. +@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: 125MB peak: 130MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 125MB peak: 130MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 138MB peak: 138MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 138MB peak: 140MB) + +@N: FX493 |Applying initial value "0" on instance InitReady. +@W: FX474 |User-specified initial value defined for some sequential elements which can prevent optimum synthesis results from being achieved. +@N: FX493 |Applying initial value "0" on instance Ready. +@N: FX493 |Applying initial value "0" on instance RCKE. +@N: FX493 |Applying initial value "1" on instance nRCAS. +@N: FX493 |Applying initial value "0" on instance CmdLEDEN. +@N: FX493 |Applying initial value "0" on instance Cmdn8MEGEN. +@N: FX493 |Applying initial value "1" on instance nRCS. +@N: FX493 |Applying initial value "0" on instance LEDEN. +@N: FX493 |Applying initial value "0" on instance n8MEGEN. +@N: FX493 |Applying initial value "1" on instance nRRAS. +@N: FX493 |Applying initial value "0" on instance CmdUFMCLK. +@N: FX493 |Applying initial value "0" on instance CmdUFMCS. +@N: FX493 |Applying initial value "0" on instance CmdUFMSDI. +@N: FX493 |Applying initial value "0" on instance C1Submitted. +@N: FX493 |Applying initial value "0" on instance CmdSubmitted. +@N: FX493 |Applying initial value "0" on instance ADSubmitted. +@N: FX493 |Applying initial value "0" on instance XOR8MEG. +@N: FX493 |Applying initial value "1" on instance nUFMCS. +@N: FX493 |Applying initial value "0" on instance UFMSDI. +@N: FX493 |Applying initial value "0" on instance UFMCLK. +@N: FX493 |Applying initial value "0" on instance CmdEnable. +@N: FX493 |Applying initial value "1" on instance nRWE. + +Starting clock optimization phase (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 170MB peak: 170MB) + + +Finished clock optimization phase (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 170MB peak: 171MB) + + +Starting clock optimization report phase (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 171MB peak: 171MB) + + +Finished clock optimization report phase (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 171MB peak: 171MB) + +@N: FX1184 |Applying syn_allowed_resources blockrams=2 on top level netlist RAM2GS + +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 171MB peak: 171MB) + + + +Clock Summary +****************** + + Start Requested Requested Clock Clock Clock +Level Clock Frequency Period Type Group Load +--------------------------------------------------------------------------------------- +0 - RCLK 62.5 MHz 16.000 declared default_clkgroup 48 + +0 - PHI2 2.9 MHz 350.000 declared default_clkgroup 19 + +0 - nCRAS 2.9 MHz 350.000 declared default_clkgroup 14 + +0 - nCCAS 2.9 MHz 350.000 declared default_clkgroup 8 +======================================================================================= + + + +Clock Load Summary +*********************** + + Clock Source Clock Pin Non-clock Pin Non-clock Pin +Clock Load Pin Seq Example Seq Example Comb Example +---------------------------------------------------------------------------------------- +RCLK 48 RCLK(port) CASr2.C - - + +PHI2 19 PHI2(port) Bank[7:0].C PHI2r.D[0] un1_PHI2.I[0](inv) + +nCRAS 14 nCRAS(port) CBR.C RASr.D[0] RASr_2.I[0](inv) + +nCCAS 8 nCCAS(port) WRD[7:0].C CASr.D[0] CASr_2.I[0](inv) +======================================================================================== + +ICG Latch Removal Summary: +Number of ICG latches removed: 0 +Number of ICG latches not removed: 0 +For details review file gcc_ICG_report.rpt + + +@S |Clock Optimization Summary + + + +#### START OF PREMAP CLOCK OPTIMIZATION REPORT #####[ + +4 non-gated/non-generated clock tree(s) driving 89 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 +--------------------------------------------------------------------------------------- +@KP:ckid0_0 RCLK port 48 nRWE +@KP:ckid0_1 PHI2 port 19 RA11 +@KP:ckid0_2 nCCAS port 8 WRD[7:0] +@KP:ckid0_3 nCRAS port 14 RowA[9:0] +======================================================================================= + + +##### END OF CLOCK OPTIMIZATION REPORT ###### + +@N: FX1143 |Skipping assigning INTERNAL_VREF to iobanks, because the table of mapping from pin to iobank is not initialized. +Finished Pre Mapping Phase. + +Starting constraint checker (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 171MB peak: 171MB) + + +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 171MB peak: 171MB) + + +Finished constraint checker (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 172MB peak: 172MB) + +Pre-mapping successful! + +At Mapper Exit (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 88MB peak: 174MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime +# Tue Aug 15 23:12:44 2023 + +###########################################################] +# Tue Aug 15 23:12:44 2023 + + +Copyright (C) 1994-2021 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. +Tool: Synplify Pro (R) +Build: R-2021.03L-SP1 +Install: C:\lscc\diamond\3.12\synpbase +OS: Windows 6.2 + +Hostname: ZANEPC + +Implementation : impl1 +Synopsys Lattice Technology Mapper, Version map202103lat, Build 070R, Built Oct 6 2021 11:12:38, @ + + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 117MB peak: 117MB) + +@N: MF916 |Option synthesis_strategy=base is enabled. +@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: 119MB peak: 130MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 119MB peak: 130MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 133MB peak: 133MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 135MB peak: 136MB) + + + +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 168MB peak: 168MB) + + +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 171MB peak: 171MB) + +@N: MO231 :"d:\onedrive\documents\github\ram2gs\cpld\ram2gs-spi.v":147:1:147:6|Found counter in view:work.RAM2GS(verilog) instance IS[3:0] +@N: MO231 :"d:\onedrive\documents\github\ram2gs\cpld\ram2gs-spi.v":134:1:134:6|Found counter in view:work.RAM2GS(verilog) instance FS[17:0] +@N: FX493 |Applying initial value "0" on instance IS[0]. +@W: FX474 |User-specified initial value defined for some sequential elements which can prevent optimum synthesis results from being achieved. +@N: FX493 |Applying initial value "0" on instance IS[1]. +@N: FX493 |Applying initial value "0" on instance IS[2]. +@N: FX493 |Applying initial value "0" on instance IS[3]. + +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 173MB peak: 173MB) + + +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 174MB peak: 174MB) + + +Available hyper_sources - for debug and ip models + None Found + + +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 175MB peak: 175MB) + + +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 175MB peak: 175MB) + + +Finished Early Timing Optimization (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 176MB peak: 176MB) + + +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 176MB peak: 176MB) + + +Finished preparing to map (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 176MB peak: 176MB) + + +Finished technology mapping (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 176MB peak: 176MB) + +Pass CPU time Worst Slack Luts / Registers +------------------------------------------------------------ + 1 0h:00m:01s -2.34ns 128 / 89 + 2 0h:00m:01s -2.34ns 140 / 89 + 3 0h:00m:01s -2.34ns 140 / 89 +@N: FX271 :"d:\onedrive\documents\github\ram2gs\cpld\ram2gs-spi.v":147:1:147:6|Replicating instance Ready (in view: work.RAM2GS(verilog)) with 12 loads 1 time to improve timing. +Timing driven replication report +Added 1 Registers via timing driven replication +Added 0 LUTs via timing driven replication + + 4 0h:00m:01s -2.04ns 140 / 90 + + + 5 0h:00m:01s -2.04ns 141 / 90 + 6 0h:00m:01s -2.04ns 141 / 90 + 7 0h:00m:01s -2.04ns 141 / 90 + 8 0h:00m:01s -2.04ns 141 / 90 + 9 0h:00m:01s -2.04ns 141 / 90 + +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 177MB peak: 177MB) + +@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: 177MB peak: 177MB) + + +Start Writing Netlists (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 141MB peak: 178MB) + +Writing Analyst data base D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\LCMXO2-640HC\impl1\synwork\RAM2GS_LCMXO2_640HC_impl1_m.srm + +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 178MB peak: 178MB) + +Writing EDIF Netlist and constraint files +@N: FX1056 |Writing EDF file: D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\LCMXO2-640HC\impl1\RAM2GS_LCMXO2_640HC_impl1.edi +@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: 183MB peak: 183MB) + + +Finished Writing Netlists (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 183MB peak: 184MB) + + +Start final timing analysis (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 181MB peak: 184MB) + +@N: MT615 |Found clock RCLK with period 16.00ns +@N: MT615 |Found clock PHI2 with period 350.00ns +@N: MT615 |Found clock nCRAS with period 350.00ns +@N: MT615 |Found clock nCCAS with period 350.00ns + + +##### START OF TIMING REPORT #####[ +# Timing report written on Tue Aug 15 23:12:47 2023 +# + + +Top view: RAM2GS +Requested Frequency: 2.9 MHz +Wire load mode: top +Paths requested: 3 +Constraint File(s): D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\RAM2GS.sdc + +@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: -2.389 + + Requested Estimated Requested Estimated Clock Clock +Starting Clock Frequency Frequency Period Period Slack Type Group +------------------------------------------------------------------------------------------------------------------- +PHI2 2.9 MHz 0.8 MHz 350.000 1186.150 -2.389 declared default_clkgroup +RCLK 62.5 MHz 18.4 MHz 16.000 54.224 -0.784 declared default_clkgroup +nCCAS 2.9 MHz NA 350.000 NA NA declared default_clkgroup +nCRAS 2.9 MHz 1.0 MHz 350.000 987.210 -1.821 declared default_clkgroup +=================================================================================================================== +Estimated period and frequency reported as NA means no slack depends directly on the clock waveform + + +@W: MT118 |Paths from clock (PHI2:f) to clock (RCLK:r) are overconstrained because the required time of 1.00 ns is too small. +@W: MT117 |Paths from clock (RCLK:r) to clock (PHI2:f) are overconstrained because the required time of 1.00 ns is too small. +@W: MT118 |Paths from clock (nCRAS:f) to clock (RCLK:r) are overconstrained because the required time of 1.00 ns is too small. +@W: MT116 |Paths from clock (RCLK:r) to clock (PHI2:r) are overconstrained because the required time of 2.00 ns is too small. +@W: MT117 |Paths from clock (RCLK:r) to clock (nCRAS:f) are overconstrained because the required time of 1.00 ns is too small. + + + +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 +-------------------------------------------------------------------------------------------------------------- +RCLK RCLK | 16.000 8.400 | No paths - | No paths - | No paths - +RCLK PHI2 | 2.000 0.216 | No paths - | 1.000 -0.636 | No paths - +RCLK nCRAS | No paths - | No paths - | 1.000 -0.784 | No paths - +PHI2 RCLK | No paths - | No paths - | No paths - | 1.000 -2.389 +PHI2 PHI2 | No paths - | 350.000 345.378 | 175.000 167.920 | 175.000 173.428 +nCRAS RCLK | No paths - | No paths - | No paths - | 1.000 -1.821 +============================================================================================================== + 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: PHI2 +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +---------------------------------------------------------------------------------------- +CmdSubmitted PHI2 FD1S3AX Q CmdSubmitted 1.148 -2.389 +CmdUFMCS PHI2 FD1P3AX Q CmdUFMCS 0.972 -1.517 +CmdUFMSDI PHI2 FD1P3AX Q CmdUFMSDI 0.972 -0.740 +CmdLEDEN PHI2 FD1P3AX Q CmdLEDEN 1.044 -0.572 +Cmdn8MEGEN PHI2 FD1P3AX Q Cmdn8MEGEN 1.044 -0.572 +CmdUFMCLK PHI2 FD1P3AX Q CmdUFMCLK 0.972 -0.500 +Bank_0io[0] PHI2 IFS1P3DX Q Bank[0] 0.972 167.920 +Bank_0io[1] PHI2 IFS1P3DX Q Bank[1] 0.972 167.920 +Bank_0io[2] PHI2 IFS1P3DX Q Bank[2] 0.972 167.920 +Bank_0io[3] PHI2 IFS1P3DX Q Bank[3] 0.972 167.920 +======================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +-------------------------------------------------------------------------------------------- +UFMCLK_0io PHI2 OFS1P3DX SP i2_i 0.528 -2.389 +nUFMCS PHI2 FD1S3AY D nUFMCS_s_0_N_5_i 1.089 -1.829 +UFMSDI PHI2 FD1S3AX D UFMSDI_RNO 1.462 -1.751 +LEDEN PHI2 FD1P3AX SP N_28 0.528 -1.236 +n8MEGEN PHI2 FD1P3AX SP N_26 0.528 -1.236 +LEDEN PHI2 FD1P3AX D N_74_i 1.089 -0.572 +n8MEGEN PHI2 FD1P3AX D N_131 1.089 -0.572 +UFMCLK_0io PHI2 OFS1P3DX D i1_i 1.089 -0.500 +ADSubmitted PHI2 FD1S3AX D ADSubmitted_r_0 175.089 167.920 +C1Submitted PHI2 FD1S3AX D C1Submitted_s_0 175.089 167.920 +============================================================================================ + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 1.000 + - Setup time: 0.472 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 0.528 + + - Propagation time: 2.917 + - Clock delay at starting point: 0.000 (ideal) + = Slack (critical) : -2.389 + + Number of logic level(s): 2 + Starting point: CmdSubmitted / Q + Ending point: UFMCLK_0io / SP + The start point is clocked by PHI2 [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK + The end point is clocked by RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin SCLK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +----------------------------------------------------------------------------------- +CmdSubmitted FD1S3AX Q Out 1.148 1.148 r - +CmdSubmitted Net - - - - 4 +PHI2r3_RNITCN41 ORCALUT4 A In 0.000 1.148 r - +PHI2r3_RNITCN41 ORCALUT4 Z Out 1.153 2.301 r - +N_141_i Net - - - - 3 +UFMCLK_0io_RNO_0 ORCALUT4 A In 0.000 2.301 r - +UFMCLK_0io_RNO_0 ORCALUT4 Z Out 0.617 2.917 r - +i2_i Net - - - - 1 +UFMCLK_0io OFS1P3DX SP In 0.000 2.917 r - +=================================================================================== + + +Path information for path number 2: + Requested Period: 1.000 + - Setup time: -0.089 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 1.089 + + - Propagation time: 2.917 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : -1.829 + + Number of logic level(s): 2 + Starting point: CmdSubmitted / Q + Ending point: nUFMCS / D + The start point is clocked by PHI2 [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK + The end point is clocked by RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +----------------------------------------------------------------------------------- +CmdSubmitted FD1S3AX Q Out 1.148 1.148 r - +CmdSubmitted Net - - - - 4 +PHI2r3_RNITCN41 ORCALUT4 A In 0.000 1.148 r - +PHI2r3_RNITCN41 ORCALUT4 Z Out 1.153 2.301 r - +N_141_i Net - - - - 3 +nUFMCS_s_0_N_5_i ORCALUT4 A In 0.000 2.301 r - +nUFMCS_s_0_N_5_i ORCALUT4 Z Out 0.617 2.917 r - +nUFMCS_s_0_N_5_i Net - - - - 1 +nUFMCS FD1S3AY D In 0.000 2.917 r - +=================================================================================== + + +Path information for path number 3: + Requested Period: 1.000 + - Setup time: -0.462 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 1.462 + + - Propagation time: 3.214 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : -1.751 + + Number of logic level(s): 2 + Starting point: CmdSubmitted / Q + Ending point: UFMSDI / D + The start point is clocked by PHI2 [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK + The end point is clocked by RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +---------------------------------------------------------------------------------- +CmdSubmitted FD1S3AX Q Out 1.148 1.148 r - +CmdSubmitted Net - - - - 4 +PHI2r3_RNITCN41 ORCALUT4 A In 0.000 1.148 r - +PHI2r3_RNITCN41 ORCALUT4 Z Out 1.153 2.301 r - +N_141_i Net - - - - 3 +UFMSDI_RNO PFUMX C0 In 0.000 2.301 r - +UFMSDI_RNO PFUMX Z Out 0.913 3.214 r - +UFMSDI_RNO Net - - - - 1 +UFMSDI FD1S3AX D In 0.000 3.214 r - +================================================================================== + + + + +==================================== +Detailed Report for Clock: RCLK +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +---------------------------------------------------------------------------------- +Ready_fast RCLK FD1S3AX Q Ready_fast 1.256 -0.784 +LEDEN RCLK FD1P3AX Q LEDEN 1.108 -0.636 +n8MEGEN RCLK FD1P3AX Q n8MEGEN 1.044 -0.572 +FS[12] RCLK FD1S3AX Q FS[12] 1.108 8.400 +FS[13] RCLK FD1S3AX Q FS[13] 1.108 8.400 +FS[14] RCLK FD1S3AX Q FS[14] 1.108 8.400 +FS[17] RCLK FD1S3AX Q FS[17] 1.108 8.400 +FS[16] RCLK FD1S3AX Q FS[16] 1.148 9.377 +FS[15] RCLK FD1S3AX Q FS[15] 1.108 9.417 +InitReady RCLK FD1S3AX Q InitReady 1.268 9.849 +================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------ +RBA_0io[0] RCLK OFS1P3DX D RBAd_0[0] 1.089 -0.784 +RBA_0io[1] RCLK OFS1P3DX D RBAd_0[1] 1.089 -0.784 +RowA[0] RCLK FD1S3AX D RowAd_0[0] 1.089 -0.784 +RowA[1] RCLK FD1S3AX D RowAd_0[1] 1.089 -0.784 +RowA[2] RCLK FD1S3AX D RowAd_0[2] 1.089 -0.784 +RowA[3] RCLK FD1S3AX D RowAd_0[3] 1.089 -0.784 +RowA[4] RCLK FD1S3AX D RowAd_0[4] 1.089 -0.784 +RowA[5] RCLK FD1S3AX D RowAd_0[5] 1.089 -0.784 +RowA[6] RCLK FD1S3AX D RowAd_0[6] 1.089 -0.784 +RowA[7] RCLK FD1S3AX D RowAd_0[7] 1.089 -0.784 +==================================================================================== + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 1.000 + - Setup time: -0.089 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 1.089 + + - Propagation time: 1.873 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : -0.784 + + Number of logic level(s): 1 + Starting point: Ready_fast / Q + Ending point: RBA_0io[0] / D + The start point is clocked by RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin CK + The end point is clocked by nCRAS [falling] (rise=0.000 fall=175.000 period=350.000) on pin SCLK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +--------------------------------------------------------------------------------- +Ready_fast FD1S3AX Q Out 1.256 1.256 r - +Ready_fast Net - - - - 14 +RBAd[0] ORCALUT4 B In 0.000 1.256 r - +RBAd[0] ORCALUT4 Z Out 0.617 1.873 r - +RBAd_0[0] Net - - - - 1 +RBA_0io[0] OFS1P3DX D In 0.000 1.873 r - +================================================================================= + + +Path information for path number 2: + Requested Period: 1.000 + - Setup time: -0.089 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 1.089 + + - Propagation time: 1.873 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : -0.784 + + Number of logic level(s): 1 + Starting point: Ready_fast / Q + Ending point: RowA[9] / D + The start point is clocked by RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin CK + The end point is clocked by nCRAS [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +--------------------------------------------------------------------------------- +Ready_fast FD1S3AX Q Out 1.256 1.256 r - +Ready_fast Net - - - - 14 +RowAd[9] ORCALUT4 B In 0.000 1.256 r - +RowAd[9] ORCALUT4 Z Out 0.617 1.873 f - +RowAd_0[9] Net - - - - 1 +RowA[9] FD1S3AX D In 0.000 1.873 f - +================================================================================= + + +Path information for path number 3: + Requested Period: 1.000 + - Setup time: -0.089 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 1.089 + + - Propagation time: 1.873 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : -0.784 + + Number of logic level(s): 1 + Starting point: Ready_fast / Q + Ending point: RowA[8] / D + The start point is clocked by RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin CK + The end point is clocked by nCRAS [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +--------------------------------------------------------------------------------- +Ready_fast FD1S3AX Q Out 1.256 1.256 r - +Ready_fast Net - - - - 14 +RowAd[8] ORCALUT4 B In 0.000 1.256 r - +RowAd[8] ORCALUT4 Z Out 0.617 1.873 r - +RowAd_0[8] Net - - - - 1 +RowA[8] FD1S3AX D In 0.000 1.873 r - +================================================================================= + + + + +==================================== +Detailed Report for Clock: nCRAS +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +-------------------------------------------------------------------------- +CBR nCRAS FD1S3AX Q CBR 1.204 -1.821 +FWEr nCRAS FD1S3AX Q FWEr 1.148 -1.765 +========================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +---------------------------------------------------------------------------------------- +nRCAS_0io nCRAS OFS1P3BX D N_179_i 1.089 -1.821 +nRWE_0io nCRAS OFS1P3BX D N_180_i 1.089 -1.821 +nRCS_0io nCRAS OFS1P3BX D N_27_i 1.089 -1.765 +nRowColSel nCRAS FD1S3IX D nRowColSel_0_0 1.089 -1.749 +RCKEEN nCRAS FD1S3AX D RCKEEN_8 1.089 -1.693 +======================================================================================== + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 1.000 + - Setup time: -0.089 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 1.089 + + - Propagation time: 2.909 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : -1.821 + + Number of logic level(s): 2 + Starting point: CBR / Q + Ending point: nRCAS_0io / D + The start point is clocked by nCRAS [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK + The end point is clocked by RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin SCLK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +---------------------------------------------------------------------------------------- +CBR FD1S3AX Q Out 1.204 1.204 r - +CBR Net - - - - 7 +nRCAS_0_sqmuxa_1_0_a3 ORCALUT4 A In 0.000 1.204 r - +nRCAS_0_sqmuxa_1_0_a3 ORCALUT4 Z Out 1.089 2.293 r - +nRCAS_0_sqmuxa_1 Net - - - - 2 +nRCAS_0io_RNO ORCALUT4 B In 0.000 2.293 r - +nRCAS_0io_RNO ORCALUT4 Z Out 0.617 2.909 f - +N_179_i Net - - - - 1 +nRCAS_0io OFS1P3BX D In 0.000 2.909 f - +======================================================================================== + + +Path information for path number 2: + Requested Period: 1.000 + - Setup time: -0.089 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 1.089 + + - Propagation time: 2.909 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : -1.821 + + Number of logic level(s): 2 + Starting point: CBR / Q + Ending point: nRWE_0io / D + The start point is clocked by nCRAS [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK + The end point is clocked by RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin SCLK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +---------------------------------------------------------------------------------------- +CBR FD1S3AX Q Out 1.204 1.204 r - +CBR Net - - - - 7 +nRCAS_0_sqmuxa_1_0_a3 ORCALUT4 A In 0.000 1.204 r - +nRCAS_0_sqmuxa_1_0_a3 ORCALUT4 Z Out 1.089 2.293 r - +nRCAS_0_sqmuxa_1 Net - - - - 2 +nRWE_0io_RNO ORCALUT4 A In 0.000 2.293 r - +nRWE_0io_RNO ORCALUT4 Z Out 0.617 2.909 r - +N_180_i Net - - - - 1 +nRWE_0io OFS1P3BX D In 0.000 2.909 r - +======================================================================================== + + +Path information for path number 3: + Requested Period: 1.000 + - Setup time: -0.089 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 1.089 + + - Propagation time: 2.853 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : -1.765 + + Number of logic level(s): 2 + Starting point: FWEr / Q + Ending point: nRCAS_0io / D + The start point is clocked by nCRAS [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK + The end point is clocked by RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin SCLK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------------- +FWEr FD1S3AX Q Out 1.148 1.148 r - +FWEr Net - - - - 4 +nRCAS_r_i_a3_1_1_tz ORCALUT4 D In 0.000 1.148 r - +nRCAS_r_i_a3_1_1_tz ORCALUT4 Z Out 1.089 2.237 r - +N_27_i_1 Net - - - - 2 +nRCAS_0io_RNO ORCALUT4 A In 0.000 2.237 r - +nRCAS_0io_RNO ORCALUT4 Z Out 0.617 2.853 f - +N_179_i Net - - - - 1 +nRCAS_0io OFS1P3BX D In 0.000 2.853 f - +====================================================================================== + + + +##### END OF TIMING REPORT #####] + +Timing exceptions that could not be applied + +Finished final timing analysis (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 182MB peak: 184MB) + + +Finished timing report (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 182MB peak: 184MB) + +--------------------------------------- +Resource Usage Report +Part: lcmxo2_640hc-4 + +Register bits: 90 of 640 (14%) +PIC Latch: 0 +I/O cells: 67 + + +Details: +BB: 8 +CCU2D: 10 +FD1P3AX: 11 +FD1S3AX: 49 +FD1S3AY: 1 +FD1S3IX: 3 +GSR: 1 +IB: 26 +IFS1P3DX: 9 +INV: 7 +OB: 33 +OFS1P3BX: 4 +OFS1P3DX: 12 +OFS1P3JX: 1 +ORCALUT4: 135 +PFUMX: 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: 67MB peak: 184MB) + +Process took 0h:00m:02s realtime, 0h:00m:02s cputime +# Tue Aug 15 23:12:47 2023 + +###########################################################] diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.srr.db b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..5deabf552e6b31ce08ea3399a2ca3f27b1febfc0 GIT binary patch literal 16384 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 ~({JMkg7(Lnu@CXhxa-fm!}Hd2 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 literal 0 HcmV?d00001 diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.tw1 b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.tw1 index 4d39d68..8c774fb 100644 --- a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.tw1 +++ b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.tw1 @@ -13,7 +13,7 @@ Setup and Hold Report -------------------------------------------------------------------------------- Lattice TRACE Report - Setup, Version Diamond (64-bit) 3.12.1.454 -Tue Aug 15 05:03:25 2023 +Tue Aug 15 22:56:32 2023 Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. Copyright (c) 1995 AT&T Corp. All rights reserved. @@ -30,7 +30,6 @@ Device,speed: LCMXO2-640HC,4 Report level: verbose report, limited to 1 item per preference -------------------------------------------------------------------------------- -Report Type: based on TRACE automatically generated preferences BLOCK ASYNCPATHS BLOCK RESETPATHS -------------------------------------------------------------------------------- @@ -38,87 +37,131 @@ BLOCK RESETPATHS ================================================================================ -Preference: FREQUENCY NET "RCLK_c" 299.401000 MHz ; - 459 items scored, 245 timing errors detected. +Preference: FREQUENCY PORT "PHI2" 2.900000 MHz ; + 170 items scored, 0 timing errors detected. -------------------------------------------------------------------------------- -Error: The following path exceeds requirements by 3.815ns +Passed: The following path meets requirements by 161.824ns (weighted slack = 323.648ns) Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q FS_610__i13 (from RCLK_c +) - Destination: FF Data in n8MEGEN_418 (to RCLK_c +) + Source: FF Q Bank_0io[3] (from PHI2_c +) + Destination: FF Data in CmdEnable (to PHI2_c -) - Delay: 6.873ns (28.2% logic, 71.8% route), 4 logic levels. + Delay: 10.424ns (36.2% logic, 63.8% route), 7 logic levels. Constraint Details: - 6.873ns physical path delay SLICE_0 to SLICE_57 exceeds - 3.340ns delay constraint less - 0.282ns CE_SET requirement (totaling 3.058ns) by 3.815ns + 10.424ns physical path delay Din[3]_MGIOL to SLICE_18 meets + 172.414ns delay constraint less + 0.166ns DIN_SET requirement (totaling 172.248ns) by 161.824ns Physical Path Details: - Data path SLICE_0 to SLICE_57: + Data path Din[3]_MGIOL to SLICE_18: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 SLICE_0.CLK to SLICE_0.Q0 SLICE_0 (from RCLK_c) -ROUTE 3 e 1.234 SLICE_0.Q0 to SLICE_85.B0 FS_13 -CTOF_DEL --- 0.495 SLICE_85.B0 to SLICE_85.F0 SLICE_85 -ROUTE 5 e 1.234 SLICE_85.F0 to SLICE_57.A1 n10 -CTOF_DEL --- 0.495 SLICE_57.A1 to SLICE_57.F1 SLICE_57 -ROUTE 2 e 1.234 SLICE_57.F1 to SLICE_84.A0 n2367 -CTOF_DEL --- 0.495 SLICE_84.A0 to SLICE_84.F0 SLICE_84 -ROUTE 1 e 1.234 SLICE_84.F0 to SLICE_57.CE RCLK_c_enable_15 (to RCLK_c) +C2INP_DEL --- 0.577 *[3]_MGIOL.CLK to *n[3]_MGIOL.IN Din[3]_MGIOL (from PHI2_c) +ROUTE 1 e 1.234 *n[3]_MGIOL.IN to SLICE_43.C1 Bank[3] +CTOF_DEL --- 0.495 SLICE_43.C1 to SLICE_43.F1 SLICE_43 +ROUTE 1 e 1.234 SLICE_43.F1 to SLICE_69.D0 un1_Bank_1_4 +CTOF_DEL --- 0.495 SLICE_69.D0 to SLICE_69.F0 SLICE_69 +ROUTE 5 e 1.234 SLICE_69.F0 to SLICE_60.D0 un1_Bank_1 +CTOF_DEL --- 0.495 SLICE_60.D0 to SLICE_60.F0 SLICE_60 +ROUTE 2 e 1.234 SLICE_60.F0 to SLICE_46.A1 ADWR +CTOF_DEL --- 0.495 SLICE_46.A1 to SLICE_46.F1 SLICE_46 +ROUTE 3 e 0.480 SLICE_46.F1 to SLICE_46.D0 un1_ADWR +CTOF_DEL --- 0.495 SLICE_46.D0 to SLICE_46.F0 SLICE_46 +ROUTE 1 e 1.234 SLICE_46.F0 to SLICE_18.C0 un1_CMDWR +CTOOFX_DEL --- 0.721 SLICE_18.C0 to SLICE_18.OFX0 SLICE_18 +ROUTE 1 e 0.001 SLICE_18.OFX0 to SLICE_18.DI0 CmdEnable_s (to PHI2_c) -------- - 6.873 (28.2% logic, 71.8% route), 4 logic levels. + 10.424 (36.2% logic, 63.8% route), 7 logic levels. -Warning: 139.762MHz is the maximum frequency for this preference. +Report: 47.214MHz is the maximum frequency for this preference. ================================================================================ -Preference: FREQUENCY NET "PHI2_c" 99.079000 MHz ; - 113 items scored, 104 timing errors detected. +Preference: FREQUENCY PORT "nCCAS" 2.900000 MHz ; + 0 items scored, 0 timing errors detected. -------------------------------------------------------------------------------- -Error: The following path exceeds requirements by 4.837ns (weighted slack = -9.674ns) +Passed: The following path meets requirements by 338.168ns + The internal maximum frequency of the following component is 150.150 MHz + + Logical Details: Cell type Pin name Component name + + Destination: PIO PAD nCCAS + + Delay: 6.660ns -- based on Minimum Pulse Width + +Report: 150.150MHz is the maximum frequency for this preference. + + +================================================================================ +Preference: FREQUENCY PORT "nCRAS" 2.900000 MHz ; + 0 items scored, 0 timing errors detected. +-------------------------------------------------------------------------------- + + +Passed: The following path meets requirements by 338.168ns + The internal maximum frequency of the following component is 150.150 MHz + + Logical Details: Cell type Pin name Component name + + Destination: PIO PAD nCRAS + + Delay: 6.660ns -- based on Minimum Pulse Width + +Report: 150.150MHz is the maximum frequency for this preference. + + +================================================================================ +Preference: FREQUENCY PORT "RCLK" 62.500000 MHz ; + 590 items scored, 0 timing errors detected. +-------------------------------------------------------------------------------- + + +Passed: The following path meets requirements by 4.412ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q Bank_i7 (from PHI2_c +) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) + Source: FF Q FS[17] (from RCLK_c +) + Destination: FF Data in LEDEN (to RCLK_c +) - Delay: 9.577ns (30.6% logic, 69.4% route), 6 logic levels. + Delay: 11.306ns (30.3% logic, 69.7% route), 7 logic levels. Constraint Details: - 9.577ns physical path delay SLICE_101 to SLICE_19 exceeds - 5.047ns delay constraint less - 0.307ns CE_SET requirement (totaling 4.740ns) by 4.837ns + 11.306ns physical path delay SLICE_1 to SLICE_27 meets + 16.000ns delay constraint less + 0.282ns CE_SET requirement (totaling 15.718ns) by 4.412ns Physical Path Details: - Data path SLICE_101 to SLICE_19: + Data path SLICE_1 to SLICE_27: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 SLICE_101.CLK to SLICE_101.Q1 SLICE_101 (from PHI2_c) -ROUTE 1 e 1.234 SLICE_101.Q1 to SLICE_100.C1 Bank_7 -CTOF_DEL --- 0.495 SLICE_100.C1 to SLICE_100.F1 SLICE_100 -ROUTE 1 e 1.234 SLICE_100.F1 to SLICE_74.B1 n2277 -CTOF_DEL --- 0.495 SLICE_74.B1 to SLICE_74.F1 SLICE_74 -ROUTE 8 e 1.234 SLICE_74.F1 to SLICE_91.B1 n26 -CTOF_DEL --- 0.495 SLICE_91.B1 to SLICE_91.F1 SLICE_91 -ROUTE 1 e 1.234 SLICE_91.F1 to SLICE_88.D0 n2362 -CTOF_DEL --- 0.495 SLICE_88.D0 to SLICE_88.F0 SLICE_88 -ROUTE 3 e 0.480 SLICE_88.F0 to SLICE_88.C1 C1Submitted_N_237 -CTOF_DEL --- 0.495 SLICE_88.C1 to SLICE_88.F1 SLICE_88 -ROUTE 1 e 1.234 SLICE_88.F1 to SLICE_19.CE PHI2_N_120_enable_1 (to PHI2_c) +REG_DEL --- 0.452 SLICE_1.CLK to SLICE_1.Q0 SLICE_1 (from RCLK_c) +ROUTE 3 e 1.234 SLICE_1.Q0 to SLICE_72.D1 FS[17] +CTOF_DEL --- 0.495 SLICE_72.D1 to SLICE_72.F1 SLICE_72 +ROUTE 1 e 1.234 SLICE_72.F1 to SLICE_64.C1 UFMSDI_ens2_i_o2_0_3 +CTOF_DEL --- 0.495 SLICE_64.C1 to SLICE_64.F1 SLICE_64 +ROUTE 4 e 1.234 SLICE_64.F1 to SLICE_59.C1 N_129 +CTOF_DEL --- 0.495 SLICE_59.C1 to SLICE_59.F1 SLICE_59 +ROUTE 2 e 0.480 SLICE_59.F1 to SLICE_59.D0 N_145 +CTOF_DEL --- 0.495 SLICE_59.D0 to SLICE_59.F0 SLICE_59 +ROUTE 2 e 1.234 SLICE_59.F0 to SLICE_56.B0 N_139_8 +CTOF_DEL --- 0.495 SLICE_56.B0 to SLICE_56.F0 SLICE_56 +ROUTE 1 e 1.234 SLICE_56.F0 to SLICE_54.C0 N_140 +CTOF_DEL --- 0.495 SLICE_54.C0 to SLICE_54.F0 SLICE_54 +ROUTE 1 e 1.234 SLICE_54.F0 to SLICE_27.CE N_28 (to RCLK_c) -------- - 9.577 (30.6% logic, 69.4% route), 6 logic levels. + 11.306 (30.3% logic, 69.7% route), 7 logic levels. -Warning: 50.592MHz is the maximum frequency for this preference. +Report: 86.296MHz is the maximum frequency for this preference. Report Summary -------------- @@ -126,21 +169,18 @@ Report Summary Preference | Constraint| Actual|Levels ---------------------------------------------------------------------------- | | | -FREQUENCY NET "RCLK_c" 299.401000 MHz ; | 299.401 MHz| 139.762 MHz| 4 * +FREQUENCY PORT "PHI2" 2.900000 MHz ; | 2.900 MHz| 47.214 MHz| 7 | | | -FREQUENCY NET "PHI2_c" 99.079000 MHz ; | 99.079 MHz| 50.592 MHz| 6 * +FREQUENCY PORT "nCCAS" 2.900000 MHz ; | 2.900 MHz| 150.150 MHz| 0 + | | | +FREQUENCY PORT "nCRAS" 2.900000 MHz ; | 2.900 MHz| 150.150 MHz| 0 + | | | +FREQUENCY PORT "RCLK" 62.500000 MHz ; | 62.500 MHz| 86.296 MHz| 7 | | | ---------------------------------------------------------------------------- -2 preferences(marked by "*" above) not met. - ----------------------------------------------------------------------------- -Critical Nets | Loads| Errors| % of total ----------------------------------------------------------------------------- -n26 | 8| 78| 22.35% - | | | ----------------------------------------------------------------------------- +All preferences were met. Clock Domains Analysis @@ -148,14 +188,20 @@ Clock Domains Analysis Found 4 clocks: -Clock Domain: nCRAS_c Source: nCRAS.PAD Loads: 9 +Clock Domain: nCRAS_c Source: nCRAS.PAD Loads: 12 No transfer within this clock domain is found -Clock Domain: nCCAS_c Source: nCCAS.PAD Loads: 6 + Data transfers from: + Clock Domain: RCLK_c Source: RCLK.PAD + Not reported because source and destination domains are unrelated. + To report these transfers please refer to preference CLKSKEWDIFF to define + external clock skew between clock ports. + +Clock Domain: nCCAS_c Source: nCCAS.PAD Loads: 10 No transfer within this clock domain is found -Clock Domain: RCLK_c Source: RCLK.PAD Loads: 40 - Covered under: FREQUENCY NET "RCLK_c" 299.401000 MHz ; +Clock Domain: RCLK_c Source: RCLK.PAD Loads: 39 + Covered under: FREQUENCY PORT "RCLK" 62.500000 MHz ; Data transfers from: Clock Domain: nCRAS_c Source: nCRAS.PAD @@ -168,8 +214,8 @@ Clock Domain: RCLK_c Source: RCLK.PAD Loads: 40 To report these transfers please refer to preference CLKSKEWDIFF to define external clock skew between clock ports. -Clock Domain: PHI2_c Source: PHI2.PAD Loads: 14 - Covered under: FREQUENCY NET "PHI2_c" 99.079000 MHz ; +Clock Domain: PHI2_c Source: PHI2.PAD Loads: 19 + Covered under: FREQUENCY PORT "PHI2" 2.900000 MHz ; Data transfers from: Clock Domain: RCLK_c Source: RCLK.PAD @@ -181,14 +227,14 @@ Clock Domain: PHI2_c Source: PHI2.PAD Loads: 14 Timing summary (Setup): --------------- -Timing errors: 349 Score: 848079 -Cumulative negative slack: 584487 +Timing errors: 0 Score: 0 +Cumulative negative slack: 0 -Constraints cover 572 paths, 2 nets, and 409 connections (60.68% coverage) +Constraints cover 760 paths, 4 nets, and 422 connections (60.03% coverage) -------------------------------------------------------------------------------- Lattice TRACE Report - Hold, Version Diamond (64-bit) 3.12.1.454 -Tue Aug 15 05:03:25 2023 +Tue Aug 15 22:56:32 2023 Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. Copyright (c) 1995 AT&T Corp. All rights reserved. @@ -212,40 +258,8 @@ BLOCK RESETPATHS ================================================================================ -Preference: FREQUENCY NET "RCLK_c" 299.401000 MHz ; - 459 items scored, 0 timing errors detected. --------------------------------------------------------------------------------- - - -Passed: The following path meets requirements by 0.351ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q IS_FSM__i4 (from RCLK_c +) - Destination: FF Data in IS_FSM__i5 (to RCLK_c +) - - Delay: 0.332ns (40.1% logic, 59.9% route), 1 logic levels. - - Constraint Details: - - 0.332ns physical path delay SLICE_106 to SLICE_106 meets - -0.019ns M_HLD and - 0.000ns delay constraint requirement (totaling -0.019ns) by 0.351ns - - Physical Path Details: - - Data path SLICE_106 to SLICE_106: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 SLICE_106.CLK to SLICE_106.Q0 SLICE_106 (from RCLK_c) -ROUTE 1 e 0.199 SLICE_106.Q0 to SLICE_106.M1 n736 (to RCLK_c) - -------- - 0.332 (40.1% logic, 59.9% route), 1 logic levels. - - -================================================================================ -Preference: FREQUENCY NET "PHI2_c" 99.079000 MHz ; - 113 items scored, 0 timing errors detected. +Preference: FREQUENCY PORT "PHI2" 2.900000 MHz ; + 170 items scored, 0 timing errors detected. -------------------------------------------------------------------------------- @@ -253,38 +267,86 @@ Passed: The following path meets requirements by 0.447ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q C1Submitted_406 (from PHI2_c -) - Destination: FF Data in C1Submitted_406 (to PHI2_c -) + Source: FF Q ADSubmitted (from PHI2_c -) + Destination: FF Data in ADSubmitted (to PHI2_c -) Delay: 0.434ns (53.9% logic, 46.1% route), 2 logic levels. Constraint Details: - 0.434ns physical path delay SLICE_15 to SLICE_15 meets + 0.434ns physical path delay SLICE_10 to SLICE_10 meets -0.013ns DIN_HLD and 0.000ns delay constraint requirement (totaling -0.013ns) by 0.447ns Physical Path Details: - Data path SLICE_15 to SLICE_15: + Data path SLICE_10 to SLICE_10: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 SLICE_15.CLK to SLICE_15.Q0 SLICE_15 (from PHI2_c) -ROUTE 2 e 0.199 SLICE_15.Q0 to SLICE_15.C0 C1Submitted -CTOF_DEL --- 0.101 SLICE_15.C0 to SLICE_15.F0 SLICE_15 -ROUTE 1 e 0.001 SLICE_15.F0 to SLICE_15.DI0 n1398 (to PHI2_c) +REG_DEL --- 0.133 SLICE_10.CLK to SLICE_10.Q0 SLICE_10 (from PHI2_c) +ROUTE 2 e 0.199 SLICE_10.Q0 to SLICE_10.A0 ADSubmitted +CTOF_DEL --- 0.101 SLICE_10.A0 to SLICE_10.F0 SLICE_10 +ROUTE 1 e 0.001 SLICE_10.F0 to SLICE_10.DI0 ADSubmitted_r (to PHI2_c) -------- 0.434 (53.9% logic, 46.1% route), 2 logic levels. + +================================================================================ +Preference: FREQUENCY PORT "nCCAS" 2.900000 MHz ; + 0 items scored, 0 timing errors detected. +-------------------------------------------------------------------------------- + + +================================================================================ +Preference: FREQUENCY PORT "nCRAS" 2.900000 MHz ; + 0 items scored, 0 timing errors detected. +-------------------------------------------------------------------------------- + + +================================================================================ +Preference: FREQUENCY PORT "RCLK" 62.500000 MHz ; + 590 items scored, 0 timing errors detected. +-------------------------------------------------------------------------------- + + +Passed: The following path meets requirements by 0.351ns + + Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) + + Source: FF Q CASr (from RCLK_c +) + Destination: FF Data in CASr2 (to RCLK_c +) + + Delay: 0.332ns (40.1% logic, 59.9% route), 1 logic levels. + + Constraint Details: + + 0.332ns physical path delay SLICE_14 to SLICE_14 meets + -0.019ns M_HLD and + 0.000ns delay constraint requirement (totaling -0.019ns) by 0.351ns + + Physical Path Details: + + Data path SLICE_14 to SLICE_14: + + Name Fanout Delay (ns) Site Resource +REG_DEL --- 0.133 SLICE_14.CLK to SLICE_14.Q0 SLICE_14 (from RCLK_c) +ROUTE 1 e 0.199 SLICE_14.Q0 to SLICE_14.M1 CASr (to RCLK_c) + -------- + 0.332 (40.1% logic, 59.9% route), 1 logic levels. + Report Summary -------------- ---------------------------------------------------------------------------- Preference(MIN Delays) | Constraint| Actual|Levels ---------------------------------------------------------------------------- | | | -FREQUENCY NET "RCLK_c" 299.401000 MHz ; | 0.000 ns| 0.351 ns| 1 +FREQUENCY PORT "PHI2" 2.900000 MHz ; | -| -| 2 | | | -FREQUENCY NET "PHI2_c" 99.079000 MHz ; | 0.000 ns| 0.447 ns| 2 +FREQUENCY PORT "nCCAS" 2.900000 MHz ; | -| -| 0 + | | | +FREQUENCY PORT "nCRAS" 2.900000 MHz ; | -| -| 0 + | | | +FREQUENCY PORT "RCLK" 62.500000 MHz ; | -| -| 1 | | | ---------------------------------------------------------------------------- @@ -297,14 +359,20 @@ Clock Domains Analysis Found 4 clocks: -Clock Domain: nCRAS_c Source: nCRAS.PAD Loads: 9 +Clock Domain: nCRAS_c Source: nCRAS.PAD Loads: 12 No transfer within this clock domain is found -Clock Domain: nCCAS_c Source: nCCAS.PAD Loads: 6 + Data transfers from: + Clock Domain: RCLK_c Source: RCLK.PAD + Not reported because source and destination domains are unrelated. + To report these transfers please refer to preference CLKSKEWDIFF to define + external clock skew between clock ports. + +Clock Domain: nCCAS_c Source: nCCAS.PAD Loads: 10 No transfer within this clock domain is found -Clock Domain: RCLK_c Source: RCLK.PAD Loads: 40 - Covered under: FREQUENCY NET "RCLK_c" 299.401000 MHz ; +Clock Domain: RCLK_c Source: RCLK.PAD Loads: 39 + Covered under: FREQUENCY PORT "RCLK" 62.500000 MHz ; Data transfers from: Clock Domain: nCRAS_c Source: nCRAS.PAD @@ -317,8 +385,8 @@ Clock Domain: RCLK_c Source: RCLK.PAD Loads: 40 To report these transfers please refer to preference CLKSKEWDIFF to define external clock skew between clock ports. -Clock Domain: PHI2_c Source: PHI2.PAD Loads: 14 - Covered under: FREQUENCY NET "PHI2_c" 99.079000 MHz ; +Clock Domain: PHI2_c Source: PHI2.PAD Loads: 19 + Covered under: FREQUENCY PORT "PHI2" 2.900000 MHz ; Data transfers from: Clock Domain: RCLK_c Source: RCLK.PAD @@ -333,16 +401,16 @@ Timing summary (Hold): Timing errors: 0 Score: 0 Cumulative negative slack: 0 -Constraints cover 572 paths, 2 nets, and 409 connections (60.68% coverage) +Constraints cover 760 paths, 4 nets, and 422 connections (60.03% coverage) Timing summary (Setup and Hold): --------------- -Timing errors: 349 (setup), 0 (hold) -Score: 848079 (setup), 0 (hold) -Cumulative negative slack: 584487 (584487+0) +Timing errors: 0 (setup), 0 (hold) +Score: 0 (setup), 0 (hold) +Cumulative negative slack: 0 (0+0) -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.twr b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.twr index 813d789..b451cd5 100644 --- a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.twr +++ b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.twr @@ -13,7 +13,7 @@ Setup and Hold Report -------------------------------------------------------------------------------- Lattice TRACE Report - Setup, Version Diamond (64-bit) 3.12.1.454 -Tue Aug 15 05:03:36 2023 +Tue Aug 15 22:56:39 2023 Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. Copyright (c) 1995 AT&T Corp. All rights reserved. @@ -30,7 +30,6 @@ Device,speed: LCMXO2-640HC,4 Report level: verbose report, limited to 10 items per preference -------------------------------------------------------------------------------- -Report Type: based on TRACE automatically generated preferences BLOCK ASYNCPATHS BLOCK RESETPATHS -------------------------------------------------------------------------------- @@ -38,1045 +37,1125 @@ BLOCK RESETPATHS ================================================================================ -Preference: FREQUENCY NET "RCLK_c" 299.401000 MHz ; - 459 items scored, 264 timing errors detected. +Preference: FREQUENCY PORT "PHI2" 2.900000 MHz ; + 170 items scored, 0 timing errors detected. -------------------------------------------------------------------------------- -Error: The following path exceeds requirements by 2.902ns +Passed: The following path meets requirements by 163.401ns (weighted slack = 326.802ns) Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q FS_610__i12 (from RCLK_c +) - Destination: FF Data in UFMSDI_417 (to RCLK_c +) + Source: FF Q Bank_0io[3] (from PHI2_c +) + Destination: FF Data in CmdUFMSDI (to PHI2_c -) - Delay: 6.076ns (40.0% logic, 60.0% route), 5 logic levels. + Delay: 8.950ns (28.6% logic, 71.4% route), 5 logic levels. Constraint Details: - 6.076ns physical path delay SLICE_1 to SLICE_45 exceeds - 3.340ns delay constraint less + 8.950ns physical path delay Din[3]_MGIOL to Din[0]_MGIOL meets + 172.414ns delay constraint less 0.000ns skew and - 0.166ns DIN_SET requirement (totaling 3.174ns) by 2.902ns + 0.063ns CE_SET requirement (totaling 172.351ns) by 163.401ns Physical Path Details: - Data path SLICE_1 to SLICE_45: + Data path Din[3]_MGIOL to Din[0]_MGIOL: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R6C8C.CLK to R6C8C.Q1 SLICE_1 (from RCLK_c) -ROUTE 5 0.984 R6C8C.Q1 to R4C8D.D1 FS_12 -CTOF_DEL --- 0.495 R4C8D.D1 to R4C8D.F1 SLICE_80 -ROUTE 3 1.598 R4C8D.F1 to R4C7B.C1 n2375 -CTOF_DEL --- 0.495 R4C7B.C1 to R4C7B.F1 SLICE_95 -ROUTE 1 0.436 R4C7B.F1 to R4C7A.C1 n7 -CTOF_DEL --- 0.495 R4C7A.C1 to R4C7A.F1 SLICE_45 -ROUTE 1 0.626 R4C7A.F1 to R4C7A.D0 n2174 -CTOF_DEL --- 0.495 R4C7A.D0 to R4C7A.F0 SLICE_45 -ROUTE 1 0.000 R4C7A.F0 to R4C7A.DI0 UFMSDI_N_231 (to RCLK_c) +C2INP_DEL --- 0.577 IOL_T6C.CLK to IOL_T6C.IN Din[3]_MGIOL (from PHI2_c) +ROUTE 1 1.496 IOL_T6C.IN to R4C6A.C1 Bank[3] +CTOF_DEL --- 0.495 R4C6A.C1 to R4C6A.F1 SLICE_43 +ROUTE 1 0.623 R4C6A.F1 to R3C6A.D0 un1_Bank_1_4 +CTOF_DEL --- 0.495 R3C6A.D0 to R3C6A.F0 SLICE_69 +ROUTE 5 1.213 R3C6A.F0 to R4C8A.C0 un1_Bank_1 +CTOF_DEL --- 0.495 R4C8A.C0 to R4C8A.F0 SLICE_57 +ROUTE 5 0.710 R4C8A.F0 to R4C8B.B1 XOR8MEG18 +CTOF_DEL --- 0.495 R4C8B.B1 to R4C8B.F1 SLICE_20 +ROUTE 3 2.351 R4C8B.F1 to IOL_L2C.CE CmdUFMCLK_1_sqmuxa (to PHI2_c) -------- - 6.076 (40.0% logic, 60.0% route), 5 logic levels. + 8.950 (28.6% logic, 71.4% route), 5 logic levels. Clock Skew Details: - Source Clock Path RCLK to SLICE_1: + Source Clock Path PHI2 to Din[3]_MGIOL: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R6C8C.CLK RCLK_c +ROUTE 19 3.712 8.PADDI to IOL_T6C.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.712 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path RCLK to SLICE_45: + Destination Clock Path PHI2 to Din[0]_MGIOL: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R4C7A.CLK RCLK_c +ROUTE 19 3.712 8.PADDI to IOL_L2C.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.712 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 2.710ns +Passed: The following path meets requirements by 163.452ns (weighted slack = 326.904ns) Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q FS_610__i14 (from RCLK_c +) - Destination: FF Data in UFMSDI_417 (to RCLK_c +) + Source: FF Q Bank_0io[7] (from PHI2_c +) + Destination: FF Data in CmdUFMSDI (to PHI2_c -) - Delay: 5.884ns (41.3% logic, 58.7% route), 5 logic levels. + Delay: 8.899ns (28.7% logic, 71.3% route), 5 logic levels. Constraint Details: - 5.884ns physical path delay SLICE_0 to SLICE_45 exceeds - 3.340ns delay constraint less + 8.899ns physical path delay Din[7]_MGIOL to Din[0]_MGIOL meets + 172.414ns delay constraint less 0.000ns skew and - 0.166ns DIN_SET requirement (totaling 3.174ns) by 2.710ns + 0.063ns CE_SET requirement (totaling 172.351ns) by 163.452ns Physical Path Details: - Data path SLICE_0 to SLICE_45: + Data path Din[7]_MGIOL to Din[0]_MGIOL: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R6C8D.CLK to R6C8D.Q1 SLICE_0 (from RCLK_c) -ROUTE 5 0.792 R6C8D.Q1 to R4C8D.C1 FS_14 -CTOF_DEL --- 0.495 R4C8D.C1 to R4C8D.F1 SLICE_80 -ROUTE 3 1.598 R4C8D.F1 to R4C7B.C1 n2375 -CTOF_DEL --- 0.495 R4C7B.C1 to R4C7B.F1 SLICE_95 -ROUTE 1 0.436 R4C7B.F1 to R4C7A.C1 n7 -CTOF_DEL --- 0.495 R4C7A.C1 to R4C7A.F1 SLICE_45 -ROUTE 1 0.626 R4C7A.F1 to R4C7A.D0 n2174 -CTOF_DEL --- 0.495 R4C7A.D0 to R4C7A.F0 SLICE_45 -ROUTE 1 0.000 R4C7A.F0 to R4C7A.DI0 UFMSDI_N_231 (to RCLK_c) +C2INP_DEL --- 0.577 IOL_L2A.CLK to IOL_L2A.IN Din[7]_MGIOL (from PHI2_c) +ROUTE 1 1.375 IOL_L2A.IN to R3C6A.D1 Bank[7] +CTOF_DEL --- 0.495 R3C6A.D1 to R3C6A.F1 SLICE_69 +ROUTE 1 0.693 R3C6A.F1 to R3C6A.B0 un1_Bank_1_3 +CTOF_DEL --- 0.495 R3C6A.B0 to R3C6A.F0 SLICE_69 +ROUTE 5 1.213 R3C6A.F0 to R4C8A.C0 un1_Bank_1 +CTOF_DEL --- 0.495 R4C8A.C0 to R4C8A.F0 SLICE_57 +ROUTE 5 0.710 R4C8A.F0 to R4C8B.B1 XOR8MEG18 +CTOF_DEL --- 0.495 R4C8B.B1 to R4C8B.F1 SLICE_20 +ROUTE 3 2.351 R4C8B.F1 to IOL_L2C.CE CmdUFMCLK_1_sqmuxa (to PHI2_c) -------- - 5.884 (41.3% logic, 58.7% route), 5 logic levels. + 8.899 (28.7% logic, 71.3% route), 5 logic levels. Clock Skew Details: - Source Clock Path RCLK to SLICE_0: + Source Clock Path PHI2 to Din[7]_MGIOL: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R6C8D.CLK RCLK_c +ROUTE 19 3.712 8.PADDI to IOL_L2A.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.712 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path RCLK to SLICE_45: + Destination Clock Path PHI2 to Din[0]_MGIOL: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R4C7A.CLK RCLK_c +ROUTE 19 3.712 8.PADDI to IOL_L2C.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.712 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 2.665ns +Passed: The following path meets requirements by 163.522ns (weighted slack = 327.044ns) Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q CASr2_383 (from RCLK_c +) - Destination: FF Data in nRCS_396 (to RCLK_c +) + Source: FF Q Bank_0io[4] (from PHI2_c +) + Destination: FF Data in CmdUFMSDI (to PHI2_c -) - Delay: 5.839ns (41.7% logic, 58.3% route), 5 logic levels. + Delay: 8.829ns (29.0% logic, 71.0% route), 5 logic levels. Constraint Details: - 5.839ns physical path delay SLICE_16 to SLICE_61 exceeds - 3.340ns delay constraint less + 8.829ns physical path delay Din[4]_MGIOL to Din[0]_MGIOL meets + 172.414ns delay constraint less 0.000ns skew and - 0.166ns DIN_SET requirement (totaling 3.174ns) by 2.665ns + 0.063ns CE_SET requirement (totaling 172.351ns) by 163.522ns Physical Path Details: - Data path SLICE_16 to SLICE_61: + Data path Din[4]_MGIOL to Din[0]_MGIOL: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R4C9B.CLK to R4C9B.Q1 SLICE_16 (from RCLK_c) -ROUTE 3 1.000 R4C9B.Q1 to R6C9D.A0 CASr2 -CTOF_DEL --- 0.495 R6C9D.A0 to R6C9D.F0 SLICE_96 -ROUTE 2 0.976 R6C9D.F0 to R6C9C.A0 nRCS_N_146 -CTOF_DEL --- 0.495 R6C9C.A0 to R6C9C.F0 SLICE_81 -ROUTE 2 0.995 R6C9C.F0 to R6C11D.A1 nRCS_N_142 -CTOF_DEL --- 0.495 R6C11D.A1 to R6C11D.F1 SLICE_61 -ROUTE 1 0.436 R6C11D.F1 to R6C11D.C0 nRCS_N_141 -CTOF_DEL --- 0.495 R6C11D.C0 to R6C11D.F0 SLICE_61 -ROUTE 1 0.000 R6C11D.F0 to R6C11D.DI0 nRCS_N_136 (to RCLK_c) +C2INP_DEL --- 0.577 IOL_T6A.CLK to IOL_T6A.IN Din[4]_MGIOL (from PHI2_c) +ROUTE 1 1.375 IOL_T6A.IN to R4C6A.D1 Bank[4] +CTOF_DEL --- 0.495 R4C6A.D1 to R4C6A.F1 SLICE_43 +ROUTE 1 0.623 R4C6A.F1 to R3C6A.D0 un1_Bank_1_4 +CTOF_DEL --- 0.495 R3C6A.D0 to R3C6A.F0 SLICE_69 +ROUTE 5 1.213 R3C6A.F0 to R4C8A.C0 un1_Bank_1 +CTOF_DEL --- 0.495 R4C8A.C0 to R4C8A.F0 SLICE_57 +ROUTE 5 0.710 R4C8A.F0 to R4C8B.B1 XOR8MEG18 +CTOF_DEL --- 0.495 R4C8B.B1 to R4C8B.F1 SLICE_20 +ROUTE 3 2.351 R4C8B.F1 to IOL_L2C.CE CmdUFMCLK_1_sqmuxa (to PHI2_c) -------- - 5.839 (41.7% logic, 58.3% route), 5 logic levels. + 8.829 (29.0% logic, 71.0% route), 5 logic levels. Clock Skew Details: - Source Clock Path RCLK to SLICE_16: + Source Clock Path PHI2 to Din[4]_MGIOL: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R4C9B.CLK RCLK_c +ROUTE 19 3.712 8.PADDI to IOL_T6A.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.712 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path RCLK to SLICE_61: + Destination Clock Path PHI2 to Din[0]_MGIOL: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R6C11D.CLK RCLK_c +ROUTE 19 3.712 8.PADDI to IOL_L2C.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.712 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 2.621ns +Passed: The following path meets requirements by 163.573ns (weighted slack = 327.146ns) Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q FS_610__i15 (from RCLK_c +) - Destination: FF Data in n8MEGEN_418 (to RCLK_c +) + Source: FF Q Bank_0io[3] (from PHI2_c +) + Destination: FF Data in CmdEnable (to PHI2_c -) - Delay: 5.679ns (34.1% logic, 65.9% route), 4 logic levels. + Delay: 8.502ns (44.4% logic, 55.6% route), 7 logic levels. Constraint Details: - 5.679ns physical path delay SLICE_9 to SLICE_57 exceeds - 3.340ns delay constraint less - 0.000ns skew and - 0.282ns CE_SET requirement (totaling 3.058ns) by 2.621ns + 8.502ns physical path delay Din[3]_MGIOL to SLICE_18 meets + 172.414ns delay constraint less + 0.173ns skew and + 0.166ns DIN_SET requirement (totaling 172.075ns) by 163.573ns Physical Path Details: - Data path SLICE_9 to SLICE_57: + Data path Din[3]_MGIOL to SLICE_18: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R6C9A.CLK to R6C9A.Q0 SLICE_9 (from RCLK_c) -ROUTE 3 1.320 R6C9A.Q0 to R4C8A.A0 FS_15 -CTOF_DEL --- 0.495 R4C8A.A0 to R4C8A.F0 SLICE_85 -ROUTE 5 0.793 R4C8A.F0 to R4C8B.C1 n10 -CTOF_DEL --- 0.495 R4C8B.C1 to R4C8B.F1 SLICE_57 -ROUTE 2 0.976 R4C8B.F1 to R4C8C.A0 n2367 -CTOF_DEL --- 0.495 R4C8C.A0 to R4C8C.F0 SLICE_84 -ROUTE 1 0.653 R4C8C.F0 to R4C8B.CE RCLK_c_enable_15 (to RCLK_c) +C2INP_DEL --- 0.577 IOL_T6C.CLK to IOL_T6C.IN Din[3]_MGIOL (from PHI2_c) +ROUTE 1 1.496 IOL_T6C.IN to R4C6A.C1 Bank[3] +CTOF_DEL --- 0.495 R4C6A.C1 to R4C6A.F1 SLICE_43 +ROUTE 1 0.623 R4C6A.F1 to R3C6A.D0 un1_Bank_1_4 +CTOF_DEL --- 0.495 R3C6A.D0 to R3C6A.F0 SLICE_69 +ROUTE 5 1.092 R3C6A.F0 to R4C8D.D0 un1_Bank_1 +CTOF_DEL --- 0.495 R4C8D.D0 to R4C8D.F0 SLICE_60 +ROUTE 2 0.758 R4C8D.F0 to R3C8D.C1 ADWR +CTOF_DEL --- 0.495 R3C8D.C1 to R3C8D.F1 SLICE_46 +ROUTE 3 0.445 R3C8D.F1 to R3C8D.C0 un1_ADWR +CTOF_DEL --- 0.495 R3C8D.C0 to R3C8D.F0 SLICE_46 +ROUTE 1 0.315 R3C8D.F0 to R3C8C.D0 un1_CMDWR +CTOOFX_DEL --- 0.721 R3C8C.D0 to R3C8C.OFX0 SLICE_18 +ROUTE 1 0.000 R3C8C.OFX0 to R3C8C.DI0 CmdEnable_s (to PHI2_c) -------- - 5.679 (34.1% logic, 65.9% route), 4 logic levels. + 8.502 (44.4% logic, 55.6% route), 7 logic levels. Clock Skew Details: - Source Clock Path RCLK to SLICE_9: + Source Clock Path PHI2 to Din[3]_MGIOL: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R6C9A.CLK RCLK_c +ROUTE 19 3.712 8.PADDI to IOL_T6C.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.712 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path RCLK to SLICE_57: + Destination Clock Path PHI2 to SLICE_18: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R4C8B.CLK RCLK_c +ROUTE 19 3.539 8.PADDI to R3C8C.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.539 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 2.513ns +Passed: The following path meets requirements by 163.624ns (weighted slack = 327.248ns) Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q FS_610__i12 (from RCLK_c +) - Destination: FF Data in n8MEGEN_418 (to RCLK_c +) + Source: FF Q Bank_0io[7] (from PHI2_c +) + Destination: FF Data in CmdEnable (to PHI2_c -) - Delay: 5.571ns (34.8% logic, 65.2% route), 4 logic levels. + Delay: 8.451ns (44.6% logic, 55.4% route), 7 logic levels. Constraint Details: - 5.571ns physical path delay SLICE_1 to SLICE_57 exceeds - 3.340ns delay constraint less - 0.000ns skew and - 0.282ns CE_SET requirement (totaling 3.058ns) by 2.513ns + 8.451ns physical path delay Din[7]_MGIOL to SLICE_18 meets + 172.414ns delay constraint less + 0.173ns skew and + 0.166ns DIN_SET requirement (totaling 172.075ns) by 163.624ns Physical Path Details: - Data path SLICE_1 to SLICE_57: + Data path Din[7]_MGIOL to SLICE_18: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R6C8C.CLK to R6C8C.Q1 SLICE_1 (from RCLK_c) -ROUTE 5 0.984 R6C8C.Q1 to R4C8D.D1 FS_12 -CTOF_DEL --- 0.495 R4C8D.D1 to R4C8D.F1 SLICE_80 -ROUTE 3 1.021 R4C8D.F1 to R4C8B.B1 n2375 -CTOF_DEL --- 0.495 R4C8B.B1 to R4C8B.F1 SLICE_57 -ROUTE 2 0.976 R4C8B.F1 to R4C8C.A0 n2367 -CTOF_DEL --- 0.495 R4C8C.A0 to R4C8C.F0 SLICE_84 -ROUTE 1 0.653 R4C8C.F0 to R4C8B.CE RCLK_c_enable_15 (to RCLK_c) +C2INP_DEL --- 0.577 IOL_L2A.CLK to IOL_L2A.IN Din[7]_MGIOL (from PHI2_c) +ROUTE 1 1.375 IOL_L2A.IN to R3C6A.D1 Bank[7] +CTOF_DEL --- 0.495 R3C6A.D1 to R3C6A.F1 SLICE_69 +ROUTE 1 0.693 R3C6A.F1 to R3C6A.B0 un1_Bank_1_3 +CTOF_DEL --- 0.495 R3C6A.B0 to R3C6A.F0 SLICE_69 +ROUTE 5 1.092 R3C6A.F0 to R4C8D.D0 un1_Bank_1 +CTOF_DEL --- 0.495 R4C8D.D0 to R4C8D.F0 SLICE_60 +ROUTE 2 0.758 R4C8D.F0 to R3C8D.C1 ADWR +CTOF_DEL --- 0.495 R3C8D.C1 to R3C8D.F1 SLICE_46 +ROUTE 3 0.445 R3C8D.F1 to R3C8D.C0 un1_ADWR +CTOF_DEL --- 0.495 R3C8D.C0 to R3C8D.F0 SLICE_46 +ROUTE 1 0.315 R3C8D.F0 to R3C8C.D0 un1_CMDWR +CTOOFX_DEL --- 0.721 R3C8C.D0 to R3C8C.OFX0 SLICE_18 +ROUTE 1 0.000 R3C8C.OFX0 to R3C8C.DI0 CmdEnable_s (to PHI2_c) -------- - 5.571 (34.8% logic, 65.2% route), 4 logic levels. + 8.451 (44.6% logic, 55.4% route), 7 logic levels. Clock Skew Details: - Source Clock Path RCLK to SLICE_1: + Source Clock Path PHI2 to Din[7]_MGIOL: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R6C8C.CLK RCLK_c +ROUTE 19 3.712 8.PADDI to IOL_L2A.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.712 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path RCLK to SLICE_57: + Destination Clock Path PHI2 to SLICE_18: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R4C8B.CLK RCLK_c +ROUTE 19 3.539 8.PADDI to R3C8C.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.539 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 2.487ns +Passed: The following path meets requirements by 163.694ns (weighted slack = 327.388ns) Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q FS_610__i3 (from RCLK_c +) - Destination: FF Data in n8MEGEN_418 (to RCLK_c +) + Source: FF Q Bank_0io[4] (from PHI2_c +) + Destination: FF Data in CmdEnable (to PHI2_c -) - Delay: 5.545ns (34.9% logic, 65.1% route), 4 logic levels. + Delay: 8.381ns (45.0% logic, 55.0% route), 7 logic levels. Constraint Details: - 5.545ns physical path delay SLICE_8 to SLICE_57 exceeds - 3.340ns delay constraint less - 0.000ns skew and - 0.282ns CE_SET requirement (totaling 3.058ns) by 2.487ns + 8.381ns physical path delay Din[4]_MGIOL to SLICE_18 meets + 172.414ns delay constraint less + 0.173ns skew and + 0.166ns DIN_SET requirement (totaling 172.075ns) by 163.694ns Physical Path Details: - Data path SLICE_8 to SLICE_57: + Data path Din[4]_MGIOL to SLICE_18: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R6C7C.CLK to R6C7C.Q0 SLICE_8 (from RCLK_c) -ROUTE 2 1.306 R6C7C.Q0 to R4C7D.A1 FS_3 -CTOF_DEL --- 0.495 R4C7D.A1 to R4C7D.F1 SLICE_86 -ROUTE 1 1.004 R4C7D.F1 to R4C7D.B0 n14 -CTOF_DEL --- 0.495 R4C7D.B0 to R4C7D.F0 SLICE_86 -ROUTE 1 0.645 R4C7D.F0 to R4C8C.D0 n4_adj_7 -CTOF_DEL --- 0.495 R4C8C.D0 to R4C8C.F0 SLICE_84 -ROUTE 1 0.653 R4C8C.F0 to R4C8B.CE RCLK_c_enable_15 (to RCLK_c) +C2INP_DEL --- 0.577 IOL_T6A.CLK to IOL_T6A.IN Din[4]_MGIOL (from PHI2_c) +ROUTE 1 1.375 IOL_T6A.IN to R4C6A.D1 Bank[4] +CTOF_DEL --- 0.495 R4C6A.D1 to R4C6A.F1 SLICE_43 +ROUTE 1 0.623 R4C6A.F1 to R3C6A.D0 un1_Bank_1_4 +CTOF_DEL --- 0.495 R3C6A.D0 to R3C6A.F0 SLICE_69 +ROUTE 5 1.092 R3C6A.F0 to R4C8D.D0 un1_Bank_1 +CTOF_DEL --- 0.495 R4C8D.D0 to R4C8D.F0 SLICE_60 +ROUTE 2 0.758 R4C8D.F0 to R3C8D.C1 ADWR +CTOF_DEL --- 0.495 R3C8D.C1 to R3C8D.F1 SLICE_46 +ROUTE 3 0.445 R3C8D.F1 to R3C8D.C0 un1_ADWR +CTOF_DEL --- 0.495 R3C8D.C0 to R3C8D.F0 SLICE_46 +ROUTE 1 0.315 R3C8D.F0 to R3C8C.D0 un1_CMDWR +CTOOFX_DEL --- 0.721 R3C8C.D0 to R3C8C.OFX0 SLICE_18 +ROUTE 1 0.000 R3C8C.OFX0 to R3C8C.DI0 CmdEnable_s (to PHI2_c) -------- - 5.545 (34.9% logic, 65.1% route), 4 logic levels. + 8.381 (45.0% logic, 55.0% route), 7 logic levels. Clock Skew Details: - Source Clock Path RCLK to SLICE_8: + Source Clock Path PHI2 to Din[4]_MGIOL: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R6C7C.CLK RCLK_c +ROUTE 19 3.712 8.PADDI to IOL_T6A.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.712 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path RCLK to SLICE_57: + Destination Clock Path PHI2 to SLICE_18: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R4C8B.CLK RCLK_c +ROUTE 19 3.539 8.PADDI to R3C8C.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.539 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 2.479ns +Passed: The following path meets requirements by 163.812ns (weighted slack = 327.624ns) Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q FS_610__i15 (from RCLK_c +) - Destination: FF Data in nUFMCS_415 (to RCLK_c +) + Source: FF Q Bank_0io[0] (from PHI2_c +) + Destination: FF Data in CmdUFMSDI (to PHI2_c -) - Delay: 5.653ns (43.0% logic, 57.0% route), 5 logic levels. + Delay: 8.712ns (27.9% logic, 72.1% route), 5 logic levels. Constraint Details: - 5.653ns physical path delay SLICE_9 to SLICE_70 exceeds - 3.340ns delay constraint less - 0.000ns skew and - 0.166ns DIN_SET requirement (totaling 3.174ns) by 2.479ns + 8.712ns physical path delay SLICE_63 to Din[0]_MGIOL meets + 172.414ns delay constraint less + -0.173ns skew and + 0.063ns CE_SET requirement (totaling 172.524ns) by 163.812ns Physical Path Details: - Data path SLICE_9 to SLICE_70: + Data path SLICE_63 to Din[0]_MGIOL: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R6C9A.CLK to R6C9A.Q0 SLICE_9 (from RCLK_c) -ROUTE 3 1.320 R6C9A.Q0 to R4C8A.A0 FS_15 -CTOF_DEL --- 0.495 R4C8A.A0 to R4C8A.F0 SLICE_85 -ROUTE 5 0.640 R4C8A.F0 to R4C9D.D1 n10 -CTOF_DEL --- 0.495 R4C9D.D1 to R4C9D.F1 SLICE_76 -ROUTE 2 0.635 R4C9D.F1 to R4C9A.D1 n2368 -CTOF_DEL --- 0.495 R4C9A.D1 to R4C9A.F1 SLICE_70 -ROUTE 1 0.626 R4C9A.F1 to R4C9A.D0 n64 -CTOF_DEL --- 0.495 R4C9A.D0 to R4C9A.F0 SLICE_70 -ROUTE 1 0.000 R4C9A.F0 to R4C9A.DI0 nUFMCS_N_199 (to RCLK_c) +REG_DEL --- 0.452 R4C7A.CLK to R4C7A.Q0 SLICE_63 (from PHI2_c) +ROUTE 1 1.383 R4C7A.Q0 to R4C6A.A1 Bank[0] +CTOF_DEL --- 0.495 R4C6A.A1 to R4C6A.F1 SLICE_43 +ROUTE 1 0.623 R4C6A.F1 to R3C6A.D0 un1_Bank_1_4 +CTOF_DEL --- 0.495 R3C6A.D0 to R3C6A.F0 SLICE_69 +ROUTE 5 1.213 R3C6A.F0 to R4C8A.C0 un1_Bank_1 +CTOF_DEL --- 0.495 R4C8A.C0 to R4C8A.F0 SLICE_57 +ROUTE 5 0.710 R4C8A.F0 to R4C8B.B1 XOR8MEG18 +CTOF_DEL --- 0.495 R4C8B.B1 to R4C8B.F1 SLICE_20 +ROUTE 3 2.351 R4C8B.F1 to IOL_L2C.CE CmdUFMCLK_1_sqmuxa (to PHI2_c) -------- - 5.653 (43.0% logic, 57.0% route), 5 logic levels. + 8.712 (27.9% logic, 72.1% route), 5 logic levels. Clock Skew Details: - Source Clock Path RCLK to SLICE_9: + Source Clock Path PHI2 to SLICE_63: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R6C9A.CLK RCLK_c +ROUTE 19 3.539 8.PADDI to R4C7A.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.539 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path RCLK to SLICE_70: + Destination Clock Path PHI2 to Din[0]_MGIOL: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R4C9A.CLK RCLK_c +ROUTE 19 3.712 8.PADDI to IOL_L2C.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.712 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 2.452ns +Passed: The following path meets requirements by 163.984ns (weighted slack = 327.968ns) Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q FS_610__i15 (from RCLK_c +) - Destination: FF Data in UFMCLK_416 (to RCLK_c +) + Source: FF Q Bank_0io[0] (from PHI2_c +) + Destination: FF Data in CmdEnable (to PHI2_c -) - Delay: 5.626ns (43.2% logic, 56.8% route), 5 logic levels. + Delay: 8.264ns (44.1% logic, 55.9% route), 7 logic levels. Constraint Details: - 5.626ns physical path delay SLICE_9 to SLICE_44 exceeds - 3.340ns delay constraint less + 8.264ns physical path delay SLICE_63 to SLICE_18 meets + 172.414ns delay constraint less 0.000ns skew and - 0.166ns DIN_SET requirement (totaling 3.174ns) by 2.452ns + 0.166ns DIN_SET requirement (totaling 172.248ns) by 163.984ns Physical Path Details: - Data path SLICE_9 to SLICE_44: + Data path SLICE_63 to SLICE_18: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R6C9A.CLK to R6C9A.Q0 SLICE_9 (from RCLK_c) -ROUTE 3 1.320 R6C9A.Q0 to R4C8A.A0 FS_15 -CTOF_DEL --- 0.495 R4C8A.A0 to R4C8A.F0 SLICE_85 -ROUTE 5 0.672 R4C8A.F0 to R4C8A.D1 n10 -CTOF_DEL --- 0.495 R4C8A.D1 to R4C8A.F1 SLICE_85 -ROUTE 1 0.766 R4C8A.F1 to R4C6B.C1 n2267 -CTOF_DEL --- 0.495 R4C6B.C1 to R4C6B.F1 SLICE_44 -ROUTE 1 0.436 R4C6B.F1 to R4C6B.C0 n1893 -CTOF_DEL --- 0.495 R4C6B.C0 to R4C6B.F0 SLICE_44 -ROUTE 1 0.000 R4C6B.F0 to R4C6B.DI0 UFMCLK_N_224 (to RCLK_c) +REG_DEL --- 0.452 R4C7A.CLK to R4C7A.Q0 SLICE_63 (from PHI2_c) +ROUTE 1 1.383 R4C7A.Q0 to R4C6A.A1 Bank[0] +CTOF_DEL --- 0.495 R4C6A.A1 to R4C6A.F1 SLICE_43 +ROUTE 1 0.623 R4C6A.F1 to R3C6A.D0 un1_Bank_1_4 +CTOF_DEL --- 0.495 R3C6A.D0 to R3C6A.F0 SLICE_69 +ROUTE 5 1.092 R3C6A.F0 to R4C8D.D0 un1_Bank_1 +CTOF_DEL --- 0.495 R4C8D.D0 to R4C8D.F0 SLICE_60 +ROUTE 2 0.758 R4C8D.F0 to R3C8D.C1 ADWR +CTOF_DEL --- 0.495 R3C8D.C1 to R3C8D.F1 SLICE_46 +ROUTE 3 0.445 R3C8D.F1 to R3C8D.C0 un1_ADWR +CTOF_DEL --- 0.495 R3C8D.C0 to R3C8D.F0 SLICE_46 +ROUTE 1 0.315 R3C8D.F0 to R3C8C.D0 un1_CMDWR +CTOOFX_DEL --- 0.721 R3C8C.D0 to R3C8C.OFX0 SLICE_18 +ROUTE 1 0.000 R3C8C.OFX0 to R3C8C.DI0 CmdEnable_s (to PHI2_c) -------- - 5.626 (43.2% logic, 56.8% route), 5 logic levels. + 8.264 (44.1% logic, 55.9% route), 7 logic levels. Clock Skew Details: - Source Clock Path RCLK to SLICE_9: + Source Clock Path PHI2 to SLICE_63: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R6C9A.CLK RCLK_c +ROUTE 19 3.539 8.PADDI to R4C7A.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.539 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path RCLK to SLICE_44: + Destination Clock Path PHI2 to SLICE_18: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R4C6B.CLK RCLK_c +ROUTE 19 3.539 8.PADDI to R3C8C.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.539 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 2.438ns +Passed: The following path meets requirements by 164.041ns (weighted slack = 328.082ns) Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q CASr3_384 (from RCLK_c +) - Destination: FF Data in nRCS_396 (to RCLK_c +) + Source: FF Q Bank_0io[3] (from PHI2_c +) + Destination: FF Data in ADSubmitted (to PHI2_c -) - Delay: 5.612ns (43.3% logic, 56.7% route), 5 logic levels. + Delay: 8.034ns (38.0% logic, 62.0% route), 6 logic levels. Constraint Details: - 5.612ns physical path delay SLICE_5 to SLICE_61 exceeds - 3.340ns delay constraint less - 0.000ns skew and - 0.166ns DIN_SET requirement (totaling 3.174ns) by 2.438ns + 8.034ns physical path delay Din[3]_MGIOL to SLICE_10 meets + 172.414ns delay constraint less + 0.173ns skew and + 0.166ns DIN_SET requirement (totaling 172.075ns) by 164.041ns Physical Path Details: - Data path SLICE_5 to SLICE_61: + Data path Din[3]_MGIOL to SLICE_10: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R6C7A.CLK to R6C7A.Q0 SLICE_5 (from RCLK_c) -ROUTE 2 0.773 R6C7A.Q0 to R6C9D.C0 CASr3 -CTOF_DEL --- 0.495 R6C9D.C0 to R6C9D.F0 SLICE_96 -ROUTE 2 0.976 R6C9D.F0 to R6C9C.A0 nRCS_N_146 -CTOF_DEL --- 0.495 R6C9C.A0 to R6C9C.F0 SLICE_81 -ROUTE 2 0.995 R6C9C.F0 to R6C11D.A1 nRCS_N_142 -CTOF_DEL --- 0.495 R6C11D.A1 to R6C11D.F1 SLICE_61 -ROUTE 1 0.436 R6C11D.F1 to R6C11D.C0 nRCS_N_141 -CTOF_DEL --- 0.495 R6C11D.C0 to R6C11D.F0 SLICE_61 -ROUTE 1 0.000 R6C11D.F0 to R6C11D.DI0 nRCS_N_136 (to RCLK_c) +C2INP_DEL --- 0.577 IOL_T6C.CLK to IOL_T6C.IN Din[3]_MGIOL (from PHI2_c) +ROUTE 1 1.496 IOL_T6C.IN to R4C6A.C1 Bank[3] +CTOF_DEL --- 0.495 R4C6A.C1 to R4C6A.F1 SLICE_43 +ROUTE 1 0.623 R4C6A.F1 to R3C6A.D0 un1_Bank_1_4 +CTOF_DEL --- 0.495 R3C6A.D0 to R3C6A.F0 SLICE_69 +ROUTE 5 1.092 R3C6A.F0 to R4C8D.D0 un1_Bank_1 +CTOF_DEL --- 0.495 R4C8D.D0 to R4C8D.F0 SLICE_60 +ROUTE 2 0.758 R4C8D.F0 to R3C8B.C1 ADWR +CTOF_DEL --- 0.495 R3C8B.C1 to R3C8B.F1 SLICE_10 +ROUTE 2 1.013 R3C8B.F1 to R3C8B.B0 CmdEnable17 +CTOF_DEL --- 0.495 R3C8B.B0 to R3C8B.F0 SLICE_10 +ROUTE 1 0.000 R3C8B.F0 to R3C8B.DI0 ADSubmitted_r (to PHI2_c) -------- - 5.612 (43.3% logic, 56.7% route), 5 logic levels. + 8.034 (38.0% logic, 62.0% route), 6 logic levels. Clock Skew Details: - Source Clock Path RCLK to SLICE_5: + Source Clock Path PHI2 to Din[3]_MGIOL: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R6C7A.CLK RCLK_c +ROUTE 19 3.712 8.PADDI to IOL_T6C.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.712 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path RCLK to SLICE_61: + Destination Clock Path PHI2 to SLICE_10: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R6C11D.CLK RCLK_c +ROUTE 19 3.539 8.PADDI to R3C8B.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.539 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 2.423ns +Passed: The following path meets requirements by 164.046ns (weighted slack = 328.092ns) Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q FS_610__i13 (from RCLK_c +) - Destination: FF Data in UFMCLK_416 (to RCLK_c +) + Source: FF Q Bank_0io[2] (from PHI2_c +) + Destination: FF Data in CmdUFMSDI (to PHI2_c -) - Delay: 5.597ns (43.5% logic, 56.5% route), 5 logic levels. + Delay: 8.478ns (28.7% logic, 71.3% route), 5 logic levels. Constraint Details: - 5.597ns physical path delay SLICE_0 to SLICE_44 exceeds - 3.340ns delay constraint less - 0.000ns skew and - 0.166ns DIN_SET requirement (totaling 3.174ns) by 2.423ns + 8.478ns physical path delay SLICE_68 to Din[0]_MGIOL meets + 172.414ns delay constraint less + -0.173ns skew and + 0.063ns CE_SET requirement (totaling 172.524ns) by 164.046ns Physical Path Details: - Data path SLICE_0 to SLICE_44: + Data path SLICE_68 to Din[0]_MGIOL: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R6C8D.CLK to R6C8D.Q0 SLICE_0 (from RCLK_c) -ROUTE 3 1.433 R6C8D.Q0 to R6C6C.B0 FS_13 -CTOF_DEL --- 0.495 R6C6C.B0 to R6C6C.F0 SLICE_105 -ROUTE 1 0.315 R6C6C.F0 to R6C6A.D1 n12 -CTOF_DEL --- 0.495 R6C6A.D1 to R6C6A.F1 SLICE_82 -ROUTE 3 0.981 R6C6A.F1 to R4C6B.D1 n13_adj_6 -CTOF_DEL --- 0.495 R4C6B.D1 to R4C6B.F1 SLICE_44 -ROUTE 1 0.436 R4C6B.F1 to R4C6B.C0 n1893 -CTOF_DEL --- 0.495 R4C6B.C0 to R4C6B.F0 SLICE_44 -ROUTE 1 0.000 R4C6B.F0 to R4C6B.DI0 UFMCLK_N_224 (to RCLK_c) +REG_DEL --- 0.452 R3C9C.CLK to R3C9C.Q0 SLICE_68 (from PHI2_c) +ROUTE 1 1.079 R3C9C.Q0 to R3C6A.C1 Bank[2] +CTOF_DEL --- 0.495 R3C6A.C1 to R3C6A.F1 SLICE_69 +ROUTE 1 0.693 R3C6A.F1 to R3C6A.B0 un1_Bank_1_3 +CTOF_DEL --- 0.495 R3C6A.B0 to R3C6A.F0 SLICE_69 +ROUTE 5 1.213 R3C6A.F0 to R4C8A.C0 un1_Bank_1 +CTOF_DEL --- 0.495 R4C8A.C0 to R4C8A.F0 SLICE_57 +ROUTE 5 0.710 R4C8A.F0 to R4C8B.B1 XOR8MEG18 +CTOF_DEL --- 0.495 R4C8B.B1 to R4C8B.F1 SLICE_20 +ROUTE 3 2.351 R4C8B.F1 to IOL_L2C.CE CmdUFMCLK_1_sqmuxa (to PHI2_c) -------- - 5.597 (43.5% logic, 56.5% route), 5 logic levels. + 8.478 (28.7% logic, 71.3% route), 5 logic levels. Clock Skew Details: - Source Clock Path RCLK to SLICE_0: + Source Clock Path PHI2 to SLICE_68: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R6C8D.CLK RCLK_c +ROUTE 19 3.539 8.PADDI to R3C9C.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.539 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path RCLK to SLICE_44: + Destination Clock Path PHI2 to Din[0]_MGIOL: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R4C6B.CLK RCLK_c +ROUTE 19 3.712 8.PADDI to IOL_L2C.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.712 (0.0% logic, 100.0% route), 0 logic levels. -Warning: 160.205MHz is the maximum frequency for this preference. +Report: 55.475MHz is the maximum frequency for this preference. ================================================================================ -Preference: FREQUENCY NET "PHI2_c" 99.079000 MHz ; - 113 items scored, 85 timing errors detected. +Preference: FREQUENCY PORT "nCCAS" 2.900000 MHz ; + 0 items scored, 0 timing errors detected. -------------------------------------------------------------------------------- -Error: The following path exceeds requirements by 2.561ns (weighted slack = -5.122ns) +Passed: The following path meets requirements by 338.168ns + The internal maximum frequency of the following component is 150.150 MHz + + Logical Details: Cell type Pin name Component name + + Destination: PIO PAD nCCAS + + Delay: 6.660ns -- based on Minimum Pulse Width + +Report: 150.150MHz is the maximum frequency for this preference. + + +================================================================================ +Preference: FREQUENCY PORT "nCRAS" 2.900000 MHz ; + 0 items scored, 0 timing errors detected. +-------------------------------------------------------------------------------- + + +Passed: The following path meets requirements by 338.168ns + The internal maximum frequency of the following component is 150.150 MHz + + Logical Details: Cell type Pin name Component name + + Destination: PIO PAD nCRAS + + Delay: 6.660ns -- based on Minimum Pulse Width + +Report: 150.150MHz is the maximum frequency for this preference. + + +================================================================================ +Preference: FREQUENCY PORT "RCLK" 62.500000 MHz ; + 590 items scored, 0 timing errors detected. +-------------------------------------------------------------------------------- + + +Passed: The following path meets requirements by 6.127ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q Bank_i3 (from PHI2_c +) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) + Source: FF Q FS[12] (from RCLK_c +) + Destination: FF Data in LEDEN (to RCLK_c +) - Delay: 7.301ns (40.1% logic, 59.9% route), 6 logic levels. + Delay: 9.591ns (35.7% logic, 64.3% route), 7 logic levels. Constraint Details: - 7.301ns physical path delay SLICE_103 to SLICE_19 exceeds - 5.047ns delay constraint less + 9.591ns physical path delay SLICE_4 to SLICE_27 meets + 16.000ns delay constraint less 0.000ns skew and - 0.307ns CE_SET requirement (totaling 4.740ns) by 2.561ns + 0.282ns CE_SET requirement (totaling 15.718ns) by 6.127ns Physical Path Details: - Data path SLICE_103 to SLICE_19: + Data path SLICE_4 to SLICE_27: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R5C9B.CLK to R5C9B.Q1 SLICE_103 (from PHI2_c) -ROUTE 1 1.023 R5C9B.Q1 to R5C7A.B0 Bank_3 -CTOF_DEL --- 0.495 R5C7A.B0 to R5C7A.F0 SLICE_68 -ROUTE 1 0.626 R5C7A.F0 to R5C7D.D1 n2287 -CTOF_DEL --- 0.495 R5C7D.D1 to R5C7D.F1 SLICE_74 -ROUTE 8 0.693 R5C7D.F1 to R5C8A.D1 n26 -CTOF_DEL --- 0.495 R5C8A.D1 to R5C8A.F1 SLICE_91 -ROUTE 1 0.744 R5C8A.F1 to R5C9A.C0 n2362 -CTOF_DEL --- 0.495 R5C9A.C0 to R5C9A.F0 SLICE_88 -ROUTE 3 0.635 R5C9A.F0 to R5C9A.D1 C1Submitted_N_237 -CTOF_DEL --- 0.495 R5C9A.D1 to R5C9A.F1 SLICE_88 -ROUTE 1 0.653 R5C9A.F1 to R5C9D.CE PHI2_N_120_enable_1 (to PHI2_c) +REG_DEL --- 0.452 R6C4C.CLK to R6C4C.Q1 SLICE_4 (from RCLK_c) +ROUTE 3 1.177 R6C4C.Q1 to R6C5D.C1 FS[12] +CTOF_DEL --- 0.495 R6C5D.C1 to R6C5D.F1 SLICE_72 +ROUTE 1 0.315 R6C5D.F1 to R6C5C.D1 UFMSDI_ens2_i_o2_0_3 +CTOF_DEL --- 0.495 R6C5C.D1 to R6C5C.F1 SLICE_64 +ROUTE 4 0.988 R6C5C.F1 to R5C4C.D1 N_129 +CTOF_DEL --- 0.495 R5C4C.D1 to R5C4C.F1 SLICE_59 +ROUTE 2 0.445 R5C4C.F1 to R5C4C.C0 N_145 +CTOF_DEL --- 0.495 R5C4C.C0 to R5C4C.F0 SLICE_59 +ROUTE 2 0.753 R5C4C.F0 to R5C3A.C0 N_139_8 +CTOF_DEL --- 0.495 R5C3A.C0 to R5C3A.F0 SLICE_56 +ROUTE 1 1.079 R5C3A.F0 to R4C4D.C0 N_140 +CTOF_DEL --- 0.495 R4C4D.C0 to R4C4D.F0 SLICE_54 +ROUTE 1 1.412 R4C4D.F0 to R5C7B.CE N_28 (to RCLK_c) -------- - 7.301 (40.1% logic, 59.9% route), 6 logic levels. + 9.591 (35.7% logic, 64.3% route), 7 logic levels. Clock Skew Details: - Source Clock Path PHI2 to SLICE_103: + Source Clock Path RCLK to SLICE_4: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R5C9B.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R6C4C.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path PHI2 to SLICE_19: + Destination Clock Path RCLK to SLICE_27: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R5C9D.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R5C7B.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 2.184ns (weighted slack = -4.368ns) +Passed: The following path meets requirements by 6.287ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q Bank_i3 (from PHI2_c +) - Destination: FF Data in ADSubmitted_407 (to PHI2_c -) + Source: FF Q FS[17] (from RCLK_c +) + Destination: FF Data in LEDEN (to RCLK_c +) - Delay: 6.946ns (35.0% logic, 65.0% route), 5 logic levels. + Delay: 9.431ns (36.3% logic, 63.7% route), 7 logic levels. Constraint Details: - 6.946ns physical path delay SLICE_103 to SLICE_10 exceeds - 5.047ns delay constraint less + 9.431ns physical path delay SLICE_1 to SLICE_27 meets + 16.000ns delay constraint less 0.000ns skew and - 0.285ns LSR_SET requirement (totaling 4.762ns) by 2.184ns + 0.282ns CE_SET requirement (totaling 15.718ns) by 6.287ns Physical Path Details: - Data path SLICE_103 to SLICE_10: + Data path SLICE_1 to SLICE_27: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R5C9B.CLK to R5C9B.Q1 SLICE_103 (from PHI2_c) -ROUTE 1 1.023 R5C9B.Q1 to R5C7A.B0 Bank_3 -CTOF_DEL --- 0.495 R5C7A.B0 to R5C7A.F0 SLICE_68 -ROUTE 1 0.626 R5C7A.F0 to R5C7D.D1 n2287 -CTOF_DEL --- 0.495 R5C7D.D1 to R5C7D.F1 SLICE_74 -ROUTE 8 0.693 R5C7D.F1 to R5C8A.D1 n26 -CTOF_DEL --- 0.495 R5C8A.D1 to R5C8A.F1 SLICE_91 -ROUTE 1 0.744 R5C8A.F1 to R5C9A.C0 n2362 -CTOF_DEL --- 0.495 R5C9A.C0 to R5C9A.F0 SLICE_88 -ROUTE 3 1.428 R5C9A.F0 to R3C8A.LSR C1Submitted_N_237 (to PHI2_c) +REG_DEL --- 0.452 R6C5B.CLK to R6C5B.Q0 SLICE_1 (from RCLK_c) +ROUTE 3 1.017 R6C5B.Q0 to R6C5D.B1 FS[17] +CTOF_DEL --- 0.495 R6C5D.B1 to R6C5D.F1 SLICE_72 +ROUTE 1 0.315 R6C5D.F1 to R6C5C.D1 UFMSDI_ens2_i_o2_0_3 +CTOF_DEL --- 0.495 R6C5C.D1 to R6C5C.F1 SLICE_64 +ROUTE 4 0.988 R6C5C.F1 to R5C4C.D1 N_129 +CTOF_DEL --- 0.495 R5C4C.D1 to R5C4C.F1 SLICE_59 +ROUTE 2 0.445 R5C4C.F1 to R5C4C.C0 N_145 +CTOF_DEL --- 0.495 R5C4C.C0 to R5C4C.F0 SLICE_59 +ROUTE 2 0.753 R5C4C.F0 to R5C3A.C0 N_139_8 +CTOF_DEL --- 0.495 R5C3A.C0 to R5C3A.F0 SLICE_56 +ROUTE 1 1.079 R5C3A.F0 to R4C4D.C0 N_140 +CTOF_DEL --- 0.495 R4C4D.C0 to R4C4D.F0 SLICE_54 +ROUTE 1 1.412 R4C4D.F0 to R5C7B.CE N_28 (to RCLK_c) -------- - 6.946 (35.0% logic, 65.0% route), 5 logic levels. + 9.431 (36.3% logic, 63.7% route), 7 logic levels. Clock Skew Details: - Source Clock Path PHI2 to SLICE_103: + Source Clock Path RCLK to SLICE_1: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R5C9B.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R6C5B.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path PHI2 to SLICE_10: + Destination Clock Path RCLK to SLICE_27: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R3C8A.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R5C7B.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 2.184ns (weighted slack = -4.368ns) +Passed: The following path meets requirements by 6.319ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q Bank_i3 (from PHI2_c +) - Destination: FF Data in C1Submitted_406 (to PHI2_c -) + Source: FF Q FS[13] (from RCLK_c +) + Destination: FF Data in LEDEN (to RCLK_c +) - Delay: 6.946ns (35.0% logic, 65.0% route), 5 logic levels. + Delay: 9.399ns (36.4% logic, 63.6% route), 7 logic levels. Constraint Details: - 6.946ns physical path delay SLICE_103 to SLICE_15 exceeds - 5.047ns delay constraint less + 9.399ns physical path delay SLICE_3 to SLICE_27 meets + 16.000ns delay constraint less 0.000ns skew and - 0.285ns LSR_SET requirement (totaling 4.762ns) by 2.184ns + 0.282ns CE_SET requirement (totaling 15.718ns) by 6.319ns Physical Path Details: - Data path SLICE_103 to SLICE_15: + Data path SLICE_3 to SLICE_27: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R5C9B.CLK to R5C9B.Q1 SLICE_103 (from PHI2_c) -ROUTE 1 1.023 R5C9B.Q1 to R5C7A.B0 Bank_3 -CTOF_DEL --- 0.495 R5C7A.B0 to R5C7A.F0 SLICE_68 -ROUTE 1 0.626 R5C7A.F0 to R5C7D.D1 n2287 -CTOF_DEL --- 0.495 R5C7D.D1 to R5C7D.F1 SLICE_74 -ROUTE 8 0.693 R5C7D.F1 to R5C8A.D1 n26 -CTOF_DEL --- 0.495 R5C8A.D1 to R5C8A.F1 SLICE_91 -ROUTE 1 0.744 R5C8A.F1 to R5C9A.C0 n2362 -CTOF_DEL --- 0.495 R5C9A.C0 to R5C9A.F0 SLICE_88 -ROUTE 3 1.428 R5C9A.F0 to R3C8B.LSR C1Submitted_N_237 (to PHI2_c) +REG_DEL --- 0.452 R6C4D.CLK to R6C4D.Q0 SLICE_3 (from RCLK_c) +ROUTE 3 0.985 R6C4D.Q0 to R6C5D.A1 FS[13] +CTOF_DEL --- 0.495 R6C5D.A1 to R6C5D.F1 SLICE_72 +ROUTE 1 0.315 R6C5D.F1 to R6C5C.D1 UFMSDI_ens2_i_o2_0_3 +CTOF_DEL --- 0.495 R6C5C.D1 to R6C5C.F1 SLICE_64 +ROUTE 4 0.988 R6C5C.F1 to R5C4C.D1 N_129 +CTOF_DEL --- 0.495 R5C4C.D1 to R5C4C.F1 SLICE_59 +ROUTE 2 0.445 R5C4C.F1 to R5C4C.C0 N_145 +CTOF_DEL --- 0.495 R5C4C.C0 to R5C4C.F0 SLICE_59 +ROUTE 2 0.753 R5C4C.F0 to R5C3A.C0 N_139_8 +CTOF_DEL --- 0.495 R5C3A.C0 to R5C3A.F0 SLICE_56 +ROUTE 1 1.079 R5C3A.F0 to R4C4D.C0 N_140 +CTOF_DEL --- 0.495 R4C4D.C0 to R4C4D.F0 SLICE_54 +ROUTE 1 1.412 R4C4D.F0 to R5C7B.CE N_28 (to RCLK_c) -------- - 6.946 (35.0% logic, 65.0% route), 5 logic levels. + 9.399 (36.4% logic, 63.6% route), 7 logic levels. Clock Skew Details: - Source Clock Path PHI2 to SLICE_103: + Source Clock Path RCLK to SLICE_3: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R5C9B.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R6C4D.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path PHI2 to SLICE_15: + Destination Clock Path RCLK to SLICE_27: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R3C8B.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R5C7B.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 2.161ns (weighted slack = -4.322ns) +Passed: The following path meets requirements by 6.646ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q Bank_i6 (from PHI2_c +) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) + Source: FF Q FS[14] (from RCLK_c +) + Destination: FF Data in LEDEN (to RCLK_c +) - Delay: 6.901ns (42.4% logic, 57.6% route), 6 logic levels. + Delay: 9.072ns (37.7% logic, 62.3% route), 7 logic levels. Constraint Details: - 6.901ns physical path delay SLICE_101 to SLICE_19 exceeds - 5.047ns delay constraint less + 9.072ns physical path delay SLICE_3 to SLICE_27 meets + 16.000ns delay constraint less 0.000ns skew and - 0.307ns CE_SET requirement (totaling 4.740ns) by 2.161ns + 0.282ns CE_SET requirement (totaling 15.718ns) by 6.646ns Physical Path Details: - Data path SLICE_101 to SLICE_19: + Data path SLICE_3 to SLICE_27: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R4C7C.CLK to R4C7C.Q0 SLICE_101 (from PHI2_c) -ROUTE 1 0.623 R4C7C.Q0 to R5C7A.D0 Bank_6 -CTOF_DEL --- 0.495 R5C7A.D0 to R5C7A.F0 SLICE_68 -ROUTE 1 0.626 R5C7A.F0 to R5C7D.D1 n2287 -CTOF_DEL --- 0.495 R5C7D.D1 to R5C7D.F1 SLICE_74 -ROUTE 8 0.693 R5C7D.F1 to R5C8A.D1 n26 -CTOF_DEL --- 0.495 R5C8A.D1 to R5C8A.F1 SLICE_91 -ROUTE 1 0.744 R5C8A.F1 to R5C9A.C0 n2362 -CTOF_DEL --- 0.495 R5C9A.C0 to R5C9A.F0 SLICE_88 -ROUTE 3 0.635 R5C9A.F0 to R5C9A.D1 C1Submitted_N_237 -CTOF_DEL --- 0.495 R5C9A.D1 to R5C9A.F1 SLICE_88 -ROUTE 1 0.653 R5C9A.F1 to R5C9D.CE PHI2_N_120_enable_1 (to PHI2_c) +REG_DEL --- 0.452 R6C4D.CLK to R6C4D.Q1 SLICE_3 (from RCLK_c) +ROUTE 3 0.658 R6C4D.Q1 to R6C5D.D1 FS[14] +CTOF_DEL --- 0.495 R6C5D.D1 to R6C5D.F1 SLICE_72 +ROUTE 1 0.315 R6C5D.F1 to R6C5C.D1 UFMSDI_ens2_i_o2_0_3 +CTOF_DEL --- 0.495 R6C5C.D1 to R6C5C.F1 SLICE_64 +ROUTE 4 0.988 R6C5C.F1 to R5C4C.D1 N_129 +CTOF_DEL --- 0.495 R5C4C.D1 to R5C4C.F1 SLICE_59 +ROUTE 2 0.445 R5C4C.F1 to R5C4C.C0 N_145 +CTOF_DEL --- 0.495 R5C4C.C0 to R5C4C.F0 SLICE_59 +ROUTE 2 0.753 R5C4C.F0 to R5C3A.C0 N_139_8 +CTOF_DEL --- 0.495 R5C3A.C0 to R5C3A.F0 SLICE_56 +ROUTE 1 1.079 R5C3A.F0 to R4C4D.C0 N_140 +CTOF_DEL --- 0.495 R4C4D.C0 to R4C4D.F0 SLICE_54 +ROUTE 1 1.412 R4C4D.F0 to R5C7B.CE N_28 (to RCLK_c) -------- - 6.901 (42.4% logic, 57.6% route), 6 logic levels. + 9.072 (37.7% logic, 62.3% route), 7 logic levels. Clock Skew Details: - Source Clock Path PHI2 to SLICE_101: + Source Clock Path RCLK to SLICE_3: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R4C7C.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R6C4D.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path PHI2 to SLICE_19: + Destination Clock Path RCLK to SLICE_27: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R5C9D.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R5C7B.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 2.092ns (weighted slack = -4.184ns) +Passed: The following path meets requirements by 6.977ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q Bank_i7 (from PHI2_c +) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) + Source: FF Q FS[12] (from RCLK_c +) + Destination: FF Data in n8MEGEN (to RCLK_c +) - Delay: 6.832ns (42.8% logic, 57.2% route), 6 logic levels. + Delay: 8.741ns (39.1% logic, 60.9% route), 7 logic levels. Constraint Details: - 6.832ns physical path delay SLICE_101 to SLICE_19 exceeds - 5.047ns delay constraint less + 8.741ns physical path delay SLICE_4 to SLICE_43 meets + 16.000ns delay constraint less 0.000ns skew and - 0.307ns CE_SET requirement (totaling 4.740ns) by 2.092ns + 0.282ns CE_SET requirement (totaling 15.718ns) by 6.977ns Physical Path Details: - Data path SLICE_101 to SLICE_19: + Data path SLICE_4 to SLICE_43: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R4C7C.CLK to R4C7C.Q1 SLICE_101 (from PHI2_c) -ROUTE 1 0.744 R4C7C.Q1 to R5C7B.C1 Bank_7 -CTOF_DEL --- 0.495 R5C7B.C1 to R5C7B.F1 SLICE_100 -ROUTE 1 0.436 R5C7B.F1 to R5C7D.C1 n2277 -CTOF_DEL --- 0.495 R5C7D.C1 to R5C7D.F1 SLICE_74 -ROUTE 8 0.693 R5C7D.F1 to R5C8A.D1 n26 -CTOF_DEL --- 0.495 R5C8A.D1 to R5C8A.F1 SLICE_91 -ROUTE 1 0.744 R5C8A.F1 to R5C9A.C0 n2362 -CTOF_DEL --- 0.495 R5C9A.C0 to R5C9A.F0 SLICE_88 -ROUTE 3 0.635 R5C9A.F0 to R5C9A.D1 C1Submitted_N_237 -CTOF_DEL --- 0.495 R5C9A.D1 to R5C9A.F1 SLICE_88 -ROUTE 1 0.653 R5C9A.F1 to R5C9D.CE PHI2_N_120_enable_1 (to PHI2_c) +REG_DEL --- 0.452 R6C4C.CLK to R6C4C.Q1 SLICE_4 (from RCLK_c) +ROUTE 3 1.177 R6C4C.Q1 to R6C5D.C1 FS[12] +CTOF_DEL --- 0.495 R6C5D.C1 to R6C5D.F1 SLICE_72 +ROUTE 1 0.315 R6C5D.F1 to R6C5C.D1 UFMSDI_ens2_i_o2_0_3 +CTOF_DEL --- 0.495 R6C5C.D1 to R6C5C.F1 SLICE_64 +ROUTE 4 0.988 R6C5C.F1 to R5C4C.D1 N_129 +CTOF_DEL --- 0.495 R5C4C.D1 to R5C4C.F1 SLICE_59 +ROUTE 2 0.445 R5C4C.F1 to R5C4C.C0 N_145 +CTOF_DEL --- 0.495 R5C4C.C0 to R5C4C.F0 SLICE_59 +ROUTE 2 0.632 R5C4C.F0 to R4C4A.D1 N_139_8 +CTOF_DEL --- 0.495 R4C4A.D1 to R4C4A.F1 SLICE_55 +ROUTE 1 0.693 R4C4A.F1 to R4C4A.B0 N_139 +CTOF_DEL --- 0.495 R4C4A.B0 to R4C4A.F0 SLICE_55 +ROUTE 1 1.069 R4C4A.F0 to R4C6A.CE N_26 (to RCLK_c) -------- - 6.832 (42.8% logic, 57.2% route), 6 logic levels. + 8.741 (39.1% logic, 60.9% route), 7 logic levels. Clock Skew Details: - Source Clock Path PHI2 to SLICE_101: + Source Clock Path RCLK to SLICE_4: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R4C7C.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R6C4C.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path PHI2 to SLICE_19: + Destination Clock Path RCLK to SLICE_43: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R5C9D.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R4C6A.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 2.081ns (weighted slack = -4.162ns) +Passed: The following path meets requirements by 7.097ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q Bank_i4 (from PHI2_c +) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) + Source: FF Q FS[16] (from RCLK_c +) + Destination: FF Data in LEDEN (to RCLK_c +) - Delay: 6.821ns (42.9% logic, 57.1% route), 6 logic levels. + Delay: 8.621ns (34.0% logic, 66.0% route), 6 logic levels. Constraint Details: - 6.821ns physical path delay SLICE_102 to SLICE_19 exceeds - 5.047ns delay constraint less + 8.621ns physical path delay SLICE_2 to SLICE_27 meets + 16.000ns delay constraint less 0.000ns skew and - 0.307ns CE_SET requirement (totaling 4.740ns) by 2.081ns + 0.282ns CE_SET requirement (totaling 15.718ns) by 7.097ns Physical Path Details: - Data path SLICE_102 to SLICE_19: + Data path SLICE_2 to SLICE_27: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R5C6A.CLK to R5C6A.Q0 SLICE_102 (from PHI2_c) -ROUTE 1 0.766 R5C6A.Q0 to R5C8D.C1 Bank_4 -CTOF_DEL --- 0.495 R5C8D.C1 to R5C8D.F1 SLICE_99 -ROUTE 2 0.635 R5C8D.F1 to R5C8B.D1 n22 -CTOF_DEL --- 0.495 R5C8B.D1 to R5C8B.F1 SLICE_79 -ROUTE 7 0.461 R5C8B.F1 to R5C8A.C1 n2369 -CTOF_DEL --- 0.495 R5C8A.C1 to R5C8A.F1 SLICE_91 -ROUTE 1 0.744 R5C8A.F1 to R5C9A.C0 n2362 -CTOF_DEL --- 0.495 R5C9A.C0 to R5C9A.F0 SLICE_88 -ROUTE 3 0.635 R5C9A.F0 to R5C9A.D1 C1Submitted_N_237 -CTOF_DEL --- 0.495 R5C9A.D1 to R5C9A.F1 SLICE_88 -ROUTE 1 0.653 R5C9A.F1 to R5C9D.CE PHI2_N_120_enable_1 (to PHI2_c) +REG_DEL --- 0.452 R6C5A.CLK to R6C5A.Q1 SLICE_2 (from RCLK_c) +ROUTE 4 1.017 R6C5A.Q1 to R6C5C.B1 FS[16] +CTOF_DEL --- 0.495 R6C5C.B1 to R6C5C.F1 SLICE_64 +ROUTE 4 0.988 R6C5C.F1 to R5C4C.D1 N_129 +CTOF_DEL --- 0.495 R5C4C.D1 to R5C4C.F1 SLICE_59 +ROUTE 2 0.445 R5C4C.F1 to R5C4C.C0 N_145 +CTOF_DEL --- 0.495 R5C4C.C0 to R5C4C.F0 SLICE_59 +ROUTE 2 0.753 R5C4C.F0 to R5C3A.C0 N_139_8 +CTOF_DEL --- 0.495 R5C3A.C0 to R5C3A.F0 SLICE_56 +ROUTE 1 1.079 R5C3A.F0 to R4C4D.C0 N_140 +CTOF_DEL --- 0.495 R4C4D.C0 to R4C4D.F0 SLICE_54 +ROUTE 1 1.412 R4C4D.F0 to R5C7B.CE N_28 (to RCLK_c) -------- - 6.821 (42.9% logic, 57.1% route), 6 logic levels. + 8.621 (34.0% logic, 66.0% route), 6 logic levels. Clock Skew Details: - Source Clock Path PHI2 to SLICE_102: + Source Clock Path RCLK to SLICE_2: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R5C6A.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R6C5A.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path PHI2 to SLICE_19: + Destination Clock Path RCLK to SLICE_27: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R5C9D.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R5C7B.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 1.971ns (weighted slack = -3.942ns) +Passed: The following path meets requirements by 7.137ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q Bank_i0 (from PHI2_c +) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) + Source: FF Q FS[17] (from RCLK_c +) + Destination: FF Data in n8MEGEN (to RCLK_c +) - Delay: 6.711ns (43.6% logic, 56.4% route), 6 logic levels. + Delay: 8.581ns (39.9% logic, 60.1% route), 7 logic levels. Constraint Details: - 6.711ns physical path delay SLICE_93 to SLICE_19 exceeds - 5.047ns delay constraint less + 8.581ns physical path delay SLICE_1 to SLICE_43 meets + 16.000ns delay constraint less 0.000ns skew and - 0.307ns CE_SET requirement (totaling 4.740ns) by 1.971ns + 0.282ns CE_SET requirement (totaling 15.718ns) by 7.137ns Physical Path Details: - Data path SLICE_93 to SLICE_19: + Data path SLICE_1 to SLICE_43: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R5C8C.CLK to R5C8C.Q0 SLICE_93 (from PHI2_c) -ROUTE 1 0.623 R5C8C.Q0 to R5C7B.D1 Bank_0 -CTOF_DEL --- 0.495 R5C7B.D1 to R5C7B.F1 SLICE_100 -ROUTE 1 0.436 R5C7B.F1 to R5C7D.C1 n2277 -CTOF_DEL --- 0.495 R5C7D.C1 to R5C7D.F1 SLICE_74 -ROUTE 8 0.693 R5C7D.F1 to R5C8A.D1 n26 -CTOF_DEL --- 0.495 R5C8A.D1 to R5C8A.F1 SLICE_91 -ROUTE 1 0.744 R5C8A.F1 to R5C9A.C0 n2362 -CTOF_DEL --- 0.495 R5C9A.C0 to R5C9A.F0 SLICE_88 -ROUTE 3 0.635 R5C9A.F0 to R5C9A.D1 C1Submitted_N_237 -CTOF_DEL --- 0.495 R5C9A.D1 to R5C9A.F1 SLICE_88 -ROUTE 1 0.653 R5C9A.F1 to R5C9D.CE PHI2_N_120_enable_1 (to PHI2_c) +REG_DEL --- 0.452 R6C5B.CLK to R6C5B.Q0 SLICE_1 (from RCLK_c) +ROUTE 3 1.017 R6C5B.Q0 to R6C5D.B1 FS[17] +CTOF_DEL --- 0.495 R6C5D.B1 to R6C5D.F1 SLICE_72 +ROUTE 1 0.315 R6C5D.F1 to R6C5C.D1 UFMSDI_ens2_i_o2_0_3 +CTOF_DEL --- 0.495 R6C5C.D1 to R6C5C.F1 SLICE_64 +ROUTE 4 0.988 R6C5C.F1 to R5C4C.D1 N_129 +CTOF_DEL --- 0.495 R5C4C.D1 to R5C4C.F1 SLICE_59 +ROUTE 2 0.445 R5C4C.F1 to R5C4C.C0 N_145 +CTOF_DEL --- 0.495 R5C4C.C0 to R5C4C.F0 SLICE_59 +ROUTE 2 0.632 R5C4C.F0 to R4C4A.D1 N_139_8 +CTOF_DEL --- 0.495 R4C4A.D1 to R4C4A.F1 SLICE_55 +ROUTE 1 0.693 R4C4A.F1 to R4C4A.B0 N_139 +CTOF_DEL --- 0.495 R4C4A.B0 to R4C4A.F0 SLICE_55 +ROUTE 1 1.069 R4C4A.F0 to R4C6A.CE N_26 (to RCLK_c) -------- - 6.711 (43.6% logic, 56.4% route), 6 logic levels. + 8.581 (39.9% logic, 60.1% route), 7 logic levels. Clock Skew Details: - Source Clock Path PHI2 to SLICE_93: + Source Clock Path RCLK to SLICE_1: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R5C8C.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R6C5B.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path PHI2 to SLICE_19: + Destination Clock Path RCLK to SLICE_43: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R5C9D.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R4C6A.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 1.941ns (weighted slack = -3.882ns) +Passed: The following path meets requirements by 7.169ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q Bank_i1 (from PHI2_c +) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) + Source: FF Q FS[13] (from RCLK_c +) + Destination: FF Data in n8MEGEN (to RCLK_c +) - Delay: 6.681ns (43.8% logic, 56.2% route), 6 logic levels. + Delay: 8.549ns (40.0% logic, 60.0% route), 7 logic levels. Constraint Details: - 6.681ns physical path delay SLICE_93 to SLICE_19 exceeds - 5.047ns delay constraint less + 8.549ns physical path delay SLICE_3 to SLICE_43 meets + 16.000ns delay constraint less 0.000ns skew and - 0.307ns CE_SET requirement (totaling 4.740ns) by 1.941ns + 0.282ns CE_SET requirement (totaling 15.718ns) by 7.169ns Physical Path Details: - Data path SLICE_93 to SLICE_19: + Data path SLICE_3 to SLICE_43: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R5C8C.CLK to R5C8C.Q1 SLICE_93 (from PHI2_c) -ROUTE 1 0.626 R5C8C.Q1 to R5C8D.D1 Bank_1 -CTOF_DEL --- 0.495 R5C8D.D1 to R5C8D.F1 SLICE_99 -ROUTE 2 0.635 R5C8D.F1 to R5C8B.D1 n22 -CTOF_DEL --- 0.495 R5C8B.D1 to R5C8B.F1 SLICE_79 -ROUTE 7 0.461 R5C8B.F1 to R5C8A.C1 n2369 -CTOF_DEL --- 0.495 R5C8A.C1 to R5C8A.F1 SLICE_91 -ROUTE 1 0.744 R5C8A.F1 to R5C9A.C0 n2362 -CTOF_DEL --- 0.495 R5C9A.C0 to R5C9A.F0 SLICE_88 -ROUTE 3 0.635 R5C9A.F0 to R5C9A.D1 C1Submitted_N_237 -CTOF_DEL --- 0.495 R5C9A.D1 to R5C9A.F1 SLICE_88 -ROUTE 1 0.653 R5C9A.F1 to R5C9D.CE PHI2_N_120_enable_1 (to PHI2_c) +REG_DEL --- 0.452 R6C4D.CLK to R6C4D.Q0 SLICE_3 (from RCLK_c) +ROUTE 3 0.985 R6C4D.Q0 to R6C5D.A1 FS[13] +CTOF_DEL --- 0.495 R6C5D.A1 to R6C5D.F1 SLICE_72 +ROUTE 1 0.315 R6C5D.F1 to R6C5C.D1 UFMSDI_ens2_i_o2_0_3 +CTOF_DEL --- 0.495 R6C5C.D1 to R6C5C.F1 SLICE_64 +ROUTE 4 0.988 R6C5C.F1 to R5C4C.D1 N_129 +CTOF_DEL --- 0.495 R5C4C.D1 to R5C4C.F1 SLICE_59 +ROUTE 2 0.445 R5C4C.F1 to R5C4C.C0 N_145 +CTOF_DEL --- 0.495 R5C4C.C0 to R5C4C.F0 SLICE_59 +ROUTE 2 0.632 R5C4C.F0 to R4C4A.D1 N_139_8 +CTOF_DEL --- 0.495 R4C4A.D1 to R4C4A.F1 SLICE_55 +ROUTE 1 0.693 R4C4A.F1 to R4C4A.B0 N_139 +CTOF_DEL --- 0.495 R4C4A.B0 to R4C4A.F0 SLICE_55 +ROUTE 1 1.069 R4C4A.F0 to R4C6A.CE N_26 (to RCLK_c) -------- - 6.681 (43.8% logic, 56.2% route), 6 logic levels. + 8.549 (40.0% logic, 60.0% route), 7 logic levels. Clock Skew Details: - Source Clock Path PHI2 to SLICE_93: + Source Clock Path RCLK to SLICE_3: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R5C8C.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R6C4D.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path PHI2 to SLICE_19: + Destination Clock Path RCLK to SLICE_43: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R5C9D.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R4C6A.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 1.784ns (weighted slack = -3.568ns) +Passed: The following path meets requirements by 7.281ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q Bank_i6 (from PHI2_c +) - Destination: FF Data in ADSubmitted_407 (to PHI2_c -) + Source: FF Q FS[12] (from RCLK_c +) + Destination: FF Data in UFMCLK_0io (to RCLK_c +) - Delay: 6.546ns (37.2% logic, 62.8% route), 5 logic levels. + Delay: 8.739ns (27.8% logic, 72.2% route), 5 logic levels. Constraint Details: - 6.546ns physical path delay SLICE_101 to SLICE_10 exceeds - 5.047ns delay constraint less - 0.000ns skew and - 0.285ns LSR_SET requirement (totaling 4.762ns) by 1.784ns + 8.739ns physical path delay SLICE_4 to UFMCLK_MGIOL meets + 16.000ns delay constraint less + -0.173ns skew and + 0.153ns DO_SET requirement (totaling 16.020ns) by 7.281ns Physical Path Details: - Data path SLICE_101 to SLICE_10: + Data path SLICE_4 to UFMCLK_MGIOL: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R4C7C.CLK to R4C7C.Q0 SLICE_101 (from PHI2_c) -ROUTE 1 0.623 R4C7C.Q0 to R5C7A.D0 Bank_6 -CTOF_DEL --- 0.495 R5C7A.D0 to R5C7A.F0 SLICE_68 -ROUTE 1 0.626 R5C7A.F0 to R5C7D.D1 n2287 -CTOF_DEL --- 0.495 R5C7D.D1 to R5C7D.F1 SLICE_74 -ROUTE 8 0.693 R5C7D.F1 to R5C8A.D1 n26 -CTOF_DEL --- 0.495 R5C8A.D1 to R5C8A.F1 SLICE_91 -ROUTE 1 0.744 R5C8A.F1 to R5C9A.C0 n2362 -CTOF_DEL --- 0.495 R5C9A.C0 to R5C9A.F0 SLICE_88 -ROUTE 3 1.428 R5C9A.F0 to R3C8A.LSR C1Submitted_N_237 (to PHI2_c) +REG_DEL --- 0.452 R6C4C.CLK to R6C4C.Q1 SLICE_4 (from RCLK_c) +ROUTE 3 1.434 R6C4C.Q1 to R6C5D.B0 FS[12] +CTOF_DEL --- 0.495 R6C5D.B0 to R6C5D.F0 SLICE_72 +ROUTE 2 1.902 R6C5D.F0 to R5C5C.A1 N_137_5 +CTOF_DEL --- 0.495 R5C5C.A1 to R5C5C.F1 SLICE_48 +ROUTE 2 0.982 R5C5C.F1 to R5C5C.A0 UFMCLK_r_i_a2_2_2 +CTOF_DEL --- 0.495 R5C5C.A0 to R5C5C.F0 SLICE_48 +ROUTE 1 0.693 R5C5C.F0 to R5C5D.B0 d_m3_0_a2_0 +CTOF_DEL --- 0.495 R5C5D.B0 to R5C5D.F0 SLICE_47 +ROUTE 1 1.296 R5C5D.F0 to IOL_B4C.OPOS i1_i (to RCLK_c) -------- - 6.546 (37.2% logic, 62.8% route), 5 logic levels. + 8.739 (27.8% logic, 72.2% route), 5 logic levels. Clock Skew Details: - Source Clock Path PHI2 to SLICE_101: + Source Clock Path RCLK to SLICE_4: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R4C7C.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R6C4C.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path PHI2 to SLICE_10: + Destination Clock Path RCLK to UFMCLK_MGIOL: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R3C8A.CLK PHI2_c +ROUTE 39 3.243 62.PADDI to IOL_B4C.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.243 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 1.784ns (weighted slack = -3.568ns) +Passed: The following path meets requirements by 7.354ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q Bank_i6 (from PHI2_c +) - Destination: FF Data in C1Submitted_406 (to PHI2_c -) + Source: FF Q FS[15] (from RCLK_c +) + Destination: FF Data in LEDEN (to RCLK_c +) - Delay: 6.546ns (37.2% logic, 62.8% route), 5 logic levels. + Delay: 8.364ns (35.0% logic, 65.0% route), 6 logic levels. Constraint Details: - 6.546ns physical path delay SLICE_101 to SLICE_15 exceeds - 5.047ns delay constraint less + 8.364ns physical path delay SLICE_2 to SLICE_27 meets + 16.000ns delay constraint less 0.000ns skew and - 0.285ns LSR_SET requirement (totaling 4.762ns) by 1.784ns + 0.282ns CE_SET requirement (totaling 15.718ns) by 7.354ns Physical Path Details: - Data path SLICE_101 to SLICE_15: + Data path SLICE_2 to SLICE_27: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R4C7C.CLK to R4C7C.Q0 SLICE_101 (from PHI2_c) -ROUTE 1 0.623 R4C7C.Q0 to R5C7A.D0 Bank_6 -CTOF_DEL --- 0.495 R5C7A.D0 to R5C7A.F0 SLICE_68 -ROUTE 1 0.626 R5C7A.F0 to R5C7D.D1 n2287 -CTOF_DEL --- 0.495 R5C7D.D1 to R5C7D.F1 SLICE_74 -ROUTE 8 0.693 R5C7D.F1 to R5C8A.D1 n26 -CTOF_DEL --- 0.495 R5C8A.D1 to R5C8A.F1 SLICE_91 -ROUTE 1 0.744 R5C8A.F1 to R5C9A.C0 n2362 -CTOF_DEL --- 0.495 R5C9A.C0 to R5C9A.F0 SLICE_88 -ROUTE 3 1.428 R5C9A.F0 to R3C8B.LSR C1Submitted_N_237 (to PHI2_c) +REG_DEL --- 0.452 R6C5A.CLK to R6C5A.Q0 SLICE_2 (from RCLK_c) +ROUTE 3 0.760 R6C5A.Q0 to R6C5C.C1 FS[15] +CTOF_DEL --- 0.495 R6C5C.C1 to R6C5C.F1 SLICE_64 +ROUTE 4 0.988 R6C5C.F1 to R5C4C.D1 N_129 +CTOF_DEL --- 0.495 R5C4C.D1 to R5C4C.F1 SLICE_59 +ROUTE 2 0.445 R5C4C.F1 to R5C4C.C0 N_145 +CTOF_DEL --- 0.495 R5C4C.C0 to R5C4C.F0 SLICE_59 +ROUTE 2 0.753 R5C4C.F0 to R5C3A.C0 N_139_8 +CTOF_DEL --- 0.495 R5C3A.C0 to R5C3A.F0 SLICE_56 +ROUTE 1 1.079 R5C3A.F0 to R4C4D.C0 N_140 +CTOF_DEL --- 0.495 R4C4D.C0 to R4C4D.F0 SLICE_54 +ROUTE 1 1.412 R4C4D.F0 to R5C7B.CE N_28 (to RCLK_c) -------- - 6.546 (37.2% logic, 62.8% route), 5 logic levels. + 8.364 (35.0% logic, 65.0% route), 6 logic levels. Clock Skew Details: - Source Clock Path PHI2 to SLICE_101: + Source Clock Path RCLK to SLICE_2: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R4C7C.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R6C5A.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path PHI2 to SLICE_15: + Destination Clock Path RCLK to SLICE_27: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R3C8B.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R5C7B.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. -Warning: 65.729MHz is the maximum frequency for this preference. +Report: 101.286MHz is the maximum frequency for this preference. Report Summary -------------- @@ -1084,31 +1163,18 @@ Report Summary Preference | Constraint| Actual|Levels ---------------------------------------------------------------------------- | | | -FREQUENCY NET "RCLK_c" 299.401000 MHz ; | 299.401 MHz| 160.205 MHz| 5 * +FREQUENCY PORT "PHI2" 2.900000 MHz ; | 2.900 MHz| 55.475 MHz| 5 | | | -FREQUENCY NET "PHI2_c" 99.079000 MHz ; | 99.079 MHz| 65.729 MHz| 6 * +FREQUENCY PORT "nCCAS" 2.900000 MHz ; | 2.900 MHz| 150.150 MHz| 0 + | | | +FREQUENCY PORT "nCRAS" 2.900000 MHz ; | 2.900 MHz| 150.150 MHz| 0 + | | | +FREQUENCY PORT "RCLK" 62.500000 MHz ; | 62.500 MHz| 101.286 MHz| 7 | | | ---------------------------------------------------------------------------- -2 preferences(marked by "*" above) not met. - ----------------------------------------------------------------------------- -Critical Nets | Loads| Errors| % of total ----------------------------------------------------------------------------- -n26 | 8| 63| 18.05% - | | | -n1996 | 1| 49| 14.04% - | | | -n1997 | 1| 46| 13.18% - | | | -n1995 | 1| 45| 12.89% - | | | -n1998 | 1| 38| 10.89% - | | | -n1994 | 1| 37| 10.60% - | | | ----------------------------------------------------------------------------- +All preferences were met. Clock Domains Analysis @@ -1116,14 +1182,20 @@ Clock Domains Analysis Found 4 clocks: -Clock Domain: nCRAS_c Source: nCRAS.PAD Loads: 9 +Clock Domain: nCRAS_c Source: nCRAS.PAD Loads: 12 No transfer within this clock domain is found -Clock Domain: nCCAS_c Source: nCCAS.PAD Loads: 6 + Data transfers from: + Clock Domain: RCLK_c Source: RCLK.PAD + Not reported because source and destination domains are unrelated. + To report these transfers please refer to preference CLKSKEWDIFF to define + external clock skew between clock ports. + +Clock Domain: nCCAS_c Source: nCCAS.PAD Loads: 10 No transfer within this clock domain is found -Clock Domain: RCLK_c Source: RCLK.PAD Loads: 40 - Covered under: FREQUENCY NET "RCLK_c" 299.401000 MHz ; +Clock Domain: RCLK_c Source: RCLK.PAD Loads: 39 + Covered under: FREQUENCY PORT "RCLK" 62.500000 MHz ; Data transfers from: Clock Domain: nCRAS_c Source: nCRAS.PAD @@ -1136,8 +1208,8 @@ Clock Domain: RCLK_c Source: RCLK.PAD Loads: 40 To report these transfers please refer to preference CLKSKEWDIFF to define external clock skew between clock ports. -Clock Domain: PHI2_c Source: PHI2.PAD Loads: 14 - Covered under: FREQUENCY NET "PHI2_c" 99.079000 MHz ; +Clock Domain: PHI2_c Source: PHI2.PAD Loads: 19 + Covered under: FREQUENCY PORT "PHI2" 2.900000 MHz ; Data transfers from: Clock Domain: RCLK_c Source: RCLK.PAD @@ -1149,14 +1221,14 @@ Clock Domain: PHI2_c Source: PHI2.PAD Loads: 14 Timing summary (Setup): --------------- -Timing errors: 349 Score: 452301 -Cumulative negative slack: 370485 +Timing errors: 0 Score: 0 +Cumulative negative slack: 0 -Constraints cover 572 paths, 2 nets, and 409 connections (60.68% coverage) +Constraints cover 760 paths, 4 nets, and 439 connections (62.45% coverage) -------------------------------------------------------------------------------- Lattice TRACE Report - Hold, Version Diamond (64-bit) 3.12.1.454 -Tue Aug 15 05:03:36 2023 +Tue Aug 15 22:56:39 2023 Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. Copyright (c) 1995 AT&T Corp. All rights reserved. @@ -1180,444 +1252,8 @@ BLOCK RESETPATHS ================================================================================ -Preference: FREQUENCY NET "RCLK_c" 299.401000 MHz ; - 459 items scored, 0 timing errors detected. --------------------------------------------------------------------------------- - - -Passed: The following path meets requirements by 0.304ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q IS_FSM__i4 (from RCLK_c +) - Destination: FF Data in IS_FSM__i5 (to RCLK_c +) - - Delay: 0.285ns (46.7% logic, 53.3% route), 1 logic levels. - - Constraint Details: - - 0.285ns physical path delay SLICE_106 to SLICE_106 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.304ns - - Physical Path Details: - - Data path SLICE_106 to SLICE_106: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R3C8D.CLK to R3C8D.Q0 SLICE_106 (from RCLK_c) -ROUTE 1 0.152 R3C8D.Q0 to R3C8D.M1 n736 (to RCLK_c) - -------- - 0.285 (46.7% logic, 53.3% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_106: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R3C8D.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_106: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R3C8D.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.304ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q CASr_382 (from RCLK_c +) - Destination: FF Data in CASr2_383 (to RCLK_c +) - - Delay: 0.285ns (46.7% logic, 53.3% route), 1 logic levels. - - Constraint Details: - - 0.285ns physical path delay SLICE_16 to SLICE_16 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.304ns - - Physical Path Details: - - Data path SLICE_16 to SLICE_16: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R4C9B.CLK to R4C9B.Q0 SLICE_16 (from RCLK_c) -ROUTE 1 0.152 R4C9B.Q0 to R4C9B.M1 CASr (to RCLK_c) - -------- - 0.285 (46.7% logic, 53.3% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_16: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R4C9B.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_16: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R4C9B.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.304ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q IS_FSM__i8 (from RCLK_c +) - Destination: FF Data in IS_FSM__i9 (to RCLK_c +) - - Delay: 0.285ns (46.7% logic, 53.3% route), 1 logic levels. - - Constraint Details: - - 0.285ns physical path delay SLICE_75 to SLICE_75 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.304ns - - Physical Path Details: - - Data path SLICE_75 to SLICE_75: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R3C9D.CLK to R3C9D.Q0 SLICE_75 (from RCLK_c) -ROUTE 1 0.152 R3C9D.Q0 to R3C9D.M1 n732 (to RCLK_c) - -------- - 0.285 (46.7% logic, 53.3% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_75: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R3C9D.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_75: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R3C9D.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.304ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q IS_FSM__i10 (from RCLK_c +) - Destination: FF Data in IS_FSM__i11 (to RCLK_c +) - - Delay: 0.285ns (46.7% logic, 53.3% route), 1 logic levels. - - Constraint Details: - - 0.285ns physical path delay SLICE_79 to SLICE_79 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.304ns - - Physical Path Details: - - Data path SLICE_79 to SLICE_79: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R5C8B.CLK to R5C8B.Q0 SLICE_79 (from RCLK_c) -ROUTE 1 0.152 R5C8B.Q0 to R5C8B.M1 n730 (to RCLK_c) - -------- - 0.285 (46.7% logic, 53.3% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_79: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R5C8B.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_79: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R5C8B.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.304ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q IS_FSM__i14 (from RCLK_c +) - Destination: FF Data in IS_FSM__i15 (to RCLK_c +) - - Delay: 0.285ns (46.7% logic, 53.3% route), 1 logic levels. - - Constraint Details: - - 0.285ns physical path delay SLICE_81 to SLICE_81 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.304ns - - Physical Path Details: - - Data path SLICE_81 to SLICE_81: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R6C9C.CLK to R6C9C.Q0 SLICE_81 (from RCLK_c) -ROUTE 1 0.152 R6C9C.Q0 to R6C9C.M1 n726 (to RCLK_c) - -------- - 0.285 (46.7% logic, 53.3% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_81: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R6C9C.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_81: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R6C9C.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.304ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q IS_FSM__i7 (from RCLK_c +) - Destination: FF Data in IS_FSM__i8 (to RCLK_c +) - - Delay: 0.285ns (46.7% logic, 53.3% route), 1 logic levels. - - Constraint Details: - - 0.285ns physical path delay SLICE_97 to SLICE_75 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.304ns - - Physical Path Details: - - Data path SLICE_97 to SLICE_75: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R3C9A.CLK to R3C9A.Q1 SLICE_97 (from RCLK_c) -ROUTE 1 0.152 R3C9A.Q1 to R3C9D.M0 n733 (to RCLK_c) - -------- - 0.285 (46.7% logic, 53.3% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_97: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R3C9A.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_75: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R3C9D.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.304ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q IS_FSM__i6 (from RCLK_c +) - Destination: FF Data in IS_FSM__i7 (to RCLK_c +) - - Delay: 0.285ns (46.7% logic, 53.3% route), 1 logic levels. - - Constraint Details: - - 0.285ns physical path delay SLICE_97 to SLICE_97 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.304ns - - Physical Path Details: - - Data path SLICE_97 to SLICE_97: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R3C9A.CLK to R3C9A.Q0 SLICE_97 (from RCLK_c) -ROUTE 1 0.152 R3C9A.Q0 to R3C9A.M1 n734 (to RCLK_c) - -------- - 0.285 (46.7% logic, 53.3% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_97: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R3C9A.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_97: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R3C9A.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.306ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q RASr_379 (from RCLK_c +) - Destination: FF Data in RASr2_380 (to RCLK_c +) - - Delay: 0.287ns (46.3% logic, 53.7% route), 1 logic levels. - - Constraint Details: - - 0.287ns physical path delay SLICE_30 to SLICE_30 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.306ns - - Physical Path Details: - - Data path SLICE_30 to SLICE_30: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R5C10B.CLK to R5C10B.Q0 SLICE_30 (from RCLK_c) -ROUTE 2 0.154 R5C10B.Q0 to R5C10B.M1 RASr (to RCLK_c) - -------- - 0.287 (46.3% logic, 53.7% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_30: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R5C10B.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_30: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R5C10B.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.306ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q PHI2r2_377 (from RCLK_c +) - Destination: FF Data in PHI2r3_378 (to RCLK_c +) - - Delay: 0.287ns (46.3% logic, 53.7% route), 1 logic levels. - - Constraint Details: - - 0.287ns physical path delay SLICE_36 to SLICE_69 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.306ns - - Physical Path Details: - - Data path SLICE_36 to SLICE_69: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R4C10A.CLK to R4C10A.Q1 SLICE_36 (from RCLK_c) -ROUTE 3 0.154 R4C10A.Q1 to R4C10C.M1 PHI2r2 (to RCLK_c) - -------- - 0.287 (46.3% logic, 53.7% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_36: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R4C10A.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_69: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R4C10C.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.307ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q IS_FSM__i0 (from RCLK_c +) - Destination: FF Data in IS_FSM__i1 (to RCLK_c +) - - Delay: 0.288ns (46.2% logic, 53.8% route), 1 logic levels. - - Constraint Details: - - 0.288ns physical path delay SLICE_98 to SLICE_98 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.307ns - - Physical Path Details: - - Data path SLICE_98 to SLICE_98: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R6C11A.CLK to R6C11A.Q0 SLICE_98 (from RCLK_c) -ROUTE 4 0.155 R6C11A.Q0 to R6C11A.M1 nRCS_N_139 (to RCLK_c) - -------- - 0.288 (46.2% logic, 53.8% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_98: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R6C11A.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_98: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R6C11A.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - -================================================================================ -Preference: FREQUENCY NET "PHI2_c" 99.079000 MHz ; - 113 items scored, 0 timing errors detected. +Preference: FREQUENCY PORT "PHI2" 2.900000 MHz ; + 170 items scored, 0 timing errors detected. -------------------------------------------------------------------------------- @@ -1625,471 +1261,914 @@ Passed: The following path meets requirements by 0.379ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q C1Submitted_406 (from PHI2_c -) - Destination: FF Data in C1Submitted_406 (to PHI2_c -) + Source: FF Q ADSubmitted (from PHI2_c -) + Destination: FF Data in ADSubmitted (to PHI2_c -) Delay: 0.366ns (63.9% logic, 36.1% route), 2 logic levels. Constraint Details: - 0.366ns physical path delay SLICE_15 to SLICE_15 meets + 0.366ns physical path delay SLICE_10 to SLICE_10 meets -0.013ns DIN_HLD and 0.000ns delay constraint less 0.000ns skew requirement (totaling -0.013ns) by 0.379ns Physical Path Details: - Data path SLICE_15 to SLICE_15: + Data path SLICE_10 to SLICE_10: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R3C8B.CLK to R3C8B.Q0 SLICE_15 (from PHI2_c) -ROUTE 2 0.132 R3C8B.Q0 to R3C8B.A0 C1Submitted -CTOF_DEL --- 0.101 R3C8B.A0 to R3C8B.F0 SLICE_15 -ROUTE 1 0.000 R3C8B.F0 to R3C8B.DI0 n1398 (to PHI2_c) +REG_DEL --- 0.133 R3C8B.CLK to R3C8B.Q0 SLICE_10 (from PHI2_c) +ROUTE 2 0.132 R3C8B.Q0 to R3C8B.A0 ADSubmitted +CTOF_DEL --- 0.101 R3C8B.A0 to R3C8B.F0 SLICE_10 +ROUTE 1 0.000 R3C8B.F0 to R3C8B.DI0 ADSubmitted_r (to PHI2_c) -------- 0.366 (63.9% logic, 36.1% route), 2 logic levels. - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_15: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R3C8B.CLK PHI2_c - -------- - 1.240 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_15: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R3C8B.CLK PHI2_c - -------- - 1.240 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.851ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q CmdEnable_405 (from PHI2_c -) - Destination: FF Data in XOR8MEG_408 (to PHI2_c -) - - Delay: 0.823ns (28.4% logic, 71.6% route), 2 logic levels. - - Constraint Details: - - 0.823ns physical path delay SLICE_19 to SLICE_50 meets - -0.028ns CE_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.028ns) by 0.851ns - - Physical Path Details: - - Data path SLICE_19 to SLICE_50: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R5C9D.CLK to R5C9D.Q0 SLICE_19 (from PHI2_c) -ROUTE 2 0.332 R5C9D.Q0 to R5C6B.D1 CmdEnable -CTOF_DEL --- 0.101 R5C6B.D1 to R5C6B.F1 SLICE_83 -ROUTE 1 0.257 R5C6B.F1 to R4C6A.CE PHI2_N_120_enable_3 (to PHI2_c) - -------- - 0.823 (28.4% logic, 71.6% route), 2 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R5C9D.CLK PHI2_c - -------- - 1.240 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_50: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R4C6A.CLK PHI2_c - -------- - 1.240 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.906ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q ADSubmitted_407 (from PHI2_c -) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) - - Delay: 0.878ns (26.7% logic, 73.3% route), 2 logic levels. - - Constraint Details: - - 0.878ns physical path delay SLICE_10 to SLICE_19 meets - -0.028ns CE_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.028ns) by 0.906ns - - Physical Path Details: - - Data path SLICE_10 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R3C8A.CLK to R3C8A.Q0 SLICE_10 (from PHI2_c) -ROUTE 1 0.501 R3C8A.Q0 to R5C9A.B1 ADSubmitted -CTOF_DEL --- 0.101 R5C9A.B1 to R5C9A.F1 SLICE_88 -ROUTE 1 0.143 R5C9A.F1 to R5C9D.CE PHI2_N_120_enable_1 (to PHI2_c) - -------- - 0.878 (26.7% logic, 73.3% route), 2 logic levels. - Clock Skew Details: Source Clock Path PHI2 to SLICE_10: Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R3C8A.CLK PHI2_c +ROUTE 19 1.240 8.PADDI to R3C8B.CLK PHI2_c -------- 1.240 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path PHI2 to SLICE_19: + Destination Clock Path PHI2 to SLICE_10: Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R5C9D.CLK PHI2_c +ROUTE 19 1.240 8.PADDI to R3C8B.CLK PHI2_c -------- 1.240 (0.0% logic, 100.0% route), 0 logic levels. -Passed: The following path meets requirements by 0.937ns +Passed: The following path meets requirements by 0.379ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q C1Submitted_406 (from PHI2_c -) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) + Source: FF Q C1Submitted (from PHI2_c -) + Destination: FF Data in C1Submitted (to PHI2_c -) - Delay: 0.909ns (48.0% logic, 52.0% route), 4 logic levels. + Delay: 0.366ns (63.9% logic, 36.1% route), 2 logic levels. Constraint Details: - 0.909ns physical path delay SLICE_15 to SLICE_19 meets - -0.028ns CE_HLD and + 0.366ns physical path delay SLICE_13 to SLICE_13 meets + -0.013ns DIN_HLD and 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.028ns) by 0.937ns + 0.000ns skew requirement (totaling -0.013ns) by 0.379ns Physical Path Details: - Data path SLICE_15 to SLICE_19: + Data path SLICE_13 to SLICE_13: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R3C8B.CLK to R3C8B.Q0 SLICE_15 (from PHI2_c) -ROUTE 2 0.136 R3C8B.Q0 to R3C9B.D1 C1Submitted -CTOF_DEL --- 0.101 R3C9B.D1 to R3C9B.F1 SLICE_77 -ROUTE 1 0.056 R3C9B.F1 to R3C9A.C1 n2210 -CTOF_DEL --- 0.101 R3C9A.C1 to R3C9A.F1 SLICE_97 -ROUTE 1 0.138 R3C9A.F1 to R5C9A.C1 n7_adj_5 -CTOF_DEL --- 0.101 R5C9A.C1 to R5C9A.F1 SLICE_88 -ROUTE 1 0.143 R5C9A.F1 to R5C9D.CE PHI2_N_120_enable_1 (to PHI2_c) +REG_DEL --- 0.133 R3C8A.CLK to R3C8A.Q0 SLICE_13 (from PHI2_c) +ROUTE 2 0.132 R3C8A.Q0 to R3C8A.A0 C1Submitted +CTOF_DEL --- 0.101 R3C8A.A0 to R3C8A.F0 SLICE_13 +ROUTE 1 0.000 R3C8A.F0 to R3C8A.DI0 C1Submitted_s (to PHI2_c) -------- - 0.909 (48.0% logic, 52.0% route), 4 logic levels. + 0.366 (63.9% logic, 36.1% route), 2 logic levels. Clock Skew Details: - Source Clock Path PHI2 to SLICE_15: + Source Clock Path PHI2 to SLICE_13: Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R3C8B.CLK PHI2_c +ROUTE 19 1.240 8.PADDI to R3C8A.CLK PHI2_c -------- 1.240 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path PHI2 to SLICE_19: + Destination Clock Path PHI2 to SLICE_13: Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R5C9D.CLK PHI2_c +ROUTE 19 1.240 8.PADDI to R3C8A.CLK PHI2_c -------- 1.240 (0.0% logic, 100.0% route), 0 logic levels. -Passed: The following path meets requirements by 1.059ns +Passed: The following path meets requirements by 0.379ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q CmdEnable_405 (from PHI2_c -) - Destination: FF Data in CmdUFMCS_412 (to PHI2_c -) - FF CmdUFMCLK_413 + Source: FF Q CmdSubmitted (from PHI2_c -) + Destination: FF Data in CmdSubmitted (to PHI2_c -) - Delay: 1.031ns (32.5% logic, 67.5% route), 3 logic levels. + Delay: 0.366ns (63.9% logic, 36.1% route), 2 logic levels. Constraint Details: - 1.031ns physical path delay SLICE_19 to SLICE_100 meets - -0.028ns CE_HLD and + 0.366ns physical path delay SLICE_20 to SLICE_20 meets + -0.013ns DIN_HLD and 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.028ns) by 1.059ns + 0.000ns skew requirement (totaling -0.013ns) by 0.379ns Physical Path Details: - Data path SLICE_19 to SLICE_100: + Data path SLICE_20 to SLICE_20: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R5C9D.CLK to R5C9D.Q0 SLICE_19 (from PHI2_c) -ROUTE 2 0.224 R5C9D.Q0 to R5C6D.C0 CmdEnable -CTOF_DEL --- 0.101 R5C6D.C0 to R5C6D.F0 SLICE_73 -ROUTE 2 0.212 R5C6D.F0 to R5C6D.A1 n2204 -CTOF_DEL --- 0.101 R5C6D.A1 to R5C6D.F1 SLICE_73 -ROUTE 2 0.260 R5C6D.F1 to R5C7B.CE PHI2_N_120_enable_8 (to PHI2_c) +REG_DEL --- 0.133 R4C8B.CLK to R4C8B.Q0 SLICE_20 (from PHI2_c) +ROUTE 4 0.132 R4C8B.Q0 to R4C8B.A0 CmdSubmitted +CTOF_DEL --- 0.101 R4C8B.A0 to R4C8B.F0 SLICE_20 +ROUTE 1 0.000 R4C8B.F0 to R4C8B.DI0 N_412_0 (to PHI2_c) -------- - 1.031 (32.5% logic, 67.5% route), 3 logic levels. + 0.366 (63.9% logic, 36.1% route), 2 logic levels. Clock Skew Details: - Source Clock Path PHI2 to SLICE_19: + Source Clock Path PHI2 to SLICE_20: Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R5C9D.CLK PHI2_c - -------- - 1.240 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_100: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R5C7B.CLK PHI2_c - -------- - 1.240 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 1.059ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q CmdEnable_405 (from PHI2_c -) - Destination: FF Data in CmdUFMSDI_414 (to PHI2_c -) - - Delay: 1.031ns (32.5% logic, 67.5% route), 3 logic levels. - - Constraint Details: - - 1.031ns physical path delay SLICE_19 to SLICE_99 meets - -0.028ns CE_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.028ns) by 1.059ns - - Physical Path Details: - - Data path SLICE_19 to SLICE_99: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R5C9D.CLK to R5C9D.Q0 SLICE_19 (from PHI2_c) -ROUTE 2 0.224 R5C9D.Q0 to R5C6D.C0 CmdEnable -CTOF_DEL --- 0.101 R5C6D.C0 to R5C6D.F0 SLICE_73 -ROUTE 2 0.212 R5C6D.F0 to R5C6D.A1 n2204 -CTOF_DEL --- 0.101 R5C6D.A1 to R5C6D.F1 SLICE_73 -ROUTE 2 0.260 R5C6D.F1 to R5C8D.CE PHI2_N_120_enable_8 (to PHI2_c) - -------- - 1.031 (32.5% logic, 67.5% route), 3 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R5C9D.CLK PHI2_c - -------- - 1.240 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_99: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R5C8D.CLK PHI2_c - -------- - 1.240 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 1.106ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q CmdEnable_405 (from PHI2_c -) - Destination: FF Data in CmdSubmitted_411 (to PHI2_c -) - - Delay: 1.078ns (40.4% logic, 59.6% route), 4 logic levels. - - Constraint Details: - - 1.078ns physical path delay SLICE_19 to SLICE_20 meets - -0.028ns CE_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.028ns) by 1.106ns - - Physical Path Details: - - Data path SLICE_19 to SLICE_20: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R5C9D.CLK to R5C9D.Q0 SLICE_19 (from PHI2_c) -ROUTE 2 0.224 R5C9D.Q0 to R5C6D.C0 CmdEnable -CTOF_DEL --- 0.101 R5C6D.C0 to R5C6D.F0 SLICE_73 -ROUTE 2 0.137 R5C6D.F0 to R5C7D.D0 n2204 -CTOF_DEL --- 0.101 R5C7D.D0 to R5C7D.F0 SLICE_74 -ROUTE 2 0.138 R5C7D.F0 to R3C7C.D1 n2220 -CTOF_DEL --- 0.101 R3C7C.D1 to R3C7C.F1 SLICE_89 -ROUTE 1 0.143 R3C7C.F1 to R3C7D.CE PHI2_N_120_enable_7 (to PHI2_c) - -------- - 1.078 (40.4% logic, 59.6% route), 4 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R5C9D.CLK PHI2_c +ROUTE 19 1.240 8.PADDI to R4C8B.CLK PHI2_c -------- 1.240 (0.0% logic, 100.0% route), 0 logic levels. Destination Clock Path PHI2 to SLICE_20: Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R3C7D.CLK PHI2_c +ROUTE 19 1.240 8.PADDI to R4C8B.CLK PHI2_c -------- 1.240 (0.0% logic, 100.0% route), 0 logic levels. -Passed: The following path meets requirements by 1.106ns +Passed: The following path meets requirements by 0.379ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q CmdEnable_405 (from PHI2_c -) - Destination: FF Data in Cmdn8MEGEN_410 (to PHI2_c -) + Source: FF Q XOR8MEG (from PHI2_c -) + Destination: FF Data in XOR8MEG (to PHI2_c -) - Delay: 1.078ns (40.4% logic, 59.6% route), 4 logic levels. + Delay: 0.366ns (63.9% logic, 36.1% route), 2 logic levels. Constraint Details: - 1.078ns physical path delay SLICE_19 to SLICE_24 meets - -0.028ns CE_HLD and + 0.366ns physical path delay SLICE_42 to SLICE_42 meets + -0.013ns DIN_HLD and 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.028ns) by 1.106ns + 0.000ns skew requirement (totaling -0.013ns) by 0.379ns Physical Path Details: - Data path SLICE_19 to SLICE_24: + Data path SLICE_42 to SLICE_42: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R5C9D.CLK to R5C9D.Q0 SLICE_19 (from PHI2_c) -ROUTE 2 0.224 R5C9D.Q0 to R5C6D.C0 CmdEnable -CTOF_DEL --- 0.101 R5C6D.C0 to R5C6D.F0 SLICE_73 -ROUTE 2 0.137 R5C6D.F0 to R5C7D.D0 n2204 -CTOF_DEL --- 0.101 R5C7D.D0 to R5C7D.F0 SLICE_74 -ROUTE 2 0.138 R5C7D.F0 to R3C7C.D0 n2220 -CTOF_DEL --- 0.101 R3C7C.D0 to R3C7C.F0 SLICE_89 -ROUTE 1 0.143 R3C7C.F0 to R3C7B.CE PHI2_N_120_enable_6 (to PHI2_c) +REG_DEL --- 0.133 R5C9B.CLK to R5C9B.Q0 SLICE_42 (from PHI2_c) +ROUTE 2 0.132 R5C9B.Q0 to R5C9B.A0 XOR8MEG +CTOF_DEL --- 0.101 R5C9B.A0 to R5C9B.F0 SLICE_42 +ROUTE 1 0.000 R5C9B.F0 to R5C9B.DI0 XOR8MEG_3 (to PHI2_c) -------- - 1.078 (40.4% logic, 59.6% route), 4 logic levels. + 0.366 (63.9% logic, 36.1% route), 2 logic levels. + + Clock Skew Details: + + Source Clock Path PHI2 to SLICE_42: + + Name Fanout Delay (ns) Site Resource +ROUTE 19 1.240 8.PADDI to R5C9B.CLK PHI2_c + -------- + 1.240 (0.0% logic, 100.0% route), 0 logic levels. + + Destination Clock Path PHI2 to SLICE_42: + + Name Fanout Delay (ns) Site Resource +ROUTE 19 1.240 8.PADDI to R5C9B.CLK PHI2_c + -------- + 1.240 (0.0% logic, 100.0% route), 0 logic levels. + + +Passed: The following path meets requirements by 0.435ns + + Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) + + Source: FF Q CmdEnable (from PHI2_c -) + Destination: FF Data in CmdEnable (to PHI2_c -) + + Delay: 0.422ns (68.5% logic, 31.5% route), 2 logic levels. + + Constraint Details: + + 0.422ns physical path delay SLICE_18 to SLICE_18 meets + -0.013ns DIN_HLD and + 0.000ns delay constraint less + 0.000ns skew requirement (totaling -0.013ns) by 0.435ns + + Physical Path Details: + + Data path SLICE_18 to SLICE_18: + + Name Fanout Delay (ns) Site Resource +REG_DEL --- 0.133 R3C8C.CLK to R3C8C.Q0 SLICE_18 (from PHI2_c) +ROUTE 3 0.133 R3C8C.Q0 to R3C8C.A0 CmdEnable +CTOOFX_DEL --- 0.156 R3C8C.A0 to R3C8C.OFX0 SLICE_18 +ROUTE 1 0.000 R3C8C.OFX0 to R3C8C.DI0 CmdEnable_s (to PHI2_c) + -------- + 0.422 (68.5% logic, 31.5% route), 2 logic levels. + + Clock Skew Details: + + Source Clock Path PHI2 to SLICE_18: + + Name Fanout Delay (ns) Site Resource +ROUTE 19 1.240 8.PADDI to R3C8C.CLK PHI2_c + -------- + 1.240 (0.0% logic, 100.0% route), 0 logic levels. + + Destination Clock Path PHI2 to SLICE_18: + + Name Fanout Delay (ns) Site Resource +ROUTE 19 1.240 8.PADDI to R3C8C.CLK PHI2_c + -------- + 1.240 (0.0% logic, 100.0% route), 0 logic levels. + + +Passed: The following path meets requirements by 0.440ns + + Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) + + Source: FF Q ADSubmitted (from PHI2_c -) + Destination: FF Data in CmdEnable (to PHI2_c -) + + Delay: 0.427ns (67.7% logic, 32.3% route), 2 logic levels. + + Constraint Details: + + 0.427ns physical path delay SLICE_10 to SLICE_18 meets + -0.013ns DIN_HLD and + 0.000ns delay constraint less + 0.000ns skew requirement (totaling -0.013ns) by 0.440ns + + Physical Path Details: + + Data path SLICE_10 to SLICE_18: + + Name Fanout Delay (ns) Site Resource +REG_DEL --- 0.133 R3C8B.CLK to R3C8B.Q0 SLICE_10 (from PHI2_c) +ROUTE 2 0.138 R3C8B.Q0 to R3C8C.C1 ADSubmitted +CTOOFX_DEL --- 0.156 R3C8C.C1 to R3C8C.OFX0 SLICE_18 +ROUTE 1 0.000 R3C8C.OFX0 to R3C8C.DI0 CmdEnable_s (to PHI2_c) + -------- + 0.427 (67.7% logic, 32.3% route), 2 logic levels. + + Clock Skew Details: + + Source Clock Path PHI2 to SLICE_10: + + Name Fanout Delay (ns) Site Resource +ROUTE 19 1.240 8.PADDI to R3C8B.CLK PHI2_c + -------- + 1.240 (0.0% logic, 100.0% route), 0 logic levels. + + Destination Clock Path PHI2 to SLICE_18: + + Name Fanout Delay (ns) Site Resource +ROUTE 19 1.240 8.PADDI to R3C8C.CLK PHI2_c + -------- + 1.240 (0.0% logic, 100.0% route), 0 logic levels. + + +Passed: The following path meets requirements by 0.526ns + + Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) + + Source: FF Q C1Submitted (from PHI2_c -) + Destination: FF Data in CmdEnable (to PHI2_c -) + + Delay: 0.513ns (56.3% logic, 43.7% route), 2 logic levels. + + Constraint Details: + + 0.513ns physical path delay SLICE_13 to SLICE_18 meets + -0.013ns DIN_HLD and + 0.000ns delay constraint less + 0.000ns skew requirement (totaling -0.013ns) by 0.526ns + + Physical Path Details: + + Data path SLICE_13 to SLICE_18: + + Name Fanout Delay (ns) Site Resource +REG_DEL --- 0.133 R3C8A.CLK to R3C8A.Q0 SLICE_13 (from PHI2_c) +ROUTE 2 0.224 R3C8A.Q0 to R3C8C.B0 C1Submitted +CTOOFX_DEL --- 0.156 R3C8C.B0 to R3C8C.OFX0 SLICE_18 +ROUTE 1 0.000 R3C8C.OFX0 to R3C8C.DI0 CmdEnable_s (to PHI2_c) + -------- + 0.513 (56.3% logic, 43.7% route), 2 logic levels. + + Clock Skew Details: + + Source Clock Path PHI2 to SLICE_13: + + Name Fanout Delay (ns) Site Resource +ROUTE 19 1.240 8.PADDI to R3C8A.CLK PHI2_c + -------- + 1.240 (0.0% logic, 100.0% route), 0 logic levels. + + Destination Clock Path PHI2 to SLICE_18: + + Name Fanout Delay (ns) Site Resource +ROUTE 19 1.240 8.PADDI to R3C8C.CLK PHI2_c + -------- + 1.240 (0.0% logic, 100.0% route), 0 logic levels. + + +Passed: The following path meets requirements by 0.527ns + + Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) + + Source: FF Q CmdEnable (from PHI2_c -) + Destination: FF Data in CmdEnable (to PHI2_c -) + + Delay: 0.514ns (56.2% logic, 43.8% route), 2 logic levels. + + Constraint Details: + + 0.514ns physical path delay SLICE_18 to SLICE_18 meets + -0.013ns DIN_HLD and + 0.000ns delay constraint less + 0.000ns skew requirement (totaling -0.013ns) by 0.527ns + + Physical Path Details: + + Data path SLICE_18 to SLICE_18: + + Name Fanout Delay (ns) Site Resource +REG_DEL --- 0.133 R3C8C.CLK to R3C8C.Q0 SLICE_18 (from PHI2_c) +ROUTE 3 0.225 R3C8C.Q0 to R3C8C.B1 CmdEnable +CTOOFX_DEL --- 0.156 R3C8C.B1 to R3C8C.OFX0 SLICE_18 +ROUTE 1 0.000 R3C8C.OFX0 to R3C8C.DI0 CmdEnable_s (to PHI2_c) + -------- + 0.514 (56.2% logic, 43.8% route), 2 logic levels. + + Clock Skew Details: + + Source Clock Path PHI2 to SLICE_18: + + Name Fanout Delay (ns) Site Resource +ROUTE 19 1.240 8.PADDI to R3C8C.CLK PHI2_c + -------- + 1.240 (0.0% logic, 100.0% route), 0 logic levels. + + Destination Clock Path PHI2 to SLICE_18: + + Name Fanout Delay (ns) Site Resource +ROUTE 19 1.240 8.PADDI to R3C8C.CLK PHI2_c + -------- + 1.240 (0.0% logic, 100.0% route), 0 logic levels. + + +Passed: The following path meets requirements by 0.616ns + + Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) + + Source: FF Q CmdLEDEN (from PHI2_c -) + Destination: FF Data in CmdLEDEN (to PHI2_c -) + + Delay: 0.603ns (55.6% logic, 44.4% route), 3 logic levels. + + Constraint Details: + + 0.603ns physical path delay SLICE_19 to SLICE_19 meets + -0.013ns DIN_HLD and + 0.000ns delay constraint less + 0.000ns skew requirement (totaling -0.013ns) by 0.616ns + + Physical Path Details: + + Data path SLICE_19 to SLICE_19: + + Name Fanout Delay (ns) Site Resource +REG_DEL --- 0.133 R5C8B.CLK to R5C8B.Q0 SLICE_19 (from PHI2_c) +ROUTE 2 0.212 R5C8B.Q0 to R5C8A.A1 CmdLEDEN +CTOF_DEL --- 0.101 R5C8A.A1 to R5C8A.F1 SLICE_70 +ROUTE 1 0.056 R5C8A.F1 to R5C8B.C0 N_59 +CTOF_DEL --- 0.101 R5C8B.C0 to R5C8B.F0 SLICE_19 +ROUTE 1 0.000 R5C8B.F0 to R5C8B.DI0 N_14_i (to PHI2_c) + -------- + 0.603 (55.6% logic, 44.4% route), 3 logic levels. Clock Skew Details: Source Clock Path PHI2 to SLICE_19: Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R5C9D.CLK PHI2_c +ROUTE 19 1.240 8.PADDI to R5C8B.CLK PHI2_c -------- 1.240 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path PHI2 to SLICE_24: + Destination Clock Path PHI2 to SLICE_19: Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R3C7B.CLK PHI2_c +ROUTE 19 1.240 8.PADDI to R5C8B.CLK PHI2_c -------- 1.240 (0.0% logic, 100.0% route), 0 logic levels. -Passed: The following path meets requirements by 5.504ns (weighted slack = 11.008ns) +Passed: The following path meets requirements by 0.702ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q XOR8MEG_408 (from PHI2_c -) - Destination: FF Data in RA11_385 (to PHI2_c +) + Source: FF Q Cmdn8MEGEN (from PHI2_c -) + Destination: FF Data in Cmdn8MEGEN (to PHI2_c -) - Delay: 0.444ns (52.7% logic, 47.3% route), 2 logic levels. + Delay: 0.689ns (48.6% logic, 51.4% route), 3 logic levels. Constraint Details: - 0.444ns physical path delay SLICE_50 to SLICE_33 meets + 0.689ns physical path delay SLICE_21 to SLICE_21 meets -0.013ns DIN_HLD and - -5.047ns delay constraint less - 0.000ns skew requirement (totaling -5.060ns) by 5.504ns + 0.000ns delay constraint less + 0.000ns skew requirement (totaling -0.013ns) by 0.702ns Physical Path Details: - Data path SLICE_50 to SLICE_33: + Data path SLICE_21 to SLICE_21: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R4C6A.CLK to R4C6A.Q0 SLICE_50 (from PHI2_c) -ROUTE 1 0.210 R4C6A.Q0 to R4C6C.A0 XOR8MEG -CTOF_DEL --- 0.101 R4C6C.A0 to R4C6C.F0 SLICE_33 -ROUTE 1 0.000 R4C6C.F0 to R4C6C.DI0 RA11_N_184 (to PHI2_c) +REG_DEL --- 0.133 R5C8D.CLK to R5C8D.Q0 SLICE_21 (from PHI2_c) +ROUTE 2 0.224 R5C8D.Q0 to R5C8C.B1 Cmdn8MEGEN +CTOF_DEL --- 0.101 R5C8C.B1 to R5C8C.F1 SLICE_50 +ROUTE 1 0.130 R5C8C.F1 to R5C8D.A0 Cmdn8MEGEN_4_u_i_0 +CTOF_DEL --- 0.101 R5C8D.A0 to R5C8D.F0 SLICE_21 +ROUTE 1 0.000 R5C8D.F0 to R5C8D.DI0 N_12_i (to PHI2_c) -------- - 0.444 (52.7% logic, 47.3% route), 2 logic levels. + 0.689 (48.6% logic, 51.4% route), 3 logic levels. Clock Skew Details: - Source Clock Path PHI2 to SLICE_50: + Source Clock Path PHI2 to SLICE_21: Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R4C6A.CLK PHI2_c +ROUTE 19 1.240 8.PADDI to R5C8D.CLK PHI2_c -------- 1.240 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path PHI2 to SLICE_33: + Destination Clock Path PHI2 to SLICE_21: Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R4C6C.CLK PHI2_c +ROUTE 19 1.240 8.PADDI to R5C8D.CLK PHI2_c -------- 1.240 (0.0% logic, 100.0% route), 0 logic levels. -Passed: The following path meets requirements by 5.899ns (weighted slack = 11.798ns) +================================================================================ +Preference: FREQUENCY PORT "nCCAS" 2.900000 MHz ; + 0 items scored, 0 timing errors detected. +-------------------------------------------------------------------------------- + + +================================================================================ +Preference: FREQUENCY PORT "nCRAS" 2.900000 MHz ; + 0 items scored, 0 timing errors detected. +-------------------------------------------------------------------------------- + + +================================================================================ +Preference: FREQUENCY PORT "RCLK" 62.500000 MHz ; + 590 items scored, 0 timing errors detected. +-------------------------------------------------------------------------------- + + +Passed: The following path meets requirements by 0.304ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q Bank_i1 (from PHI2_c +) - Destination: FF Data in C1Submitted_406 (to PHI2_c -) + Source: FF Q CASr (from RCLK_c +) + Destination: FF Data in CASr2 (to RCLK_c +) - Delay: 0.839ns (52.0% logic, 48.0% route), 4 logic levels. + Delay: 0.285ns (46.7% logic, 53.3% route), 1 logic levels. Constraint Details: - 0.839ns physical path delay SLICE_93 to SLICE_15 meets - -0.013ns DIN_HLD and - -5.047ns delay constraint less - 0.000ns skew requirement (totaling -5.060ns) by 5.899ns + 0.285ns physical path delay SLICE_14 to SLICE_14 meets + -0.019ns M_HLD and + 0.000ns delay constraint less + 0.000ns skew requirement (totaling -0.019ns) by 0.304ns Physical Path Details: - Data path SLICE_93 to SLICE_15: + Data path SLICE_14 to SLICE_14: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R5C8C.CLK to R5C8C.Q1 SLICE_93 (from PHI2_c) -ROUTE 1 0.133 R5C8C.Q1 to R5C8D.D1 Bank_1 -CTOF_DEL --- 0.101 R5C8D.D1 to R5C8D.F1 SLICE_99 -ROUTE 2 0.214 R5C8D.F1 to R3C8B.A1 n22 -CTOF_DEL --- 0.101 R3C8B.A1 to R3C8B.F1 SLICE_15 -ROUTE 1 0.056 R3C8B.F1 to R3C8B.C0 n2365 -CTOF_DEL --- 0.101 R3C8B.C0 to R3C8B.F0 SLICE_15 -ROUTE 1 0.000 R3C8B.F0 to R3C8B.DI0 n1398 (to PHI2_c) +REG_DEL --- 0.133 R5C9A.CLK to R5C9A.Q0 SLICE_14 (from RCLK_c) +ROUTE 1 0.152 R5C9A.Q0 to R5C9A.M1 CASr (to RCLK_c) -------- - 0.839 (52.0% logic, 48.0% route), 4 logic levels. + 0.285 (46.7% logic, 53.3% route), 1 logic levels. Clock Skew Details: - Source Clock Path PHI2 to SLICE_93: + Source Clock Path RCLK to SLICE_14: Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R5C8C.CLK PHI2_c +ROUTE 39 1.059 62.PADDI to R5C9A.CLK RCLK_c -------- - 1.240 (0.0% logic, 100.0% route), 0 logic levels. + 1.059 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path PHI2 to SLICE_15: + Destination Clock Path RCLK to SLICE_14: Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R3C8B.CLK PHI2_c +ROUTE 39 1.059 62.PADDI to R5C9A.CLK RCLK_c -------- - 1.240 (0.0% logic, 100.0% route), 0 logic levels. + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + +Passed: The following path meets requirements by 0.309ns + + Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) + + Source: FF Q RASr (from RCLK_c +) + Destination: FF Data in RASr2 (to RCLK_c +) + + Delay: 0.290ns (45.9% logic, 54.1% route), 1 logic levels. + + Constraint Details: + + 0.290ns physical path delay SLICE_29 to SLICE_29 meets + -0.019ns M_HLD and + 0.000ns delay constraint less + 0.000ns skew requirement (totaling -0.019ns) by 0.309ns + + Physical Path Details: + + Data path SLICE_29 to SLICE_29: + + Name Fanout Delay (ns) Site Resource +REG_DEL --- 0.133 R6C12B.CLK to R6C12B.Q0 SLICE_29 (from RCLK_c) +ROUTE 2 0.157 R6C12B.Q0 to R6C12B.M1 RASr (to RCLK_c) + -------- + 0.290 (45.9% logic, 54.1% route), 1 logic levels. + + Clock Skew Details: + + Source Clock Path RCLK to SLICE_29: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R6C12B.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + Destination Clock Path RCLK to SLICE_29: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R6C12B.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + +Passed: The following path meets requirements by 0.311ns + + Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) + + Source: FF Q RASr2 (from RCLK_c +) + Destination: FF Data in RASr3 (to RCLK_c +) + + Delay: 0.292ns (45.5% logic, 54.5% route), 1 logic levels. + + Constraint Details: + + 0.292ns physical path delay SLICE_29 to SLICE_32 meets + -0.019ns M_HLD and + 0.000ns delay constraint less + 0.000ns skew requirement (totaling -0.019ns) by 0.311ns + + Physical Path Details: + + Data path SLICE_29 to SLICE_32: + + Name Fanout Delay (ns) Site Resource +REG_DEL --- 0.133 R6C12B.CLK to R6C12B.Q1 SLICE_29 (from RCLK_c) +ROUTE 10 0.159 R6C12B.Q1 to R6C12A.M1 RASr2 (to RCLK_c) + -------- + 0.292 (45.5% logic, 54.5% route), 1 logic levels. + + Clock Skew Details: + + Source Clock Path RCLK to SLICE_29: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R6C12B.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + Destination Clock Path RCLK to SLICE_32: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R6C12A.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + +Passed: The following path meets requirements by 0.311ns + + Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) + + Source: FF Q PHI2r2 (from RCLK_c +) + Destination: FF Data in PHI2r3 (to RCLK_c +) + + Delay: 0.292ns (45.5% logic, 54.5% route), 1 logic levels. + + Constraint Details: + + 0.292ns physical path delay SLICE_65 to SLICE_65 meets + -0.019ns M_HLD and + 0.000ns delay constraint less + 0.000ns skew requirement (totaling -0.019ns) by 0.311ns + + Physical Path Details: + + Data path SLICE_65 to SLICE_65: + + Name Fanout Delay (ns) Site Resource +REG_DEL --- 0.133 R4C4B.CLK to R4C4B.Q0 SLICE_65 (from RCLK_c) +ROUTE 3 0.159 R4C4B.Q0 to R4C4B.M1 PHI2r2 (to RCLK_c) + -------- + 0.292 (45.5% logic, 54.5% route), 1 logic levels. + + Clock Skew Details: + + Source Clock Path RCLK to SLICE_65: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R4C4B.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + Destination Clock Path RCLK to SLICE_65: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R4C4B.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + +Passed: The following path meets requirements by 0.379ns + + Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) + + Source: FF Q FS[0] (from RCLK_c +) + Destination: FF Data in FS[0] (to RCLK_c +) + + Delay: 0.366ns (63.9% logic, 36.1% route), 2 logic levels. + + Constraint Details: + + 0.366ns physical path delay SLICE_0 to SLICE_0 meets + -0.013ns DIN_HLD and + 0.000ns delay constraint less + 0.000ns skew requirement (totaling -0.013ns) by 0.379ns + + Physical Path Details: + + Data path SLICE_0 to SLICE_0: + + Name Fanout Delay (ns) Site Resource +REG_DEL --- 0.133 R6C3A.CLK to R6C3A.Q1 SLICE_0 (from RCLK_c) +ROUTE 3 0.132 R6C3A.Q1 to R6C3A.A1 FS[0] +CTOF_DEL --- 0.101 R6C3A.A1 to R6C3A.F1 SLICE_0 +ROUTE 1 0.000 R6C3A.F1 to R6C3A.DI1 FS_s[0] (to RCLK_c) + -------- + 0.366 (63.9% logic, 36.1% route), 2 logic levels. + + Clock Skew Details: + + Source Clock Path RCLK to SLICE_0: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R6C3A.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + Destination Clock Path RCLK to SLICE_0: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R6C3A.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + +Passed: The following path meets requirements by 0.379ns + + Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) + + Source: FF Q FS[13] (from RCLK_c +) + Destination: FF Data in FS[13] (to RCLK_c +) + + Delay: 0.366ns (63.9% logic, 36.1% route), 2 logic levels. + + Constraint Details: + + 0.366ns physical path delay SLICE_3 to SLICE_3 meets + -0.013ns DIN_HLD and + 0.000ns delay constraint less + 0.000ns skew requirement (totaling -0.013ns) by 0.379ns + + Physical Path Details: + + Data path SLICE_3 to SLICE_3: + + Name Fanout Delay (ns) Site Resource +REG_DEL --- 0.133 R6C4D.CLK to R6C4D.Q0 SLICE_3 (from RCLK_c) +ROUTE 3 0.132 R6C4D.Q0 to R6C4D.A0 FS[13] +CTOF_DEL --- 0.101 R6C4D.A0 to R6C4D.F0 SLICE_3 +ROUTE 1 0.000 R6C4D.F0 to R6C4D.DI0 FS_s[13] (to RCLK_c) + -------- + 0.366 (63.9% logic, 36.1% route), 2 logic levels. + + Clock Skew Details: + + Source Clock Path RCLK to SLICE_3: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R6C4D.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + Destination Clock Path RCLK to SLICE_3: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R6C4D.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + +Passed: The following path meets requirements by 0.379ns + + Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) + + Source: FF Q Ready_fast (from RCLK_c +) + Destination: FF Data in Ready_fast (to RCLK_c +) + + Delay: 0.366ns (63.9% logic, 36.1% route), 2 logic levels. + + Constraint Details: + + 0.366ns physical path delay SLICE_34 to SLICE_34 meets + -0.013ns DIN_HLD and + 0.000ns delay constraint less + 0.000ns skew requirement (totaling -0.013ns) by 0.379ns + + Physical Path Details: + + Data path SLICE_34 to SLICE_34: + + Name Fanout Delay (ns) Site Resource +REG_DEL --- 0.133 R4C13C.CLK to R4C13C.Q0 SLICE_34 (from RCLK_c) +ROUTE 14 0.132 R4C13C.Q0 to R4C13C.A0 Ready_fast +CTOF_DEL --- 0.101 R4C13C.A0 to R4C13C.F0 SLICE_34 +ROUTE 1 0.000 R4C13C.F0 to R4C13C.DI0 N_415_0 (to RCLK_c) + -------- + 0.366 (63.9% logic, 36.1% route), 2 logic levels. + + Clock Skew Details: + + Source Clock Path RCLK to SLICE_34: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R4C13C.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + Destination Clock Path RCLK to SLICE_34: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R4C13C.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + +Passed: The following path meets requirements by 0.379ns + + Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) + + Source: FF Q FS[12] (from RCLK_c +) + Destination: FF Data in FS[12] (to RCLK_c +) + + Delay: 0.366ns (63.9% logic, 36.1% route), 2 logic levels. + + Constraint Details: + + 0.366ns physical path delay SLICE_4 to SLICE_4 meets + -0.013ns DIN_HLD and + 0.000ns delay constraint less + 0.000ns skew requirement (totaling -0.013ns) by 0.379ns + + Physical Path Details: + + Data path SLICE_4 to SLICE_4: + + Name Fanout Delay (ns) Site Resource +REG_DEL --- 0.133 R6C4C.CLK to R6C4C.Q1 SLICE_4 (from RCLK_c) +ROUTE 3 0.132 R6C4C.Q1 to R6C4C.A1 FS[12] +CTOF_DEL --- 0.101 R6C4C.A1 to R6C4C.F1 SLICE_4 +ROUTE 1 0.000 R6C4C.F1 to R6C4C.DI1 FS_s[12] (to RCLK_c) + -------- + 0.366 (63.9% logic, 36.1% route), 2 logic levels. + + Clock Skew Details: + + Source Clock Path RCLK to SLICE_4: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R6C4C.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + Destination Clock Path RCLK to SLICE_4: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R6C4C.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + +Passed: The following path meets requirements by 0.379ns + + Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) + + Source: FF Q nUFMCS (from RCLK_c +) + Destination: FF Data in nUFMCS (to RCLK_c +) + + Delay: 0.366ns (63.9% logic, 36.1% route), 2 logic levels. + + Constraint Details: + + 0.366ns physical path delay SLICE_45 to SLICE_45 meets + -0.013ns DIN_HLD and + 0.000ns delay constraint less + 0.000ns skew requirement (totaling -0.013ns) by 0.379ns + + Physical Path Details: + + Data path SLICE_45 to SLICE_45: + + Name Fanout Delay (ns) Site Resource +REG_DEL --- 0.133 R5C5A.CLK to R5C5A.Q0 SLICE_45 (from RCLK_c) +ROUTE 1 0.130 R5C5A.Q0 to R5C5A.A0 nUFMCS_c +CTOF_DEL --- 0.101 R5C5A.A0 to R5C5A.F0 SLICE_45 +ROUTE 2 0.002 R5C5A.F0 to R5C5A.DI0 nUFMCS_s_0_N_5_i (to RCLK_c) + -------- + 0.366 (63.9% logic, 36.1% route), 2 logic levels. + + Clock Skew Details: + + Source Clock Path RCLK to SLICE_45: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R5C5A.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + Destination Clock Path RCLK to SLICE_45: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R5C5A.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + +Passed: The following path meets requirements by 0.379ns + + Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) + + Source: FF Q FS[9] (from RCLK_c +) + Destination: FF Data in FS[9] (to RCLK_c +) + + Delay: 0.366ns (63.9% logic, 36.1% route), 2 logic levels. + + Constraint Details: + + 0.366ns physical path delay SLICE_5 to SLICE_5 meets + -0.013ns DIN_HLD and + 0.000ns delay constraint less + 0.000ns skew requirement (totaling -0.013ns) by 0.379ns + + Physical Path Details: + + Data path SLICE_5 to SLICE_5: + + Name Fanout Delay (ns) Site Resource +REG_DEL --- 0.133 R6C4B.CLK to R6C4B.Q0 SLICE_5 (from RCLK_c) +ROUTE 3 0.132 R6C4B.Q0 to R6C4B.A0 FS[9] +CTOF_DEL --- 0.101 R6C4B.A0 to R6C4B.F0 SLICE_5 +ROUTE 1 0.000 R6C4B.F0 to R6C4B.DI0 FS_s[9] (to RCLK_c) + -------- + 0.366 (63.9% logic, 36.1% route), 2 logic levels. + + Clock Skew Details: + + Source Clock Path RCLK to SLICE_5: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R6C4B.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + Destination Clock Path RCLK to SLICE_5: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R6C4B.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. Report Summary -------------- @@ -2097,9 +2176,13 @@ Report Summary Preference(MIN Delays) | Constraint| Actual|Levels ---------------------------------------------------------------------------- | | | -FREQUENCY NET "RCLK_c" 299.401000 MHz ; | 0.000 ns| 0.304 ns| 1 +FREQUENCY PORT "PHI2" 2.900000 MHz ; | -| -| 2 | | | -FREQUENCY NET "PHI2_c" 99.079000 MHz ; | 0.000 ns| 0.379 ns| 2 +FREQUENCY PORT "nCCAS" 2.900000 MHz ; | -| -| 0 + | | | +FREQUENCY PORT "nCRAS" 2.900000 MHz ; | -| -| 0 + | | | +FREQUENCY PORT "RCLK" 62.500000 MHz ; | -| -| 1 | | | ---------------------------------------------------------------------------- @@ -2112,14 +2195,20 @@ Clock Domains Analysis Found 4 clocks: -Clock Domain: nCRAS_c Source: nCRAS.PAD Loads: 9 +Clock Domain: nCRAS_c Source: nCRAS.PAD Loads: 12 No transfer within this clock domain is found -Clock Domain: nCCAS_c Source: nCCAS.PAD Loads: 6 + Data transfers from: + Clock Domain: RCLK_c Source: RCLK.PAD + Not reported because source and destination domains are unrelated. + To report these transfers please refer to preference CLKSKEWDIFF to define + external clock skew between clock ports. + +Clock Domain: nCCAS_c Source: nCCAS.PAD Loads: 10 No transfer within this clock domain is found -Clock Domain: RCLK_c Source: RCLK.PAD Loads: 40 - Covered under: FREQUENCY NET "RCLK_c" 299.401000 MHz ; +Clock Domain: RCLK_c Source: RCLK.PAD Loads: 39 + Covered under: FREQUENCY PORT "RCLK" 62.500000 MHz ; Data transfers from: Clock Domain: nCRAS_c Source: nCRAS.PAD @@ -2132,8 +2221,8 @@ Clock Domain: RCLK_c Source: RCLK.PAD Loads: 40 To report these transfers please refer to preference CLKSKEWDIFF to define external clock skew between clock ports. -Clock Domain: PHI2_c Source: PHI2.PAD Loads: 14 - Covered under: FREQUENCY NET "PHI2_c" 99.079000 MHz ; +Clock Domain: PHI2_c Source: PHI2.PAD Loads: 19 + Covered under: FREQUENCY PORT "PHI2" 2.900000 MHz ; Data transfers from: Clock Domain: RCLK_c Source: RCLK.PAD @@ -2148,16 +2237,16 @@ Timing summary (Hold): Timing errors: 0 Score: 0 Cumulative negative slack: 0 -Constraints cover 572 paths, 2 nets, and 409 connections (60.68% coverage) +Constraints cover 760 paths, 4 nets, and 439 connections (62.45% coverage) Timing summary (Setup and Hold): --------------- -Timing errors: 349 (setup), 0 (hold) -Score: 452301 (setup), 0 (hold) -Cumulative negative slack: 370485 (370485+0) +Timing errors: 0 (setup), 0 (hold) +Score: 0 (setup), 0 (hold) +Cumulative negative slack: 0 (0+0) -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_bgn.html b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_bgn.html index 7144090..52bf9a9 100644 --- a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_bgn.html +++ b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_bgn.html @@ -12,7 +12,7 @@ Copyright (c) 1995 AT&T Corp. All rights reserved. Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. Copyright (c) 2001 Agere Systems All rights reserved. Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. -Tue Aug 15 05:00:22 2023 +Tue Aug 15 23:30:11 2023 Command: bitgen -g RamCfg:Reset -path D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC -w -jedec -gui -msgset D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/promote.xml RAM2GS_LCMXO2_640HC_impl1.ncd RAM2GS_LCMXO2_640HC_impl1.prf @@ -93,7 +93,7 @@ Initialized UFM Pages: 0 Page. Total CPU Time: 1 secs Total REAL Time: 2 secs -Peak Memory Usage: 245 MB +Peak Memory Usage: 246 MB diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_cck.rpt b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_cck.rpt new file mode 100644 index 0000000..a668f03 --- /dev/null +++ b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_cck.rpt @@ -0,0 +1,155 @@ + +Copyright (C) 1994-2021 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. +Tool: Synplify Pro (R) +Build: R-2021.03L-SP1 +Install: C:\lscc\diamond\3.12\synpbase +OS: Windows 6.2 + +Hostname: ZANEPC + +Implementation : impl1 + +# Written on Tue Aug 15 23:12:44 2023 + +##### DESIGN INFO ####################################################### + +Top View: "RAM2GS" +Constraint File(s): "D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\RAM2GS.sdc" + + + + +##### SUMMARY ############################################################ + +Found 0 issues in 0 out of 4 constraints + + +##### DETAILS ############################################################ + + + +Clock Relationships +******************* + +Starting Ending | rise to rise | fall to fall | rise to fall | fall to rise +----------------------------------------------------------------------------------------------------------------------------------- +RCLK RCLK | 16.000 | No paths | No paths | No paths +RCLK PHI2 | 2.000 | No paths | 1.000 | No paths +RCLK nCRAS | No paths | No paths | 1.000 | No paths +PHI2 RCLK | No paths | No paths | No paths | 1.000 +PHI2 PHI2 | No paths | 350.000 | 175.000 | 175.000 +nCRAS RCLK | No paths | No paths | No paths | 1.000 +=================================================================================================================================== + 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. + + +@W:"d:/onedrive/documents/github/ram2gs/cpld/ram2gs.sdc":2:0:2:0|Paths from clock (PHI2:f) to clock (RCLK:r) are overconstrained because the required time of 1.00 ns is too small. +@W:"d:/onedrive/documents/github/ram2gs/cpld/ram2gs.sdc":1:0:1:0|Paths from clock (RCLK:r) to clock (PHI2:f) are overconstrained because the required time of 1.00 ns is too small. +@W:"d:/onedrive/documents/github/ram2gs/cpld/ram2gs.sdc":3:0:3:0|Paths from clock (nCRAS:f) to clock (RCLK:r) are overconstrained because the required time of 1.00 ns is too small. +@W:"d:/onedrive/documents/github/ram2gs/cpld/ram2gs.sdc":1:0:1:0|Paths from clock (RCLK:r) to clock (PHI2:r) are overconstrained because the required time of 2.00 ns is too small. +@W:"d:/onedrive/documents/github/ram2gs/cpld/ram2gs.sdc":1:0:1:0|Paths from clock (RCLK:r) to clock (nCRAS:f) are overconstrained because the required time of 1.00 ns is too small. + + +Unconstrained Start/End Points +****************************** + +p:CROW[0] +p:CROW[1] +p:Din[0] +p:Din[1] +p:Din[2] +p:Din[3] +p:Din[4] +p:Din[5] +p:Din[6] +p:Din[7] +p:Dout[0] +p:Dout[1] +p:Dout[2] +p:Dout[3] +p:Dout[4] +p:Dout[5] +p:Dout[6] +p:Dout[7] +p:MAin[0] +p:MAin[1] +p:MAin[2] +p:MAin[3] +p:MAin[4] +p:MAin[5] +p:MAin[6] +p:MAin[7] +p:MAin[8] +p:MAin[9] +p:RA[0] +p:RA[1] +p:RA[2] +p:RA[3] +p:RA[4] +p:RA[5] +p:RA[6] +p:RA[7] +p:RA[8] +p:RA[9] +p:RA[10] +p:RA[11] +p:RBA[0] +p:RBA[1] +p:RCKE +p:RDQMH +p:RDQML +p:RD[0] (bidir end point) +p:RD[0] (bidir start point) +p:RD[1] (bidir end point) +p:RD[1] (bidir start point) +p:RD[2] (bidir end point) +p:RD[2] (bidir start point) +p:RD[3] (bidir end point) +p:RD[3] (bidir start point) +p:RD[4] (bidir end point) +p:RD[4] (bidir start point) +p:RD[5] (bidir end point) +p:RD[5] (bidir start point) +p:RD[6] (bidir end point) +p:RD[6] (bidir start point) +p:RD[7] (bidir end point) +p:RD[7] (bidir start point) +p:UFMCLK +p:UFMSDI +p:UFMSDO +p:nFWE +p:nRCAS +p:nRCS +p:nRRAS +p:nRWE +p:nUFMCS + + +Inapplicable constraints +************************ + +(none) + + +Applicable constraints with issues +********************************** + +(none) + + +Constraints with matching wildcard expressions +********************************************** + +(none) + + +Library Report +************** + + +# End of Constraint Checker Report diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_cck.rpt.db b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_cck.rpt.db new file mode 100644 index 0000000000000000000000000000000000000000..97ba9ca96a4a412eb68b2f1d5c67ff1ea98261ab GIT binary patch literal 8192 zcmeH~zfQw25XPNA1p@^J1OuvcVxkBoZP@|?ZB+?G2PnLNn>el2#0J|btXX*-o`@&l z6>zGCA~945!NQ$#v3Y?R2OxyF^R&Y(9D84#&x@g0 zFAJA=JFivS%F(0?G}`r@)x$ojU1))Eb!m7f`LVvVr*)rb%53nxl%zAa*@5$@j_@hh9j V`I&~6HNxgsBW7F2{_*eo@D3o_eV+gT literal 0 HcmV?d00001 diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_iotiming.html b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_iotiming.html index 85916f1..acbafe8 100644 --- a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_iotiming.html +++ b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_iotiming.html @@ -38,7 +38,7 @@ Performance Hardware Data Status: Final Version 34.4. // Package: TQFP100 // ncd File: ram2gs_lcmxo2_640hc_impl1.ncd // Version: Diamond (64-bit) 3.12.1.454 -// Written on Tue Aug 15 05:03:37 2023 +// Written on Tue Aug 15 22:56:41 2023 // M: Minimum Performance Grade // iotiming RAM2GS_LCMXO2_640HC_impl1.ncd RAM2GS_LCMXO2_640HC_impl1.prf -gui -msgset D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/promote.xml @@ -50,101 +50,100 @@ Worst Case Results across Performance Grades (M, 6, 5, 4): Port Clock Edge Setup Performance_Grade Hold Performance_Grade ---------------------------------------------------------------------- -CROW[0] nCRAS F 0.993 4 0.541 4 -CROW[1] nCRAS F 0.293 4 1.148 4 -Din[0] PHI2 F 4.804 4 1.483 4 -Din[0] nCCAS F 1.539 4 -0.150 M -Din[1] PHI2 F 4.733 4 0.702 4 -Din[1] nCCAS F 1.638 4 -0.177 M -Din[2] PHI2 F 4.046 4 1.702 4 -Din[2] nCCAS F 1.651 4 -0.121 M -Din[3] PHI2 F 4.770 4 1.575 4 -Din[3] nCCAS F 1.973 4 -0.207 M -Din[4] PHI2 F 5.656 4 0.720 4 -Din[4] nCCAS F 1.606 4 -0.156 M -Din[5] PHI2 F 4.165 4 1.131 4 -Din[5] nCCAS F 0.618 4 0.435 4 -Din[6] PHI2 F 5.309 4 1.478 4 -Din[6] nCCAS F 1.331 4 -0.053 M -Din[7] PHI2 F 5.874 4 1.774 4 -Din[7] nCCAS F 2.023 4 -0.205 M -MAin[0] PHI2 F 5.149 4 0.137 M -MAin[0] nCRAS F -0.022 M 1.415 4 -MAin[1] PHI2 F 4.216 4 1.539 4 -MAin[1] nCRAS F 1.716 4 -0.018 M -MAin[2] PHI2 F 3.754 4 0.553 4 -MAin[2] nCRAS F -0.164 M 1.715 4 -MAin[3] PHI2 F 5.957 4 -0.100 M -MAin[3] nCRAS F 0.033 4 1.356 4 -MAin[4] PHI2 F 5.652 4 -0.180 M -MAin[4] nCRAS F -0.173 M 1.726 4 -MAin[5] PHI2 F 4.938 4 0.693 6 -MAin[5] nCRAS F 0.005 4 1.395 4 -MAin[6] PHI2 F 5.535 4 -0.147 M -MAin[6] nCRAS F 0.012 4 1.387 4 -MAin[7] PHI2 F 5.951 4 -0.083 M -MAin[7] nCRAS F 0.858 4 0.664 4 -MAin[8] nCRAS F 0.526 4 0.915 4 -MAin[9] nCRAS F 0.038 4 1.342 4 -PHI2 RCLK R 2.772 4 -0.342 M -UFMSDO RCLK R 0.780 4 0.632 4 -nCCAS RCLK R 0.557 4 0.872 4 -nCCAS nCRAS F 2.108 4 -0.053 M -nCRAS RCLK R 2.536 4 -0.169 M -nFWE PHI2 F 5.830 4 0.629 4 -nFWE nCRAS F 1.386 4 0.176 4 +CROW[0] nCRAS F 3.268 4 -0.395 M +CROW[1] nCRAS F 1.999 4 -0.040 M +Din[0] PHI2 F 4.389 4 3.636 4 +Din[0] nCCAS F 0.646 4 0.538 4 +Din[1] PHI2 F 4.456 4 3.516 4 +Din[1] nCCAS F 1.108 4 0.143 4 +Din[2] PHI2 F 4.106 4 3.516 4 +Din[2] nCCAS F 1.315 4 0.036 M +Din[3] PHI2 F 4.427 4 3.516 4 +Din[3] nCCAS F 1.893 4 -0.089 M +Din[4] PHI2 F 4.612 4 3.516 4 +Din[4] nCCAS F 0.714 4 0.460 4 +Din[5] PHI2 F 4.805 4 3.516 4 +Din[5] nCCAS F 1.636 4 -0.054 M +Din[6] PHI2 F 4.266 4 3.636 4 +Din[6] nCCAS F 1.078 4 0.185 4 +Din[7] PHI2 F 5.607 4 3.636 4 +Din[7] nCCAS F 2.050 4 -0.188 M +MAin[0] PHI2 F 6.493 4 -0.289 M +MAin[0] nCRAS F 0.832 4 0.632 4 +MAin[1] PHI2 F 5.109 4 0.055 M +MAin[1] nCRAS F 1.627 4 0.047 M +MAin[2] PHI2 F 5.349 4 0.695 4 +MAin[2] nCRAS F 1.684 4 0.048 M +MAin[3] PHI2 F 7.301 4 -0.533 M +MAin[3] nCRAS F 1.660 4 0.035 M +MAin[4] PHI2 F 6.167 4 -0.223 M +MAin[4] nCRAS F 1.339 4 0.181 4 +MAin[5] PHI2 F 6.923 4 -0.449 M +MAin[5] nCRAS F 1.082 4 0.412 4 +MAin[6] PHI2 F 6.784 4 -0.408 M +MAin[6] nCRAS F 0.961 4 0.423 4 +MAin[7] PHI2 F 6.547 4 -0.171 M +MAin[7] nCRAS F 1.331 4 0.186 4 +MAin[8] nCRAS F 0.454 4 0.874 4 +MAin[9] nCRAS F 0.782 4 0.684 4 +PHI2 RCLK R -0.312 M 3.167 4 +UFMSDO RCLK R 0.397 4 0.958 4 +nCCAS RCLK R 2.272 4 -0.095 M +nCCAS nCRAS F 3.094 4 -0.308 M +nCRAS RCLK R 1.843 4 0.009 M +nFWE PHI2 F 5.987 4 -0.179 M +nFWE nCRAS F 0.594 4 0.839 4 // Clock to Output Delay Port Clock Edge Max_Delay Performance_Grade Min_Delay Performance_Grade ------------------------------------------------------------------------ -LED RCLK R 11.611 4 3.288 M -LED nCRAS F 12.009 4 3.367 M -RA[0] RCLK R 12.268 4 3.492 M -RA[0] nCRAS F 11.741 4 3.284 M -RA[10] RCLK R 10.004 4 2.964 M -RA[11] PHI2 R 10.669 4 3.160 M -RA[1] RCLK R 12.975 4 3.665 M -RA[1] nCRAS F 11.918 4 3.321 M -RA[2] RCLK R 12.531 4 3.533 M -RA[2] nCRAS F 11.755 4 3.277 M -RA[3] RCLK R 11.851 4 3.375 M -RA[3] nCRAS F 12.624 4 3.513 M -RA[4] RCLK R 13.380 4 3.775 M -RA[4] nCRAS F 12.857 4 3.569 M -RA[5] RCLK R 12.767 4 3.632 M -RA[5] nCRAS F 12.469 4 3.456 M -RA[6] RCLK R 12.163 4 3.468 M -RA[6] nCRAS F 12.141 4 3.394 M -RA[7] RCLK R 11.990 4 3.375 M -RA[7] nCRAS F 12.172 4 3.381 M -RA[8] RCLK R 11.712 4 3.314 M -RA[8] nCRAS F 12.431 4 3.457 M -RA[9] RCLK R 11.412 4 3.233 M -RA[9] nCRAS F 12.128 4 3.377 M -RBA[0] nCRAS F 10.844 4 3.124 M -RBA[1] nCRAS F 10.216 4 2.967 M -RCKE RCLK R 10.964 4 3.209 M -RDQMH RCLK R 12.109 4 3.426 M -RDQML RCLK R 10.974 4 3.140 M -RD[0] nCCAS F 8.747 4 2.603 M -RD[1] nCCAS F 8.747 4 2.603 M -RD[2] nCCAS F 8.737 4 2.605 M -RD[3] nCCAS F 9.239 4 2.740 M -RD[4] nCCAS F 9.283 4 2.726 M -RD[5] nCCAS F 9.355 4 2.761 M -RD[6] nCCAS F 9.106 4 2.681 M -RD[7] nCCAS F 9.181 4 2.711 M -UFMCLK RCLK R 10.078 4 3.002 M -UFMSDI RCLK R 10.108 4 2.996 M -nRCAS RCLK R 10.525 4 3.100 M -nRCS RCLK R 10.119 4 2.984 M -nRRAS RCLK R 10.200 4 3.024 M -nRWE RCLK R 9.984 4 2.972 M -nUFMCS RCLK R 10.165 4 3.020 M +LED RCLK R 11.623 4 3.337 M +LED nCRAS F 10.867 4 3.086 M +RA[0] RCLK R 10.387 4 3.085 M +RA[0] nCRAS F 10.473 4 3.018 M +RA[10] RCLK R 8.141 4 2.620 M +RA[11] PHI2 R 8.610 4 2.756 M +RA[1] RCLK R 11.208 4 3.281 M +RA[1] nCRAS F 10.655 4 3.096 M +RA[2] RCLK R 11.477 4 3.355 M +RA[2] nCRAS F 10.655 4 3.096 M +RA[3] RCLK R 10.954 4 3.201 M +RA[3] nCRAS F 10.693 4 3.092 M +RA[4] RCLK R 12.338 4 3.584 M +RA[4] nCRAS F 10.776 4 3.099 M +RA[5] RCLK R 11.516 4 3.347 M +RA[5] nCRAS F 11.072 4 3.177 M +RA[6] RCLK R 11.068 4 3.255 M +RA[6] nCRAS F 10.655 4 3.096 M +RA[7] RCLK R 10.823 4 3.207 M +RA[7] nCRAS F 11.129 4 3.214 M +RA[8] RCLK R 11.034 4 3.275 M +RA[8] nCRAS F 10.664 4 3.099 M +RA[9] RCLK R 10.925 4 3.239 M +RA[9] nCRAS F 10.710 4 3.093 M +RBA[0] nCRAS F 8.157 4 2.563 M +RBA[1] nCRAS F 8.157 4 2.563 M +RCKE RCLK R 8.141 4 2.620 M +RDQMH RCLK R 11.337 4 3.355 M +RDQML RCLK R 10.800 4 3.223 M +RD[0] nCCAS F 7.888 4 2.510 M +RD[1] nCCAS F 7.888 4 2.510 M +RD[2] nCCAS F 7.888 4 2.510 M +RD[3] nCCAS F 7.888 4 2.510 M +RD[4] nCCAS F 7.888 4 2.510 M +RD[5] nCCAS F 7.888 4 2.510 M +RD[6] nCCAS F 7.888 4 2.510 M +RD[7] nCCAS F 7.888 4 2.510 M +UFMCLK RCLK R 8.121 4 2.627 M +UFMSDI RCLK R 8.121 4 2.627 M +nRCAS RCLK R 8.141 4 2.620 M +nRCS RCLK R 8.141 4 2.620 M +nRRAS RCLK R 8.141 4 2.620 M +nRWE RCLK R 8.121 4 2.627 M +nUFMCS RCLK R 8.121 4 2.627 M WARNING: you must also run trce with hold speed: 4 -WARNING: you must also run trce with hold speed: 6 WARNING: you must also run trce with setup speed: M diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_map.asd b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_map.asd index bcf1f47..0053977 100644 --- a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_map.asd +++ b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_map.asd @@ -3,12 +3,12 @@ Device = LCMXO2-640HC; Package = TQFP100; Performance = 4; LUTS_avail = 640; -LUTS_used = 143; +LUTS_used = 159; FF_avail = 719; -FF_used = 102; -INPUT_LVCMOS25 = 26; -OUTPUT_LVCMOS25 = 33; -BIDI_LVCMOS25 = 8; +FF_used = 93; +INPUT_LVCMOS33 = 26; +OUTPUT_LVCMOS33 = 33; +BIDI_LVCMOS33 = 8; IO_avail = 79; IO_used = 67; EBR_avail = 2; diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_map.cam b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_map.cam index 5798330..65fe70d 100644 --- a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_map.cam +++ b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_map.cam @@ -1,23 +1,35 @@ [ START MERGED ] -n2380 Ready -PHI2_N_120 PHI2_c -nRWE_N_176 nRWE_N_177 -n1407 nRowColSel_N_34 -n1408 nRowColSel_N_35 +RASr2_i RASr2 +XOR8MEG.CN PHI2_c +nCRAS_c_i nCRAS_c [ END MERGED ] [ START CLIPPED ] -GND_net -VCC_net -FS_610_add_4_19/S1 -FS_610_add_4_19/CO -FS_610_add_4_1/S0 -FS_610_add_4_1/CI +GND +FS_s_0_S1[17] +FS_s_0_COUT[17] +FS_cry_0_S0[0] +N_1 [ END CLIPPED ] [ START DESIGN PREFS ] SCHEMATIC START ; -# map: version Diamond (64-bit) 3.12.1.454 -- WARNING: Map write only section -- Tue Aug 15 05:03:24 2023 +# map: version Diamond (64-bit) 3.12.1.454 -- WARNING: Map write only section -- Tue Aug 15 23:30:05 2023 SYSCONFIG SDM_PORT=DISABLE SLAVE_SPI_PORT=DISABLE I2C_PORT=DISABLE MASTER_SPI_PORT=DISABLE COMPRESS_CONFIG=ON CONFIGURATION=CFG MY_ASSP=OFF ONE_TIME_PROGRAM=OFF CONFIG_SECURE=OFF MCCLK_FREQ=2.08 JTAG_PORT=ENABLE ENABLE_TRANSFR=DISABLE SHAREDEBRINIT=DISABLE MUX_CONFIGURATION_PORTS=DISABLE BACKGROUND_RECONFIG=OFF INBUF=ON ; +LOCATE COMP "RD[0]" SITE "36" ; +LOCATE COMP "Dout[0]" SITE "76" ; +LOCATE COMP "PHI2" SITE "8" ; +LOCATE COMP "UFMSDO" SITE "27" ; +LOCATE COMP "UFMSDI" SITE "29" ; +LOCATE COMP "UFMCLK" SITE "28" ; +LOCATE COMP "nUFMCS" SITE "30" ; +LOCATE COMP "RDQML" SITE "48" ; +LOCATE COMP "RDQMH" SITE "51" ; +LOCATE COMP "nRCAS" SITE "52" ; +LOCATE COMP "nRRAS" SITE "54" ; +LOCATE COMP "nRWE" SITE "49" ; +LOCATE COMP "RCKE" SITE "53" ; +LOCATE COMP "RCLK" SITE "62" ; +LOCATE COMP "nRCS" SITE "57" ; LOCATE COMP "RD[7]" SITE "43" ; LOCATE COMP "RD[6]" SITE "42" ; LOCATE COMP "RD[5]" SITE "41" ; @@ -25,18 +37,6 @@ LOCATE COMP "RD[4]" SITE "40" ; LOCATE COMP "RD[3]" SITE "39" ; LOCATE COMP "RD[2]" SITE "38" ; LOCATE COMP "RD[1]" SITE "37" ; -LOCATE COMP "RD[0]" SITE "36" ; -LOCATE COMP "Dout[7]" SITE "82" ; -LOCATE COMP "Dout[6]" SITE "78" ; -LOCATE COMP "Dout[5]" SITE "84" ; -LOCATE COMP "Dout[4]" SITE "83" ; -LOCATE COMP "Dout[3]" SITE "85" ; -LOCATE COMP "Dout[2]" SITE "87" ; -LOCATE COMP "Dout[1]" SITE "86" ; -LOCATE COMP "Dout[0]" SITE "76" ; -LOCATE COMP "LED" SITE "34" ; -LOCATE COMP "RBA[1]" SITE "60" ; -LOCATE COMP "RBA[0]" SITE "58" ; LOCATE COMP "RA[11]" SITE "59" ; LOCATE COMP "RA[10]" SITE "64" ; LOCATE COMP "RA[9]" SITE "63" ; @@ -49,16 +49,29 @@ LOCATE COMP "RA[3]" SITE "71" ; LOCATE COMP "RA[2]" SITE "69" ; LOCATE COMP "RA[1]" SITE "67" ; LOCATE COMP "RA[0]" SITE "66" ; -LOCATE COMP "nRCS" SITE "57" ; -LOCATE COMP "RCKE" SITE "53" ; -LOCATE COMP "nRWE" SITE "49" ; -LOCATE COMP "nRRAS" SITE "54" ; -LOCATE COMP "nRCAS" SITE "52" ; -LOCATE COMP "RDQMH" SITE "51" ; -LOCATE COMP "RDQML" SITE "48" ; -LOCATE COMP "UFMCLK" SITE "29" ; -LOCATE COMP "UFMSDI" SITE "30" ; -LOCATE COMP "PHI2" SITE "8" ; +LOCATE COMP "RBA[1]" SITE "60" ; +LOCATE COMP "RBA[0]" SITE "58" ; +LOCATE COMP "LED" SITE "34" ; +LOCATE COMP "nFWE" SITE "15" ; +LOCATE COMP "nCRAS" SITE "17" ; +LOCATE COMP "nCCAS" SITE "9" ; +LOCATE COMP "Dout[7]" SITE "82" ; +LOCATE COMP "Dout[6]" SITE "78" ; +LOCATE COMP "Dout[5]" SITE "84" ; +LOCATE COMP "Dout[4]" SITE "83" ; +LOCATE COMP "Dout[3]" SITE "85" ; +LOCATE COMP "Dout[2]" SITE "87" ; +LOCATE COMP "Dout[1]" SITE "86" ; +LOCATE COMP "Din[7]" SITE "1" ; +LOCATE COMP "Din[6]" SITE "2" ; +LOCATE COMP "Din[5]" SITE "98" ; +LOCATE COMP "Din[4]" SITE "99" ; +LOCATE COMP "Din[3]" SITE "97" ; +LOCATE COMP "Din[2]" SITE "88" ; +LOCATE COMP "Din[1]" SITE "96" ; +LOCATE COMP "Din[0]" SITE "3" ; +LOCATE COMP "CROW[1]" SITE "16" ; +LOCATE COMP "CROW[0]" SITE "10" ; LOCATE COMP "MAin[9]" SITE "32" ; LOCATE COMP "MAin[8]" SITE "25" ; LOCATE COMP "MAin[7]" SITE "18" ; @@ -69,20 +82,9 @@ LOCATE COMP "MAin[3]" SITE "21" ; LOCATE COMP "MAin[2]" SITE "13" ; LOCATE COMP "MAin[1]" SITE "12" ; LOCATE COMP "MAin[0]" SITE "14" ; -LOCATE COMP "CROW[1]" SITE "16" ; -LOCATE COMP "CROW[0]" SITE "10" ; -LOCATE COMP "Din[7]" SITE "1" ; -LOCATE COMP "Din[6]" SITE "2" ; -LOCATE COMP "Din[5]" SITE "98" ; -LOCATE COMP "Din[4]" SITE "99" ; -LOCATE COMP "Din[3]" SITE "97" ; -LOCATE COMP "Din[2]" SITE "88" ; -LOCATE COMP "Din[1]" SITE "96" ; -LOCATE COMP "Din[0]" SITE "3" ; -LOCATE COMP "nCCAS" SITE "9" ; -LOCATE COMP "nCRAS" SITE "17" ; -LOCATE COMP "nFWE" SITE "28" ; -LOCATE COMP "RCLK" SITE "62" ; -LOCATE COMP "UFMSDO" SITE "27" ; +FREQUENCY PORT "PHI2" 2.900000 MHz ; +FREQUENCY PORT "nCCAS" 2.900000 MHz ; +FREQUENCY PORT "nCRAS" 2.900000 MHz ; +FREQUENCY PORT "RCLK" 62.500000 MHz ; SCHEMATIC END ; [ END DESIGN PREFS ] diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_map.hrr b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_map.hrr index a9cd083..bc09ec9 100644 --- a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_map.hrr +++ b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_map.hrr @@ -3,8 +3,10 @@ Report for cell RAM2GS Instance path: RAM2GS Cell usage: cell count Res Usage(%) - SLIC 75.00 100.0 - LUT4 123.00 100.0 + SLIC 81.00 100.0 + IOLGC 29.00 100.0 + LUT4 139.00 100.0 + IOREG 29 100.0 IOBUF 67 100.0 - PFUREG 102 100.0 + PFUREG 64 100.0 RIPPLE 10 100.0 diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_map.ncd b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_map.ncd index 3b0a349a8f4a8a9d395c9d3450b234324d65587a..0fa9172913ee8b1a42242d439d4267f74dc0b7a2 100644 GIT binary patch literal 149601 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

    lsbaH_cqL1G7R2Zh2fAs@bkkk; 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 X"faaa", INIT1 => X"faaa", INJECT1_0 => "NO", + generic map (INIT0 => X"000A", INIT1 => X"300A", INJECT1_0 => "NO", INJECT1_1 => "NO") port map (CIN=>CI, A0=>A0, B0=>B0, C0=>C0, D0=>D0, A1=>A1, B1=>B1, C1=>C1, D1=>D1, S0=>S0, S1=>S1, COUT=>CO1); @@ -108,36 +108,21 @@ InstancePath : string := "SLICE_0"; tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); tipd_DI1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tipd_FCI : VitalDelayType01 := (0 ns, 0 ns); tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); tpd_A1_FCO : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_FCO : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_FCI_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_FCI_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_FCI_FCO : VitalDelayType01 := (0 ns, 0 ns); ticd_CLK : VitalDelayType := 0 ns; tisd_DI1_CLK : VitalDelayType := 0 ns; tsetup_DI1_CLK_noedge_posedge : VitalDelayType := 0 ns; thold_DI1_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_DI0_CLK : VitalDelayType := 0 ns; - tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; tperiod_CLK : VitalDelayType := 0 ns; tpw_CLK_posedge : VitalDelayType := 0 ns; tpw_CLK_negedge : VitalDelayType := 0 ns); - port (A1: in Std_logic; A0: in Std_logic; DI1: in Std_logic; - DI0: in Std_logic; CLK: in Std_logic; FCI: in Std_logic; - F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic; - Q1: out Std_logic; FCO: out Std_logic); + port (A1: in Std_logic; DI1: in Std_logic; CLK: in Std_logic; + F1: out Std_logic; Q1: out Std_logic; FCO: out Std_logic); ATTRIBUTE Vital_Level0 OF SLICE_0 : ENTITY IS TRUE; @@ -147,16 +132,10 @@ ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; signal A1_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; signal DI1_ipd : std_logic := 'X'; signal DI1_dly : std_logic := 'X'; - signal DI0_ipd : std_logic := 'X'; - signal DI0_dly : std_logic := 'X'; signal CLK_ipd : std_logic := 'X'; signal CLK_dly : std_logic := 'X'; - signal FCI_ipd : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; signal F1_out : std_logic := 'X'; signal Q1_out : std_logic := 'X'; signal FCO_out : std_logic := 'X'; @@ -181,46 +160,34 @@ S0: out Std_logic; S1: out Std_logic; CO1: out Std_logic); end component; begin - FS_610_i14: vmuxregsre + FS_0: vmuxregsre port map (D0=>VCCI, D1=>DI1_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, LSR=>GNDI, Q=>Q1_out); DRIVEVCC: vcc port map (PWR1=>VCCI); DRIVEGND: gnd port map (PWR0=>GNDI); - FS_610_i13: vmuxregsre - port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, - LSR=>GNDI, Q=>Q0_out); - FS_610_add_4_15: ccu2B0 - port map (A0=>A0_ipd, B0=>GNDI, C0=>GNDI, D0=>GNDI, A1=>A1_ipd, B1=>GNDI, - C1=>GNDI, D1=>GNDI, CI=>FCI_ipd, S0=>F0_out, S1=>F1_out, + FS_cry_0_0: ccu2B0 + port map (A0=>GNDI, B0=>GNDI, C0=>GNDI, D0=>GNDI, A1=>A1_ipd, B1=>GNDI, + C1=>GNDI, D1=>GNDI, CI=>GNDI, S0=>open, S1=>F1_out, CO1=>FCO_out); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(A0_ipd, A0, tipd_A0); VitalWireDelay(DI1_ipd, DI1, tipd_DI1); - VitalWireDelay(DI0_ipd, DI0, tipd_DI0); VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - VitalWireDelay(FCI_ipd, FCI, tipd_FCI); END BLOCK; -- Setup and Hold DELAYs SignalDelay : BLOCK BEGIN VitalSignalDelay(DI1_dly, DI1_ipd, tisd_DI1_CLK); - VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); END BLOCK; - VitalBehavior : PROCESS (A1_ipd, A0_ipd, DI1_dly, DI0_dly, CLK_dly, - FCI_ipd, F0_out, Q0_out, F1_out, Q1_out, FCO_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; + VitalBehavior : PROCESS (A1_ipd, DI1_dly, CLK_dly, F1_out, Q1_out, FCO_out) VARIABLE F1_zd : std_logic := 'X'; VARIABLE F1_GlitchData : VitalGlitchDataType; VARIABLE Q1_zd : std_logic := 'X'; @@ -230,8 +197,6 @@ VARIABLE tviol_DI1_CLK : x01 := '0'; VARIABLE DI1_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_DI0_CLK : x01 := '0'; - VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; VARIABLE tviol_CLK_CLK : x01 := '0'; VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; @@ -256,24 +221,6 @@ TimingData => DI1_CLK_TimingDatash, Violation => tviol_DI1_CLK, MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => DI0_dly, - TestSignalName => "DI0", - TestDelay => tisd_DI0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_DI0_CLK_noedge_posedge, - SetupLow => tsetup_DI0_CLK_noedge_posedge, - HoldHigh => thold_DI0_CLK_noedge_posedge, - HoldLow => thold_DI0_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => DI0_CLK_TimingDatash, - Violation => tviol_DI0_CLK, - MsgSeverity => warning); VitalPeriodPulseCheck ( TestSignal => CLK_ipd, TestSignalName => "CLK", @@ -289,39 +236,14 @@ END IF; - F0_zd := F0_out; - Q0_zd := Q0_out; F1_zd := F1_out; Q1_zd := Q1_out; FCO_zd := FCO_out; - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => FCI_ipd'last_event, - PathDelay => tpd_FCI_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); VitalPathDelay01 ( OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, Paths => (0 => (InputChangeTime => A1_ipd'last_event, PathDelay => tpd_A1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => FCI_ipd'last_event, - PathDelay => tpd_FCI_F1, PathCondition => TRUE)), GlitchData => F1_GlitchData, Mode => ondetect, XOn => XOn, MsgOn => MsgOn); @@ -336,12 +258,6 @@ OutSignal => FCO, OutSignalName => "FCO", OutTemp => FCO_zd, Paths => (0 => (InputChangeTime => A1_ipd'last_event, PathDelay => tpd_A1_FCO, - PathCondition => TRUE), - 1 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_FCO, - PathCondition => TRUE), - 2 => (InputChangeTime => FCI_ipd'last_event, - PathDelay => tpd_FCI_FCO, PathCondition => TRUE)), GlitchData => FCO_GlitchData, Mode => ondetect, XOn => XOn, MsgOn => MsgOn); @@ -350,6 +266,31 @@ end Structure; +-- entity ccu20001 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity ccu20001 is + port (A0: in Std_logic; B0: in Std_logic; C0: in Std_logic; + D0: in Std_logic; A1: in Std_logic; B1: in Std_logic; + C1: in Std_logic; D1: in Std_logic; CI: in Std_logic; + S0: out Std_logic; S1: out Std_logic; CO1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF ccu20001 : ENTITY IS TRUE; + + end ccu20001; + + architecture Structure of ccu20001 is + begin + inst1: CCU2D + generic map (INIT0 => X"5002", INIT1 => X"300A", INJECT1_0 => "NO", + INJECT1_1 => "NO") + port map (CIN=>CI, A0=>A0, B0=>B0, C0=>C0, D0=>D0, A1=>A1, B1=>B1, + C1=>C1, D1=>D1, S0=>S0, S1=>S1, COUT=>CO1); + end Structure; + -- entity SLICE_1 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; @@ -364,26 +305,14 @@ MsgOn : boolean := TRUE; InstancePath : string := "SLICE_1"; - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_DI1 : VitalDelayType01 := (0 ns, 0 ns); tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); tipd_FCI : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_FCO : VitalDelayType01 := (0 ns, 0 ns); tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_FCO : VitalDelayType01 := (0 ns, 0 ns); tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); tpd_FCI_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_FCI_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_FCI_FCO : VitalDelayType01 := (0 ns, 0 ns); ticd_CLK : VitalDelayType := 0 ns; - tisd_DI1_CLK : VitalDelayType := 0 ns; - tsetup_DI1_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_DI1_CLK_noedge_posedge : VitalDelayType := 0 ns; tisd_DI0_CLK : VitalDelayType := 0 ns; tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; @@ -391,10 +320,8 @@ tpw_CLK_posedge : VitalDelayType := 0 ns; tpw_CLK_negedge : VitalDelayType := 0 ns); - port (A1: in Std_logic; A0: in Std_logic; DI1: in Std_logic; - DI0: in Std_logic; CLK: in Std_logic; FCI: in Std_logic; - F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic; - Q1: out Std_logic; FCO: out Std_logic); + port (A0: in Std_logic; DI0: in Std_logic; CLK: in Std_logic; + FCI: in Std_logic; F0: out Std_logic; Q0: out Std_logic); ATTRIBUTE Vital_Level0 OF SLICE_1 : ENTITY IS TRUE; @@ -403,10 +330,7 @@ architecture Structure of SLICE_1 is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - signal A1_ipd : std_logic := 'X'; signal A0_ipd : std_logic := 'X'; - signal DI1_ipd : std_logic := 'X'; - signal DI1_dly : std_logic := 'X'; signal DI0_ipd : std_logic := 'X'; signal DI0_dly : std_logic := 'X'; signal CLK_ipd : std_logic := 'X'; @@ -414,9 +338,6 @@ signal FCI_ipd : std_logic := 'X'; signal F0_out : std_logic := 'X'; signal Q0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - signal Q1_out : std_logic := 'X'; - signal FCO_out : std_logic := 'X'; signal VCCI: Std_logic; signal GNDI: Std_logic; @@ -431,34 +352,29 @@ component gnd port (PWR0: out Std_logic); end component; - component ccu2B0 + component ccu20001 port (A0: in Std_logic; B0: in Std_logic; C0: in Std_logic; D0: in Std_logic; A1: in Std_logic; B1: in Std_logic; C1: in Std_logic; D1: in Std_logic; CI: in Std_logic; S0: out Std_logic; S1: out Std_logic; CO1: out Std_logic); end component; begin - FS_610_i12: vmuxregsre - port map (D0=>VCCI, D1=>DI1_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, - LSR=>GNDI, Q=>Q1_out); + FS_17: vmuxregsre + port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, + LSR=>GNDI, Q=>Q0_out); DRIVEVCC: vcc port map (PWR1=>VCCI); DRIVEGND: gnd port map (PWR0=>GNDI); - FS_610_i11: vmuxregsre - port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, - LSR=>GNDI, Q=>Q0_out); - FS_610_add_4_13: ccu2B0 - port map (A0=>A0_ipd, B0=>GNDI, C0=>GNDI, D0=>GNDI, A1=>A1_ipd, B1=>GNDI, - C1=>GNDI, D1=>GNDI, CI=>FCI_ipd, S0=>F0_out, S1=>F1_out, - CO1=>FCO_out); + FS_s_0_17: ccu20001 + port map (A0=>A0_ipd, B0=>GNDI, C0=>GNDI, D0=>GNDI, A1=>GNDI, B1=>GNDI, + C1=>GNDI, D1=>GNDI, CI=>FCI_ipd, S0=>F0_out, S1=>open, + CO1=>open); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN - VitalWireDelay(A1_ipd, A1, tipd_A1); VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(DI1_ipd, DI1, tipd_DI1); VitalWireDelay(DI0_ipd, DI0, tipd_DI0); VitalWireDelay(CLK_ipd, CLK, tipd_CLK); VitalWireDelay(FCI_ipd, FCI, tipd_FCI); @@ -467,26 +383,16 @@ -- Setup and Hold DELAYs SignalDelay : BLOCK BEGIN - VitalSignalDelay(DI1_dly, DI1_ipd, tisd_DI1_CLK); VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); END BLOCK; - VitalBehavior : PROCESS (A1_ipd, A0_ipd, DI1_dly, DI0_dly, CLK_dly, - FCI_ipd, F0_out, Q0_out, F1_out, Q1_out, FCO_out) + VitalBehavior : PROCESS (A0_ipd, DI0_dly, CLK_dly, FCI_ipd, F0_out, Q0_out) VARIABLE F0_zd : std_logic := 'X'; VARIABLE F0_GlitchData : VitalGlitchDataType; VARIABLE Q0_zd : std_logic := 'X'; VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - VARIABLE Q1_zd : std_logic := 'X'; - VARIABLE Q1_GlitchData : VitalGlitchDataType; - VARIABLE FCO_zd : std_logic := 'X'; - VARIABLE FCO_GlitchData : VitalGlitchDataType; - VARIABLE tviol_DI1_CLK : x01 := '0'; - VARIABLE DI1_CLK_TimingDatash : VitalTimingDataType; VARIABLE tviol_DI0_CLK : x01 := '0'; VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; VARIABLE tviol_CLK_CLK : x01 := '0'; @@ -495,24 +401,6 @@ BEGIN IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => DI1_dly, - TestSignalName => "DI1", - TestDelay => tisd_DI1_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_DI1_CLK_noedge_posedge, - SetupLow => tsetup_DI1_CLK_noedge_posedge, - HoldHigh => thold_DI1_CLK_noedge_posedge, - HoldLow => thold_DI1_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => DI1_CLK_TimingDatash, - Violation => tviol_DI1_CLK, - MsgSeverity => warning); VitalSetupHoldCheck ( TestSignal => DI0_dly, TestSignalName => "DI0", @@ -548,9 +436,6 @@ F0_zd := F0_out; Q0_zd := Q0_out; - F1_zd := F1_out; - Q1_zd := Q1_out; - FCO_zd := FCO_out; VitalPathDelay01 ( OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, @@ -569,44 +454,36 @@ PathCondition => TRUE)), GlitchData => Q0_GlitchData, Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => FCI_ipd'last_event, - PathDelay => tpd_FCI_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q1, - PathCondition => TRUE)), - GlitchData => Q1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => FCO, OutSignalName => "FCO", OutTemp => FCO_zd, - Paths => (0 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_FCO, - PathCondition => TRUE), - 1 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_FCO, - PathCondition => TRUE), - 2 => (InputChangeTime => FCI_ipd'last_event, - PathDelay => tpd_FCI_FCO, - PathCondition => TRUE)), - GlitchData => FCO_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); END PROCESS; end Structure; +-- entity ccu20002 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity ccu20002 is + port (A0: in Std_logic; B0: in Std_logic; C0: in Std_logic; + D0: in Std_logic; A1: in Std_logic; B1: in Std_logic; + C1: in Std_logic; D1: in Std_logic; CI: in Std_logic; + S0: out Std_logic; S1: out Std_logic; CO1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF ccu20002 : ENTITY IS TRUE; + + end ccu20002; + + architecture Structure of ccu20002 is + begin + inst1: CCU2D + generic map (INIT0 => X"300A", INIT1 => X"300A", INJECT1_0 => "NO", + INJECT1_1 => "NO") + port map (CIN=>CI, A0=>A0, B0=>B0, C0=>C0, D0=>D0, A1=>A1, B1=>B1, + C1=>C1, D1=>D1, S0=>S0, S1=>S1, COUT=>CO1); + end Structure; + -- entity SLICE_2 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; @@ -688,24 +565,24 @@ component gnd port (PWR0: out Std_logic); end component; - component ccu2B0 + component ccu20002 port (A0: in Std_logic; B0: in Std_logic; C0: in Std_logic; D0: in Std_logic; A1: in Std_logic; B1: in Std_logic; C1: in Std_logic; D1: in Std_logic; CI: in Std_logic; S0: out Std_logic; S1: out Std_logic; CO1: out Std_logic); end component; begin - FS_610_i8: vmuxregsre + FS_16: vmuxregsre port map (D0=>VCCI, D1=>DI1_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, LSR=>GNDI, Q=>Q1_out); DRIVEVCC: vcc port map (PWR1=>VCCI); DRIVEGND: gnd port map (PWR0=>GNDI); - FS_610_i7: vmuxregsre + FS_15: vmuxregsre port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, LSR=>GNDI, Q=>Q0_out); - FS_610_add_4_9: ccu2B0 + FS_cry_0_15: ccu20002 port map (A0=>A0_ipd, B0=>GNDI, C0=>GNDI, D0=>GNDI, A1=>A1_ipd, B1=>GNDI, C1=>GNDI, D1=>GNDI, CI=>FCI_ipd, S0=>F0_out, S1=>F1_out, CO1=>FCO_out); @@ -945,24 +822,24 @@ component gnd port (PWR0: out Std_logic); end component; - component ccu2B0 + component ccu20002 port (A0: in Std_logic; B0: in Std_logic; C0: in Std_logic; D0: in Std_logic; A1: in Std_logic; B1: in Std_logic; C1: in Std_logic; D1: in Std_logic; CI: in Std_logic; S0: out Std_logic; S1: out Std_logic; CO1: out Std_logic); end component; begin - FS_610_i6: vmuxregsre + FS_14: vmuxregsre port map (D0=>VCCI, D1=>DI1_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, LSR=>GNDI, Q=>Q1_out); DRIVEVCC: vcc port map (PWR1=>VCCI); DRIVEGND: gnd port map (PWR0=>GNDI); - FS_610_i5: vmuxregsre + FS_13: vmuxregsre port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, LSR=>GNDI, Q=>Q0_out); - FS_610_add_4_7: ccu2B0 + FS_cry_0_13: ccu20002 port map (A0=>A0_ipd, B0=>GNDI, C0=>GNDI, D0=>GNDI, A1=>A1_ipd, B1=>GNDI, C1=>GNDI, D1=>GNDI, CI=>FCI_ipd, S0=>F0_out, S1=>F1_out, CO1=>FCO_out); @@ -1202,24 +1079,24 @@ component gnd port (PWR0: out Std_logic); end component; - component ccu2B0 + component ccu20002 port (A0: in Std_logic; B0: in Std_logic; C0: in Std_logic; D0: in Std_logic; A1: in Std_logic; B1: in Std_logic; C1: in Std_logic; D1: in Std_logic; CI: in Std_logic; S0: out Std_logic; S1: out Std_logic; CO1: out Std_logic); end component; begin - FS_610_i2: vmuxregsre + FS_12: vmuxregsre port map (D0=>VCCI, D1=>DI1_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, LSR=>GNDI, Q=>Q1_out); DRIVEVCC: vcc port map (PWR1=>VCCI); DRIVEGND: gnd port map (PWR0=>GNDI); - FS_610_i1: vmuxregsre + FS_11: vmuxregsre port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, LSR=>GNDI, Q=>Q0_out); - FS_610_add_4_3: ccu2B0 + FS_cry_0_11: ccu20002 port map (A0=>A0_ipd, B0=>GNDI, C0=>GNDI, D0=>GNDI, A1=>A1_ipd, B1=>GNDI, C1=>GNDI, D1=>GNDI, CI=>FCI_ipd, S0=>F0_out, S1=>F1_out, CO1=>FCO_out); @@ -1378,31 +1255,6 @@ end Structure; --- entity ccu20001 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity ccu20001 is - port (A0: in Std_logic; B0: in Std_logic; C0: in Std_logic; - D0: in Std_logic; A1: in Std_logic; B1: in Std_logic; - C1: in Std_logic; D1: in Std_logic; CI: in Std_logic; - S0: out Std_logic; S1: out Std_logic; CO1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF ccu20001 : ENTITY IS TRUE; - - end ccu20001; - - architecture Structure of ccu20001 is - begin - inst1: CCU2D - generic map (INIT0 => X"F000", INIT1 => X"0555", INJECT1_0 => "NO", - INJECT1_1 => "NO") - port map (CIN=>CI, A0=>A0, B0=>B0, C0=>C0, D0=>D0, A1=>A1, B1=>B1, - C1=>C1, D1=>D1, S0=>S0, S1=>S1, COUT=>CO1); - end Structure; - -- entity SLICE_5 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; @@ -1418,26 +1270,35 @@ InstancePath : string := "SLICE_5"; tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); tipd_DI1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tipd_FCI : VitalDelayType01 := (0 ns, 0 ns); tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); tpd_A1_FCO : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_FCO : VitalDelayType01 := (0 ns, 0 ns); tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_FCI_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_FCI_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_FCI_FCO : VitalDelayType01 := (0 ns, 0 ns); ticd_CLK : VitalDelayType := 0 ns; tisd_DI1_CLK : VitalDelayType := 0 ns; tsetup_DI1_CLK_noedge_posedge : VitalDelayType := 0 ns; thold_DI1_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_M0_CLK : VitalDelayType := 0 ns; - tsetup_M0_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_M0_CLK_noedge_posedge : VitalDelayType := 0 ns; + tisd_DI0_CLK : VitalDelayType := 0 ns; + tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; tperiod_CLK : VitalDelayType := 0 ns; tpw_CLK_posedge : VitalDelayType := 0 ns; tpw_CLK_negedge : VitalDelayType := 0 ns); - port (A1: in Std_logic; DI1: in Std_logic; M0: in Std_logic; - CLK: in Std_logic; Q0: out Std_logic; F1: out Std_logic; + port (A1: in Std_logic; A0: in Std_logic; DI1: in Std_logic; + DI0: in Std_logic; CLK: in Std_logic; FCI: in Std_logic; + F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic; Q1: out Std_logic; FCO: out Std_logic); ATTRIBUTE Vital_Level0 OF SLICE_5 : ENTITY IS TRUE; @@ -1448,12 +1309,15 @@ ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; signal A1_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; signal DI1_ipd : std_logic := 'X'; signal DI1_dly : std_logic := 'X'; - signal M0_ipd : std_logic := 'X'; - signal M0_dly : std_logic := 'X'; + signal DI0_ipd : std_logic := 'X'; + signal DI0_dly : std_logic := 'X'; signal CLK_ipd : std_logic := 'X'; signal CLK_dly : std_logic := 'X'; + signal FCI_ipd : std_logic := 'X'; + signal F0_out : std_logic := 'X'; signal Q0_out : std_logic := 'X'; signal F1_out : std_logic := 'X'; signal Q1_out : std_logic := 'X'; @@ -1472,47 +1336,51 @@ component gnd port (PWR0: out Std_logic); end component; - component ccu20001 + component ccu20002 port (A0: in Std_logic; B0: in Std_logic; C0: in Std_logic; D0: in Std_logic; A1: in Std_logic; B1: in Std_logic; C1: in Std_logic; D1: in Std_logic; CI: in Std_logic; S0: out Std_logic; S1: out Std_logic; CO1: out Std_logic); end component; begin - FS_610_i0: vmuxregsre + FS_10: vmuxregsre port map (D0=>VCCI, D1=>DI1_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, LSR=>GNDI, Q=>Q1_out); DRIVEVCC: vcc port map (PWR1=>VCCI); DRIVEGND: gnd port map (PWR0=>GNDI); - CASr3_384: vmuxregsre - port map (D0=>M0_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_dly, + FS_9: vmuxregsre + port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, LSR=>GNDI, Q=>Q0_out); - FS_610_add_4_1: ccu20001 - port map (A0=>GNDI, B0=>GNDI, C0=>GNDI, D0=>GNDI, A1=>A1_ipd, B1=>GNDI, - C1=>GNDI, D1=>GNDI, CI=>GNDI, S0=>open, S1=>F1_out, + FS_cry_0_9: ccu20002 + port map (A0=>A0_ipd, B0=>GNDI, C0=>GNDI, D0=>GNDI, A1=>A1_ipd, B1=>GNDI, + C1=>GNDI, D1=>GNDI, CI=>FCI_ipd, S0=>F0_out, S1=>F1_out, CO1=>FCO_out); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(A0_ipd, A0, tipd_A0); VitalWireDelay(DI1_ipd, DI1, tipd_DI1); - VitalWireDelay(M0_ipd, M0, tipd_M0); + VitalWireDelay(DI0_ipd, DI0, tipd_DI0); VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + VitalWireDelay(FCI_ipd, FCI, tipd_FCI); END BLOCK; -- Setup and Hold DELAYs SignalDelay : BLOCK BEGIN VitalSignalDelay(DI1_dly, DI1_ipd, tisd_DI1_CLK); - VitalSignalDelay(M0_dly, M0_ipd, tisd_M0_CLK); + VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); END BLOCK; - VitalBehavior : PROCESS (A1_ipd, DI1_dly, M0_dly, CLK_dly, Q0_out, F1_out, - Q1_out, FCO_out) + VitalBehavior : PROCESS (A1_ipd, A0_ipd, DI1_dly, DI0_dly, CLK_dly, + FCI_ipd, F0_out, Q0_out, F1_out, Q1_out, FCO_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; VARIABLE Q0_zd : std_logic := 'X'; VARIABLE Q0_GlitchData : VitalGlitchDataType; VARIABLE F1_zd : std_logic := 'X'; @@ -1524,8 +1392,8 @@ VARIABLE tviol_DI1_CLK : x01 := '0'; VARIABLE DI1_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_M0_CLK : x01 := '0'; - VARIABLE M0_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_DI0_CLK : x01 := '0'; + VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; VARIABLE tviol_CLK_CLK : x01 := '0'; VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; @@ -1551,22 +1419,22 @@ Violation => tviol_DI1_CLK, MsgSeverity => warning); VitalSetupHoldCheck ( - TestSignal => M0_dly, - TestSignalName => "M0", - TestDelay => tisd_M0_CLK, + TestSignal => DI0_dly, + TestSignalName => "DI0", + TestDelay => tisd_DI0_CLK, RefSignal => CLK_dly, RefSignalName => "CLK", RefDelay => ticd_CLK, - SetupHigh => tsetup_M0_CLK_noedge_posedge, - SetupLow => tsetup_M0_CLK_noedge_posedge, - HoldHigh => thold_M0_CLK_noedge_posedge, - HoldLow => thold_M0_CLK_noedge_posedge, + SetupHigh => tsetup_DI0_CLK_noedge_posedge, + SetupLow => tsetup_DI0_CLK_noedge_posedge, + HoldHigh => thold_DI0_CLK_noedge_posedge, + HoldLow => thold_DI0_CLK_noedge_posedge, CheckEnabled => TRUE, RefTransition => '/', MsgOn => MsgOn, XOn => XOn, HeaderMsg => InstancePath, - TimingData => M0_CLK_TimingDatash, - Violation => tviol_M0_CLK, + TimingData => DI0_CLK_TimingDatash, + Violation => tviol_DI0_CLK, MsgSeverity => warning); VitalPeriodPulseCheck ( TestSignal => CLK_ipd, @@ -1583,11 +1451,22 @@ END IF; + F0_zd := F0_out; Q0_zd := Q0_out; F1_zd := F1_out; Q1_zd := Q1_out; FCO_zd := FCO_out; + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => FCI_ipd'last_event, + PathDelay => tpd_FCI_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); VitalPathDelay01 ( OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, Paths => (0 => (InputChangeTime => CLK_dly'last_event, @@ -1599,6 +1478,12 @@ OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, Paths => (0 => (InputChangeTime => A1_ipd'last_event, PathDelay => tpd_A1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => FCI_ipd'last_event, + PathDelay => tpd_FCI_F1, PathCondition => TRUE)), GlitchData => F1_GlitchData, Mode => ondetect, XOn => XOn, MsgOn => MsgOn); @@ -1613,6 +1498,12 @@ OutSignal => FCO, OutSignalName => "FCO", OutTemp => FCO_zd, Paths => (0 => (InputChangeTime => A1_ipd'last_event, PathDelay => tpd_A1_FCO, + PathCondition => TRUE), + 1 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_FCO, + PathCondition => TRUE), + 2 => (InputChangeTime => FCI_ipd'last_event, + PathDelay => tpd_FCI_FCO, PathCondition => TRUE)), GlitchData => FCO_GlitchData, Mode => ondetect, XOn => XOn, MsgOn => MsgOn); @@ -1702,24 +1593,24 @@ component gnd port (PWR0: out Std_logic); end component; - component ccu2B0 + component ccu20002 port (A0: in Std_logic; B0: in Std_logic; C0: in Std_logic; D0: in Std_logic; A1: in Std_logic; B1: in Std_logic; C1: in Std_logic; D1: in Std_logic; CI: in Std_logic; S0: out Std_logic; S1: out Std_logic; CO1: out Std_logic); end component; begin - FS_610_i10: vmuxregsre + FS_8: vmuxregsre port map (D0=>VCCI, D1=>DI1_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, LSR=>GNDI, Q=>Q1_out); DRIVEVCC: vcc port map (PWR1=>VCCI); DRIVEGND: gnd port map (PWR0=>GNDI); - FS_610_i9: vmuxregsre + FS_7: vmuxregsre port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, LSR=>GNDI, Q=>Q0_out); - FS_610_add_4_11: ccu2B0 + FS_cry_0_7: ccu20002 port map (A0=>A0_ipd, B0=>GNDI, C0=>GNDI, D0=>GNDI, A1=>A1_ipd, B1=>GNDI, C1=>GNDI, D1=>GNDI, CI=>FCI_ipd, S0=>F0_out, S1=>F1_out, CO1=>FCO_out); @@ -1878,31 +1769,6 @@ end Structure; --- entity ccu20002 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity ccu20002 is - port (A0: in Std_logic; B0: in Std_logic; C0: in Std_logic; - D0: in Std_logic; A1: in Std_logic; B1: in Std_logic; - C1: in Std_logic; D1: in Std_logic; CI: in Std_logic; - S0: out Std_logic; S1: out Std_logic; CO1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF ccu20002 : ENTITY IS TRUE; - - end ccu20002; - - architecture Structure of ccu20002 is - begin - inst1: CCU2D - generic map (INIT0 => X"faaa", INIT1 => X"0000", INJECT1_0 => "NO", - INJECT1_1 => "NO") - port map (CIN=>CI, A0=>A0, B0=>B0, C0=>C0, D0=>D0, A1=>A1, B1=>B1, - C1=>C1, D1=>D1, S0=>S0, S1=>S1, COUT=>CO1); - end Structure; - -- entity SLICE_7 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; @@ -1917,14 +1783,26 @@ MsgOn : boolean := TRUE; InstancePath : string := "SLICE_7"; + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_DI1 : VitalDelayType01 := (0 ns, 0 ns); tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); tipd_FCI : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_FCO : VitalDelayType01 := (0 ns, 0 ns); tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_FCO : VitalDelayType01 := (0 ns, 0 ns); tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); tpd_FCI_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_FCI_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_FCI_FCO : VitalDelayType01 := (0 ns, 0 ns); ticd_CLK : VitalDelayType := 0 ns; + tisd_DI1_CLK : VitalDelayType := 0 ns; + tsetup_DI1_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_DI1_CLK_noedge_posedge : VitalDelayType := 0 ns; tisd_DI0_CLK : VitalDelayType := 0 ns; tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; @@ -1932,8 +1810,10 @@ tpw_CLK_posedge : VitalDelayType := 0 ns; tpw_CLK_negedge : VitalDelayType := 0 ns); - port (A0: in Std_logic; DI0: in Std_logic; CLK: in Std_logic; - FCI: in Std_logic; F0: out Std_logic; Q0: out Std_logic); + port (A1: in Std_logic; A0: in Std_logic; DI1: in Std_logic; + DI0: in Std_logic; CLK: in Std_logic; FCI: in Std_logic; + F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic; + Q1: out Std_logic; FCO: out Std_logic); ATTRIBUTE Vital_Level0 OF SLICE_7 : ENTITY IS TRUE; @@ -1942,7 +1822,10 @@ architecture Structure of SLICE_7 is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + signal A1_ipd : std_logic := 'X'; signal A0_ipd : std_logic := 'X'; + signal DI1_ipd : std_logic := 'X'; + signal DI1_dly : std_logic := 'X'; signal DI0_ipd : std_logic := 'X'; signal DI0_dly : std_logic := 'X'; signal CLK_ipd : std_logic := 'X'; @@ -1950,6 +1833,9 @@ signal FCI_ipd : std_logic := 'X'; signal F0_out : std_logic := 'X'; signal Q0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + signal Q1_out : std_logic := 'X'; + signal FCO_out : std_logic := 'X'; signal VCCI: Std_logic; signal GNDI: Std_logic; @@ -1971,22 +1857,27 @@ S0: out Std_logic; S1: out Std_logic; CO1: out Std_logic); end component; begin - FS_610_i17: vmuxregsre - port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, - LSR=>GNDI, Q=>Q0_out); + FS_6: vmuxregsre + port map (D0=>VCCI, D1=>DI1_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, + LSR=>GNDI, Q=>Q1_out); DRIVEVCC: vcc port map (PWR1=>VCCI); DRIVEGND: gnd port map (PWR0=>GNDI); - FS_610_add_4_19: ccu20002 - port map (A0=>A0_ipd, B0=>GNDI, C0=>GNDI, D0=>GNDI, A1=>GNDI, B1=>GNDI, - C1=>GNDI, D1=>GNDI, CI=>FCI_ipd, S0=>F0_out, S1=>open, - CO1=>open); + FS_5: vmuxregsre + port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, + LSR=>GNDI, Q=>Q0_out); + FS_cry_0_5: ccu20002 + port map (A0=>A0_ipd, B0=>GNDI, C0=>GNDI, D0=>GNDI, A1=>A1_ipd, B1=>GNDI, + C1=>GNDI, D1=>GNDI, CI=>FCI_ipd, S0=>F0_out, S1=>F1_out, + CO1=>FCO_out); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN + VitalWireDelay(A1_ipd, A1, tipd_A1); VitalWireDelay(A0_ipd, A0, tipd_A0); + VitalWireDelay(DI1_ipd, DI1, tipd_DI1); VitalWireDelay(DI0_ipd, DI0, tipd_DI0); VitalWireDelay(CLK_ipd, CLK, tipd_CLK); VitalWireDelay(FCI_ipd, FCI, tipd_FCI); @@ -1995,16 +1886,26 @@ -- Setup and Hold DELAYs SignalDelay : BLOCK BEGIN + VitalSignalDelay(DI1_dly, DI1_ipd, tisd_DI1_CLK); VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); END BLOCK; - VitalBehavior : PROCESS (A0_ipd, DI0_dly, CLK_dly, FCI_ipd, F0_out, Q0_out) + VitalBehavior : PROCESS (A1_ipd, A0_ipd, DI1_dly, DI0_dly, CLK_dly, + FCI_ipd, F0_out, Q0_out, F1_out, Q1_out, FCO_out) VARIABLE F0_zd : std_logic := 'X'; VARIABLE F0_GlitchData : VitalGlitchDataType; VARIABLE Q0_zd : std_logic := 'X'; VARIABLE Q0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + VARIABLE Q1_zd : std_logic := 'X'; + VARIABLE Q1_GlitchData : VitalGlitchDataType; + VARIABLE FCO_zd : std_logic := 'X'; + VARIABLE FCO_GlitchData : VitalGlitchDataType; + VARIABLE tviol_DI1_CLK : x01 := '0'; + VARIABLE DI1_CLK_TimingDatash : VitalTimingDataType; VARIABLE tviol_DI0_CLK : x01 := '0'; VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; VARIABLE tviol_CLK_CLK : x01 := '0'; @@ -2013,6 +1914,24 @@ BEGIN IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI1_dly, + TestSignalName => "DI1", + TestDelay => tisd_DI1_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI1_CLK_noedge_posedge, + SetupLow => tsetup_DI1_CLK_noedge_posedge, + HoldHigh => thold_DI1_CLK_noedge_posedge, + HoldLow => thold_DI1_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI1_CLK_TimingDatash, + Violation => tviol_DI1_CLK, + MsgSeverity => warning); VitalSetupHoldCheck ( TestSignal => DI0_dly, TestSignalName => "DI0", @@ -2048,6 +1967,9 @@ F0_zd := F0_out; Q0_zd := Q0_out; + F1_zd := F1_out; + Q1_zd := Q1_out; + FCO_zd := FCO_out; VitalPathDelay01 ( OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, @@ -2066,6 +1988,39 @@ PathCondition => TRUE)), GlitchData => Q0_GlitchData, Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => FCI_ipd'last_event, + PathDelay => tpd_FCI_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q1, + PathCondition => TRUE)), + GlitchData => Q1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => FCO, OutSignalName => "FCO", OutTemp => FCO_zd, + Paths => (0 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_FCO, + PathCondition => TRUE), + 1 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_FCO, + PathCondition => TRUE), + 2 => (InputChangeTime => FCI_ipd'last_event, + PathDelay => tpd_FCI_FCO, + PathCondition => TRUE)), + GlitchData => FCO_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); END PROCESS; @@ -2152,24 +2107,24 @@ component gnd port (PWR0: out Std_logic); end component; - component ccu2B0 + component ccu20002 port (A0: in Std_logic; B0: in Std_logic; C0: in Std_logic; D0: in Std_logic; A1: in Std_logic; B1: in Std_logic; C1: in Std_logic; D1: in Std_logic; CI: in Std_logic; S0: out Std_logic; S1: out Std_logic; CO1: out Std_logic); end component; begin - FS_610_i4: vmuxregsre + FS_4: vmuxregsre port map (D0=>VCCI, D1=>DI1_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, LSR=>GNDI, Q=>Q1_out); DRIVEVCC: vcc port map (PWR1=>VCCI); DRIVEGND: gnd port map (PWR0=>GNDI); - FS_610_i3: vmuxregsre + FS_3: vmuxregsre port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, LSR=>GNDI, Q=>Q0_out); - FS_610_add_4_5: ccu2B0 + FS_cry_0_3: ccu20002 port map (A0=>A0_ipd, B0=>GNDI, C0=>GNDI, D0=>GNDI, A1=>A1_ipd, B1=>GNDI, C1=>GNDI, D1=>GNDI, CI=>FCI_ipd, S0=>F0_out, S1=>F1_out, CO1=>FCO_out); @@ -2409,24 +2364,24 @@ component gnd port (PWR0: out Std_logic); end component; - component ccu2B0 + component ccu20002 port (A0: in Std_logic; B0: in Std_logic; C0: in Std_logic; D0: in Std_logic; A1: in Std_logic; B1: in Std_logic; C1: in Std_logic; D1: in Std_logic; CI: in Std_logic; S0: out Std_logic; S1: out Std_logic; CO1: out Std_logic); end component; begin - FS_610_i16: vmuxregsre + FS_2: vmuxregsre port map (D0=>VCCI, D1=>DI1_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, LSR=>GNDI, Q=>Q1_out); DRIVEVCC: vcc port map (PWR1=>VCCI); DRIVEGND: gnd port map (PWR0=>GNDI); - FS_610_i15: vmuxregsre + FS_1: vmuxregsre port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, LSR=>GNDI, Q=>Q0_out); - FS_610_add_4_17: ccu2B0 + FS_cry_0_1: ccu20002 port map (A0=>A0_ipd, B0=>GNDI, C0=>GNDI, D0=>GNDI, A1=>A1_ipd, B1=>GNDI, C1=>GNDI, D1=>GNDI, CI=>FCI_ipd, S0=>F0_out, S1=>F1_out, CO1=>FCO_out); @@ -2602,7 +2557,7 @@ architecture Structure of lut4 is begin INST10: ROM16X1A - generic map (initval => X"0002") + generic map (initval => X"8080") port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); end Structure; @@ -2623,32 +2578,10 @@ architecture Structure of lut40003 is begin INST10: ROM16X1A - generic map (initval => X"2000") + generic map (initval => X"00F2") port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); end Structure; --- entity vmuxregsre0004 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity vmuxregsre0004 is - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - - ATTRIBUTE Vital_Level0 OF vmuxregsre0004 : ENTITY IS TRUE; - - end vmuxregsre0004; - - architecture Structure of vmuxregsre0004 is - begin - INST01: FL1P3IY - generic map (GSR => "DISABLED") - port map (D0=>D0, D1=>D1, SP=>SP, CK=>CK, SD=>SD, CD=>LSR, Q=>Q); - end Structure; - -- entity inverter library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; @@ -2682,7 +2615,6 @@ MsgOn : boolean := TRUE; InstancePath : string := "SLICE_10"; - tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); @@ -2691,10 +2623,7 @@ tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CE : VitalDelayType01 := (0 ns, 0 ns); - tipd_LSR : VitalDelayType01 := (0 ns, 0 ns); tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); @@ -2703,27 +2632,17 @@ tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - tperiod_LSR : VitalDelayType := 0 ns; - tpw_LSR_posedge : VitalDelayType := 0 ns; - tpw_LSR_negedge : VitalDelayType := 0 ns; tperiod_CLK : VitalDelayType := 0 ns; tpw_CLK_posedge : VitalDelayType := 0 ns; tpw_CLK_negedge : VitalDelayType := 0 ns; ticd_CLK : VitalDelayType := 0 ns; tisd_DI0_CLK : VitalDelayType := 0 ns; tsetup_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns; - tisd_CE_CLK : VitalDelayType := 0 ns; - tsetup_CE_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_CE_CLK_noedge_negedge : VitalDelayType := 0 ns; - tisd_LSR_CLK : VitalDelayType := 0 ns; - tsetup_LSR_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_LSR_CLK_noedge_negedge : VitalDelayType := 0 ns); + thold_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns); - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; - B0: in Std_logic; A0: in Std_logic; DI0: in Std_logic; - CE: in Std_logic; LSR: in Std_logic; CLK: in Std_logic; + port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; + D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; DI0: in Std_logic; CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic); ATTRIBUTE Vital_Level0 OF SLICE_10 : ENTITY IS TRUE; @@ -2733,7 +2652,6 @@ architecture Structure of SLICE_10 is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - signal D1_ipd : std_logic := 'X'; signal C1_ipd : std_logic := 'X'; signal B1_ipd : std_logic := 'X'; signal A1_ipd : std_logic := 'X'; @@ -2743,21 +2661,26 @@ signal A0_ipd : std_logic := 'X'; signal DI0_ipd : std_logic := 'X'; signal DI0_dly : std_logic := 'X'; - signal CE_ipd : std_logic := 'X'; - signal CE_dly : std_logic := 'X'; - signal LSR_ipd : std_logic := 'X'; - signal LSR_dly : std_logic := 'X'; signal CLK_ipd : std_logic := 'X'; signal CLK_dly : std_logic := 'X'; signal F0_out : std_logic := 'X'; signal Q0_out : std_logic := 'X'; signal F1_out : std_logic := 'X'; + signal GNDI: Std_logic; signal VCCI: Std_logic; signal CLK_NOTIN: Std_logic; + component vmuxregsre + port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; + SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; + Q: out Std_logic); + end component; component vcc port (PWR1: out Std_logic); end component; + component gnd + port (PWR0: out Std_logic); + end component; component lut4 port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; Z: out Std_logic); @@ -2766,22 +2689,19 @@ port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; Z: out Std_logic); end component; - component vmuxregsre0004 - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; component inverter port (I: in Std_logic; Z: out Std_logic); end component; begin - i3_3_lut_4_lut: lut4 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); - i1_4_lut_adj_4: lut40003 + CmdEnable17: lut4 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>GNDI, Z=>F1_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + ADSubmitted_r: lut40003 port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); - ADSubmitted_407: vmuxregsre0004 - port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>CE_dly, CK=>CLK_NOTIN, - LSR=>LSR_dly, Q=>Q0_out); + ADSubmitted: vmuxregsre + port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_NOTIN, + LSR=>GNDI, Q=>Q0_out); DRIVEVCC: vcc port map (PWR1=>VCCI); CLK_INVERTERIN: inverter @@ -2790,7 +2710,6 @@ -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN - VitalWireDelay(D1_ipd, D1, tipd_D1); VitalWireDelay(C1_ipd, C1, tipd_C1); VitalWireDelay(B1_ipd, B1, tipd_B1); VitalWireDelay(A1_ipd, A1, tipd_A1); @@ -2799,8 +2718,6 @@ VitalWireDelay(B0_ipd, B0, tipd_B0); VitalWireDelay(A0_ipd, A0, tipd_A0); VitalWireDelay(DI0_ipd, DI0, tipd_DI0); - VitalWireDelay(CE_ipd, CE, tipd_CE); - VitalWireDelay(LSR_ipd, LSR, tipd_LSR); VitalWireDelay(CLK_ipd, CLK, tipd_CLK); END BLOCK; @@ -2808,14 +2725,11 @@ SignalDelay : BLOCK BEGIN VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); - VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); - VitalSignalDelay(LSR_dly, LSR_ipd, tisd_LSR_CLK); VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); END BLOCK; - VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, - B0_ipd, A0_ipd, DI0_dly, CE_dly, LSR_dly, CLK_dly, F0_out, Q0_out, - F1_out) + VitalBehavior : PROCESS (C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, B0_ipd, + A0_ipd, DI0_dly, CLK_dly, F0_out, Q0_out, F1_out) VARIABLE F0_zd : std_logic := 'X'; VARIABLE F0_GlitchData : VitalGlitchDataType; VARIABLE Q0_zd : std_logic := 'X'; @@ -2825,12 +2739,6 @@ VARIABLE tviol_DI0_CLK : x01 := '0'; VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CE_CLK : x01 := '0'; - VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_LSR_CLK : x01 := '0'; - VARIABLE LSR_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_LSR_LSR : x01 := '0'; - VARIABLE periodcheckinfo_LSR : VitalPeriodDataType; VARIABLE tviol_CLK_CLK : x01 := '0'; VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; @@ -2855,54 +2763,6 @@ TimingData => DI0_CLK_TimingDatash, Violation => tviol_DI0_CLK, MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => CE_dly, - TestSignalName => "CE", - TestDelay => tisd_CE_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_CE_CLK_noedge_negedge, - SetupLow => tsetup_CE_CLK_noedge_negedge, - HoldHigh => thold_CE_CLK_noedge_negedge, - HoldLow => thold_CE_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => CE_CLK_TimingDatash, - Violation => tviol_CE_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => LSR_dly, - TestSignalName => "LSR", - TestDelay => tisd_LSR_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_LSR_CLK_noedge_negedge, - SetupLow => tsetup_LSR_CLK_noedge_negedge, - HoldHigh => thold_LSR_CLK_noedge_negedge, - HoldLow => thold_LSR_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => LSR_CLK_TimingDatash, - Violation => tviol_LSR_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => LSR_ipd, - TestSignalName => "LSR", - Period => tperiod_LSR, - PulseWidthHigh => tpw_LSR_posedge, - PulseWidthLow => tpw_LSR_negedge, - PeriodData => periodcheckinfo_LSR, - Violation => tviol_LSR_LSR, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); VitalPeriodPulseCheck ( TestSignal => CLK_ipd, TestSignalName => "CLK", @@ -2947,16 +2807,13 @@ Mode => ondetect, XOn => XOn, MsgOn => MsgOn); VitalPathDelay01 ( OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => D1_ipd'last_event, - PathDelay => tpd_D1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => C1_ipd'last_event, + Paths => (0 => (InputChangeTime => C1_ipd'last_event, PathDelay => tpd_C1_F1, PathCondition => TRUE), - 2 => (InputChangeTime => B1_ipd'last_event, + 1 => (InputChangeTime => B1_ipd'last_event, PathDelay => tpd_B1_F1, PathCondition => TRUE), - 3 => (InputChangeTime => A1_ipd'last_event, + 2 => (InputChangeTime => A1_ipd'last_event, PathDelay => tpd_A1_F1, PathCondition => TRUE)), GlitchData => F1_GlitchData, @@ -2966,6 +2823,27 @@ end Structure; +-- entity lut40004 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40004 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40004 : ENTITY IS TRUE; + + end lut40004; + + architecture Structure of lut40004 is + begin + INST10: ROM16X1A + generic map (initval => X"8000") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + -- entity lut40005 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; @@ -2983,10 +2861,232 @@ architecture Structure of lut40005 is begin INST10: ROM16X1A - generic map (initval => X"FF7F") + generic map (initval => X"F2F2") port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); end Structure; +-- entity SLICE_13 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_13 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_13"; + + tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns; + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI0_CLK : VitalDelayType := 0 ns; + tsetup_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns); + + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; DI0: in Std_logic; CLK: in Std_logic; + F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_13 : ENTITY IS TRUE; + + end SLICE_13; + + architecture Structure of SLICE_13 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal D1_ipd : std_logic := 'X'; + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal DI0_ipd : std_logic := 'X'; + signal DI0_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal Q0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + signal VCCI: Std_logic; + signal CLK_NOTIN: Std_logic; + component vmuxregsre + port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; + SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; + Q: out Std_logic); + end component; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component inverter + port (I: in Std_logic; Z: out Std_logic); + end component; + component lut40004 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40005 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + CmdEnable16: lut40004 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); + C1Submitted_s: lut40005 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>GNDI, Z=>F0_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + C1Submitted: vmuxregsre + port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_NOTIN, + LSR=>GNDI, Q=>Q0_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + CLK_INVERTERIN: inverter + port map (I=>CLK_dly, Z=>CLK_NOTIN); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(D1_ipd, D1, tipd_D1); + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(C0_ipd, C0, tipd_C0); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + VitalWireDelay(DI0_ipd, DI0, tipd_DI0); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, C0_ipd, B0_ipd, + A0_ipd, DI0_dly, CLK_dly, F0_out, Q0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE Q0_zd : std_logic := 'X'; + VARIABLE Q0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_DI0_CLK : x01 := '0'; + VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI0_dly, + TestSignalName => "DI0", + TestDelay => tisd_DI0_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI0_CLK_noedge_negedge, + SetupLow => tsetup_DI0_CLK_noedge_negedge, + HoldHigh => thold_DI0_CLK_noedge_negedge, + HoldLow => thold_DI0_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI0_CLK_TimingDatash, + Violation => tviol_DI0_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + F0_zd := F0_out; + Q0_zd := Q0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q0, + PathCondition => TRUE)), + GlitchData => Q0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => D1_ipd'last_event, + PathDelay => tpd_D1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 3 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + -- entity lut40006 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; @@ -3004,6895 +3104,44 @@ architecture Structure of lut40006 is begin INST10: ROM16X1A - generic map (initval => X"E0F0") + generic map (initval => X"EEEE") port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); end Structure; --- entity vmuxregsre0007 +-- entity lut40007 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity vmuxregsre0007 is - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - - ATTRIBUTE Vital_Level0 OF vmuxregsre0007 : ENTITY IS TRUE; - - end vmuxregsre0007; - - architecture Structure of vmuxregsre0007 is - begin - INST01: FL1P3JY - generic map (GSR => "DISABLED") - port map (D0=>D0, D1=>D1, SP=>SP, CK=>CK, SD=>SD, PD=>LSR, Q=>Q); - end Structure; - --- entity SLICE_15 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_15 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_15"; - - tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_LSR : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - tperiod_LSR : VitalDelayType := 0 ns; - tpw_LSR_posedge : VitalDelayType := 0 ns; - tpw_LSR_negedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns; - ticd_CLK : VitalDelayType := 0 ns; - tisd_DI0_CLK : VitalDelayType := 0 ns; - tsetup_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns; - tisd_LSR_CLK : VitalDelayType := 0 ns; - tsetup_LSR_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_LSR_CLK_noedge_negedge : VitalDelayType := 0 ns); - - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; - B0: in Std_logic; A0: in Std_logic; DI0: in Std_logic; - LSR: in Std_logic; CLK: in Std_logic; F0: out Std_logic; - Q0: out Std_logic; F1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_15 : ENTITY IS TRUE; - - end SLICE_15; - - architecture Structure of SLICE_15 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal D1_ipd : std_logic := 'X'; - signal C1_ipd : std_logic := 'X'; - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal D0_ipd : std_logic := 'X'; - signal C0_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal DI0_ipd : std_logic := 'X'; - signal DI0_dly : std_logic := 'X'; - signal LSR_ipd : std_logic := 'X'; - signal LSR_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - - signal VCCI: Std_logic; - signal CLK_NOTIN: Std_logic; - component vcc - port (PWR1: out Std_logic); - end component; - component inverter - port (I: in Std_logic; Z: out Std_logic); - end component; - component lut40005 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component lut40006 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component vmuxregsre0007 - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - begin - i13_2_lut_rep_16_4_lut: lut40005 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); - i1110_2_lut_3_lut_4_lut: lut40006 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); - C1Submitted_406: vmuxregsre0007 - port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_NOTIN, - LSR=>LSR_dly, Q=>Q0_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - CLK_INVERTERIN: inverter - port map (I=>CLK_dly, Z=>CLK_NOTIN); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(D1_ipd, D1, tipd_D1); - VitalWireDelay(C1_ipd, C1, tipd_C1); - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(D0_ipd, D0, tipd_D0); - VitalWireDelay(C0_ipd, C0, tipd_C0); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(DI0_ipd, DI0, tipd_DI0); - VitalWireDelay(LSR_ipd, LSR, tipd_LSR); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); - VitalSignalDelay(LSR_dly, LSR_ipd, tisd_LSR_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, - B0_ipd, A0_ipd, DI0_dly, LSR_dly, CLK_dly, F0_out, Q0_out, F1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_DI0_CLK : x01 := '0'; - VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_LSR_CLK : x01 := '0'; - VARIABLE LSR_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_LSR_LSR : x01 := '0'; - VARIABLE periodcheckinfo_LSR : VitalPeriodDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => DI0_dly, - TestSignalName => "DI0", - TestDelay => tisd_DI0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_DI0_CLK_noedge_negedge, - SetupLow => tsetup_DI0_CLK_noedge_negedge, - HoldHigh => thold_DI0_CLK_noedge_negedge, - HoldLow => thold_DI0_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => DI0_CLK_TimingDatash, - Violation => tviol_DI0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => LSR_dly, - TestSignalName => "LSR", - TestDelay => tisd_LSR_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_LSR_CLK_noedge_negedge, - SetupLow => tsetup_LSR_CLK_noedge_negedge, - HoldHigh => thold_LSR_CLK_noedge_negedge, - HoldLow => thold_LSR_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => LSR_CLK_TimingDatash, - Violation => tviol_LSR_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => LSR_ipd, - TestSignalName => "LSR", - Period => tperiod_LSR, - PulseWidthHigh => tpw_LSR_posedge, - PulseWidthLow => tpw_LSR_negedge, - PeriodData => periodcheckinfo_LSR, - Violation => tviol_LSR_LSR, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - F1_zd := F1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => D0_ipd'last_event, - PathDelay => tpd_D0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => C0_ipd'last_event, - PathDelay => tpd_C0_F0, - PathCondition => TRUE), - 2 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 3 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => D1_ipd'last_event, - PathDelay => tpd_D1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => C1_ipd'last_event, - PathDelay => tpd_C1_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 3 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity lut40008 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity lut40008 is + entity lut40007 is port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; Z: out Std_logic); - ATTRIBUTE Vital_Level0 OF lut40008 : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF lut40007 : ENTITY IS TRUE; - end lut40008; + end lut40007; - architecture Structure of lut40008 is + architecture Structure of lut40007 is begin INST10: ROM16X1A generic map (initval => X"5555") port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); end Structure; --- entity SLICE_16 +-- entity SLICE_14 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity SLICE_16 is + entity SLICE_14 is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_16"; - - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); - ticd_CLK : VitalDelayType := 0 ns; - tisd_DI0_CLK : VitalDelayType := 0 ns; - tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_M1_CLK : VitalDelayType := 0 ns; - tsetup_M1_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_M1_CLK_noedge_posedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns); - - port (A0: in Std_logic; DI0: in Std_logic; M1: in Std_logic; - CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; - Q1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_16 : ENTITY IS TRUE; - - end SLICE_16; - - architecture Structure of SLICE_16 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal A0_ipd : std_logic := 'X'; - signal DI0_ipd : std_logic := 'X'; - signal DI0_dly : std_logic := 'X'; - signal M1_ipd : std_logic := 'X'; - signal M1_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal Q1_out : std_logic := 'X'; - - signal GNDI: Std_logic; - signal VCCI: Std_logic; - component vmuxregsre - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component lut40008 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - i2045: lut40008 - port map (A=>A0_ipd, B=>GNDI, C=>GNDI, D=>GNDI, Z=>F0_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - CASr2_383: vmuxregsre - port map (D0=>M1_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_dly, - LSR=>GNDI, Q=>Q1_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - CASr_382: vmuxregsre - port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, - LSR=>GNDI, Q=>Q0_out); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(DI0_ipd, DI0, tipd_DI0); - VitalWireDelay(M1_ipd, M1, tipd_M1); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); - VitalSignalDelay(M1_dly, M1_ipd, tisd_M1_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (A0_ipd, DI0_dly, M1_dly, CLK_dly, F0_out, Q0_out, - Q1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE Q1_zd : std_logic := 'X'; - VARIABLE Q1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_DI0_CLK : x01 := '0'; - VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_M1_CLK : x01 := '0'; - VARIABLE M1_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => DI0_dly, - TestSignalName => "DI0", - TestDelay => tisd_DI0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_DI0_CLK_noedge_posedge, - SetupLow => tsetup_DI0_CLK_noedge_posedge, - HoldHigh => thold_DI0_CLK_noedge_posedge, - HoldLow => thold_DI0_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => DI0_CLK_TimingDatash, - Violation => tviol_DI0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => M1_dly, - TestSignalName => "M1", - TestDelay => tisd_M1_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M1_CLK_noedge_posedge, - SetupLow => tsetup_M1_CLK_noedge_posedge, - HoldHigh => thold_M1_CLK_noedge_posedge, - HoldLow => thold_M1_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M1_CLK_TimingDatash, - Violation => tviol_M1_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - Q1_zd := Q1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q1, - PathCondition => TRUE)), - GlitchData => Q1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity lut40009 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity lut40009 is - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - - ATTRIBUTE Vital_Level0 OF lut40009 : ENTITY IS TRUE; - - end lut40009; - - architecture Structure of lut40009 is - begin - INST10: ROM16X1A - generic map (initval => X"C0CA") - port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); - end Structure; - --- entity lut40010 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity lut40010 is - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - - ATTRIBUTE Vital_Level0 OF lut40010 : ENTITY IS TRUE; - - end lut40010; - - architecture Structure of lut40010 is - begin - INST10: ROM16X1A - generic map (initval => X"4000") - port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); - end Structure; - --- entity SLICE_19 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_19 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_19"; - - tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CE : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns; - ticd_CLK : VitalDelayType := 0 ns; - tisd_DI0_CLK : VitalDelayType := 0 ns; - tsetup_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns; - tisd_CE_CLK : VitalDelayType := 0 ns; - tsetup_CE_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_CE_CLK_noedge_negedge : VitalDelayType := 0 ns); - - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; - B0: in Std_logic; A0: in Std_logic; DI0: in Std_logic; - CE: in Std_logic; CLK: in Std_logic; F0: out Std_logic; - Q0: out Std_logic; F1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_19 : ENTITY IS TRUE; - - end SLICE_19; - - architecture Structure of SLICE_19 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal D1_ipd : std_logic := 'X'; - signal C1_ipd : std_logic := 'X'; - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal D0_ipd : std_logic := 'X'; - signal C0_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal DI0_ipd : std_logic := 'X'; - signal DI0_dly : std_logic := 'X'; - signal CE_ipd : std_logic := 'X'; - signal CE_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - - signal VCCI: Std_logic; - signal CLK_NOTIN: Std_logic; - signal GNDI: Std_logic; - component vmuxregsre - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component inverter - port (I: in Std_logic; Z: out Std_logic); - end component; - component lut40009 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component lut40010 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - i26_4_lut: lut40009 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); - i2_3_lut_4_lut: lut40010 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); - CmdEnable_405: vmuxregsre - port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>CE_dly, CK=>CLK_NOTIN, - LSR=>GNDI, Q=>Q0_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - CLK_INVERTERIN: inverter - port map (I=>CLK_dly, Z=>CLK_NOTIN); - DRIVEGND: gnd - port map (PWR0=>GNDI); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(D1_ipd, D1, tipd_D1); - VitalWireDelay(C1_ipd, C1, tipd_C1); - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(D0_ipd, D0, tipd_D0); - VitalWireDelay(C0_ipd, C0, tipd_C0); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(DI0_ipd, DI0, tipd_DI0); - VitalWireDelay(CE_ipd, CE, tipd_CE); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); - VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, - B0_ipd, A0_ipd, DI0_dly, CE_dly, CLK_dly, F0_out, Q0_out, F1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_DI0_CLK : x01 := '0'; - VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CE_CLK : x01 := '0'; - VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => DI0_dly, - TestSignalName => "DI0", - TestDelay => tisd_DI0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_DI0_CLK_noedge_negedge, - SetupLow => tsetup_DI0_CLK_noedge_negedge, - HoldHigh => thold_DI0_CLK_noedge_negedge, - HoldLow => thold_DI0_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => DI0_CLK_TimingDatash, - Violation => tviol_DI0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => CE_dly, - TestSignalName => "CE", - TestDelay => tisd_CE_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_CE_CLK_noedge_negedge, - SetupLow => tsetup_CE_CLK_noedge_negedge, - HoldHigh => thold_CE_CLK_noedge_negedge, - HoldLow => thold_CE_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => CE_CLK_TimingDatash, - Violation => tviol_CE_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - F1_zd := F1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => D0_ipd'last_event, - PathDelay => tpd_D0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => C0_ipd'last_event, - PathDelay => tpd_C0_F0, - PathCondition => TRUE), - 2 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 3 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => D1_ipd'last_event, - PathDelay => tpd_D1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => C1_ipd'last_event, - PathDelay => tpd_C1_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 3 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity lut40011 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity lut40011 is - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - - ATTRIBUTE Vital_Level0 OF lut40011 : ENTITY IS TRUE; - - end lut40011; - - architecture Structure of lut40011 is - begin - INST10: ROM16X1A - generic map (initval => X"FFFF") - port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); - end Structure; - --- entity SLICE_20 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_20 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_20"; - - tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CE : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns; - ticd_CLK : VitalDelayType := 0 ns; - tisd_DI0_CLK : VitalDelayType := 0 ns; - tsetup_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns; - tisd_CE_CLK : VitalDelayType := 0 ns; - tsetup_CE_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_CE_CLK_noedge_negedge : VitalDelayType := 0 ns); - - port (DI0: in Std_logic; CE: in Std_logic; CLK: in Std_logic; - F0: out Std_logic; Q0: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_20 : ENTITY IS TRUE; - - end SLICE_20; - - architecture Structure of SLICE_20 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal DI0_ipd : std_logic := 'X'; - signal DI0_dly : std_logic := 'X'; - signal CE_ipd : std_logic := 'X'; - signal CE_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - - signal GNDI: Std_logic; - signal VCCI: Std_logic; - signal CLK_NOTIN: Std_logic; - component vmuxregsre - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component inverter - port (I: in Std_logic; Z: out Std_logic); - end component; - component lut40011 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - n2447_001_BUF1_BUF1: lut40011 - port map (A=>GNDI, B=>GNDI, C=>GNDI, D=>GNDI, Z=>F0_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - CmdSubmitted_411: vmuxregsre - port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>CE_dly, CK=>CLK_NOTIN, - LSR=>GNDI, Q=>Q0_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - CLK_INVERTERIN: inverter - port map (I=>CLK_dly, Z=>CLK_NOTIN); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(DI0_ipd, DI0, tipd_DI0); - VitalWireDelay(CE_ipd, CE, tipd_CE); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); - VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (DI0_dly, CE_dly, CLK_dly, F0_out, Q0_out) - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_DI0_CLK : x01 := '0'; - VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CE_CLK : x01 := '0'; - VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => DI0_dly, - TestSignalName => "DI0", - TestDelay => tisd_DI0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_DI0_CLK_noedge_negedge, - SetupLow => tsetup_DI0_CLK_noedge_negedge, - HoldHigh => thold_DI0_CLK_noedge_negedge, - HoldLow => thold_DI0_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => DI0_CLK_TimingDatash, - Violation => tviol_DI0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => CE_dly, - TestSignalName => "CE", - TestDelay => tisd_CE_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_CE_CLK_noedge_negedge, - SetupLow => tsetup_CE_CLK_noedge_negedge, - HoldHigh => thold_CE_CLK_noedge_negedge, - HoldLow => thold_CE_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => CE_CLK_TimingDatash, - Violation => tviol_CE_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0 <= F0_out; - Q0_zd := Q0_out; - - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity lut40012 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity lut40012 is - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - - ATTRIBUTE Vital_Level0 OF lut40012 : ENTITY IS TRUE; - - end lut40012; - - architecture Structure of lut40012 is - begin - INST10: ROM16X1A - generic map (initval => X"FEFE") - port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); - end Structure; - --- entity lut40013 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity lut40013 is - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - - ATTRIBUTE Vital_Level0 OF lut40013 : ENTITY IS TRUE; - - end lut40013; - - architecture Structure of lut40013 is - begin - INST10: ROM16X1A - generic map (initval => X"CC5C") - port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); - end Structure; - --- entity SLICE_24 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_24 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_24"; - - tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CE : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns; - ticd_CLK : VitalDelayType := 0 ns; - tisd_DI0_CLK : VitalDelayType := 0 ns; - tsetup_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns; - tisd_CE_CLK : VitalDelayType := 0 ns; - tsetup_CE_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_CE_CLK_noedge_negedge : VitalDelayType := 0 ns); - - port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; - D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; - A0: in Std_logic; DI0: in Std_logic; CE: in Std_logic; - CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; - F1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_24 : ENTITY IS TRUE; - - end SLICE_24; - - architecture Structure of SLICE_24 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal C1_ipd : std_logic := 'X'; - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal D0_ipd : std_logic := 'X'; - signal C0_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal DI0_ipd : std_logic := 'X'; - signal DI0_dly : std_logic := 'X'; - signal CE_ipd : std_logic := 'X'; - signal CE_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - - signal GNDI: Std_logic; - signal VCCI: Std_logic; - signal CLK_NOTIN: Std_logic; - component vmuxregsre - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component inverter - port (I: in Std_logic; Z: out Std_logic); - end component; - component lut40012 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component lut40013 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - i1_2_lut_3_lut_adj_15: lut40012 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>GNDI, Z=>F1_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - Cmdn8MEGEN_I_93_4_lut: lut40013 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); - Cmdn8MEGEN_410: vmuxregsre - port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>CE_dly, CK=>CLK_NOTIN, - LSR=>GNDI, Q=>Q0_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - CLK_INVERTERIN: inverter - port map (I=>CLK_dly, Z=>CLK_NOTIN); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(C1_ipd, C1, tipd_C1); - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(D0_ipd, D0, tipd_D0); - VitalWireDelay(C0_ipd, C0, tipd_C0); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(DI0_ipd, DI0, tipd_DI0); - VitalWireDelay(CE_ipd, CE, tipd_CE); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); - VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, B0_ipd, - A0_ipd, DI0_dly, CE_dly, CLK_dly, F0_out, Q0_out, F1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_DI0_CLK : x01 := '0'; - VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CE_CLK : x01 := '0'; - VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => DI0_dly, - TestSignalName => "DI0", - TestDelay => tisd_DI0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_DI0_CLK_noedge_negedge, - SetupLow => tsetup_DI0_CLK_noedge_negedge, - HoldHigh => thold_DI0_CLK_noedge_negedge, - HoldLow => thold_DI0_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => DI0_CLK_TimingDatash, - Violation => tviol_DI0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => CE_dly, - TestSignalName => "CE", - TestDelay => tisd_CE_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_CE_CLK_noedge_negedge, - SetupLow => tsetup_CE_CLK_noedge_negedge, - HoldHigh => thold_CE_CLK_noedge_negedge, - HoldLow => thold_CE_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => CE_CLK_TimingDatash, - Violation => tviol_CE_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - F1_zd := F1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => D0_ipd'last_event, - PathDelay => tpd_D0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => C0_ipd'last_event, - PathDelay => tpd_C0_F0, - PathCondition => TRUE), - 2 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 3 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => C1_ipd'last_event, - PathDelay => tpd_C1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity lut40014 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity lut40014 is - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - - ATTRIBUTE Vital_Level0 OF lut40014 : ENTITY IS TRUE; - - end lut40014; - - architecture Structure of lut40014 is - begin - INST10: ROM16X1A - generic map (initval => X"4040") - port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); - end Structure; - --- entity SLICE_25 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_25 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_25"; - - tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns; - ticd_CLK : VitalDelayType := 0 ns; - tisd_DI0_CLK : VitalDelayType := 0 ns; - tsetup_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns; - tisd_M1_CLK : VitalDelayType := 0 ns; - tsetup_M1_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_M1_CLK_noedge_negedge : VitalDelayType := 0 ns); - - port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; - A0: in Std_logic; DI0: in Std_logic; M1: in Std_logic; - CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; - F1: out Std_logic; Q1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_25 : ENTITY IS TRUE; - - end SLICE_25; - - architecture Structure of SLICE_25 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal C1_ipd : std_logic := 'X'; - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal DI0_ipd : std_logic := 'X'; - signal DI0_dly : std_logic := 'X'; - signal M1_ipd : std_logic := 'X'; - signal M1_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - signal Q1_out : std_logic := 'X'; - - signal GNDI: Std_logic; - signal VCCI: Std_logic; - signal CLK_NOTIN: Std_logic; - component vmuxregsre - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component inverter - port (I: in Std_logic; Z: out Std_logic); - end component; - component lut40008 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component lut40014 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - i2_3_lut_3_lut: lut40014 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>GNDI, Z=>F1_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - i2_1_lut_rep_24: lut40008 - port map (A=>A0_ipd, B=>GNDI, C=>GNDI, D=>GNDI, Z=>F0_out); - CBR_390: vmuxregsre - port map (D0=>M1_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_NOTIN, - LSR=>GNDI, Q=>Q1_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - CLK_INVERTERIN: inverter - port map (I=>CLK_dly, Z=>CLK_NOTIN); - FWEr_389: vmuxregsre - port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_NOTIN, - LSR=>GNDI, Q=>Q0_out); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(C1_ipd, C1, tipd_C1); - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(DI0_ipd, DI0, tipd_DI0); - VitalWireDelay(M1_ipd, M1, tipd_M1); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); - VitalSignalDelay(M1_dly, M1_ipd, tisd_M1_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (C1_ipd, B1_ipd, A1_ipd, A0_ipd, DI0_dly, M1_dly, - CLK_dly, F0_out, Q0_out, F1_out, Q1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - VARIABLE Q1_zd : std_logic := 'X'; - VARIABLE Q1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_DI0_CLK : x01 := '0'; - VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_M1_CLK : x01 := '0'; - VARIABLE M1_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => DI0_dly, - TestSignalName => "DI0", - TestDelay => tisd_DI0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_DI0_CLK_noedge_negedge, - SetupLow => tsetup_DI0_CLK_noedge_negedge, - HoldHigh => thold_DI0_CLK_noedge_negedge, - HoldLow => thold_DI0_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => DI0_CLK_TimingDatash, - Violation => tviol_DI0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => M1_dly, - TestSignalName => "M1", - TestDelay => tisd_M1_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M1_CLK_noedge_negedge, - SetupLow => tsetup_M1_CLK_noedge_negedge, - HoldHigh => thold_M1_CLK_noedge_negedge, - HoldLow => thold_M1_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M1_CLK_TimingDatash, - Violation => tviol_M1_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - F1_zd := F1_out; - Q1_zd := Q1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => C1_ipd'last_event, - PathDelay => tpd_C1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q1, - PathCondition => TRUE)), - GlitchData => Q1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity SLICE_26 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_26 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_26"; - - tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CE : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - ticd_CLK : VitalDelayType := 0 ns; - tisd_DI0_CLK : VitalDelayType := 0 ns; - tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_CE_CLK : VitalDelayType := 0 ns; - tsetup_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns); - - port (DI0: in Std_logic; CE: in Std_logic; CLK: in Std_logic; - F0: out Std_logic; Q0: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_26 : ENTITY IS TRUE; - - end SLICE_26; - - architecture Structure of SLICE_26 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal DI0_ipd : std_logic := 'X'; - signal DI0_dly : std_logic := 'X'; - signal CE_ipd : std_logic := 'X'; - signal CE_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - - signal GNDI: Std_logic; - signal VCCI: Std_logic; - component vmuxregsre - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component lut40011 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - n2447_000_BUF1_BUF1: lut40011 - port map (A=>GNDI, B=>GNDI, C=>GNDI, D=>GNDI, Z=>F0_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - InitReady_394: vmuxregsre - port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>CE_dly, CK=>CLK_dly, - LSR=>GNDI, Q=>Q0_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(DI0_ipd, DI0, tipd_DI0); - VitalWireDelay(CE_ipd, CE, tipd_CE); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); - VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (DI0_dly, CE_dly, CLK_dly, F0_out, Q0_out) - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_DI0_CLK : x01 := '0'; - VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CE_CLK : x01 := '0'; - VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => DI0_dly, - TestSignalName => "DI0", - TestDelay => tisd_DI0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_DI0_CLK_noedge_posedge, - SetupLow => tsetup_DI0_CLK_noedge_posedge, - HoldHigh => thold_DI0_CLK_noedge_posedge, - HoldLow => thold_DI0_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => DI0_CLK_TimingDatash, - Violation => tviol_DI0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => CE_dly, - TestSignalName => "CE", - TestDelay => tisd_CE_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_CE_CLK_noedge_posedge, - SetupLow => tsetup_CE_CLK_noedge_posedge, - HoldHigh => thold_CE_CLK_noedge_posedge, - HoldLow => thold_CE_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => CE_CLK_TimingDatash, - Violation => tviol_CE_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0 <= F0_out; - Q0_zd := Q0_out; - - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity SLICE_27 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_27 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_27"; - - tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CE : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - ticd_CLK : VitalDelayType := 0 ns; - tisd_DI0_CLK : VitalDelayType := 0 ns; - tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_CE_CLK : VitalDelayType := 0 ns; - tsetup_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns); - - port (DI0: in Std_logic; CE: in Std_logic; CLK: in Std_logic; - F0: out Std_logic; Q0: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_27 : ENTITY IS TRUE; - - end SLICE_27; - - architecture Structure of SLICE_27 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal DI0_ipd : std_logic := 'X'; - signal DI0_dly : std_logic := 'X'; - signal CE_ipd : std_logic := 'X'; - signal CE_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - - signal GNDI: Std_logic; - signal VCCI: Std_logic; - component vmuxregsre - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component lut40011 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - m1_lut: lut40011 - port map (A=>GNDI, B=>GNDI, C=>GNDI, D=>GNDI, Z=>F0_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - LEDEN_419: vmuxregsre - port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>CE_dly, CK=>CLK_dly, - LSR=>GNDI, Q=>Q0_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(DI0_ipd, DI0, tipd_DI0); - VitalWireDelay(CE_ipd, CE, tipd_CE); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); - VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (DI0_dly, CE_dly, CLK_dly, F0_out, Q0_out) - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_DI0_CLK : x01 := '0'; - VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CE_CLK : x01 := '0'; - VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => DI0_dly, - TestSignalName => "DI0", - TestDelay => tisd_DI0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_DI0_CLK_noedge_posedge, - SetupLow => tsetup_DI0_CLK_noedge_posedge, - HoldHigh => thold_DI0_CLK_noedge_posedge, - HoldLow => thold_DI0_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => DI0_CLK_TimingDatash, - Violation => tviol_DI0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => CE_dly, - TestSignalName => "CE", - TestDelay => tisd_CE_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_CE_CLK_noedge_posedge, - SetupLow => tsetup_CE_CLK_noedge_posedge, - HoldHigh => thold_CE_CLK_noedge_posedge, - HoldLow => thold_CE_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => CE_CLK_TimingDatash, - Violation => tviol_CE_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0 <= F0_out; - Q0_zd := Q0_out; - - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity lut40015 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity lut40015 is - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - - ATTRIBUTE Vital_Level0 OF lut40015 : ENTITY IS TRUE; - - end lut40015; - - architecture Structure of lut40015 is - begin - INST10: ROM16X1A - generic map (initval => X"FBFB") - port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); - end Structure; - --- entity SLICE_30 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_30 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_30"; - - tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); - ticd_CLK : VitalDelayType := 0 ns; - tisd_DI0_CLK : VitalDelayType := 0 ns; - tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_M1_CLK : VitalDelayType := 0 ns; - tsetup_M1_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_M1_CLK_noedge_posedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns); - - port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; - A0: in Std_logic; DI0: in Std_logic; M1: in Std_logic; - CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; - F1: out Std_logic; Q1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_30 : ENTITY IS TRUE; - - end SLICE_30; - - architecture Structure of SLICE_30 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal C1_ipd : std_logic := 'X'; - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal DI0_ipd : std_logic := 'X'; - signal DI0_dly : std_logic := 'X'; - signal M1_ipd : std_logic := 'X'; - signal M1_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - signal Q1_out : std_logic := 'X'; - - signal GNDI: Std_logic; - signal VCCI: Std_logic; - component vmuxregsre - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component lut40008 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component lut40015 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - i2010_3_lut_3_lut: lut40015 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>GNDI, Z=>F1_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - i2044: lut40008 - port map (A=>A0_ipd, B=>GNDI, C=>GNDI, D=>GNDI, Z=>F0_out); - RASr2_380: vmuxregsre - port map (D0=>M1_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_dly, - LSR=>GNDI, Q=>Q1_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - RASr_379: vmuxregsre - port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, - LSR=>GNDI, Q=>Q0_out); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(C1_ipd, C1, tipd_C1); - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(DI0_ipd, DI0, tipd_DI0); - VitalWireDelay(M1_ipd, M1, tipd_M1); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); - VitalSignalDelay(M1_dly, M1_ipd, tisd_M1_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (C1_ipd, B1_ipd, A1_ipd, A0_ipd, DI0_dly, M1_dly, - CLK_dly, F0_out, Q0_out, F1_out, Q1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - VARIABLE Q1_zd : std_logic := 'X'; - VARIABLE Q1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_DI0_CLK : x01 := '0'; - VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_M1_CLK : x01 := '0'; - VARIABLE M1_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => DI0_dly, - TestSignalName => "DI0", - TestDelay => tisd_DI0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_DI0_CLK_noedge_posedge, - SetupLow => tsetup_DI0_CLK_noedge_posedge, - HoldHigh => thold_DI0_CLK_noedge_posedge, - HoldLow => thold_DI0_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => DI0_CLK_TimingDatash, - Violation => tviol_DI0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => M1_dly, - TestSignalName => "M1", - TestDelay => tisd_M1_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M1_CLK_noedge_posedge, - SetupLow => tsetup_M1_CLK_noedge_posedge, - HoldHigh => thold_M1_CLK_noedge_posedge, - HoldLow => thold_M1_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M1_CLK_TimingDatash, - Violation => tviol_M1_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - F1_zd := F1_out; - Q1_zd := Q1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => C1_ipd'last_event, - PathDelay => tpd_C1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q1, - PathCondition => TRUE)), - GlitchData => Q1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity lut40016 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity lut40016 is - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - - ATTRIBUTE Vital_Level0 OF lut40016 : ENTITY IS TRUE; - - end lut40016; - - architecture Structure of lut40016 is - begin - INST10: ROM16X1A - generic map (initval => X"8080") - port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); - end Structure; - --- entity lut40017 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity lut40017 is - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - - ATTRIBUTE Vital_Level0 OF lut40017 : ENTITY IS TRUE; - - end lut40017; - - architecture Structure of lut40017 is - begin - INST10: ROM16X1A - generic map (initval => X"FFFB") - port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); - end Structure; - --- entity SLICE_32 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_32 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_32"; - - tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_LSR : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - ticd_CLK : VitalDelayType := 0 ns; - tisd_DI0_CLK : VitalDelayType := 0 ns; - tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_LSR_CLK : VitalDelayType := 0 ns; - tsetup_LSR_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_LSR_CLK_noedge_posedge : VitalDelayType := 0 ns; - tperiod_LSR : VitalDelayType := 0 ns; - tpw_LSR_posedge : VitalDelayType := 0 ns; - tpw_LSR_negedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns); - - port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; - D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; - A0: in Std_logic; DI0: in Std_logic; LSR: in Std_logic; - CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; - F1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_32 : ENTITY IS TRUE; - - end SLICE_32; - - architecture Structure of SLICE_32 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal C1_ipd : std_logic := 'X'; - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal D0_ipd : std_logic := 'X'; - signal C0_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal DI0_ipd : std_logic := 'X'; - signal DI0_dly : std_logic := 'X'; - signal LSR_ipd : std_logic := 'X'; - signal LSR_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - - signal GNDI: Std_logic; - signal VCCI: Std_logic; - signal LSR_NOTIN: Std_logic; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component inverter - port (I: in Std_logic; Z: out Std_logic); - end component; - component vmuxregsre0007 - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component lut40016 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component lut40017 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - i2_3_lut_rep_32: lut40016 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>GNDI, Z=>F1_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - i2_2_lut_3_lut_4_lut: lut40017 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); - RA10_400: vmuxregsre0007 - port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, - LSR=>LSR_NOTIN, Q=>Q0_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - LSR_INVERTERIN: inverter - port map (I=>LSR_dly, Z=>LSR_NOTIN); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(C1_ipd, C1, tipd_C1); - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(D0_ipd, D0, tipd_D0); - VitalWireDelay(C0_ipd, C0, tipd_C0); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(DI0_ipd, DI0, tipd_DI0); - VitalWireDelay(LSR_ipd, LSR, tipd_LSR); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); - VitalSignalDelay(LSR_dly, LSR_ipd, tisd_LSR_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, B0_ipd, - A0_ipd, DI0_dly, LSR_dly, CLK_dly, F0_out, Q0_out, F1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_DI0_CLK : x01 := '0'; - VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_LSR_CLK : x01 := '0'; - VARIABLE LSR_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_LSR_LSR : x01 := '0'; - VARIABLE periodcheckinfo_LSR : VitalPeriodDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => DI0_dly, - TestSignalName => "DI0", - TestDelay => tisd_DI0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_DI0_CLK_noedge_posedge, - SetupLow => tsetup_DI0_CLK_noedge_posedge, - HoldHigh => thold_DI0_CLK_noedge_posedge, - HoldLow => thold_DI0_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => DI0_CLK_TimingDatash, - Violation => tviol_DI0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => LSR_dly, - TestSignalName => "LSR", - TestDelay => tisd_LSR_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_LSR_CLK_noedge_posedge, - SetupLow => tsetup_LSR_CLK_noedge_posedge, - HoldHigh => thold_LSR_CLK_noedge_posedge, - HoldLow => thold_LSR_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => LSR_CLK_TimingDatash, - Violation => tviol_LSR_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => LSR_ipd, - TestSignalName => "LSR", - Period => tperiod_LSR, - PulseWidthHigh => tpw_LSR_posedge, - PulseWidthLow => tpw_LSR_negedge, - PeriodData => periodcheckinfo_LSR, - Violation => tviol_LSR_LSR, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - F1_zd := F1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => D0_ipd'last_event, - PathDelay => tpd_D0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => C0_ipd'last_event, - PathDelay => tpd_C0_F0, - PathCondition => TRUE), - 2 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 3 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => C1_ipd'last_event, - PathDelay => tpd_C1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity lut40018 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity lut40018 is - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - - ATTRIBUTE Vital_Level0 OF lut40018 : ENTITY IS TRUE; - - end lut40018; - - architecture Structure of lut40018 is - begin - INST10: ROM16X1A - generic map (initval => X"1010") - port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); - end Structure; - --- entity lut40019 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity lut40019 is - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - - ATTRIBUTE Vital_Level0 OF lut40019 : ENTITY IS TRUE; - - end lut40019; - - architecture Structure of lut40019 is - begin - INST10: ROM16X1A - generic map (initval => X"C6C6") - port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); - end Structure; - --- entity SLICE_33 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_33 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_33"; - - tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_LSR : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - ticd_CLK : VitalDelayType := 0 ns; - tisd_DI0_CLK : VitalDelayType := 0 ns; - tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_LSR_CLK : VitalDelayType := 0 ns; - tsetup_LSR_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_LSR_CLK_noedge_posedge : VitalDelayType := 0 ns; - tperiod_LSR : VitalDelayType := 0 ns; - tpw_LSR_posedge : VitalDelayType := 0 ns; - tpw_LSR_negedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns); - - port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; - C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; - DI0: in Std_logic; LSR: in Std_logic; CLK: in Std_logic; - F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_33 : ENTITY IS TRUE; - - end SLICE_33; - - architecture Structure of SLICE_33 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal C1_ipd : std_logic := 'X'; - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal C0_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal DI0_ipd : std_logic := 'X'; - signal DI0_dly : std_logic := 'X'; - signal LSR_ipd : std_logic := 'X'; - signal LSR_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - - signal GNDI: Std_logic; - signal VCCI: Std_logic; - signal LSR_NOTIN: Std_logic; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component vmuxregsre0004 - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component inverter - port (I: in Std_logic; Z: out Std_logic); - end component; - component lut40018 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component lut40019 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - i1_2_lut_3_lut: lut40018 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>GNDI, Z=>F1_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - RA11_I_54_3_lut: lut40019 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>GNDI, Z=>F0_out); - RA11_385: vmuxregsre0004 - port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, - LSR=>LSR_NOTIN, Q=>Q0_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - LSR_INVERTERIN: inverter - port map (I=>LSR_dly, Z=>LSR_NOTIN); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(C1_ipd, C1, tipd_C1); - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(C0_ipd, C0, tipd_C0); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(DI0_ipd, DI0, tipd_DI0); - VitalWireDelay(LSR_ipd, LSR, tipd_LSR); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); - VitalSignalDelay(LSR_dly, LSR_ipd, tisd_LSR_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (C1_ipd, B1_ipd, A1_ipd, C0_ipd, B0_ipd, A0_ipd, - DI0_dly, LSR_dly, CLK_dly, F0_out, Q0_out, F1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_DI0_CLK : x01 := '0'; - VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_LSR_CLK : x01 := '0'; - VARIABLE LSR_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_LSR_LSR : x01 := '0'; - VARIABLE periodcheckinfo_LSR : VitalPeriodDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => DI0_dly, - TestSignalName => "DI0", - TestDelay => tisd_DI0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_DI0_CLK_noedge_posedge, - SetupLow => tsetup_DI0_CLK_noedge_posedge, - HoldHigh => thold_DI0_CLK_noedge_posedge, - HoldLow => thold_DI0_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => DI0_CLK_TimingDatash, - Violation => tviol_DI0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => LSR_dly, - TestSignalName => "LSR", - TestDelay => tisd_LSR_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_LSR_CLK_noedge_posedge, - SetupLow => tsetup_LSR_CLK_noedge_posedge, - HoldHigh => thold_LSR_CLK_noedge_posedge, - HoldLow => thold_LSR_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => LSR_CLK_TimingDatash, - Violation => tviol_LSR_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => LSR_ipd, - TestSignalName => "LSR", - Period => tperiod_LSR, - PulseWidthHigh => tpw_LSR_posedge, - PulseWidthLow => tpw_LSR_negedge, - PeriodData => periodcheckinfo_LSR, - Violation => tviol_LSR_LSR, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - F1_zd := F1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => C0_ipd'last_event, - PathDelay => tpd_C0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 2 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => C1_ipd'last_event, - PathDelay => tpd_C1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity lut40020 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity lut40020 is - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - - ATTRIBUTE Vital_Level0 OF lut40020 : ENTITY IS TRUE; - - end lut40020; - - architecture Structure of lut40020 is - begin - INST10: ROM16X1A - generic map (initval => X"20FF") - port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); - end Structure; - --- entity lut40021 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity lut40021 is - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - - ATTRIBUTE Vital_Level0 OF lut40021 : ENTITY IS TRUE; - - end lut40021; - - architecture Structure of lut40021 is - begin - INST10: ROM16X1A - generic map (initval => X"CACA") - port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); - end Structure; - --- entity SLICE_35 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_35 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_35"; - - tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CE : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - ticd_CLK : VitalDelayType := 0 ns; - tisd_DI0_CLK : VitalDelayType := 0 ns; - tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_CE_CLK : VitalDelayType := 0 ns; - tsetup_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns); - - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; C0: in Std_logic; B0: in Std_logic; - A0: in Std_logic; DI0: in Std_logic; CE: in Std_logic; - CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; - F1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_35 : ENTITY IS TRUE; - - end SLICE_35; - - architecture Structure of SLICE_35 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal D1_ipd : std_logic := 'X'; - signal C1_ipd : std_logic := 'X'; - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal C0_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal DI0_ipd : std_logic := 'X'; - signal DI0_dly : std_logic := 'X'; - signal CE_ipd : std_logic := 'X'; - signal CE_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - - signal GNDI: Std_logic; - signal VCCI: Std_logic; - component vmuxregsre - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component lut40020 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component lut40021 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - i1_2_lut_4_lut_adj_25: lut40020 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); - i29_3_lut: lut40021 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>GNDI, Z=>F0_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - RCKEEN_401: vmuxregsre - port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>CE_dly, CK=>CLK_dly, - LSR=>GNDI, Q=>Q0_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(D1_ipd, D1, tipd_D1); - VitalWireDelay(C1_ipd, C1, tipd_C1); - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(C0_ipd, C0, tipd_C0); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(DI0_ipd, DI0, tipd_DI0); - VitalWireDelay(CE_ipd, CE, tipd_CE); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); - VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, C0_ipd, B0_ipd, - A0_ipd, DI0_dly, CE_dly, CLK_dly, F0_out, Q0_out, F1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_DI0_CLK : x01 := '0'; - VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CE_CLK : x01 := '0'; - VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => DI0_dly, - TestSignalName => "DI0", - TestDelay => tisd_DI0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_DI0_CLK_noedge_posedge, - SetupLow => tsetup_DI0_CLK_noedge_posedge, - HoldHigh => thold_DI0_CLK_noedge_posedge, - HoldLow => thold_DI0_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => DI0_CLK_TimingDatash, - Violation => tviol_DI0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => CE_dly, - TestSignalName => "CE", - TestDelay => tisd_CE_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_CE_CLK_noedge_posedge, - SetupLow => tsetup_CE_CLK_noedge_posedge, - HoldHigh => thold_CE_CLK_noedge_posedge, - HoldLow => thold_CE_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => CE_CLK_TimingDatash, - Violation => tviol_CE_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - F1_zd := F1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => C0_ipd'last_event, - PathDelay => tpd_C0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 2 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => D1_ipd'last_event, - PathDelay => tpd_D1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => C1_ipd'last_event, - PathDelay => tpd_C1_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 3 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity lut40022 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity lut40022 is - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - - ATTRIBUTE Vital_Level0 OF lut40022 : ENTITY IS TRUE; - - end lut40022; - - architecture Structure of lut40022 is - begin - INST10: ROM16X1A - generic map (initval => X"CFC8") - port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); - end Structure; - --- entity SLICE_36 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_36 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_36"; - - tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); - ticd_CLK : VitalDelayType := 0 ns; - tisd_DI0_CLK : VitalDelayType := 0 ns; - tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_M1_CLK : VitalDelayType := 0 ns; - tsetup_M1_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_M1_CLK_noedge_posedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns); - - port (D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; - A0: in Std_logic; DI0: in Std_logic; M1: in Std_logic; - CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; - Q1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_36 : ENTITY IS TRUE; - - end SLICE_36; - - architecture Structure of SLICE_36 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal D0_ipd : std_logic := 'X'; - signal C0_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal DI0_ipd : std_logic := 'X'; - signal DI0_dly : std_logic := 'X'; - signal M1_ipd : std_logic := 'X'; - signal M1_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal Q1_out : std_logic := 'X'; - - signal VCCI: Std_logic; - signal GNDI: Std_logic; - component vmuxregsre - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component lut40022 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - i1404_4_lut: lut40022 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); - PHI2r2_377: vmuxregsre - port map (D0=>M1_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_dly, - LSR=>GNDI, Q=>Q1_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - DRIVEGND: gnd - port map (PWR0=>GNDI); - RCKE_395: vmuxregsre - port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, - LSR=>GNDI, Q=>Q0_out); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(D0_ipd, D0, tipd_D0); - VitalWireDelay(C0_ipd, C0, tipd_C0); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(DI0_ipd, DI0, tipd_DI0); - VitalWireDelay(M1_ipd, M1, tipd_M1); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); - VitalSignalDelay(M1_dly, M1_ipd, tisd_M1_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (D0_ipd, C0_ipd, B0_ipd, A0_ipd, DI0_dly, M1_dly, - CLK_dly, F0_out, Q0_out, Q1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE Q1_zd : std_logic := 'X'; - VARIABLE Q1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_DI0_CLK : x01 := '0'; - VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_M1_CLK : x01 := '0'; - VARIABLE M1_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => DI0_dly, - TestSignalName => "DI0", - TestDelay => tisd_DI0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_DI0_CLK_noedge_posedge, - SetupLow => tsetup_DI0_CLK_noedge_posedge, - HoldHigh => thold_DI0_CLK_noedge_posedge, - HoldLow => thold_DI0_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => DI0_CLK_TimingDatash, - Violation => tviol_DI0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => M1_dly, - TestSignalName => "M1", - TestDelay => tisd_M1_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M1_CLK_noedge_posedge, - SetupLow => tsetup_M1_CLK_noedge_posedge, - HoldHigh => thold_M1_CLK_noedge_posedge, - HoldLow => thold_M1_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M1_CLK_TimingDatash, - Violation => tviol_M1_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - Q1_zd := Q1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => D0_ipd'last_event, - PathDelay => tpd_D0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => C0_ipd'last_event, - PathDelay => tpd_C0_F0, - PathCondition => TRUE), - 2 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 3 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q1, - PathCondition => TRUE)), - GlitchData => Q1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity SLICE_37 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_37 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_37"; - - tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CE : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - ticd_CLK : VitalDelayType := 0 ns; - tisd_DI0_CLK : VitalDelayType := 0 ns; - tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_CE_CLK : VitalDelayType := 0 ns; - tsetup_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns); - - port (DI0: in Std_logic; CE: in Std_logic; CLK: in Std_logic; - F0: out Std_logic; Q0: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_37 : ENTITY IS TRUE; - - end SLICE_37; - - architecture Structure of SLICE_37 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal DI0_ipd : std_logic := 'X'; - signal DI0_dly : std_logic := 'X'; - signal CE_ipd : std_logic := 'X'; - signal CE_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - - signal GNDI: Std_logic; - signal VCCI: Std_logic; - component vmuxregsre - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component lut40011 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - n2447_002_BUF1_BUF1: lut40011 - port map (A=>GNDI, B=>GNDI, C=>GNDI, D=>GNDI, Z=>F0_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - Ready_404: vmuxregsre - port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>CE_dly, CK=>CLK_dly, - LSR=>GNDI, Q=>Q0_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(DI0_ipd, DI0, tipd_DI0); - VitalWireDelay(CE_ipd, CE, tipd_CE); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); - VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (DI0_dly, CE_dly, CLK_dly, F0_out, Q0_out) - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_DI0_CLK : x01 := '0'; - VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CE_CLK : x01 := '0'; - VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => DI0_dly, - TestSignalName => "DI0", - TestDelay => tisd_DI0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_DI0_CLK_noedge_posedge, - SetupLow => tsetup_DI0_CLK_noedge_posedge, - HoldHigh => thold_DI0_CLK_noedge_posedge, - HoldLow => thold_DI0_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => DI0_CLK_TimingDatash, - Violation => tviol_DI0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => CE_dly, - TestSignalName => "CE", - TestDelay => tisd_CE_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_CE_CLK_noedge_posedge, - SetupLow => tsetup_CE_CLK_noedge_posedge, - HoldHigh => thold_CE_CLK_noedge_posedge, - HoldLow => thold_CE_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => CE_CLK_TimingDatash, - Violation => tviol_CE_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0 <= F0_out; - Q0_zd := Q0_out; - - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity lut40023 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity lut40023 is - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - - ATTRIBUTE Vital_Level0 OF lut40023 : ENTITY IS TRUE; - - end lut40023; - - architecture Structure of lut40023 is - begin - INST10: ROM16X1A - generic map (initval => X"3A0A") - port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); - end Structure; - --- entity SLICE_44 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_44 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_44"; - - tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CE : VitalDelayType01 := (0 ns, 0 ns); - tipd_LSR : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - ticd_CLK : VitalDelayType := 0 ns; - tisd_DI0_CLK : VitalDelayType := 0 ns; - tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_CE_CLK : VitalDelayType := 0 ns; - tsetup_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_LSR_CLK : VitalDelayType := 0 ns; - tsetup_LSR_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_LSR_CLK_noedge_posedge : VitalDelayType := 0 ns; - tperiod_LSR : VitalDelayType := 0 ns; - tpw_LSR_posedge : VitalDelayType := 0 ns; - tpw_LSR_negedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns); - - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; C0: in Std_logic; B0: in Std_logic; - A0: in Std_logic; DI0: in Std_logic; CE: in Std_logic; - LSR: in Std_logic; CLK: in Std_logic; F0: out Std_logic; - Q0: out Std_logic; F1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_44 : ENTITY IS TRUE; - - end SLICE_44; - - architecture Structure of SLICE_44 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal D1_ipd : std_logic := 'X'; - signal C1_ipd : std_logic := 'X'; - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal C0_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal DI0_ipd : std_logic := 'X'; - signal DI0_dly : std_logic := 'X'; - signal CE_ipd : std_logic := 'X'; - signal CE_dly : std_logic := 'X'; - signal LSR_ipd : std_logic := 'X'; - signal LSR_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - - signal GNDI: Std_logic; - signal VCCI: Std_logic; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component vmuxregsre0004 - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component lut40021 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component lut40023 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - i1970_4_lut: lut40023 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); - i1603_3_lut: lut40021 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>GNDI, Z=>F0_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - UFMCLK_416: vmuxregsre0004 - port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>CE_dly, CK=>CLK_dly, - LSR=>LSR_dly, Q=>Q0_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(D1_ipd, D1, tipd_D1); - VitalWireDelay(C1_ipd, C1, tipd_C1); - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(C0_ipd, C0, tipd_C0); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(DI0_ipd, DI0, tipd_DI0); - VitalWireDelay(CE_ipd, CE, tipd_CE); - VitalWireDelay(LSR_ipd, LSR, tipd_LSR); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); - VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); - VitalSignalDelay(LSR_dly, LSR_ipd, tisd_LSR_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, C0_ipd, B0_ipd, - A0_ipd, DI0_dly, CE_dly, LSR_dly, CLK_dly, F0_out, Q0_out, F1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_DI0_CLK : x01 := '0'; - VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CE_CLK : x01 := '0'; - VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_LSR_CLK : x01 := '0'; - VARIABLE LSR_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_LSR_LSR : x01 := '0'; - VARIABLE periodcheckinfo_LSR : VitalPeriodDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => DI0_dly, - TestSignalName => "DI0", - TestDelay => tisd_DI0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_DI0_CLK_noedge_posedge, - SetupLow => tsetup_DI0_CLK_noedge_posedge, - HoldHigh => thold_DI0_CLK_noedge_posedge, - HoldLow => thold_DI0_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => DI0_CLK_TimingDatash, - Violation => tviol_DI0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => CE_dly, - TestSignalName => "CE", - TestDelay => tisd_CE_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_CE_CLK_noedge_posedge, - SetupLow => tsetup_CE_CLK_noedge_posedge, - HoldHigh => thold_CE_CLK_noedge_posedge, - HoldLow => thold_CE_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => CE_CLK_TimingDatash, - Violation => tviol_CE_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => LSR_dly, - TestSignalName => "LSR", - TestDelay => tisd_LSR_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_LSR_CLK_noedge_posedge, - SetupLow => tsetup_LSR_CLK_noedge_posedge, - HoldHigh => thold_LSR_CLK_noedge_posedge, - HoldLow => thold_LSR_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => LSR_CLK_TimingDatash, - Violation => tviol_LSR_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => LSR_ipd, - TestSignalName => "LSR", - Period => tperiod_LSR, - PulseWidthHigh => tpw_LSR_posedge, - PulseWidthLow => tpw_LSR_negedge, - PeriodData => periodcheckinfo_LSR, - Violation => tviol_LSR_LSR, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - F1_zd := F1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => C0_ipd'last_event, - PathDelay => tpd_C0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 2 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => D1_ipd'last_event, - PathDelay => tpd_D1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => C1_ipd'last_event, - PathDelay => tpd_C1_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 3 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity lut40024 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity lut40024 is - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - - ATTRIBUTE Vital_Level0 OF lut40024 : ENTITY IS TRUE; - - end lut40024; - - architecture Structure of lut40024 is - begin - INST10: ROM16X1A - generic map (initval => X"CAC0") - port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); - end Structure; - --- entity SLICE_45 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_45 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_45"; - - tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CE : VitalDelayType01 := (0 ns, 0 ns); - tipd_LSR : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - ticd_CLK : VitalDelayType := 0 ns; - tisd_DI0_CLK : VitalDelayType := 0 ns; - tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_CE_CLK : VitalDelayType := 0 ns; - tsetup_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_LSR_CLK : VitalDelayType := 0 ns; - tsetup_LSR_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_LSR_CLK_noedge_posedge : VitalDelayType := 0 ns; - tperiod_LSR : VitalDelayType := 0 ns; - tpw_LSR_posedge : VitalDelayType := 0 ns; - tpw_LSR_negedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns); - - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; - B0: in Std_logic; A0: in Std_logic; DI0: in Std_logic; - CE: in Std_logic; LSR: in Std_logic; CLK: in Std_logic; - F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_45 : ENTITY IS TRUE; - - end SLICE_45; - - architecture Structure of SLICE_45 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal D1_ipd : std_logic := 'X'; - signal C1_ipd : std_logic := 'X'; - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal D0_ipd : std_logic := 'X'; - signal C0_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal DI0_ipd : std_logic := 'X'; - signal DI0_dly : std_logic := 'X'; - signal CE_ipd : std_logic := 'X'; - signal CE_dly : std_logic := 'X'; - signal LSR_ipd : std_logic := 'X'; - signal LSR_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - - signal VCCI: Std_logic; - component vcc - port (PWR1: out Std_logic); - end component; - component lut4 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component vmuxregsre0004 - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component lut40024 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - i4_4_lut_adj_17: lut4 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); - i1589_4_lut: lut40024 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); - UFMSDI_417: vmuxregsre0004 - port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>CE_dly, CK=>CLK_dly, - LSR=>LSR_dly, Q=>Q0_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(D1_ipd, D1, tipd_D1); - VitalWireDelay(C1_ipd, C1, tipd_C1); - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(D0_ipd, D0, tipd_D0); - VitalWireDelay(C0_ipd, C0, tipd_C0); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(DI0_ipd, DI0, tipd_DI0); - VitalWireDelay(CE_ipd, CE, tipd_CE); - VitalWireDelay(LSR_ipd, LSR, tipd_LSR); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); - VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); - VitalSignalDelay(LSR_dly, LSR_ipd, tisd_LSR_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, - B0_ipd, A0_ipd, DI0_dly, CE_dly, LSR_dly, CLK_dly, F0_out, Q0_out, - F1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_DI0_CLK : x01 := '0'; - VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CE_CLK : x01 := '0'; - VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_LSR_CLK : x01 := '0'; - VARIABLE LSR_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_LSR_LSR : x01 := '0'; - VARIABLE periodcheckinfo_LSR : VitalPeriodDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => DI0_dly, - TestSignalName => "DI0", - TestDelay => tisd_DI0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_DI0_CLK_noedge_posedge, - SetupLow => tsetup_DI0_CLK_noedge_posedge, - HoldHigh => thold_DI0_CLK_noedge_posedge, - HoldLow => thold_DI0_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => DI0_CLK_TimingDatash, - Violation => tviol_DI0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => CE_dly, - TestSignalName => "CE", - TestDelay => tisd_CE_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_CE_CLK_noedge_posedge, - SetupLow => tsetup_CE_CLK_noedge_posedge, - HoldHigh => thold_CE_CLK_noedge_posedge, - HoldLow => thold_CE_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => CE_CLK_TimingDatash, - Violation => tviol_CE_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => LSR_dly, - TestSignalName => "LSR", - TestDelay => tisd_LSR_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_LSR_CLK_noedge_posedge, - SetupLow => tsetup_LSR_CLK_noedge_posedge, - HoldHigh => thold_LSR_CLK_noedge_posedge, - HoldLow => thold_LSR_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => LSR_CLK_TimingDatash, - Violation => tviol_LSR_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => LSR_ipd, - TestSignalName => "LSR", - Period => tperiod_LSR, - PulseWidthHigh => tpw_LSR_posedge, - PulseWidthLow => tpw_LSR_negedge, - PeriodData => periodcheckinfo_LSR, - Violation => tviol_LSR_LSR, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - F1_zd := F1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => D0_ipd'last_event, - PathDelay => tpd_D0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => C0_ipd'last_event, - PathDelay => tpd_C0_F0, - PathCondition => TRUE), - 2 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 3 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => D1_ipd'last_event, - PathDelay => tpd_D1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => C1_ipd'last_event, - PathDelay => tpd_C1_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 3 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity lut40025 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity lut40025 is - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - - ATTRIBUTE Vital_Level0 OF lut40025 : ENTITY IS TRUE; - - end lut40025; - - architecture Structure of lut40025 is - begin - INST10: ROM16X1A - generic map (initval => X"FEFA") - port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); - end Structure; - --- entity lut40026 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity lut40026 is - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - - ATTRIBUTE Vital_Level0 OF lut40026 : ENTITY IS TRUE; - - end lut40026; - - architecture Structure of lut40026 is - begin - INST10: ROM16X1A - generic map (initval => X"0008") - port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); - end Structure; - --- entity SLICE_50 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_50 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_50"; - - tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CE : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns; - ticd_CLK : VitalDelayType := 0 ns; - tisd_DI0_CLK : VitalDelayType := 0 ns; - tsetup_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns; - tisd_CE_CLK : VitalDelayType := 0 ns; - tsetup_CE_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_CE_CLK_noedge_negedge : VitalDelayType := 0 ns); - - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; - B0: in Std_logic; A0: in Std_logic; DI0: in Std_logic; - CE: in Std_logic; CLK: in Std_logic; F0: out Std_logic; - Q0: out Std_logic; F1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_50 : ENTITY IS TRUE; - - end SLICE_50; - - architecture Structure of SLICE_50 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal D1_ipd : std_logic := 'X'; - signal C1_ipd : std_logic := 'X'; - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal D0_ipd : std_logic := 'X'; - signal C0_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal DI0_ipd : std_logic := 'X'; - signal DI0_dly : std_logic := 'X'; - signal CE_ipd : std_logic := 'X'; - signal CE_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - - signal VCCI: Std_logic; - signal CLK_NOTIN: Std_logic; - signal GNDI: Std_logic; - component vmuxregsre - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component inverter - port (I: in Std_logic; Z: out Std_logic); - end component; - component lut40025 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component lut40026 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - i1962_4_lut: lut40025 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); - i2_3_lut_4_lut_adj_11: lut40026 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); - XOR8MEG_408: vmuxregsre - port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>CE_dly, CK=>CLK_NOTIN, - LSR=>GNDI, Q=>Q0_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - CLK_INVERTERIN: inverter - port map (I=>CLK_dly, Z=>CLK_NOTIN); - DRIVEGND: gnd - port map (PWR0=>GNDI); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(D1_ipd, D1, tipd_D1); - VitalWireDelay(C1_ipd, C1, tipd_C1); - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(D0_ipd, D0, tipd_D0); - VitalWireDelay(C0_ipd, C0, tipd_C0); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(DI0_ipd, DI0, tipd_DI0); - VitalWireDelay(CE_ipd, CE, tipd_CE); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); - VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, - B0_ipd, A0_ipd, DI0_dly, CE_dly, CLK_dly, F0_out, Q0_out, F1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_DI0_CLK : x01 := '0'; - VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CE_CLK : x01 := '0'; - VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => DI0_dly, - TestSignalName => "DI0", - TestDelay => tisd_DI0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_DI0_CLK_noedge_negedge, - SetupLow => tsetup_DI0_CLK_noedge_negedge, - HoldHigh => thold_DI0_CLK_noedge_negedge, - HoldLow => thold_DI0_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => DI0_CLK_TimingDatash, - Violation => tviol_DI0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => CE_dly, - TestSignalName => "CE", - TestDelay => tisd_CE_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_CE_CLK_noedge_negedge, - SetupLow => tsetup_CE_CLK_noedge_negedge, - HoldHigh => thold_CE_CLK_noedge_negedge, - HoldLow => thold_CE_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => CE_CLK_TimingDatash, - Violation => tviol_CE_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - F1_zd := F1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => D0_ipd'last_event, - PathDelay => tpd_D0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => C0_ipd'last_event, - PathDelay => tpd_C0_F0, - PathCondition => TRUE), - 2 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 3 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => D1_ipd'last_event, - PathDelay => tpd_D1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => C1_ipd'last_event, - PathDelay => tpd_C1_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 3 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity lut40027 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity lut40027 is - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - - ATTRIBUTE Vital_Level0 OF lut40027 : ENTITY IS TRUE; - - end lut40027; - - architecture Structure of lut40027 is - begin - INST10: ROM16X1A - generic map (initval => X"1000") - port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); - end Structure; - --- entity lut40028 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity lut40028 is - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - - ATTRIBUTE Vital_Level0 OF lut40028 : ENTITY IS TRUE; - - end lut40028; - - architecture Structure of lut40028 is - begin - INST10: ROM16X1A - generic map (initval => X"BF04") - port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); - end Structure; - --- entity SLICE_57 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_57 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_57"; - - tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CE : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - ticd_CLK : VitalDelayType := 0 ns; - tisd_DI0_CLK : VitalDelayType := 0 ns; - tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_CE_CLK : VitalDelayType := 0 ns; - tsetup_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns); - - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; - B0: in Std_logic; A0: in Std_logic; DI0: in Std_logic; - CE: in Std_logic; CLK: in Std_logic; F0: out Std_logic; - Q0: out Std_logic; F1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_57 : ENTITY IS TRUE; - - end SLICE_57; - - architecture Structure of SLICE_57 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal D1_ipd : std_logic := 'X'; - signal C1_ipd : std_logic := 'X'; - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal D0_ipd : std_logic := 'X'; - signal C0_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal DI0_ipd : std_logic := 'X'; - signal DI0_dly : std_logic := 'X'; - signal CE_ipd : std_logic := 'X'; - signal CE_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - - signal VCCI: Std_logic; - signal GNDI: Std_logic; - component vmuxregsre - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component lut40027 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component lut40028 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - i2_3_lut_rep_18_4_lut: lut40027 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); - n8MEGEN_I_14_3_lut_4_lut: lut40028 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); - n8MEGEN_418: vmuxregsre - port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>CE_dly, CK=>CLK_dly, - LSR=>GNDI, Q=>Q0_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - DRIVEGND: gnd - port map (PWR0=>GNDI); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(D1_ipd, D1, tipd_D1); - VitalWireDelay(C1_ipd, C1, tipd_C1); - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(D0_ipd, D0, tipd_D0); - VitalWireDelay(C0_ipd, C0, tipd_C0); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(DI0_ipd, DI0, tipd_DI0); - VitalWireDelay(CE_ipd, CE, tipd_CE); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); - VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, - B0_ipd, A0_ipd, DI0_dly, CE_dly, CLK_dly, F0_out, Q0_out, F1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_DI0_CLK : x01 := '0'; - VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CE_CLK : x01 := '0'; - VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => DI0_dly, - TestSignalName => "DI0", - TestDelay => tisd_DI0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_DI0_CLK_noedge_posedge, - SetupLow => tsetup_DI0_CLK_noedge_posedge, - HoldHigh => thold_DI0_CLK_noedge_posedge, - HoldLow => thold_DI0_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => DI0_CLK_TimingDatash, - Violation => tviol_DI0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => CE_dly, - TestSignalName => "CE", - TestDelay => tisd_CE_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_CE_CLK_noedge_posedge, - SetupLow => tsetup_CE_CLK_noedge_posedge, - HoldHigh => thold_CE_CLK_noedge_posedge, - HoldLow => thold_CE_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => CE_CLK_TimingDatash, - Violation => tviol_CE_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - F1_zd := F1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => D0_ipd'last_event, - PathDelay => tpd_D0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => C0_ipd'last_event, - PathDelay => tpd_C0_F0, - PathCondition => TRUE), - 2 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 3 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => D1_ipd'last_event, - PathDelay => tpd_D1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => C1_ipd'last_event, - PathDelay => tpd_C1_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 3 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity lut40029 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity lut40029 is - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - - ATTRIBUTE Vital_Level0 OF lut40029 : ENTITY IS TRUE; - - end lut40029; - - architecture Structure of lut40029 is - begin - INST10: ROM16X1A - generic map (initval => X"3AFA") - port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); - end Structure; - --- entity lut40030 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity lut40030 is - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - - ATTRIBUTE Vital_Level0 OF lut40030 : ENTITY IS TRUE; - - end lut40030; - - architecture Structure of lut40030 is - begin - INST10: ROM16X1A - generic map (initval => X"FE0E") - port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); - end Structure; - --- entity vmuxregsre0031 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity vmuxregsre0031 is - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - - ATTRIBUTE Vital_Level0 OF vmuxregsre0031 : ENTITY IS TRUE; - - end vmuxregsre0031; - - architecture Structure of vmuxregsre0031 is - begin - INST01: FL1P3BX - generic map (GSR => "DISABLED") - port map (D0=>D0, D1=>D1, SP=>SP, CK=>CK, SD=>SD, PD=>LSR, Q=>Q); - end Structure; - --- entity SLICE_59 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_59 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_59"; - - tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CE : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - ticd_CLK : VitalDelayType := 0 ns; - tisd_DI0_CLK : VitalDelayType := 0 ns; - tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_CE_CLK : VitalDelayType := 0 ns; - tsetup_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns); - - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; - B0: in Std_logic; A0: in Std_logic; DI0: in Std_logic; - CE: in Std_logic; CLK: in Std_logic; F0: out Std_logic; - Q0: out Std_logic; F1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_59 : ENTITY IS TRUE; - - end SLICE_59; - - architecture Structure of SLICE_59 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal D1_ipd : std_logic := 'X'; - signal C1_ipd : std_logic := 'X'; - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal D0_ipd : std_logic := 'X'; - signal C0_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal DI0_ipd : std_logic := 'X'; - signal DI0_dly : std_logic := 'X'; - signal CE_ipd : std_logic := 'X'; - signal CE_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - - signal VCCI: Std_logic; - signal GNDI: Std_logic; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component lut40029 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component lut40030 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component vmuxregsre0031 - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - begin - nRCAS_I_43_4_lut: lut40029 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); - nRCAS_I_0_452_3_lut_4_lut: lut40030 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); - nRCAS_398: vmuxregsre0031 - port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>CE_dly, CK=>CLK_dly, - LSR=>GNDI, Q=>Q0_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - DRIVEGND: gnd - port map (PWR0=>GNDI); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(D1_ipd, D1, tipd_D1); - VitalWireDelay(C1_ipd, C1, tipd_C1); - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(D0_ipd, D0, tipd_D0); - VitalWireDelay(C0_ipd, C0, tipd_C0); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(DI0_ipd, DI0, tipd_DI0); - VitalWireDelay(CE_ipd, CE, tipd_CE); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); - VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, - B0_ipd, A0_ipd, DI0_dly, CE_dly, CLK_dly, F0_out, Q0_out, F1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_DI0_CLK : x01 := '0'; - VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CE_CLK : x01 := '0'; - VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => DI0_dly, - TestSignalName => "DI0", - TestDelay => tisd_DI0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_DI0_CLK_noedge_posedge, - SetupLow => tsetup_DI0_CLK_noedge_posedge, - HoldHigh => thold_DI0_CLK_noedge_posedge, - HoldLow => thold_DI0_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => DI0_CLK_TimingDatash, - Violation => tviol_DI0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => CE_dly, - TestSignalName => "CE", - TestDelay => tisd_CE_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_CE_CLK_noedge_posedge, - SetupLow => tsetup_CE_CLK_noedge_posedge, - HoldHigh => thold_CE_CLK_noedge_posedge, - HoldLow => thold_CE_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => CE_CLK_TimingDatash, - Violation => tviol_CE_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - F1_zd := F1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => D0_ipd'last_event, - PathDelay => tpd_D0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => C0_ipd'last_event, - PathDelay => tpd_C0_F0, - PathCondition => TRUE), - 2 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 3 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => D1_ipd'last_event, - PathDelay => tpd_D1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => C1_ipd'last_event, - PathDelay => tpd_C1_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 3 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity lut40032 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity lut40032 is - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - - ATTRIBUTE Vital_Level0 OF lut40032 : ENTITY IS TRUE; - - end lut40032; - - architecture Structure of lut40032 is - begin - INST10: ROM16X1A - generic map (initval => X"1F10") - port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); - end Structure; - --- entity SLICE_61 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_61 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_61"; - - tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CE : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - ticd_CLK : VitalDelayType := 0 ns; - tisd_DI0_CLK : VitalDelayType := 0 ns; - tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_CE_CLK : VitalDelayType := 0 ns; - tsetup_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns); - - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; C0: in Std_logic; B0: in Std_logic; - A0: in Std_logic; DI0: in Std_logic; CE: in Std_logic; - CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; - F1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_61 : ENTITY IS TRUE; - - end SLICE_61; - - architecture Structure of SLICE_61 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal D1_ipd : std_logic := 'X'; - signal C1_ipd : std_logic := 'X'; - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal C0_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal DI0_ipd : std_logic := 'X'; - signal DI0_dly : std_logic := 'X'; - signal CE_ipd : std_logic := 'X'; - signal CE_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - - signal GNDI: Std_logic; - signal VCCI: Std_logic; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component lut40021 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component vmuxregsre0031 - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component lut40032 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - nRCS_I_31_3_lut_4_lut: lut40032 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); - nRCS_I_0_448_3_lut: lut40021 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>GNDI, Z=>F0_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - nRCS_396: vmuxregsre0031 - port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>CE_dly, CK=>CLK_dly, - LSR=>GNDI, Q=>Q0_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(D1_ipd, D1, tipd_D1); - VitalWireDelay(C1_ipd, C1, tipd_C1); - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(C0_ipd, C0, tipd_C0); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(DI0_ipd, DI0, tipd_DI0); - VitalWireDelay(CE_ipd, CE, tipd_CE); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); - VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, C0_ipd, B0_ipd, - A0_ipd, DI0_dly, CE_dly, CLK_dly, F0_out, Q0_out, F1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_DI0_CLK : x01 := '0'; - VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CE_CLK : x01 := '0'; - VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => DI0_dly, - TestSignalName => "DI0", - TestDelay => tisd_DI0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_DI0_CLK_noedge_posedge, - SetupLow => tsetup_DI0_CLK_noedge_posedge, - HoldHigh => thold_DI0_CLK_noedge_posedge, - HoldLow => thold_DI0_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => DI0_CLK_TimingDatash, - Violation => tviol_DI0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => CE_dly, - TestSignalName => "CE", - TestDelay => tisd_CE_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_CE_CLK_noedge_posedge, - SetupLow => tsetup_CE_CLK_noedge_posedge, - HoldHigh => thold_CE_CLK_noedge_posedge, - HoldLow => thold_CE_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => CE_CLK_TimingDatash, - Violation => tviol_CE_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - F1_zd := F1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => C0_ipd'last_event, - PathDelay => tpd_C0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 2 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => D1_ipd'last_event, - PathDelay => tpd_D1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => C1_ipd'last_event, - PathDelay => tpd_C1_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 3 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity lut40033 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity lut40033 is - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - - ATTRIBUTE Vital_Level0 OF lut40033 : ENTITY IS TRUE; - - end lut40033; - - architecture Structure of lut40033 is - begin - INST10: ROM16X1A - generic map (initval => X"BFFF") - port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); - end Structure; - --- entity SLICE_62 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_62 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_62"; - - tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CE : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - ticd_CLK : VitalDelayType := 0 ns; - tisd_DI0_CLK : VitalDelayType := 0 ns; - tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_CE_CLK : VitalDelayType := 0 ns; - tsetup_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns); - - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; - B0: in Std_logic; A0: in Std_logic; DI0: in Std_logic; - CE: in Std_logic; CLK: in Std_logic; F0: out Std_logic; - Q0: out Std_logic; F1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_62 : ENTITY IS TRUE; - - end SLICE_62; - - architecture Structure of SLICE_62 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal D1_ipd : std_logic := 'X'; - signal C1_ipd : std_logic := 'X'; - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal D0_ipd : std_logic := 'X'; - signal C0_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal DI0_ipd : std_logic := 'X'; - signal DI0_dly : std_logic := 'X'; - signal CE_ipd : std_logic := 'X'; - signal CE_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - - signal VCCI: Std_logic; - signal GNDI: Std_logic; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component lut40029 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component vmuxregsre0031 - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component lut40033 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - i3_4_lut_adj_2: lut40033 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); - nRCS_N_137_I_0_4_lut: lut40029 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); - nRRAS_397: vmuxregsre0031 - port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>CE_dly, CK=>CLK_dly, - LSR=>GNDI, Q=>Q0_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - DRIVEGND: gnd - port map (PWR0=>GNDI); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(D1_ipd, D1, tipd_D1); - VitalWireDelay(C1_ipd, C1, tipd_C1); - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(D0_ipd, D0, tipd_D0); - VitalWireDelay(C0_ipd, C0, tipd_C0); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(DI0_ipd, DI0, tipd_DI0); - VitalWireDelay(CE_ipd, CE, tipd_CE); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); - VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, - B0_ipd, A0_ipd, DI0_dly, CE_dly, CLK_dly, F0_out, Q0_out, F1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_DI0_CLK : x01 := '0'; - VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CE_CLK : x01 := '0'; - VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => DI0_dly, - TestSignalName => "DI0", - TestDelay => tisd_DI0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_DI0_CLK_noedge_posedge, - SetupLow => tsetup_DI0_CLK_noedge_posedge, - HoldHigh => thold_DI0_CLK_noedge_posedge, - HoldLow => thold_DI0_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => DI0_CLK_TimingDatash, - Violation => tviol_DI0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => CE_dly, - TestSignalName => "CE", - TestDelay => tisd_CE_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_CE_CLK_noedge_posedge, - SetupLow => tsetup_CE_CLK_noedge_posedge, - HoldHigh => thold_CE_CLK_noedge_posedge, - HoldLow => thold_CE_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => CE_CLK_TimingDatash, - Violation => tviol_CE_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - F1_zd := F1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => D0_ipd'last_event, - PathDelay => tpd_D0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => C0_ipd'last_event, - PathDelay => tpd_C0_F0, - PathCondition => TRUE), - 2 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 3 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => D1_ipd'last_event, - PathDelay => tpd_D1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => C1_ipd'last_event, - PathDelay => tpd_C1_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 3 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity lut40034 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity lut40034 is - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - - ATTRIBUTE Vital_Level0 OF lut40034 : ENTITY IS TRUE; - - end lut40034; - - architecture Structure of lut40034 is - begin - INST10: ROM16X1A - generic map (initval => X"EEEE") - port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); - end Structure; - --- entity lut40035 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity lut40035 is - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - - ATTRIBUTE Vital_Level0 OF lut40035 : ENTITY IS TRUE; - - end lut40035; - - architecture Structure of lut40035 is - begin - INST10: ROM16X1A - generic map (initval => X"CFC5") - port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); - end Structure; - --- entity SLICE_64 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_64 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_64"; - - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CE : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - ticd_CLK : VitalDelayType := 0 ns; - tisd_DI0_CLK : VitalDelayType := 0 ns; - tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_CE_CLK : VitalDelayType := 0 ns; - tsetup_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns); - - port (B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; - C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; - DI0: in Std_logic; CE: in Std_logic; CLK: in Std_logic; - F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_64 : ENTITY IS TRUE; - - end SLICE_64; - - architecture Structure of SLICE_64 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal D0_ipd : std_logic := 'X'; - signal C0_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal DI0_ipd : std_logic := 'X'; - signal DI0_dly : std_logic := 'X'; - signal CE_ipd : std_logic := 'X'; - signal CE_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - - signal GNDI: Std_logic; - signal VCCI: Std_logic; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component vmuxregsre0031 - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component lut40034 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component lut40035 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - i1477_2_lut: lut40034 - port map (A=>A1_ipd, B=>B1_ipd, C=>GNDI, D=>GNDI, Z=>F1_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - nRWE_I_0_455_4_lut: lut40035 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); - nRWE_399: vmuxregsre0031 - port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>CE_dly, CK=>CLK_dly, - LSR=>GNDI, Q=>Q0_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(D0_ipd, D0, tipd_D0); - VitalWireDelay(C0_ipd, C0, tipd_C0); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(DI0_ipd, DI0, tipd_DI0); - VitalWireDelay(CE_ipd, CE, tipd_CE); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); - VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (B1_ipd, A1_ipd, D0_ipd, C0_ipd, B0_ipd, A0_ipd, - DI0_dly, CE_dly, CLK_dly, F0_out, Q0_out, F1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_DI0_CLK : x01 := '0'; - VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CE_CLK : x01 := '0'; - VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => DI0_dly, - TestSignalName => "DI0", - TestDelay => tisd_DI0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_DI0_CLK_noedge_posedge, - SetupLow => tsetup_DI0_CLK_noedge_posedge, - HoldHigh => thold_DI0_CLK_noedge_posedge, - HoldLow => thold_DI0_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => DI0_CLK_TimingDatash, - Violation => tviol_DI0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => CE_dly, - TestSignalName => "CE", - TestDelay => tisd_CE_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_CE_CLK_noedge_posedge, - SetupLow => tsetup_CE_CLK_noedge_posedge, - HoldHigh => thold_CE_CLK_noedge_posedge, - HoldLow => thold_CE_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => CE_CLK_TimingDatash, - Violation => tviol_CE_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - F1_zd := F1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => D0_ipd'last_event, - PathDelay => tpd_D0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => C0_ipd'last_event, - PathDelay => tpd_C0_F0, - PathCondition => TRUE), - 2 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 3 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity lut40036 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity lut40036 is - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - - ATTRIBUTE Vital_Level0 OF lut40036 : ENTITY IS TRUE; - - end lut40036; - - architecture Structure of lut40036 is - begin - INST10: ROM16X1A - generic map (initval => X"3032") - port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); - end Structure; - --- entity SLICE_65 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_65 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_65"; - - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CE : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - ticd_CLK : VitalDelayType := 0 ns; - tisd_DI0_CLK : VitalDelayType := 0 ns; - tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_CE_CLK : VitalDelayType := 0 ns; - tsetup_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns); - - port (B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; - C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; - DI0: in Std_logic; CE: in Std_logic; CLK: in Std_logic; - F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_65 : ENTITY IS TRUE; - - end SLICE_65; - - architecture Structure of SLICE_65 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal D0_ipd : std_logic := 'X'; - signal C0_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal DI0_ipd : std_logic := 'X'; - signal DI0_dly : std_logic := 'X'; - signal CE_ipd : std_logic := 'X'; - signal CE_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - - signal GNDI: Std_logic; - signal VCCI: Std_logic; - component vmuxregsre - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component lut40034 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component lut40036 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - i786_2_lut: lut40034 - port map (A=>A1_ipd, B=>B1_ipd, C=>GNDI, D=>GNDI, Z=>F1_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - i1432_4_lut: lut40036 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); - nRowColSel_402: vmuxregsre - port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>CE_dly, CK=>CLK_dly, - LSR=>GNDI, Q=>Q0_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(D0_ipd, D0, tipd_D0); - VitalWireDelay(C0_ipd, C0, tipd_C0); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(DI0_ipd, DI0, tipd_DI0); - VitalWireDelay(CE_ipd, CE, tipd_CE); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); - VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (B1_ipd, A1_ipd, D0_ipd, C0_ipd, B0_ipd, A0_ipd, - DI0_dly, CE_dly, CLK_dly, F0_out, Q0_out, F1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_DI0_CLK : x01 := '0'; - VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CE_CLK : x01 := '0'; - VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => DI0_dly, - TestSignalName => "DI0", - TestDelay => tisd_DI0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_DI0_CLK_noedge_posedge, - SetupLow => tsetup_DI0_CLK_noedge_posedge, - HoldHigh => thold_DI0_CLK_noedge_posedge, - HoldLow => thold_DI0_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => DI0_CLK_TimingDatash, - Violation => tviol_DI0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => CE_dly, - TestSignalName => "CE", - TestDelay => tisd_CE_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_CE_CLK_noedge_posedge, - SetupLow => tsetup_CE_CLK_noedge_posedge, - HoldHigh => thold_CE_CLK_noedge_posedge, - HoldLow => thold_CE_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => CE_CLK_TimingDatash, - Violation => tviol_CE_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - F1_zd := F1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => D0_ipd'last_event, - PathDelay => tpd_D0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => C0_ipd'last_event, - PathDelay => tpd_C0_F0, - PathCondition => TRUE), - 2 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 3 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity lut40037 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity lut40037 is - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - - ATTRIBUTE Vital_Level0 OF lut40037 : ENTITY IS TRUE; - - end lut40037; - - architecture Structure of lut40037 is - begin - INST10: ROM16X1A - generic map (initval => X"BBBB") - port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); - end Structure; - --- entity SLICE_66 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_66 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_66"; - - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_LSR : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - ticd_CLK : VitalDelayType := 0 ns; - tisd_DI0_CLK : VitalDelayType := 0 ns; - tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_LSR_CLK : VitalDelayType := 0 ns; - tsetup_LSR_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_LSR_CLK_noedge_posedge : VitalDelayType := 0 ns; - tperiod_LSR : VitalDelayType := 0 ns; - tpw_LSR_posedge : VitalDelayType := 0 ns; - tpw_LSR_negedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns); - - port (B1: in Std_logic; A1: in Std_logic; B0: in Std_logic; - A0: in Std_logic; DI0: in Std_logic; LSR: in Std_logic; - CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; - F1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_66 : ENTITY IS TRUE; - - end SLICE_66; - - architecture Structure of SLICE_66 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal DI0_ipd : std_logic := 'X'; - signal DI0_dly : std_logic := 'X'; - signal LSR_ipd : std_logic := 'X'; - signal LSR_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - - signal GNDI: Std_logic; - signal VCCI: Std_logic; - signal LSR_NOTIN: Std_logic; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component vmuxregsre0004 - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component inverter - port (I: in Std_logic; Z: out Std_logic); - end component; - component lut40034 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component lut40037 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - i1_2_lut_adj_23: lut40037 - port map (A=>A1_ipd, B=>B1_ipd, C=>GNDI, D=>GNDI, Z=>F1_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - i1439_2_lut: lut40034 - port map (A=>A0_ipd, B=>B0_ipd, C=>GNDI, D=>GNDI, Z=>F0_out); - S_FSM_i4: vmuxregsre0004 - port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, - LSR=>LSR_NOTIN, Q=>Q0_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - LSR_INVERTERIN: inverter - port map (I=>LSR_dly, Z=>LSR_NOTIN); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(DI0_ipd, DI0, tipd_DI0); - VitalWireDelay(LSR_ipd, LSR, tipd_LSR); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); - VitalSignalDelay(LSR_dly, LSR_ipd, tisd_LSR_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (B1_ipd, A1_ipd, B0_ipd, A0_ipd, DI0_dly, LSR_dly, - CLK_dly, F0_out, Q0_out, F1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_DI0_CLK : x01 := '0'; - VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_LSR_CLK : x01 := '0'; - VARIABLE LSR_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_LSR_LSR : x01 := '0'; - VARIABLE periodcheckinfo_LSR : VitalPeriodDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => DI0_dly, - TestSignalName => "DI0", - TestDelay => tisd_DI0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_DI0_CLK_noedge_posedge, - SetupLow => tsetup_DI0_CLK_noedge_posedge, - HoldHigh => thold_DI0_CLK_noedge_posedge, - HoldLow => thold_DI0_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => DI0_CLK_TimingDatash, - Violation => tviol_DI0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => LSR_dly, - TestSignalName => "LSR", - TestDelay => tisd_LSR_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_LSR_CLK_noedge_posedge, - SetupLow => tsetup_LSR_CLK_noedge_posedge, - HoldHigh => thold_LSR_CLK_noedge_posedge, - HoldLow => thold_LSR_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => LSR_CLK_TimingDatash, - Violation => tviol_LSR_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => LSR_ipd, - TestSignalName => "LSR", - Period => tperiod_LSR, - PulseWidthHigh => tpw_LSR_posedge, - PulseWidthLow => tpw_LSR_negedge, - PeriodData => periodcheckinfo_LSR, - Violation => tviol_LSR_LSR, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - F1_zd := F1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity lut40038 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity lut40038 is - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - - ATTRIBUTE Vital_Level0 OF lut40038 : ENTITY IS TRUE; - - end lut40038; - - architecture Structure of lut40038 is - begin - INST10: ROM16X1A - generic map (initval => X"2222") - port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); - end Structure; - --- entity SLICE_67 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_67 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_67"; - - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_LSR : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - ticd_CLK : VitalDelayType := 0 ns; - tisd_DI0_CLK : VitalDelayType := 0 ns; - tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_LSR_CLK : VitalDelayType := 0 ns; - tsetup_LSR_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_LSR_CLK_noedge_posedge : VitalDelayType := 0 ns; - tperiod_LSR : VitalDelayType := 0 ns; - tpw_LSR_posedge : VitalDelayType := 0 ns; - tpw_LSR_negedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns); - - port (B0: in Std_logic; A0: in Std_logic; DI0: in Std_logic; - LSR: in Std_logic; CLK: in Std_logic; F0: out Std_logic; - Q0: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_67 : ENTITY IS TRUE; - - end SLICE_67; - - architecture Structure of SLICE_67 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal DI0_ipd : std_logic := 'X'; - signal DI0_dly : std_logic := 'X'; - signal LSR_ipd : std_logic := 'X'; - signal LSR_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - - signal GNDI: Std_logic; - signal VCCI: Std_logic; - signal LSR_NOTIN: Std_logic; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component vmuxregsre0004 - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component inverter - port (I: in Std_logic; Z: out Std_logic); - end component; - component lut40038 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - i1_2_lut_adj_10: lut40038 - port map (A=>A0_ipd, B=>B0_ipd, C=>GNDI, D=>GNDI, Z=>F0_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - S_FSM_i3: vmuxregsre0004 - port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, - LSR=>LSR_NOTIN, Q=>Q0_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - LSR_INVERTERIN: inverter - port map (I=>LSR_dly, Z=>LSR_NOTIN); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(DI0_ipd, DI0, tipd_DI0); - VitalWireDelay(LSR_ipd, LSR, tipd_LSR); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); - VitalSignalDelay(LSR_dly, LSR_ipd, tisd_LSR_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (B0_ipd, A0_ipd, DI0_dly, LSR_dly, CLK_dly, F0_out, - Q0_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_DI0_CLK : x01 := '0'; - VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_LSR_CLK : x01 := '0'; - VARIABLE LSR_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_LSR_LSR : x01 := '0'; - VARIABLE periodcheckinfo_LSR : VitalPeriodDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => DI0_dly, - TestSignalName => "DI0", - TestDelay => tisd_DI0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_DI0_CLK_noedge_posedge, - SetupLow => tsetup_DI0_CLK_noedge_posedge, - HoldHigh => thold_DI0_CLK_noedge_posedge, - HoldLow => thold_DI0_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => DI0_CLK_TimingDatash, - Violation => tviol_DI0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => LSR_dly, - TestSignalName => "LSR", - TestDelay => tisd_LSR_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_LSR_CLK_noedge_posedge, - SetupLow => tsetup_LSR_CLK_noedge_posedge, - HoldHigh => thold_LSR_CLK_noedge_posedge, - HoldLow => thold_LSR_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => LSR_CLK_TimingDatash, - Violation => tviol_LSR_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => LSR_ipd, - TestSignalName => "LSR", - Period => tperiod_LSR, - PulseWidthHigh => tpw_LSR_posedge, - PulseWidthLow => tpw_LSR_negedge, - PeriodData => periodcheckinfo_LSR, - Violation => tviol_LSR_LSR, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity lut40039 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity lut40039 is - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - - ATTRIBUTE Vital_Level0 OF lut40039 : ENTITY IS TRUE; - - end lut40039; - - architecture Structure of lut40039 is - begin - INST10: ROM16X1A - generic map (initval => X"8888") - port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); - end Structure; - --- entity SLICE_68 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_68 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_68"; - - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_LSR : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - ticd_CLK : VitalDelayType := 0 ns; - tisd_M0_CLK : VitalDelayType := 0 ns; - tsetup_M0_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_M0_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_LSR_CLK : VitalDelayType := 0 ns; - tsetup_LSR_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_LSR_CLK_noedge_posedge : VitalDelayType := 0 ns; - tperiod_LSR : VitalDelayType := 0 ns; - tpw_LSR_posedge : VitalDelayType := 0 ns; - tpw_LSR_negedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns); - - port (B1: in Std_logic; A1: in Std_logic; B0: in Std_logic; - A0: in Std_logic; M0: in Std_logic; LSR: in Std_logic; - CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; - F1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_68 : ENTITY IS TRUE; - - end SLICE_68; - - architecture Structure of SLICE_68 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal M0_ipd : std_logic := 'X'; - signal M0_dly : std_logic := 'X'; - signal LSR_ipd : std_logic := 'X'; - signal LSR_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - - signal GNDI: Std_logic; - signal VCCI: Std_logic; - signal LSR_NOTIN: Std_logic; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component vmuxregsre0004 - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component inverter - port (I: in Std_logic; Z: out Std_logic); - end component; - component lut40034 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component lut40039 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - i4_2_lut: lut40034 - port map (A=>A1_ipd, B=>B1_ipd, C=>GNDI, D=>GNDI, Z=>F1_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - i1989_2_lut: lut40039 - port map (A=>A0_ipd, B=>B0_ipd, C=>GNDI, D=>GNDI, Z=>F0_out); - S_FSM_i2: vmuxregsre0004 - port map (D0=>M0_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_dly, - LSR=>LSR_NOTIN, Q=>Q0_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - LSR_INVERTERIN: inverter - port map (I=>LSR_dly, Z=>LSR_NOTIN); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(M0_ipd, M0, tipd_M0); - VitalWireDelay(LSR_ipd, LSR, tipd_LSR); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(M0_dly, M0_ipd, tisd_M0_CLK); - VitalSignalDelay(LSR_dly, LSR_ipd, tisd_LSR_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (B1_ipd, A1_ipd, B0_ipd, A0_ipd, M0_dly, LSR_dly, - CLK_dly, F0_out, Q0_out, F1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_M0_CLK : x01 := '0'; - VARIABLE M0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_LSR_CLK : x01 := '0'; - VARIABLE LSR_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_LSR_LSR : x01 := '0'; - VARIABLE periodcheckinfo_LSR : VitalPeriodDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => M0_dly, - TestSignalName => "M0", - TestDelay => tisd_M0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M0_CLK_noedge_posedge, - SetupLow => tsetup_M0_CLK_noedge_posedge, - HoldHigh => thold_M0_CLK_noedge_posedge, - HoldLow => thold_M0_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M0_CLK_TimingDatash, - Violation => tviol_M0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => LSR_dly, - TestSignalName => "LSR", - TestDelay => tisd_LSR_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_LSR_CLK_noedge_posedge, - SetupLow => tsetup_LSR_CLK_noedge_posedge, - HoldHigh => thold_LSR_CLK_noedge_posedge, - HoldLow => thold_LSR_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => LSR_CLK_TimingDatash, - Violation => tviol_LSR_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => LSR_ipd, - TestSignalName => "LSR", - Period => tperiod_LSR, - PulseWidthHigh => tpw_LSR_posedge, - PulseWidthLow => tpw_LSR_negedge, - PeriodData => periodcheckinfo_LSR, - Violation => tviol_LSR_LSR, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - F1_zd := F1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity SLICE_69 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_69 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_69"; + InstancePath : string := "SLICE_14"; tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); @@ -9921,11 +3170,11 @@ F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic; Q1: out Std_logic); - ATTRIBUTE Vital_Level0 OF SLICE_69 : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF SLICE_14 : ENTITY IS TRUE; - end SLICE_69; + end SLICE_14; - architecture Structure of SLICE_69 is + architecture Structure of SLICE_14 is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; signal B1_ipd : std_logic := 'X'; @@ -9955,27 +3204,27 @@ component gnd port (PWR0: out Std_logic); end component; - component lut40008 + component lut40006 port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; Z: out Std_logic); end component; - component lut40034 + component lut40007 port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; Z: out Std_logic); end component; begin - i1491_2_lut_rep_30: lut40034 + nCCAS_pad_RNI01SJ: lut40006 port map (A=>A1_ipd, B=>B1_ipd, C=>GNDI, D=>GNDI, Z=>F1_out); DRIVEGND: gnd port map (PWR0=>GNDI); - RASr2_I_0_1_lut_rep_25: lut40008 + nCCAS_pad_RNISUR8: lut40007 port map (A=>A0_ipd, B=>GNDI, C=>GNDI, D=>GNDI, Z=>F0_out); - PHI2r3_378: vmuxregsre + CASr2: vmuxregsre port map (D0=>M1_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_dly, LSR=>GNDI, Q=>Q1_out); DRIVEVCC: vcc port map (PWR1=>VCCI); - S_FSM_i1: vmuxregsre + CASr: vmuxregsre port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, LSR=>GNDI, Q=>Q0_out); @@ -10111,61 +3360,5979 @@ end Structure; --- entity lut40040 +-- entity lut40008 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity lut40040 is + entity lut40008 is port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; Z: out Std_logic); - ATTRIBUTE Vital_Level0 OF lut40040 : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF lut40008 : ENTITY IS TRUE; - end lut40040; + end lut40008; - architecture Structure of lut40040 is + architecture Structure of lut40008 is begin INST10: ROM16X1A - generic map (initval => X"FFFE") + generic map (initval => X"0800") port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); end Structure; --- entity lut40041 +-- entity lut40009 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity lut40041 is + entity lut40009 is port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; Z: out Std_logic); - ATTRIBUTE Vital_Level0 OF lut40041 : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF lut40009 : ENTITY IS TRUE; - end lut40041; + end lut40009; - architecture Structure of lut40041 is + architecture Structure of lut40009 is begin INST10: ROM16X1A - generic map (initval => X"3FBB") + generic map (initval => X"DDDD") port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); end Structure; --- entity SLICE_70 +-- entity vmuxregsre0010 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity SLICE_70 is + entity vmuxregsre0010 is + port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; + SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; + Q: out Std_logic); + + ATTRIBUTE Vital_Level0 OF vmuxregsre0010 : ENTITY IS TRUE; + + end vmuxregsre0010; + + architecture Structure of vmuxregsre0010 is + begin + INST01: FL1P3IY + generic map (GSR => "DISABLED") + port map (D0=>D0, D1=>D1, SP=>SP, CK=>CK, SD=>SD, CD=>LSR, Q=>Q); + end Structure; + +-- entity SLICE_17 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_17 is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_70"; + InstancePath : string := "SLICE_17"; + + tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_LSR : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI0_CLK : VitalDelayType := 0 ns; + tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; + tisd_LSR_CLK : VitalDelayType := 0 ns; + tsetup_LSR_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_LSR_CLK_noedge_posedge : VitalDelayType := 0 ns; + tperiod_LSR : VitalDelayType := 0 ns; + tpw_LSR_posedge : VitalDelayType := 0 ns; + tpw_LSR_negedge : VitalDelayType := 0 ns; + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns); + + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; B0: in Std_logic; A0: in Std_logic; + DI0: in Std_logic; LSR: in Std_logic; CLK: in Std_logic; + F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_17 : ENTITY IS TRUE; + + end SLICE_17; + + architecture Structure of SLICE_17 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal D1_ipd : std_logic := 'X'; + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal DI0_ipd : std_logic := 'X'; + signal DI0_dly : std_logic := 'X'; + signal LSR_ipd : std_logic := 'X'; + signal LSR_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal Q0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + signal VCCI: Std_logic; + signal LSR_NOTIN: Std_logic; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component inverter + port (I: in Std_logic; Z: out Std_logic); + end component; + component lut40008 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40009 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component vmuxregsre0010 + port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; + SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; + Q: out Std_logic); + end component; + begin + Ready_0_sqmuxa_0_a3_2: lut40008 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); + S_RNO_0: lut40009 + port map (A=>A0_ipd, B=>B0_ipd, C=>GNDI, D=>GNDI, Z=>F0_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + S_0: vmuxregsre0010 + port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, + LSR=>LSR_NOTIN, Q=>Q0_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + LSR_INVERTERIN: inverter + port map (I=>LSR_dly, Z=>LSR_NOTIN); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(D1_ipd, D1, tipd_D1); + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + VitalWireDelay(DI0_ipd, DI0, tipd_DI0); + VitalWireDelay(LSR_ipd, LSR, tipd_LSR); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); + VitalSignalDelay(LSR_dly, LSR_ipd, tisd_LSR_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, B0_ipd, A0_ipd, + DI0_dly, LSR_dly, CLK_dly, F0_out, Q0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE Q0_zd : std_logic := 'X'; + VARIABLE Q0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_DI0_CLK : x01 := '0'; + VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_LSR_CLK : x01 := '0'; + VARIABLE LSR_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_LSR_LSR : x01 := '0'; + VARIABLE periodcheckinfo_LSR : VitalPeriodDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI0_dly, + TestSignalName => "DI0", + TestDelay => tisd_DI0_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI0_CLK_noedge_posedge, + SetupLow => tsetup_DI0_CLK_noedge_posedge, + HoldHigh => thold_DI0_CLK_noedge_posedge, + HoldLow => thold_DI0_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI0_CLK_TimingDatash, + Violation => tviol_DI0_CLK, + MsgSeverity => warning); + VitalSetupHoldCheck ( + TestSignal => LSR_dly, + TestSignalName => "LSR", + TestDelay => tisd_LSR_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_LSR_CLK_noedge_posedge, + SetupLow => tsetup_LSR_CLK_noedge_posedge, + HoldHigh => thold_LSR_CLK_noedge_posedge, + HoldLow => thold_LSR_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => LSR_CLK_TimingDatash, + Violation => tviol_LSR_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => LSR_ipd, + TestSignalName => "LSR", + Period => tperiod_LSR, + PulseWidthHigh => tpw_LSR_posedge, + PulseWidthLow => tpw_LSR_negedge, + PeriodData => periodcheckinfo_LSR, + Violation => tviol_LSR_LSR, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + F0_zd := F0_out; + Q0_zd := Q0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q0, + PathCondition => TRUE)), + GlitchData => Q0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => D1_ipd'last_event, + PathDelay => tpd_D1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 3 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity lut40011 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40011 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40011 : ENTITY IS TRUE; + + end lut40011; + + architecture Structure of lut40011 is + begin + INST10: ROM16X1A + generic map (initval => X"EEEE") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity lut40012 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40012 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40012 : ENTITY IS TRUE; + + end lut40012; + + architecture Structure of lut40012 is + begin + INST10: ROM16X1A + generic map (initval => X"AC8C") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity selmux2 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity selmux2 is + port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF selmux2 : ENTITY IS TRUE; + + end selmux2; + + architecture Structure of selmux2 is + begin + INST1: MUX21 + port map (D0=>D0, D1=>D1, SD=>SD, Z=>Z); + end Structure; + +-- entity SLICE_18 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_18 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_18"; + + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_M0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_OFX0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_OFX0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_D0_OFX0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_OFX0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_OFX0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_OFX0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_M0_OFX0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns; + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI0_CLK : VitalDelayType := 0 ns; + tsetup_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns); + + port (B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; + C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; + DI0: in Std_logic; M0: in Std_logic; CLK: in Std_logic; + OFX0: out Std_logic; Q0: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_18 : ENTITY IS TRUE; + + end SLICE_18; + + architecture Structure of SLICE_18 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal D0_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal DI0_ipd : std_logic := 'X'; + signal DI0_dly : std_logic := 'X'; + signal M0_ipd : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal OFX0_out : std_logic := 'X'; + signal Q0_out : std_logic := 'X'; + + signal GNDI: Std_logic; + signal SLICE_18_SLICE_18_K1_H1: Std_logic; + signal SLICE_18_CmdEnable_s_GATE_H0: Std_logic; + signal VCCI: Std_logic; + signal CLK_NOTIN: Std_logic; + component vmuxregsre + port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; + SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; + Q: out Std_logic); + end component; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component inverter + port (I: in Std_logic; Z: out Std_logic); + end component; + component lut40011 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40012 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component selmux2 + port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; + Z: out Std_logic); + end component; + begin + SLICE_18_K1: lut40011 + port map (A=>A1_ipd, B=>B1_ipd, C=>GNDI, D=>GNDI, + Z=>SLICE_18_SLICE_18_K1_H1); + DRIVEGND: gnd + port map (PWR0=>GNDI); + CmdEnable_s_GATE: lut40012 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, + Z=>SLICE_18_CmdEnable_s_GATE_H0); + CmdEnable: vmuxregsre + port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_NOTIN, + LSR=>GNDI, Q=>Q0_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + CLK_INVERTERIN: inverter + port map (I=>CLK_dly, Z=>CLK_NOTIN); + SLICE_18_K0K1MUX: selmux2 + port map (D0=>SLICE_18_CmdEnable_s_GATE_H0, D1=>SLICE_18_SLICE_18_K1_H1, + SD=>M0_ipd, Z=>OFX0_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(D0_ipd, D0, tipd_D0); + VitalWireDelay(C0_ipd, C0, tipd_C0); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + VitalWireDelay(DI0_ipd, DI0, tipd_DI0); + VitalWireDelay(M0_ipd, M0, tipd_M0); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (B1_ipd, A1_ipd, D0_ipd, C0_ipd, B0_ipd, A0_ipd, + DI0_dly, M0_ipd, CLK_dly, OFX0_out, Q0_out) + VARIABLE OFX0_zd : std_logic := 'X'; + VARIABLE OFX0_GlitchData : VitalGlitchDataType; + VARIABLE Q0_zd : std_logic := 'X'; + VARIABLE Q0_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_DI0_CLK : x01 := '0'; + VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI0_dly, + TestSignalName => "DI0", + TestDelay => tisd_DI0_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI0_CLK_noedge_negedge, + SetupLow => tsetup_DI0_CLK_noedge_negedge, + HoldHigh => thold_DI0_CLK_noedge_negedge, + HoldLow => thold_DI0_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI0_CLK_TimingDatash, + Violation => tviol_DI0_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + OFX0_zd := OFX0_out; + Q0_zd := Q0_out; + + VitalPathDelay01 ( + OutSignal => OFX0, OutSignalName => "OFX0", OutTemp => OFX0_zd, + Paths => (0 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_OFX0, + PathCondition => TRUE), + 1 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_OFX0, + PathCondition => TRUE), + 2 => (InputChangeTime => D0_ipd'last_event, + PathDelay => tpd_D0_OFX0, + PathCondition => TRUE), + 3 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_OFX0, + PathCondition => TRUE), + 4 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_OFX0, + PathCondition => TRUE), + 5 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_OFX0, + PathCondition => TRUE), + 6 => (InputChangeTime => M0_ipd'last_event, + PathDelay => tpd_M0_OFX0, + PathCondition => TRUE)), + GlitchData => OFX0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q0, + PathCondition => TRUE)), + GlitchData => Q0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity lut40013 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40013 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40013 : ENTITY IS TRUE; + + end lut40013; + + architecture Structure of lut40013 is + begin + INST10: ROM16X1A + generic map (initval => X"0101") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity lut40014 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40014 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40014 : ENTITY IS TRUE; + + end lut40014; + + architecture Structure of lut40014 is + begin + INST10: ROM16X1A + generic map (initval => X"0203") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity SLICE_19 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_19 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_19"; + + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_CE : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns; + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI0_CLK : VitalDelayType := 0 ns; + tsetup_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns; + tisd_CE_CLK : VitalDelayType := 0 ns; + tsetup_CE_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_CE_CLK_noedge_negedge : VitalDelayType := 0 ns); + + port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; + D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; DI0: in Std_logic; CE: in Std_logic; + CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; + F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_19 : ENTITY IS TRUE; + + end SLICE_19; + + architecture Structure of SLICE_19 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal D0_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal DI0_ipd : std_logic := 'X'; + signal DI0_dly : std_logic := 'X'; + signal CE_ipd : std_logic := 'X'; + signal CE_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal Q0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + signal VCCI: Std_logic; + signal CLK_NOTIN: Std_logic; + component vmuxregsre + port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; + SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; + Q: out Std_logic); + end component; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component inverter + port (I: in Std_logic; Z: out Std_logic); + end component; + component lut40013 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40014 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + CmdLEDEN_4_u_i_a2_0: lut40013 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>GNDI, Z=>F1_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + CmdLEDEN_RNO: lut40014 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); + CmdLEDEN: vmuxregsre + port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>CE_dly, CK=>CLK_NOTIN, + LSR=>GNDI, Q=>Q0_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + CLK_INVERTERIN: inverter + port map (I=>CLK_dly, Z=>CLK_NOTIN); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(D0_ipd, D0, tipd_D0); + VitalWireDelay(C0_ipd, C0, tipd_C0); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + VitalWireDelay(DI0_ipd, DI0, tipd_DI0); + VitalWireDelay(CE_ipd, CE, tipd_CE); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); + VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, B0_ipd, + A0_ipd, DI0_dly, CE_dly, CLK_dly, F0_out, Q0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE Q0_zd : std_logic := 'X'; + VARIABLE Q0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_DI0_CLK : x01 := '0'; + VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CE_CLK : x01 := '0'; + VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI0_dly, + TestSignalName => "DI0", + TestDelay => tisd_DI0_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI0_CLK_noedge_negedge, + SetupLow => tsetup_DI0_CLK_noedge_negedge, + HoldHigh => thold_DI0_CLK_noedge_negedge, + HoldLow => thold_DI0_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI0_CLK_TimingDatash, + Violation => tviol_DI0_CLK, + MsgSeverity => warning); + VitalSetupHoldCheck ( + TestSignal => CE_dly, + TestSignalName => "CE", + TestDelay => tisd_CE_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_CE_CLK_noedge_negedge, + SetupLow => tsetup_CE_CLK_noedge_negedge, + HoldHigh => thold_CE_CLK_noedge_negedge, + HoldLow => thold_CE_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => CE_CLK_TimingDatash, + Violation => tviol_CE_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + F0_zd := F0_out; + Q0_zd := Q0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => D0_ipd'last_event, + PathDelay => tpd_D0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 3 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q0, + PathCondition => TRUE)), + GlitchData => Q0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity lut40015 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40015 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40015 : ENTITY IS TRUE; + + end lut40015; + + architecture Structure of lut40015 is + begin + INST10: ROM16X1A + generic map (initval => X"2000") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity SLICE_20 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_20 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_20"; + + tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns; + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI0_CLK : VitalDelayType := 0 ns; + tsetup_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns); + + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; B0: in Std_logic; A0: in Std_logic; + DI0: in Std_logic; CLK: in Std_logic; F0: out Std_logic; + Q0: out Std_logic; F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_20 : ENTITY IS TRUE; + + end SLICE_20; + + architecture Structure of SLICE_20 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal D1_ipd : std_logic := 'X'; + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal DI0_ipd : std_logic := 'X'; + signal DI0_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal Q0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + signal VCCI: Std_logic; + signal CLK_NOTIN: Std_logic; + component vmuxregsre + port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; + SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; + Q: out Std_logic); + end component; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component inverter + port (I: in Std_logic; Z: out Std_logic); + end component; + component lut40006 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40015 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + CmdUFMCLK_1_sqmuxa_0_a2: lut40015 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); + CmdSubmitted_RNO: lut40006 + port map (A=>A0_ipd, B=>B0_ipd, C=>GNDI, D=>GNDI, Z=>F0_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + CmdSubmitted: vmuxregsre + port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_NOTIN, + LSR=>GNDI, Q=>Q0_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + CLK_INVERTERIN: inverter + port map (I=>CLK_dly, Z=>CLK_NOTIN); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(D1_ipd, D1, tipd_D1); + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + VitalWireDelay(DI0_ipd, DI0, tipd_DI0); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, B0_ipd, A0_ipd, + DI0_dly, CLK_dly, F0_out, Q0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE Q0_zd : std_logic := 'X'; + VARIABLE Q0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_DI0_CLK : x01 := '0'; + VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI0_dly, + TestSignalName => "DI0", + TestDelay => tisd_DI0_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI0_CLK_noedge_negedge, + SetupLow => tsetup_DI0_CLK_noedge_negedge, + HoldHigh => thold_DI0_CLK_noedge_negedge, + HoldLow => thold_DI0_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI0_CLK_TimingDatash, + Violation => tviol_DI0_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + F0_zd := F0_out; + Q0_zd := Q0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q0, + PathCondition => TRUE)), + GlitchData => Q0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => D1_ipd'last_event, + PathDelay => tpd_D1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 3 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity lut40016 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40016 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40016 : ENTITY IS TRUE; + + end lut40016; + + architecture Structure of lut40016 is + begin + INST10: ROM16X1A + generic map (initval => X"0808") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity lut40017 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40017 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40017 : ENTITY IS TRUE; + + end lut40017; + + architecture Structure of lut40017 is + begin + INST10: ROM16X1A + generic map (initval => X"5151") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity SLICE_21 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_21 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_21"; + + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_CE : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns; + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI0_CLK : VitalDelayType := 0 ns; + tsetup_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns; + tisd_CE_CLK : VitalDelayType := 0 ns; + tsetup_CE_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_CE_CLK_noedge_negedge : VitalDelayType := 0 ns); + + port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; + C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; + DI0: in Std_logic; CE: in Std_logic; CLK: in Std_logic; + F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_21 : ENTITY IS TRUE; + + end SLICE_21; + + architecture Structure of SLICE_21 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal DI0_ipd : std_logic := 'X'; + signal DI0_dly : std_logic := 'X'; + signal CE_ipd : std_logic := 'X'; + signal CE_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal Q0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + signal VCCI: Std_logic; + signal CLK_NOTIN: Std_logic; + component vmuxregsre + port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; + SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; + Q: out Std_logic); + end component; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component inverter + port (I: in Std_logic; Z: out Std_logic); + end component; + component lut40016 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40017 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + Cmdn8MEGEN_4_u_i_a2_2: lut40016 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>GNDI, Z=>F1_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + Cmdn8MEGEN_RNO: lut40017 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>GNDI, Z=>F0_out); + Cmdn8MEGEN: vmuxregsre + port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>CE_dly, CK=>CLK_NOTIN, + LSR=>GNDI, Q=>Q0_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + CLK_INVERTERIN: inverter + port map (I=>CLK_dly, Z=>CLK_NOTIN); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(C0_ipd, C0, tipd_C0); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + VitalWireDelay(DI0_ipd, DI0, tipd_DI0); + VitalWireDelay(CE_ipd, CE, tipd_CE); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); + VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (C1_ipd, B1_ipd, A1_ipd, C0_ipd, B0_ipd, A0_ipd, + DI0_dly, CE_dly, CLK_dly, F0_out, Q0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE Q0_zd : std_logic := 'X'; + VARIABLE Q0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_DI0_CLK : x01 := '0'; + VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CE_CLK : x01 := '0'; + VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI0_dly, + TestSignalName => "DI0", + TestDelay => tisd_DI0_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI0_CLK_noedge_negedge, + SetupLow => tsetup_DI0_CLK_noedge_negedge, + HoldHigh => thold_DI0_CLK_noedge_negedge, + HoldLow => thold_DI0_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI0_CLK_TimingDatash, + Violation => tviol_DI0_CLK, + MsgSeverity => warning); + VitalSetupHoldCheck ( + TestSignal => CE_dly, + TestSignalName => "CE", + TestDelay => tisd_CE_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_CE_CLK_noedge_negedge, + SetupLow => tsetup_CE_CLK_noedge_negedge, + HoldHigh => thold_CE_CLK_noedge_negedge, + HoldLow => thold_CE_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => CE_CLK_TimingDatash, + Violation => tviol_CE_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + F0_zd := F0_out; + Q0_zd := Q0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q0, + PathCondition => TRUE)), + GlitchData => Q0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity lut40018 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40018 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40018 : ENTITY IS TRUE; + + end lut40018; + + architecture Structure of lut40018 is + begin + INST10: ROM16X1A + generic map (initval => X"0008") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity SLICE_22 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_22 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_22"; + + tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns; + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI0_CLK : VitalDelayType := 0 ns; + tsetup_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns); + + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; A0: in Std_logic; DI0: in Std_logic; + CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; + F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_22 : ENTITY IS TRUE; + + end SLICE_22; + + architecture Structure of SLICE_22 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal D1_ipd : std_logic := 'X'; + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal DI0_ipd : std_logic := 'X'; + signal DI0_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal Q0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + signal VCCI: Std_logic; + signal CLK_NOTIN: Std_logic; + component vmuxregsre + port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; + SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; + Q: out Std_logic); + end component; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component inverter + port (I: in Std_logic; Z: out Std_logic); + end component; + component lut40007 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40018 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + CMDWR_2: lut40018 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); + FWEr_RNO: lut40007 + port map (A=>A0_ipd, B=>GNDI, C=>GNDI, D=>GNDI, Z=>F0_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + FWEr: vmuxregsre + port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_NOTIN, + LSR=>GNDI, Q=>Q0_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + CLK_INVERTERIN: inverter + port map (I=>CLK_dly, Z=>CLK_NOTIN); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(D1_ipd, D1, tipd_D1); + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(A0_ipd, A0, tipd_A0); + VitalWireDelay(DI0_ipd, DI0, tipd_DI0); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, A0_ipd, DI0_dly, + CLK_dly, F0_out, Q0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE Q0_zd : std_logic := 'X'; + VARIABLE Q0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_DI0_CLK : x01 := '0'; + VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI0_dly, + TestSignalName => "DI0", + TestDelay => tisd_DI0_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI0_CLK_noedge_negedge, + SetupLow => tsetup_DI0_CLK_noedge_negedge, + HoldHigh => thold_DI0_CLK_noedge_negedge, + HoldLow => thold_DI0_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI0_CLK_TimingDatash, + Violation => tviol_DI0_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + F0_zd := F0_out; + Q0_zd := Q0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q0, + PathCondition => TRUE)), + GlitchData => Q0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => D1_ipd'last_event, + PathDelay => tpd_D1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 3 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity lut40019 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40019 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40019 : ENTITY IS TRUE; + + end lut40019; + + architecture Structure of lut40019 is + begin + INST10: ROM16X1A + generic map (initval => X"FFF7") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity lut40020 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40020 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40020 : ENTITY IS TRUE; + + end lut40020; + + architecture Structure of lut40020 is + begin + INST10: ROM16X1A + generic map (initval => X"A9A9") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity SLICE_23 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_23 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_23"; + + tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI0_CLK : VitalDelayType := 0 ns; + tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns); + + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; DI0: in Std_logic; CLK: in Std_logic; + F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_23 : ENTITY IS TRUE; + + end SLICE_23; + + architecture Structure of SLICE_23 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal D1_ipd : std_logic := 'X'; + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal DI0_ipd : std_logic := 'X'; + signal DI0_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal Q0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + signal VCCI: Std_logic; + component vmuxregsre + port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; + SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; + Q: out Std_logic); + end component; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component lut40019 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40020 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + RA10_0io_RNO: lut40019 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); + IS_RNO_0: lut40020 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>GNDI, Z=>F0_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + IS_0: vmuxregsre + port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, + LSR=>GNDI, Q=>Q0_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(D1_ipd, D1, tipd_D1); + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(C0_ipd, C0, tipd_C0); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + VitalWireDelay(DI0_ipd, DI0, tipd_DI0); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, C0_ipd, B0_ipd, + A0_ipd, DI0_dly, CLK_dly, F0_out, Q0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE Q0_zd : std_logic := 'X'; + VARIABLE Q0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_DI0_CLK : x01 := '0'; + VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI0_dly, + TestSignalName => "DI0", + TestDelay => tisd_DI0_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI0_CLK_noedge_posedge, + SetupLow => tsetup_DI0_CLK_noedge_posedge, + HoldHigh => thold_DI0_CLK_noedge_posedge, + HoldLow => thold_DI0_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI0_CLK_TimingDatash, + Violation => tviol_DI0_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + F0_zd := F0_out; + Q0_zd := Q0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q0, + PathCondition => TRUE)), + GlitchData => Q0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => D1_ipd'last_event, + PathDelay => tpd_D1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 3 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity lut40021 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40021 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40021 : ENTITY IS TRUE; + + end lut40021; + + architecture Structure of lut40021 is + begin + INST10: ROM16X1A + generic map (initval => X"7878") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity lut40022 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40022 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40022 : ENTITY IS TRUE; + + end lut40022; + + architecture Structure of lut40022 is + begin + INST10: ROM16X1A + generic map (initval => X"6666") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity SLICE_24 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_24 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_24"; + + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_DI1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_CE : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI1_CLK : VitalDelayType := 0 ns; + tsetup_DI1_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_DI1_CLK_noedge_posedge : VitalDelayType := 0 ns; + tisd_DI0_CLK : VitalDelayType := 0 ns; + tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; + tisd_CE_CLK : VitalDelayType := 0 ns; + tsetup_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns); + + port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; + B0: in Std_logic; A0: in Std_logic; DI1: in Std_logic; + DI0: in Std_logic; CE: in Std_logic; CLK: in Std_logic; + F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic; + Q1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_24 : ENTITY IS TRUE; + + end SLICE_24; + + architecture Structure of SLICE_24 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal DI1_ipd : std_logic := 'X'; + signal DI1_dly : std_logic := 'X'; + signal DI0_ipd : std_logic := 'X'; + signal DI0_dly : std_logic := 'X'; + signal CE_ipd : std_logic := 'X'; + signal CE_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal Q0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + signal Q1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + signal VCCI: Std_logic; + component vmuxregsre + port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; + SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; + Q: out Std_logic); + end component; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component lut40021 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40022 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + IS_RNO_2: lut40021 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>GNDI, Z=>F1_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + IS_n1_0_x2: lut40022 + port map (A=>A0_ipd, B=>B0_ipd, C=>GNDI, D=>GNDI, Z=>F0_out); + IS_2: vmuxregsre + port map (D0=>VCCI, D1=>DI1_dly, SD=>VCCI, SP=>CE_dly, CK=>CLK_dly, + LSR=>GNDI, Q=>Q1_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + IS_1: vmuxregsre + port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>CE_dly, CK=>CLK_dly, + LSR=>GNDI, Q=>Q0_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + VitalWireDelay(DI1_ipd, DI1, tipd_DI1); + VitalWireDelay(DI0_ipd, DI0, tipd_DI0); + VitalWireDelay(CE_ipd, CE, tipd_CE); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI1_dly, DI1_ipd, tisd_DI1_CLK); + VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); + VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (C1_ipd, B1_ipd, A1_ipd, B0_ipd, A0_ipd, DI1_dly, + DI0_dly, CE_dly, CLK_dly, F0_out, Q0_out, F1_out, Q1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE Q0_zd : std_logic := 'X'; + VARIABLE Q0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + VARIABLE Q1_zd : std_logic := 'X'; + VARIABLE Q1_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_DI1_CLK : x01 := '0'; + VARIABLE DI1_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_DI0_CLK : x01 := '0'; + VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CE_CLK : x01 := '0'; + VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI1_dly, + TestSignalName => "DI1", + TestDelay => tisd_DI1_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI1_CLK_noedge_posedge, + SetupLow => tsetup_DI1_CLK_noedge_posedge, + HoldHigh => thold_DI1_CLK_noedge_posedge, + HoldLow => thold_DI1_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI1_CLK_TimingDatash, + Violation => tviol_DI1_CLK, + MsgSeverity => warning); + VitalSetupHoldCheck ( + TestSignal => DI0_dly, + TestSignalName => "DI0", + TestDelay => tisd_DI0_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI0_CLK_noedge_posedge, + SetupLow => tsetup_DI0_CLK_noedge_posedge, + HoldHigh => thold_DI0_CLK_noedge_posedge, + HoldLow => thold_DI0_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI0_CLK_TimingDatash, + Violation => tviol_DI0_CLK, + MsgSeverity => warning); + VitalSetupHoldCheck ( + TestSignal => CE_dly, + TestSignalName => "CE", + TestDelay => tisd_CE_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_CE_CLK_noedge_posedge, + SetupLow => tsetup_CE_CLK_noedge_posedge, + HoldHigh => thold_CE_CLK_noedge_posedge, + HoldLow => thold_CE_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => CE_CLK_TimingDatash, + Violation => tviol_CE_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + F0_zd := F0_out; + Q0_zd := Q0_out; + F1_zd := F1_out; + Q1_zd := Q1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q0, + PathCondition => TRUE)), + GlitchData => Q0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q1, + PathCondition => TRUE)), + GlitchData => Q1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity lut40023 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40023 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40023 : ENTITY IS TRUE; + + end lut40023; + + architecture Structure of lut40023 is + begin + INST10: ROM16X1A + generic map (initval => X"6AAA") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity SLICE_25 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_25 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_25"; + + tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_CE : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI0_CLK : VitalDelayType := 0 ns; + tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; + tisd_CE_CLK : VitalDelayType := 0 ns; + tsetup_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns); + + port (D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; DI0: in Std_logic; CE: in Std_logic; + CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_25 : ENTITY IS TRUE; + + end SLICE_25; + + architecture Structure of SLICE_25 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal D0_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal DI0_ipd : std_logic := 'X'; + signal DI0_dly : std_logic := 'X'; + signal CE_ipd : std_logic := 'X'; + signal CE_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal Q0_out : std_logic := 'X'; + + signal VCCI: Std_logic; + signal GNDI: Std_logic; + component vmuxregsre + port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; + SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; + Q: out Std_logic); + end component; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component lut40023 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + IS_RNO_3: lut40023 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); + IS_3: vmuxregsre + port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>CE_dly, CK=>CLK_dly, + LSR=>GNDI, Q=>Q0_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + DRIVEGND: gnd + port map (PWR0=>GNDI); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(D0_ipd, D0, tipd_D0); + VitalWireDelay(C0_ipd, C0, tipd_C0); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + VitalWireDelay(DI0_ipd, DI0, tipd_DI0); + VitalWireDelay(CE_ipd, CE, tipd_CE); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); + VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (D0_ipd, C0_ipd, B0_ipd, A0_ipd, DI0_dly, CE_dly, + CLK_dly, F0_out, Q0_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE Q0_zd : std_logic := 'X'; + VARIABLE Q0_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_DI0_CLK : x01 := '0'; + VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CE_CLK : x01 := '0'; + VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI0_dly, + TestSignalName => "DI0", + TestDelay => tisd_DI0_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI0_CLK_noedge_posedge, + SetupLow => tsetup_DI0_CLK_noedge_posedge, + HoldHigh => thold_DI0_CLK_noedge_posedge, + HoldLow => thold_DI0_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI0_CLK_TimingDatash, + Violation => tviol_DI0_CLK, + MsgSeverity => warning); + VitalSetupHoldCheck ( + TestSignal => CE_dly, + TestSignalName => "CE", + TestDelay => tisd_CE_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_CE_CLK_noedge_posedge, + SetupLow => tsetup_CE_CLK_noedge_posedge, + HoldHigh => thold_CE_CLK_noedge_posedge, + HoldLow => thold_CE_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => CE_CLK_TimingDatash, + Violation => tviol_CE_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + F0_zd := F0_out; + Q0_zd := Q0_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => D0_ipd'last_event, + PathDelay => tpd_D0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 3 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q0, + PathCondition => TRUE)), + GlitchData => Q0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity SLICE_26 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_26 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_26"; + + tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI0_CLK : VitalDelayType := 0 ns; + tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns); + + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; B0: in Std_logic; A0: in Std_logic; + DI0: in Std_logic; CLK: in Std_logic; F0: out Std_logic; + Q0: out Std_logic; F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_26 : ENTITY IS TRUE; + + end SLICE_26; + + architecture Structure of SLICE_26 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal D1_ipd : std_logic := 'X'; + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal DI0_ipd : std_logic := 'X'; + signal DI0_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal Q0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + signal VCCI: Std_logic; + component vmuxregsre + port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; + SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; + Q: out Std_logic); + end component; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component lut40004 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40006 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + InitReady3_0_a2: lut40004 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); + InitReady_RNO: lut40006 + port map (A=>A0_ipd, B=>B0_ipd, C=>GNDI, D=>GNDI, Z=>F0_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + InitReady: vmuxregsre + port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, + LSR=>GNDI, Q=>Q0_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(D1_ipd, D1, tipd_D1); + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + VitalWireDelay(DI0_ipd, DI0, tipd_DI0); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, B0_ipd, A0_ipd, + DI0_dly, CLK_dly, F0_out, Q0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE Q0_zd : std_logic := 'X'; + VARIABLE Q0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_DI0_CLK : x01 := '0'; + VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI0_dly, + TestSignalName => "DI0", + TestDelay => tisd_DI0_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI0_CLK_noedge_posedge, + SetupLow => tsetup_DI0_CLK_noedge_posedge, + HoldHigh => thold_DI0_CLK_noedge_posedge, + HoldLow => thold_DI0_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI0_CLK_TimingDatash, + Violation => tviol_DI0_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + F0_zd := F0_out; + Q0_zd := Q0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q0, + PathCondition => TRUE)), + GlitchData => Q0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => D1_ipd'last_event, + PathDelay => tpd_D1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 3 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity lut40024 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40024 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40024 : ENTITY IS TRUE; + + end lut40024; + + architecture Structure of lut40024 is + begin + INST10: ROM16X1A + generic map (initval => X"BBBB") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity SLICE_27 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_27 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_27"; + + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_CE : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI0_CLK : VitalDelayType := 0 ns; + tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; + tisd_CE_CLK : VitalDelayType := 0 ns; + tsetup_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns); + + port (B0: in Std_logic; A0: in Std_logic; DI0: in Std_logic; + CE: in Std_logic; CLK: in Std_logic; F0: out Std_logic; + Q0: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_27 : ENTITY IS TRUE; + + end SLICE_27; + + architecture Structure of SLICE_27 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal DI0_ipd : std_logic := 'X'; + signal DI0_dly : std_logic := 'X'; + signal CE_ipd : std_logic := 'X'; + signal CE_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal Q0_out : std_logic := 'X'; + + signal GNDI: Std_logic; + signal VCCI: Std_logic; + component vmuxregsre + port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; + SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; + Q: out Std_logic); + end component; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component lut40024 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + LEDEN_RNO: lut40024 + port map (A=>A0_ipd, B=>B0_ipd, C=>GNDI, D=>GNDI, Z=>F0_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + LEDEN: vmuxregsre + port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>CE_dly, CK=>CLK_dly, + LSR=>GNDI, Q=>Q0_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + VitalWireDelay(DI0_ipd, DI0, tipd_DI0); + VitalWireDelay(CE_ipd, CE, tipd_CE); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); + VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (B0_ipd, A0_ipd, DI0_dly, CE_dly, CLK_dly, F0_out, + Q0_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE Q0_zd : std_logic := 'X'; + VARIABLE Q0_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_DI0_CLK : x01 := '0'; + VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CE_CLK : x01 := '0'; + VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI0_dly, + TestSignalName => "DI0", + TestDelay => tisd_DI0_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI0_CLK_noedge_posedge, + SetupLow => tsetup_DI0_CLK_noedge_posedge, + HoldHigh => thold_DI0_CLK_noedge_posedge, + HoldLow => thold_DI0_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI0_CLK_TimingDatash, + Violation => tviol_DI0_CLK, + MsgSeverity => warning); + VitalSetupHoldCheck ( + TestSignal => CE_dly, + TestSignalName => "CE", + TestDelay => tisd_CE_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_CE_CLK_noedge_posedge, + SetupLow => tsetup_CE_CLK_noedge_posedge, + HoldHigh => thold_CE_CLK_noedge_posedge, + HoldLow => thold_CE_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => CE_CLK_TimingDatash, + Violation => tviol_CE_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + F0_zd := F0_out; + Q0_zd := Q0_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q0, + PathCondition => TRUE)), + GlitchData => Q0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity lut40025 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40025 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40025 : ENTITY IS TRUE; + + end lut40025; + + architecture Structure of lut40025 is + begin + INST10: ROM16X1A + generic map (initval => X"FBFB") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity SLICE_29 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_29 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_29"; + + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_M1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI0_CLK : VitalDelayType := 0 ns; + tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; + tisd_M1_CLK : VitalDelayType := 0 ns; + tsetup_M1_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_M1_CLK_noedge_posedge : VitalDelayType := 0 ns; + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns); + + port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; + A0: in Std_logic; DI0: in Std_logic; M1: in Std_logic; + CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; + F1: out Std_logic; Q1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_29 : ENTITY IS TRUE; + + end SLICE_29; + + architecture Structure of SLICE_29 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal DI0_ipd : std_logic := 'X'; + signal DI0_dly : std_logic := 'X'; + signal M1_ipd : std_logic := 'X'; + signal M1_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal Q0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + signal Q1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + signal VCCI: Std_logic; + component vmuxregsre + port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; + SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; + Q: out Std_logic); + end component; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component lut40007 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40025 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + LED_pad_RNO: lut40025 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>GNDI, Z=>F1_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + RASr_RNO: lut40007 + port map (A=>A0_ipd, B=>GNDI, C=>GNDI, D=>GNDI, Z=>F0_out); + RASr2: vmuxregsre + port map (D0=>M1_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_dly, + LSR=>GNDI, Q=>Q1_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + RASr: vmuxregsre + port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, + LSR=>GNDI, Q=>Q0_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(A0_ipd, A0, tipd_A0); + VitalWireDelay(DI0_ipd, DI0, tipd_DI0); + VitalWireDelay(M1_ipd, M1, tipd_M1); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); + VitalSignalDelay(M1_dly, M1_ipd, tisd_M1_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (C1_ipd, B1_ipd, A1_ipd, A0_ipd, DI0_dly, M1_dly, + CLK_dly, F0_out, Q0_out, F1_out, Q1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE Q0_zd : std_logic := 'X'; + VARIABLE Q0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + VARIABLE Q1_zd : std_logic := 'X'; + VARIABLE Q1_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_DI0_CLK : x01 := '0'; + VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_M1_CLK : x01 := '0'; + VARIABLE M1_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI0_dly, + TestSignalName => "DI0", + TestDelay => tisd_DI0_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI0_CLK_noedge_posedge, + SetupLow => tsetup_DI0_CLK_noedge_posedge, + HoldHigh => thold_DI0_CLK_noedge_posedge, + HoldLow => thold_DI0_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI0_CLK_TimingDatash, + Violation => tviol_DI0_CLK, + MsgSeverity => warning); + VitalSetupHoldCheck ( + TestSignal => M1_dly, + TestSignalName => "M1", + TestDelay => tisd_M1_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_M1_CLK_noedge_posedge, + SetupLow => tsetup_M1_CLK_noedge_posedge, + HoldHigh => thold_M1_CLK_noedge_posedge, + HoldLow => thold_M1_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => M1_CLK_TimingDatash, + Violation => tviol_M1_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + F0_zd := F0_out; + Q0_zd := Q0_out; + F1_zd := F1_out; + Q1_zd := Q1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q0, + PathCondition => TRUE)), + GlitchData => Q0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q1, + PathCondition => TRUE)), + GlitchData => Q1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity lut40026 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40026 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40026 : ENTITY IS TRUE; + + end lut40026; + + architecture Structure of lut40026 is + begin + INST10: ROM16X1A + generic map (initval => X"5072") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity lut40027 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40027 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40027 : ENTITY IS TRUE; + + end lut40027; + + architecture Structure of lut40027 is + begin + INST10: ROM16X1A + generic map (initval => X"DCCC") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity SLICE_31 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_31 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_31"; + + tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI0_CLK : VitalDelayType := 0 ns; + tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns); + + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; + B0: in Std_logic; A0: in Std_logic; DI0: in Std_logic; + CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; + F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_31 : ENTITY IS TRUE; + + end SLICE_31; + + architecture Structure of SLICE_31 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal D1_ipd : std_logic := 'X'; + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal D0_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal DI0_ipd : std_logic := 'X'; + signal DI0_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal Q0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + signal VCCI: Std_logic; + signal GNDI: Std_logic; + component vmuxregsre + port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; + SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; + Q: out Std_logic); + end component; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component lut40026 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40027 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + RCKEEN_8_u_RNO: lut40026 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); + RCKEEN_8_u: lut40027 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); + RCKEEN: vmuxregsre + port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, + LSR=>GNDI, Q=>Q0_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + DRIVEGND: gnd + port map (PWR0=>GNDI); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(D1_ipd, D1, tipd_D1); + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(D0_ipd, D0, tipd_D0); + VitalWireDelay(C0_ipd, C0, tipd_C0); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + VitalWireDelay(DI0_ipd, DI0, tipd_DI0); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, + B0_ipd, A0_ipd, DI0_dly, CLK_dly, F0_out, Q0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE Q0_zd : std_logic := 'X'; + VARIABLE Q0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_DI0_CLK : x01 := '0'; + VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI0_dly, + TestSignalName => "DI0", + TestDelay => tisd_DI0_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI0_CLK_noedge_posedge, + SetupLow => tsetup_DI0_CLK_noedge_posedge, + HoldHigh => thold_DI0_CLK_noedge_posedge, + HoldLow => thold_DI0_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI0_CLK_TimingDatash, + Violation => tviol_DI0_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + F0_zd := F0_out; + Q0_zd := Q0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => D0_ipd'last_event, + PathDelay => tpd_D0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 3 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q0, + PathCondition => TRUE)), + GlitchData => Q0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => D1_ipd'last_event, + PathDelay => tpd_D1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 3 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity lut40028 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40028 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40028 : ENTITY IS TRUE; + + end lut40028; + + architecture Structure of lut40028 is + begin + INST10: ROM16X1A + generic map (initval => X"8888") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity lut40029 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40029 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40029 : ENTITY IS TRUE; + + end lut40029; + + architecture Structure of lut40029 is + begin + INST10: ROM16X1A + generic map (initval => X"FE30") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity SLICE_32 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_32 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_32"; + + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_M1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI0_CLK : VitalDelayType := 0 ns; + tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; + tisd_M1_CLK : VitalDelayType := 0 ns; + tsetup_M1_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_M1_CLK_noedge_posedge : VitalDelayType := 0 ns; + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns); + + port (B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; + C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; + DI0: in Std_logic; M1: in Std_logic; CLK: in Std_logic; + F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic; + Q1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_32 : ENTITY IS TRUE; + + end SLICE_32; + + architecture Structure of SLICE_32 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal D0_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal DI0_ipd : std_logic := 'X'; + signal DI0_dly : std_logic := 'X'; + signal M1_ipd : std_logic := 'X'; + signal M1_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal Q0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + signal Q1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + signal VCCI: Std_logic; + component vmuxregsre + port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; + SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; + Q: out Std_logic); + end component; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component lut40028 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40029 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + RBAd_1: lut40028 + port map (A=>A1_ipd, B=>B1_ipd, C=>GNDI, D=>GNDI, Z=>F1_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + RCKE_2_0: lut40029 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); + RASr3: vmuxregsre + port map (D0=>M1_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_dly, + LSR=>GNDI, Q=>Q1_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + RCKE: vmuxregsre + port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, + LSR=>GNDI, Q=>Q0_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(D0_ipd, D0, tipd_D0); + VitalWireDelay(C0_ipd, C0, tipd_C0); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + VitalWireDelay(DI0_ipd, DI0, tipd_DI0); + VitalWireDelay(M1_ipd, M1, tipd_M1); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); + VitalSignalDelay(M1_dly, M1_ipd, tisd_M1_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (B1_ipd, A1_ipd, D0_ipd, C0_ipd, B0_ipd, A0_ipd, + DI0_dly, M1_dly, CLK_dly, F0_out, Q0_out, F1_out, Q1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE Q0_zd : std_logic := 'X'; + VARIABLE Q0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + VARIABLE Q1_zd : std_logic := 'X'; + VARIABLE Q1_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_DI0_CLK : x01 := '0'; + VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_M1_CLK : x01 := '0'; + VARIABLE M1_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI0_dly, + TestSignalName => "DI0", + TestDelay => tisd_DI0_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI0_CLK_noedge_posedge, + SetupLow => tsetup_DI0_CLK_noedge_posedge, + HoldHigh => thold_DI0_CLK_noedge_posedge, + HoldLow => thold_DI0_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI0_CLK_TimingDatash, + Violation => tviol_DI0_CLK, + MsgSeverity => warning); + VitalSetupHoldCheck ( + TestSignal => M1_dly, + TestSignalName => "M1", + TestDelay => tisd_M1_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_M1_CLK_noedge_posedge, + SetupLow => tsetup_M1_CLK_noedge_posedge, + HoldHigh => thold_M1_CLK_noedge_posedge, + HoldLow => thold_M1_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => M1_CLK_TimingDatash, + Violation => tviol_M1_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + F0_zd := F0_out; + Q0_zd := Q0_out; + F1_zd := F1_out; + Q1_zd := Q1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => D0_ipd'last_event, + PathDelay => tpd_D0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 3 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q0, + PathCondition => TRUE)), + GlitchData => Q0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q1, + PathCondition => TRUE)), + GlitchData => Q1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity lut40030 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40030 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40030 : ENTITY IS TRUE; + + end lut40030; + + architecture Structure of lut40030 is + begin + INST10: ROM16X1A + generic map (initval => X"7F7F") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity lut40031 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40031 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40031 : ENTITY IS TRUE; + + end lut40031; + + architecture Structure of lut40031 is + begin + INST10: ROM16X1A + generic map (initval => X"AEAA") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity SLICE_33 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_33 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_33"; + + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI0_CLK : VitalDelayType := 0 ns; + tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns); + + port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; + D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; DI0: in Std_logic; CLK: in Std_logic; + F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_33 : ENTITY IS TRUE; + + end SLICE_33; + + architecture Structure of SLICE_33 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal D0_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal DI0_ipd : std_logic := 'X'; + signal DI0_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal Q0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + signal VCCI: Std_logic; + component vmuxregsre + port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; + SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; + Q: out Std_logic); + end component; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component lut40030 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40031 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + Ready_0_sqmuxa_0_o2: lut40030 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>GNDI, Z=>F1_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + Ready_RNO: lut40031 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); + Ready: vmuxregsre + port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, + LSR=>GNDI, Q=>Q0_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(D0_ipd, D0, tipd_D0); + VitalWireDelay(C0_ipd, C0, tipd_C0); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + VitalWireDelay(DI0_ipd, DI0, tipd_DI0); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, B0_ipd, + A0_ipd, DI0_dly, CLK_dly, F0_out, Q0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE Q0_zd : std_logic := 'X'; + VARIABLE Q0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_DI0_CLK : x01 := '0'; + VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI0_dly, + TestSignalName => "DI0", + TestDelay => tisd_DI0_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI0_CLK_noedge_posedge, + SetupLow => tsetup_DI0_CLK_noedge_posedge, + HoldHigh => thold_DI0_CLK_noedge_posedge, + HoldLow => thold_DI0_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI0_CLK_TimingDatash, + Violation => tviol_DI0_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + F0_zd := F0_out; + Q0_zd := Q0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => D0_ipd'last_event, + PathDelay => tpd_D0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 3 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q0, + PathCondition => TRUE)), + GlitchData => Q0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity lut40032 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40032 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40032 : ENTITY IS TRUE; + + end lut40032; + + architecture Structure of lut40032 is + begin + INST10: ROM16X1A + generic map (initval => X"0200") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity SLICE_34 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_34 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_34"; + + tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI0_CLK : VitalDelayType := 0 ns; + tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns); + + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; B0: in Std_logic; A0: in Std_logic; + DI0: in Std_logic; CLK: in Std_logic; F0: out Std_logic; + Q0: out Std_logic; F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_34 : ENTITY IS TRUE; + + end SLICE_34; + + architecture Structure of SLICE_34 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal D1_ipd : std_logic := 'X'; + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal DI0_ipd : std_logic := 'X'; + signal DI0_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal Q0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + signal VCCI: Std_logic; + component vmuxregsre + port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; + SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; + Q: out Std_logic); + end component; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component lut40006 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40032 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + Ready_0_sqmuxa_0_a3: lut40032 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); + Ready_fast_RNO: lut40006 + port map (A=>A0_ipd, B=>B0_ipd, C=>GNDI, D=>GNDI, Z=>F0_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + Ready_fast: vmuxregsre + port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, + LSR=>GNDI, Q=>Q0_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(D1_ipd, D1, tipd_D1); + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + VitalWireDelay(DI0_ipd, DI0, tipd_DI0); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, B0_ipd, A0_ipd, + DI0_dly, CLK_dly, F0_out, Q0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE Q0_zd : std_logic := 'X'; + VARIABLE Q0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_DI0_CLK : x01 := '0'; + VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI0_dly, + TestSignalName => "DI0", + TestDelay => tisd_DI0_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI0_CLK_noedge_posedge, + SetupLow => tsetup_DI0_CLK_noedge_posedge, + HoldHigh => thold_DI0_CLK_noedge_posedge, + HoldLow => thold_DI0_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI0_CLK_TimingDatash, + Violation => tviol_DI0_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + F0_zd := F0_out; + Q0_zd := Q0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q0, + PathCondition => TRUE)), + GlitchData => Q0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => D1_ipd'last_event, + PathDelay => tpd_D1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 3 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity SLICE_35 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_35 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_35"; + + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_DI1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns; + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI1_CLK : VitalDelayType := 0 ns; + tsetup_DI1_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_DI1_CLK_noedge_negedge : VitalDelayType := 0 ns; + tisd_DI0_CLK : VitalDelayType := 0 ns; + tsetup_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns); + + port (B1: in Std_logic; A1: in Std_logic; B0: in Std_logic; + A0: in Std_logic; DI1: in Std_logic; DI0: in Std_logic; + CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; + F1: out Std_logic; Q1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_35 : ENTITY IS TRUE; + + end SLICE_35; + + architecture Structure of SLICE_35 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal DI1_ipd : std_logic := 'X'; + signal DI1_dly : std_logic := 'X'; + signal DI0_ipd : std_logic := 'X'; + signal DI0_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal Q0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + signal Q1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + signal VCCI: Std_logic; + signal CLK_NOTIN: Std_logic; + component vmuxregsre + port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; + SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; + Q: out Std_logic); + end component; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component inverter + port (I: in Std_logic; Z: out Std_logic); + end component; + component lut40028 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + RowAd_1: lut40028 + port map (A=>A1_ipd, B=>B1_ipd, C=>GNDI, D=>GNDI, Z=>F1_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + RowAd_0: lut40028 + port map (A=>A0_ipd, B=>B0_ipd, C=>GNDI, D=>GNDI, Z=>F0_out); + RowA_1: vmuxregsre + port map (D0=>VCCI, D1=>DI1_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_NOTIN, + LSR=>GNDI, Q=>Q1_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + CLK_INVERTERIN: inverter + port map (I=>CLK_dly, Z=>CLK_NOTIN); + RowA_0: vmuxregsre + port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_NOTIN, + LSR=>GNDI, Q=>Q0_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + VitalWireDelay(DI1_ipd, DI1, tipd_DI1); + VitalWireDelay(DI0_ipd, DI0, tipd_DI0); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI1_dly, DI1_ipd, tisd_DI1_CLK); + VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (B1_ipd, A1_ipd, B0_ipd, A0_ipd, DI1_dly, DI0_dly, + CLK_dly, F0_out, Q0_out, F1_out, Q1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE Q0_zd : std_logic := 'X'; + VARIABLE Q0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + VARIABLE Q1_zd : std_logic := 'X'; + VARIABLE Q1_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_DI1_CLK : x01 := '0'; + VARIABLE DI1_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_DI0_CLK : x01 := '0'; + VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI1_dly, + TestSignalName => "DI1", + TestDelay => tisd_DI1_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI1_CLK_noedge_negedge, + SetupLow => tsetup_DI1_CLK_noedge_negedge, + HoldHigh => thold_DI1_CLK_noedge_negedge, + HoldLow => thold_DI1_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI1_CLK_TimingDatash, + Violation => tviol_DI1_CLK, + MsgSeverity => warning); + VitalSetupHoldCheck ( + TestSignal => DI0_dly, + TestSignalName => "DI0", + TestDelay => tisd_DI0_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI0_CLK_noedge_negedge, + SetupLow => tsetup_DI0_CLK_noedge_negedge, + HoldHigh => thold_DI0_CLK_noedge_negedge, + HoldLow => thold_DI0_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI0_CLK_TimingDatash, + Violation => tviol_DI0_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + F0_zd := F0_out; + Q0_zd := Q0_out; + F1_zd := F1_out; + Q1_zd := Q1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q0, + PathCondition => TRUE)), + GlitchData => Q0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q1, + PathCondition => TRUE)), + GlitchData => Q1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity SLICE_36 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_36 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_36"; + + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_DI1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns; + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI1_CLK : VitalDelayType := 0 ns; + tsetup_DI1_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_DI1_CLK_noedge_negedge : VitalDelayType := 0 ns; + tisd_DI0_CLK : VitalDelayType := 0 ns; + tsetup_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns); + + port (B1: in Std_logic; A1: in Std_logic; B0: in Std_logic; + A0: in Std_logic; DI1: in Std_logic; DI0: in Std_logic; + CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; + F1: out Std_logic; Q1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_36 : ENTITY IS TRUE; + + end SLICE_36; + + architecture Structure of SLICE_36 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal DI1_ipd : std_logic := 'X'; + signal DI1_dly : std_logic := 'X'; + signal DI0_ipd : std_logic := 'X'; + signal DI0_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal Q0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + signal Q1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + signal VCCI: Std_logic; + signal CLK_NOTIN: Std_logic; + component vmuxregsre + port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; + SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; + Q: out Std_logic); + end component; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component inverter + port (I: in Std_logic; Z: out Std_logic); + end component; + component lut40028 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + RowAd_3: lut40028 + port map (A=>A1_ipd, B=>B1_ipd, C=>GNDI, D=>GNDI, Z=>F1_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + RowAd_2: lut40028 + port map (A=>A0_ipd, B=>B0_ipd, C=>GNDI, D=>GNDI, Z=>F0_out); + RowA_3: vmuxregsre + port map (D0=>VCCI, D1=>DI1_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_NOTIN, + LSR=>GNDI, Q=>Q1_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + CLK_INVERTERIN: inverter + port map (I=>CLK_dly, Z=>CLK_NOTIN); + RowA_2: vmuxregsre + port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_NOTIN, + LSR=>GNDI, Q=>Q0_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + VitalWireDelay(DI1_ipd, DI1, tipd_DI1); + VitalWireDelay(DI0_ipd, DI0, tipd_DI0); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI1_dly, DI1_ipd, tisd_DI1_CLK); + VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (B1_ipd, A1_ipd, B0_ipd, A0_ipd, DI1_dly, DI0_dly, + CLK_dly, F0_out, Q0_out, F1_out, Q1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE Q0_zd : std_logic := 'X'; + VARIABLE Q0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + VARIABLE Q1_zd : std_logic := 'X'; + VARIABLE Q1_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_DI1_CLK : x01 := '0'; + VARIABLE DI1_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_DI0_CLK : x01 := '0'; + VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI1_dly, + TestSignalName => "DI1", + TestDelay => tisd_DI1_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI1_CLK_noedge_negedge, + SetupLow => tsetup_DI1_CLK_noedge_negedge, + HoldHigh => thold_DI1_CLK_noedge_negedge, + HoldLow => thold_DI1_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI1_CLK_TimingDatash, + Violation => tviol_DI1_CLK, + MsgSeverity => warning); + VitalSetupHoldCheck ( + TestSignal => DI0_dly, + TestSignalName => "DI0", + TestDelay => tisd_DI0_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI0_CLK_noedge_negedge, + SetupLow => tsetup_DI0_CLK_noedge_negedge, + HoldHigh => thold_DI0_CLK_noedge_negedge, + HoldLow => thold_DI0_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI0_CLK_TimingDatash, + Violation => tviol_DI0_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + F0_zd := F0_out; + Q0_zd := Q0_out; + F1_zd := F1_out; + Q1_zd := Q1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q0, + PathCondition => TRUE)), + GlitchData => Q0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q1, + PathCondition => TRUE)), + GlitchData => Q1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity SLICE_37 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_37 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_37"; + + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_DI1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns; + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI1_CLK : VitalDelayType := 0 ns; + tsetup_DI1_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_DI1_CLK_noedge_negedge : VitalDelayType := 0 ns; + tisd_DI0_CLK : VitalDelayType := 0 ns; + tsetup_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns); + + port (B1: in Std_logic; A1: in Std_logic; B0: in Std_logic; + A0: in Std_logic; DI1: in Std_logic; DI0: in Std_logic; + CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; + F1: out Std_logic; Q1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_37 : ENTITY IS TRUE; + + end SLICE_37; + + architecture Structure of SLICE_37 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal DI1_ipd : std_logic := 'X'; + signal DI1_dly : std_logic := 'X'; + signal DI0_ipd : std_logic := 'X'; + signal DI0_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal Q0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + signal Q1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + signal VCCI: Std_logic; + signal CLK_NOTIN: Std_logic; + component vmuxregsre + port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; + SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; + Q: out Std_logic); + end component; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component inverter + port (I: in Std_logic; Z: out Std_logic); + end component; + component lut40024 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40028 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + RowAd_5: lut40024 + port map (A=>A1_ipd, B=>B1_ipd, C=>GNDI, D=>GNDI, Z=>F1_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + RowAd_4: lut40028 + port map (A=>A0_ipd, B=>B0_ipd, C=>GNDI, D=>GNDI, Z=>F0_out); + RowA_5: vmuxregsre + port map (D0=>VCCI, D1=>DI1_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_NOTIN, + LSR=>GNDI, Q=>Q1_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + CLK_INVERTERIN: inverter + port map (I=>CLK_dly, Z=>CLK_NOTIN); + RowA_4: vmuxregsre + port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_NOTIN, + LSR=>GNDI, Q=>Q0_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + VitalWireDelay(DI1_ipd, DI1, tipd_DI1); + VitalWireDelay(DI0_ipd, DI0, tipd_DI0); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI1_dly, DI1_ipd, tisd_DI1_CLK); + VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (B1_ipd, A1_ipd, B0_ipd, A0_ipd, DI1_dly, DI0_dly, + CLK_dly, F0_out, Q0_out, F1_out, Q1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE Q0_zd : std_logic := 'X'; + VARIABLE Q0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + VARIABLE Q1_zd : std_logic := 'X'; + VARIABLE Q1_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_DI1_CLK : x01 := '0'; + VARIABLE DI1_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_DI0_CLK : x01 := '0'; + VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI1_dly, + TestSignalName => "DI1", + TestDelay => tisd_DI1_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI1_CLK_noedge_negedge, + SetupLow => tsetup_DI1_CLK_noedge_negedge, + HoldHigh => thold_DI1_CLK_noedge_negedge, + HoldLow => thold_DI1_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI1_CLK_TimingDatash, + Violation => tviol_DI1_CLK, + MsgSeverity => warning); + VitalSetupHoldCheck ( + TestSignal => DI0_dly, + TestSignalName => "DI0", + TestDelay => tisd_DI0_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI0_CLK_noedge_negedge, + SetupLow => tsetup_DI0_CLK_noedge_negedge, + HoldHigh => thold_DI0_CLK_noedge_negedge, + HoldLow => thold_DI0_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI0_CLK_TimingDatash, + Violation => tviol_DI0_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + F0_zd := F0_out; + Q0_zd := Q0_out; + F1_zd := F1_out; + Q1_zd := Q1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q0, + PathCondition => TRUE)), + GlitchData => Q0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q1, + PathCondition => TRUE)), + GlitchData => Q1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity SLICE_38 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_38 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_38"; + + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_DI1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns; + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI1_CLK : VitalDelayType := 0 ns; + tsetup_DI1_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_DI1_CLK_noedge_negedge : VitalDelayType := 0 ns; + tisd_DI0_CLK : VitalDelayType := 0 ns; + tsetup_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns); + + port (B1: in Std_logic; A1: in Std_logic; B0: in Std_logic; + A0: in Std_logic; DI1: in Std_logic; DI0: in Std_logic; + CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; + F1: out Std_logic; Q1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_38 : ENTITY IS TRUE; + + end SLICE_38; + + architecture Structure of SLICE_38 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal DI1_ipd : std_logic := 'X'; + signal DI1_dly : std_logic := 'X'; + signal DI0_ipd : std_logic := 'X'; + signal DI0_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal Q0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + signal Q1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + signal VCCI: Std_logic; + signal CLK_NOTIN: Std_logic; + component vmuxregsre + port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; + SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; + Q: out Std_logic); + end component; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component inverter + port (I: in Std_logic; Z: out Std_logic); + end component; + component lut40028 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + RowAd_7: lut40028 + port map (A=>A1_ipd, B=>B1_ipd, C=>GNDI, D=>GNDI, Z=>F1_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + RowAd_6: lut40028 + port map (A=>A0_ipd, B=>B0_ipd, C=>GNDI, D=>GNDI, Z=>F0_out); + RowA_7: vmuxregsre + port map (D0=>VCCI, D1=>DI1_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_NOTIN, + LSR=>GNDI, Q=>Q1_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + CLK_INVERTERIN: inverter + port map (I=>CLK_dly, Z=>CLK_NOTIN); + RowA_6: vmuxregsre + port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_NOTIN, + LSR=>GNDI, Q=>Q0_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + VitalWireDelay(DI1_ipd, DI1, tipd_DI1); + VitalWireDelay(DI0_ipd, DI0, tipd_DI0); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI1_dly, DI1_ipd, tisd_DI1_CLK); + VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (B1_ipd, A1_ipd, B0_ipd, A0_ipd, DI1_dly, DI0_dly, + CLK_dly, F0_out, Q0_out, F1_out, Q1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE Q0_zd : std_logic := 'X'; + VARIABLE Q0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + VARIABLE Q1_zd : std_logic := 'X'; + VARIABLE Q1_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_DI1_CLK : x01 := '0'; + VARIABLE DI1_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_DI0_CLK : x01 := '0'; + VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI1_dly, + TestSignalName => "DI1", + TestDelay => tisd_DI1_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI1_CLK_noedge_negedge, + SetupLow => tsetup_DI1_CLK_noedge_negedge, + HoldHigh => thold_DI1_CLK_noedge_negedge, + HoldLow => thold_DI1_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI1_CLK_TimingDatash, + Violation => tviol_DI1_CLK, + MsgSeverity => warning); + VitalSetupHoldCheck ( + TestSignal => DI0_dly, + TestSignalName => "DI0", + TestDelay => tisd_DI0_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI0_CLK_noedge_negedge, + SetupLow => tsetup_DI0_CLK_noedge_negedge, + HoldHigh => thold_DI0_CLK_noedge_negedge, + HoldLow => thold_DI0_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI0_CLK_TimingDatash, + Violation => tviol_DI0_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + F0_zd := F0_out; + Q0_zd := Q0_out; + F1_zd := F1_out; + Q1_zd := Q1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q0, + PathCondition => TRUE)), + GlitchData => Q0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q1, + PathCondition => TRUE)), + GlitchData => Q1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity SLICE_39 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_39 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_39"; + + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_DI1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns; + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI1_CLK : VitalDelayType := 0 ns; + tsetup_DI1_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_DI1_CLK_noedge_negedge : VitalDelayType := 0 ns; + tisd_DI0_CLK : VitalDelayType := 0 ns; + tsetup_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns); + + port (B1: in Std_logic; A1: in Std_logic; B0: in Std_logic; + A0: in Std_logic; DI1: in Std_logic; DI0: in Std_logic; + CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; + F1: out Std_logic; Q1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_39 : ENTITY IS TRUE; + + end SLICE_39; + + architecture Structure of SLICE_39 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal DI1_ipd : std_logic := 'X'; + signal DI1_dly : std_logic := 'X'; + signal DI0_ipd : std_logic := 'X'; + signal DI0_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal Q0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + signal Q1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + signal VCCI: Std_logic; + signal CLK_NOTIN: Std_logic; + component vmuxregsre + port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; + SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; + Q: out Std_logic); + end component; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component inverter + port (I: in Std_logic; Z: out Std_logic); + end component; + component lut40024 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40028 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + RowAd_9: lut40024 + port map (A=>A1_ipd, B=>B1_ipd, C=>GNDI, D=>GNDI, Z=>F1_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + RowAd_8: lut40028 + port map (A=>A0_ipd, B=>B0_ipd, C=>GNDI, D=>GNDI, Z=>F0_out); + RowA_9: vmuxregsre + port map (D0=>VCCI, D1=>DI1_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_NOTIN, + LSR=>GNDI, Q=>Q1_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + CLK_INVERTERIN: inverter + port map (I=>CLK_dly, Z=>CLK_NOTIN); + RowA_8: vmuxregsre + port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_NOTIN, + LSR=>GNDI, Q=>Q0_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + VitalWireDelay(DI1_ipd, DI1, tipd_DI1); + VitalWireDelay(DI0_ipd, DI0, tipd_DI0); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI1_dly, DI1_ipd, tisd_DI1_CLK); + VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (B1_ipd, A1_ipd, B0_ipd, A0_ipd, DI1_dly, DI0_dly, + CLK_dly, F0_out, Q0_out, F1_out, Q1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE Q0_zd : std_logic := 'X'; + VARIABLE Q0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + VARIABLE Q1_zd : std_logic := 'X'; + VARIABLE Q1_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_DI1_CLK : x01 := '0'; + VARIABLE DI1_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_DI0_CLK : x01 := '0'; + VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI1_dly, + TestSignalName => "DI1", + TestDelay => tisd_DI1_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI1_CLK_noedge_negedge, + SetupLow => tsetup_DI1_CLK_noedge_negedge, + HoldHigh => thold_DI1_CLK_noedge_negedge, + HoldLow => thold_DI1_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI1_CLK_TimingDatash, + Violation => tviol_DI1_CLK, + MsgSeverity => warning); + VitalSetupHoldCheck ( + TestSignal => DI0_dly, + TestSignalName => "DI0", + TestDelay => tisd_DI0_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI0_CLK_noedge_negedge, + SetupLow => tsetup_DI0_CLK_noedge_negedge, + HoldHigh => thold_DI0_CLK_noedge_negedge, + HoldLow => thold_DI0_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI0_CLK_TimingDatash, + Violation => tviol_DI0_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + F0_zd := F0_out; + Q0_zd := Q0_out; + F1_zd := F1_out; + Q1_zd := Q1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q0, + PathCondition => TRUE)), + GlitchData => Q0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q1, + PathCondition => TRUE)), + GlitchData => Q1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity SLICE_40 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_40 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_40"; + + tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_LSR : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI0_CLK : VitalDelayType := 0 ns; + tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; + tisd_LSR_CLK : VitalDelayType := 0 ns; + tsetup_LSR_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_LSR_CLK_noedge_posedge : VitalDelayType := 0 ns; + tperiod_LSR : VitalDelayType := 0 ns; + tpw_LSR_posedge : VitalDelayType := 0 ns; + tpw_LSR_negedge : VitalDelayType := 0 ns; + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns); + + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; B0: in Std_logic; A0: in Std_logic; + DI0: in Std_logic; LSR: in Std_logic; CLK: in Std_logic; + F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_40 : ENTITY IS TRUE; + + end SLICE_40; + + architecture Structure of SLICE_40 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal D1_ipd : std_logic := 'X'; + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal DI0_ipd : std_logic := 'X'; + signal DI0_dly : std_logic := 'X'; + signal LSR_ipd : std_logic := 'X'; + signal LSR_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal Q0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + signal VCCI: Std_logic; + signal LSR_NOTIN: Std_logic; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component inverter + port (I: in Std_logic; Z: out Std_logic); + end component; + component lut40006 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component vmuxregsre0010 + port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; + SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; + Q: out Std_logic); + end component; + component lut40015 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + nRCAS_0_sqmuxa_1_0_a3: lut40015 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); + S_0_i_o2_1: lut40006 + port map (A=>A0_ipd, B=>B0_ipd, C=>GNDI, D=>GNDI, Z=>F0_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + S_1: vmuxregsre0010 + port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, + LSR=>LSR_NOTIN, Q=>Q0_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + LSR_INVERTERIN: inverter + port map (I=>LSR_dly, Z=>LSR_NOTIN); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(D1_ipd, D1, tipd_D1); + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + VitalWireDelay(DI0_ipd, DI0, tipd_DI0); + VitalWireDelay(LSR_ipd, LSR, tipd_LSR); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); + VitalSignalDelay(LSR_dly, LSR_ipd, tisd_LSR_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, B0_ipd, A0_ipd, + DI0_dly, LSR_dly, CLK_dly, F0_out, Q0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE Q0_zd : std_logic := 'X'; + VARIABLE Q0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_DI0_CLK : x01 := '0'; + VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_LSR_CLK : x01 := '0'; + VARIABLE LSR_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_LSR_LSR : x01 := '0'; + VARIABLE periodcheckinfo_LSR : VitalPeriodDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI0_dly, + TestSignalName => "DI0", + TestDelay => tisd_DI0_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI0_CLK_noedge_posedge, + SetupLow => tsetup_DI0_CLK_noedge_posedge, + HoldHigh => thold_DI0_CLK_noedge_posedge, + HoldLow => thold_DI0_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI0_CLK_TimingDatash, + Violation => tviol_DI0_CLK, + MsgSeverity => warning); + VitalSetupHoldCheck ( + TestSignal => LSR_dly, + TestSignalName => "LSR", + TestDelay => tisd_LSR_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_LSR_CLK_noedge_posedge, + SetupLow => tsetup_LSR_CLK_noedge_posedge, + HoldHigh => thold_LSR_CLK_noedge_posedge, + HoldLow => thold_LSR_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => LSR_CLK_TimingDatash, + Violation => tviol_LSR_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => LSR_ipd, + TestSignalName => "LSR", + Period => tperiod_LSR, + PulseWidthHigh => tpw_LSR_posedge, + PulseWidthLow => tpw_LSR_negedge, + PeriodData => periodcheckinfo_LSR, + Violation => tviol_LSR_LSR, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + F0_zd := F0_out; + Q0_zd := Q0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q0, + PathCondition => TRUE)), + GlitchData => Q0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => D1_ipd'last_event, + PathDelay => tpd_D1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 3 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity lut40033 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40033 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40033 : ENTITY IS TRUE; + + end lut40033; + + architecture Structure of lut40033 is + begin + INST10: ROM16X1A + generic map (initval => X"1110") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity lut40034 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40034 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40034 : ENTITY IS TRUE; + + end lut40034; + + architecture Structure of lut40034 is + begin + INST10: ROM16X1A + generic map (initval => X"2222") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity SLICE_41 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_41 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_41"; + + tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_M0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_D1_OFX0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_OFX0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_OFX0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_OFX0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_OFX0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_OFX0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_M0_OFX0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI0_CLK : VitalDelayType := 0 ns; + tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns); + + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; B0: in Std_logic; A0: in Std_logic; + DI0: in Std_logic; M0: in Std_logic; CLK: in Std_logic; + OFX0: out Std_logic; Q0: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_41 : ENTITY IS TRUE; + + end SLICE_41; + + architecture Structure of SLICE_41 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal D1_ipd : std_logic := 'X'; + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal DI0_ipd : std_logic := 'X'; + signal DI0_dly : std_logic := 'X'; + signal M0_ipd : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal OFX0_out : std_logic := 'X'; + signal Q0_out : std_logic := 'X'; + + signal SLICE_41_SLICE_41_K1_H1: Std_logic; + signal GNDI: Std_logic; + signal SLICE_41_UFMSDI_RNO_GATE_H0: Std_logic; + signal VCCI: Std_logic; + component vmuxregsre + port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; + SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; + Q: out Std_logic); + end component; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component selmux2 + port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; + Z: out Std_logic); + end component; + component lut40033 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40034 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + SLICE_41_K1: lut40033 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, + Z=>SLICE_41_SLICE_41_K1_H1); + UFMSDI_RNO_GATE: lut40034 + port map (A=>A0_ipd, B=>B0_ipd, C=>GNDI, D=>GNDI, + Z=>SLICE_41_UFMSDI_RNO_GATE_H0); + DRIVEGND: gnd + port map (PWR0=>GNDI); + UFMSDI: vmuxregsre + port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, + LSR=>GNDI, Q=>Q0_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + SLICE_41_K0K1MUX: selmux2 + port map (D0=>SLICE_41_UFMSDI_RNO_GATE_H0, D1=>SLICE_41_SLICE_41_K1_H1, + SD=>M0_ipd, Z=>OFX0_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(D1_ipd, D1, tipd_D1); + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + VitalWireDelay(DI0_ipd, DI0, tipd_DI0); + VitalWireDelay(M0_ipd, M0, tipd_M0); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, B0_ipd, A0_ipd, + DI0_dly, M0_ipd, CLK_dly, OFX0_out, Q0_out) + VARIABLE OFX0_zd : std_logic := 'X'; + VARIABLE OFX0_GlitchData : VitalGlitchDataType; + VARIABLE Q0_zd : std_logic := 'X'; + VARIABLE Q0_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_DI0_CLK : x01 := '0'; + VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI0_dly, + TestSignalName => "DI0", + TestDelay => tisd_DI0_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI0_CLK_noedge_posedge, + SetupLow => tsetup_DI0_CLK_noedge_posedge, + HoldHigh => thold_DI0_CLK_noedge_posedge, + HoldLow => thold_DI0_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI0_CLK_TimingDatash, + Violation => tviol_DI0_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + OFX0_zd := OFX0_out; + Q0_zd := Q0_out; + + VitalPathDelay01 ( + OutSignal => OFX0, OutSignalName => "OFX0", OutTemp => OFX0_zd, + Paths => (0 => (InputChangeTime => D1_ipd'last_event, + PathDelay => tpd_D1_OFX0, + PathCondition => TRUE), + 1 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_OFX0, + PathCondition => TRUE), + 2 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_OFX0, + PathCondition => TRUE), + 3 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_OFX0, + PathCondition => TRUE), + 4 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_OFX0, + PathCondition => TRUE), + 5 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_OFX0, + PathCondition => TRUE), + 6 => (InputChangeTime => M0_ipd'last_event, + PathDelay => tpd_M0_OFX0, + PathCondition => TRUE)), + GlitchData => OFX0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q0, + PathCondition => TRUE)), + GlitchData => Q0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity lut40035 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40035 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40035 : ENTITY IS TRUE; + + end lut40035; + + architecture Structure of lut40035 is + begin + INST10: ROM16X1A + generic map (initval => X"0001") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity lut40036 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40036 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40036 : ENTITY IS TRUE; + + end lut40036; + + architecture Structure of lut40036 is + begin + INST10: ROM16X1A + generic map (initval => X"A0CC") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity SLICE_42 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_42 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_42"; tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); @@ -10187,16 +9354,16 @@ tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - ticd_CLK : VitalDelayType := 0 ns; - tisd_DI0_CLK : VitalDelayType := 0 ns; - tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_CE_CLK : VitalDelayType := 0 ns; - tsetup_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; tperiod_CLK : VitalDelayType := 0 ns; tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns); + tpw_CLK_negedge : VitalDelayType := 0 ns; + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI0_CLK : VitalDelayType := 0 ns; + tsetup_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_DI0_CLK_noedge_negedge : VitalDelayType := 0 ns; + tisd_CE_CLK : VitalDelayType := 0 ns; + tsetup_CE_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_CE_CLK_noedge_negedge : VitalDelayType := 0 ns); port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; @@ -10204,11 +9371,11 @@ CE: in Std_logic; CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic); - ATTRIBUTE Vital_Level0 OF SLICE_70 : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF SLICE_42 : ENTITY IS TRUE; - end SLICE_70; + end SLICE_42; - architecture Structure of SLICE_70 is + architecture Structure of SLICE_42 is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; signal D1_ipd : std_logic := 'X'; @@ -10230,36 +9397,42 @@ signal F1_out : std_logic := 'X'; signal VCCI: Std_logic; + signal CLK_NOTIN: Std_logic; signal GNDI: Std_logic; + component vmuxregsre + port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; + SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; + Q: out Std_logic); + end component; component vcc port (PWR1: out Std_logic); end component; component gnd port (PWR0: out Std_logic); end component; - component vmuxregsre0031 - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); + component inverter + port (I: in Std_logic; Z: out Std_logic); end component; - component lut40040 + component lut40035 port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; Z: out Std_logic); end component; - component lut40041 + component lut40036 port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; Z: out Std_logic); end component; begin - i1_2_lut_4_lut: lut40040 + un1_Din_3: lut40035 port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); - i1448_4_lut: lut40041 + XOR8MEG_3_u: lut40036 port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); - nUFMCS_415: vmuxregsre0031 - port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>CE_dly, CK=>CLK_dly, + XOR8MEG: vmuxregsre + port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>CE_dly, CK=>CLK_NOTIN, LSR=>GNDI, Q=>Q0_out); DRIVEVCC: vcc port map (PWR1=>VCCI); + CLK_INVERTERIN: inverter + port map (I=>CLK_dly, Z=>CLK_NOTIN); DRIVEGND: gnd port map (PWR0=>GNDI); @@ -10305,6 +9478,275 @@ BEGIN + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI0_dly, + TestSignalName => "DI0", + TestDelay => tisd_DI0_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI0_CLK_noedge_negedge, + SetupLow => tsetup_DI0_CLK_noedge_negedge, + HoldHigh => thold_DI0_CLK_noedge_negedge, + HoldLow => thold_DI0_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI0_CLK_TimingDatash, + Violation => tviol_DI0_CLK, + MsgSeverity => warning); + VitalSetupHoldCheck ( + TestSignal => CE_dly, + TestSignalName => "CE", + TestDelay => tisd_CE_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_CE_CLK_noedge_negedge, + SetupLow => tsetup_CE_CLK_noedge_negedge, + HoldHigh => thold_CE_CLK_noedge_negedge, + HoldLow => thold_CE_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => CE_CLK_TimingDatash, + Violation => tviol_CE_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + F0_zd := F0_out; + Q0_zd := Q0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => D0_ipd'last_event, + PathDelay => tpd_D0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 3 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q0, + PathCondition => TRUE)), + GlitchData => Q0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => D1_ipd'last_event, + PathDelay => tpd_D1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 3 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity lut40037 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40037 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40037 : ENTITY IS TRUE; + + end lut40037; + + architecture Structure of lut40037 is + begin + INST10: ROM16X1A + generic map (initval => X"8B8B") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity SLICE_43 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_43 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_43"; + + tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_CE : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI0_CLK : VitalDelayType := 0 ns; + tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; + tisd_CE_CLK : VitalDelayType := 0 ns; + tsetup_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns); + + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; DI0: in Std_logic; CE: in Std_logic; + CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; + F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_43 : ENTITY IS TRUE; + + end SLICE_43; + + architecture Structure of SLICE_43 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal D1_ipd : std_logic := 'X'; + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal DI0_ipd : std_logic := 'X'; + signal DI0_dly : std_logic := 'X'; + signal CE_ipd : std_logic := 'X'; + signal CE_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal Q0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + signal VCCI: Std_logic; + component vmuxregsre + port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; + SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; + Q: out Std_logic); + end component; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component lut40004 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40037 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + un1_Bank_1_4: lut40004 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); + n8MEGEN_5_i_m2: lut40037 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>GNDI, Z=>F0_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + n8MEGEN: vmuxregsre + port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>CE_dly, CK=>CLK_dly, + LSR=>GNDI, Q=>Q0_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(D1_ipd, D1, tipd_D1); + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(C0_ipd, C0, tipd_C0); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + VitalWireDelay(DI0_ipd, DI0, tipd_DI0); + VitalWireDelay(CE_ipd, CE, tipd_CE); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); + VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, C0_ipd, B0_ipd, + A0_ipd, DI0_dly, CE_dly, CLK_dly, F0_out, Q0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE Q0_zd : std_logic := 'X'; + VARIABLE Q0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_DI0_CLK : x01 := '0'; + VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CE_CLK : x01 := '0'; + VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + IF (TimingChecksOn) THEN VitalSetupHoldCheck ( TestSignal => DI0_dly, @@ -10361,6 +9803,308 @@ Q0_zd := Q0_out; F1_zd := F1_out; + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q0, + PathCondition => TRUE)), + GlitchData => Q0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => D1_ipd'last_event, + PathDelay => tpd_D1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 3 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity lut40038 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40038 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40038 : ENTITY IS TRUE; + + end lut40038; + + architecture Structure of lut40038 is + begin + INST10: ROM16X1A + generic map (initval => X"1000") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity lut40039 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40039 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40039 : ENTITY IS TRUE; + + end lut40039; + + architecture Structure of lut40039 is + begin + INST10: ROM16X1A + generic map (initval => X"DCEC") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity SLICE_44 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_44 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_44"; + + tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_LSR : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI0_CLK : VitalDelayType := 0 ns; + tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; + tisd_LSR_CLK : VitalDelayType := 0 ns; + tsetup_LSR_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_LSR_CLK_noedge_posedge : VitalDelayType := 0 ns; + tperiod_LSR : VitalDelayType := 0 ns; + tpw_LSR_posedge : VitalDelayType := 0 ns; + tpw_LSR_negedge : VitalDelayType := 0 ns; + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns); + + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; + B0: in Std_logic; A0: in Std_logic; DI0: in Std_logic; + LSR: in Std_logic; CLK: in Std_logic; F0: out Std_logic; + Q0: out Std_logic; F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_44 : ENTITY IS TRUE; + + end SLICE_44; + + architecture Structure of SLICE_44 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal D1_ipd : std_logic := 'X'; + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal D0_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal DI0_ipd : std_logic := 'X'; + signal DI0_dly : std_logic := 'X'; + signal LSR_ipd : std_logic := 'X'; + signal LSR_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal Q0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + signal VCCI: Std_logic; + component vcc + port (PWR1: out Std_logic); + end component; + component vmuxregsre0010 + port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; + SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; + Q: out Std_logic); + end component; + component lut40038 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40039 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + nRowColSel_0_0_a3_0: lut40038 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); + nRowColSel_0_0: lut40039 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); + nRowColSel: vmuxregsre0010 + port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, + LSR=>LSR_dly, Q=>Q0_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(D1_ipd, D1, tipd_D1); + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(D0_ipd, D0, tipd_D0); + VitalWireDelay(C0_ipd, C0, tipd_C0); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + VitalWireDelay(DI0_ipd, DI0, tipd_DI0); + VitalWireDelay(LSR_ipd, LSR, tipd_LSR); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); + VitalSignalDelay(LSR_dly, LSR_ipd, tisd_LSR_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, + B0_ipd, A0_ipd, DI0_dly, LSR_dly, CLK_dly, F0_out, Q0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE Q0_zd : std_logic := 'X'; + VARIABLE Q0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_DI0_CLK : x01 := '0'; + VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_LSR_CLK : x01 := '0'; + VARIABLE LSR_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_LSR_LSR : x01 := '0'; + VARIABLE periodcheckinfo_LSR : VitalPeriodDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI0_dly, + TestSignalName => "DI0", + TestDelay => tisd_DI0_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI0_CLK_noedge_posedge, + SetupLow => tsetup_DI0_CLK_noedge_posedge, + HoldHigh => thold_DI0_CLK_noedge_posedge, + HoldLow => thold_DI0_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI0_CLK_TimingDatash, + Violation => tviol_DI0_CLK, + MsgSeverity => warning); + VitalSetupHoldCheck ( + TestSignal => LSR_dly, + TestSignalName => "LSR", + TestDelay => tisd_LSR_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_LSR_CLK_noedge_posedge, + SetupLow => tsetup_LSR_CLK_noedge_posedge, + HoldHigh => thold_LSR_CLK_noedge_posedge, + HoldLow => thold_LSR_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => LSR_CLK_TimingDatash, + Violation => tviol_LSR_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => LSR_ipd, + TestSignalName => "LSR", + Period => tperiod_LSR, + PulseWidthHigh => tpw_LSR_posedge, + PulseWidthLow => tpw_LSR_negedge, + PeriodData => periodcheckinfo_LSR, + Violation => tviol_LSR_LSR, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + F0_zd := F0_out; + Q0_zd := Q0_out; + F1_zd := F1_out; + VitalPathDelay01 ( OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, Paths => (0 => (InputChangeTime => D0_ipd'last_event, @@ -10405,82 +10149,85 @@ end Structure; --- entity lut40042 +-- entity lut40040 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity lut40042 is + entity lut40040 is port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; Z: out Std_logic); - ATTRIBUTE Vital_Level0 OF lut40042 : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF lut40040 : ENTITY IS TRUE; - end lut40042; + end lut40040; - architecture Structure of lut40042 is + architecture Structure of lut40040 is begin INST10: ROM16X1A - generic map (initval => X"1F1F") + generic map (initval => X"000B") port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); end Structure; --- entity lut40043 +-- entity lut40041 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity lut40043 is + entity lut40041 is port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; Z: out Std_logic); - ATTRIBUTE Vital_Level0 OF lut40043 : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF lut40041 : ENTITY IS TRUE; - end lut40043; + end lut40041; - architecture Structure of lut40043 is + architecture Structure of lut40041 is begin INST10: ROM16X1A - generic map (initval => X"5540") + generic map (initval => X"5F4E") port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); end Structure; --- entity selmux2 +-- entity vmuxregsre0042 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity selmux2 is + entity vmuxregsre0042 is port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - Z: out Std_logic); + SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; + Q: out Std_logic); - ATTRIBUTE Vital_Level0 OF selmux2 : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF vmuxregsre0042 : ENTITY IS TRUE; - end selmux2; + end vmuxregsre0042; - architecture Structure of selmux2 is + architecture Structure of vmuxregsre0042 is begin - INST1: MUX21 - port map (D0=>D0, D1=>D1, SD=>SD, Z=>Z); + INST01: FL1P3BX + generic map (GSR => "DISABLED") + port map (D0=>D0, D1=>D1, SP=>SP, CK=>CK, SD=>SD, PD=>LSR, Q=>Q); end Structure; --- entity i30_SLICE_71 +-- entity SLICE_45 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity i30_SLICE_71 is + entity SLICE_45 is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "i30_SLICE_71"; + InstancePath : string := "SLICE_45"; + tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); @@ -10488,27 +10235,39 @@ tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C1_OFX0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_OFX0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_OFX0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_D0_OFX0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C0_OFX0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_OFX0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_OFX0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_M0_OFX0 : VitalDelayType01 := (0 ns, 0 ns)); + tipd_DI0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI0_CLK : VitalDelayType := 0 ns; + tsetup_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_DI0_CLK_noedge_posedge : VitalDelayType := 0 ns; + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns); - port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; - D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; - A0: in Std_logic; M0: in Std_logic; OFX0: out Std_logic); + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; + B0: in Std_logic; A0: in Std_logic; DI0: in Std_logic; + CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; + F1: out Std_logic); - ATTRIBUTE Vital_Level0 OF i30_SLICE_71 : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF SLICE_45 : ENTITY IS TRUE; - end i30_SLICE_71; + end SLICE_45; - architecture Structure of i30_SLICE_71 is + architecture Structure of SLICE_45 is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + signal D1_ipd : std_logic := 'X'; signal C1_ipd : std_logic := 'X'; signal B1_ipd : std_logic := 'X'; signal A1_ipd : std_logic := 'X'; @@ -10516,185 +10275,45 @@ signal C0_ipd : std_logic := 'X'; signal B0_ipd : std_logic := 'X'; signal A0_ipd : std_logic := 'X'; - signal M0_ipd : std_logic := 'X'; - signal OFX0_out : std_logic := 'X'; - - signal GNDI: Std_logic; - signal i30_SLICE_71_i30_SLICE_71_K1_H1: Std_logic; - signal i30_SLICE_71_i30_GATE_H0: Std_logic; - component gnd - port (PWR0: out Std_logic); - end component; - component lut40042 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component lut40043 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component selmux2 - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - Z: out Std_logic); - end component; - begin - i30_SLICE_71_K1: lut40042 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>GNDI, - Z=>i30_SLICE_71_i30_SLICE_71_K1_H1); - DRIVEGND: gnd - port map (PWR0=>GNDI); - i30_GATE: lut40043 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, - Z=>i30_SLICE_71_i30_GATE_H0); - i30_SLICE_71_K0K1MUX: selmux2 - port map (D0=>i30_SLICE_71_i30_GATE_H0, - D1=>i30_SLICE_71_i30_SLICE_71_K1_H1, SD=>M0_ipd, Z=>OFX0_out); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(C1_ipd, C1, tipd_C1); - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(D0_ipd, D0, tipd_D0); - VitalWireDelay(C0_ipd, C0, tipd_C0); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(M0_ipd, M0, tipd_M0); - END BLOCK; - - VitalBehavior : PROCESS (C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, B0_ipd, - A0_ipd, M0_ipd, OFX0_out) - VARIABLE OFX0_zd : std_logic := 'X'; - VARIABLE OFX0_GlitchData : VitalGlitchDataType; - - - BEGIN - - IF (TimingChecksOn) THEN - - END IF; - - OFX0_zd := OFX0_out; - - VitalPathDelay01 ( - OutSignal => OFX0, OutSignalName => "OFX0", OutTemp => OFX0_zd, - Paths => (0 => (InputChangeTime => C1_ipd'last_event, - PathDelay => tpd_C1_OFX0, - PathCondition => TRUE), - 1 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_OFX0, - PathCondition => TRUE), - 2 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_OFX0, - PathCondition => TRUE), - 3 => (InputChangeTime => D0_ipd'last_event, - PathDelay => tpd_D0_OFX0, - PathCondition => TRUE), - 4 => (InputChangeTime => C0_ipd'last_event, - PathDelay => tpd_C0_OFX0, - PathCondition => TRUE), - 5 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_OFX0, - PathCondition => TRUE), - 6 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_OFX0, - PathCondition => TRUE), - 7 => (InputChangeTime => M0_ipd'last_event, - PathDelay => tpd_M0_OFX0, - PathCondition => TRUE)), - GlitchData => OFX0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity lut40044 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity lut40044 is - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - - ATTRIBUTE Vital_Level0 OF lut40044 : ENTITY IS TRUE; - - end lut40044; - - architecture Structure of lut40044 is - begin - INST10: ROM16X1A - generic map (initval => X"FF40") - port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); - end Structure; - --- entity SLICE_72 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_72 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_72"; - - tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); - - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; B0: in Std_logic; A0: in Std_logic; - F0: out Std_logic; F1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_72 : ENTITY IS TRUE; - - end SLICE_72; - - architecture Structure of SLICE_72 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal D1_ipd : std_logic := 'X'; - signal C1_ipd : std_logic := 'X'; - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; + signal DI0_ipd : std_logic := 'X'; + signal DI0_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; signal F0_out : std_logic := 'X'; + signal Q0_out : std_logic := 'X'; signal F1_out : std_logic := 'X'; + signal VCCI: Std_logic; signal GNDI: Std_logic; + component vcc + port (PWR1: out Std_logic); + end component; component gnd port (PWR0: out Std_logic); end component; - component lut40039 + component lut40040 port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; Z: out Std_logic); end component; - component lut40044 + component lut40041 port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; Z: out Std_logic); end component; + component vmuxregsre0042 + port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; + SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; + Q: out Std_logic); + end component; begin - i1_4_lut_4_lut_adj_12: lut40044 + nUFMCS_s_0_m4_yy: lut40040 port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); - i2_2_lut: lut40039 - port map (A=>A0_ipd, B=>B0_ipd, C=>GNDI, D=>GNDI, Z=>F0_out); + nUFMCS_s_0_N_5_i: lut40041 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); + nUFMCS: vmuxregsre0042 + port map (D0=>VCCI, D1=>DI0_dly, SD=>VCCI, SP=>VCCI, CK=>CLK_dly, + LSR=>GNDI, Q=>Q0_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); DRIVEGND: gnd port map (PWR0=>GNDI); @@ -10705,37 +10324,98 @@ VitalWireDelay(C1_ipd, C1, tipd_C1); VitalWireDelay(B1_ipd, B1, tipd_B1); VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(D0_ipd, D0, tipd_D0); + VitalWireDelay(C0_ipd, C0, tipd_C0); VitalWireDelay(B0_ipd, B0, tipd_B0); VitalWireDelay(A0_ipd, A0, tipd_A0); + VitalWireDelay(DI0_ipd, DI0, tipd_DI0); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); END BLOCK; - VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, B0_ipd, A0_ipd, - F0_out, F1_out) + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI0_dly, DI0_ipd, tisd_DI0_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, + B0_ipd, A0_ipd, DI0_dly, CLK_dly, F0_out, Q0_out, F1_out) VARIABLE F0_zd : std_logic := 'X'; VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE Q0_zd : std_logic := 'X'; + VARIABLE Q0_GlitchData : VitalGlitchDataType; VARIABLE F1_zd : std_logic := 'X'; VARIABLE F1_GlitchData : VitalGlitchDataType; + VARIABLE tviol_DI0_CLK : x01 := '0'; + VARIABLE DI0_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI0_dly, + TestSignalName => "DI0", + TestDelay => tisd_DI0_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI0_CLK_noedge_posedge, + SetupLow => tsetup_DI0_CLK_noedge_posedge, + HoldHigh => thold_DI0_CLK_noedge_posedge, + HoldLow => thold_DI0_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI0_CLK_TimingDatash, + Violation => tviol_DI0_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); END IF; F0_zd := F0_out; + Q0_zd := Q0_out; F1_zd := F1_out; VitalPathDelay01 ( OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => B0_ipd'last_event, + Paths => (0 => (InputChangeTime => D0_ipd'last_event, + PathDelay => tpd_D0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => B0_ipd'last_event, PathDelay => tpd_B0_F0, PathCondition => TRUE), - 1 => (InputChangeTime => A0_ipd'last_event, + 3 => (InputChangeTime => A0_ipd'last_event, PathDelay => tpd_A0_F0, PathCondition => TRUE)), GlitchData => F0_GlitchData, Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q0, + PathCondition => TRUE)), + GlitchData => Q0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); VitalPathDelay01 ( OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, Paths => (0 => (InputChangeTime => D1_ipd'last_event, @@ -10757,19 +10437,61 @@ end Structure; --- entity SLICE_73 +-- entity lut40043 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity SLICE_73 is + entity lut40043 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40043 : ENTITY IS TRUE; + + end lut40043; + + architecture Structure of lut40043 is + begin + INST10: ROM16X1A + generic map (initval => X"EAAA") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity lut40044 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40044 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40044 : ENTITY IS TRUE; + + end lut40044; + + architecture Structure of lut40044 is + begin + INST10: ROM16X1A + generic map (initval => X"FF80") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity SLICE_46 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_46 is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_73"; + InstancePath : string := "SLICE_46"; tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); @@ -10793,11 +10515,11 @@ B0: in Std_logic; A0: in Std_logic; F0: out Std_logic; F1: out Std_logic); - ATTRIBUTE Vital_Level0 OF SLICE_73 : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF SLICE_46 : ENTITY IS TRUE; - end SLICE_73; + end SLICE_46; - architecture Structure of SLICE_73 is + architecture Structure of SLICE_46 is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; signal D1_ipd : std_logic := 'X'; @@ -10811,18 +10533,18 @@ signal F0_out : std_logic := 'X'; signal F1_out : std_logic := 'X'; - component lut40003 + component lut40043 port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; Z: out Std_logic); end component; - component lut40010 + component lut40044 port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; Z: out Std_logic); end component; begin - i2_3_lut_4_lut_adj_14: lut40003 + un1_ADWR: lut40043 port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); - i4_4_lut: lut40010 + un1_CMDWR: lut40044 port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); -- INPUT PATH DELAYs @@ -10909,967 +10631,23 @@ architecture Structure of lut40045 is begin INST10: ROM16X1A - generic map (initval => X"0020") + generic map (initval => X"0B00") port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); end Structure; --- entity SLICE_74 +-- entity SLICE_47 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity SLICE_74 is + entity SLICE_47 is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_74"; - - tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_LSR : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); - tperiod_LSR : VitalDelayType := 0 ns; - tpw_LSR_posedge : VitalDelayType := 0 ns; - tpw_LSR_negedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns; - ticd_CLK : VitalDelayType := 0 ns; - tisd_M1_CLK : VitalDelayType := 0 ns; - tsetup_M1_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_M1_CLK_noedge_negedge : VitalDelayType := 0 ns; - tisd_M0_CLK : VitalDelayType := 0 ns; - tsetup_M0_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_M0_CLK_noedge_negedge : VitalDelayType := 0 ns; - tisd_LSR_CLK : VitalDelayType := 0 ns; - tsetup_LSR_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_LSR_CLK_noedge_negedge : VitalDelayType := 0 ns); - - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; - B0: in Std_logic; A0: in Std_logic; M1: in Std_logic; - M0: in Std_logic; LSR: in Std_logic; CLK: in Std_logic; - F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic; - Q1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_74 : ENTITY IS TRUE; - - end SLICE_74; - - architecture Structure of SLICE_74 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal D1_ipd : std_logic := 'X'; - signal C1_ipd : std_logic := 'X'; - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal D0_ipd : std_logic := 'X'; - signal C0_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal M1_ipd : std_logic := 'X'; - signal M1_dly : std_logic := 'X'; - signal M0_ipd : std_logic := 'X'; - signal M0_dly : std_logic := 'X'; - signal LSR_ipd : std_logic := 'X'; - signal LSR_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - signal Q1_out : std_logic := 'X'; - - signal VCCI: Std_logic; - signal GNDI: Std_logic; - signal CLK_NOTIN: Std_logic; - signal LSR_NOTIN: Std_logic; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component vmuxregsre0004 - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component inverter - port (I: in Std_logic; Z: out Std_logic); - end component; - component lut40033 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component lut40045 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - i12_4_lut: lut40033 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); - i1_2_lut_3_lut_4_lut: lut40045 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); - RowA_i1: vmuxregsre0004 - port map (D0=>M1_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_NOTIN, - LSR=>LSR_NOTIN, Q=>Q1_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - DRIVEGND: gnd - port map (PWR0=>GNDI); - CLK_INVERTERIN: inverter - port map (I=>CLK_dly, Z=>CLK_NOTIN); - LSR_INVERTERIN: inverter - port map (I=>LSR_dly, Z=>LSR_NOTIN); - RowA_i0: vmuxregsre0004 - port map (D0=>M0_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_NOTIN, - LSR=>LSR_NOTIN, Q=>Q0_out); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(D1_ipd, D1, tipd_D1); - VitalWireDelay(C1_ipd, C1, tipd_C1); - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(D0_ipd, D0, tipd_D0); - VitalWireDelay(C0_ipd, C0, tipd_C0); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(M1_ipd, M1, tipd_M1); - VitalWireDelay(M0_ipd, M0, tipd_M0); - VitalWireDelay(LSR_ipd, LSR, tipd_LSR); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(M1_dly, M1_ipd, tisd_M1_CLK); - VitalSignalDelay(M0_dly, M0_ipd, tisd_M0_CLK); - VitalSignalDelay(LSR_dly, LSR_ipd, tisd_LSR_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, - B0_ipd, A0_ipd, M1_dly, M0_dly, LSR_dly, CLK_dly, F0_out, Q0_out, F1_out, - Q1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - VARIABLE Q1_zd : std_logic := 'X'; - VARIABLE Q1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_M1_CLK : x01 := '0'; - VARIABLE M1_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_M0_CLK : x01 := '0'; - VARIABLE M0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_LSR_CLK : x01 := '0'; - VARIABLE LSR_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_LSR_LSR : x01 := '0'; - VARIABLE periodcheckinfo_LSR : VitalPeriodDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => M1_dly, - TestSignalName => "M1", - TestDelay => tisd_M1_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M1_CLK_noedge_negedge, - SetupLow => tsetup_M1_CLK_noedge_negedge, - HoldHigh => thold_M1_CLK_noedge_negedge, - HoldLow => thold_M1_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M1_CLK_TimingDatash, - Violation => tviol_M1_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => M0_dly, - TestSignalName => "M0", - TestDelay => tisd_M0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M0_CLK_noedge_negedge, - SetupLow => tsetup_M0_CLK_noedge_negedge, - HoldHigh => thold_M0_CLK_noedge_negedge, - HoldLow => thold_M0_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M0_CLK_TimingDatash, - Violation => tviol_M0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => LSR_dly, - TestSignalName => "LSR", - TestDelay => tisd_LSR_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_LSR_CLK_noedge_negedge, - SetupLow => tsetup_LSR_CLK_noedge_negedge, - HoldHigh => thold_LSR_CLK_noedge_negedge, - HoldLow => thold_LSR_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => LSR_CLK_TimingDatash, - Violation => tviol_LSR_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => LSR_ipd, - TestSignalName => "LSR", - Period => tperiod_LSR, - PulseWidthHigh => tpw_LSR_posedge, - PulseWidthLow => tpw_LSR_negedge, - PeriodData => periodcheckinfo_LSR, - Violation => tviol_LSR_LSR, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - F1_zd := F1_out; - Q1_zd := Q1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => D0_ipd'last_event, - PathDelay => tpd_D0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => C0_ipd'last_event, - PathDelay => tpd_C0_F0, - PathCondition => TRUE), - 2 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 3 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => D1_ipd'last_event, - PathDelay => tpd_D1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => C1_ipd'last_event, - PathDelay => tpd_C1_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 3 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q1, - PathCondition => TRUE)), - GlitchData => Q1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity SLICE_75 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_75 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_75"; - - tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CE : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); - ticd_CLK : VitalDelayType := 0 ns; - tisd_M1_CLK : VitalDelayType := 0 ns; - tsetup_M1_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_M1_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_M0_CLK : VitalDelayType := 0 ns; - tsetup_M0_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_M0_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_CE_CLK : VitalDelayType := 0 ns; - tsetup_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns); - - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; B0: in Std_logic; A0: in Std_logic; - M1: in Std_logic; M0: in Std_logic; CE: in Std_logic; - CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; - F1: out Std_logic; Q1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_75 : ENTITY IS TRUE; - - end SLICE_75; - - architecture Structure of SLICE_75 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal D1_ipd : std_logic := 'X'; - signal C1_ipd : std_logic := 'X'; - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal M1_ipd : std_logic := 'X'; - signal M1_dly : std_logic := 'X'; - signal M0_ipd : std_logic := 'X'; - signal M0_dly : std_logic := 'X'; - signal CE_ipd : std_logic := 'X'; - signal CE_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - signal Q1_out : std_logic := 'X'; - - signal GNDI: Std_logic; - signal VCCI: Std_logic; - component vmuxregsre - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component lut40027 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component lut40038 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - i3_4_lut_adj_18: lut40027 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); - i1_2_lut: lut40038 - port map (A=>A0_ipd, B=>B0_ipd, C=>GNDI, D=>GNDI, Z=>F0_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - IS_FSM_i9: vmuxregsre - port map (D0=>M1_dly, D1=>VCCI, SD=>GNDI, SP=>CE_dly, CK=>CLK_dly, - LSR=>GNDI, Q=>Q1_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - IS_FSM_i8: vmuxregsre - port map (D0=>M0_dly, D1=>VCCI, SD=>GNDI, SP=>CE_dly, CK=>CLK_dly, - LSR=>GNDI, Q=>Q0_out); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(D1_ipd, D1, tipd_D1); - VitalWireDelay(C1_ipd, C1, tipd_C1); - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(M1_ipd, M1, tipd_M1); - VitalWireDelay(M0_ipd, M0, tipd_M0); - VitalWireDelay(CE_ipd, CE, tipd_CE); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(M1_dly, M1_ipd, tisd_M1_CLK); - VitalSignalDelay(M0_dly, M0_ipd, tisd_M0_CLK); - VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, B0_ipd, A0_ipd, - M1_dly, M0_dly, CE_dly, CLK_dly, F0_out, Q0_out, F1_out, Q1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - VARIABLE Q1_zd : std_logic := 'X'; - VARIABLE Q1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_M1_CLK : x01 := '0'; - VARIABLE M1_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_M0_CLK : x01 := '0'; - VARIABLE M0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CE_CLK : x01 := '0'; - VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => M1_dly, - TestSignalName => "M1", - TestDelay => tisd_M1_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M1_CLK_noedge_posedge, - SetupLow => tsetup_M1_CLK_noedge_posedge, - HoldHigh => thold_M1_CLK_noedge_posedge, - HoldLow => thold_M1_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M1_CLK_TimingDatash, - Violation => tviol_M1_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => M0_dly, - TestSignalName => "M0", - TestDelay => tisd_M0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M0_CLK_noedge_posedge, - SetupLow => tsetup_M0_CLK_noedge_posedge, - HoldHigh => thold_M0_CLK_noedge_posedge, - HoldLow => thold_M0_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M0_CLK_TimingDatash, - Violation => tviol_M0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => CE_dly, - TestSignalName => "CE", - TestDelay => tisd_CE_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_CE_CLK_noedge_posedge, - SetupLow => tsetup_CE_CLK_noedge_posedge, - HoldHigh => thold_CE_CLK_noedge_posedge, - HoldLow => thold_CE_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => CE_CLK_TimingDatash, - Violation => tviol_CE_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - F1_zd := F1_out; - Q1_zd := Q1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => D1_ipd'last_event, - PathDelay => tpd_D1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => C1_ipd'last_event, - PathDelay => tpd_C1_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 3 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q1, - PathCondition => TRUE)), - GlitchData => Q1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity SLICE_76 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_76 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_76"; - - tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_LSR : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); - tperiod_LSR : VitalDelayType := 0 ns; - tpw_LSR_posedge : VitalDelayType := 0 ns; - tpw_LSR_negedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns; - ticd_CLK : VitalDelayType := 0 ns; - tisd_M1_CLK : VitalDelayType := 0 ns; - tsetup_M1_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_M1_CLK_noedge_negedge : VitalDelayType := 0 ns; - tisd_M0_CLK : VitalDelayType := 0 ns; - tsetup_M0_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_M0_CLK_noedge_negedge : VitalDelayType := 0 ns; - tisd_LSR_CLK : VitalDelayType := 0 ns; - tsetup_LSR_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_LSR_CLK_noedge_negedge : VitalDelayType := 0 ns); - - port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; - D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; - A0: in Std_logic; M1: in Std_logic; M0: in Std_logic; - LSR: in Std_logic; CLK: in Std_logic; F0: out Std_logic; - Q0: out Std_logic; F1: out Std_logic; Q1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_76 : ENTITY IS TRUE; - - end SLICE_76; - - architecture Structure of SLICE_76 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal C1_ipd : std_logic := 'X'; - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal D0_ipd : std_logic := 'X'; - signal C0_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal M1_ipd : std_logic := 'X'; - signal M1_dly : std_logic := 'X'; - signal M0_ipd : std_logic := 'X'; - signal M0_dly : std_logic := 'X'; - signal LSR_ipd : std_logic := 'X'; - signal LSR_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - signal Q1_out : std_logic := 'X'; - - signal GNDI: Std_logic; - signal VCCI: Std_logic; - signal CLK_NOTIN: Std_logic; - signal LSR_NOTIN: Std_logic; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component vmuxregsre0004 - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component inverter - port (I: in Std_logic; Z: out Std_logic); - end component; - component vmuxregsre0007 - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component lut40012 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component lut40026 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - i1_2_lut_rep_19_3_lut: lut40012 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>GNDI, Z=>F1_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - i1_2_lut_rep_15_4_lut: lut40026 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); - RowA_i9: vmuxregsre0007 - port map (D0=>M1_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_NOTIN, - LSR=>LSR_NOTIN, Q=>Q1_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - CLK_INVERTERIN: inverter - port map (I=>CLK_dly, Z=>CLK_NOTIN); - LSR_INVERTERIN: inverter - port map (I=>LSR_dly, Z=>LSR_NOTIN); - RowA_i8: vmuxregsre0004 - port map (D0=>M0_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_NOTIN, - LSR=>LSR_NOTIN, Q=>Q0_out); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(C1_ipd, C1, tipd_C1); - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(D0_ipd, D0, tipd_D0); - VitalWireDelay(C0_ipd, C0, tipd_C0); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(M1_ipd, M1, tipd_M1); - VitalWireDelay(M0_ipd, M0, tipd_M0); - VitalWireDelay(LSR_ipd, LSR, tipd_LSR); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(M1_dly, M1_ipd, tisd_M1_CLK); - VitalSignalDelay(M0_dly, M0_ipd, tisd_M0_CLK); - VitalSignalDelay(LSR_dly, LSR_ipd, tisd_LSR_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, B0_ipd, - A0_ipd, M1_dly, M0_dly, LSR_dly, CLK_dly, F0_out, Q0_out, F1_out, Q1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - VARIABLE Q1_zd : std_logic := 'X'; - VARIABLE Q1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_M1_CLK : x01 := '0'; - VARIABLE M1_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_M0_CLK : x01 := '0'; - VARIABLE M0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_LSR_CLK : x01 := '0'; - VARIABLE LSR_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_LSR_LSR : x01 := '0'; - VARIABLE periodcheckinfo_LSR : VitalPeriodDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => M1_dly, - TestSignalName => "M1", - TestDelay => tisd_M1_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M1_CLK_noedge_negedge, - SetupLow => tsetup_M1_CLK_noedge_negedge, - HoldHigh => thold_M1_CLK_noedge_negedge, - HoldLow => thold_M1_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M1_CLK_TimingDatash, - Violation => tviol_M1_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => M0_dly, - TestSignalName => "M0", - TestDelay => tisd_M0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M0_CLK_noedge_negedge, - SetupLow => tsetup_M0_CLK_noedge_negedge, - HoldHigh => thold_M0_CLK_noedge_negedge, - HoldLow => thold_M0_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M0_CLK_TimingDatash, - Violation => tviol_M0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => LSR_dly, - TestSignalName => "LSR", - TestDelay => tisd_LSR_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_LSR_CLK_noedge_negedge, - SetupLow => tsetup_LSR_CLK_noedge_negedge, - HoldHigh => thold_LSR_CLK_noedge_negedge, - HoldLow => thold_LSR_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => LSR_CLK_TimingDatash, - Violation => tviol_LSR_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => LSR_ipd, - TestSignalName => "LSR", - Period => tperiod_LSR, - PulseWidthHigh => tpw_LSR_posedge, - PulseWidthLow => tpw_LSR_negedge, - PeriodData => periodcheckinfo_LSR, - Violation => tviol_LSR_LSR, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - F1_zd := F1_out; - Q1_zd := Q1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => D0_ipd'last_event, - PathDelay => tpd_D0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => C0_ipd'last_event, - PathDelay => tpd_C0_F0, - PathCondition => TRUE), - 2 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 3 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => C1_ipd'last_event, - PathDelay => tpd_C1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q1, - PathCondition => TRUE)), - GlitchData => Q1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity lut40046 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity lut40046 is - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - - ATTRIBUTE Vital_Level0 OF lut40046 : ENTITY IS TRUE; - - end lut40046; - - architecture Structure of lut40046 is - begin - INST10: ROM16X1A - generic map (initval => X"0800") - port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); - end Structure; - --- entity SLICE_77 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_77 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_77"; + InstancePath : string := "SLICE_47"; tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); @@ -11893,11 +10671,11 @@ B0: in Std_logic; A0: in Std_logic; F0: out Std_logic; F1: out Std_logic); - ATTRIBUTE Vital_Level0 OF SLICE_77 : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF SLICE_47 : ENTITY IS TRUE; - end SLICE_77; + end SLICE_47; - architecture Structure of SLICE_77 is + architecture Structure of SLICE_47 is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; signal D1_ipd : std_logic := 'X'; @@ -11911,14 +10689,18 @@ signal F0_out : std_logic := 'X'; signal F1_out : std_logic := 'X'; - component lut40046 + component lut40035 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40045 port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; Z: out Std_logic); end component; begin - i3_4_lut_adj_22: lut40046 + nUFMCS15_0_a2: lut40035 port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); - i3_4_lut: lut40046 + UFMCLK_0io_RNO: lut40045 port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); -- INPUT PATH DELAYs @@ -11988,6 +10770,160 @@ end Structure; +-- entity lut40046 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40046 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40046 : ENTITY IS TRUE; + + end lut40046; + + architecture Structure of lut40046 is + begin + INST10: ROM16X1A + generic map (initval => X"0E0E") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity SLICE_48 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_48 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_48"; + + tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); + + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; F0: out Std_logic; F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_48 : ENTITY IS TRUE; + + end SLICE_48; + + architecture Structure of SLICE_48 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal D1_ipd : std_logic := 'X'; + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + component gnd + port (PWR0: out Std_logic); + end component; + component lut40015 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40046 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + UFMCLK_r_i_a2_2_2: lut40015 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); + UFMCLK_0io_RNO_1: lut40046 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>GNDI, Z=>F0_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(D1_ipd, D1, tipd_D1); + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(C0_ipd, C0, tipd_C0); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + END BLOCK; + + VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, C0_ipd, B0_ipd, + A0_ipd, F0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + F0_zd := F0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => D1_ipd'last_event, + PathDelay => tpd_D1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 3 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + -- entity lut40047 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; @@ -12005,10 +10941,145 @@ architecture Structure of lut40047 is begin INST10: ROM16X1A - generic map (initval => X"F0DD") + generic map (initval => X"0BFB") port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); end Structure; +-- entity SLICE_49 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_49 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_49"; + + tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); + + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; + B0: in Std_logic; A0: in Std_logic; F0: out Std_logic; + F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_49 : ENTITY IS TRUE; + + end SLICE_49; + + architecture Structure of SLICE_49 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal D1_ipd : std_logic := 'X'; + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal D0_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + component lut40019 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40047 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + IS_0_sqmuxa_0_o2_0: lut40019 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); + un1_nRCAS_6_sqmuxa_i_0: lut40047 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(D1_ipd, D1, tipd_D1); + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(D0_ipd, D0, tipd_D0); + VitalWireDelay(C0_ipd, C0, tipd_C0); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + END BLOCK; + + VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, + B0_ipd, A0_ipd, F0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + F0_zd := F0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => D0_ipd'last_event, + PathDelay => tpd_D0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 3 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => D1_ipd'last_event, + PathDelay => tpd_D1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 3 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + -- entity lut40048 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; @@ -12026,291 +11097,10 @@ architecture Structure of lut40048 is begin INST10: ROM16X1A - generic map (initval => X"DDDD") + generic map (initval => X"2722") port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); end Structure; --- entity SLICE_78 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_78 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_78"; - - tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CE : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); - ticd_CLK : VitalDelayType := 0 ns; - tisd_M1_CLK : VitalDelayType := 0 ns; - tsetup_M1_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_M1_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_M0_CLK : VitalDelayType := 0 ns; - tsetup_M0_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_M0_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_CE_CLK : VitalDelayType := 0 ns; - tsetup_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns); - - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; B0: in Std_logic; A0: in Std_logic; - M1: in Std_logic; M0: in Std_logic; CE: in Std_logic; - CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; - F1: out Std_logic; Q1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_78 : ENTITY IS TRUE; - - end SLICE_78; - - architecture Structure of SLICE_78 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal D1_ipd : std_logic := 'X'; - signal C1_ipd : std_logic := 'X'; - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal M1_ipd : std_logic := 'X'; - signal M1_dly : std_logic := 'X'; - signal M0_ipd : std_logic := 'X'; - signal M0_dly : std_logic := 'X'; - signal CE_ipd : std_logic := 'X'; - signal CE_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - signal Q1_out : std_logic := 'X'; - - signal GNDI: Std_logic; - signal VCCI: Std_logic; - component vmuxregsre - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component lut40047 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component lut40048 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - nRCS_N_146_bdd_4_lut: lut40047 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); - i1423_2_lut: lut40048 - port map (A=>A0_ipd, B=>B0_ipd, C=>GNDI, D=>GNDI, Z=>F0_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - IS_FSM_i13: vmuxregsre - port map (D0=>M1_dly, D1=>VCCI, SD=>GNDI, SP=>CE_dly, CK=>CLK_dly, - LSR=>GNDI, Q=>Q1_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - IS_FSM_i12: vmuxregsre - port map (D0=>M0_dly, D1=>VCCI, SD=>GNDI, SP=>CE_dly, CK=>CLK_dly, - LSR=>GNDI, Q=>Q0_out); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(D1_ipd, D1, tipd_D1); - VitalWireDelay(C1_ipd, C1, tipd_C1); - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(M1_ipd, M1, tipd_M1); - VitalWireDelay(M0_ipd, M0, tipd_M0); - VitalWireDelay(CE_ipd, CE, tipd_CE); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(M1_dly, M1_ipd, tisd_M1_CLK); - VitalSignalDelay(M0_dly, M0_ipd, tisd_M0_CLK); - VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, B0_ipd, A0_ipd, - M1_dly, M0_dly, CE_dly, CLK_dly, F0_out, Q0_out, F1_out, Q1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - VARIABLE Q1_zd : std_logic := 'X'; - VARIABLE Q1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_M1_CLK : x01 := '0'; - VARIABLE M1_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_M0_CLK : x01 := '0'; - VARIABLE M0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CE_CLK : x01 := '0'; - VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => M1_dly, - TestSignalName => "M1", - TestDelay => tisd_M1_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M1_CLK_noedge_posedge, - SetupLow => tsetup_M1_CLK_noedge_posedge, - HoldHigh => thold_M1_CLK_noedge_posedge, - HoldLow => thold_M1_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M1_CLK_TimingDatash, - Violation => tviol_M1_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => M0_dly, - TestSignalName => "M0", - TestDelay => tisd_M0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M0_CLK_noedge_posedge, - SetupLow => tsetup_M0_CLK_noedge_posedge, - HoldHigh => thold_M0_CLK_noedge_posedge, - HoldLow => thold_M0_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M0_CLK_TimingDatash, - Violation => tviol_M0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => CE_dly, - TestSignalName => "CE", - TestDelay => tisd_CE_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_CE_CLK_noedge_posedge, - SetupLow => tsetup_CE_CLK_noedge_posedge, - HoldHigh => thold_CE_CLK_noedge_posedge, - HoldLow => thold_CE_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => CE_CLK_TimingDatash, - Violation => tviol_CE_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - F1_zd := F1_out; - Q1_zd := Q1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => D1_ipd'last_event, - PathDelay => tpd_D1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => C1_ipd'last_event, - PathDelay => tpd_C1_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 3 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q1, - PathCondition => TRUE)), - GlitchData => Q1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - -- entity lut40049 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; @@ -12328,105 +11118,65 @@ architecture Structure of lut40049 is begin INST10: ROM16X1A - generic map (initval => X"0200") + generic map (initval => X"F4F4") port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); end Structure; --- entity SLICE_79 +-- entity SLICE_50 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity SLICE_79 is + entity SLICE_50 is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_79"; + InstancePath : string := "SLICE_50"; + tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CE : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); - ticd_CLK : VitalDelayType := 0 ns; - tisd_M1_CLK : VitalDelayType := 0 ns; - tsetup_M1_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_M1_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_M0_CLK : VitalDelayType := 0 ns; - tsetup_M0_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_M0_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_CE_CLK : VitalDelayType := 0 ns; - tsetup_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); - port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; - D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; - A0: in Std_logic; M1: in Std_logic; M0: in Std_logic; - CE: in Std_logic; CLK: in Std_logic; F0: out Std_logic; - Q0: out Std_logic; F1: out Std_logic; Q1: out Std_logic); + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; F0: out Std_logic; F1: out Std_logic); - ATTRIBUTE Vital_Level0 OF SLICE_79 : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF SLICE_50 : ENTITY IS TRUE; - end SLICE_79; + end SLICE_50; - architecture Structure of SLICE_79 is + architecture Structure of SLICE_50 is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + signal D1_ipd : std_logic := 'X'; signal C1_ipd : std_logic := 'X'; signal B1_ipd : std_logic := 'X'; signal A1_ipd : std_logic := 'X'; - signal D0_ipd : std_logic := 'X'; signal C0_ipd : std_logic := 'X'; signal B0_ipd : std_logic := 'X'; signal A0_ipd : std_logic := 'X'; - signal M1_ipd : std_logic := 'X'; - signal M1_dly : std_logic := 'X'; - signal M0_ipd : std_logic := 'X'; - signal M0_dly : std_logic := 'X'; - signal CE_ipd : std_logic := 'X'; - signal CE_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; signal F1_out : std_logic := 'X'; - signal Q1_out : std_logic := 'X'; signal GNDI: Std_logic; - signal VCCI: Std_logic; - component vmuxregsre - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component vcc - port (PWR1: out Std_logic); - end component; component gnd port (PWR0: out Std_logic); end component; - component lut40016 + component lut40048 port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; Z: out Std_logic); end component; @@ -12435,186 +11185,71 @@ Z: out Std_logic); end component; begin - i11_3_lut_rep_20: lut40016 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>GNDI, Z=>F1_out); + Cmdn8MEGEN_4_u_i_0: lut40048 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); + Cmdn8MEGEN_4_u_i_o2: lut40049 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>GNDI, Z=>F0_out); DRIVEGND: gnd port map (PWR0=>GNDI); - MAin_c_0_bdd_4_lut: lut40049 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); - IS_FSM_i11: vmuxregsre - port map (D0=>M1_dly, D1=>VCCI, SD=>GNDI, SP=>CE_dly, CK=>CLK_dly, - LSR=>GNDI, Q=>Q1_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - IS_FSM_i10: vmuxregsre - port map (D0=>M0_dly, D1=>VCCI, SD=>GNDI, SP=>CE_dly, CK=>CLK_dly, - LSR=>GNDI, Q=>Q0_out); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN + VitalWireDelay(D1_ipd, D1, tipd_D1); VitalWireDelay(C1_ipd, C1, tipd_C1); VitalWireDelay(B1_ipd, B1, tipd_B1); VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(D0_ipd, D0, tipd_D0); VitalWireDelay(C0_ipd, C0, tipd_C0); VitalWireDelay(B0_ipd, B0, tipd_B0); VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(M1_ipd, M1, tipd_M1); - VitalWireDelay(M0_ipd, M0, tipd_M0); - VitalWireDelay(CE_ipd, CE, tipd_CE); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); END BLOCK; - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(M1_dly, M1_ipd, tisd_M1_CLK); - VitalSignalDelay(M0_dly, M0_ipd, tisd_M0_CLK); - VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, B0_ipd, - A0_ipd, M1_dly, M0_dly, CE_dly, CLK_dly, F0_out, Q0_out, F1_out, Q1_out) + VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, C0_ipd, B0_ipd, + A0_ipd, F0_out, F1_out) VARIABLE F0_zd : std_logic := 'X'; VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; VARIABLE F1_zd : std_logic := 'X'; VARIABLE F1_GlitchData : VitalGlitchDataType; - VARIABLE Q1_zd : std_logic := 'X'; - VARIABLE Q1_GlitchData : VitalGlitchDataType; - VARIABLE tviol_M1_CLK : x01 := '0'; - VARIABLE M1_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_M0_CLK : x01 := '0'; - VARIABLE M0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CE_CLK : x01 := '0'; - VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => M1_dly, - TestSignalName => "M1", - TestDelay => tisd_M1_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M1_CLK_noedge_posedge, - SetupLow => tsetup_M1_CLK_noedge_posedge, - HoldHigh => thold_M1_CLK_noedge_posedge, - HoldLow => thold_M1_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M1_CLK_TimingDatash, - Violation => tviol_M1_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => M0_dly, - TestSignalName => "M0", - TestDelay => tisd_M0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M0_CLK_noedge_posedge, - SetupLow => tsetup_M0_CLK_noedge_posedge, - HoldHigh => thold_M0_CLK_noedge_posedge, - HoldLow => thold_M0_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M0_CLK_TimingDatash, - Violation => tviol_M0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => CE_dly, - TestSignalName => "CE", - TestDelay => tisd_CE_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_CE_CLK_noedge_posedge, - SetupLow => tsetup_CE_CLK_noedge_posedge, - HoldHigh => thold_CE_CLK_noedge_posedge, - HoldLow => thold_CE_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => CE_CLK_TimingDatash, - Violation => tviol_CE_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); END IF; F0_zd := F0_out; - Q0_zd := Q0_out; F1_zd := F1_out; - Q1_zd := Q1_out; VitalPathDelay01 ( OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => D0_ipd'last_event, - PathDelay => tpd_D0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => C0_ipd'last_event, + Paths => (0 => (InputChangeTime => C0_ipd'last_event, PathDelay => tpd_C0_F0, PathCondition => TRUE), - 2 => (InputChangeTime => B0_ipd'last_event, + 1 => (InputChangeTime => B0_ipd'last_event, PathDelay => tpd_B0_F0, PathCondition => TRUE), - 3 => (InputChangeTime => A0_ipd'last_event, + 2 => (InputChangeTime => A0_ipd'last_event, PathDelay => tpd_A0_F0, PathCondition => TRUE)), GlitchData => F0_GlitchData, Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); VitalPathDelay01 ( OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => C1_ipd'last_event, + Paths => (0 => (InputChangeTime => D1_ipd'last_event, + PathDelay => tpd_D1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => C1_ipd'last_event, PathDelay => tpd_C1_F1, PathCondition => TRUE), - 1 => (InputChangeTime => B1_ipd'last_event, + 2 => (InputChangeTime => B1_ipd'last_event, PathDelay => tpd_B1_F1, PathCondition => TRUE), - 2 => (InputChangeTime => A1_ipd'last_event, + 3 => (InputChangeTime => A1_ipd'last_event, PathDelay => tpd_A1_F1, PathCondition => TRUE)), GlitchData => F1_GlitchData, Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q1, - PathCondition => TRUE)), - GlitchData => Q1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); END PROCESS; @@ -12637,136 +11272,10 @@ architecture Structure of lut40050 is begin INST10: ROM16X1A - generic map (initval => X"0001") + generic map (initval => X"1313") port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); end Structure; --- entity SLICE_80 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_80 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_80"; - - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); - - port (B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; - C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; - F0: out Std_logic; F1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_80 : ENTITY IS TRUE; - - end SLICE_80; - - architecture Structure of SLICE_80 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal D0_ipd : std_logic := 'X'; - signal C0_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - - signal GNDI: Std_logic; - component gnd - port (PWR0: out Std_logic); - end component; - component lut40034 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component lut40050 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - i3_2_lut_rep_26: lut40034 - port map (A=>A1_ipd, B=>B1_ipd, C=>GNDI, D=>GNDI, Z=>F1_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - i2005_3_lut_rep_17_4_lut: lut40050 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(D0_ipd, D0, tipd_D0); - VitalWireDelay(C0_ipd, C0, tipd_C0); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - END BLOCK; - - VitalBehavior : PROCESS (B1_ipd, A1_ipd, D0_ipd, C0_ipd, B0_ipd, A0_ipd, - F0_out, F1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - - - BEGIN - - IF (TimingChecksOn) THEN - - END IF; - - F0_zd := F0_out; - F1_zd := F1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => D0_ipd'last_event, - PathDelay => tpd_D0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => C0_ipd'last_event, - PathDelay => tpd_C0_F0, - PathCondition => TRUE), - 2 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 3 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - -- entity lut40051 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; @@ -12784,102 +11293,65 @@ architecture Structure of lut40051 is begin INST10: ROM16X1A - generic map (initval => X"FCDD") + generic map (initval => X"1303") port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); end Structure; --- entity SLICE_81 +-- entity SLICE_51 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity SLICE_81 is + entity SLICE_51 is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_81"; + InstancePath : string := "SLICE_51"; + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CE : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); - ticd_CLK : VitalDelayType := 0 ns; - tisd_M1_CLK : VitalDelayType := 0 ns; - tsetup_M1_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_M1_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_M0_CLK : VitalDelayType := 0 ns; - tsetup_M0_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_M0_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_CE_CLK : VitalDelayType := 0 ns; - tsetup_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); - port (B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; - C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; - M1: in Std_logic; M0: in Std_logic; CE: in Std_logic; - CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; - F1: out Std_logic; Q1: out Std_logic); + port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; + D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; F0: out Std_logic; F1: out Std_logic); - ATTRIBUTE Vital_Level0 OF SLICE_81 : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF SLICE_51 : ENTITY IS TRUE; - end SLICE_81; + end SLICE_51; - architecture Structure of SLICE_81 is + architecture Structure of SLICE_51 is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + signal C1_ipd : std_logic := 'X'; signal B1_ipd : std_logic := 'X'; signal A1_ipd : std_logic := 'X'; signal D0_ipd : std_logic := 'X'; signal C0_ipd : std_logic := 'X'; signal B0_ipd : std_logic := 'X'; signal A0_ipd : std_logic := 'X'; - signal M1_ipd : std_logic := 'X'; - signal M1_dly : std_logic := 'X'; - signal M0_ipd : std_logic := 'X'; - signal M0_dly : std_logic := 'X'; - signal CE_ipd : std_logic := 'X'; - signal CE_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; signal F1_out : std_logic := 'X'; - signal Q1_out : std_logic := 'X'; signal GNDI: Std_logic; - signal VCCI: Std_logic; - component vmuxregsre - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component vcc - port (PWR1: out Std_logic); - end component; component gnd port (PWR0: out Std_logic); end component; - component lut40034 + component lut40050 port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; Z: out Std_logic); end component; @@ -12888,141 +11360,41 @@ Z: out Std_logic); end component; begin - i1_2_lut_rep_29: lut40034 - port map (A=>A1_ipd, B=>B1_ipd, C=>GNDI, D=>GNDI, Z=>F1_out); + nRCAS_0io_RNO_0: lut40050 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>GNDI, Z=>F1_out); DRIVEGND: gnd port map (PWR0=>GNDI); - i1427_4_lut: lut40051 + nRCAS_0io_RNO: lut40051 port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); - IS_FSM_i15: vmuxregsre - port map (D0=>M1_dly, D1=>VCCI, SD=>GNDI, SP=>CE_dly, CK=>CLK_dly, - LSR=>GNDI, Q=>Q1_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - IS_FSM_i14: vmuxregsre - port map (D0=>M0_dly, D1=>VCCI, SD=>GNDI, SP=>CE_dly, CK=>CLK_dly, - LSR=>GNDI, Q=>Q0_out); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN + VitalWireDelay(C1_ipd, C1, tipd_C1); VitalWireDelay(B1_ipd, B1, tipd_B1); VitalWireDelay(A1_ipd, A1, tipd_A1); VitalWireDelay(D0_ipd, D0, tipd_D0); VitalWireDelay(C0_ipd, C0, tipd_C0); VitalWireDelay(B0_ipd, B0, tipd_B0); VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(M1_ipd, M1, tipd_M1); - VitalWireDelay(M0_ipd, M0, tipd_M0); - VitalWireDelay(CE_ipd, CE, tipd_CE); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); END BLOCK; - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(M1_dly, M1_ipd, tisd_M1_CLK); - VitalSignalDelay(M0_dly, M0_ipd, tisd_M0_CLK); - VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (B1_ipd, A1_ipd, D0_ipd, C0_ipd, B0_ipd, A0_ipd, - M1_dly, M0_dly, CE_dly, CLK_dly, F0_out, Q0_out, F1_out, Q1_out) + VitalBehavior : PROCESS (C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, B0_ipd, + A0_ipd, F0_out, F1_out) VARIABLE F0_zd : std_logic := 'X'; VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; VARIABLE F1_zd : std_logic := 'X'; VARIABLE F1_GlitchData : VitalGlitchDataType; - VARIABLE Q1_zd : std_logic := 'X'; - VARIABLE Q1_GlitchData : VitalGlitchDataType; - VARIABLE tviol_M1_CLK : x01 := '0'; - VARIABLE M1_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_M0_CLK : x01 := '0'; - VARIABLE M0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CE_CLK : x01 := '0'; - VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => M1_dly, - TestSignalName => "M1", - TestDelay => tisd_M1_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M1_CLK_noedge_posedge, - SetupLow => tsetup_M1_CLK_noedge_posedge, - HoldHigh => thold_M1_CLK_noedge_posedge, - HoldLow => thold_M1_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M1_CLK_TimingDatash, - Violation => tviol_M1_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => M0_dly, - TestSignalName => "M0", - TestDelay => tisd_M0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M0_CLK_noedge_posedge, - SetupLow => tsetup_M0_CLK_noedge_posedge, - HoldHigh => thold_M0_CLK_noedge_posedge, - HoldLow => thold_M0_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M0_CLK_TimingDatash, - Violation => tviol_M0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => CE_dly, - TestSignalName => "CE", - TestDelay => tisd_CE_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_CE_CLK_noedge_posedge, - SetupLow => tsetup_CE_CLK_noedge_posedge, - HoldHigh => thold_CE_CLK_noedge_posedge, - HoldLow => thold_CE_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => CE_CLK_TimingDatash, - Violation => tviol_CE_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); END IF; F0_zd := F0_out; - Q0_zd := Q0_out; F1_zd := F1_out; - Q1_zd := Q1_out; VitalPathDelay01 ( OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, @@ -13040,30 +11412,19 @@ PathCondition => TRUE)), GlitchData => F0_GlitchData, Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); VitalPathDelay01 ( OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => B1_ipd'last_event, + Paths => (0 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => B1_ipd'last_event, PathDelay => tpd_B1_F1, PathCondition => TRUE), - 1 => (InputChangeTime => A1_ipd'last_event, + 2 => (InputChangeTime => A1_ipd'last_event, PathDelay => tpd_A1_F1, PathCondition => TRUE)), GlitchData => F1_GlitchData, Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q1, - PathCondition => TRUE)), - GlitchData => Q1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); END PROCESS; @@ -13086,322 +11447,10 @@ architecture Structure of lut40052 is begin INST10: ROM16X1A - generic map (initval => X"8000") + generic map (initval => X"FEFE") port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); end Structure; --- entity SLICE_82 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_82 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_82"; - - tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_LSR : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); - tperiod_LSR : VitalDelayType := 0 ns; - tpw_LSR_posedge : VitalDelayType := 0 ns; - tpw_LSR_negedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns; - ticd_CLK : VitalDelayType := 0 ns; - tisd_M1_CLK : VitalDelayType := 0 ns; - tsetup_M1_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_M1_CLK_noedge_negedge : VitalDelayType := 0 ns; - tisd_M0_CLK : VitalDelayType := 0 ns; - tsetup_M0_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_M0_CLK_noedge_negedge : VitalDelayType := 0 ns; - tisd_LSR_CLK : VitalDelayType := 0 ns; - tsetup_LSR_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_LSR_CLK_noedge_negedge : VitalDelayType := 0 ns); - - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; B0: in Std_logic; A0: in Std_logic; - M1: in Std_logic; M0: in Std_logic; LSR: in Std_logic; - CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; - F1: out Std_logic; Q1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_82 : ENTITY IS TRUE; - - end SLICE_82; - - architecture Structure of SLICE_82 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal D1_ipd : std_logic := 'X'; - signal C1_ipd : std_logic := 'X'; - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal M1_ipd : std_logic := 'X'; - signal M1_dly : std_logic := 'X'; - signal M0_ipd : std_logic := 'X'; - signal M0_dly : std_logic := 'X'; - signal LSR_ipd : std_logic := 'X'; - signal LSR_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - signal Q1_out : std_logic := 'X'; - - signal GNDI: Std_logic; - signal VCCI: Std_logic; - signal CLK_NOTIN: Std_logic; - signal LSR_NOTIN: Std_logic; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component vmuxregsre0004 - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component inverter - port (I: in Std_logic; Z: out Std_logic); - end component; - component vmuxregsre0007 - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component lut40039 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component lut40052 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - i6_4_lut: lut40052 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); - i1_2_lut_adj_3: lut40039 - port map (A=>A0_ipd, B=>B0_ipd, C=>GNDI, D=>GNDI, Z=>F0_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - RowA_i5: vmuxregsre0007 - port map (D0=>M1_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_NOTIN, - LSR=>LSR_NOTIN, Q=>Q1_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - CLK_INVERTERIN: inverter - port map (I=>CLK_dly, Z=>CLK_NOTIN); - LSR_INVERTERIN: inverter - port map (I=>LSR_dly, Z=>LSR_NOTIN); - RowA_i4: vmuxregsre0004 - port map (D0=>M0_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_NOTIN, - LSR=>LSR_NOTIN, Q=>Q0_out); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(D1_ipd, D1, tipd_D1); - VitalWireDelay(C1_ipd, C1, tipd_C1); - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(M1_ipd, M1, tipd_M1); - VitalWireDelay(M0_ipd, M0, tipd_M0); - VitalWireDelay(LSR_ipd, LSR, tipd_LSR); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(M1_dly, M1_ipd, tisd_M1_CLK); - VitalSignalDelay(M0_dly, M0_ipd, tisd_M0_CLK); - VitalSignalDelay(LSR_dly, LSR_ipd, tisd_LSR_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, B0_ipd, A0_ipd, - M1_dly, M0_dly, LSR_dly, CLK_dly, F0_out, Q0_out, F1_out, Q1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - VARIABLE Q1_zd : std_logic := 'X'; - VARIABLE Q1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_M1_CLK : x01 := '0'; - VARIABLE M1_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_M0_CLK : x01 := '0'; - VARIABLE M0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_LSR_CLK : x01 := '0'; - VARIABLE LSR_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_LSR_LSR : x01 := '0'; - VARIABLE periodcheckinfo_LSR : VitalPeriodDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => M1_dly, - TestSignalName => "M1", - TestDelay => tisd_M1_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M1_CLK_noedge_negedge, - SetupLow => tsetup_M1_CLK_noedge_negedge, - HoldHigh => thold_M1_CLK_noedge_negedge, - HoldLow => thold_M1_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M1_CLK_TimingDatash, - Violation => tviol_M1_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => M0_dly, - TestSignalName => "M0", - TestDelay => tisd_M0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M0_CLK_noedge_negedge, - SetupLow => tsetup_M0_CLK_noedge_negedge, - HoldHigh => thold_M0_CLK_noedge_negedge, - HoldLow => thold_M0_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M0_CLK_TimingDatash, - Violation => tviol_M0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => LSR_dly, - TestSignalName => "LSR", - TestDelay => tisd_LSR_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_LSR_CLK_noedge_negedge, - SetupLow => tsetup_LSR_CLK_noedge_negedge, - HoldHigh => thold_LSR_CLK_noedge_negedge, - HoldLow => thold_LSR_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => LSR_CLK_TimingDatash, - Violation => tviol_LSR_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => LSR_ipd, - TestSignalName => "LSR", - Period => tperiod_LSR, - PulseWidthHigh => tpw_LSR_posedge, - PulseWidthLow => tpw_LSR_negedge, - PeriodData => periodcheckinfo_LSR, - Violation => tviol_LSR_LSR, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - F1_zd := F1_out; - Q1_zd := Q1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => D1_ipd'last_event, - PathDelay => tpd_D1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => C1_ipd'last_event, - PathDelay => tpd_C1_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 3 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q1, - PathCondition => TRUE)), - GlitchData => Q1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - -- entity lut40053 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; @@ -13419,10 +11468,143 @@ architecture Structure of lut40053 is begin INST10: ROM16X1A - generic map (initval => X"0004") + generic map (initval => X"5051") port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); end Structure; +-- entity SLICE_52 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_52 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_52"; + + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); + + port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; + D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; F0: out Std_logic; F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_52 : ENTITY IS TRUE; + + end SLICE_52; + + architecture Structure of SLICE_52 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal D0_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + component gnd + port (PWR0: out Std_logic); + end component; + component lut40052 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40053 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + un1_nRCAS_6_sqmuxa_i_o2: lut40052 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>GNDI, Z=>F1_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + nRRAS_5_u_i_0_RNILD5I: lut40053 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(D0_ipd, D0, tipd_D0); + VitalWireDelay(C0_ipd, C0, tipd_C0); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + END BLOCK; + + VitalBehavior : PROCESS (C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, B0_ipd, + A0_ipd, F0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + F0_zd := F0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => D0_ipd'last_event, + PathDelay => tpd_D0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 3 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + -- entity lut40054 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; @@ -13440,145 +11622,10 @@ architecture Structure of lut40054 is begin INST10: ROM16X1A - generic map (initval => X"FFDF") + generic map (initval => X"FF40") port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); end Structure; --- entity SLICE_83 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_83 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_83"; - - tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); - - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; - B0: in Std_logic; A0: in Std_logic; F0: out Std_logic; - F1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_83 : ENTITY IS TRUE; - - end SLICE_83; - - architecture Structure of SLICE_83 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal D1_ipd : std_logic := 'X'; - signal C1_ipd : std_logic := 'X'; - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal D0_ipd : std_logic := 'X'; - signal C0_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - - component lut40053 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component lut40054 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - i2_4_lut_adj_21: lut40053 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); - i2_3_lut_4_lut_adj_6: lut40054 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(D1_ipd, D1, tipd_D1); - VitalWireDelay(C1_ipd, C1, tipd_C1); - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(D0_ipd, D0, tipd_D0); - VitalWireDelay(C0_ipd, C0, tipd_C0); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - END BLOCK; - - VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, - B0_ipd, A0_ipd, F0_out, F1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - - - BEGIN - - IF (TimingChecksOn) THEN - - END IF; - - F0_zd := F0_out; - F1_zd := F1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => D0_ipd'last_event, - PathDelay => tpd_D0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => C0_ipd'last_event, - PathDelay => tpd_C0_F0, - PathCondition => TRUE), - 2 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 3 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => D1_ipd'last_event, - PathDelay => tpd_D1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => C1_ipd'last_event, - PathDelay => tpd_C1_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 3 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - -- entity lut40055 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; @@ -13596,105 +11643,65 @@ architecture Structure of lut40055 is begin INST10: ROM16X1A - generic map (initval => X"2020") + generic map (initval => X"0202") port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); end Structure; --- entity SLICE_84 +-- entity SLICE_53 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity SLICE_84 is + entity SLICE_53 is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_84"; + InstancePath : string := "SLICE_53"; + tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CE : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); - ticd_CLK : VitalDelayType := 0 ns; - tisd_M1_CLK : VitalDelayType := 0 ns; - tsetup_M1_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_M1_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_M0_CLK : VitalDelayType := 0 ns; - tsetup_M0_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_M0_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_CE_CLK : VitalDelayType := 0 ns; - tsetup_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); - port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; - D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; - A0: in Std_logic; M1: in Std_logic; M0: in Std_logic; - CE: in Std_logic; CLK: in Std_logic; F0: out Std_logic; - Q0: out Std_logic; F1: out Std_logic; Q1: out Std_logic); + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; F0: out Std_logic; F1: out Std_logic); - ATTRIBUTE Vital_Level0 OF SLICE_84 : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF SLICE_53 : ENTITY IS TRUE; - end SLICE_84; + end SLICE_53; - architecture Structure of SLICE_84 is + architecture Structure of SLICE_53 is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + signal D1_ipd : std_logic := 'X'; signal C1_ipd : std_logic := 'X'; signal B1_ipd : std_logic := 'X'; signal A1_ipd : std_logic := 'X'; - signal D0_ipd : std_logic := 'X'; signal C0_ipd : std_logic := 'X'; signal B0_ipd : std_logic := 'X'; signal A0_ipd : std_logic := 'X'; - signal M1_ipd : std_logic := 'X'; - signal M1_dly : std_logic := 'X'; - signal M0_ipd : std_logic := 'X'; - signal M0_dly : std_logic := 'X'; - signal CE_ipd : std_logic := 'X'; - signal CE_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; signal F1_out : std_logic := 'X'; - signal Q1_out : std_logic := 'X'; signal GNDI: Std_logic; - signal VCCI: Std_logic; - component vmuxregsre - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component vcc - port (PWR1: out Std_logic); - end component; component gnd port (PWR0: out Std_logic); end component; - component lut40024 + component lut40054 port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; Z: out Std_logic); end component; @@ -13703,186 +11710,71 @@ Z: out Std_logic); end component; begin - i2_3_lut_rep_28: lut40055 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>GNDI, Z=>F1_out); + nRWE_s_i_tz_0: lut40054 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); + S_RNICVV51_0: lut40055 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>GNDI, Z=>F0_out); DRIVEGND: gnd port map (PWR0=>GNDI); - i1573_4_lut: lut40024 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); - IS_FSM_i3: vmuxregsre - port map (D0=>M1_dly, D1=>VCCI, SD=>GNDI, SP=>CE_dly, CK=>CLK_dly, - LSR=>GNDI, Q=>Q1_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - IS_FSM_i2: vmuxregsre - port map (D0=>M0_dly, D1=>VCCI, SD=>GNDI, SP=>CE_dly, CK=>CLK_dly, - LSR=>GNDI, Q=>Q0_out); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN + VitalWireDelay(D1_ipd, D1, tipd_D1); VitalWireDelay(C1_ipd, C1, tipd_C1); VitalWireDelay(B1_ipd, B1, tipd_B1); VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(D0_ipd, D0, tipd_D0); VitalWireDelay(C0_ipd, C0, tipd_C0); VitalWireDelay(B0_ipd, B0, tipd_B0); VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(M1_ipd, M1, tipd_M1); - VitalWireDelay(M0_ipd, M0, tipd_M0); - VitalWireDelay(CE_ipd, CE, tipd_CE); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); END BLOCK; - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(M1_dly, M1_ipd, tisd_M1_CLK); - VitalSignalDelay(M0_dly, M0_ipd, tisd_M0_CLK); - VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, B0_ipd, - A0_ipd, M1_dly, M0_dly, CE_dly, CLK_dly, F0_out, Q0_out, F1_out, Q1_out) + VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, C0_ipd, B0_ipd, + A0_ipd, F0_out, F1_out) VARIABLE F0_zd : std_logic := 'X'; VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; VARIABLE F1_zd : std_logic := 'X'; VARIABLE F1_GlitchData : VitalGlitchDataType; - VARIABLE Q1_zd : std_logic := 'X'; - VARIABLE Q1_GlitchData : VitalGlitchDataType; - VARIABLE tviol_M1_CLK : x01 := '0'; - VARIABLE M1_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_M0_CLK : x01 := '0'; - VARIABLE M0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CE_CLK : x01 := '0'; - VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => M1_dly, - TestSignalName => "M1", - TestDelay => tisd_M1_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M1_CLK_noedge_posedge, - SetupLow => tsetup_M1_CLK_noedge_posedge, - HoldHigh => thold_M1_CLK_noedge_posedge, - HoldLow => thold_M1_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M1_CLK_TimingDatash, - Violation => tviol_M1_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => M0_dly, - TestSignalName => "M0", - TestDelay => tisd_M0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M0_CLK_noedge_posedge, - SetupLow => tsetup_M0_CLK_noedge_posedge, - HoldHigh => thold_M0_CLK_noedge_posedge, - HoldLow => thold_M0_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M0_CLK_TimingDatash, - Violation => tviol_M0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => CE_dly, - TestSignalName => "CE", - TestDelay => tisd_CE_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_CE_CLK_noedge_posedge, - SetupLow => tsetup_CE_CLK_noedge_posedge, - HoldHigh => thold_CE_CLK_noedge_posedge, - HoldLow => thold_CE_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => CE_CLK_TimingDatash, - Violation => tviol_CE_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); END IF; F0_zd := F0_out; - Q0_zd := Q0_out; F1_zd := F1_out; - Q1_zd := Q1_out; VitalPathDelay01 ( OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => D0_ipd'last_event, - PathDelay => tpd_D0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => C0_ipd'last_event, + Paths => (0 => (InputChangeTime => C0_ipd'last_event, PathDelay => tpd_C0_F0, PathCondition => TRUE), - 2 => (InputChangeTime => B0_ipd'last_event, + 1 => (InputChangeTime => B0_ipd'last_event, PathDelay => tpd_B0_F0, PathCondition => TRUE), - 3 => (InputChangeTime => A0_ipd'last_event, + 2 => (InputChangeTime => A0_ipd'last_event, PathDelay => tpd_A0_F0, PathCondition => TRUE)), GlitchData => F0_GlitchData, Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); VitalPathDelay01 ( OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => C1_ipd'last_event, + Paths => (0 => (InputChangeTime => D1_ipd'last_event, + PathDelay => tpd_D1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => C1_ipd'last_event, PathDelay => tpd_C1_F1, PathCondition => TRUE), - 1 => (InputChangeTime => B1_ipd'last_event, + 2 => (InputChangeTime => B1_ipd'last_event, PathDelay => tpd_B1_F1, PathCondition => TRUE), - 2 => (InputChangeTime => A1_ipd'last_event, + 3 => (InputChangeTime => A1_ipd'last_event, PathDelay => tpd_A1_F1, PathCondition => TRUE)), GlitchData => F1_GlitchData, Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q1, - PathCondition => TRUE)), - GlitchData => Q1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); END PROCESS; @@ -13905,712 +11797,10 @@ architecture Structure of lut40056 is begin INST10: ROM16X1A - generic map (initval => X"FFEF") + generic map (initval => X"4444") port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); end Structure; --- entity SLICE_85 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_85 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_85"; - - tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); - - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; - B0: in Std_logic; A0: in Std_logic; F0: out Std_logic; - F1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_85 : ENTITY IS TRUE; - - end SLICE_85; - - architecture Structure of SLICE_85 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal D1_ipd : std_logic := 'X'; - signal C1_ipd : std_logic := 'X'; - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal D0_ipd : std_logic := 'X'; - signal C0_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - - component lut40040 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component lut40056 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - i1969_2_lut_3_lut_4_lut: lut40056 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); - i3_4_lut_adj_7: lut40040 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(D1_ipd, D1, tipd_D1); - VitalWireDelay(C1_ipd, C1, tipd_C1); - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(D0_ipd, D0, tipd_D0); - VitalWireDelay(C0_ipd, C0, tipd_C0); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - END BLOCK; - - VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, - B0_ipd, A0_ipd, F0_out, F1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - - - BEGIN - - IF (TimingChecksOn) THEN - - END IF; - - F0_zd := F0_out; - F1_zd := F1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => D0_ipd'last_event, - PathDelay => tpd_D0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => C0_ipd'last_event, - PathDelay => tpd_C0_F0, - PathCondition => TRUE), - 2 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 3 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => D1_ipd'last_event, - PathDelay => tpd_D1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => C1_ipd'last_event, - PathDelay => tpd_C1_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 3 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity SLICE_86 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_86 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_86"; - - tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); - ticd_CLK : VitalDelayType := 0 ns; - tisd_M1_CLK : VitalDelayType := 0 ns; - tsetup_M1_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_M1_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_M0_CLK : VitalDelayType := 0 ns; - tsetup_M0_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_M0_CLK_noedge_posedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns); - - port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; - D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; - A0: in Std_logic; M1: in Std_logic; M0: in Std_logic; - CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; - F1: out Std_logic; Q1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_86 : ENTITY IS TRUE; - - end SLICE_86; - - architecture Structure of SLICE_86 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal C1_ipd : std_logic := 'X'; - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal D0_ipd : std_logic := 'X'; - signal C0_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal M1_ipd : std_logic := 'X'; - signal M1_dly : std_logic := 'X'; - signal M0_ipd : std_logic := 'X'; - signal M0_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - signal Q1_out : std_logic := 'X'; - - signal GNDI: Std_logic; - signal VCCI: Std_logic; - component vmuxregsre - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component lut4 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component lut40012 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - i5_3_lut: lut40012 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>GNDI, Z=>F1_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - i1_4_lut_adj_8: lut4 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); - RASr3_381: vmuxregsre - port map (D0=>M1_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_dly, - LSR=>GNDI, Q=>Q1_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - PHI2r_376: vmuxregsre - port map (D0=>M0_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_dly, - LSR=>GNDI, Q=>Q0_out); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(C1_ipd, C1, tipd_C1); - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(D0_ipd, D0, tipd_D0); - VitalWireDelay(C0_ipd, C0, tipd_C0); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(M1_ipd, M1, tipd_M1); - VitalWireDelay(M0_ipd, M0, tipd_M0); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(M1_dly, M1_ipd, tisd_M1_CLK); - VitalSignalDelay(M0_dly, M0_ipd, tisd_M0_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, B0_ipd, - A0_ipd, M1_dly, M0_dly, CLK_dly, F0_out, Q0_out, F1_out, Q1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - VARIABLE Q1_zd : std_logic := 'X'; - VARIABLE Q1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_M1_CLK : x01 := '0'; - VARIABLE M1_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_M0_CLK : x01 := '0'; - VARIABLE M0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => M1_dly, - TestSignalName => "M1", - TestDelay => tisd_M1_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M1_CLK_noedge_posedge, - SetupLow => tsetup_M1_CLK_noedge_posedge, - HoldHigh => thold_M1_CLK_noedge_posedge, - HoldLow => thold_M1_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M1_CLK_TimingDatash, - Violation => tviol_M1_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => M0_dly, - TestSignalName => "M0", - TestDelay => tisd_M0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M0_CLK_noedge_posedge, - SetupLow => tsetup_M0_CLK_noedge_posedge, - HoldHigh => thold_M0_CLK_noedge_posedge, - HoldLow => thold_M0_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M0_CLK_TimingDatash, - Violation => tviol_M0_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - F1_zd := F1_out; - Q1_zd := Q1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => D0_ipd'last_event, - PathDelay => tpd_D0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => C0_ipd'last_event, - PathDelay => tpd_C0_F0, - PathCondition => TRUE), - 2 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 3 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => C1_ipd'last_event, - PathDelay => tpd_C1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q1, - PathCondition => TRUE)), - GlitchData => Q1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity SLICE_87 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_87 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_87"; - - tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_LSR : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); - tperiod_LSR : VitalDelayType := 0 ns; - tpw_LSR_posedge : VitalDelayType := 0 ns; - tpw_LSR_negedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns; - ticd_CLK : VitalDelayType := 0 ns; - tisd_M1_CLK : VitalDelayType := 0 ns; - tsetup_M1_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_M1_CLK_noedge_negedge : VitalDelayType := 0 ns; - tisd_M0_CLK : VitalDelayType := 0 ns; - tsetup_M0_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_M0_CLK_noedge_negedge : VitalDelayType := 0 ns; - tisd_LSR_CLK : VitalDelayType := 0 ns; - tsetup_LSR_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_LSR_CLK_noedge_negedge : VitalDelayType := 0 ns); - - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; B0: in Std_logic; A0: in Std_logic; - M1: in Std_logic; M0: in Std_logic; LSR: in Std_logic; - CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; - F1: out Std_logic; Q1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_87 : ENTITY IS TRUE; - - end SLICE_87; - - architecture Structure of SLICE_87 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal D1_ipd : std_logic := 'X'; - signal C1_ipd : std_logic := 'X'; - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal M1_ipd : std_logic := 'X'; - signal M1_dly : std_logic := 'X'; - signal M0_ipd : std_logic := 'X'; - signal M0_dly : std_logic := 'X'; - signal LSR_ipd : std_logic := 'X'; - signal LSR_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - signal Q1_out : std_logic := 'X'; - - signal GNDI: Std_logic; - signal VCCI: Std_logic; - signal CLK_NOTIN: Std_logic; - signal LSR_NOTIN: Std_logic; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component vmuxregsre0004 - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component inverter - port (I: in Std_logic; Z: out Std_logic); - end component; - component lut40040 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component lut40048 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - i4_4_lut_adj_16: lut40040 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); - i1_2_lut_2_lut: lut40048 - port map (A=>A0_ipd, B=>B0_ipd, C=>GNDI, D=>GNDI, Z=>F0_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - RBA_i2: vmuxregsre0004 - port map (D0=>M1_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_NOTIN, - LSR=>LSR_NOTIN, Q=>Q1_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - CLK_INVERTERIN: inverter - port map (I=>CLK_dly, Z=>CLK_NOTIN); - LSR_INVERTERIN: inverter - port map (I=>LSR_dly, Z=>LSR_NOTIN); - RBA_i1: vmuxregsre0004 - port map (D0=>M0_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_NOTIN, - LSR=>LSR_NOTIN, Q=>Q0_out); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(D1_ipd, D1, tipd_D1); - VitalWireDelay(C1_ipd, C1, tipd_C1); - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(M1_ipd, M1, tipd_M1); - VitalWireDelay(M0_ipd, M0, tipd_M0); - VitalWireDelay(LSR_ipd, LSR, tipd_LSR); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(M1_dly, M1_ipd, tisd_M1_CLK); - VitalSignalDelay(M0_dly, M0_ipd, tisd_M0_CLK); - VitalSignalDelay(LSR_dly, LSR_ipd, tisd_LSR_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, B0_ipd, A0_ipd, - M1_dly, M0_dly, LSR_dly, CLK_dly, F0_out, Q0_out, F1_out, Q1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - VARIABLE Q1_zd : std_logic := 'X'; - VARIABLE Q1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_M1_CLK : x01 := '0'; - VARIABLE M1_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_M0_CLK : x01 := '0'; - VARIABLE M0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_LSR_CLK : x01 := '0'; - VARIABLE LSR_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_LSR_LSR : x01 := '0'; - VARIABLE periodcheckinfo_LSR : VitalPeriodDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => M1_dly, - TestSignalName => "M1", - TestDelay => tisd_M1_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M1_CLK_noedge_negedge, - SetupLow => tsetup_M1_CLK_noedge_negedge, - HoldHigh => thold_M1_CLK_noedge_negedge, - HoldLow => thold_M1_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M1_CLK_TimingDatash, - Violation => tviol_M1_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => M0_dly, - TestSignalName => "M0", - TestDelay => tisd_M0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M0_CLK_noedge_negedge, - SetupLow => tsetup_M0_CLK_noedge_negedge, - HoldHigh => thold_M0_CLK_noedge_negedge, - HoldLow => thold_M0_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M0_CLK_TimingDatash, - Violation => tviol_M0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => LSR_dly, - TestSignalName => "LSR", - TestDelay => tisd_LSR_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_LSR_CLK_noedge_negedge, - SetupLow => tsetup_LSR_CLK_noedge_negedge, - HoldHigh => thold_LSR_CLK_noedge_negedge, - HoldLow => thold_LSR_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => LSR_CLK_TimingDatash, - Violation => tviol_LSR_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => LSR_ipd, - TestSignalName => "LSR", - Period => tperiod_LSR, - PulseWidthHigh => tpw_LSR_posedge, - PulseWidthLow => tpw_LSR_negedge, - PeriodData => periodcheckinfo_LSR, - Violation => tviol_LSR_LSR, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - F1_zd := F1_out; - Q1_zd := Q1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => D1_ipd'last_event, - PathDelay => tpd_D1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => C1_ipd'last_event, - PathDelay => tpd_C1_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 3 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q1, - PathCondition => TRUE)), - GlitchData => Q1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - -- entity lut40057 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; @@ -14628,106 +11818,62 @@ architecture Structure of lut40057 is begin INST10: ROM16X1A - generic map (initval => X"C0C5") + generic map (initval => X"F8F0") port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); end Structure; --- entity SLICE_88 +-- entity SLICE_54 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity SLICE_88 is + entity SLICE_54 is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_88"; + InstancePath : string := "SLICE_54"; - tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns; - ticd_CLK : VitalDelayType := 0 ns; - tisd_M1_CLK : VitalDelayType := 0 ns; - tsetup_M1_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_M1_CLK_noedge_negedge : VitalDelayType := 0 ns; - tisd_M0_CLK : VitalDelayType := 0 ns; - tsetup_M0_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_M0_CLK_noedge_negedge : VitalDelayType := 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; - B0: in Std_logic; A0: in Std_logic; M1: in Std_logic; - M0: in Std_logic; CLK: in Std_logic; F0: out Std_logic; - Q0: out Std_logic; F1: out Std_logic; Q1: out Std_logic); + port (B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; + C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; + F0: out Std_logic; F1: out Std_logic); - ATTRIBUTE Vital_Level0 OF SLICE_88 : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF SLICE_54 : ENTITY IS TRUE; - end SLICE_88; + end SLICE_54; - architecture Structure of SLICE_88 is + architecture Structure of SLICE_54 is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - signal D1_ipd : std_logic := 'X'; - signal C1_ipd : std_logic := 'X'; signal B1_ipd : std_logic := 'X'; signal A1_ipd : std_logic := 'X'; signal D0_ipd : std_logic := 'X'; signal C0_ipd : std_logic := 'X'; signal B0_ipd : std_logic := 'X'; signal A0_ipd : std_logic := 'X'; - signal M1_ipd : std_logic := 'X'; - signal M1_dly : std_logic := 'X'; - signal M0_ipd : std_logic := 'X'; - signal M0_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; signal F1_out : std_logic := 'X'; - signal Q1_out : std_logic := 'X'; - signal VCCI: Std_logic; signal GNDI: Std_logic; - signal CLK_NOTIN: Std_logic; - component vmuxregsre - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component vcc - port (PWR1: out Std_logic); - end component; component gnd port (PWR0: out Std_logic); end component; - component inverter - port (I: in Std_logic; Z: out Std_logic); - end component; - component lut40053 + component lut40056 port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; Z: out Std_logic); end component; @@ -14736,123 +11882,40 @@ Z: out Std_logic); end component; begin - i34_4_lut: lut40057 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); - i1_4_lut_adj_13: lut40053 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); - WRD_i7: vmuxregsre - port map (D0=>M1_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_NOTIN, - LSR=>GNDI, Q=>Q1_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); + un1_PHI2r3_0: lut40056 + port map (A=>A1_ipd, B=>B1_ipd, C=>GNDI, D=>GNDI, Z=>F1_out); DRIVEGND: gnd port map (PWR0=>GNDI); - CLK_INVERTERIN: inverter - port map (I=>CLK_dly, Z=>CLK_NOTIN); - WRD_i6: vmuxregsre - port map (D0=>M0_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_NOTIN, - LSR=>GNDI, Q=>Q0_out); + un1_FS_13_i_0: lut40057 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN - VitalWireDelay(D1_ipd, D1, tipd_D1); - VitalWireDelay(C1_ipd, C1, tipd_C1); VitalWireDelay(B1_ipd, B1, tipd_B1); VitalWireDelay(A1_ipd, A1, tipd_A1); VitalWireDelay(D0_ipd, D0, tipd_D0); VitalWireDelay(C0_ipd, C0, tipd_C0); VitalWireDelay(B0_ipd, B0, tipd_B0); VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(M1_ipd, M1, tipd_M1); - VitalWireDelay(M0_ipd, M0, tipd_M0); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); END BLOCK; - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(M1_dly, M1_ipd, tisd_M1_CLK); - VitalSignalDelay(M0_dly, M0_ipd, tisd_M0_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, - B0_ipd, A0_ipd, M1_dly, M0_dly, CLK_dly, F0_out, Q0_out, F1_out, Q1_out) + VitalBehavior : PROCESS (B1_ipd, A1_ipd, D0_ipd, C0_ipd, B0_ipd, A0_ipd, + F0_out, F1_out) VARIABLE F0_zd : std_logic := 'X'; VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; VARIABLE F1_zd : std_logic := 'X'; VARIABLE F1_GlitchData : VitalGlitchDataType; - VARIABLE Q1_zd : std_logic := 'X'; - VARIABLE Q1_GlitchData : VitalGlitchDataType; - VARIABLE tviol_M1_CLK : x01 := '0'; - VARIABLE M1_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_M0_CLK : x01 := '0'; - VARIABLE M0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => M1_dly, - TestSignalName => "M1", - TestDelay => tisd_M1_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M1_CLK_noedge_negedge, - SetupLow => tsetup_M1_CLK_noedge_negedge, - HoldHigh => thold_M1_CLK_noedge_negedge, - HoldLow => thold_M1_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M1_CLK_TimingDatash, - Violation => tviol_M1_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => M0_dly, - TestSignalName => "M0", - TestDelay => tisd_M0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M0_CLK_noedge_negedge, - SetupLow => tsetup_M0_CLK_noedge_negedge, - HoldHigh => thold_M0_CLK_noedge_negedge, - HoldLow => thold_M0_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M0_CLK_TimingDatash, - Violation => tviol_M0_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); END IF; F0_zd := F0_out; - Q0_zd := Q0_out; F1_zd := F1_out; - Q1_zd := Q1_out; VitalPathDelay01 ( OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, @@ -14870,35 +11933,148 @@ PathCondition => TRUE)), GlitchData => F0_GlitchData, Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); VitalPathDelay01 ( OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => D1_ipd'last_event, - PathDelay => tpd_D1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => C1_ipd'last_event, - PathDelay => tpd_C1_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => B1_ipd'last_event, + Paths => (0 => (InputChangeTime => B1_ipd'last_event, PathDelay => tpd_B1_F1, PathCondition => TRUE), - 3 => (InputChangeTime => A1_ipd'last_event, + 1 => (InputChangeTime => A1_ipd'last_event, PathDelay => tpd_A1_F1, PathCondition => TRUE)), GlitchData => F1_GlitchData, Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity SLICE_55 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_55 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_55"; + + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); + + port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; + D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; F0: out Std_logic; F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_55 : ENTITY IS TRUE; + + end SLICE_55; + + architecture Structure of SLICE_55 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal D0_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + component gnd + port (PWR0: out Std_logic); + end component; + component lut4 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40057 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + un1_FS_14_i_a2_0: lut4 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>GNDI, Z=>F1_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + un1_FS_14_i_0: lut40057 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(D0_ipd, D0, tipd_D0); + VitalWireDelay(C0_ipd, C0, tipd_C0); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + END BLOCK; + + VitalBehavior : PROCESS (C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, B0_ipd, + A0_ipd, F0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + F0_zd := F0_out; + F1_zd := F1_out; + VitalPathDelay01 ( - OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q1, + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => D0_ipd'last_event, + PathDelay => tpd_D0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 3 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, PathCondition => TRUE)), - GlitchData => Q1_GlitchData, + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, Mode => ondetect, XOn => XOn, MsgOn => MsgOn); END PROCESS; @@ -14922,10 +12098,143 @@ architecture Structure of lut40058 is begin INST10: ROM16X1A - generic map (initval => X"8088") + generic map (initval => X"0100") port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); end Structure; +-- entity SLICE_56 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_56 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_56"; + + tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); + + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; F0: out Std_logic; F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_56 : ENTITY IS TRUE; + + end SLICE_56; + + architecture Structure of SLICE_56 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal D1_ipd : std_logic := 'X'; + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + component gnd + port (PWR0: out Std_logic); + end component; + component lut4 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40058 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + un1_FS_13_i_a2_1: lut40058 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); + un1_FS_13_i_a2: lut4 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>GNDI, Z=>F0_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(D1_ipd, D1, tipd_D1); + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(C0_ipd, C0, tipd_C0); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + END BLOCK; + + VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, C0_ipd, B0_ipd, + A0_ipd, F0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + F0_zd := F0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => D1_ipd'last_event, + PathDelay => tpd_D1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 3 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + -- entity lut40059 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; @@ -14943,23 +12252,23 @@ architecture Structure of lut40059 is begin INST10: ROM16X1A - generic map (initval => X"C444") + generic map (initval => X"2202") port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); end Structure; --- entity SLICE_89 +-- entity SLICE_57 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity SLICE_89 is + entity SLICE_57 is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_89"; + InstancePath : string := "SLICE_57"; tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); @@ -14969,9 +12278,6 @@ tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); @@ -14979,31 +12285,18 @@ tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns; - ticd_CLK : VitalDelayType := 0 ns; - tisd_M1_CLK : VitalDelayType := 0 ns; - tsetup_M1_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_M1_CLK_noedge_negedge : VitalDelayType := 0 ns; - tisd_M0_CLK : VitalDelayType := 0 ns; - tsetup_M0_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_M0_CLK_noedge_negedge : VitalDelayType := 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; - B0: in Std_logic; A0: in Std_logic; M1: in Std_logic; - M0: in Std_logic; CLK: in Std_logic; F0: out Std_logic; - Q0: out Std_logic; F1: out Std_logic; Q1: out Std_logic); + B0: in Std_logic; A0: in Std_logic; F0: out Std_logic; + F1: out Std_logic); - ATTRIBUTE Vital_Level0 OF SLICE_89 : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF SLICE_57 : ENTITY IS TRUE; - end SLICE_89; + end SLICE_57; - architecture Structure of SLICE_89 is + architecture Structure of SLICE_57 is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; signal D1_ipd : std_logic := 'X'; @@ -15014,35 +12307,10 @@ signal C0_ipd : std_logic := 'X'; signal B0_ipd : std_logic := 'X'; signal A0_ipd : std_logic := 'X'; - signal M1_ipd : std_logic := 'X'; - signal M1_dly : std_logic := 'X'; - signal M0_ipd : std_logic := 'X'; - signal M0_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; signal F1_out : std_logic := 'X'; - signal Q1_out : std_logic := 'X'; - signal VCCI: Std_logic; - signal GNDI: Std_logic; - signal CLK_NOTIN: Std_logic; - component vmuxregsre - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component inverter - port (I: in Std_logic; Z: out Std_logic); - end component; - component lut40058 + component lut40004 port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; Z: out Std_logic); end component; @@ -15051,22 +12319,10 @@ Z: out Std_logic); end component; begin - i2_4_lut: lut40058 + CmdSubmitted_1_sqmuxa_0_a2: lut40059 port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); - i1_4_lut: lut40059 + XOR8MEG18: lut40004 port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); - WRD_i5: vmuxregsre - port map (D0=>M1_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_NOTIN, - LSR=>GNDI, Q=>Q1_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - DRIVEGND: gnd - port map (PWR0=>GNDI); - CLK_INVERTERIN: inverter - port map (I=>CLK_dly, Z=>CLK_NOTIN); - WRD_i4: vmuxregsre - port map (D0=>M0_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_NOTIN, - LSR=>GNDI, Q=>Q0_out); -- INPUT PATH DELAYs WireDelay : BLOCK @@ -15079,95 +12335,24 @@ VitalWireDelay(C0_ipd, C0, tipd_C0); VitalWireDelay(B0_ipd, B0, tipd_B0); VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(M1_ipd, M1, tipd_M1); - VitalWireDelay(M0_ipd, M0, tipd_M0); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(M1_dly, M1_ipd, tisd_M1_CLK); - VitalSignalDelay(M0_dly, M0_ipd, tisd_M0_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); END BLOCK; VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, - B0_ipd, A0_ipd, M1_dly, M0_dly, CLK_dly, F0_out, Q0_out, F1_out, Q1_out) + B0_ipd, A0_ipd, F0_out, F1_out) VARIABLE F0_zd : std_logic := 'X'; VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; VARIABLE F1_zd : std_logic := 'X'; VARIABLE F1_GlitchData : VitalGlitchDataType; - VARIABLE Q1_zd : std_logic := 'X'; - VARIABLE Q1_GlitchData : VitalGlitchDataType; - VARIABLE tviol_M1_CLK : x01 := '0'; - VARIABLE M1_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_M0_CLK : x01 := '0'; - VARIABLE M0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => M1_dly, - TestSignalName => "M1", - TestDelay => tisd_M1_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M1_CLK_noedge_negedge, - SetupLow => tsetup_M1_CLK_noedge_negedge, - HoldHigh => thold_M1_CLK_noedge_negedge, - HoldLow => thold_M1_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M1_CLK_TimingDatash, - Violation => tviol_M1_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => M0_dly, - TestSignalName => "M0", - TestDelay => tisd_M0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M0_CLK_noedge_negedge, - SetupLow => tsetup_M0_CLK_noedge_negedge, - HoldHigh => thold_M0_CLK_noedge_negedge, - HoldLow => thold_M0_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M0_CLK_TimingDatash, - Violation => tviol_M0_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); END IF; F0_zd := F0_out; - Q0_zd := Q0_out; F1_zd := F1_out; - Q1_zd := Q1_out; VitalPathDelay01 ( OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, @@ -15185,13 +12370,6 @@ PathCondition => TRUE)), GlitchData => F0_GlitchData, Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); VitalPathDelay01 ( OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, Paths => (0 => (InputChangeTime => D1_ipd'last_event, @@ -15208,279 +12386,6 @@ PathCondition => TRUE)), GlitchData => F1_GlitchData, Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q1, - PathCondition => TRUE)), - GlitchData => Q1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity SLICE_90 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_90 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_90"; - - tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns; - ticd_CLK : VitalDelayType := 0 ns; - tisd_M1_CLK : VitalDelayType := 0 ns; - tsetup_M1_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_M1_CLK_noedge_negedge : VitalDelayType := 0 ns; - tisd_M0_CLK : VitalDelayType := 0 ns; - tsetup_M0_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_M0_CLK_noedge_negedge : VitalDelayType := 0 ns); - - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; C0: in Std_logic; B0: in Std_logic; - A0: in Std_logic; M1: in Std_logic; M0: in Std_logic; - CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; - F1: out Std_logic; Q1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_90 : ENTITY IS TRUE; - - end SLICE_90; - - architecture Structure of SLICE_90 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal D1_ipd : std_logic := 'X'; - signal C1_ipd : std_logic := 'X'; - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal C0_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal M1_ipd : std_logic := 'X'; - signal M1_dly : std_logic := 'X'; - signal M0_ipd : std_logic := 'X'; - signal M0_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - signal Q1_out : std_logic := 'X'; - - signal GNDI: Std_logic; - signal VCCI: Std_logic; - signal CLK_NOTIN: Std_logic; - component vmuxregsre - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component inverter - port (I: in Std_logic; Z: out Std_logic); - end component; - component lut40049 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component lut40055 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - i1_2_lut_3_lut_4_lut_adj_1: lut40049 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); - i1_2_lut_rep_21_3_lut: lut40055 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>GNDI, Z=>F0_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - WRD_i1: vmuxregsre - port map (D0=>M1_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_NOTIN, - LSR=>GNDI, Q=>Q1_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - CLK_INVERTERIN: inverter - port map (I=>CLK_dly, Z=>CLK_NOTIN); - WRD_i0: vmuxregsre - port map (D0=>M0_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_NOTIN, - LSR=>GNDI, Q=>Q0_out); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(D1_ipd, D1, tipd_D1); - VitalWireDelay(C1_ipd, C1, tipd_C1); - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(C0_ipd, C0, tipd_C0); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(M1_ipd, M1, tipd_M1); - VitalWireDelay(M0_ipd, M0, tipd_M0); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(M1_dly, M1_ipd, tisd_M1_CLK); - VitalSignalDelay(M0_dly, M0_ipd, tisd_M0_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, C0_ipd, B0_ipd, - A0_ipd, M1_dly, M0_dly, CLK_dly, F0_out, Q0_out, F1_out, Q1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - VARIABLE Q1_zd : std_logic := 'X'; - VARIABLE Q1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_M1_CLK : x01 := '0'; - VARIABLE M1_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_M0_CLK : x01 := '0'; - VARIABLE M0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => M1_dly, - TestSignalName => "M1", - TestDelay => tisd_M1_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M1_CLK_noedge_negedge, - SetupLow => tsetup_M1_CLK_noedge_negedge, - HoldHigh => thold_M1_CLK_noedge_negedge, - HoldLow => thold_M1_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M1_CLK_TimingDatash, - Violation => tviol_M1_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => M0_dly, - TestSignalName => "M0", - TestDelay => tisd_M0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M0_CLK_noedge_negedge, - SetupLow => tsetup_M0_CLK_noedge_negedge, - HoldHigh => thold_M0_CLK_noedge_negedge, - HoldLow => thold_M0_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M0_CLK_TimingDatash, - Violation => tviol_M0_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - F1_zd := F1_out; - Q1_zd := Q1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => C0_ipd'last_event, - PathDelay => tpd_C0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 2 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => D1_ipd'last_event, - PathDelay => tpd_D1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => C1_ipd'last_event, - PathDelay => tpd_C1_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 3 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q1, - PathCondition => TRUE)), - GlitchData => Q1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); END PROCESS; @@ -15503,10 +12408,404 @@ architecture Structure of lut40060 is begin INST10: ROM16X1A - generic map (initval => X"DFDF") + generic map (initval => X"5155") port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); end Structure; +-- entity SLICE_58 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_58 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_58"; + + tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); + + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; + B0: in Std_logic; A0: in Std_logic; F0: out Std_logic; + F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_58 : ENTITY IS TRUE; + + end SLICE_58; + + architecture Structure of SLICE_58 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal D1_ipd : std_logic := 'X'; + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal D0_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + component lut40032 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40060 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + UFMSDI_ens2_i_a2_4_2: lut40032 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); + UFMSDI_ens2_i_a0: lut40060 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(D1_ipd, D1, tipd_D1); + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(D0_ipd, D0, tipd_D0); + VitalWireDelay(C0_ipd, C0, tipd_C0); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + END BLOCK; + + VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, + B0_ipd, A0_ipd, F0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + F0_zd := F0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => D0_ipd'last_event, + PathDelay => tpd_D0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 3 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => D1_ipd'last_event, + PathDelay => tpd_D1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 3 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity SLICE_59 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_59 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_59"; + + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); + + port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; + D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; F0: out Std_logic; F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_59 : ENTITY IS TRUE; + + end SLICE_59; + + architecture Structure of SLICE_59 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal D0_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + component gnd + port (PWR0: out Std_logic); + end component; + component lut40013 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40015 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + UFMSDI_en_ss0_0_a2_0: lut40013 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>GNDI, Z=>F1_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + un1_FS_13_i_a2_8: lut40015 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(D0_ipd, D0, tipd_D0); + VitalWireDelay(C0_ipd, C0, tipd_C0); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + END BLOCK; + + VitalBehavior : PROCESS (C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, B0_ipd, + A0_ipd, F0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + F0_zd := F0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => D0_ipd'last_event, + PathDelay => tpd_D0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 3 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity SLICE_60 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_60 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_60"; + + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); + + port (B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; + C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; + F0: out Std_logic; F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_60 : ENTITY IS TRUE; + + end SLICE_60; + + architecture Structure of SLICE_60 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal D0_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + component gnd + port (PWR0: out Std_logic); + end component; + component lut40004 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40028 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + ADWR_3: lut40028 + port map (A=>A1_ipd, B=>B1_ipd, C=>GNDI, D=>GNDI, Z=>F1_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + ADWR: lut40004 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(D0_ipd, D0, tipd_D0); + VitalWireDelay(C0_ipd, C0, tipd_C0); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + END BLOCK; + + VitalBehavior : PROCESS (B1_ipd, A1_ipd, D0_ipd, C0_ipd, B0_ipd, A0_ipd, + F0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + F0_zd := F0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => D0_ipd'last_event, + PathDelay => tpd_D0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 3 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + -- entity lut40061 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; @@ -15524,324 +12823,10 @@ architecture Structure of lut40061 is begin INST10: ROM16X1A - generic map (initval => X"DFFF") + generic map (initval => X"1010") port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); end Structure; --- entity SLICE_91 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_91 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_91"; - - tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_LSR : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); - tperiod_LSR : VitalDelayType := 0 ns; - tpw_LSR_posedge : VitalDelayType := 0 ns; - tpw_LSR_negedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns; - ticd_CLK : VitalDelayType := 0 ns; - tisd_M1_CLK : VitalDelayType := 0 ns; - tsetup_M1_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_M1_CLK_noedge_negedge : VitalDelayType := 0 ns; - tisd_M0_CLK : VitalDelayType := 0 ns; - tsetup_M0_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_M0_CLK_noedge_negedge : VitalDelayType := 0 ns; - tisd_LSR_CLK : VitalDelayType := 0 ns; - tsetup_LSR_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_LSR_CLK_noedge_negedge : VitalDelayType := 0 ns); - - port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; - D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; - A0: in Std_logic; M1: in Std_logic; M0: in Std_logic; - LSR: in Std_logic; CLK: in Std_logic; F0: out Std_logic; - Q0: out Std_logic; F1: out Std_logic; Q1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_91 : ENTITY IS TRUE; - - end SLICE_91; - - architecture Structure of SLICE_91 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal C1_ipd : std_logic := 'X'; - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal D0_ipd : std_logic := 'X'; - signal C0_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal M1_ipd : std_logic := 'X'; - signal M1_dly : std_logic := 'X'; - signal M0_ipd : std_logic := 'X'; - signal M0_dly : std_logic := 'X'; - signal LSR_ipd : std_logic := 'X'; - signal LSR_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - signal Q1_out : std_logic := 'X'; - - signal GNDI: Std_logic; - signal VCCI: Std_logic; - signal CLK_NOTIN: Std_logic; - signal LSR_NOTIN: Std_logic; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component vmuxregsre0004 - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component inverter - port (I: in Std_logic; Z: out Std_logic); - end component; - component lut40060 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component lut40061 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - i1_2_lut_rep_13_3_lut: lut40060 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>GNDI, Z=>F1_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - i1_2_lut_3_lut_4_lut_adj_5: lut40061 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); - RowA_i3: vmuxregsre0004 - port map (D0=>M1_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_NOTIN, - LSR=>LSR_NOTIN, Q=>Q1_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - CLK_INVERTERIN: inverter - port map (I=>CLK_dly, Z=>CLK_NOTIN); - LSR_INVERTERIN: inverter - port map (I=>LSR_dly, Z=>LSR_NOTIN); - RowA_i2: vmuxregsre0004 - port map (D0=>M0_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_NOTIN, - LSR=>LSR_NOTIN, Q=>Q0_out); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(C1_ipd, C1, tipd_C1); - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(D0_ipd, D0, tipd_D0); - VitalWireDelay(C0_ipd, C0, tipd_C0); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(M1_ipd, M1, tipd_M1); - VitalWireDelay(M0_ipd, M0, tipd_M0); - VitalWireDelay(LSR_ipd, LSR, tipd_LSR); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(M1_dly, M1_ipd, tisd_M1_CLK); - VitalSignalDelay(M0_dly, M0_ipd, tisd_M0_CLK); - VitalSignalDelay(LSR_dly, LSR_ipd, tisd_LSR_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, B0_ipd, - A0_ipd, M1_dly, M0_dly, LSR_dly, CLK_dly, F0_out, Q0_out, F1_out, Q1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - VARIABLE Q1_zd : std_logic := 'X'; - VARIABLE Q1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_M1_CLK : x01 := '0'; - VARIABLE M1_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_M0_CLK : x01 := '0'; - VARIABLE M0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_LSR_CLK : x01 := '0'; - VARIABLE LSR_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_LSR_LSR : x01 := '0'; - VARIABLE periodcheckinfo_LSR : VitalPeriodDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => M1_dly, - TestSignalName => "M1", - TestDelay => tisd_M1_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M1_CLK_noedge_negedge, - SetupLow => tsetup_M1_CLK_noedge_negedge, - HoldHigh => thold_M1_CLK_noedge_negedge, - HoldLow => thold_M1_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M1_CLK_TimingDatash, - Violation => tviol_M1_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => M0_dly, - TestSignalName => "M0", - TestDelay => tisd_M0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M0_CLK_noedge_negedge, - SetupLow => tsetup_M0_CLK_noedge_negedge, - HoldHigh => thold_M0_CLK_noedge_negedge, - HoldLow => thold_M0_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M0_CLK_TimingDatash, - Violation => tviol_M0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => LSR_dly, - TestSignalName => "LSR", - TestDelay => tisd_LSR_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_LSR_CLK_noedge_negedge, - SetupLow => tsetup_LSR_CLK_noedge_negedge, - HoldHigh => thold_LSR_CLK_noedge_negedge, - HoldLow => thold_LSR_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => LSR_CLK_TimingDatash, - Violation => tviol_LSR_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => LSR_ipd, - TestSignalName => "LSR", - Period => tperiod_LSR, - PulseWidthHigh => tpw_LSR_posedge, - PulseWidthLow => tpw_LSR_negedge, - PeriodData => periodcheckinfo_LSR, - Violation => tviol_LSR_LSR, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - F1_zd := F1_out; - Q1_zd := Q1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => D0_ipd'last_event, - PathDelay => tpd_D0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => C0_ipd'last_event, - PathDelay => tpd_C0_F0, - PathCondition => TRUE), - 2 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 3 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => C1_ipd'last_event, - PathDelay => tpd_C1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q1, - PathCondition => TRUE)), - GlitchData => Q1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - -- entity lut40062 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; @@ -15859,25 +12844,24 @@ architecture Structure of lut40062 is begin INST10: ROM16X1A - generic map (initval => X"0080") + generic map (initval => X"FF32") port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); end Structure; --- entity SLICE_92 +-- entity SLICE_61 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity SLICE_92 is + entity SLICE_61 is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_92"; + InstancePath : string := "SLICE_61"; - tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); @@ -15885,44 +12869,25 @@ tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns; - ticd_CLK : VitalDelayType := 0 ns; - tisd_M1_CLK : VitalDelayType := 0 ns; - tsetup_M1_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_M1_CLK_noedge_negedge : VitalDelayType := 0 ns; - tisd_M0_CLK : VitalDelayType := 0 ns; - tsetup_M0_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_M0_CLK_noedge_negedge : VitalDelayType := 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; - B0: in Std_logic; A0: in Std_logic; M1: in Std_logic; - M0: in Std_logic; CLK: in Std_logic; F0: out Std_logic; - Q0: out Std_logic; F1: out Std_logic; Q1: out Std_logic); + port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; + D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; F0: out Std_logic; F1: out Std_logic); - ATTRIBUTE Vital_Level0 OF SLICE_92 : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF SLICE_61 : ENTITY IS TRUE; - end SLICE_92; + end SLICE_61; - architecture Structure of SLICE_92 is + architecture Structure of SLICE_61 is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - signal D1_ipd : std_logic := 'X'; signal C1_ipd : std_logic := 'X'; signal B1_ipd : std_logic := 'X'; signal A1_ipd : std_logic := 'X'; @@ -15930,35 +12895,14 @@ signal C0_ipd : std_logic := 'X'; signal B0_ipd : std_logic := 'X'; signal A0_ipd : std_logic := 'X'; - signal M1_ipd : std_logic := 'X'; - signal M1_dly : std_logic := 'X'; - signal M0_ipd : std_logic := 'X'; - signal M0_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; signal F1_out : std_logic := 'X'; - signal Q1_out : std_logic := 'X'; - signal VCCI: Std_logic; signal GNDI: Std_logic; - signal CLK_NOTIN: Std_logic; - component vmuxregsre - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component vcc - port (PWR1: out Std_logic); - end component; component gnd port (PWR0: out Std_logic); end component; - component inverter - port (I: in Std_logic; Z: out Std_logic); - end component; - component lut40005 + component lut40061 port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; Z: out Std_logic); end component; @@ -15967,27 +12911,16 @@ Z: out Std_logic); end component; begin - i2008_2_lut_4_lut: lut40062 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); - i1_2_lut_rep_22_4_lut: lut40005 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); - WRD_i3: vmuxregsre - port map (D0=>M1_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_NOTIN, - LSR=>GNDI, Q=>Q1_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); + nRCS_0io_RNO_0: lut40061 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>GNDI, Z=>F1_out); DRIVEGND: gnd port map (PWR0=>GNDI); - CLK_INVERTERIN: inverter - port map (I=>CLK_dly, Z=>CLK_NOTIN); - WRD_i2: vmuxregsre - port map (D0=>M0_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_NOTIN, - LSR=>GNDI, Q=>Q0_out); + nRRAS_5_u_i: lut40062 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN - VitalWireDelay(D1_ipd, D1, tipd_D1); VitalWireDelay(C1_ipd, C1, tipd_C1); VitalWireDelay(B1_ipd, B1, tipd_B1); VitalWireDelay(A1_ipd, A1, tipd_A1); @@ -15995,95 +12928,24 @@ VitalWireDelay(C0_ipd, C0, tipd_C0); VitalWireDelay(B0_ipd, B0, tipd_B0); VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(M1_ipd, M1, tipd_M1); - VitalWireDelay(M0_ipd, M0, tipd_M0); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); END BLOCK; - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(M1_dly, M1_ipd, tisd_M1_CLK); - VitalSignalDelay(M0_dly, M0_ipd, tisd_M0_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, - B0_ipd, A0_ipd, M1_dly, M0_dly, CLK_dly, F0_out, Q0_out, F1_out, Q1_out) + VitalBehavior : PROCESS (C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, B0_ipd, + A0_ipd, F0_out, F1_out) VARIABLE F0_zd : std_logic := 'X'; VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; VARIABLE F1_zd : std_logic := 'X'; VARIABLE F1_GlitchData : VitalGlitchDataType; - VARIABLE Q1_zd : std_logic := 'X'; - VARIABLE Q1_GlitchData : VitalGlitchDataType; - VARIABLE tviol_M1_CLK : x01 := '0'; - VARIABLE M1_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_M0_CLK : x01 := '0'; - VARIABLE M0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => M1_dly, - TestSignalName => "M1", - TestDelay => tisd_M1_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M1_CLK_noedge_negedge, - SetupLow => tsetup_M1_CLK_noedge_negedge, - HoldHigh => thold_M1_CLK_noedge_negedge, - HoldLow => thold_M1_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M1_CLK_TimingDatash, - Violation => tviol_M1_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => M0_dly, - TestSignalName => "M0", - TestDelay => tisd_M0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M0_CLK_noedge_negedge, - SetupLow => tsetup_M0_CLK_noedge_negedge, - HoldHigh => thold_M0_CLK_noedge_negedge, - HoldLow => thold_M0_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M0_CLK_TimingDatash, - Violation => tviol_M0_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); END IF; F0_zd := F0_out; - Q0_zd := Q0_out; F1_zd := F1_out; - Q1_zd := Q1_out; VitalPathDelay01 ( OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, @@ -16101,36 +12963,19 @@ PathCondition => TRUE)), GlitchData => F0_GlitchData, Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); VitalPathDelay01 ( OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => D1_ipd'last_event, - PathDelay => tpd_D1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => C1_ipd'last_event, + Paths => (0 => (InputChangeTime => C1_ipd'last_event, PathDelay => tpd_C1_F1, PathCondition => TRUE), - 2 => (InputChangeTime => B1_ipd'last_event, + 1 => (InputChangeTime => B1_ipd'last_event, PathDelay => tpd_B1_F1, PathCondition => TRUE), - 3 => (InputChangeTime => A1_ipd'last_event, + 2 => (InputChangeTime => A1_ipd'last_event, PathDelay => tpd_A1_F1, PathCondition => TRUE)), GlitchData => F1_GlitchData, Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q1, - PathCondition => TRUE)), - GlitchData => Q1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); END PROCESS; @@ -16153,26 +12998,174 @@ architecture Structure of lut40063 is begin INST10: ROM16X1A - generic map (initval => X"7777") + generic map (initval => X"0002") port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); end Structure; --- entity SLICE_93 +-- entity SLICE_62 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity SLICE_93 is + entity SLICE_62 is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_93"; + InstancePath : string := "SLICE_62"; tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); + + port (B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; + C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; + F0: out Std_logic; F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_62 : ENTITY IS TRUE; + + end SLICE_62; + + architecture Structure of SLICE_62 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal D0_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + component gnd + port (PWR0: out Std_logic); + end component; + component lut40006 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40063 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + RA10_2_sqmuxa_0_o2: lut40006 + port map (A=>A1_ipd, B=>B1_ipd, C=>GNDI, D=>GNDI, Z=>F1_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + nRWE_s_i_a3_1_0: lut40063 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(D0_ipd, D0, tipd_D0); + VitalWireDelay(C0_ipd, C0, tipd_C0); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + END BLOCK; + + VitalBehavior : PROCESS (B1_ipd, A1_ipd, D0_ipd, C0_ipd, B0_ipd, A0_ipd, + F0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + F0_zd := F0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => D0_ipd'last_event, + PathDelay => tpd_D0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 3 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity lut40064 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40064 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40064 : ENTITY IS TRUE; + + end lut40064; + + architecture Structure of lut40064 is + begin + INST10: ROM16X1A + generic map (initval => X"2222") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity SLICE_63 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_63 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_63"; + + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); @@ -16181,6 +13174,7 @@ tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); @@ -16197,20 +13191,22 @@ tpw_CLK_posedge : VitalDelayType := 0 ns; tpw_CLK_negedge : VitalDelayType := 0 ns); - port (B1: in Std_logic; A1: in Std_logic; C0: in Std_logic; - B0: in Std_logic; A0: in Std_logic; M1: in Std_logic; - M0: in Std_logic; CLK: in Std_logic; F0: out Std_logic; - Q0: out Std_logic; F1: out Std_logic; Q1: out Std_logic); + port (B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; + C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; + M1: in Std_logic; M0: in Std_logic; CLK: in Std_logic; + F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic; + Q1: out Std_logic); - ATTRIBUTE Vital_Level0 OF SLICE_93 : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF SLICE_63 : ENTITY IS TRUE; - end SLICE_93; + end SLICE_63; - architecture Structure of SLICE_93 is + architecture Structure of SLICE_63 is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; signal B1_ipd : std_logic := 'X'; signal A1_ipd : std_logic := 'X'; + signal D0_ipd : std_logic := 'X'; signal C0_ipd : std_logic := 'X'; signal B0_ipd : std_logic := 'X'; signal A0_ipd : std_logic := 'X'; @@ -16238,27 +13234,27 @@ component gnd port (PWR0: out Std_logic); end component; - component lut40021 + component lut40008 port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; Z: out Std_logic); end component; - component lut40063 + component lut40064 port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; Z: out Std_logic); end component; begin - i2001_2_lut: lut40063 + C1WR_1: lut40064 port map (A=>A1_ipd, B=>B1_ipd, C=>GNDI, D=>GNDI, Z=>F1_out); DRIVEGND: gnd port map (PWR0=>GNDI); - MAin_9_I_0_427_i10_3_lut: lut40021 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>GNDI, Z=>F0_out); - Bank_i1: vmuxregsre + C1WR_3: lut40008 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); + Bank_0io_1: vmuxregsre port map (D0=>M1_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_dly, LSR=>GNDI, Q=>Q1_out); DRIVEVCC: vcc port map (PWR1=>VCCI); - Bank_i0: vmuxregsre + Bank_0io_0: vmuxregsre port map (D0=>M0_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_dly, LSR=>GNDI, Q=>Q0_out); @@ -16267,6 +13263,7 @@ BEGIN VitalWireDelay(B1_ipd, B1, tipd_B1); VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(D0_ipd, D0, tipd_D0); VitalWireDelay(C0_ipd, C0, tipd_C0); VitalWireDelay(B0_ipd, B0, tipd_B0); VitalWireDelay(A0_ipd, A0, tipd_A0); @@ -16283,8 +13280,8 @@ VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); END BLOCK; - VitalBehavior : PROCESS (B1_ipd, A1_ipd, C0_ipd, B0_ipd, A0_ipd, M1_dly, - M0_dly, CLK_dly, F0_out, Q0_out, F1_out, Q1_out) + VitalBehavior : PROCESS (B1_ipd, A1_ipd, D0_ipd, C0_ipd, B0_ipd, A0_ipd, + M1_dly, M0_dly, CLK_dly, F0_out, Q0_out, F1_out, Q1_out) VARIABLE F0_zd : std_logic := 'X'; VARIABLE F0_GlitchData : VitalGlitchDataType; VARIABLE Q0_zd : std_logic := 'X'; @@ -16362,13 +13359,16 @@ VitalPathDelay01 ( OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => C0_ipd'last_event, + Paths => (0 => (InputChangeTime => D0_ipd'last_event, + PathDelay => tpd_D0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => C0_ipd'last_event, PathDelay => tpd_C0_F0, PathCondition => TRUE), - 1 => (InputChangeTime => B0_ipd'last_event, + 2 => (InputChangeTime => B0_ipd'last_event, PathDelay => tpd_B0_F0, PathCondition => TRUE), - 2 => (InputChangeTime => A0_ipd'last_event, + 3 => (InputChangeTime => A0_ipd'last_event, PathDelay => tpd_A0_F0, PathCondition => TRUE)), GlitchData => F0_GlitchData, @@ -16402,153 +13402,6 @@ end Structure; --- entity lut40064 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity lut40064 is - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - - ATTRIBUTE Vital_Level0 OF lut40064 : ENTITY IS TRUE; - - end lut40064; - - architecture Structure of lut40064 is - begin - INST10: ROM16X1A - generic map (initval => X"FFFD") - port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); - end Structure; - --- entity SLICE_94 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_94 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_94"; - - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); - - port (B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; - C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; - F0: out Std_logic; F1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_94 : ENTITY IS TRUE; - - end SLICE_94; - - architecture Structure of SLICE_94 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal D0_ipd : std_logic := 'X'; - signal C0_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - - signal GNDI: Std_logic; - component gnd - port (PWR0: out Std_logic); - end component; - component lut40048 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component lut40064 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - i771_2_lut_rep_23_2_lut: lut40048 - port map (A=>A1_ipd, B=>B1_ipd, C=>GNDI, D=>GNDI, Z=>F1_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - i2_3_lut_4_lut_4_lut: lut40064 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(D0_ipd, D0, tipd_D0); - VitalWireDelay(C0_ipd, C0, tipd_C0); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - END BLOCK; - - VitalBehavior : PROCESS (B1_ipd, A1_ipd, D0_ipd, C0_ipd, B0_ipd, A0_ipd, - F0_out, F1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - - - BEGIN - - IF (TimingChecksOn) THEN - - END IF; - - F0_zd := F0_out; - F1_zd := F1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => D0_ipd'last_event, - PathDelay => tpd_D0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => C0_ipd'last_event, - PathDelay => tpd_C0_F0, - PathCondition => TRUE), - 2 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 3 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - -- entity lut40065 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; @@ -16566,25 +13419,24 @@ architecture Structure of lut40065 is begin INST10: ROM16X1A - generic map (initval => X"1404") + generic map (initval => X"AAC0") port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); end Structure; --- entity SLICE_95 +-- entity SLICE_64 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity SLICE_95 is + entity SLICE_64 is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_95"; + InstancePath : string := "SLICE_64"; - tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); @@ -16592,7 +13444,6 @@ tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); @@ -16601,19 +13452,17 @@ tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; - B0: in Std_logic; A0: in Std_logic; F0: out Std_logic; - F1: out Std_logic); + port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; + D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; F0: out Std_logic; F1: out Std_logic); - ATTRIBUTE Vital_Level0 OF SLICE_95 : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF SLICE_64 : ENTITY IS TRUE; - end SLICE_95; + end SLICE_64; - architecture Structure of SLICE_95 is + architecture Structure of SLICE_64 is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - signal D1_ipd : std_logic := 'X'; signal C1_ipd : std_logic := 'X'; signal B1_ipd : std_logic := 'X'; signal A1_ipd : std_logic := 'X'; @@ -16624,157 +13473,30 @@ signal F0_out : std_logic := 'X'; signal F1_out : std_logic := 'X'; - component lut40040 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component lut40065 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - i2_4_lut_adj_20: lut40065 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); - i6_4_lut_adj_9: lut40040 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(D1_ipd, D1, tipd_D1); - VitalWireDelay(C1_ipd, C1, tipd_C1); - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(D0_ipd, D0, tipd_D0); - VitalWireDelay(C0_ipd, C0, tipd_C0); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - END BLOCK; - - VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, - B0_ipd, A0_ipd, F0_out, F1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - - - BEGIN - - IF (TimingChecksOn) THEN - - END IF; - - F0_zd := F0_out; - F1_zd := F1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => D0_ipd'last_event, - PathDelay => tpd_D0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => C0_ipd'last_event, - PathDelay => tpd_C0_F0, - PathCondition => TRUE), - 2 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 3 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => D1_ipd'last_event, - PathDelay => tpd_D1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => C1_ipd'last_event, - PathDelay => tpd_C1_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 3 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity SLICE_96 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_96 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_96"; - - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); - - port (B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; - C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; - F0: out Std_logic; F1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_96 : ENTITY IS TRUE; - - end SLICE_96; - - architecture Structure of SLICE_96 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal D0_ipd : std_logic := 'X'; - signal C0_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - signal GNDI: Std_logic; component gnd port (PWR0: out Std_logic); end component; - component lut40027 + component lut40052 port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; Z: out Std_logic); end component; - component lut40034 + component lut40065 port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; Z: out Std_logic); end component; begin - i1_2_lut_rep_27: lut40034 - port map (A=>A1_ipd, B=>B1_ipd, C=>GNDI, D=>GNDI, Z=>F1_out); + UFMSDI_ens2_i_o2_0: lut40052 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>GNDI, Z=>F1_out); DRIVEGND: gnd port map (PWR0=>GNDI); - i2_3_lut_4_lut_adj_24: lut40027 + UFMCLK_r_i_m2: lut40065 port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN + VitalWireDelay(C1_ipd, C1, tipd_C1); VitalWireDelay(B1_ipd, B1, tipd_B1); VitalWireDelay(A1_ipd, A1, tipd_A1); VitalWireDelay(D0_ipd, D0, tipd_D0); @@ -16783,8 +13505,8 @@ VitalWireDelay(A0_ipd, A0, tipd_A0); END BLOCK; - VitalBehavior : PROCESS (B1_ipd, A1_ipd, D0_ipd, C0_ipd, B0_ipd, A0_ipd, - F0_out, F1_out) + VitalBehavior : PROCESS (C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, B0_ipd, + A0_ipd, F0_out, F1_out) VARIABLE F0_zd : std_logic := 'X'; VARIABLE F0_GlitchData : VitalGlitchDataType; VARIABLE F1_zd : std_logic := 'X'; @@ -16818,10 +13540,13 @@ Mode => ondetect, XOn => XOn, MsgOn => MsgOn); VitalPathDelay01 ( OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => B1_ipd'last_event, + Paths => (0 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => B1_ipd'last_event, PathDelay => tpd_B1_F1, PathCondition => TRUE), - 1 => (InputChangeTime => A1_ipd'last_event, + 2 => (InputChangeTime => A1_ipd'last_event, PathDelay => tpd_A1_F1, PathCondition => TRUE)), GlitchData => F1_GlitchData, @@ -16848,309 +13573,36 @@ architecture Structure of lut40066 is begin INST10: ROM16X1A - generic map (initval => X"C5C5") + generic map (initval => X"3B33") port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); end Structure; --- entity SLICE_97 +-- entity SLICE_65 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity SLICE_97 is + entity SLICE_65 is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_97"; - - tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CE : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); - ticd_CLK : VitalDelayType := 0 ns; - tisd_M1_CLK : VitalDelayType := 0 ns; - tsetup_M1_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_M1_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_M0_CLK : VitalDelayType := 0 ns; - tsetup_M0_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_M0_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_CE_CLK : VitalDelayType := 0 ns; - tsetup_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns); - - port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; - B0: in Std_logic; A0: in Std_logic; M1: in Std_logic; - M0: in Std_logic; CE: in Std_logic; CLK: in Std_logic; - F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic; - Q1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_97 : ENTITY IS TRUE; - - end SLICE_97; - - architecture Structure of SLICE_97 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal C1_ipd : std_logic := 'X'; - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal M1_ipd : std_logic := 'X'; - signal M1_dly : std_logic := 'X'; - signal M0_ipd : std_logic := 'X'; - signal M0_dly : std_logic := 'X'; - signal CE_ipd : std_logic := 'X'; - signal CE_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - signal Q1_out : std_logic := 'X'; - - signal GNDI: Std_logic; - signal VCCI: Std_logic; - component vmuxregsre - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component lut40034 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component lut40066 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - i13_3_lut: lut40066 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>GNDI, Z=>F1_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - i1956_2_lut: lut40034 - port map (A=>A0_ipd, B=>B0_ipd, C=>GNDI, D=>GNDI, Z=>F0_out); - IS_FSM_i7: vmuxregsre - port map (D0=>M1_dly, D1=>VCCI, SD=>GNDI, SP=>CE_dly, CK=>CLK_dly, - LSR=>GNDI, Q=>Q1_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - IS_FSM_i6: vmuxregsre - port map (D0=>M0_dly, D1=>VCCI, SD=>GNDI, SP=>CE_dly, CK=>CLK_dly, - LSR=>GNDI, Q=>Q0_out); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(C1_ipd, C1, tipd_C1); - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(M1_ipd, M1, tipd_M1); - VitalWireDelay(M0_ipd, M0, tipd_M0); - VitalWireDelay(CE_ipd, CE, tipd_CE); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(M1_dly, M1_ipd, tisd_M1_CLK); - VitalSignalDelay(M0_dly, M0_ipd, tisd_M0_CLK); - VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (C1_ipd, B1_ipd, A1_ipd, B0_ipd, A0_ipd, M1_dly, - M0_dly, CE_dly, CLK_dly, F0_out, Q0_out, F1_out, Q1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - VARIABLE Q1_zd : std_logic := 'X'; - VARIABLE Q1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_M1_CLK : x01 := '0'; - VARIABLE M1_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_M0_CLK : x01 := '0'; - VARIABLE M0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CE_CLK : x01 := '0'; - VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => M1_dly, - TestSignalName => "M1", - TestDelay => tisd_M1_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M1_CLK_noedge_posedge, - SetupLow => tsetup_M1_CLK_noedge_posedge, - HoldHigh => thold_M1_CLK_noedge_posedge, - HoldLow => thold_M1_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M1_CLK_TimingDatash, - Violation => tviol_M1_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => M0_dly, - TestSignalName => "M0", - TestDelay => tisd_M0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M0_CLK_noedge_posedge, - SetupLow => tsetup_M0_CLK_noedge_posedge, - HoldHigh => thold_M0_CLK_noedge_posedge, - HoldLow => thold_M0_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M0_CLK_TimingDatash, - Violation => tviol_M0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => CE_dly, - TestSignalName => "CE", - TestDelay => tisd_CE_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_CE_CLK_noedge_posedge, - SetupLow => tsetup_CE_CLK_noedge_posedge, - HoldHigh => thold_CE_CLK_noedge_posedge, - HoldLow => thold_CE_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => CE_CLK_TimingDatash, - Violation => tviol_CE_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - F1_zd := F1_out; - Q1_zd := Q1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => C1_ipd'last_event, - PathDelay => tpd_C1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q1, - PathCondition => TRUE)), - GlitchData => Q1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity SLICE_98 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_98 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_98"; + InstancePath : string := "SLICE_65"; tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); tipd_M1 : VitalDelayType01 := (0 ns, 0 ns); tipd_M0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CE : VitalDelayType01 := (0 ns, 0 ns); tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); @@ -17163,28 +13615,26 @@ tisd_M0_CLK : VitalDelayType := 0 ns; tsetup_M0_CLK_noedge_posedge : VitalDelayType := 0 ns; thold_M0_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_CE_CLK : VitalDelayType := 0 ns; - tsetup_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; tperiod_CLK : VitalDelayType := 0 ns; tpw_CLK_posedge : VitalDelayType := 0 ns; tpw_CLK_negedge : VitalDelayType := 0 ns); - port (B1: in Std_logic; A1: in Std_logic; C0: in Std_logic; - B0: in Std_logic; A0: in Std_logic; M1: in Std_logic; - M0: in Std_logic; CE: in Std_logic; CLK: in Std_logic; + port (B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; + C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; + M1: in Std_logic; M0: in Std_logic; CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic; Q1: out Std_logic); - ATTRIBUTE Vital_Level0 OF SLICE_98 : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF SLICE_65 : ENTITY IS TRUE; - end SLICE_98; + end SLICE_65; - architecture Structure of SLICE_98 is + architecture Structure of SLICE_65 is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; signal B1_ipd : std_logic := 'X'; signal A1_ipd : std_logic := 'X'; + signal D0_ipd : std_logic := 'X'; signal C0_ipd : std_logic := 'X'; signal B0_ipd : std_logic := 'X'; signal A0_ipd : std_logic := 'X'; @@ -17192,8 +13642,6 @@ signal M1_dly : std_logic := 'X'; signal M0_ipd : std_logic := 'X'; signal M0_dly : std_logic := 'X'; - signal CE_ipd : std_logic := 'X'; - signal CE_dly : std_logic := 'X'; signal CLK_ipd : std_logic := 'X'; signal CLK_dly : std_logic := 'X'; signal F0_out : std_logic := 'X'; @@ -17214,28 +13662,28 @@ component gnd port (PWR0: out Std_logic); end component; - component lut40021 + component lut40006 port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; Z: out Std_logic); end component; - component lut40037 + component lut40066 port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; Z: out Std_logic); end component; begin - i1416_2_lut: lut40037 + UFMCLK_0io_RNO_0: lut40006 port map (A=>A1_ipd, B=>B1_ipd, C=>GNDI, D=>GNDI, Z=>F1_out); DRIVEGND: gnd port map (PWR0=>GNDI); - MAin_9_I_0_427_i9_3_lut: lut40021 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>GNDI, Z=>F0_out); - IS_FSM_i1: vmuxregsre - port map (D0=>M1_dly, D1=>VCCI, SD=>GNDI, SP=>CE_dly, CK=>CLK_dly, + PHI2r3_RNITCN41: lut40066 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); + PHI2r3: vmuxregsre + port map (D0=>M1_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_dly, LSR=>GNDI, Q=>Q1_out); DRIVEVCC: vcc port map (PWR1=>VCCI); - IS_FSM_i0: vmuxregsre - port map (D0=>M0_dly, D1=>VCCI, SD=>GNDI, SP=>CE_dly, CK=>CLK_dly, + PHI2r2: vmuxregsre + port map (D0=>M0_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_dly, LSR=>GNDI, Q=>Q0_out); -- INPUT PATH DELAYs @@ -17243,12 +13691,12 @@ BEGIN VitalWireDelay(B1_ipd, B1, tipd_B1); VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(D0_ipd, D0, tipd_D0); VitalWireDelay(C0_ipd, C0, tipd_C0); VitalWireDelay(B0_ipd, B0, tipd_B0); VitalWireDelay(A0_ipd, A0, tipd_A0); VitalWireDelay(M1_ipd, M1, tipd_M1); VitalWireDelay(M0_ipd, M0, tipd_M0); - VitalWireDelay(CE_ipd, CE, tipd_CE); VitalWireDelay(CLK_ipd, CLK, tipd_CLK); END BLOCK; @@ -17257,12 +13705,11 @@ BEGIN VitalSignalDelay(M1_dly, M1_ipd, tisd_M1_CLK); VitalSignalDelay(M0_dly, M0_ipd, tisd_M0_CLK); - VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); END BLOCK; - VitalBehavior : PROCESS (B1_ipd, A1_ipd, C0_ipd, B0_ipd, A0_ipd, M1_dly, - M0_dly, CE_dly, CLK_dly, F0_out, Q0_out, F1_out, Q1_out) + VitalBehavior : PROCESS (B1_ipd, A1_ipd, D0_ipd, C0_ipd, B0_ipd, A0_ipd, + M1_dly, M0_dly, CLK_dly, F0_out, Q0_out, F1_out, Q1_out) VARIABLE F0_zd : std_logic := 'X'; VARIABLE F0_GlitchData : VitalGlitchDataType; VARIABLE Q0_zd : std_logic := 'X'; @@ -17276,8 +13723,6 @@ VARIABLE M1_CLK_TimingDatash : VitalTimingDataType; VARIABLE tviol_M0_CLK : x01 := '0'; VARIABLE M0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CE_CLK : x01 := '0'; - VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; VARIABLE tviol_CLK_CLK : x01 := '0'; VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; @@ -17320,24 +13765,6 @@ TimingData => M0_CLK_TimingDatash, Violation => tviol_M0_CLK, MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => CE_dly, - TestSignalName => "CE", - TestDelay => tisd_CE_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_CE_CLK_noedge_posedge, - SetupLow => tsetup_CE_CLK_noedge_posedge, - HoldHigh => thold_CE_CLK_noedge_posedge, - HoldLow => thold_CE_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => CE_CLK_TimingDatash, - Violation => tviol_CE_CLK, - MsgSeverity => warning); VitalPeriodPulseCheck ( TestSignal => CLK_ipd, TestSignalName => "CLK", @@ -17360,13 +13787,16 @@ VitalPathDelay01 ( OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => C0_ipd'last_event, + Paths => (0 => (InputChangeTime => D0_ipd'last_event, + PathDelay => tpd_D0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => C0_ipd'last_event, PathDelay => tpd_C0_F0, PathCondition => TRUE), - 1 => (InputChangeTime => B0_ipd'last_event, + 2 => (InputChangeTime => B0_ipd'last_event, PathDelay => tpd_B0_F0, PathCondition => TRUE), - 2 => (InputChangeTime => A0_ipd'last_event, + 3 => (InputChangeTime => A0_ipd'last_event, PathDelay => tpd_A0_F0, PathCondition => TRUE)), GlitchData => F0_GlitchData, @@ -17400,1298 +13830,6 @@ end Structure; --- entity SLICE_99 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_99 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_99"; - - tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CE : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns; - ticd_CLK : VitalDelayType := 0 ns; - tisd_M0_CLK : VitalDelayType := 0 ns; - tsetup_M0_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_M0_CLK_noedge_negedge : VitalDelayType := 0 ns; - tisd_CE_CLK : VitalDelayType := 0 ns; - tsetup_CE_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_CE_CLK_noedge_negedge : VitalDelayType := 0 ns); - - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; C0: in Std_logic; B0: in Std_logic; - A0: in Std_logic; M0: in Std_logic; CE: in Std_logic; - CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; - F1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_99 : ENTITY IS TRUE; - - end SLICE_99; - - architecture Structure of SLICE_99 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal D1_ipd : std_logic := 'X'; - signal C1_ipd : std_logic := 'X'; - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal C0_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal M0_ipd : std_logic := 'X'; - signal M0_dly : std_logic := 'X'; - signal CE_ipd : std_logic := 'X'; - signal CE_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - - signal GNDI: Std_logic; - signal VCCI: Std_logic; - signal CLK_NOTIN: Std_logic; - component vmuxregsre - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component inverter - port (I: in Std_logic; Z: out Std_logic); - end component; - component lut40021 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component lut40052 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - i8_4_lut: lut40052 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); - MAin_9_I_0_427_i8_3_lut: lut40021 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>GNDI, Z=>F0_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - CmdUFMSDI_414: vmuxregsre - port map (D0=>M0_dly, D1=>VCCI, SD=>GNDI, SP=>CE_dly, CK=>CLK_NOTIN, - LSR=>GNDI, Q=>Q0_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - CLK_INVERTERIN: inverter - port map (I=>CLK_dly, Z=>CLK_NOTIN); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(D1_ipd, D1, tipd_D1); - VitalWireDelay(C1_ipd, C1, tipd_C1); - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(C0_ipd, C0, tipd_C0); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(M0_ipd, M0, tipd_M0); - VitalWireDelay(CE_ipd, CE, tipd_CE); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(M0_dly, M0_ipd, tisd_M0_CLK); - VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, C0_ipd, B0_ipd, - A0_ipd, M0_dly, CE_dly, CLK_dly, F0_out, Q0_out, F1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_M0_CLK : x01 := '0'; - VARIABLE M0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CE_CLK : x01 := '0'; - VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => M0_dly, - TestSignalName => "M0", - TestDelay => tisd_M0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M0_CLK_noedge_negedge, - SetupLow => tsetup_M0_CLK_noedge_negedge, - HoldHigh => thold_M0_CLK_noedge_negedge, - HoldLow => thold_M0_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M0_CLK_TimingDatash, - Violation => tviol_M0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => CE_dly, - TestSignalName => "CE", - TestDelay => tisd_CE_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_CE_CLK_noedge_negedge, - SetupLow => tsetup_CE_CLK_noedge_negedge, - HoldHigh => thold_CE_CLK_noedge_negedge, - HoldLow => thold_CE_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => CE_CLK_TimingDatash, - Violation => tviol_CE_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - F1_zd := F1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => C0_ipd'last_event, - PathDelay => tpd_C0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 2 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => D1_ipd'last_event, - PathDelay => tpd_D1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => C1_ipd'last_event, - PathDelay => tpd_C1_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 3 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity SLICE_100 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_100 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_100"; - - tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CE : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns; - ticd_CLK : VitalDelayType := 0 ns; - tisd_M1_CLK : VitalDelayType := 0 ns; - tsetup_M1_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_M1_CLK_noedge_negedge : VitalDelayType := 0 ns; - tisd_M0_CLK : VitalDelayType := 0 ns; - tsetup_M0_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_M0_CLK_noedge_negedge : VitalDelayType := 0 ns; - tisd_CE_CLK : VitalDelayType := 0 ns; - tsetup_CE_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_CE_CLK_noedge_negedge : VitalDelayType := 0 ns); - - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; C0: in Std_logic; B0: in Std_logic; - A0: in Std_logic; M1: in Std_logic; M0: in Std_logic; - CE: in Std_logic; CLK: in Std_logic; F0: out Std_logic; - Q0: out Std_logic; F1: out Std_logic; Q1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_100 : ENTITY IS TRUE; - - end SLICE_100; - - architecture Structure of SLICE_100 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal D1_ipd : std_logic := 'X'; - signal C1_ipd : std_logic := 'X'; - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal C0_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal M1_ipd : std_logic := 'X'; - signal M1_dly : std_logic := 'X'; - signal M0_ipd : std_logic := 'X'; - signal M0_dly : std_logic := 'X'; - signal CE_ipd : std_logic := 'X'; - signal CE_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - signal Q1_out : std_logic := 'X'; - - signal GNDI: Std_logic; - signal VCCI: Std_logic; - signal CLK_NOTIN: Std_logic; - component vmuxregsre - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component inverter - port (I: in Std_logic; Z: out Std_logic); - end component; - component lut40021 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - component lut40052 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - i1979_4_lut: lut40052 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); - MAin_9_I_0_427_i7_3_lut: lut40021 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>GNDI, Z=>F0_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - CmdUFMCS_412: vmuxregsre - port map (D0=>M1_dly, D1=>VCCI, SD=>GNDI, SP=>CE_dly, CK=>CLK_NOTIN, - LSR=>GNDI, Q=>Q1_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - CLK_INVERTERIN: inverter - port map (I=>CLK_dly, Z=>CLK_NOTIN); - CmdUFMCLK_413: vmuxregsre - port map (D0=>M0_dly, D1=>VCCI, SD=>GNDI, SP=>CE_dly, CK=>CLK_NOTIN, - LSR=>GNDI, Q=>Q0_out); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(D1_ipd, D1, tipd_D1); - VitalWireDelay(C1_ipd, C1, tipd_C1); - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(C0_ipd, C0, tipd_C0); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(M1_ipd, M1, tipd_M1); - VitalWireDelay(M0_ipd, M0, tipd_M0); - VitalWireDelay(CE_ipd, CE, tipd_CE); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(M1_dly, M1_ipd, tisd_M1_CLK); - VitalSignalDelay(M0_dly, M0_ipd, tisd_M0_CLK); - VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, C0_ipd, B0_ipd, - A0_ipd, M1_dly, M0_dly, CE_dly, CLK_dly, F0_out, Q0_out, F1_out, Q1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - VARIABLE Q1_zd : std_logic := 'X'; - VARIABLE Q1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_M1_CLK : x01 := '0'; - VARIABLE M1_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_M0_CLK : x01 := '0'; - VARIABLE M0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CE_CLK : x01 := '0'; - VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => M1_dly, - TestSignalName => "M1", - TestDelay => tisd_M1_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M1_CLK_noedge_negedge, - SetupLow => tsetup_M1_CLK_noedge_negedge, - HoldHigh => thold_M1_CLK_noedge_negedge, - HoldLow => thold_M1_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M1_CLK_TimingDatash, - Violation => tviol_M1_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => M0_dly, - TestSignalName => "M0", - TestDelay => tisd_M0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M0_CLK_noedge_negedge, - SetupLow => tsetup_M0_CLK_noedge_negedge, - HoldHigh => thold_M0_CLK_noedge_negedge, - HoldLow => thold_M0_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M0_CLK_TimingDatash, - Violation => tviol_M0_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => CE_dly, - TestSignalName => "CE", - TestDelay => tisd_CE_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_CE_CLK_noedge_negedge, - SetupLow => tsetup_CE_CLK_noedge_negedge, - HoldHigh => thold_CE_CLK_noedge_negedge, - HoldLow => thold_CE_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => CE_CLK_TimingDatash, - Violation => tviol_CE_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - F1_zd := F1_out; - Q1_zd := Q1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => C0_ipd'last_event, - PathDelay => tpd_C0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 2 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => D1_ipd'last_event, - PathDelay => tpd_D1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => C1_ipd'last_event, - PathDelay => tpd_C1_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 3 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q1, - PathCondition => TRUE)), - GlitchData => Q1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity SLICE_101 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_101 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_101"; - - tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); - ticd_CLK : VitalDelayType := 0 ns; - tisd_M1_CLK : VitalDelayType := 0 ns; - tsetup_M1_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_M1_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_M0_CLK : VitalDelayType := 0 ns; - tsetup_M0_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_M0_CLK_noedge_posedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns); - - port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; - C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; - M1: in Std_logic; M0: in Std_logic; CLK: in Std_logic; - F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic; - Q1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_101 : ENTITY IS TRUE; - - end SLICE_101; - - architecture Structure of SLICE_101 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal C1_ipd : std_logic := 'X'; - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal C0_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal M1_ipd : std_logic := 'X'; - signal M1_dly : std_logic := 'X'; - signal M0_ipd : std_logic := 'X'; - signal M0_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - signal Q1_out : std_logic := 'X'; - - signal GNDI: Std_logic; - signal VCCI: Std_logic; - component vmuxregsre - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component lut40021 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - MAin_9_I_0_427_i1_3_lut: lut40021 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>GNDI, Z=>F1_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - MAin_9_I_0_427_i6_3_lut: lut40021 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>GNDI, Z=>F0_out); - Bank_i7: vmuxregsre - port map (D0=>M1_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_dly, - LSR=>GNDI, Q=>Q1_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - Bank_i6: vmuxregsre - port map (D0=>M0_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_dly, - LSR=>GNDI, Q=>Q0_out); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(C1_ipd, C1, tipd_C1); - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(C0_ipd, C0, tipd_C0); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(M1_ipd, M1, tipd_M1); - VitalWireDelay(M0_ipd, M0, tipd_M0); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(M1_dly, M1_ipd, tisd_M1_CLK); - VitalSignalDelay(M0_dly, M0_ipd, tisd_M0_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (C1_ipd, B1_ipd, A1_ipd, C0_ipd, B0_ipd, A0_ipd, - M1_dly, M0_dly, CLK_dly, F0_out, Q0_out, F1_out, Q1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - VARIABLE Q1_zd : std_logic := 'X'; - VARIABLE Q1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_M1_CLK : x01 := '0'; - VARIABLE M1_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_M0_CLK : x01 := '0'; - VARIABLE M0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => M1_dly, - TestSignalName => "M1", - TestDelay => tisd_M1_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M1_CLK_noedge_posedge, - SetupLow => tsetup_M1_CLK_noedge_posedge, - HoldHigh => thold_M1_CLK_noedge_posedge, - HoldLow => thold_M1_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M1_CLK_TimingDatash, - Violation => tviol_M1_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => M0_dly, - TestSignalName => "M0", - TestDelay => tisd_M0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M0_CLK_noedge_posedge, - SetupLow => tsetup_M0_CLK_noedge_posedge, - HoldHigh => thold_M0_CLK_noedge_posedge, - HoldLow => thold_M0_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M0_CLK_TimingDatash, - Violation => tviol_M0_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - F1_zd := F1_out; - Q1_zd := Q1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => C0_ipd'last_event, - PathDelay => tpd_C0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 2 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => C1_ipd'last_event, - PathDelay => tpd_C1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q1, - PathCondition => TRUE)), - GlitchData => Q1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity SLICE_102 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_102 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_102"; - - tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); - ticd_CLK : VitalDelayType := 0 ns; - tisd_M1_CLK : VitalDelayType := 0 ns; - tsetup_M1_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_M1_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_M0_CLK : VitalDelayType := 0 ns; - tsetup_M0_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_M0_CLK_noedge_posedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns); - - port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; - C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; - M1: in Std_logic; M0: in Std_logic; CLK: in Std_logic; - F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic; - Q1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_102 : ENTITY IS TRUE; - - end SLICE_102; - - architecture Structure of SLICE_102 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal C1_ipd : std_logic := 'X'; - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal C0_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal M1_ipd : std_logic := 'X'; - signal M1_dly : std_logic := 'X'; - signal M0_ipd : std_logic := 'X'; - signal M0_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - signal Q1_out : std_logic := 'X'; - - signal GNDI: Std_logic; - signal VCCI: Std_logic; - component vmuxregsre - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component lut40021 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - MAin_9_I_0_427_i2_3_lut: lut40021 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>GNDI, Z=>F1_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - MAin_9_I_0_427_i5_3_lut: lut40021 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>GNDI, Z=>F0_out); - Bank_i5: vmuxregsre - port map (D0=>M1_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_dly, - LSR=>GNDI, Q=>Q1_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - Bank_i4: vmuxregsre - port map (D0=>M0_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_dly, - LSR=>GNDI, Q=>Q0_out); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(C1_ipd, C1, tipd_C1); - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(C0_ipd, C0, tipd_C0); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(M1_ipd, M1, tipd_M1); - VitalWireDelay(M0_ipd, M0, tipd_M0); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(M1_dly, M1_ipd, tisd_M1_CLK); - VitalSignalDelay(M0_dly, M0_ipd, tisd_M0_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (C1_ipd, B1_ipd, A1_ipd, C0_ipd, B0_ipd, A0_ipd, - M1_dly, M0_dly, CLK_dly, F0_out, Q0_out, F1_out, Q1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - VARIABLE Q1_zd : std_logic := 'X'; - VARIABLE Q1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_M1_CLK : x01 := '0'; - VARIABLE M1_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_M0_CLK : x01 := '0'; - VARIABLE M0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => M1_dly, - TestSignalName => "M1", - TestDelay => tisd_M1_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M1_CLK_noedge_posedge, - SetupLow => tsetup_M1_CLK_noedge_posedge, - HoldHigh => thold_M1_CLK_noedge_posedge, - HoldLow => thold_M1_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M1_CLK_TimingDatash, - Violation => tviol_M1_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => M0_dly, - TestSignalName => "M0", - TestDelay => tisd_M0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M0_CLK_noedge_posedge, - SetupLow => tsetup_M0_CLK_noedge_posedge, - HoldHigh => thold_M0_CLK_noedge_posedge, - HoldLow => thold_M0_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M0_CLK_TimingDatash, - Violation => tviol_M0_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - F1_zd := F1_out; - Q1_zd := Q1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => C0_ipd'last_event, - PathDelay => tpd_C0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 2 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => C1_ipd'last_event, - PathDelay => tpd_C1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q1, - PathCondition => TRUE)), - GlitchData => Q1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity SLICE_103 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity SLICE_103 is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_103"; - - tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); - tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); - ticd_CLK : VitalDelayType := 0 ns; - tisd_M1_CLK : VitalDelayType := 0 ns; - tsetup_M1_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_M1_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_M0_CLK : VitalDelayType := 0 ns; - tsetup_M0_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_M0_CLK_noedge_posedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns); - - port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; - C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; - M1: in Std_logic; M0: in Std_logic; CLK: in Std_logic; - F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic; - Q1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF SLICE_103 : ENTITY IS TRUE; - - end SLICE_103; - - architecture Structure of SLICE_103 is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal C1_ipd : std_logic := 'X'; - signal B1_ipd : std_logic := 'X'; - signal A1_ipd : std_logic := 'X'; - signal C0_ipd : std_logic := 'X'; - signal B0_ipd : std_logic := 'X'; - signal A0_ipd : std_logic := 'X'; - signal M1_ipd : std_logic := 'X'; - signal M1_dly : std_logic := 'X'; - signal M0_ipd : std_logic := 'X'; - signal M0_dly : std_logic := 'X'; - signal CLK_ipd : std_logic := 'X'; - signal CLK_dly : std_logic := 'X'; - signal F0_out : std_logic := 'X'; - signal Q0_out : std_logic := 'X'; - signal F1_out : std_logic := 'X'; - signal Q1_out : std_logic := 'X'; - - signal GNDI: Std_logic; - signal VCCI: Std_logic; - component vmuxregsre - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component vcc - port (PWR1: out Std_logic); - end component; - component gnd - port (PWR0: out Std_logic); - end component; - component lut40021 - port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; - Z: out Std_logic); - end component; - begin - MAin_9_I_0_427_i3_3_lut: lut40021 - port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>GNDI, Z=>F1_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - MAin_9_I_0_427_i4_3_lut: lut40021 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>GNDI, Z=>F0_out); - Bank_i3: vmuxregsre - port map (D0=>M1_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_dly, - LSR=>GNDI, Q=>Q1_out); - DRIVEVCC: vcc - port map (PWR1=>VCCI); - Bank_i2: vmuxregsre - port map (D0=>M0_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_dly, - LSR=>GNDI, Q=>Q0_out); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(C1_ipd, C1, tipd_C1); - VitalWireDelay(B1_ipd, B1, tipd_B1); - VitalWireDelay(A1_ipd, A1, tipd_A1); - VitalWireDelay(C0_ipd, C0, tipd_C0); - VitalWireDelay(B0_ipd, B0, tipd_B0); - VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(M1_ipd, M1, tipd_M1); - VitalWireDelay(M0_ipd, M0, tipd_M0); - VitalWireDelay(CLK_ipd, CLK, tipd_CLK); - END BLOCK; - - -- Setup and Hold DELAYs - SignalDelay : BLOCK - BEGIN - VitalSignalDelay(M1_dly, M1_ipd, tisd_M1_CLK); - VitalSignalDelay(M0_dly, M0_ipd, tisd_M0_CLK); - VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); - END BLOCK; - - VitalBehavior : PROCESS (C1_ipd, B1_ipd, A1_ipd, C0_ipd, B0_ipd, A0_ipd, - M1_dly, M0_dly, CLK_dly, F0_out, Q0_out, F1_out, Q1_out) - VARIABLE F0_zd : std_logic := 'X'; - VARIABLE F0_GlitchData : VitalGlitchDataType; - VARIABLE Q0_zd : std_logic := 'X'; - VARIABLE Q0_GlitchData : VitalGlitchDataType; - VARIABLE F1_zd : std_logic := 'X'; - VARIABLE F1_GlitchData : VitalGlitchDataType; - VARIABLE Q1_zd : std_logic := 'X'; - VARIABLE Q1_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_M1_CLK : x01 := '0'; - VARIABLE M1_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_M0_CLK : x01 := '0'; - VARIABLE M0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CLK_CLK : x01 := '0'; - VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => M1_dly, - TestSignalName => "M1", - TestDelay => tisd_M1_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M1_CLK_noedge_posedge, - SetupLow => tsetup_M1_CLK_noedge_posedge, - HoldHigh => thold_M1_CLK_noedge_posedge, - HoldLow => thold_M1_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M1_CLK_TimingDatash, - Violation => tviol_M1_CLK, - MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => M0_dly, - TestSignalName => "M0", - TestDelay => tisd_M0_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M0_CLK_noedge_posedge, - SetupLow => tsetup_M0_CLK_noedge_posedge, - HoldHigh => thold_M0_CLK_noedge_posedge, - HoldLow => thold_M0_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M0_CLK_TimingDatash, - Violation => tviol_M0_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => CLK_ipd, - TestSignalName => "CLK", - Period => tperiod_CLK, - PulseWidthHigh => tpw_CLK_posedge, - PulseWidthLow => tpw_CLK_negedge, - PeriodData => periodcheckinfo_CLK, - Violation => tviol_CLK_CLK, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - F0_zd := F0_out; - Q0_zd := Q0_out; - F1_zd := F1_out; - Q1_zd := Q1_out; - - VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => C0_ipd'last_event, - PathDelay => tpd_C0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 2 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, - PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => C1_ipd'last_event, - PathDelay => tpd_C1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 2 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q1, - PathCondition => TRUE)), - GlitchData => Q1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - -- entity lut40067 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; @@ -18709,200 +13847,433 @@ architecture Structure of lut40067 is begin INST10: ROM16X1A - generic map (initval => X"FDFD") + generic map (initval => X"3AFA") port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); end Structure; --- entity SLICE_104 +-- entity lut40068 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity SLICE_104 is + entity lut40068 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40068 : ENTITY IS TRUE; + + end lut40068; + + architecture Structure of lut40068 is + begin + INST10: ROM16X1A + generic map (initval => X"200F") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity SLICE_66 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_66 is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_104"; + InstancePath : string := "SLICE_66"; + tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); + + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; + B0: in Std_logic; A0: in Std_logic; F0: out Std_logic; + F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_66 : ENTITY IS TRUE; + + end SLICE_66; + + architecture Structure of SLICE_66 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal D1_ipd : std_logic := 'X'; + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal D0_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + component lut40067 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40068 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + nRCS_0io_RNO: lut40067 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); + nRCAS_r_i_a3_1_1_tz: lut40068 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(D1_ipd, D1, tipd_D1); + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(D0_ipd, D0, tipd_D0); + VitalWireDelay(C0_ipd, C0, tipd_C0); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + END BLOCK; + + VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, + B0_ipd, A0_ipd, F0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + F0_zd := F0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => D0_ipd'last_event, + PathDelay => tpd_D0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 3 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => D1_ipd'last_event, + PathDelay => tpd_D1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 3 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity SLICE_67 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_67 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_67"; + + tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_LSR : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); - tperiod_LSR : VitalDelayType := 0 ns; - tpw_LSR_posedge : VitalDelayType := 0 ns; - tpw_LSR_negedge : VitalDelayType := 0 ns; - tperiod_CLK : VitalDelayType := 0 ns; - tpw_CLK_posedge : VitalDelayType := 0 ns; - tpw_CLK_negedge : VitalDelayType := 0 ns; - ticd_CLK : VitalDelayType := 0 ns; - tisd_M1_CLK : VitalDelayType := 0 ns; - tsetup_M1_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_M1_CLK_noedge_negedge : VitalDelayType := 0 ns; - tisd_M0_CLK : VitalDelayType := 0 ns; - tsetup_M0_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_M0_CLK_noedge_negedge : VitalDelayType := 0 ns; - tisd_LSR_CLK : VitalDelayType := 0 ns; - tsetup_LSR_CLK_noedge_negedge : VitalDelayType := 0 ns; - thold_LSR_CLK_noedge_negedge : VitalDelayType := 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); - port (B1: in Std_logic; A1: in Std_logic; C0: in Std_logic; - B0: in Std_logic; A0: in Std_logic; M1: in Std_logic; - M0: in Std_logic; LSR: in Std_logic; CLK: in Std_logic; - F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic; - Q1: out Std_logic); + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; F0: out Std_logic; F1: out Std_logic); - ATTRIBUTE Vital_Level0 OF SLICE_104 : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF SLICE_67 : ENTITY IS TRUE; - end SLICE_104; + end SLICE_67; - architecture Structure of SLICE_104 is + architecture Structure of SLICE_67 is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + signal D1_ipd : std_logic := 'X'; + signal C1_ipd : std_logic := 'X'; signal B1_ipd : std_logic := 'X'; signal A1_ipd : std_logic := 'X'; signal C0_ipd : std_logic := 'X'; signal B0_ipd : std_logic := 'X'; signal A0_ipd : std_logic := 'X'; - signal M1_ipd : std_logic := 'X'; - signal M1_dly : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + component gnd + port (PWR0: out Std_logic); + end component; + component lut40004 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40016 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + ADWR_6: lut40004 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); + ADWR_2: lut40016 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>GNDI, Z=>F0_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(D1_ipd, D1, tipd_D1); + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(C0_ipd, C0, tipd_C0); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + END BLOCK; + + VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, C0_ipd, B0_ipd, + A0_ipd, F0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + F0_zd := F0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => D1_ipd'last_event, + PathDelay => tpd_D1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 3 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity SLICE_68 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_68 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_68"; + + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_M0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); + ticd_CLK : VitalDelayType := 0 ns; + tisd_M0_CLK : VitalDelayType := 0 ns; + tsetup_M0_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_M0_CLK_noedge_posedge : VitalDelayType := 0 ns; + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns); + + port (B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; + C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; + M0: in Std_logic; CLK: in Std_logic; F0: out Std_logic; + Q0: out Std_logic; F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_68 : ENTITY IS TRUE; + + end SLICE_68; + + architecture Structure of SLICE_68 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal D0_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; signal M0_ipd : std_logic := 'X'; signal M0_dly : std_logic := 'X'; - signal LSR_ipd : std_logic := 'X'; - signal LSR_dly : std_logic := 'X'; signal CLK_ipd : std_logic := 'X'; signal CLK_dly : std_logic := 'X'; signal F0_out : std_logic := 'X'; signal Q0_out : std_logic := 'X'; signal F1_out : std_logic := 'X'; - signal Q1_out : std_logic := 'X'; signal GNDI: Std_logic; signal VCCI: Std_logic; - signal CLK_NOTIN: Std_logic; - signal LSR_NOTIN: Std_logic; + component vmuxregsre + port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; + SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; + Q: out Std_logic); + end component; component vcc port (PWR1: out Std_logic); end component; component gnd port (PWR0: out Std_logic); end component; - component vmuxregsre0004 - port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; - SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; - Q: out Std_logic); - end component; - component inverter - port (I: in Std_logic; Z: out Std_logic); - end component; - component lut40034 + component lut40008 port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; Z: out Std_logic); end component; - component lut40067 + component lut40064 port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; Z: out Std_logic); end component; begin - i1417_2_lut: lut40034 + CmdEnable16_3: lut40064 port map (A=>A1_ipd, B=>B1_ipd, C=>GNDI, D=>GNDI, Z=>F1_out); DRIVEGND: gnd port map (PWR0=>GNDI); - i1_2_lut_rep_14_3_lut: lut40067 - port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>GNDI, Z=>F0_out); - RowA_i7: vmuxregsre0004 - port map (D0=>M1_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_NOTIN, - LSR=>LSR_NOTIN, Q=>Q1_out); + CmdEnable16_5: lut40008 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); + Bank_0io_2: vmuxregsre + port map (D0=>M0_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_dly, + LSR=>GNDI, Q=>Q0_out); DRIVEVCC: vcc port map (PWR1=>VCCI); - CLK_INVERTERIN: inverter - port map (I=>CLK_dly, Z=>CLK_NOTIN); - LSR_INVERTERIN: inverter - port map (I=>LSR_dly, Z=>LSR_NOTIN); - RowA_i6: vmuxregsre0004 - port map (D0=>M0_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_NOTIN, - LSR=>LSR_NOTIN, Q=>Q0_out); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN VitalWireDelay(B1_ipd, B1, tipd_B1); VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(D0_ipd, D0, tipd_D0); VitalWireDelay(C0_ipd, C0, tipd_C0); VitalWireDelay(B0_ipd, B0, tipd_B0); VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(M1_ipd, M1, tipd_M1); VitalWireDelay(M0_ipd, M0, tipd_M0); - VitalWireDelay(LSR_ipd, LSR, tipd_LSR); VitalWireDelay(CLK_ipd, CLK, tipd_CLK); END BLOCK; -- Setup and Hold DELAYs SignalDelay : BLOCK BEGIN - VitalSignalDelay(M1_dly, M1_ipd, tisd_M1_CLK); VitalSignalDelay(M0_dly, M0_ipd, tisd_M0_CLK); - VitalSignalDelay(LSR_dly, LSR_ipd, tisd_LSR_CLK); VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); END BLOCK; - VitalBehavior : PROCESS (B1_ipd, A1_ipd, C0_ipd, B0_ipd, A0_ipd, M1_dly, - M0_dly, LSR_dly, CLK_dly, F0_out, Q0_out, F1_out, Q1_out) + VitalBehavior : PROCESS (B1_ipd, A1_ipd, D0_ipd, C0_ipd, B0_ipd, A0_ipd, + M0_dly, CLK_dly, F0_out, Q0_out, F1_out) VARIABLE F0_zd : std_logic := 'X'; VARIABLE F0_GlitchData : VitalGlitchDataType; VARIABLE Q0_zd : std_logic := 'X'; VARIABLE Q0_GlitchData : VitalGlitchDataType; VARIABLE F1_zd : std_logic := 'X'; VARIABLE F1_GlitchData : VitalGlitchDataType; - VARIABLE Q1_zd : std_logic := 'X'; - VARIABLE Q1_GlitchData : VitalGlitchDataType; - VARIABLE tviol_M1_CLK : x01 := '0'; - VARIABLE M1_CLK_TimingDatash : VitalTimingDataType; VARIABLE tviol_M0_CLK : x01 := '0'; VARIABLE M0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_LSR_CLK : x01 := '0'; - VARIABLE LSR_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_LSR_LSR : x01 := '0'; - VARIABLE periodcheckinfo_LSR : VitalPeriodDataType; VARIABLE tviol_CLK_CLK : x01 := '0'; VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => M1_dly, - TestSignalName => "M1", - TestDelay => tisd_M1_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M1_CLK_noedge_negedge, - SetupLow => tsetup_M1_CLK_noedge_negedge, - HoldHigh => thold_M1_CLK_noedge_negedge, - HoldLow => thold_M1_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M1_CLK_TimingDatash, - Violation => tviol_M1_CLK, - MsgSeverity => warning); VitalSetupHoldCheck ( TestSignal => M0_dly, TestSignalName => "M0", @@ -18910,47 +14281,17 @@ RefSignal => CLK_dly, RefSignalName => "CLK", RefDelay => ticd_CLK, - SetupHigh => tsetup_M0_CLK_noedge_negedge, - SetupLow => tsetup_M0_CLK_noedge_negedge, - HoldHigh => thold_M0_CLK_noedge_negedge, - HoldLow => thold_M0_CLK_noedge_negedge, + SetupHigh => tsetup_M0_CLK_noedge_posedge, + SetupLow => tsetup_M0_CLK_noedge_posedge, + HoldHigh => thold_M0_CLK_noedge_posedge, + HoldLow => thold_M0_CLK_noedge_posedge, CheckEnabled => TRUE, - RefTransition => '\', + RefTransition => '/', MsgOn => MsgOn, XOn => XOn, HeaderMsg => InstancePath, TimingData => M0_CLK_TimingDatash, Violation => tviol_M0_CLK, MsgSeverity => warning); - VitalSetupHoldCheck ( - TestSignal => LSR_dly, - TestSignalName => "LSR", - TestDelay => tisd_LSR_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_LSR_CLK_noedge_negedge, - SetupLow => tsetup_LSR_CLK_noedge_negedge, - HoldHigh => thold_LSR_CLK_noedge_negedge, - HoldLow => thold_LSR_CLK_noedge_negedge, - CheckEnabled => TRUE, - RefTransition => '\', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => LSR_CLK_TimingDatash, - Violation => tviol_LSR_CLK, - MsgSeverity => warning); - VitalPeriodPulseCheck ( - TestSignal => LSR_ipd, - TestSignalName => "LSR", - Period => tperiod_LSR, - PulseWidthHigh => tpw_LSR_posedge, - PulseWidthLow => tpw_LSR_negedge, - PeriodData => periodcheckinfo_LSR, - Violation => tviol_LSR_LSR, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); VitalPeriodPulseCheck ( TestSignal => CLK_ipd, TestSignalName => "CLK", @@ -18969,17 +14310,19 @@ F0_zd := F0_out; Q0_zd := Q0_out; F1_zd := F1_out; - Q1_zd := Q1_out; VitalPathDelay01 ( OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => C0_ipd'last_event, + Paths => (0 => (InputChangeTime => D0_ipd'last_event, + PathDelay => tpd_D0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => C0_ipd'last_event, PathDelay => tpd_C0_F0, PathCondition => TRUE), - 1 => (InputChangeTime => B0_ipd'last_event, + 2 => (InputChangeTime => B0_ipd'last_event, PathDelay => tpd_B0_F0, PathCondition => TRUE), - 2 => (InputChangeTime => A0_ipd'last_event, + 3 => (InputChangeTime => A0_ipd'last_event, PathDelay => tpd_A0_F0, PathCondition => TRUE)), GlitchData => F0_GlitchData, @@ -19001,31 +14344,24 @@ PathCondition => TRUE)), GlitchData => F1_GlitchData, Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q1, - PathCondition => TRUE)), - GlitchData => Q1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); END PROCESS; end Structure; --- entity SLICE_105 +-- entity SLICE_69 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity SLICE_105 is + entity SLICE_69 is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_105"; + InstancePath : string := "SLICE_69"; tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); @@ -19044,11 +14380,11 @@ C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; F0: out Std_logic; F1: out Std_logic); - ATTRIBUTE Vital_Level0 OF SLICE_105 : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF SLICE_69 : ENTITY IS TRUE; - end SLICE_105; + end SLICE_69; - architecture Structure of SLICE_105 is + architecture Structure of SLICE_69 is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; signal B1_ipd : std_logic := 'X'; @@ -19064,20 +14400,20 @@ component gnd port (PWR0: out Std_logic); end component; - component lut40039 + component lut40004 port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; Z: out Std_logic); end component; - component lut40052 + component lut40056 port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; Z: out Std_logic); end component; begin - i1_2_lut_adj_19: lut40039 + un1_Bank_1_3: lut40056 port map (A=>A1_ipd, B=>B1_ipd, C=>GNDI, D=>GNDI, Z=>F1_out); DRIVEGND: gnd port map (PWR0=>GNDI); - i5_4_lut: lut40052 + un1_Bank_1: lut40004 port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); -- INPUT PATH DELAYs @@ -19139,79 +14475,584 @@ end Structure; --- entity SLICE_106 +-- entity lut40069 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity SLICE_106 is + entity lut40069 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40069 : ENTITY IS TRUE; + + end lut40069; + + architecture Structure of lut40069 is + begin + INST10: ROM16X1A + generic map (initval => X"4454") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity lut40070 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40070 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40070 : ENTITY IS TRUE; + + end lut40070; + + architecture Structure of lut40070 is + begin + INST10: ROM16X1A + generic map (initval => X"FDFD") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity SLICE_70 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_70 is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "SLICE_106"; + InstancePath : string := "SLICE_70"; + tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M1 : VitalDelayType01 := (0 ns, 0 ns); - tipd_M0 : VitalDelayType01 := (0 ns, 0 ns); - tipd_CE : VitalDelayType01 := (0 ns, 0 ns); - tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); + + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; F0: out Std_logic; F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_70 : ENTITY IS TRUE; + + end SLICE_70; + + architecture Structure of SLICE_70 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal D1_ipd : std_logic := 'X'; + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + component gnd + port (PWR0: out Std_logic); + end component; + component lut40069 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40070 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + CmdLEDEN_4_u_i_a2: lut40069 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); + Cmdn8MEGEN_4_u_i_o2_0: lut40070 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>GNDI, Z=>F0_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(D1_ipd, D1, tipd_D1); + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(C0_ipd, C0, tipd_C0); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + END BLOCK; + + VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, C0_ipd, B0_ipd, + A0_ipd, F0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + F0_zd := F0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => D1_ipd'last_event, + PathDelay => tpd_D1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 3 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity lut40071 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40071 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40071 : ENTITY IS TRUE; + + end lut40071; + + architecture Structure of lut40071 is + begin + INST10: ROM16X1A + generic map (initval => X"2020") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity lut40072 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40072 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40072 : ENTITY IS TRUE; + + end lut40072; + + architecture Structure of lut40072 is + begin + INST10: ROM16X1A + generic map (initval => X"AABF") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity SLICE_71 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_71 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_71"; + + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); + + port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; + D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; F0: out Std_logic; F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_71 : ENTITY IS TRUE; + + end SLICE_71; + + architecture Structure of SLICE_71 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal D0_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + component gnd + port (PWR0: out Std_logic); + end component; + component lut40071 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40072 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + nRWE_0io_RNO_0: lut40071 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>GNDI, Z=>F1_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + nRWE_0io_RNO: lut40072 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(D0_ipd, D0, tipd_D0); + VitalWireDelay(C0_ipd, C0, tipd_C0); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + END BLOCK; + + VitalBehavior : PROCESS (C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, B0_ipd, + A0_ipd, F0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + F0_zd := F0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => D0_ipd'last_event, + PathDelay => tpd_D0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 3 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity lut40073 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40073 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40073 : ENTITY IS TRUE; + + end lut40073; + + architecture Structure of lut40073 is + begin + INST10: ROM16X1A + generic map (initval => X"FFFE") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity SLICE_72 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_72 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_72"; + + tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); + + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; + B0: in Std_logic; A0: in Std_logic; F0: out Std_logic; + F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_72 : ENTITY IS TRUE; + + end SLICE_72; + + architecture Structure of SLICE_72 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal D1_ipd : std_logic := 'X'; + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal D0_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + component lut40004 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40073 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + UFMSDI_ens2_i_o2_0_3: lut40073 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); + InitReady3_0_a2_5: lut40004 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(D1_ipd, D1, tipd_D1); + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(D0_ipd, D0, tipd_D0); + VitalWireDelay(C0_ipd, C0, tipd_C0); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + END BLOCK; + + VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, + B0_ipd, A0_ipd, F0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + F0_zd := F0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => D0_ipd'last_event, + PathDelay => tpd_D0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 3 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => D1_ipd'last_event, + PathDelay => tpd_D1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 3 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity SLICE_73 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_73 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_73"; + + tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_M0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_CLK_Q1 : VitalDelayType01 := (0 ns, 0 ns); ticd_CLK : VitalDelayType := 0 ns; - tisd_M1_CLK : VitalDelayType := 0 ns; - tsetup_M1_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_M1_CLK_noedge_posedge : VitalDelayType := 0 ns; tisd_M0_CLK : VitalDelayType := 0 ns; tsetup_M0_CLK_noedge_posedge : VitalDelayType := 0 ns; thold_M0_CLK_noedge_posedge : VitalDelayType := 0 ns; - tisd_CE_CLK : VitalDelayType := 0 ns; - tsetup_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; - thold_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; tperiod_CLK : VitalDelayType := 0 ns; tpw_CLK_posedge : VitalDelayType := 0 ns; tpw_CLK_negedge : VitalDelayType := 0 ns); - port (B1: in Std_logic; A1: in Std_logic; B0: in Std_logic; - A0: in Std_logic; M1: in Std_logic; M0: in Std_logic; - CE: in Std_logic; CLK: in Std_logic; F0: out Std_logic; - Q0: out Std_logic; F1: out Std_logic; Q1: out Std_logic); + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; + B0: in Std_logic; A0: in Std_logic; M0: in Std_logic; + CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; + F1: out Std_logic); - ATTRIBUTE Vital_Level0 OF SLICE_106 : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF SLICE_73 : ENTITY IS TRUE; - end SLICE_106; + end SLICE_73; - architecture Structure of SLICE_106 is + architecture Structure of SLICE_73 is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + signal D1_ipd : std_logic := 'X'; + signal C1_ipd : std_logic := 'X'; signal B1_ipd : std_logic := 'X'; signal A1_ipd : std_logic := 'X'; + signal D0_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; signal B0_ipd : std_logic := 'X'; signal A0_ipd : std_logic := 'X'; - signal M1_ipd : std_logic := 'X'; - signal M1_dly : std_logic := 'X'; signal M0_ipd : std_logic := 'X'; signal M0_dly : std_logic := 'X'; - signal CE_ipd : std_logic := 'X'; - signal CE_dly : std_logic := 'X'; signal CLK_ipd : std_logic := 'X'; signal CLK_dly : std_logic := 'X'; signal F0_out : std_logic := 'X'; signal Q0_out : std_logic := 'X'; signal F1_out : std_logic := 'X'; - signal Q1_out : std_logic := 'X'; - signal GNDI: Std_logic; signal VCCI: Std_logic; + signal GNDI: Std_logic; component vmuxregsre port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; @@ -19223,93 +15064,66 @@ component gnd port (PWR0: out Std_logic); end component; - component lut40034 + component lut40038 port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; Z: out Std_logic); end component; - component lut40039 + component lut40058 port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; Z: out Std_logic); end component; begin - i1_2_lut_rep_33: lut40039 - port map (A=>A1_ipd, B=>B1_ipd, C=>GNDI, D=>GNDI, Z=>F1_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - i1930_2_lut: lut40034 - port map (A=>A0_ipd, B=>B0_ipd, C=>GNDI, D=>GNDI, Z=>F0_out); - IS_FSM_i5: vmuxregsre - port map (D0=>M1_dly, D1=>VCCI, SD=>GNDI, SP=>CE_dly, CK=>CLK_dly, - LSR=>GNDI, Q=>Q1_out); + CmdEnable16_4: lut40058 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); + CmdEnable17_5: lut40038 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); + CASr3: vmuxregsre + port map (D0=>M0_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_dly, + LSR=>GNDI, Q=>Q0_out); DRIVEVCC: vcc port map (PWR1=>VCCI); - IS_FSM_i4: vmuxregsre - port map (D0=>M0_dly, D1=>VCCI, SD=>GNDI, SP=>CE_dly, CK=>CLK_dly, - LSR=>GNDI, Q=>Q0_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN + VitalWireDelay(D1_ipd, D1, tipd_D1); + VitalWireDelay(C1_ipd, C1, tipd_C1); VitalWireDelay(B1_ipd, B1, tipd_B1); VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(D0_ipd, D0, tipd_D0); + VitalWireDelay(C0_ipd, C0, tipd_C0); VitalWireDelay(B0_ipd, B0, tipd_B0); VitalWireDelay(A0_ipd, A0, tipd_A0); - VitalWireDelay(M1_ipd, M1, tipd_M1); VitalWireDelay(M0_ipd, M0, tipd_M0); - VitalWireDelay(CE_ipd, CE, tipd_CE); VitalWireDelay(CLK_ipd, CLK, tipd_CLK); END BLOCK; -- Setup and Hold DELAYs SignalDelay : BLOCK BEGIN - VitalSignalDelay(M1_dly, M1_ipd, tisd_M1_CLK); VitalSignalDelay(M0_dly, M0_ipd, tisd_M0_CLK); - VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); END BLOCK; - VitalBehavior : PROCESS (B1_ipd, A1_ipd, B0_ipd, A0_ipd, M1_dly, M0_dly, - CE_dly, CLK_dly, F0_out, Q0_out, F1_out, Q1_out) + VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, + B0_ipd, A0_ipd, M0_dly, CLK_dly, F0_out, Q0_out, F1_out) VARIABLE F0_zd : std_logic := 'X'; VARIABLE F0_GlitchData : VitalGlitchDataType; VARIABLE Q0_zd : std_logic := 'X'; VARIABLE Q0_GlitchData : VitalGlitchDataType; VARIABLE F1_zd : std_logic := 'X'; VARIABLE F1_GlitchData : VitalGlitchDataType; - VARIABLE Q1_zd : std_logic := 'X'; - VARIABLE Q1_GlitchData : VitalGlitchDataType; - VARIABLE tviol_M1_CLK : x01 := '0'; - VARIABLE M1_CLK_TimingDatash : VitalTimingDataType; VARIABLE tviol_M0_CLK : x01 := '0'; VARIABLE M0_CLK_TimingDatash : VitalTimingDataType; - VARIABLE tviol_CE_CLK : x01 := '0'; - VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; VARIABLE tviol_CLK_CLK : x01 := '0'; VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN - VitalSetupHoldCheck ( - TestSignal => M1_dly, - TestSignalName => "M1", - TestDelay => tisd_M1_CLK, - RefSignal => CLK_dly, - RefSignalName => "CLK", - RefDelay => ticd_CLK, - SetupHigh => tsetup_M1_CLK_noedge_posedge, - SetupLow => tsetup_M1_CLK_noedge_posedge, - HoldHigh => thold_M1_CLK_noedge_posedge, - HoldLow => thold_M1_CLK_noedge_posedge, - CheckEnabled => TRUE, - RefTransition => '/', - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - TimingData => M1_CLK_TimingDatash, - Violation => tviol_M1_CLK, - MsgSeverity => warning); VitalSetupHoldCheck ( TestSignal => M0_dly, TestSignalName => "M0", @@ -19328,6 +15142,2956 @@ TimingData => M0_CLK_TimingDatash, Violation => tviol_M0_CLK, MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + F0_zd := F0_out; + Q0_zd := Q0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => D0_ipd'last_event, + PathDelay => tpd_D0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 3 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q0, + PathCondition => TRUE)), + GlitchData => Q0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => D1_ipd'last_event, + PathDelay => tpd_D1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 3 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity lut40074 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40074 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40074 : ENTITY IS TRUE; + + end lut40074; + + architecture Structure of lut40074 is + begin + INST10: ROM16X1A + generic map (initval => X"040C") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity lut40075 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40075 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40075 : ENTITY IS TRUE; + + end lut40075; + + architecture Structure of lut40075 is + begin + INST10: ROM16X1A + generic map (initval => X"0080") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity SLICE_74 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_74 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_74"; + + tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_M0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_Q0 : VitalDelayType01 := (0 ns, 0 ns); + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns; + ticd_CLK : VitalDelayType := 0 ns; + tisd_M0_CLK : VitalDelayType := 0 ns; + tsetup_M0_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_M0_CLK_noedge_negedge : VitalDelayType := 0 ns); + + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; + B0: in Std_logic; A0: in Std_logic; M0: in Std_logic; + CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; + F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_74 : ENTITY IS TRUE; + + end SLICE_74; + + architecture Structure of SLICE_74 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal D1_ipd : std_logic := 'X'; + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal D0_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal M0_ipd : std_logic := 'X'; + signal M0_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal Q0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + signal VCCI: Std_logic; + signal GNDI: Std_logic; + signal CLK_NOTIN: Std_logic; + component vmuxregsre + port (D0: in Std_logic; D1: in Std_logic; SD: in Std_logic; + SP: in Std_logic; CK: in Std_logic; LSR: in Std_logic; + Q: out Std_logic); + end component; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component inverter + port (I: in Std_logic; Z: out Std_logic); + end component; + component lut40074 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40075 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + XOR8MEG_3_u_1: lut40074 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); + CmdEnable17_4: lut40075 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); + CBR: vmuxregsre + port map (D0=>M0_dly, D1=>VCCI, SD=>GNDI, SP=>VCCI, CK=>CLK_NOTIN, + LSR=>GNDI, Q=>Q0_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + DRIVEGND: gnd + port map (PWR0=>GNDI); + CLK_INVERTERIN: inverter + port map (I=>CLK_dly, Z=>CLK_NOTIN); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(D1_ipd, D1, tipd_D1); + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(D0_ipd, D0, tipd_D0); + VitalWireDelay(C0_ipd, C0, tipd_C0); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + VitalWireDelay(M0_ipd, M0, tipd_M0); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(M0_dly, M0_ipd, tisd_M0_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, + B0_ipd, A0_ipd, M0_dly, CLK_dly, F0_out, Q0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE Q0_zd : std_logic := 'X'; + VARIABLE Q0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_M0_CLK : x01 := '0'; + VARIABLE M0_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => M0_dly, + TestSignalName => "M0", + TestDelay => tisd_M0_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_M0_CLK_noedge_negedge, + SetupLow => tsetup_M0_CLK_noedge_negedge, + HoldHigh => thold_M0_CLK_noedge_negedge, + HoldLow => thold_M0_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => M0_CLK_TimingDatash, + Violation => tviol_M0_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + F0_zd := F0_out; + Q0_zd := Q0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => D0_ipd'last_event, + PathDelay => tpd_D0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 3 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_Q0, + PathCondition => TRUE)), + GlitchData => Q0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => D1_ipd'last_event, + PathDelay => tpd_D1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 3 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity lut40076 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40076 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40076 : ENTITY IS TRUE; + + end lut40076; + + architecture Structure of lut40076 is + begin + INST10: ROM16X1A + generic map (initval => X"7777") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity lut40077 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40077 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40077 : ENTITY IS TRUE; + + end lut40077; + + architecture Structure of lut40077 is + begin + INST10: ROM16X1A + generic map (initval => X"ACAC") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity SLICE_75 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_75 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_75"; + + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); + + port (B1: in Std_logic; A1: in Std_logic; C0: in Std_logic; + B0: in Std_logic; A0: in Std_logic; F0: out Std_logic; + F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_75 : ENTITY IS TRUE; + + end SLICE_75; + + architecture Structure of SLICE_75 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + component gnd + port (PWR0: out Std_logic); + end component; + component lut40076 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40077 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + RDQML: lut40076 + port map (A=>A1_ipd, B=>B1_ipd, C=>GNDI, D=>GNDI, Z=>F1_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + un9_RA_9: lut40077 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>GNDI, Z=>F0_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(C0_ipd, C0, tipd_C0); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + END BLOCK; + + VitalBehavior : PROCESS (B1_ipd, A1_ipd, C0_ipd, B0_ipd, A0_ipd, F0_out, + F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + F0_zd := F0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity lut40078 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40078 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40078 : ENTITY IS TRUE; + + end lut40078; + + architecture Structure of lut40078 is + begin + INST10: ROM16X1A + generic map (initval => X"4000") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity lut40079 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40079 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40079 : ENTITY IS TRUE; + + end lut40079; + + architecture Structure of lut40079 is + begin + INST10: ROM16X1A + generic map (initval => X"70CF") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity SLICE_76 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_76 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_76"; + + tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); + + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; + B0: in Std_logic; A0: in Std_logic; F0: out Std_logic; + F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_76 : ENTITY IS TRUE; + + end SLICE_76; + + architecture Structure of SLICE_76 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal D1_ipd : std_logic := 'X'; + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal D0_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + component lut40078 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40079 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + nRWE_0io_RNO_1: lut40078 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); + RCKEEN_8_u_1_0: lut40079 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(D1_ipd, D1, tipd_D1); + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(D0_ipd, D0, tipd_D0); + VitalWireDelay(C0_ipd, C0, tipd_C0); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + END BLOCK; + + VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, D0_ipd, C0_ipd, + B0_ipd, A0_ipd, F0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + F0_zd := F0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => D0_ipd'last_event, + PathDelay => tpd_D0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 3 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => D1_ipd'last_event, + PathDelay => tpd_D1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 3 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity lut40080 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40080 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40080 : ENTITY IS TRUE; + + end lut40080; + + architecture Structure of lut40080 is + begin + INST10: ROM16X1A + generic map (initval => X"5400") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity lut40081 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40081 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40081 : ENTITY IS TRUE; + + end lut40081; + + architecture Structure of lut40081 is + begin + INST10: ROM16X1A + generic map (initval => X"1111") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity SLICE_77 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_77 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_77"; + + tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); + + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; B0: in Std_logic; A0: in Std_logic; + F0: out Std_logic; F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_77 : ENTITY IS TRUE; + + end SLICE_77; + + architecture Structure of SLICE_77 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal D1_ipd : std_logic := 'X'; + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + component gnd + port (PWR0: out Std_logic); + end component; + component lut40080 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40081 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + nRRAS_5_u_i_0: lut40080 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); + IS_0_sqmuxa_0_o2_0_RNIS63D: lut40081 + port map (A=>A0_ipd, B=>B0_ipd, C=>GNDI, D=>GNDI, Z=>F0_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(D1_ipd, D1, tipd_D1); + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + END BLOCK; + + VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, B0_ipd, A0_ipd, + F0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + F0_zd := F0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => D1_ipd'last_event, + PathDelay => tpd_D1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 3 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity lut40082 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40082 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40082 : ENTITY IS TRUE; + + end lut40082; + + architecture Structure of lut40082 is + begin + INST10: ROM16X1A + generic map (initval => X"2C2C") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity SLICE_78 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_78 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_78"; + + tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); + + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; F0: out Std_logic; F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_78 : ENTITY IS TRUE; + + end SLICE_78; + + architecture Structure of SLICE_78 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal D1_ipd : std_logic := 'X'; + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + component gnd + port (PWR0: out Std_logic); + end component; + component lut40035 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40082 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + un1_FS_14_i_a2_0_1: lut40035 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); + UFMSDI_ens2_i_o2: lut40082 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>GNDI, Z=>F0_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(D1_ipd, D1, tipd_D1); + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(C0_ipd, C0, tipd_C0); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + END BLOCK; + + VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, C0_ipd, B0_ipd, + A0_ipd, F0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + F0_zd := F0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => D1_ipd'last_event, + PathDelay => tpd_D1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 3 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity SLICE_79 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_79 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_79"; + + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); + + port (B1: in Std_logic; A1: in Std_logic; C0: in Std_logic; + B0: in Std_logic; A0: in Std_logic; F0: out Std_logic; + F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_79 : ENTITY IS TRUE; + + end SLICE_79; + + architecture Structure of SLICE_79 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + component gnd + port (PWR0: out Std_logic); + end component; + component lut40024 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40077 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + RDQMH: lut40024 + port map (A=>A1_ipd, B=>B1_ipd, C=>GNDI, D=>GNDI, Z=>F1_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + un9_RA_8: lut40077 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>GNDI, Z=>F0_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(C0_ipd, C0, tipd_C0); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + END BLOCK; + + VitalBehavior : PROCESS (B1_ipd, A1_ipd, C0_ipd, B0_ipd, A0_ipd, F0_out, + F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + F0_zd := F0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity SLICE_80 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_80 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_80"; + + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); + + port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; + C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; + F0: out Std_logic; F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_80 : ENTITY IS TRUE; + + end SLICE_80; + + architecture Structure of SLICE_80 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + component gnd + port (PWR0: out Std_logic); + end component; + component lut40077 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + un9_RA_7: lut40077 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>GNDI, Z=>F1_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + un9_RA_0: lut40077 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>GNDI, Z=>F0_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(C0_ipd, C0, tipd_C0); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + END BLOCK; + + VitalBehavior : PROCESS (C1_ipd, B1_ipd, A1_ipd, C0_ipd, B0_ipd, A0_ipd, + F0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + F0_zd := F0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity SLICE_81 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_81 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_81"; + + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); + + port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; + C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; + F0: out Std_logic; F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_81 : ENTITY IS TRUE; + + end SLICE_81; + + architecture Structure of SLICE_81 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + component gnd + port (PWR0: out Std_logic); + end component; + component lut40077 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + un9_RA_6: lut40077 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>GNDI, Z=>F1_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + un9_RA_1: lut40077 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>GNDI, Z=>F0_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(C0_ipd, C0, tipd_C0); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + END BLOCK; + + VitalBehavior : PROCESS (C1_ipd, B1_ipd, A1_ipd, C0_ipd, B0_ipd, A0_ipd, + F0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + F0_zd := F0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity SLICE_82 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_82 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_82"; + + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); + + port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; + C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; + F0: out Std_logic; F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_82 : ENTITY IS TRUE; + + end SLICE_82; + + architecture Structure of SLICE_82 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + component gnd + port (PWR0: out Std_logic); + end component; + component lut40077 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + un9_RA_5: lut40077 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>GNDI, Z=>F1_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + un9_RA_2: lut40077 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>GNDI, Z=>F0_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(C0_ipd, C0, tipd_C0); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + END BLOCK; + + VitalBehavior : PROCESS (C1_ipd, B1_ipd, A1_ipd, C0_ipd, B0_ipd, A0_ipd, + F0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + F0_zd := F0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity SLICE_83 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_83 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_83"; + + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); + + port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; + C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; + F0: out Std_logic; F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_83 : ENTITY IS TRUE; + + end SLICE_83; + + architecture Structure of SLICE_83 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + component gnd + port (PWR0: out Std_logic); + end component; + component lut40077 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + un9_RA_4: lut40077 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>GNDI, Z=>F1_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + un9_RA_3: lut40077 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>GNDI, Z=>F0_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(C0_ipd, C0, tipd_C0); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + END BLOCK; + + VitalBehavior : PROCESS (C1_ipd, B1_ipd, A1_ipd, C0_ipd, B0_ipd, A0_ipd, + F0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + F0_zd := F0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity lut40083 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity lut40083 is + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + + ATTRIBUTE Vital_Level0 OF lut40083 : ENTITY IS TRUE; + + end lut40083; + + architecture Structure of lut40083 is + begin + INST10: ROM16X1A + generic map (initval => X"C048") + port map (AD0=>A, AD1=>B, AD2=>C, AD3=>D, DO0=>Z); + end Structure; + +-- entity SLICE_84 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_84 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_84"; + + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_D0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_D0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); + + port (B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; + C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; + F0: out Std_logic; F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_84 : ENTITY IS TRUE; + + end SLICE_84; + + architecture Structure of SLICE_84 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal D0_ipd : std_logic := 'X'; + signal C0_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + component gnd + port (PWR0: out Std_logic); + end component; + component lut40028 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40083 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + RBAd_0: lut40028 + port map (A=>A1_ipd, B=>B1_ipd, C=>GNDI, D=>GNDI, Z=>F1_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + RA11d: lut40083 + port map (A=>A0_ipd, B=>B0_ipd, C=>C0_ipd, D=>D0_ipd, Z=>F0_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(D0_ipd, D0, tipd_D0); + VitalWireDelay(C0_ipd, C0, tipd_C0); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + END BLOCK; + + VitalBehavior : PROCESS (B1_ipd, A1_ipd, D0_ipd, C0_ipd, B0_ipd, A0_ipd, + F0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + F0_zd := F0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => D0_ipd'last_event, + PathDelay => tpd_D0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => C0_ipd'last_event, + PathDelay => tpd_C0_F0, + PathCondition => TRUE), + 2 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 3 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity SLICE_85 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity SLICE_85 is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "SLICE_85"; + + tipd_D1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_C1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A1 : VitalDelayType01 := (0 ns, 0 ns); + tipd_B0 : VitalDelayType01 := (0 ns, 0 ns); + tipd_A0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_D1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_C1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A1_F1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_B0_F0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_A0_F0 : VitalDelayType01 := (0 ns, 0 ns)); + + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; B0: in Std_logic; A0: in Std_logic; + F0: out Std_logic; F1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF SLICE_85 : ENTITY IS TRUE; + + end SLICE_85; + + architecture Structure of SLICE_85 is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal D1_ipd : std_logic := 'X'; + signal C1_ipd : std_logic := 'X'; + signal B1_ipd : std_logic := 'X'; + signal A1_ipd : std_logic := 'X'; + signal B0_ipd : std_logic := 'X'; + signal A0_ipd : std_logic := 'X'; + signal F0_out : std_logic := 'X'; + signal F1_out : std_logic := 'X'; + + signal GNDI: Std_logic; + component gnd + port (PWR0: out Std_logic); + end component; + component lut40028 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + component lut40058 + port (A: in Std_logic; B: in Std_logic; C: in Std_logic; D: in Std_logic; + Z: out Std_logic); + end component; + begin + un1_FS_13_i_a2_6: lut40058 + port map (A=>A1_ipd, B=>B1_ipd, C=>C1_ipd, D=>D1_ipd, Z=>F1_out); + InitReady3_0_a2_3: lut40028 + port map (A=>A0_ipd, B=>B0_ipd, C=>GNDI, D=>GNDI, Z=>F0_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(D1_ipd, D1, tipd_D1); + VitalWireDelay(C1_ipd, C1, tipd_C1); + VitalWireDelay(B1_ipd, B1, tipd_B1); + VitalWireDelay(A1_ipd, A1, tipd_A1); + VitalWireDelay(B0_ipd, B0, tipd_B0); + VitalWireDelay(A0_ipd, A0, tipd_A0); + END BLOCK; + + VitalBehavior : PROCESS (D1_ipd, C1_ipd, B1_ipd, A1_ipd, B0_ipd, A0_ipd, + F0_out, F1_out) + VARIABLE F0_zd : std_logic := 'X'; + VARIABLE F0_GlitchData : VitalGlitchDataType; + VARIABLE F1_zd : std_logic := 'X'; + VARIABLE F1_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + F0_zd := F0_out; + F1_zd := F1_out; + + VitalPathDelay01 ( + OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, + Paths => (0 => (InputChangeTime => B0_ipd'last_event, + PathDelay => tpd_B0_F0, + PathCondition => TRUE), + 1 => (InputChangeTime => A0_ipd'last_event, + PathDelay => tpd_A0_F0, + PathCondition => TRUE)), + GlitchData => F0_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + VitalPathDelay01 ( + OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, + Paths => (0 => (InputChangeTime => D1_ipd'last_event, + PathDelay => tpd_D1_F1, + PathCondition => TRUE), + 1 => (InputChangeTime => C1_ipd'last_event, + PathDelay => tpd_C1_F1, + PathCondition => TRUE), + 2 => (InputChangeTime => B1_ipd'last_event, + PathDelay => tpd_B1_F1, + PathCondition => TRUE), + 3 => (InputChangeTime => A1_ipd'last_event, + PathDelay => tpd_A1_F1, + PathCondition => TRUE)), + GlitchData => F1_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity xo2iobuf + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity xo2iobuf is + port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); + + ATTRIBUTE Vital_Level0 OF xo2iobuf : ENTITY IS TRUE; + + end xo2iobuf; + + architecture Structure of xo2iobuf is + begin + INST1: OBW + port map (I=>I, T=>T, O=>PAD); + end Structure; + +-- entity RD_0_B + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity RD_0_B is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "RD_0_B"; + + tipd_IOLDO : VitalDelayType01 := (0 ns, 0 ns); + tipd_PADDT : VitalDelayType01 := (0 ns, 0 ns); + tpd_IOLDO_RD0 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns); + tpd_PADDT_RD0 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns)); + + port (IOLDO: in Std_logic; PADDT: in Std_logic; RD0: out Std_logic); + + ATTRIBUTE Vital_Level0 OF RD_0_B : ENTITY IS TRUE; + + end RD_0_B; + + architecture Structure of RD_0_B is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal IOLDO_ipd : std_logic := 'X'; + signal PADDT_ipd : std_logic := 'X'; + signal RD0_out : std_logic := 'X'; + + component xo2iobuf + port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); + end component; + begin + RD_pad_0: xo2iobuf + port map (I=>IOLDO_ipd, T=>PADDT_ipd, PAD=>RD0_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(IOLDO_ipd, IOLDO, tipd_IOLDO); + VitalWireDelay(PADDT_ipd, PADDT, tipd_PADDT); + END BLOCK; + + VitalBehavior : PROCESS (IOLDO_ipd, PADDT_ipd, RD0_out) + VARIABLE RD0_zd : std_logic := 'X'; + VARIABLE RD0_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + RD0_zd := RD0_out; + + VitalPathDelay01Z ( + OutSignal => RD0, OutSignalName => "RD0", OutTemp => RD0_zd, + Paths => (0 => (InputChangeTime => IOLDO_ipd'last_event, + PathDelay => tpd_IOLDO_RD0, + PathCondition => TRUE), + 1 => (InputChangeTime => PADDT_ipd'last_event, + PathDelay => tpd_PADDT_RD0, + PathCondition => TRUE)), + GlitchData => RD0_GlitchData, + Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity mfflsre + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity mfflsre is + port (D0: in Std_logic; SP: in Std_logic; CK: in Std_logic; + LSR: in Std_logic; Q: out Std_logic); + + ATTRIBUTE Vital_Level0 OF mfflsre : ENTITY IS TRUE; + + end mfflsre; + + architecture Structure of mfflsre is + begin + INST01: FD1P3DX + generic map (GSR => "DISABLED") + port map (D=>D0, SP=>SP, CK=>CK, CD=>LSR, Q=>Q); + end Structure; + +-- entity RD_0_MGIOL + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity RD_0_MGIOL is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "RD_0_MGIOL"; + + tipd_OPOS : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_IOLDO : VitalDelayType01 := (0 ns, 0 ns); + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns; + ticd_CLK : VitalDelayType := 0 ns; + tisd_OPOS_CLK : VitalDelayType := 0 ns; + tsetup_OPOS_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_OPOS_CLK_noedge_negedge : VitalDelayType := 0 ns); + + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); + + ATTRIBUTE Vital_Level0 OF RD_0_MGIOL : ENTITY IS TRUE; + + end RD_0_MGIOL; + + architecture Structure of RD_0_MGIOL is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal IOLDO_out : std_logic := 'X'; + signal OPOS_ipd : std_logic := 'X'; + signal OPOS_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + + signal VCCI: Std_logic; + signal CLK_NOTIN: Std_logic; + signal GNDI: Std_logic; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component inverter + port (I: in Std_logic; Z: out Std_logic); + end component; + component mfflsre + port (D0: in Std_logic; SP: in Std_logic; CK: in Std_logic; + LSR: in Std_logic; Q: out Std_logic); + end component; + begin + WRD_0io_0: mfflsre + port map (D0=>OPOS_dly, SP=>VCCI, CK=>CLK_NOTIN, LSR=>GNDI, Q=>IOLDO_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + CLK_INVERTERIN: inverter + port map (I=>CLK_dly, Z=>CLK_NOTIN); + DRIVEGND: gnd + port map (PWR0=>GNDI); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(OPOS_ipd, OPOS, tipd_OPOS); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(OPOS_dly, OPOS_ipd, tisd_OPOS_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (IOLDO_out, OPOS_dly, CLK_dly) + VARIABLE IOLDO_zd : std_logic := 'X'; + VARIABLE IOLDO_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_OPOS_CLK : x01 := '0'; + VARIABLE OPOS_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => OPOS_dly, + TestSignalName => "OPOS", + TestDelay => tisd_OPOS_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_OPOS_CLK_noedge_negedge, + SetupLow => tsetup_OPOS_CLK_noedge_negedge, + HoldHigh => thold_OPOS_CLK_noedge_negedge, + HoldLow => thold_OPOS_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => OPOS_CLK_TimingDatash, + Violation => tviol_OPOS_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + IOLDO_zd := IOLDO_out; + + VitalPathDelay01 ( + OutSignal => IOLDO, OutSignalName => "IOLDO", OutTemp => IOLDO_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_IOLDO, + PathCondition => TRUE)), + GlitchData => IOLDO_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity xo2iobuf0084 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity xo2iobuf0084 is + port (I: in Std_logic; PAD: out Std_logic); + + ATTRIBUTE Vital_Level0 OF xo2iobuf0084 : ENTITY IS TRUE; + + end xo2iobuf0084; + + architecture Structure of xo2iobuf0084 is + begin + INST5: OB + port map (I=>I, O=>PAD); + end Structure; + +-- entity Dout_0_B + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity Dout_0_B is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "Dout_0_B"; + + tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); + tpd_PADDO_Dout0 : VitalDelayType01 := (0 ns, 0 ns)); + + port (PADDO: in Std_logic; Dout0: out Std_logic); + + ATTRIBUTE Vital_Level0 OF Dout_0_B : ENTITY IS TRUE; + + end Dout_0_B; + + architecture Structure of Dout_0_B is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal PADDO_ipd : std_logic := 'X'; + signal Dout0_out : std_logic := 'X'; + + component xo2iobuf0084 + port (I: in Std_logic; PAD: out Std_logic); + end component; + begin + Dout_pad_0: xo2iobuf0084 + port map (I=>PADDO_ipd, PAD=>Dout0_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); + END BLOCK; + + VitalBehavior : PROCESS (PADDO_ipd, Dout0_out) + VARIABLE Dout0_zd : std_logic := 'X'; + VARIABLE Dout0_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + Dout0_zd := Dout0_out; + + VitalPathDelay01 ( + OutSignal => Dout0, OutSignalName => "Dout0", OutTemp => Dout0_zd, + Paths => (0 => (InputChangeTime => PADDO_ipd'last_event, + PathDelay => tpd_PADDO_Dout0, + PathCondition => TRUE)), + GlitchData => Dout0_GlitchData, + Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity xo2iobuf0085 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity xo2iobuf0085 is + port (Z: out Std_logic; PAD: in Std_logic); + + ATTRIBUTE Vital_Level0 OF xo2iobuf0085 : ENTITY IS TRUE; + + end xo2iobuf0085; + + architecture Structure of xo2iobuf0085 is + begin + INST1: IBPD + port map (I=>PAD, O=>Z); + end Structure; + +-- entity PHI2B + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity PHI2B is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "PHI2B"; + + tipd_PHI2S : VitalDelayType01 := (0 ns, 0 ns); + tpd_PHI2S_PADDI : VitalDelayType01 := (0 ns, 0 ns); + tperiod_PHI2S : VitalDelayType := 0 ns; + tpw_PHI2S_posedge : VitalDelayType := 0 ns; + tpw_PHI2S_negedge : VitalDelayType := 0 ns); + + port (PADDI: out Std_logic; PHI2S: in Std_logic); + + ATTRIBUTE Vital_Level0 OF PHI2B : ENTITY IS TRUE; + + end PHI2B; + + architecture Structure of PHI2B is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal PADDI_out : std_logic := 'X'; + signal PHI2S_ipd : std_logic := 'X'; + + component xo2iobuf0085 + port (Z: out Std_logic; PAD: in Std_logic); + end component; + begin + PHI2_pad: xo2iobuf0085 + port map (Z=>PADDI_out, PAD=>PHI2S_ipd); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(PHI2S_ipd, PHI2S, tipd_PHI2S); + END BLOCK; + + VitalBehavior : PROCESS (PADDI_out, PHI2S_ipd) + VARIABLE PADDI_zd : std_logic := 'X'; + VARIABLE PADDI_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_PHI2S_PHI2S : x01 := '0'; + VARIABLE periodcheckinfo_PHI2S : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalPeriodPulseCheck ( + TestSignal => PHI2S_ipd, + TestSignalName => "PHI2S", + Period => tperiod_PHI2S, + PulseWidthHigh => tpw_PHI2S_posedge, + PulseWidthLow => tpw_PHI2S_negedge, + PeriodData => periodcheckinfo_PHI2S, + Violation => tviol_PHI2S_PHI2S, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + PADDI_zd := PADDI_out; + + VitalPathDelay01 ( + OutSignal => PADDI, OutSignalName => "PADDI", OutTemp => PADDI_zd, + Paths => (0 => (InputChangeTime => PHI2S_ipd'last_event, + PathDelay => tpd_PHI2S_PADDI, + PathCondition => TRUE)), + GlitchData => PADDI_GlitchData, + Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity smuxlregsre + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity smuxlregsre is + port (D0: in Std_logic; SP: in Std_logic; CK: in Std_logic; + LSR: in Std_logic; Q: out Std_logic); + + ATTRIBUTE Vital_Level0 OF smuxlregsre : ENTITY IS TRUE; + + end smuxlregsre; + + architecture Structure of smuxlregsre is + begin + INST01: IFS1P3DX + generic map (GSR => "DISABLED") + port map (D=>D0, SP=>SP, SCLK=>CK, CD=>LSR, Q=>Q); + end Structure; + +-- entity PHI2_MGIOL + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity PHI2_MGIOL is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "PHI2_MGIOL"; + + tipd_DI : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_INP : VitalDelayType01 := (0 ns, 0 ns); + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI_CLK : VitalDelayType := 0 ns; + tsetup_DI_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_DI_CLK_noedge_posedge : VitalDelayType := 0 ns; + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns); + + port (DI: in Std_logic; CLK: in Std_logic; INP: out Std_logic); + + ATTRIBUTE Vital_Level0 OF PHI2_MGIOL : ENTITY IS TRUE; + + end PHI2_MGIOL; + + architecture Structure of PHI2_MGIOL is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal DI_ipd : std_logic := 'X'; + signal DI_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal INP_out : std_logic := 'X'; + + signal VCCI: Std_logic; + signal GNDI: Std_logic; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component smuxlregsre + port (D0: in Std_logic; SP: in Std_logic; CK: in Std_logic; + LSR: in Std_logic; Q: out Std_logic); + end component; + begin + PHI2r_0io: smuxlregsre + port map (D0=>DI_dly, SP=>VCCI, CK=>CLK_dly, LSR=>GNDI, Q=>INP_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + DRIVEGND: gnd + port map (PWR0=>GNDI); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(DI_ipd, DI, tipd_DI); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI_dly, DI_ipd, tisd_DI_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (DI_dly, CLK_dly, INP_out) + VARIABLE INP_zd : std_logic := 'X'; + VARIABLE INP_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_DI_CLK : x01 := '0'; + VARIABLE DI_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI_dly, + TestSignalName => "DI", + TestDelay => tisd_DI_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI_CLK_noedge_posedge, + SetupLow => tsetup_DI_CLK_noedge_posedge, + HoldHigh => thold_DI_CLK_noedge_posedge, + HoldLow => thold_DI_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI_CLK_TimingDatash, + Violation => tviol_DI_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + INP_zd := INP_out; + + VitalPathDelay01 ( + OutSignal => INP, OutSignalName => "INP", OutTemp => INP_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_INP, + PathCondition => TRUE)), + GlitchData => INP_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity xo2iobuf0086 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity xo2iobuf0086 is + port (Z: out Std_logic; PAD: in Std_logic); + + ATTRIBUTE Vital_Level0 OF xo2iobuf0086 : ENTITY IS TRUE; + + end xo2iobuf0086; + + architecture Structure of xo2iobuf0086 is + begin + INST1: IB + port map (I=>PAD, O=>Z); + end Structure; + +-- entity UFMSDOB + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity UFMSDOB is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "UFMSDOB"; + + tipd_UFMSDOS : VitalDelayType01 := (0 ns, 0 ns); + tpd_UFMSDOS_PADDI : VitalDelayType01 := (0 ns, 0 ns); + tperiod_UFMSDOS : VitalDelayType := 0 ns; + tpw_UFMSDOS_posedge : VitalDelayType := 0 ns; + tpw_UFMSDOS_negedge : VitalDelayType := 0 ns); + + port (PADDI: out Std_logic; UFMSDOS: in Std_logic); + + ATTRIBUTE Vital_Level0 OF UFMSDOB : ENTITY IS TRUE; + + end UFMSDOB; + + architecture Structure of UFMSDOB is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal PADDI_out : std_logic := 'X'; + signal UFMSDOS_ipd : std_logic := 'X'; + + component xo2iobuf0086 + port (Z: out Std_logic; PAD: in Std_logic); + end component; + begin + UFMSDO_pad: xo2iobuf0086 + port map (Z=>PADDI_out, PAD=>UFMSDOS_ipd); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(UFMSDOS_ipd, UFMSDOS, tipd_UFMSDOS); + END BLOCK; + + VitalBehavior : PROCESS (PADDI_out, UFMSDOS_ipd) + VARIABLE PADDI_zd : std_logic := 'X'; + VARIABLE PADDI_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_UFMSDOS_UFMSDOS : x01 := '0'; + VARIABLE periodcheckinfo_UFMSDOS : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalPeriodPulseCheck ( + TestSignal => UFMSDOS_ipd, + TestSignalName => "UFMSDOS", + Period => tperiod_UFMSDOS, + PulseWidthHigh => tpw_UFMSDOS_posedge, + PulseWidthLow => tpw_UFMSDOS_negedge, + PeriodData => periodcheckinfo_UFMSDOS, + Violation => tviol_UFMSDOS_UFMSDOS, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + PADDI_zd := PADDI_out; + + VitalPathDelay01 ( + OutSignal => PADDI, OutSignalName => "PADDI", OutTemp => PADDI_zd, + Paths => (0 => (InputChangeTime => UFMSDOS_ipd'last_event, + PathDelay => tpd_UFMSDOS_PADDI, + PathCondition => TRUE)), + GlitchData => PADDI_GlitchData, + Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity UFMSDIB + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity UFMSDIB is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "UFMSDIB"; + + tipd_IOLDO : VitalDelayType01 := (0 ns, 0 ns); + tpd_IOLDO_UFMSDIS : VitalDelayType01 := (0 ns, 0 ns)); + + port (IOLDO: in Std_logic; UFMSDIS: out Std_logic); + + ATTRIBUTE Vital_Level0 OF UFMSDIB : ENTITY IS TRUE; + + end UFMSDIB; + + architecture Structure of UFMSDIB is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal IOLDO_ipd : std_logic := 'X'; + signal UFMSDIS_out : std_logic := 'X'; + + component xo2iobuf0084 + port (I: in Std_logic; PAD: out Std_logic); + end component; + begin + UFMSDI_pad: xo2iobuf0084 + port map (I=>IOLDO_ipd, PAD=>UFMSDIS_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(IOLDO_ipd, IOLDO, tipd_IOLDO); + END BLOCK; + + VitalBehavior : PROCESS (IOLDO_ipd, UFMSDIS_out) + VARIABLE UFMSDIS_zd : std_logic := 'X'; + VARIABLE UFMSDIS_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + UFMSDIS_zd := UFMSDIS_out; + + VitalPathDelay01 ( + OutSignal => UFMSDIS, OutSignalName => "UFMSDIS", OutTemp => UFMSDIS_zd, + Paths => (0 => (InputChangeTime => IOLDO_ipd'last_event, + PathDelay => tpd_IOLDO_UFMSDIS, + PathCondition => TRUE)), + GlitchData => UFMSDIS_GlitchData, + Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity UFMSDI_MGIOL + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity UFMSDI_MGIOL is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "UFMSDI_MGIOL"; + + tipd_OPOS : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_IOLDO : VitalDelayType01 := (0 ns, 0 ns); + ticd_CLK : VitalDelayType := 0 ns; + tisd_OPOS_CLK : VitalDelayType := 0 ns; + tsetup_OPOS_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_OPOS_CLK_noedge_posedge : VitalDelayType := 0 ns; + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns); + + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); + + ATTRIBUTE Vital_Level0 OF UFMSDI_MGIOL : ENTITY IS TRUE; + + end UFMSDI_MGIOL; + + architecture Structure of UFMSDI_MGIOL is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal IOLDO_out : std_logic := 'X'; + signal OPOS_ipd : std_logic := 'X'; + signal OPOS_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + + signal VCCI: Std_logic; + signal GNDI: Std_logic; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component mfflsre + port (D0: in Std_logic; SP: in Std_logic; CK: in Std_logic; + LSR: in Std_logic; Q: out Std_logic); + end component; + begin + UFMSDI_r0: mfflsre + port map (D0=>OPOS_dly, SP=>VCCI, CK=>CLK_dly, LSR=>GNDI, Q=>IOLDO_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + DRIVEGND: gnd + port map (PWR0=>GNDI); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(OPOS_ipd, OPOS, tipd_OPOS); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(OPOS_dly, OPOS_ipd, tisd_OPOS_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (IOLDO_out, OPOS_dly, CLK_dly) + VARIABLE IOLDO_zd : std_logic := 'X'; + VARIABLE IOLDO_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_OPOS_CLK : x01 := '0'; + VARIABLE OPOS_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => OPOS_dly, + TestSignalName => "OPOS", + TestDelay => tisd_OPOS_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_OPOS_CLK_noedge_posedge, + SetupLow => tsetup_OPOS_CLK_noedge_posedge, + HoldHigh => thold_OPOS_CLK_noedge_posedge, + HoldLow => thold_OPOS_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => OPOS_CLK_TimingDatash, + Violation => tviol_OPOS_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + IOLDO_zd := IOLDO_out; + + VitalPathDelay01 ( + OutSignal => IOLDO, OutSignalName => "IOLDO", OutTemp => IOLDO_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_IOLDO, + PathCondition => TRUE)), + GlitchData => IOLDO_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity UFMCLKB + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity UFMCLKB is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "UFMCLKB"; + + tipd_IOLDO : VitalDelayType01 := (0 ns, 0 ns); + tpd_IOLDO_UFMCLKS : VitalDelayType01 := (0 ns, 0 ns)); + + port (IOLDO: in Std_logic; UFMCLKS: out Std_logic); + + ATTRIBUTE Vital_Level0 OF UFMCLKB : ENTITY IS TRUE; + + end UFMCLKB; + + architecture Structure of UFMCLKB is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal IOLDO_ipd : std_logic := 'X'; + signal UFMCLKS_out : std_logic := 'X'; + + component xo2iobuf0084 + port (I: in Std_logic; PAD: out Std_logic); + end component; + begin + UFMCLK_pad: xo2iobuf0084 + port map (I=>IOLDO_ipd, PAD=>UFMCLKS_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(IOLDO_ipd, IOLDO, tipd_IOLDO); + END BLOCK; + + VitalBehavior : PROCESS (IOLDO_ipd, UFMCLKS_out) + VARIABLE UFMCLKS_zd : std_logic := 'X'; + VARIABLE UFMCLKS_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + UFMCLKS_zd := UFMCLKS_out; + + VitalPathDelay01 ( + OutSignal => UFMCLKS, OutSignalName => "UFMCLKS", OutTemp => UFMCLKS_zd, + Paths => (0 => (InputChangeTime => IOLDO_ipd'last_event, + PathDelay => tpd_IOLDO_UFMCLKS, + PathCondition => TRUE)), + GlitchData => UFMCLKS_GlitchData, + Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity UFMCLK_MGIOL + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity UFMCLK_MGIOL is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "UFMCLK_MGIOL"; + + tipd_OPOS : VitalDelayType01 := (0 ns, 0 ns); + tipd_CE : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_IOLDO : VitalDelayType01 := (0 ns, 0 ns); + ticd_CLK : VitalDelayType := 0 ns; + tisd_OPOS_CLK : VitalDelayType := 0 ns; + tsetup_OPOS_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_OPOS_CLK_noedge_posedge : VitalDelayType := 0 ns; + tisd_CE_CLK : VitalDelayType := 0 ns; + tsetup_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_CE_CLK_noedge_posedge : VitalDelayType := 0 ns; + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns); + + port (IOLDO: out Std_logic; OPOS: in Std_logic; CE: in Std_logic; + CLK: in Std_logic); + + ATTRIBUTE Vital_Level0 OF UFMCLK_MGIOL : ENTITY IS TRUE; + + end UFMCLK_MGIOL; + + architecture Structure of UFMCLK_MGIOL is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal IOLDO_out : std_logic := 'X'; + signal OPOS_ipd : std_logic := 'X'; + signal OPOS_dly : std_logic := 'X'; + signal CE_ipd : std_logic := 'X'; + signal CE_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + + signal GNDI: Std_logic; + component gnd + port (PWR0: out Std_logic); + end component; + component mfflsre + port (D0: in Std_logic; SP: in Std_logic; CK: in Std_logic; + LSR: in Std_logic; Q: out Std_logic); + end component; + begin + UFMCLK_0io: mfflsre + port map (D0=>OPOS_dly, SP=>CE_dly, CK=>CLK_dly, LSR=>GNDI, Q=>IOLDO_out); + DRIVEGND: gnd + port map (PWR0=>GNDI); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(OPOS_ipd, OPOS, tipd_OPOS); + VitalWireDelay(CE_ipd, CE, tipd_CE); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(OPOS_dly, OPOS_ipd, tisd_OPOS_CLK); + VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (IOLDO_out, OPOS_dly, CE_dly, CLK_dly) + VARIABLE IOLDO_zd : std_logic := 'X'; + VARIABLE IOLDO_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_OPOS_CLK : x01 := '0'; + VARIABLE OPOS_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CE_CLK : x01 := '0'; + VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => OPOS_dly, + TestSignalName => "OPOS", + TestDelay => tisd_OPOS_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_OPOS_CLK_noedge_posedge, + SetupLow => tsetup_OPOS_CLK_noedge_posedge, + HoldHigh => thold_OPOS_CLK_noedge_posedge, + HoldLow => thold_OPOS_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => OPOS_CLK_TimingDatash, + Violation => tviol_OPOS_CLK, + MsgSeverity => warning); VitalSetupHoldCheck ( TestSignal => CE_dly, TestSignalName => "CE", @@ -19361,70 +18125,1457 @@ END IF; - F0_zd := F0_out; - Q0_zd := Q0_out; - F1_zd := F1_out; - Q1_zd := Q1_out; + IOLDO_zd := IOLDO_out; VitalPathDelay01 ( - OutSignal => F0, OutSignalName => "F0", OutTemp => F0_zd, - Paths => (0 => (InputChangeTime => B0_ipd'last_event, - PathDelay => tpd_B0_F0, - PathCondition => TRUE), - 1 => (InputChangeTime => A0_ipd'last_event, - PathDelay => tpd_A0_F0, - PathCondition => TRUE)), - GlitchData => F0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q0, OutSignalName => "Q0", OutTemp => Q0_zd, + OutSignal => IOLDO, OutSignalName => "IOLDO", OutTemp => IOLDO_zd, Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q0, + PathDelay => tpd_CLK_IOLDO, PathCondition => TRUE)), - GlitchData => Q0_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => F1, OutSignalName => "F1", OutTemp => F1_zd, - Paths => (0 => (InputChangeTime => B1_ipd'last_event, - PathDelay => tpd_B1_F1, - PathCondition => TRUE), - 1 => (InputChangeTime => A1_ipd'last_event, - PathDelay => tpd_A1_F1, - PathCondition => TRUE)), - GlitchData => F1_GlitchData, - Mode => ondetect, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01 ( - OutSignal => Q1, OutSignalName => "Q1", OutTemp => Q1_zd, - Paths => (0 => (InputChangeTime => CLK_dly'last_event, - PathDelay => tpd_CLK_Q1, - PathCondition => TRUE)), - GlitchData => Q1_GlitchData, + GlitchData => IOLDO_GlitchData, Mode => ondetect, XOn => XOn, MsgOn => MsgOn); END PROCESS; end Structure; --- entity xo2iobuf +-- entity nUFMCSB library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity xo2iobuf is - port (I: in Std_logic; T: in Std_logic; Z: out Std_logic; - PAD: out Std_logic; PADI: in Std_logic); + entity nUFMCSB is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "nUFMCSB"; - ATTRIBUTE Vital_Level0 OF xo2iobuf : ENTITY IS TRUE; + tipd_IOLDO : VitalDelayType01 := (0 ns, 0 ns); + tpd_IOLDO_nUFMCSS : VitalDelayType01 := (0 ns, 0 ns)); - end xo2iobuf; + port (IOLDO: in Std_logic; nUFMCSS: out Std_logic); - architecture Structure of xo2iobuf is + ATTRIBUTE Vital_Level0 OF nUFMCSB : ENTITY IS TRUE; + + end nUFMCSB; + + architecture Structure of nUFMCSB is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal IOLDO_ipd : std_logic := 'X'; + signal nUFMCSS_out : std_logic := 'X'; + + component xo2iobuf0084 + port (I: in Std_logic; PAD: out Std_logic); + end component; begin - INST1: IBPD - port map (I=>PADI, O=>Z); - INST2: OBZPD - port map (I=>I, T=>T, O=>PAD); + nUFMCS_pad: xo2iobuf0084 + port map (I=>IOLDO_ipd, PAD=>nUFMCSS_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(IOLDO_ipd, IOLDO, tipd_IOLDO); + END BLOCK; + + VitalBehavior : PROCESS (IOLDO_ipd, nUFMCSS_out) + VARIABLE nUFMCSS_zd : std_logic := 'X'; + VARIABLE nUFMCSS_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + nUFMCSS_zd := nUFMCSS_out; + + VitalPathDelay01 ( + OutSignal => nUFMCSS, OutSignalName => "nUFMCSS", OutTemp => nUFMCSS_zd, + Paths => (0 => (InputChangeTime => IOLDO_ipd'last_event, + PathDelay => tpd_IOLDO_nUFMCSS, + PathCondition => TRUE)), + GlitchData => nUFMCSS_GlitchData, + Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity mfflsre0087 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity mfflsre0087 is + port (D0: in Std_logic; SP: in Std_logic; CK: in Std_logic; + LSR: in Std_logic; Q: out Std_logic); + + ATTRIBUTE Vital_Level0 OF mfflsre0087 : ENTITY IS TRUE; + + end mfflsre0087; + + architecture Structure of mfflsre0087 is + begin + INST01: FD1P3BX + generic map (GSR => "DISABLED") + port map (D=>D0, SP=>SP, CK=>CK, PD=>LSR, Q=>Q); + end Structure; + +-- entity nUFMCS_MGIOL + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity nUFMCS_MGIOL is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "nUFMCS_MGIOL"; + + tipd_OPOS : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_IOLDO : VitalDelayType01 := (0 ns, 0 ns); + ticd_CLK : VitalDelayType := 0 ns; + tisd_OPOS_CLK : VitalDelayType := 0 ns; + tsetup_OPOS_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_OPOS_CLK_noedge_posedge : VitalDelayType := 0 ns; + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns); + + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); + + ATTRIBUTE Vital_Level0 OF nUFMCS_MGIOL : ENTITY IS TRUE; + + end nUFMCS_MGIOL; + + architecture Structure of nUFMCS_MGIOL is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal IOLDO_out : std_logic := 'X'; + signal OPOS_ipd : std_logic := 'X'; + signal OPOS_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + + signal VCCI: Std_logic; + signal GNDI: Std_logic; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component mfflsre0087 + port (D0: in Std_logic; SP: in Std_logic; CK: in Std_logic; + LSR: in Std_logic; Q: out Std_logic); + end component; + begin + nUFMCS_r1: mfflsre0087 + port map (D0=>OPOS_dly, SP=>VCCI, CK=>CLK_dly, LSR=>GNDI, Q=>IOLDO_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + DRIVEGND: gnd + port map (PWR0=>GNDI); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(OPOS_ipd, OPOS, tipd_OPOS); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(OPOS_dly, OPOS_ipd, tisd_OPOS_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (IOLDO_out, OPOS_dly, CLK_dly) + VARIABLE IOLDO_zd : std_logic := 'X'; + VARIABLE IOLDO_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_OPOS_CLK : x01 := '0'; + VARIABLE OPOS_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => OPOS_dly, + TestSignalName => "OPOS", + TestDelay => tisd_OPOS_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_OPOS_CLK_noedge_posedge, + SetupLow => tsetup_OPOS_CLK_noedge_posedge, + HoldHigh => thold_OPOS_CLK_noedge_posedge, + HoldLow => thold_OPOS_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => OPOS_CLK_TimingDatash, + Violation => tviol_OPOS_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + IOLDO_zd := IOLDO_out; + + VitalPathDelay01 ( + OutSignal => IOLDO, OutSignalName => "IOLDO", OutTemp => IOLDO_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_IOLDO, + PathCondition => TRUE)), + GlitchData => IOLDO_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity RDQMLB + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity RDQMLB is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "RDQMLB"; + + tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); + tpd_PADDO_RDQMLS : VitalDelayType01 := (0 ns, 0 ns)); + + port (PADDO: in Std_logic; RDQMLS: out Std_logic); + + ATTRIBUTE Vital_Level0 OF RDQMLB : ENTITY IS TRUE; + + end RDQMLB; + + architecture Structure of RDQMLB is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal PADDO_ipd : std_logic := 'X'; + signal RDQMLS_out : std_logic := 'X'; + + component xo2iobuf0084 + port (I: in Std_logic; PAD: out Std_logic); + end component; + begin + RDQML_pad: xo2iobuf0084 + port map (I=>PADDO_ipd, PAD=>RDQMLS_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); + END BLOCK; + + VitalBehavior : PROCESS (PADDO_ipd, RDQMLS_out) + VARIABLE RDQMLS_zd : std_logic := 'X'; + VARIABLE RDQMLS_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + RDQMLS_zd := RDQMLS_out; + + VitalPathDelay01 ( + OutSignal => RDQMLS, OutSignalName => "RDQMLS", OutTemp => RDQMLS_zd, + Paths => (0 => (InputChangeTime => PADDO_ipd'last_event, + PathDelay => tpd_PADDO_RDQMLS, + PathCondition => TRUE)), + GlitchData => RDQMLS_GlitchData, + Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity RDQMHB + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity RDQMHB is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "RDQMHB"; + + tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); + tpd_PADDO_RDQMHS : VitalDelayType01 := (0 ns, 0 ns)); + + port (PADDO: in Std_logic; RDQMHS: out Std_logic); + + ATTRIBUTE Vital_Level0 OF RDQMHB : ENTITY IS TRUE; + + end RDQMHB; + + architecture Structure of RDQMHB is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal PADDO_ipd : std_logic := 'X'; + signal RDQMHS_out : std_logic := 'X'; + + component xo2iobuf0084 + port (I: in Std_logic; PAD: out Std_logic); + end component; + begin + RDQMH_pad: xo2iobuf0084 + port map (I=>PADDO_ipd, PAD=>RDQMHS_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); + END BLOCK; + + VitalBehavior : PROCESS (PADDO_ipd, RDQMHS_out) + VARIABLE RDQMHS_zd : std_logic := 'X'; + VARIABLE RDQMHS_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + RDQMHS_zd := RDQMHS_out; + + VitalPathDelay01 ( + OutSignal => RDQMHS, OutSignalName => "RDQMHS", OutTemp => RDQMHS_zd, + Paths => (0 => (InputChangeTime => PADDO_ipd'last_event, + PathDelay => tpd_PADDO_RDQMHS, + PathCondition => TRUE)), + GlitchData => RDQMHS_GlitchData, + Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity nRCASB + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity nRCASB is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "nRCASB"; + + tipd_IOLDO : VitalDelayType01 := (0 ns, 0 ns); + tpd_IOLDO_nRCASS : VitalDelayType01 := (0 ns, 0 ns)); + + port (IOLDO: in Std_logic; nRCASS: out Std_logic); + + ATTRIBUTE Vital_Level0 OF nRCASB : ENTITY IS TRUE; + + end nRCASB; + + architecture Structure of nRCASB is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal IOLDO_ipd : std_logic := 'X'; + signal nRCASS_out : std_logic := 'X'; + + component xo2iobuf0084 + port (I: in Std_logic; PAD: out Std_logic); + end component; + begin + nRCAS_pad: xo2iobuf0084 + port map (I=>IOLDO_ipd, PAD=>nRCASS_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(IOLDO_ipd, IOLDO, tipd_IOLDO); + END BLOCK; + + VitalBehavior : PROCESS (IOLDO_ipd, nRCASS_out) + VARIABLE nRCASS_zd : std_logic := 'X'; + VARIABLE nRCASS_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + nRCASS_zd := nRCASS_out; + + VitalPathDelay01 ( + OutSignal => nRCASS, OutSignalName => "nRCASS", OutTemp => nRCASS_zd, + Paths => (0 => (InputChangeTime => IOLDO_ipd'last_event, + PathDelay => tpd_IOLDO_nRCASS, + PathCondition => TRUE)), + GlitchData => nRCASS_GlitchData, + Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity nRCAS_MGIOL + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity nRCAS_MGIOL is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "nRCAS_MGIOL"; + + tipd_OPOS : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_IOLDO : VitalDelayType01 := (0 ns, 0 ns); + ticd_CLK : VitalDelayType := 0 ns; + tisd_OPOS_CLK : VitalDelayType := 0 ns; + tsetup_OPOS_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_OPOS_CLK_noedge_posedge : VitalDelayType := 0 ns; + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns); + + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); + + ATTRIBUTE Vital_Level0 OF nRCAS_MGIOL : ENTITY IS TRUE; + + end nRCAS_MGIOL; + + architecture Structure of nRCAS_MGIOL is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal IOLDO_out : std_logic := 'X'; + signal OPOS_ipd : std_logic := 'X'; + signal OPOS_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + + signal VCCI: Std_logic; + signal GNDI: Std_logic; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component mfflsre0087 + port (D0: in Std_logic; SP: in Std_logic; CK: in Std_logic; + LSR: in Std_logic; Q: out Std_logic); + end component; + begin + nRCAS_0io: mfflsre0087 + port map (D0=>OPOS_dly, SP=>VCCI, CK=>CLK_dly, LSR=>GNDI, Q=>IOLDO_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + DRIVEGND: gnd + port map (PWR0=>GNDI); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(OPOS_ipd, OPOS, tipd_OPOS); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(OPOS_dly, OPOS_ipd, tisd_OPOS_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (IOLDO_out, OPOS_dly, CLK_dly) + VARIABLE IOLDO_zd : std_logic := 'X'; + VARIABLE IOLDO_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_OPOS_CLK : x01 := '0'; + VARIABLE OPOS_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => OPOS_dly, + TestSignalName => "OPOS", + TestDelay => tisd_OPOS_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_OPOS_CLK_noedge_posedge, + SetupLow => tsetup_OPOS_CLK_noedge_posedge, + HoldHigh => thold_OPOS_CLK_noedge_posedge, + HoldLow => thold_OPOS_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => OPOS_CLK_TimingDatash, + Violation => tviol_OPOS_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + IOLDO_zd := IOLDO_out; + + VitalPathDelay01 ( + OutSignal => IOLDO, OutSignalName => "IOLDO", OutTemp => IOLDO_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_IOLDO, + PathCondition => TRUE)), + GlitchData => IOLDO_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity nRRASB + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity nRRASB is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "nRRASB"; + + tipd_IOLDO : VitalDelayType01 := (0 ns, 0 ns); + tpd_IOLDO_nRRASS : VitalDelayType01 := (0 ns, 0 ns)); + + port (IOLDO: in Std_logic; nRRASS: out Std_logic); + + ATTRIBUTE Vital_Level0 OF nRRASB : ENTITY IS TRUE; + + end nRRASB; + + architecture Structure of nRRASB is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal IOLDO_ipd : std_logic := 'X'; + signal nRRASS_out : std_logic := 'X'; + + component xo2iobuf0084 + port (I: in Std_logic; PAD: out Std_logic); + end component; + begin + nRRAS_pad: xo2iobuf0084 + port map (I=>IOLDO_ipd, PAD=>nRRASS_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(IOLDO_ipd, IOLDO, tipd_IOLDO); + END BLOCK; + + VitalBehavior : PROCESS (IOLDO_ipd, nRRASS_out) + VARIABLE nRRASS_zd : std_logic := 'X'; + VARIABLE nRRASS_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + nRRASS_zd := nRRASS_out; + + VitalPathDelay01 ( + OutSignal => nRRASS, OutSignalName => "nRRASS", OutTemp => nRRASS_zd, + Paths => (0 => (InputChangeTime => IOLDO_ipd'last_event, + PathDelay => tpd_IOLDO_nRRASS, + PathCondition => TRUE)), + GlitchData => nRRASS_GlitchData, + Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity nRRAS_MGIOL + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity nRRAS_MGIOL is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "nRRAS_MGIOL"; + + tipd_OPOS : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_IOLDO : VitalDelayType01 := (0 ns, 0 ns); + ticd_CLK : VitalDelayType := 0 ns; + tisd_OPOS_CLK : VitalDelayType := 0 ns; + tsetup_OPOS_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_OPOS_CLK_noedge_posedge : VitalDelayType := 0 ns; + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns); + + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); + + ATTRIBUTE Vital_Level0 OF nRRAS_MGIOL : ENTITY IS TRUE; + + end nRRAS_MGIOL; + + architecture Structure of nRRAS_MGIOL is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal IOLDO_out : std_logic := 'X'; + signal OPOS_ipd : std_logic := 'X'; + signal OPOS_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + + signal VCCI: Std_logic; + signal GNDI: Std_logic; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component mfflsre0087 + port (D0: in Std_logic; SP: in Std_logic; CK: in Std_logic; + LSR: in Std_logic; Q: out Std_logic); + end component; + begin + nRRAS_0io: mfflsre0087 + port map (D0=>OPOS_dly, SP=>VCCI, CK=>CLK_dly, LSR=>GNDI, Q=>IOLDO_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + DRIVEGND: gnd + port map (PWR0=>GNDI); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(OPOS_ipd, OPOS, tipd_OPOS); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(OPOS_dly, OPOS_ipd, tisd_OPOS_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (IOLDO_out, OPOS_dly, CLK_dly) + VARIABLE IOLDO_zd : std_logic := 'X'; + VARIABLE IOLDO_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_OPOS_CLK : x01 := '0'; + VARIABLE OPOS_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => OPOS_dly, + TestSignalName => "OPOS", + TestDelay => tisd_OPOS_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_OPOS_CLK_noedge_posedge, + SetupLow => tsetup_OPOS_CLK_noedge_posedge, + HoldHigh => thold_OPOS_CLK_noedge_posedge, + HoldLow => thold_OPOS_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => OPOS_CLK_TimingDatash, + Violation => tviol_OPOS_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + IOLDO_zd := IOLDO_out; + + VitalPathDelay01 ( + OutSignal => IOLDO, OutSignalName => "IOLDO", OutTemp => IOLDO_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_IOLDO, + PathCondition => TRUE)), + GlitchData => IOLDO_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity nRWEB + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity nRWEB is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "nRWEB"; + + tipd_IOLDO : VitalDelayType01 := (0 ns, 0 ns); + tpd_IOLDO_nRWES : VitalDelayType01 := (0 ns, 0 ns)); + + port (IOLDO: in Std_logic; nRWES: out Std_logic); + + ATTRIBUTE Vital_Level0 OF nRWEB : ENTITY IS TRUE; + + end nRWEB; + + architecture Structure of nRWEB is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal IOLDO_ipd : std_logic := 'X'; + signal nRWES_out : std_logic := 'X'; + + component xo2iobuf0084 + port (I: in Std_logic; PAD: out Std_logic); + end component; + begin + nRWE_pad: xo2iobuf0084 + port map (I=>IOLDO_ipd, PAD=>nRWES_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(IOLDO_ipd, IOLDO, tipd_IOLDO); + END BLOCK; + + VitalBehavior : PROCESS (IOLDO_ipd, nRWES_out) + VARIABLE nRWES_zd : std_logic := 'X'; + VARIABLE nRWES_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + nRWES_zd := nRWES_out; + + VitalPathDelay01 ( + OutSignal => nRWES, OutSignalName => "nRWES", OutTemp => nRWES_zd, + Paths => (0 => (InputChangeTime => IOLDO_ipd'last_event, + PathDelay => tpd_IOLDO_nRWES, + PathCondition => TRUE)), + GlitchData => nRWES_GlitchData, + Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity nRWE_MGIOL + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity nRWE_MGIOL is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "nRWE_MGIOL"; + + tipd_OPOS : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_IOLDO : VitalDelayType01 := (0 ns, 0 ns); + ticd_CLK : VitalDelayType := 0 ns; + tisd_OPOS_CLK : VitalDelayType := 0 ns; + tsetup_OPOS_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_OPOS_CLK_noedge_posedge : VitalDelayType := 0 ns; + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns); + + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); + + ATTRIBUTE Vital_Level0 OF nRWE_MGIOL : ENTITY IS TRUE; + + end nRWE_MGIOL; + + architecture Structure of nRWE_MGIOL is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal IOLDO_out : std_logic := 'X'; + signal OPOS_ipd : std_logic := 'X'; + signal OPOS_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + + signal VCCI: Std_logic; + signal GNDI: Std_logic; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component mfflsre0087 + port (D0: in Std_logic; SP: in Std_logic; CK: in Std_logic; + LSR: in Std_logic; Q: out Std_logic); + end component; + begin + nRWE_0io: mfflsre0087 + port map (D0=>OPOS_dly, SP=>VCCI, CK=>CLK_dly, LSR=>GNDI, Q=>IOLDO_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + DRIVEGND: gnd + port map (PWR0=>GNDI); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(OPOS_ipd, OPOS, tipd_OPOS); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(OPOS_dly, OPOS_ipd, tisd_OPOS_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (IOLDO_out, OPOS_dly, CLK_dly) + VARIABLE IOLDO_zd : std_logic := 'X'; + VARIABLE IOLDO_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_OPOS_CLK : x01 := '0'; + VARIABLE OPOS_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => OPOS_dly, + TestSignalName => "OPOS", + TestDelay => tisd_OPOS_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_OPOS_CLK_noedge_posedge, + SetupLow => tsetup_OPOS_CLK_noedge_posedge, + HoldHigh => thold_OPOS_CLK_noedge_posedge, + HoldLow => thold_OPOS_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => OPOS_CLK_TimingDatash, + Violation => tviol_OPOS_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + IOLDO_zd := IOLDO_out; + + VitalPathDelay01 ( + OutSignal => IOLDO, OutSignalName => "IOLDO", OutTemp => IOLDO_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_IOLDO, + PathCondition => TRUE)), + GlitchData => IOLDO_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity RCKEB + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity RCKEB is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "RCKEB"; + + tipd_IOLDO : VitalDelayType01 := (0 ns, 0 ns); + tpd_IOLDO_RCKES : VitalDelayType01 := (0 ns, 0 ns)); + + port (IOLDO: in Std_logic; RCKES: out Std_logic); + + ATTRIBUTE Vital_Level0 OF RCKEB : ENTITY IS TRUE; + + end RCKEB; + + architecture Structure of RCKEB is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal IOLDO_ipd : std_logic := 'X'; + signal RCKES_out : std_logic := 'X'; + + component xo2iobuf0084 + port (I: in Std_logic; PAD: out Std_logic); + end component; + begin + RCKE_pad: xo2iobuf0084 + port map (I=>IOLDO_ipd, PAD=>RCKES_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(IOLDO_ipd, IOLDO, tipd_IOLDO); + END BLOCK; + + VitalBehavior : PROCESS (IOLDO_ipd, RCKES_out) + VARIABLE RCKES_zd : std_logic := 'X'; + VARIABLE RCKES_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + RCKES_zd := RCKES_out; + + VitalPathDelay01 ( + OutSignal => RCKES, OutSignalName => "RCKES", OutTemp => RCKES_zd, + Paths => (0 => (InputChangeTime => IOLDO_ipd'last_event, + PathDelay => tpd_IOLDO_RCKES, + PathCondition => TRUE)), + GlitchData => RCKES_GlitchData, + Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity RCKE_MGIOL + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity RCKE_MGIOL is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "RCKE_MGIOL"; + + tipd_OPOS : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_IOLDO : VitalDelayType01 := (0 ns, 0 ns); + ticd_CLK : VitalDelayType := 0 ns; + tisd_OPOS_CLK : VitalDelayType := 0 ns; + tsetup_OPOS_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_OPOS_CLK_noedge_posedge : VitalDelayType := 0 ns; + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns); + + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); + + ATTRIBUTE Vital_Level0 OF RCKE_MGIOL : ENTITY IS TRUE; + + end RCKE_MGIOL; + + architecture Structure of RCKE_MGIOL is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal IOLDO_out : std_logic := 'X'; + signal OPOS_ipd : std_logic := 'X'; + signal OPOS_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + + signal VCCI: Std_logic; + signal GNDI: Std_logic; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component mfflsre + port (D0: in Std_logic; SP: in Std_logic; CK: in Std_logic; + LSR: in Std_logic; Q: out Std_logic); + end component; + begin + RCKE_r2: mfflsre + port map (D0=>OPOS_dly, SP=>VCCI, CK=>CLK_dly, LSR=>GNDI, Q=>IOLDO_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + DRIVEGND: gnd + port map (PWR0=>GNDI); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(OPOS_ipd, OPOS, tipd_OPOS); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(OPOS_dly, OPOS_ipd, tisd_OPOS_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (IOLDO_out, OPOS_dly, CLK_dly) + VARIABLE IOLDO_zd : std_logic := 'X'; + VARIABLE IOLDO_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_OPOS_CLK : x01 := '0'; + VARIABLE OPOS_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => OPOS_dly, + TestSignalName => "OPOS", + TestDelay => tisd_OPOS_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_OPOS_CLK_noedge_posedge, + SetupLow => tsetup_OPOS_CLK_noedge_posedge, + HoldHigh => thold_OPOS_CLK_noedge_posedge, + HoldLow => thold_OPOS_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => OPOS_CLK_TimingDatash, + Violation => tviol_OPOS_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + IOLDO_zd := IOLDO_out; + + VitalPathDelay01 ( + OutSignal => IOLDO, OutSignalName => "IOLDO", OutTemp => IOLDO_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_IOLDO, + PathCondition => TRUE)), + GlitchData => IOLDO_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity RCLKB + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity RCLKB is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "RCLKB"; + + tipd_RCLKS : VitalDelayType01 := (0 ns, 0 ns); + tpd_RCLKS_PADDI : VitalDelayType01 := (0 ns, 0 ns); + tperiod_RCLKS : VitalDelayType := 0 ns; + tpw_RCLKS_posedge : VitalDelayType := 0 ns; + tpw_RCLKS_negedge : VitalDelayType := 0 ns); + + port (PADDI: out Std_logic; RCLKS: in Std_logic); + + ATTRIBUTE Vital_Level0 OF RCLKB : ENTITY IS TRUE; + + end RCLKB; + + architecture Structure of RCLKB is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal PADDI_out : std_logic := 'X'; + signal RCLKS_ipd : std_logic := 'X'; + + component xo2iobuf0086 + port (Z: out Std_logic; PAD: in Std_logic); + end component; + begin + RCLK_pad: xo2iobuf0086 + port map (Z=>PADDI_out, PAD=>RCLKS_ipd); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(RCLKS_ipd, RCLKS, tipd_RCLKS); + END BLOCK; + + VitalBehavior : PROCESS (PADDI_out, RCLKS_ipd) + VARIABLE PADDI_zd : std_logic := 'X'; + VARIABLE PADDI_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_RCLKS_RCLKS : x01 := '0'; + VARIABLE periodcheckinfo_RCLKS : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalPeriodPulseCheck ( + TestSignal => RCLKS_ipd, + TestSignalName => "RCLKS", + Period => tperiod_RCLKS, + PulseWidthHigh => tpw_RCLKS_posedge, + PulseWidthLow => tpw_RCLKS_negedge, + PeriodData => periodcheckinfo_RCLKS, + Violation => tviol_RCLKS_RCLKS, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + PADDI_zd := PADDI_out; + + VitalPathDelay01 ( + OutSignal => PADDI, OutSignalName => "PADDI", OutTemp => PADDI_zd, + Paths => (0 => (InputChangeTime => RCLKS_ipd'last_event, + PathDelay => tpd_RCLKS_PADDI, + PathCondition => TRUE)), + GlitchData => PADDI_GlitchData, + Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity nRCSB + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity nRCSB is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "nRCSB"; + + tipd_IOLDO : VitalDelayType01 := (0 ns, 0 ns); + tpd_IOLDO_nRCSS : VitalDelayType01 := (0 ns, 0 ns)); + + port (IOLDO: in Std_logic; nRCSS: out Std_logic); + + ATTRIBUTE Vital_Level0 OF nRCSB : ENTITY IS TRUE; + + end nRCSB; + + architecture Structure of nRCSB is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal IOLDO_ipd : std_logic := 'X'; + signal nRCSS_out : std_logic := 'X'; + + component xo2iobuf0084 + port (I: in Std_logic; PAD: out Std_logic); + end component; + begin + nRCS_pad: xo2iobuf0084 + port map (I=>IOLDO_ipd, PAD=>nRCSS_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(IOLDO_ipd, IOLDO, tipd_IOLDO); + END BLOCK; + + VitalBehavior : PROCESS (IOLDO_ipd, nRCSS_out) + VARIABLE nRCSS_zd : std_logic := 'X'; + VARIABLE nRCSS_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + nRCSS_zd := nRCSS_out; + + VitalPathDelay01 ( + OutSignal => nRCSS, OutSignalName => "nRCSS", OutTemp => nRCSS_zd, + Paths => (0 => (InputChangeTime => IOLDO_ipd'last_event, + PathDelay => tpd_IOLDO_nRCSS, + PathCondition => TRUE)), + GlitchData => nRCSS_GlitchData, + Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity nRCS_MGIOL + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity nRCS_MGIOL is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "nRCS_MGIOL"; + + tipd_OPOS : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_IOLDO : VitalDelayType01 := (0 ns, 0 ns); + ticd_CLK : VitalDelayType := 0 ns; + tisd_OPOS_CLK : VitalDelayType := 0 ns; + tsetup_OPOS_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_OPOS_CLK_noedge_posedge : VitalDelayType := 0 ns; + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns); + + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); + + ATTRIBUTE Vital_Level0 OF nRCS_MGIOL : ENTITY IS TRUE; + + end nRCS_MGIOL; + + architecture Structure of nRCS_MGIOL is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal IOLDO_out : std_logic := 'X'; + signal OPOS_ipd : std_logic := 'X'; + signal OPOS_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + + signal VCCI: Std_logic; + signal GNDI: Std_logic; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component mfflsre0087 + port (D0: in Std_logic; SP: in Std_logic; CK: in Std_logic; + LSR: in Std_logic; Q: out Std_logic); + end component; + begin + nRCS_0io: mfflsre0087 + port map (D0=>OPOS_dly, SP=>VCCI, CK=>CLK_dly, LSR=>GNDI, Q=>IOLDO_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + DRIVEGND: gnd + port map (PWR0=>GNDI); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(OPOS_ipd, OPOS, tipd_OPOS); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(OPOS_dly, OPOS_ipd, tisd_OPOS_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (IOLDO_out, OPOS_dly, CLK_dly) + VARIABLE IOLDO_zd : std_logic := 'X'; + VARIABLE IOLDO_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_OPOS_CLK : x01 := '0'; + VARIABLE OPOS_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => OPOS_dly, + TestSignalName => "OPOS", + TestDelay => tisd_OPOS_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_OPOS_CLK_noedge_posedge, + SetupLow => tsetup_OPOS_CLK_noedge_posedge, + HoldHigh => thold_OPOS_CLK_noedge_posedge, + HoldLow => thold_OPOS_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => OPOS_CLK_TimingDatash, + Violation => tviol_OPOS_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + IOLDO_zd := IOLDO_out; + + VitalPathDelay01 ( + OutSignal => IOLDO, OutSignalName => "IOLDO", OutTemp => IOLDO_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_IOLDO, + PathCondition => TRUE)), + GlitchData => IOLDO_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + end Structure; -- entity RD_7_B @@ -19441,19 +19592,12 @@ MsgOn : boolean := TRUE; InstancePath : string := "RD_7_B"; + tipd_IOLDO : VitalDelayType01 := (0 ns, 0 ns); tipd_PADDT : VitalDelayType01 := (0 ns, 0 ns); - tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); - tipd_RD7 : VitalDelayType01 := (0 ns, 0 ns); - tpd_PADDT_RD7 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns); - tpd_PADDO_RD7 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns); - tpd_RD7_PADDI : VitalDelayType01 := (0 ns, 0 ns); - tperiod_RD7 : VitalDelayType := 0 ns; - tpw_RD7_posedge : VitalDelayType := 0 ns; - tpw_RD7_negedge : VitalDelayType := 0 ns; - tpd_RD7_RD7 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns)); + tpd_IOLDO_RD7 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns); + tpd_PADDT_RD7 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns)); - port (PADDI: out Std_logic; PADDT: in Std_logic; PADDO: in Std_logic; - RD7: inout Std_logic); + port (IOLDO: in Std_logic; PADDT: in Std_logic; RD7: out Std_logic); ATTRIBUTE Vital_Level0 OF RD_7_B : ENTITY IS TRUE; @@ -19462,49 +19606,170 @@ architecture Structure of RD_7_B is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - signal PADDI_out : std_logic := 'X'; + signal IOLDO_ipd : std_logic := 'X'; signal PADDT_ipd : std_logic := 'X'; - signal PADDO_ipd : std_logic := 'X'; - signal RD7_ipd : std_logic := 'X'; - signal RD7_out : std_logic := 'Z'; + signal RD7_out : std_logic := 'X'; component xo2iobuf - port (I: in Std_logic; T: in Std_logic; Z: out Std_logic; - PAD: out Std_logic; PADI: in Std_logic); + port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); end component; begin - Dout_pad_7_713: xo2iobuf - port map (I=>PADDO_ipd, T=>PADDT_ipd, Z=>PADDI_out, PAD=>RD7_out, - PADI=>RD7_ipd); + RD_pad_7: xo2iobuf + port map (I=>IOLDO_ipd, T=>PADDT_ipd, PAD=>RD7_out); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN + VitalWireDelay(IOLDO_ipd, IOLDO, tipd_IOLDO); VitalWireDelay(PADDT_ipd, PADDT, tipd_PADDT); - VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); - VitalWireDelay(RD7_ipd, RD7, tipd_RD7); END BLOCK; - VitalBehavior : PROCESS (PADDI_out, PADDT_ipd, PADDO_ipd, RD7_ipd, RD7_out) - VARIABLE PADDI_zd : std_logic := 'X'; - VARIABLE PADDI_GlitchData : VitalGlitchDataType; + VitalBehavior : PROCESS (IOLDO_ipd, PADDT_ipd, RD7_out) VARIABLE RD7_zd : std_logic := 'X'; VARIABLE RD7_GlitchData : VitalGlitchDataType; - VARIABLE tviol_RD7_RD7 : x01 := '0'; - VARIABLE periodcheckinfo_RD7 : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN + + END IF; + + RD7_zd := RD7_out; + + VitalPathDelay01Z ( + OutSignal => RD7, OutSignalName => "RD7", OutTemp => RD7_zd, + Paths => (0 => (InputChangeTime => IOLDO_ipd'last_event, + PathDelay => tpd_IOLDO_RD7, + PathCondition => TRUE), + 1 => (InputChangeTime => PADDT_ipd'last_event, + PathDelay => tpd_PADDT_RD7, + PathCondition => TRUE)), + GlitchData => RD7_GlitchData, + Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity RD_7_MGIOL + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity RD_7_MGIOL is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "RD_7_MGIOL"; + + tipd_OPOS : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_IOLDO : VitalDelayType01 := (0 ns, 0 ns); + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns; + ticd_CLK : VitalDelayType := 0 ns; + tisd_OPOS_CLK : VitalDelayType := 0 ns; + tsetup_OPOS_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_OPOS_CLK_noedge_negedge : VitalDelayType := 0 ns); + + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); + + ATTRIBUTE Vital_Level0 OF RD_7_MGIOL : ENTITY IS TRUE; + + end RD_7_MGIOL; + + architecture Structure of RD_7_MGIOL is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal IOLDO_out : std_logic := 'X'; + signal OPOS_ipd : std_logic := 'X'; + signal OPOS_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + + signal VCCI: Std_logic; + signal CLK_NOTIN: Std_logic; + signal GNDI: Std_logic; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component inverter + port (I: in Std_logic; Z: out Std_logic); + end component; + component mfflsre + port (D0: in Std_logic; SP: in Std_logic; CK: in Std_logic; + LSR: in Std_logic; Q: out Std_logic); + end component; + begin + WRD_0io_7: mfflsre + port map (D0=>OPOS_dly, SP=>VCCI, CK=>CLK_NOTIN, LSR=>GNDI, Q=>IOLDO_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + CLK_INVERTERIN: inverter + port map (I=>CLK_dly, Z=>CLK_NOTIN); + DRIVEGND: gnd + port map (PWR0=>GNDI); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(OPOS_ipd, OPOS, tipd_OPOS); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(OPOS_dly, OPOS_ipd, tisd_OPOS_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (IOLDO_out, OPOS_dly, CLK_dly) + VARIABLE IOLDO_zd : std_logic := 'X'; + VARIABLE IOLDO_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_OPOS_CLK : x01 := '0'; + VARIABLE OPOS_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => OPOS_dly, + TestSignalName => "OPOS", + TestDelay => tisd_OPOS_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_OPOS_CLK_noedge_negedge, + SetupLow => tsetup_OPOS_CLK_noedge_negedge, + HoldHigh => thold_OPOS_CLK_noedge_negedge, + HoldLow => thold_OPOS_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => OPOS_CLK_TimingDatash, + Violation => tviol_OPOS_CLK, + MsgSeverity => warning); VitalPeriodPulseCheck ( - TestSignal => RD7_ipd, - TestSignalName => "RD7", - Period => tperiod_RD7, - PulseWidthHigh => tpw_RD7_posedge, - PulseWidthLow => tpw_RD7_negedge, - PeriodData => periodcheckinfo_RD7, - Violation => tviol_RD7_RD7, + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, MsgOn => MsgOn, XOn => XOn, HeaderMsg => InstancePath, CheckEnabled => TRUE, @@ -19512,26 +19777,15 @@ END IF; - PADDI_zd := PADDI_out; - RD7_zd := RD7_out; + IOLDO_zd := IOLDO_out; VitalPathDelay01 ( - OutSignal => PADDI, OutSignalName => "PADDI", OutTemp => PADDI_zd, - Paths => (0 => (InputChangeTime => RD7_ipd'last_event, - PathDelay => tpd_RD7_PADDI, + OutSignal => IOLDO, OutSignalName => "IOLDO", OutTemp => IOLDO_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_IOLDO, PathCondition => TRUE)), - GlitchData => PADDI_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01Z ( - OutSignal => RD7, OutSignalName => "RD7", OutTemp => RD7_zd, - Paths => (0 => (InputChangeTime => PADDT_ipd'last_event, - PathDelay => tpd_PADDT_RD7, - PathCondition => TRUE), - 1 => (InputChangeTime => PADDO_ipd'last_event, - PathDelay => tpd_PADDO_RD7, - PathCondition => TRUE)), - GlitchData => RD7_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); + GlitchData => IOLDO_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); END PROCESS; @@ -19551,19 +19805,12 @@ MsgOn : boolean := TRUE; InstancePath : string := "RD_6_B"; + tipd_IOLDO : VitalDelayType01 := (0 ns, 0 ns); tipd_PADDT : VitalDelayType01 := (0 ns, 0 ns); - tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); - tipd_RD6 : VitalDelayType01 := (0 ns, 0 ns); - tpd_PADDT_RD6 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns); - tpd_PADDO_RD6 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns); - tpd_RD6_PADDI : VitalDelayType01 := (0 ns, 0 ns); - tperiod_RD6 : VitalDelayType := 0 ns; - tpw_RD6_posedge : VitalDelayType := 0 ns; - tpw_RD6_negedge : VitalDelayType := 0 ns; - tpd_RD6_RD6 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns)); + tpd_IOLDO_RD6 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns); + tpd_PADDT_RD6 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns)); - port (PADDI: out Std_logic; PADDT: in Std_logic; PADDO: in Std_logic; - RD6: inout Std_logic); + port (IOLDO: in Std_logic; PADDT: in Std_logic; RD6: out Std_logic); ATTRIBUTE Vital_Level0 OF RD_6_B : ENTITY IS TRUE; @@ -19572,49 +19819,170 @@ architecture Structure of RD_6_B is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - signal PADDI_out : std_logic := 'X'; + signal IOLDO_ipd : std_logic := 'X'; signal PADDT_ipd : std_logic := 'X'; - signal PADDO_ipd : std_logic := 'X'; - signal RD6_ipd : std_logic := 'X'; - signal RD6_out : std_logic := 'Z'; + signal RD6_out : std_logic := 'X'; component xo2iobuf - port (I: in Std_logic; T: in Std_logic; Z: out Std_logic; - PAD: out Std_logic; PADI: in Std_logic); + port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); end component; begin - Dout_pad_6_714: xo2iobuf - port map (I=>PADDO_ipd, T=>PADDT_ipd, Z=>PADDI_out, PAD=>RD6_out, - PADI=>RD6_ipd); + RD_pad_6: xo2iobuf + port map (I=>IOLDO_ipd, T=>PADDT_ipd, PAD=>RD6_out); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN + VitalWireDelay(IOLDO_ipd, IOLDO, tipd_IOLDO); VitalWireDelay(PADDT_ipd, PADDT, tipd_PADDT); - VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); - VitalWireDelay(RD6_ipd, RD6, tipd_RD6); END BLOCK; - VitalBehavior : PROCESS (PADDI_out, PADDT_ipd, PADDO_ipd, RD6_ipd, RD6_out) - VARIABLE PADDI_zd : std_logic := 'X'; - VARIABLE PADDI_GlitchData : VitalGlitchDataType; + VitalBehavior : PROCESS (IOLDO_ipd, PADDT_ipd, RD6_out) VARIABLE RD6_zd : std_logic := 'X'; VARIABLE RD6_GlitchData : VitalGlitchDataType; - VARIABLE tviol_RD6_RD6 : x01 := '0'; - VARIABLE periodcheckinfo_RD6 : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN + + END IF; + + RD6_zd := RD6_out; + + VitalPathDelay01Z ( + OutSignal => RD6, OutSignalName => "RD6", OutTemp => RD6_zd, + Paths => (0 => (InputChangeTime => IOLDO_ipd'last_event, + PathDelay => tpd_IOLDO_RD6, + PathCondition => TRUE), + 1 => (InputChangeTime => PADDT_ipd'last_event, + PathDelay => tpd_PADDT_RD6, + PathCondition => TRUE)), + GlitchData => RD6_GlitchData, + Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity RD_6_MGIOL + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity RD_6_MGIOL is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "RD_6_MGIOL"; + + tipd_OPOS : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_IOLDO : VitalDelayType01 := (0 ns, 0 ns); + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns; + ticd_CLK : VitalDelayType := 0 ns; + tisd_OPOS_CLK : VitalDelayType := 0 ns; + tsetup_OPOS_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_OPOS_CLK_noedge_negedge : VitalDelayType := 0 ns); + + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); + + ATTRIBUTE Vital_Level0 OF RD_6_MGIOL : ENTITY IS TRUE; + + end RD_6_MGIOL; + + architecture Structure of RD_6_MGIOL is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal IOLDO_out : std_logic := 'X'; + signal OPOS_ipd : std_logic := 'X'; + signal OPOS_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + + signal VCCI: Std_logic; + signal CLK_NOTIN: Std_logic; + signal GNDI: Std_logic; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component inverter + port (I: in Std_logic; Z: out Std_logic); + end component; + component mfflsre + port (D0: in Std_logic; SP: in Std_logic; CK: in Std_logic; + LSR: in Std_logic; Q: out Std_logic); + end component; + begin + WRD_0io_6: mfflsre + port map (D0=>OPOS_dly, SP=>VCCI, CK=>CLK_NOTIN, LSR=>GNDI, Q=>IOLDO_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + CLK_INVERTERIN: inverter + port map (I=>CLK_dly, Z=>CLK_NOTIN); + DRIVEGND: gnd + port map (PWR0=>GNDI); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(OPOS_ipd, OPOS, tipd_OPOS); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(OPOS_dly, OPOS_ipd, tisd_OPOS_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (IOLDO_out, OPOS_dly, CLK_dly) + VARIABLE IOLDO_zd : std_logic := 'X'; + VARIABLE IOLDO_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_OPOS_CLK : x01 := '0'; + VARIABLE OPOS_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => OPOS_dly, + TestSignalName => "OPOS", + TestDelay => tisd_OPOS_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_OPOS_CLK_noedge_negedge, + SetupLow => tsetup_OPOS_CLK_noedge_negedge, + HoldHigh => thold_OPOS_CLK_noedge_negedge, + HoldLow => thold_OPOS_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => OPOS_CLK_TimingDatash, + Violation => tviol_OPOS_CLK, + MsgSeverity => warning); VitalPeriodPulseCheck ( - TestSignal => RD6_ipd, - TestSignalName => "RD6", - Period => tperiod_RD6, - PulseWidthHigh => tpw_RD6_posedge, - PulseWidthLow => tpw_RD6_negedge, - PeriodData => periodcheckinfo_RD6, - Violation => tviol_RD6_RD6, + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, MsgOn => MsgOn, XOn => XOn, HeaderMsg => InstancePath, CheckEnabled => TRUE, @@ -19622,26 +19990,15 @@ END IF; - PADDI_zd := PADDI_out; - RD6_zd := RD6_out; + IOLDO_zd := IOLDO_out; VitalPathDelay01 ( - OutSignal => PADDI, OutSignalName => "PADDI", OutTemp => PADDI_zd, - Paths => (0 => (InputChangeTime => RD6_ipd'last_event, - PathDelay => tpd_RD6_PADDI, + OutSignal => IOLDO, OutSignalName => "IOLDO", OutTemp => IOLDO_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_IOLDO, PathCondition => TRUE)), - GlitchData => PADDI_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01Z ( - OutSignal => RD6, OutSignalName => "RD6", OutTemp => RD6_zd, - Paths => (0 => (InputChangeTime => PADDT_ipd'last_event, - PathDelay => tpd_PADDT_RD6, - PathCondition => TRUE), - 1 => (InputChangeTime => PADDO_ipd'last_event, - PathDelay => tpd_PADDO_RD6, - PathCondition => TRUE)), - GlitchData => RD6_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); + GlitchData => IOLDO_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); END PROCESS; @@ -19661,19 +20018,12 @@ MsgOn : boolean := TRUE; InstancePath : string := "RD_5_B"; + tipd_IOLDO : VitalDelayType01 := (0 ns, 0 ns); tipd_PADDT : VitalDelayType01 := (0 ns, 0 ns); - tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); - tipd_RD5 : VitalDelayType01 := (0 ns, 0 ns); - tpd_PADDT_RD5 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns); - tpd_PADDO_RD5 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns); - tpd_RD5_PADDI : VitalDelayType01 := (0 ns, 0 ns); - tperiod_RD5 : VitalDelayType := 0 ns; - tpw_RD5_posedge : VitalDelayType := 0 ns; - tpw_RD5_negedge : VitalDelayType := 0 ns; - tpd_RD5_RD5 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns)); + tpd_IOLDO_RD5 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns); + tpd_PADDT_RD5 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns)); - port (PADDI: out Std_logic; PADDT: in Std_logic; PADDO: in Std_logic; - RD5: inout Std_logic); + port (IOLDO: in Std_logic; PADDT: in Std_logic; RD5: out Std_logic); ATTRIBUTE Vital_Level0 OF RD_5_B : ENTITY IS TRUE; @@ -19682,49 +20032,170 @@ architecture Structure of RD_5_B is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - signal PADDI_out : std_logic := 'X'; + signal IOLDO_ipd : std_logic := 'X'; signal PADDT_ipd : std_logic := 'X'; - signal PADDO_ipd : std_logic := 'X'; - signal RD5_ipd : std_logic := 'X'; - signal RD5_out : std_logic := 'Z'; + signal RD5_out : std_logic := 'X'; component xo2iobuf - port (I: in Std_logic; T: in Std_logic; Z: out Std_logic; - PAD: out Std_logic; PADI: in Std_logic); + port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); end component; begin - Dout_pad_5_715: xo2iobuf - port map (I=>PADDO_ipd, T=>PADDT_ipd, Z=>PADDI_out, PAD=>RD5_out, - PADI=>RD5_ipd); + RD_pad_5: xo2iobuf + port map (I=>IOLDO_ipd, T=>PADDT_ipd, PAD=>RD5_out); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN + VitalWireDelay(IOLDO_ipd, IOLDO, tipd_IOLDO); VitalWireDelay(PADDT_ipd, PADDT, tipd_PADDT); - VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); - VitalWireDelay(RD5_ipd, RD5, tipd_RD5); END BLOCK; - VitalBehavior : PROCESS (PADDI_out, PADDT_ipd, PADDO_ipd, RD5_ipd, RD5_out) - VARIABLE PADDI_zd : std_logic := 'X'; - VARIABLE PADDI_GlitchData : VitalGlitchDataType; + VitalBehavior : PROCESS (IOLDO_ipd, PADDT_ipd, RD5_out) VARIABLE RD5_zd : std_logic := 'X'; VARIABLE RD5_GlitchData : VitalGlitchDataType; - VARIABLE tviol_RD5_RD5 : x01 := '0'; - VARIABLE periodcheckinfo_RD5 : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN + + END IF; + + RD5_zd := RD5_out; + + VitalPathDelay01Z ( + OutSignal => RD5, OutSignalName => "RD5", OutTemp => RD5_zd, + Paths => (0 => (InputChangeTime => IOLDO_ipd'last_event, + PathDelay => tpd_IOLDO_RD5, + PathCondition => TRUE), + 1 => (InputChangeTime => PADDT_ipd'last_event, + PathDelay => tpd_PADDT_RD5, + PathCondition => TRUE)), + GlitchData => RD5_GlitchData, + Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity RD_5_MGIOL + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity RD_5_MGIOL is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "RD_5_MGIOL"; + + tipd_OPOS : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_IOLDO : VitalDelayType01 := (0 ns, 0 ns); + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns; + ticd_CLK : VitalDelayType := 0 ns; + tisd_OPOS_CLK : VitalDelayType := 0 ns; + tsetup_OPOS_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_OPOS_CLK_noedge_negedge : VitalDelayType := 0 ns); + + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); + + ATTRIBUTE Vital_Level0 OF RD_5_MGIOL : ENTITY IS TRUE; + + end RD_5_MGIOL; + + architecture Structure of RD_5_MGIOL is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal IOLDO_out : std_logic := 'X'; + signal OPOS_ipd : std_logic := 'X'; + signal OPOS_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + + signal VCCI: Std_logic; + signal CLK_NOTIN: Std_logic; + signal GNDI: Std_logic; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component inverter + port (I: in Std_logic; Z: out Std_logic); + end component; + component mfflsre + port (D0: in Std_logic; SP: in Std_logic; CK: in Std_logic; + LSR: in Std_logic; Q: out Std_logic); + end component; + begin + WRD_0io_5: mfflsre + port map (D0=>OPOS_dly, SP=>VCCI, CK=>CLK_NOTIN, LSR=>GNDI, Q=>IOLDO_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + CLK_INVERTERIN: inverter + port map (I=>CLK_dly, Z=>CLK_NOTIN); + DRIVEGND: gnd + port map (PWR0=>GNDI); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(OPOS_ipd, OPOS, tipd_OPOS); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(OPOS_dly, OPOS_ipd, tisd_OPOS_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (IOLDO_out, OPOS_dly, CLK_dly) + VARIABLE IOLDO_zd : std_logic := 'X'; + VARIABLE IOLDO_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_OPOS_CLK : x01 := '0'; + VARIABLE OPOS_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => OPOS_dly, + TestSignalName => "OPOS", + TestDelay => tisd_OPOS_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_OPOS_CLK_noedge_negedge, + SetupLow => tsetup_OPOS_CLK_noedge_negedge, + HoldHigh => thold_OPOS_CLK_noedge_negedge, + HoldLow => thold_OPOS_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => OPOS_CLK_TimingDatash, + Violation => tviol_OPOS_CLK, + MsgSeverity => warning); VitalPeriodPulseCheck ( - TestSignal => RD5_ipd, - TestSignalName => "RD5", - Period => tperiod_RD5, - PulseWidthHigh => tpw_RD5_posedge, - PulseWidthLow => tpw_RD5_negedge, - PeriodData => periodcheckinfo_RD5, - Violation => tviol_RD5_RD5, + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, MsgOn => MsgOn, XOn => XOn, HeaderMsg => InstancePath, CheckEnabled => TRUE, @@ -19732,26 +20203,15 @@ END IF; - PADDI_zd := PADDI_out; - RD5_zd := RD5_out; + IOLDO_zd := IOLDO_out; VitalPathDelay01 ( - OutSignal => PADDI, OutSignalName => "PADDI", OutTemp => PADDI_zd, - Paths => (0 => (InputChangeTime => RD5_ipd'last_event, - PathDelay => tpd_RD5_PADDI, + OutSignal => IOLDO, OutSignalName => "IOLDO", OutTemp => IOLDO_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_IOLDO, PathCondition => TRUE)), - GlitchData => PADDI_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01Z ( - OutSignal => RD5, OutSignalName => "RD5", OutTemp => RD5_zd, - Paths => (0 => (InputChangeTime => PADDT_ipd'last_event, - PathDelay => tpd_PADDT_RD5, - PathCondition => TRUE), - 1 => (InputChangeTime => PADDO_ipd'last_event, - PathDelay => tpd_PADDO_RD5, - PathCondition => TRUE)), - GlitchData => RD5_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); + GlitchData => IOLDO_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); END PROCESS; @@ -19771,19 +20231,12 @@ MsgOn : boolean := TRUE; InstancePath : string := "RD_4_B"; + tipd_IOLDO : VitalDelayType01 := (0 ns, 0 ns); tipd_PADDT : VitalDelayType01 := (0 ns, 0 ns); - tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); - tipd_RD4 : VitalDelayType01 := (0 ns, 0 ns); - tpd_PADDT_RD4 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns); - tpd_PADDO_RD4 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns); - tpd_RD4_PADDI : VitalDelayType01 := (0 ns, 0 ns); - tperiod_RD4 : VitalDelayType := 0 ns; - tpw_RD4_posedge : VitalDelayType := 0 ns; - tpw_RD4_negedge : VitalDelayType := 0 ns; - tpd_RD4_RD4 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns)); + tpd_IOLDO_RD4 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns); + tpd_PADDT_RD4 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns)); - port (PADDI: out Std_logic; PADDT: in Std_logic; PADDO: in Std_logic; - RD4: inout Std_logic); + port (IOLDO: in Std_logic; PADDT: in Std_logic; RD4: out Std_logic); ATTRIBUTE Vital_Level0 OF RD_4_B : ENTITY IS TRUE; @@ -19792,49 +20245,170 @@ architecture Structure of RD_4_B is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - signal PADDI_out : std_logic := 'X'; + signal IOLDO_ipd : std_logic := 'X'; signal PADDT_ipd : std_logic := 'X'; - signal PADDO_ipd : std_logic := 'X'; - signal RD4_ipd : std_logic := 'X'; - signal RD4_out : std_logic := 'Z'; + signal RD4_out : std_logic := 'X'; component xo2iobuf - port (I: in Std_logic; T: in Std_logic; Z: out Std_logic; - PAD: out Std_logic; PADI: in Std_logic); + port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); end component; begin - Dout_pad_4_716: xo2iobuf - port map (I=>PADDO_ipd, T=>PADDT_ipd, Z=>PADDI_out, PAD=>RD4_out, - PADI=>RD4_ipd); + RD_pad_4: xo2iobuf + port map (I=>IOLDO_ipd, T=>PADDT_ipd, PAD=>RD4_out); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN + VitalWireDelay(IOLDO_ipd, IOLDO, tipd_IOLDO); VitalWireDelay(PADDT_ipd, PADDT, tipd_PADDT); - VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); - VitalWireDelay(RD4_ipd, RD4, tipd_RD4); END BLOCK; - VitalBehavior : PROCESS (PADDI_out, PADDT_ipd, PADDO_ipd, RD4_ipd, RD4_out) - VARIABLE PADDI_zd : std_logic := 'X'; - VARIABLE PADDI_GlitchData : VitalGlitchDataType; + VitalBehavior : PROCESS (IOLDO_ipd, PADDT_ipd, RD4_out) VARIABLE RD4_zd : std_logic := 'X'; VARIABLE RD4_GlitchData : VitalGlitchDataType; - VARIABLE tviol_RD4_RD4 : x01 := '0'; - VARIABLE periodcheckinfo_RD4 : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN + + END IF; + + RD4_zd := RD4_out; + + VitalPathDelay01Z ( + OutSignal => RD4, OutSignalName => "RD4", OutTemp => RD4_zd, + Paths => (0 => (InputChangeTime => IOLDO_ipd'last_event, + PathDelay => tpd_IOLDO_RD4, + PathCondition => TRUE), + 1 => (InputChangeTime => PADDT_ipd'last_event, + PathDelay => tpd_PADDT_RD4, + PathCondition => TRUE)), + GlitchData => RD4_GlitchData, + Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity RD_4_MGIOL + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity RD_4_MGIOL is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "RD_4_MGIOL"; + + tipd_OPOS : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_IOLDO : VitalDelayType01 := (0 ns, 0 ns); + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns; + ticd_CLK : VitalDelayType := 0 ns; + tisd_OPOS_CLK : VitalDelayType := 0 ns; + tsetup_OPOS_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_OPOS_CLK_noedge_negedge : VitalDelayType := 0 ns); + + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); + + ATTRIBUTE Vital_Level0 OF RD_4_MGIOL : ENTITY IS TRUE; + + end RD_4_MGIOL; + + architecture Structure of RD_4_MGIOL is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal IOLDO_out : std_logic := 'X'; + signal OPOS_ipd : std_logic := 'X'; + signal OPOS_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + + signal VCCI: Std_logic; + signal CLK_NOTIN: Std_logic; + signal GNDI: Std_logic; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component inverter + port (I: in Std_logic; Z: out Std_logic); + end component; + component mfflsre + port (D0: in Std_logic; SP: in Std_logic; CK: in Std_logic; + LSR: in Std_logic; Q: out Std_logic); + end component; + begin + WRD_0io_4: mfflsre + port map (D0=>OPOS_dly, SP=>VCCI, CK=>CLK_NOTIN, LSR=>GNDI, Q=>IOLDO_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + CLK_INVERTERIN: inverter + port map (I=>CLK_dly, Z=>CLK_NOTIN); + DRIVEGND: gnd + port map (PWR0=>GNDI); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(OPOS_ipd, OPOS, tipd_OPOS); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(OPOS_dly, OPOS_ipd, tisd_OPOS_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (IOLDO_out, OPOS_dly, CLK_dly) + VARIABLE IOLDO_zd : std_logic := 'X'; + VARIABLE IOLDO_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_OPOS_CLK : x01 := '0'; + VARIABLE OPOS_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => OPOS_dly, + TestSignalName => "OPOS", + TestDelay => tisd_OPOS_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_OPOS_CLK_noedge_negedge, + SetupLow => tsetup_OPOS_CLK_noedge_negedge, + HoldHigh => thold_OPOS_CLK_noedge_negedge, + HoldLow => thold_OPOS_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => OPOS_CLK_TimingDatash, + Violation => tviol_OPOS_CLK, + MsgSeverity => warning); VitalPeriodPulseCheck ( - TestSignal => RD4_ipd, - TestSignalName => "RD4", - Period => tperiod_RD4, - PulseWidthHigh => tpw_RD4_posedge, - PulseWidthLow => tpw_RD4_negedge, - PeriodData => periodcheckinfo_RD4, - Violation => tviol_RD4_RD4, + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, MsgOn => MsgOn, XOn => XOn, HeaderMsg => InstancePath, CheckEnabled => TRUE, @@ -19842,26 +20416,15 @@ END IF; - PADDI_zd := PADDI_out; - RD4_zd := RD4_out; + IOLDO_zd := IOLDO_out; VitalPathDelay01 ( - OutSignal => PADDI, OutSignalName => "PADDI", OutTemp => PADDI_zd, - Paths => (0 => (InputChangeTime => RD4_ipd'last_event, - PathDelay => tpd_RD4_PADDI, + OutSignal => IOLDO, OutSignalName => "IOLDO", OutTemp => IOLDO_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_IOLDO, PathCondition => TRUE)), - GlitchData => PADDI_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01Z ( - OutSignal => RD4, OutSignalName => "RD4", OutTemp => RD4_zd, - Paths => (0 => (InputChangeTime => PADDT_ipd'last_event, - PathDelay => tpd_PADDT_RD4, - PathCondition => TRUE), - 1 => (InputChangeTime => PADDO_ipd'last_event, - PathDelay => tpd_PADDO_RD4, - PathCondition => TRUE)), - GlitchData => RD4_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); + GlitchData => IOLDO_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); END PROCESS; @@ -19881,19 +20444,12 @@ MsgOn : boolean := TRUE; InstancePath : string := "RD_3_B"; + tipd_IOLDO : VitalDelayType01 := (0 ns, 0 ns); tipd_PADDT : VitalDelayType01 := (0 ns, 0 ns); - tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); - tipd_RD3 : VitalDelayType01 := (0 ns, 0 ns); - tpd_PADDT_RD3 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns); - tpd_PADDO_RD3 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns); - tpd_RD3_PADDI : VitalDelayType01 := (0 ns, 0 ns); - tperiod_RD3 : VitalDelayType := 0 ns; - tpw_RD3_posedge : VitalDelayType := 0 ns; - tpw_RD3_negedge : VitalDelayType := 0 ns; - tpd_RD3_RD3 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns)); + tpd_IOLDO_RD3 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns); + tpd_PADDT_RD3 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns)); - port (PADDI: out Std_logic; PADDT: in Std_logic; PADDO: in Std_logic; - RD3: inout Std_logic); + port (IOLDO: in Std_logic; PADDT: in Std_logic; RD3: out Std_logic); ATTRIBUTE Vital_Level0 OF RD_3_B : ENTITY IS TRUE; @@ -19902,49 +20458,170 @@ architecture Structure of RD_3_B is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - signal PADDI_out : std_logic := 'X'; + signal IOLDO_ipd : std_logic := 'X'; signal PADDT_ipd : std_logic := 'X'; - signal PADDO_ipd : std_logic := 'X'; - signal RD3_ipd : std_logic := 'X'; - signal RD3_out : std_logic := 'Z'; + signal RD3_out : std_logic := 'X'; component xo2iobuf - port (I: in Std_logic; T: in Std_logic; Z: out Std_logic; - PAD: out Std_logic; PADI: in Std_logic); + port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); end component; begin - Dout_pad_3_717: xo2iobuf - port map (I=>PADDO_ipd, T=>PADDT_ipd, Z=>PADDI_out, PAD=>RD3_out, - PADI=>RD3_ipd); + RD_pad_3: xo2iobuf + port map (I=>IOLDO_ipd, T=>PADDT_ipd, PAD=>RD3_out); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN + VitalWireDelay(IOLDO_ipd, IOLDO, tipd_IOLDO); VitalWireDelay(PADDT_ipd, PADDT, tipd_PADDT); - VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); - VitalWireDelay(RD3_ipd, RD3, tipd_RD3); END BLOCK; - VitalBehavior : PROCESS (PADDI_out, PADDT_ipd, PADDO_ipd, RD3_ipd, RD3_out) - VARIABLE PADDI_zd : std_logic := 'X'; - VARIABLE PADDI_GlitchData : VitalGlitchDataType; + VitalBehavior : PROCESS (IOLDO_ipd, PADDT_ipd, RD3_out) VARIABLE RD3_zd : std_logic := 'X'; VARIABLE RD3_GlitchData : VitalGlitchDataType; - VARIABLE tviol_RD3_RD3 : x01 := '0'; - VARIABLE periodcheckinfo_RD3 : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN + + END IF; + + RD3_zd := RD3_out; + + VitalPathDelay01Z ( + OutSignal => RD3, OutSignalName => "RD3", OutTemp => RD3_zd, + Paths => (0 => (InputChangeTime => IOLDO_ipd'last_event, + PathDelay => tpd_IOLDO_RD3, + PathCondition => TRUE), + 1 => (InputChangeTime => PADDT_ipd'last_event, + PathDelay => tpd_PADDT_RD3, + PathCondition => TRUE)), + GlitchData => RD3_GlitchData, + Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity RD_3_MGIOL + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity RD_3_MGIOL is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "RD_3_MGIOL"; + + tipd_OPOS : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_IOLDO : VitalDelayType01 := (0 ns, 0 ns); + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns; + ticd_CLK : VitalDelayType := 0 ns; + tisd_OPOS_CLK : VitalDelayType := 0 ns; + tsetup_OPOS_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_OPOS_CLK_noedge_negedge : VitalDelayType := 0 ns); + + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); + + ATTRIBUTE Vital_Level0 OF RD_3_MGIOL : ENTITY IS TRUE; + + end RD_3_MGIOL; + + architecture Structure of RD_3_MGIOL is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal IOLDO_out : std_logic := 'X'; + signal OPOS_ipd : std_logic := 'X'; + signal OPOS_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + + signal VCCI: Std_logic; + signal CLK_NOTIN: Std_logic; + signal GNDI: Std_logic; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component inverter + port (I: in Std_logic; Z: out Std_logic); + end component; + component mfflsre + port (D0: in Std_logic; SP: in Std_logic; CK: in Std_logic; + LSR: in Std_logic; Q: out Std_logic); + end component; + begin + WRD_0io_3: mfflsre + port map (D0=>OPOS_dly, SP=>VCCI, CK=>CLK_NOTIN, LSR=>GNDI, Q=>IOLDO_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + CLK_INVERTERIN: inverter + port map (I=>CLK_dly, Z=>CLK_NOTIN); + DRIVEGND: gnd + port map (PWR0=>GNDI); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(OPOS_ipd, OPOS, tipd_OPOS); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(OPOS_dly, OPOS_ipd, tisd_OPOS_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (IOLDO_out, OPOS_dly, CLK_dly) + VARIABLE IOLDO_zd : std_logic := 'X'; + VARIABLE IOLDO_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_OPOS_CLK : x01 := '0'; + VARIABLE OPOS_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => OPOS_dly, + TestSignalName => "OPOS", + TestDelay => tisd_OPOS_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_OPOS_CLK_noedge_negedge, + SetupLow => tsetup_OPOS_CLK_noedge_negedge, + HoldHigh => thold_OPOS_CLK_noedge_negedge, + HoldLow => thold_OPOS_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => OPOS_CLK_TimingDatash, + Violation => tviol_OPOS_CLK, + MsgSeverity => warning); VitalPeriodPulseCheck ( - TestSignal => RD3_ipd, - TestSignalName => "RD3", - Period => tperiod_RD3, - PulseWidthHigh => tpw_RD3_posedge, - PulseWidthLow => tpw_RD3_negedge, - PeriodData => periodcheckinfo_RD3, - Violation => tviol_RD3_RD3, + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, MsgOn => MsgOn, XOn => XOn, HeaderMsg => InstancePath, CheckEnabled => TRUE, @@ -19952,26 +20629,15 @@ END IF; - PADDI_zd := PADDI_out; - RD3_zd := RD3_out; + IOLDO_zd := IOLDO_out; VitalPathDelay01 ( - OutSignal => PADDI, OutSignalName => "PADDI", OutTemp => PADDI_zd, - Paths => (0 => (InputChangeTime => RD3_ipd'last_event, - PathDelay => tpd_RD3_PADDI, + OutSignal => IOLDO, OutSignalName => "IOLDO", OutTemp => IOLDO_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_IOLDO, PathCondition => TRUE)), - GlitchData => PADDI_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01Z ( - OutSignal => RD3, OutSignalName => "RD3", OutTemp => RD3_zd, - Paths => (0 => (InputChangeTime => PADDT_ipd'last_event, - PathDelay => tpd_PADDT_RD3, - PathCondition => TRUE), - 1 => (InputChangeTime => PADDO_ipd'last_event, - PathDelay => tpd_PADDO_RD3, - PathCondition => TRUE)), - GlitchData => RD3_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); + GlitchData => IOLDO_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); END PROCESS; @@ -19991,19 +20657,12 @@ MsgOn : boolean := TRUE; InstancePath : string := "RD_2_B"; + tipd_IOLDO : VitalDelayType01 := (0 ns, 0 ns); tipd_PADDT : VitalDelayType01 := (0 ns, 0 ns); - tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); - tipd_RD2 : VitalDelayType01 := (0 ns, 0 ns); - tpd_PADDT_RD2 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns); - tpd_PADDO_RD2 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns); - tpd_RD2_PADDI : VitalDelayType01 := (0 ns, 0 ns); - tperiod_RD2 : VitalDelayType := 0 ns; - tpw_RD2_posedge : VitalDelayType := 0 ns; - tpw_RD2_negedge : VitalDelayType := 0 ns; - tpd_RD2_RD2 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns)); + tpd_IOLDO_RD2 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns); + tpd_PADDT_RD2 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns)); - port (PADDI: out Std_logic; PADDT: in Std_logic; PADDO: in Std_logic; - RD2: inout Std_logic); + port (IOLDO: in Std_logic; PADDT: in Std_logic; RD2: out Std_logic); ATTRIBUTE Vital_Level0 OF RD_2_B : ENTITY IS TRUE; @@ -20012,49 +20671,170 @@ architecture Structure of RD_2_B is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - signal PADDI_out : std_logic := 'X'; + signal IOLDO_ipd : std_logic := 'X'; signal PADDT_ipd : std_logic := 'X'; - signal PADDO_ipd : std_logic := 'X'; - signal RD2_ipd : std_logic := 'X'; - signal RD2_out : std_logic := 'Z'; + signal RD2_out : std_logic := 'X'; component xo2iobuf - port (I: in Std_logic; T: in Std_logic; Z: out Std_logic; - PAD: out Std_logic; PADI: in Std_logic); + port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); end component; begin - Dout_pad_2_718: xo2iobuf - port map (I=>PADDO_ipd, T=>PADDT_ipd, Z=>PADDI_out, PAD=>RD2_out, - PADI=>RD2_ipd); + RD_pad_2: xo2iobuf + port map (I=>IOLDO_ipd, T=>PADDT_ipd, PAD=>RD2_out); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN + VitalWireDelay(IOLDO_ipd, IOLDO, tipd_IOLDO); VitalWireDelay(PADDT_ipd, PADDT, tipd_PADDT); - VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); - VitalWireDelay(RD2_ipd, RD2, tipd_RD2); END BLOCK; - VitalBehavior : PROCESS (PADDI_out, PADDT_ipd, PADDO_ipd, RD2_ipd, RD2_out) - VARIABLE PADDI_zd : std_logic := 'X'; - VARIABLE PADDI_GlitchData : VitalGlitchDataType; + VitalBehavior : PROCESS (IOLDO_ipd, PADDT_ipd, RD2_out) VARIABLE RD2_zd : std_logic := 'X'; VARIABLE RD2_GlitchData : VitalGlitchDataType; - VARIABLE tviol_RD2_RD2 : x01 := '0'; - VARIABLE periodcheckinfo_RD2 : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN + + END IF; + + RD2_zd := RD2_out; + + VitalPathDelay01Z ( + OutSignal => RD2, OutSignalName => "RD2", OutTemp => RD2_zd, + Paths => (0 => (InputChangeTime => IOLDO_ipd'last_event, + PathDelay => tpd_IOLDO_RD2, + PathCondition => TRUE), + 1 => (InputChangeTime => PADDT_ipd'last_event, + PathDelay => tpd_PADDT_RD2, + PathCondition => TRUE)), + GlitchData => RD2_GlitchData, + Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity RD_2_MGIOL + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity RD_2_MGIOL is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "RD_2_MGIOL"; + + tipd_OPOS : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_IOLDO : VitalDelayType01 := (0 ns, 0 ns); + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns; + ticd_CLK : VitalDelayType := 0 ns; + tisd_OPOS_CLK : VitalDelayType := 0 ns; + tsetup_OPOS_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_OPOS_CLK_noedge_negedge : VitalDelayType := 0 ns); + + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); + + ATTRIBUTE Vital_Level0 OF RD_2_MGIOL : ENTITY IS TRUE; + + end RD_2_MGIOL; + + architecture Structure of RD_2_MGIOL is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal IOLDO_out : std_logic := 'X'; + signal OPOS_ipd : std_logic := 'X'; + signal OPOS_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + + signal VCCI: Std_logic; + signal CLK_NOTIN: Std_logic; + signal GNDI: Std_logic; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component inverter + port (I: in Std_logic; Z: out Std_logic); + end component; + component mfflsre + port (D0: in Std_logic; SP: in Std_logic; CK: in Std_logic; + LSR: in Std_logic; Q: out Std_logic); + end component; + begin + WRD_0io_2: mfflsre + port map (D0=>OPOS_dly, SP=>VCCI, CK=>CLK_NOTIN, LSR=>GNDI, Q=>IOLDO_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + CLK_INVERTERIN: inverter + port map (I=>CLK_dly, Z=>CLK_NOTIN); + DRIVEGND: gnd + port map (PWR0=>GNDI); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(OPOS_ipd, OPOS, tipd_OPOS); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(OPOS_dly, OPOS_ipd, tisd_OPOS_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (IOLDO_out, OPOS_dly, CLK_dly) + VARIABLE IOLDO_zd : std_logic := 'X'; + VARIABLE IOLDO_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_OPOS_CLK : x01 := '0'; + VARIABLE OPOS_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => OPOS_dly, + TestSignalName => "OPOS", + TestDelay => tisd_OPOS_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_OPOS_CLK_noedge_negedge, + SetupLow => tsetup_OPOS_CLK_noedge_negedge, + HoldHigh => thold_OPOS_CLK_noedge_negedge, + HoldLow => thold_OPOS_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => OPOS_CLK_TimingDatash, + Violation => tviol_OPOS_CLK, + MsgSeverity => warning); VitalPeriodPulseCheck ( - TestSignal => RD2_ipd, - TestSignalName => "RD2", - Period => tperiod_RD2, - PulseWidthHigh => tpw_RD2_posedge, - PulseWidthLow => tpw_RD2_negedge, - PeriodData => periodcheckinfo_RD2, - Violation => tviol_RD2_RD2, + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, MsgOn => MsgOn, XOn => XOn, HeaderMsg => InstancePath, CheckEnabled => TRUE, @@ -20062,26 +20842,15 @@ END IF; - PADDI_zd := PADDI_out; - RD2_zd := RD2_out; + IOLDO_zd := IOLDO_out; VitalPathDelay01 ( - OutSignal => PADDI, OutSignalName => "PADDI", OutTemp => PADDI_zd, - Paths => (0 => (InputChangeTime => RD2_ipd'last_event, - PathDelay => tpd_RD2_PADDI, + OutSignal => IOLDO, OutSignalName => "IOLDO", OutTemp => IOLDO_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_IOLDO, PathCondition => TRUE)), - GlitchData => PADDI_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01Z ( - OutSignal => RD2, OutSignalName => "RD2", OutTemp => RD2_zd, - Paths => (0 => (InputChangeTime => PADDT_ipd'last_event, - PathDelay => tpd_PADDT_RD2, - PathCondition => TRUE), - 1 => (InputChangeTime => PADDO_ipd'last_event, - PathDelay => tpd_PADDO_RD2, - PathCondition => TRUE)), - GlitchData => RD2_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); + GlitchData => IOLDO_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); END PROCESS; @@ -20101,19 +20870,12 @@ MsgOn : boolean := TRUE; InstancePath : string := "RD_1_B"; + tipd_IOLDO : VitalDelayType01 := (0 ns, 0 ns); tipd_PADDT : VitalDelayType01 := (0 ns, 0 ns); - tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); - tipd_RD1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_PADDT_RD1 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns); - tpd_PADDO_RD1 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns); - tpd_RD1_PADDI : VitalDelayType01 := (0 ns, 0 ns); - tperiod_RD1 : VitalDelayType := 0 ns; - tpw_RD1_posedge : VitalDelayType := 0 ns; - tpw_RD1_negedge : VitalDelayType := 0 ns; - tpd_RD1_RD1 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns)); + tpd_IOLDO_RD1 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns); + tpd_PADDT_RD1 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns)); - port (PADDI: out Std_logic; PADDT: in Std_logic; PADDO: in Std_logic; - RD1: inout Std_logic); + port (IOLDO: in Std_logic; PADDT: in Std_logic; RD1: out Std_logic); ATTRIBUTE Vital_Level0 OF RD_1_B : ENTITY IS TRUE; @@ -20122,73 +20884,44 @@ architecture Structure of RD_1_B is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - signal PADDI_out : std_logic := 'X'; + signal IOLDO_ipd : std_logic := 'X'; signal PADDT_ipd : std_logic := 'X'; - signal PADDO_ipd : std_logic := 'X'; - signal RD1_ipd : std_logic := 'X'; - signal RD1_out : std_logic := 'Z'; + signal RD1_out : std_logic := 'X'; component xo2iobuf - port (I: in Std_logic; T: in Std_logic; Z: out Std_logic; - PAD: out Std_logic; PADI: in Std_logic); + port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); end component; begin - Dout_pad_1_719: xo2iobuf - port map (I=>PADDO_ipd, T=>PADDT_ipd, Z=>PADDI_out, PAD=>RD1_out, - PADI=>RD1_ipd); + RD_pad_1: xo2iobuf + port map (I=>IOLDO_ipd, T=>PADDT_ipd, PAD=>RD1_out); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN + VitalWireDelay(IOLDO_ipd, IOLDO, tipd_IOLDO); VitalWireDelay(PADDT_ipd, PADDT, tipd_PADDT); - VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); - VitalWireDelay(RD1_ipd, RD1, tipd_RD1); END BLOCK; - VitalBehavior : PROCESS (PADDI_out, PADDT_ipd, PADDO_ipd, RD1_ipd, RD1_out) - VARIABLE PADDI_zd : std_logic := 'X'; - VARIABLE PADDI_GlitchData : VitalGlitchDataType; + VitalBehavior : PROCESS (IOLDO_ipd, PADDT_ipd, RD1_out) VARIABLE RD1_zd : std_logic := 'X'; VARIABLE RD1_GlitchData : VitalGlitchDataType; - VARIABLE tviol_RD1_RD1 : x01 := '0'; - VARIABLE periodcheckinfo_RD1 : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN - VitalPeriodPulseCheck ( - TestSignal => RD1_ipd, - TestSignalName => "RD1", - Period => tperiod_RD1, - PulseWidthHigh => tpw_RD1_posedge, - PulseWidthLow => tpw_RD1_negedge, - PeriodData => periodcheckinfo_RD1, - Violation => tviol_RD1_RD1, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); END IF; - PADDI_zd := PADDI_out; RD1_zd := RD1_out; - VitalPathDelay01 ( - OutSignal => PADDI, OutSignalName => "PADDI", OutTemp => PADDI_zd, - Paths => (0 => (InputChangeTime => RD1_ipd'last_event, - PathDelay => tpd_RD1_PADDI, - PathCondition => TRUE)), - GlitchData => PADDI_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); VitalPathDelay01Z ( OutSignal => RD1, OutSignalName => "RD1", OutTemp => RD1_zd, - Paths => (0 => (InputChangeTime => PADDT_ipd'last_event, - PathDelay => tpd_PADDT_RD1, + Paths => (0 => (InputChangeTime => IOLDO_ipd'last_event, + PathDelay => tpd_IOLDO_RD1, PathCondition => TRUE), - 1 => (InputChangeTime => PADDO_ipd'last_event, - PathDelay => tpd_PADDO_RD1, + 1 => (InputChangeTime => PADDT_ipd'last_event, + PathDelay => tpd_PADDT_RD1, PathCondition => TRUE)), GlitchData => RD1_GlitchData, Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); @@ -20197,84 +20930,124 @@ end Structure; --- entity RD_0_B +-- entity RD_1_MGIOL library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity RD_0_B is + entity RD_1_MGIOL is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "RD_0_B"; + InstancePath : string := "RD_1_MGIOL"; - tipd_PADDT : VitalDelayType01 := (0 ns, 0 ns); - tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); - tipd_RD0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_PADDT_RD0 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns); - tpd_PADDO_RD0 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns); - tpd_RD0_PADDI : VitalDelayType01 := (0 ns, 0 ns); - tperiod_RD0 : VitalDelayType := 0 ns; - tpw_RD0_posedge : VitalDelayType := 0 ns; - tpw_RD0_negedge : VitalDelayType := 0 ns; - tpd_RD0_RD0 : VitalDelayType01Z := (0 ns, 0 ns, 0 ns , 0 ns, 0 ns, 0 ns)); + tipd_OPOS : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_IOLDO : VitalDelayType01 := (0 ns, 0 ns); + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns; + ticd_CLK : VitalDelayType := 0 ns; + tisd_OPOS_CLK : VitalDelayType := 0 ns; + tsetup_OPOS_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_OPOS_CLK_noedge_negedge : VitalDelayType := 0 ns); - port (PADDI: out Std_logic; PADDT: in Std_logic; PADDO: in Std_logic; - RD0: inout Std_logic); + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); - ATTRIBUTE Vital_Level0 OF RD_0_B : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF RD_1_MGIOL : ENTITY IS TRUE; - end RD_0_B; + end RD_1_MGIOL; - architecture Structure of RD_0_B is + architecture Structure of RD_1_MGIOL is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - signal PADDI_out : std_logic := 'X'; - signal PADDT_ipd : std_logic := 'X'; - signal PADDO_ipd : std_logic := 'X'; - signal RD0_ipd : std_logic := 'X'; - signal RD0_out : std_logic := 'Z'; + signal IOLDO_out : std_logic := 'X'; + signal OPOS_ipd : std_logic := 'X'; + signal OPOS_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; - component xo2iobuf - port (I: in Std_logic; T: in Std_logic; Z: out Std_logic; - PAD: out Std_logic; PADI: in Std_logic); + signal VCCI: Std_logic; + signal CLK_NOTIN: Std_logic; + signal GNDI: Std_logic; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component inverter + port (I: in Std_logic; Z: out Std_logic); + end component; + component mfflsre + port (D0: in Std_logic; SP: in Std_logic; CK: in Std_logic; + LSR: in Std_logic; Q: out Std_logic); end component; begin - Dout_pad_0_720: xo2iobuf - port map (I=>PADDO_ipd, T=>PADDT_ipd, Z=>PADDI_out, PAD=>RD0_out, - PADI=>RD0_ipd); + WRD_0io_1: mfflsre + port map (D0=>OPOS_dly, SP=>VCCI, CK=>CLK_NOTIN, LSR=>GNDI, Q=>IOLDO_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + CLK_INVERTERIN: inverter + port map (I=>CLK_dly, Z=>CLK_NOTIN); + DRIVEGND: gnd + port map (PWR0=>GNDI); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN - VitalWireDelay(PADDT_ipd, PADDT, tipd_PADDT); - VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); - VitalWireDelay(RD0_ipd, RD0, tipd_RD0); + VitalWireDelay(OPOS_ipd, OPOS, tipd_OPOS); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); END BLOCK; - VitalBehavior : PROCESS (PADDI_out, PADDT_ipd, PADDO_ipd, RD0_ipd, RD0_out) - VARIABLE PADDI_zd : std_logic := 'X'; - VARIABLE PADDI_GlitchData : VitalGlitchDataType; - VARIABLE RD0_zd : std_logic := 'X'; - VARIABLE RD0_GlitchData : VitalGlitchDataType; + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(OPOS_dly, OPOS_ipd, tisd_OPOS_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; - VARIABLE tviol_RD0_RD0 : x01 := '0'; - VARIABLE periodcheckinfo_RD0 : VitalPeriodDataType; + VitalBehavior : PROCESS (IOLDO_out, OPOS_dly, CLK_dly) + VARIABLE IOLDO_zd : std_logic := 'X'; + VARIABLE IOLDO_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_OPOS_CLK : x01 := '0'; + VARIABLE OPOS_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => OPOS_dly, + TestSignalName => "OPOS", + TestDelay => tisd_OPOS_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_OPOS_CLK_noedge_negedge, + SetupLow => tsetup_OPOS_CLK_noedge_negedge, + HoldHigh => thold_OPOS_CLK_noedge_negedge, + HoldLow => thold_OPOS_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => OPOS_CLK_TimingDatash, + Violation => tviol_OPOS_CLK, + MsgSeverity => warning); VitalPeriodPulseCheck ( - TestSignal => RD0_ipd, - TestSignalName => "RD0", - Period => tperiod_RD0, - PulseWidthHigh => tpw_RD0_posedge, - PulseWidthLow => tpw_RD0_negedge, - PeriodData => periodcheckinfo_RD0, - Violation => tviol_RD0_RD0, + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, MsgOn => MsgOn, XOn => XOn, HeaderMsg => InstancePath, CheckEnabled => TRUE, @@ -20282,848 +21055,15 @@ END IF; - PADDI_zd := PADDI_out; - RD0_zd := RD0_out; + IOLDO_zd := IOLDO_out; VitalPathDelay01 ( - OutSignal => PADDI, OutSignalName => "PADDI", OutTemp => PADDI_zd, - Paths => (0 => (InputChangeTime => RD0_ipd'last_event, - PathDelay => tpd_RD0_PADDI, + OutSignal => IOLDO, OutSignalName => "IOLDO", OutTemp => IOLDO_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_IOLDO, PathCondition => TRUE)), - GlitchData => PADDI_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); - VitalPathDelay01Z ( - OutSignal => RD0, OutSignalName => "RD0", OutTemp => RD0_zd, - Paths => (0 => (InputChangeTime => PADDT_ipd'last_event, - PathDelay => tpd_PADDT_RD0, - PathCondition => TRUE), - 1 => (InputChangeTime => PADDO_ipd'last_event, - PathDelay => tpd_PADDO_RD0, - PathCondition => TRUE)), - GlitchData => RD0_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity xo2iobuf0068 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity xo2iobuf0068 is - port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); - - ATTRIBUTE Vital_Level0 OF xo2iobuf0068 : ENTITY IS TRUE; - - end xo2iobuf0068; - - architecture Structure of xo2iobuf0068 is - begin - INST5: OBZPD - port map (I=>I, T=>T, O=>PAD); - end Structure; - --- entity Dout_7_B - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity Dout_7_B is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "Dout_7_B"; - - tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); - tpd_PADDO_Dout7 : VitalDelayType01 := (0 ns, 0 ns)); - - port (PADDO: in Std_logic; Dout7: out Std_logic); - - ATTRIBUTE Vital_Level0 OF Dout_7_B : ENTITY IS TRUE; - - end Dout_7_B; - - architecture Structure of Dout_7_B is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal PADDO_ipd : std_logic := 'X'; - signal Dout7_out : std_logic := 'X'; - - signal GNDI: Std_logic; - component gnd - port (PWR0: out Std_logic); - end component; - component xo2iobuf0068 - port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); - end component; - begin - Dout_pad_7: xo2iobuf0068 - port map (I=>PADDO_ipd, T=>GNDI, PAD=>Dout7_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); - END BLOCK; - - VitalBehavior : PROCESS (PADDO_ipd, Dout7_out) - VARIABLE Dout7_zd : std_logic := 'X'; - VARIABLE Dout7_GlitchData : VitalGlitchDataType; - - - BEGIN - - IF (TimingChecksOn) THEN - - END IF; - - Dout7_zd := Dout7_out; - - VitalPathDelay01 ( - OutSignal => Dout7, OutSignalName => "Dout7", OutTemp => Dout7_zd, - Paths => (0 => (InputChangeTime => PADDO_ipd'last_event, - PathDelay => tpd_PADDO_Dout7, - PathCondition => TRUE)), - GlitchData => Dout7_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity Dout_6_B - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity Dout_6_B is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "Dout_6_B"; - - tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); - tpd_PADDO_Dout6 : VitalDelayType01 := (0 ns, 0 ns)); - - port (PADDO: in Std_logic; Dout6: out Std_logic); - - ATTRIBUTE Vital_Level0 OF Dout_6_B : ENTITY IS TRUE; - - end Dout_6_B; - - architecture Structure of Dout_6_B is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal PADDO_ipd : std_logic := 'X'; - signal Dout6_out : std_logic := 'X'; - - signal GNDI: Std_logic; - component gnd - port (PWR0: out Std_logic); - end component; - component xo2iobuf0068 - port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); - end component; - begin - Dout_pad_6: xo2iobuf0068 - port map (I=>PADDO_ipd, T=>GNDI, PAD=>Dout6_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); - END BLOCK; - - VitalBehavior : PROCESS (PADDO_ipd, Dout6_out) - VARIABLE Dout6_zd : std_logic := 'X'; - VARIABLE Dout6_GlitchData : VitalGlitchDataType; - - - BEGIN - - IF (TimingChecksOn) THEN - - END IF; - - Dout6_zd := Dout6_out; - - VitalPathDelay01 ( - OutSignal => Dout6, OutSignalName => "Dout6", OutTemp => Dout6_zd, - Paths => (0 => (InputChangeTime => PADDO_ipd'last_event, - PathDelay => tpd_PADDO_Dout6, - PathCondition => TRUE)), - GlitchData => Dout6_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity Dout_5_B - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity Dout_5_B is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "Dout_5_B"; - - tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); - tpd_PADDO_Dout5 : VitalDelayType01 := (0 ns, 0 ns)); - - port (PADDO: in Std_logic; Dout5: out Std_logic); - - ATTRIBUTE Vital_Level0 OF Dout_5_B : ENTITY IS TRUE; - - end Dout_5_B; - - architecture Structure of Dout_5_B is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal PADDO_ipd : std_logic := 'X'; - signal Dout5_out : std_logic := 'X'; - - signal GNDI: Std_logic; - component gnd - port (PWR0: out Std_logic); - end component; - component xo2iobuf0068 - port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); - end component; - begin - Dout_pad_5: xo2iobuf0068 - port map (I=>PADDO_ipd, T=>GNDI, PAD=>Dout5_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); - END BLOCK; - - VitalBehavior : PROCESS (PADDO_ipd, Dout5_out) - VARIABLE Dout5_zd : std_logic := 'X'; - VARIABLE Dout5_GlitchData : VitalGlitchDataType; - - - BEGIN - - IF (TimingChecksOn) THEN - - END IF; - - Dout5_zd := Dout5_out; - - VitalPathDelay01 ( - OutSignal => Dout5, OutSignalName => "Dout5", OutTemp => Dout5_zd, - Paths => (0 => (InputChangeTime => PADDO_ipd'last_event, - PathDelay => tpd_PADDO_Dout5, - PathCondition => TRUE)), - GlitchData => Dout5_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity Dout_4_B - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity Dout_4_B is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "Dout_4_B"; - - tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); - tpd_PADDO_Dout4 : VitalDelayType01 := (0 ns, 0 ns)); - - port (PADDO: in Std_logic; Dout4: out Std_logic); - - ATTRIBUTE Vital_Level0 OF Dout_4_B : ENTITY IS TRUE; - - end Dout_4_B; - - architecture Structure of Dout_4_B is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal PADDO_ipd : std_logic := 'X'; - signal Dout4_out : std_logic := 'X'; - - signal GNDI: Std_logic; - component gnd - port (PWR0: out Std_logic); - end component; - component xo2iobuf0068 - port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); - end component; - begin - Dout_pad_4: xo2iobuf0068 - port map (I=>PADDO_ipd, T=>GNDI, PAD=>Dout4_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); - END BLOCK; - - VitalBehavior : PROCESS (PADDO_ipd, Dout4_out) - VARIABLE Dout4_zd : std_logic := 'X'; - VARIABLE Dout4_GlitchData : VitalGlitchDataType; - - - BEGIN - - IF (TimingChecksOn) THEN - - END IF; - - Dout4_zd := Dout4_out; - - VitalPathDelay01 ( - OutSignal => Dout4, OutSignalName => "Dout4", OutTemp => Dout4_zd, - Paths => (0 => (InputChangeTime => PADDO_ipd'last_event, - PathDelay => tpd_PADDO_Dout4, - PathCondition => TRUE)), - GlitchData => Dout4_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity Dout_3_B - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity Dout_3_B is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "Dout_3_B"; - - tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); - tpd_PADDO_Dout3 : VitalDelayType01 := (0 ns, 0 ns)); - - port (PADDO: in Std_logic; Dout3: out Std_logic); - - ATTRIBUTE Vital_Level0 OF Dout_3_B : ENTITY IS TRUE; - - end Dout_3_B; - - architecture Structure of Dout_3_B is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal PADDO_ipd : std_logic := 'X'; - signal Dout3_out : std_logic := 'X'; - - signal GNDI: Std_logic; - component gnd - port (PWR0: out Std_logic); - end component; - component xo2iobuf0068 - port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); - end component; - begin - Dout_pad_3: xo2iobuf0068 - port map (I=>PADDO_ipd, T=>GNDI, PAD=>Dout3_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); - END BLOCK; - - VitalBehavior : PROCESS (PADDO_ipd, Dout3_out) - VARIABLE Dout3_zd : std_logic := 'X'; - VARIABLE Dout3_GlitchData : VitalGlitchDataType; - - - BEGIN - - IF (TimingChecksOn) THEN - - END IF; - - Dout3_zd := Dout3_out; - - VitalPathDelay01 ( - OutSignal => Dout3, OutSignalName => "Dout3", OutTemp => Dout3_zd, - Paths => (0 => (InputChangeTime => PADDO_ipd'last_event, - PathDelay => tpd_PADDO_Dout3, - PathCondition => TRUE)), - GlitchData => Dout3_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity Dout_2_B - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity Dout_2_B is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "Dout_2_B"; - - tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); - tpd_PADDO_Dout2 : VitalDelayType01 := (0 ns, 0 ns)); - - port (PADDO: in Std_logic; Dout2: out Std_logic); - - ATTRIBUTE Vital_Level0 OF Dout_2_B : ENTITY IS TRUE; - - end Dout_2_B; - - architecture Structure of Dout_2_B is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal PADDO_ipd : std_logic := 'X'; - signal Dout2_out : std_logic := 'X'; - - signal GNDI: Std_logic; - component gnd - port (PWR0: out Std_logic); - end component; - component xo2iobuf0068 - port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); - end component; - begin - Dout_pad_2: xo2iobuf0068 - port map (I=>PADDO_ipd, T=>GNDI, PAD=>Dout2_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); - END BLOCK; - - VitalBehavior : PROCESS (PADDO_ipd, Dout2_out) - VARIABLE Dout2_zd : std_logic := 'X'; - VARIABLE Dout2_GlitchData : VitalGlitchDataType; - - - BEGIN - - IF (TimingChecksOn) THEN - - END IF; - - Dout2_zd := Dout2_out; - - VitalPathDelay01 ( - OutSignal => Dout2, OutSignalName => "Dout2", OutTemp => Dout2_zd, - Paths => (0 => (InputChangeTime => PADDO_ipd'last_event, - PathDelay => tpd_PADDO_Dout2, - PathCondition => TRUE)), - GlitchData => Dout2_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity Dout_1_B - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity Dout_1_B is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "Dout_1_B"; - - tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); - tpd_PADDO_Dout1 : VitalDelayType01 := (0 ns, 0 ns)); - - port (PADDO: in Std_logic; Dout1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF Dout_1_B : ENTITY IS TRUE; - - end Dout_1_B; - - architecture Structure of Dout_1_B is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal PADDO_ipd : std_logic := 'X'; - signal Dout1_out : std_logic := 'X'; - - signal GNDI: Std_logic; - component gnd - port (PWR0: out Std_logic); - end component; - component xo2iobuf0068 - port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); - end component; - begin - Dout_pad_1: xo2iobuf0068 - port map (I=>PADDO_ipd, T=>GNDI, PAD=>Dout1_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); - END BLOCK; - - VitalBehavior : PROCESS (PADDO_ipd, Dout1_out) - VARIABLE Dout1_zd : std_logic := 'X'; - VARIABLE Dout1_GlitchData : VitalGlitchDataType; - - - BEGIN - - IF (TimingChecksOn) THEN - - END IF; - - Dout1_zd := Dout1_out; - - VitalPathDelay01 ( - OutSignal => Dout1, OutSignalName => "Dout1", OutTemp => Dout1_zd, - Paths => (0 => (InputChangeTime => PADDO_ipd'last_event, - PathDelay => tpd_PADDO_Dout1, - PathCondition => TRUE)), - GlitchData => Dout1_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity Dout_0_B - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity Dout_0_B is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "Dout_0_B"; - - tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); - tpd_PADDO_Dout0 : VitalDelayType01 := (0 ns, 0 ns)); - - port (PADDO: in Std_logic; Dout0: out Std_logic); - - ATTRIBUTE Vital_Level0 OF Dout_0_B : ENTITY IS TRUE; - - end Dout_0_B; - - architecture Structure of Dout_0_B is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal PADDO_ipd : std_logic := 'X'; - signal Dout0_out : std_logic := 'X'; - - signal GNDI: Std_logic; - component gnd - port (PWR0: out Std_logic); - end component; - component xo2iobuf0068 - port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); - end component; - begin - Dout_pad_0: xo2iobuf0068 - port map (I=>PADDO_ipd, T=>GNDI, PAD=>Dout0_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); - END BLOCK; - - VitalBehavior : PROCESS (PADDO_ipd, Dout0_out) - VARIABLE Dout0_zd : std_logic := 'X'; - VARIABLE Dout0_GlitchData : VitalGlitchDataType; - - - BEGIN - - IF (TimingChecksOn) THEN - - END IF; - - Dout0_zd := Dout0_out; - - VitalPathDelay01 ( - OutSignal => Dout0, OutSignalName => "Dout0", OutTemp => Dout0_zd, - Paths => (0 => (InputChangeTime => PADDO_ipd'last_event, - PathDelay => tpd_PADDO_Dout0, - PathCondition => TRUE)), - GlitchData => Dout0_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity LEDB - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity LEDB is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "LEDB"; - - tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); - tpd_PADDO_LEDS : VitalDelayType01 := (0 ns, 0 ns)); - - port (PADDO: in Std_logic; LEDS: out Std_logic); - - ATTRIBUTE Vital_Level0 OF LEDB : ENTITY IS TRUE; - - end LEDB; - - architecture Structure of LEDB is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal PADDO_ipd : std_logic := 'X'; - signal LEDS_out : std_logic := 'X'; - - signal GNDI: Std_logic; - component gnd - port (PWR0: out Std_logic); - end component; - component xo2iobuf0068 - port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); - end component; - begin - LED_pad: xo2iobuf0068 - port map (I=>PADDO_ipd, T=>GNDI, PAD=>LEDS_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); - END BLOCK; - - VitalBehavior : PROCESS (PADDO_ipd, LEDS_out) - VARIABLE LEDS_zd : std_logic := 'X'; - VARIABLE LEDS_GlitchData : VitalGlitchDataType; - - - BEGIN - - IF (TimingChecksOn) THEN - - END IF; - - LEDS_zd := LEDS_out; - - VitalPathDelay01 ( - OutSignal => LEDS, OutSignalName => "LEDS", OutTemp => LEDS_zd, - Paths => (0 => (InputChangeTime => PADDO_ipd'last_event, - PathDelay => tpd_PADDO_LEDS, - PathCondition => TRUE)), - GlitchData => LEDS_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity RBA_1_B - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity RBA_1_B is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "RBA_1_B"; - - tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); - tpd_PADDO_RBA1 : VitalDelayType01 := (0 ns, 0 ns)); - - port (PADDO: in Std_logic; RBA1: out Std_logic); - - ATTRIBUTE Vital_Level0 OF RBA_1_B : ENTITY IS TRUE; - - end RBA_1_B; - - architecture Structure of RBA_1_B is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal PADDO_ipd : std_logic := 'X'; - signal RBA1_out : std_logic := 'X'; - - signal GNDI: Std_logic; - component gnd - port (PWR0: out Std_logic); - end component; - component xo2iobuf0068 - port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); - end component; - begin - RBA_pad_1: xo2iobuf0068 - port map (I=>PADDO_ipd, T=>GNDI, PAD=>RBA1_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); - END BLOCK; - - VitalBehavior : PROCESS (PADDO_ipd, RBA1_out) - VARIABLE RBA1_zd : std_logic := 'X'; - VARIABLE RBA1_GlitchData : VitalGlitchDataType; - - - BEGIN - - IF (TimingChecksOn) THEN - - END IF; - - RBA1_zd := RBA1_out; - - VitalPathDelay01 ( - OutSignal => RBA1, OutSignalName => "RBA1", OutTemp => RBA1_zd, - Paths => (0 => (InputChangeTime => PADDO_ipd'last_event, - PathDelay => tpd_PADDO_RBA1, - PathCondition => TRUE)), - GlitchData => RBA1_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity RBA_0_B - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity RBA_0_B is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "RBA_0_B"; - - tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); - tpd_PADDO_RBA0 : VitalDelayType01 := (0 ns, 0 ns)); - - port (PADDO: in Std_logic; RBA0: out Std_logic); - - ATTRIBUTE Vital_Level0 OF RBA_0_B : ENTITY IS TRUE; - - end RBA_0_B; - - architecture Structure of RBA_0_B is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal PADDO_ipd : std_logic := 'X'; - signal RBA0_out : std_logic := 'X'; - - signal GNDI: Std_logic; - component gnd - port (PWR0: out Std_logic); - end component; - component xo2iobuf0068 - port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); - end component; - begin - RBA_pad_0: xo2iobuf0068 - port map (I=>PADDO_ipd, T=>GNDI, PAD=>RBA0_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); - END BLOCK; - - VitalBehavior : PROCESS (PADDO_ipd, RBA0_out) - VARIABLE RBA0_zd : std_logic := 'X'; - VARIABLE RBA0_GlitchData : VitalGlitchDataType; - - - BEGIN - - IF (TimingChecksOn) THEN - - END IF; - - RBA0_zd := RBA0_out; - - VitalPathDelay01 ( - OutSignal => RBA0, OutSignalName => "RBA0", OutTemp => RBA0_zd, - Paths => (0 => (InputChangeTime => PADDO_ipd'last_event, - PathDelay => tpd_PADDO_RBA0, - PathCondition => TRUE)), - GlitchData => RBA0_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); + GlitchData => IOLDO_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); END PROCESS; @@ -21143,10 +21083,10 @@ MsgOn : boolean := TRUE; InstancePath : string := "RA_11_B"; - tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); - tpd_PADDO_RA11 : VitalDelayType01 := (0 ns, 0 ns)); + tipd_IOLDO : VitalDelayType01 := (0 ns, 0 ns); + tpd_IOLDO_RA11 : VitalDelayType01 := (0 ns, 0 ns)); - port (PADDO: in Std_logic; RA11: out Std_logic); + port (IOLDO: in Std_logic; RA11: out Std_logic); ATTRIBUTE Vital_Level0 OF RA_11_B : ENTITY IS TRUE; @@ -21155,29 +21095,23 @@ architecture Structure of RA_11_B is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - signal PADDO_ipd : std_logic := 'X'; + signal IOLDO_ipd : std_logic := 'X'; signal RA11_out : std_logic := 'X'; - signal GNDI: Std_logic; - component gnd - port (PWR0: out Std_logic); - end component; - component xo2iobuf0068 - port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); + component xo2iobuf0084 + port (I: in Std_logic; PAD: out Std_logic); end component; begin - RA_pad_11: xo2iobuf0068 - port map (I=>PADDO_ipd, T=>GNDI, PAD=>RA11_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); + RA_pad_11: xo2iobuf0084 + port map (I=>IOLDO_ipd, PAD=>RA11_out); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN - VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); + VitalWireDelay(IOLDO_ipd, IOLDO, tipd_IOLDO); END BLOCK; - VitalBehavior : PROCESS (PADDO_ipd, RA11_out) + VitalBehavior : PROCESS (IOLDO_ipd, RA11_out) VARIABLE RA11_zd : std_logic := 'X'; VARIABLE RA11_GlitchData : VitalGlitchDataType; @@ -21192,8 +21126,8 @@ VitalPathDelay01 ( OutSignal => RA11, OutSignalName => "RA11", OutTemp => RA11_zd, - Paths => (0 => (InputChangeTime => PADDO_ipd'last_event, - PathDelay => tpd_PADDO_RA11, + Paths => (0 => (InputChangeTime => IOLDO_ipd'last_event, + PathDelay => tpd_IOLDO_RA11, PathCondition => TRUE)), GlitchData => RA11_GlitchData, Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); @@ -21202,6 +21136,139 @@ end Structure; +-- entity RA_11_MGIOL + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity RA_11_MGIOL is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "RA_11_MGIOL"; + + tipd_OPOS : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_IOLDO : VitalDelayType01 := (0 ns, 0 ns); + ticd_CLK : VitalDelayType := 0 ns; + tisd_OPOS_CLK : VitalDelayType := 0 ns; + tsetup_OPOS_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_OPOS_CLK_noedge_posedge : VitalDelayType := 0 ns; + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns); + + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); + + ATTRIBUTE Vital_Level0 OF RA_11_MGIOL : ENTITY IS TRUE; + + end RA_11_MGIOL; + + architecture Structure of RA_11_MGIOL is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal IOLDO_out : std_logic := 'X'; + signal OPOS_ipd : std_logic := 'X'; + signal OPOS_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + + signal VCCI: Std_logic; + signal GNDI: Std_logic; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component mfflsre + port (D0: in Std_logic; SP: in Std_logic; CK: in Std_logic; + LSR: in Std_logic; Q: out Std_logic); + end component; + begin + RA11_0io: mfflsre + port map (D0=>OPOS_dly, SP=>VCCI, CK=>CLK_dly, LSR=>GNDI, Q=>IOLDO_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + DRIVEGND: gnd + port map (PWR0=>GNDI); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(OPOS_ipd, OPOS, tipd_OPOS); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(OPOS_dly, OPOS_ipd, tisd_OPOS_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (IOLDO_out, OPOS_dly, CLK_dly) + VARIABLE IOLDO_zd : std_logic := 'X'; + VARIABLE IOLDO_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_OPOS_CLK : x01 := '0'; + VARIABLE OPOS_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => OPOS_dly, + TestSignalName => "OPOS", + TestDelay => tisd_OPOS_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_OPOS_CLK_noedge_posedge, + SetupLow => tsetup_OPOS_CLK_noedge_posedge, + HoldHigh => thold_OPOS_CLK_noedge_posedge, + HoldLow => thold_OPOS_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => OPOS_CLK_TimingDatash, + Violation => tviol_OPOS_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + IOLDO_zd := IOLDO_out; + + VitalPathDelay01 ( + OutSignal => IOLDO, OutSignalName => "IOLDO", OutTemp => IOLDO_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_IOLDO, + PathCondition => TRUE)), + GlitchData => IOLDO_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + -- entity RA_10_B library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; @@ -21216,10 +21283,10 @@ MsgOn : boolean := TRUE; InstancePath : string := "RA_10_B"; - tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); - tpd_PADDO_RA10 : VitalDelayType01 := (0 ns, 0 ns)); + tipd_IOLDO : VitalDelayType01 := (0 ns, 0 ns); + tpd_IOLDO_RA10 : VitalDelayType01 := (0 ns, 0 ns)); - port (PADDO: in Std_logic; RA10: out Std_logic); + port (IOLDO: in Std_logic; RA10: out Std_logic); ATTRIBUTE Vital_Level0 OF RA_10_B : ENTITY IS TRUE; @@ -21228,29 +21295,23 @@ architecture Structure of RA_10_B is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - signal PADDO_ipd : std_logic := 'X'; + signal IOLDO_ipd : std_logic := 'X'; signal RA10_out : std_logic := 'X'; - signal GNDI: Std_logic; - component gnd - port (PWR0: out Std_logic); - end component; - component xo2iobuf0068 - port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); + component xo2iobuf0084 + port (I: in Std_logic; PAD: out Std_logic); end component; begin - RA_pad_10: xo2iobuf0068 - port map (I=>PADDO_ipd, T=>GNDI, PAD=>RA10_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); + RA_pad_10: xo2iobuf0084 + port map (I=>IOLDO_ipd, PAD=>RA10_out); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN - VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); + VitalWireDelay(IOLDO_ipd, IOLDO, tipd_IOLDO); END BLOCK; - VitalBehavior : PROCESS (PADDO_ipd, RA10_out) + VitalBehavior : PROCESS (IOLDO_ipd, RA10_out) VARIABLE RA10_zd : std_logic := 'X'; VARIABLE RA10_GlitchData : VitalGlitchDataType; @@ -21265,8 +21326,8 @@ VitalPathDelay01 ( OutSignal => RA10, OutSignalName => "RA10", OutTemp => RA10_zd, - Paths => (0 => (InputChangeTime => PADDO_ipd'last_event, - PathDelay => tpd_PADDO_RA10, + Paths => (0 => (InputChangeTime => IOLDO_ipd'last_event, + PathDelay => tpd_IOLDO_RA10, PathCondition => TRUE)), GlitchData => RA10_GlitchData, Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); @@ -21275,6 +21336,184 @@ end Structure; +-- entity mfflsre0088 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity mfflsre0088 is + port (D0: in Std_logic; SP: in Std_logic; CK: in Std_logic; + LSR: in Std_logic; Q: out Std_logic); + + ATTRIBUTE Vital_Level0 OF mfflsre0088 : ENTITY IS TRUE; + + end mfflsre0088; + + architecture Structure of mfflsre0088 is + begin + INST01: FD1P3JX + generic map (GSR => "DISABLED") + port map (D=>D0, SP=>SP, CK=>CK, PD=>LSR, Q=>Q); + end Structure; + +-- entity RA_10_MGIOL + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity RA_10_MGIOL is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "RA_10_MGIOL"; + + tipd_OPOS : VitalDelayType01 := (0 ns, 0 ns); + tipd_LSR : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_IOLDO : VitalDelayType01 := (0 ns, 0 ns); + ticd_CLK : VitalDelayType := 0 ns; + tisd_OPOS_CLK : VitalDelayType := 0 ns; + tsetup_OPOS_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_OPOS_CLK_noedge_posedge : VitalDelayType := 0 ns; + tisd_LSR_CLK : VitalDelayType := 0 ns; + tsetup_LSR_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_LSR_CLK_noedge_posedge : VitalDelayType := 0 ns; + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns); + + port (IOLDO: out Std_logic; OPOS: in Std_logic; LSR: in Std_logic; + CLK: in Std_logic); + + ATTRIBUTE Vital_Level0 OF RA_10_MGIOL : ENTITY IS TRUE; + + end RA_10_MGIOL; + + architecture Structure of RA_10_MGIOL is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal IOLDO_out : std_logic := 'X'; + signal OPOS_ipd : std_logic := 'X'; + signal OPOS_dly : std_logic := 'X'; + signal LSR_ipd : std_logic := 'X'; + signal LSR_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + + signal VCCI: Std_logic; + component vcc + port (PWR1: out Std_logic); + end component; + component mfflsre0088 + port (D0: in Std_logic; SP: in Std_logic; CK: in Std_logic; + LSR: in Std_logic; Q: out Std_logic); + end component; + begin + RA10_0io: mfflsre0088 + port map (D0=>OPOS_dly, SP=>VCCI, CK=>CLK_dly, LSR=>LSR_dly, + Q=>IOLDO_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(OPOS_ipd, OPOS, tipd_OPOS); + VitalWireDelay(LSR_ipd, LSR, tipd_LSR); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(OPOS_dly, OPOS_ipd, tisd_OPOS_CLK); + VitalSignalDelay(LSR_dly, LSR_ipd, tisd_LSR_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (IOLDO_out, OPOS_dly, LSR_dly, CLK_dly) + VARIABLE IOLDO_zd : std_logic := 'X'; + VARIABLE IOLDO_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_OPOS_CLK : x01 := '0'; + VARIABLE OPOS_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_LSR_CLK : x01 := '0'; + VARIABLE LSR_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => OPOS_dly, + TestSignalName => "OPOS", + TestDelay => tisd_OPOS_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_OPOS_CLK_noedge_posedge, + SetupLow => tsetup_OPOS_CLK_noedge_posedge, + HoldHigh => thold_OPOS_CLK_noedge_posedge, + HoldLow => thold_OPOS_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => OPOS_CLK_TimingDatash, + Violation => tviol_OPOS_CLK, + MsgSeverity => warning); + VitalSetupHoldCheck ( + TestSignal => LSR_dly, + TestSignalName => "LSR", + TestDelay => tisd_LSR_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_LSR_CLK_noedge_posedge, + SetupLow => tsetup_LSR_CLK_noedge_posedge, + HoldHigh => thold_LSR_CLK_noedge_posedge, + HoldLow => thold_LSR_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => LSR_CLK_TimingDatash, + Violation => tviol_LSR_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + IOLDO_zd := IOLDO_out; + + VitalPathDelay01 ( + OutSignal => IOLDO, OutSignalName => "IOLDO", OutTemp => IOLDO_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_IOLDO, + PathCondition => TRUE)), + GlitchData => IOLDO_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + -- entity RA_9_B library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; @@ -21304,18 +21543,12 @@ signal PADDO_ipd : std_logic := 'X'; signal RA9_out : std_logic := 'X'; - signal GNDI: Std_logic; - component gnd - port (PWR0: out Std_logic); - end component; - component xo2iobuf0068 - port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); + component xo2iobuf0084 + port (I: in Std_logic; PAD: out Std_logic); end component; begin - RA_pad_9: xo2iobuf0068 - port map (I=>PADDO_ipd, T=>GNDI, PAD=>RA9_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); + RA_pad_9: xo2iobuf0084 + port map (I=>PADDO_ipd, PAD=>RA9_out); -- INPUT PATH DELAYs WireDelay : BLOCK @@ -21377,18 +21610,12 @@ signal PADDO_ipd : std_logic := 'X'; signal RA8_out : std_logic := 'X'; - signal GNDI: Std_logic; - component gnd - port (PWR0: out Std_logic); - end component; - component xo2iobuf0068 - port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); + component xo2iobuf0084 + port (I: in Std_logic; PAD: out Std_logic); end component; begin - RA_pad_8: xo2iobuf0068 - port map (I=>PADDO_ipd, T=>GNDI, PAD=>RA8_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); + RA_pad_8: xo2iobuf0084 + port map (I=>PADDO_ipd, PAD=>RA8_out); -- INPUT PATH DELAYs WireDelay : BLOCK @@ -21450,18 +21677,12 @@ signal PADDO_ipd : std_logic := 'X'; signal RA7_out : std_logic := 'X'; - signal GNDI: Std_logic; - component gnd - port (PWR0: out Std_logic); - end component; - component xo2iobuf0068 - port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); + component xo2iobuf0084 + port (I: in Std_logic; PAD: out Std_logic); end component; begin - RA_pad_7: xo2iobuf0068 - port map (I=>PADDO_ipd, T=>GNDI, PAD=>RA7_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); + RA_pad_7: xo2iobuf0084 + port map (I=>PADDO_ipd, PAD=>RA7_out); -- INPUT PATH DELAYs WireDelay : BLOCK @@ -21523,18 +21744,12 @@ signal PADDO_ipd : std_logic := 'X'; signal RA6_out : std_logic := 'X'; - signal GNDI: Std_logic; - component gnd - port (PWR0: out Std_logic); - end component; - component xo2iobuf0068 - port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); + component xo2iobuf0084 + port (I: in Std_logic; PAD: out Std_logic); end component; begin - RA_pad_6: xo2iobuf0068 - port map (I=>PADDO_ipd, T=>GNDI, PAD=>RA6_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); + RA_pad_6: xo2iobuf0084 + port map (I=>PADDO_ipd, PAD=>RA6_out); -- INPUT PATH DELAYs WireDelay : BLOCK @@ -21596,18 +21811,12 @@ signal PADDO_ipd : std_logic := 'X'; signal RA5_out : std_logic := 'X'; - signal GNDI: Std_logic; - component gnd - port (PWR0: out Std_logic); - end component; - component xo2iobuf0068 - port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); + component xo2iobuf0084 + port (I: in Std_logic; PAD: out Std_logic); end component; begin - RA_pad_5: xo2iobuf0068 - port map (I=>PADDO_ipd, T=>GNDI, PAD=>RA5_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); + RA_pad_5: xo2iobuf0084 + port map (I=>PADDO_ipd, PAD=>RA5_out); -- INPUT PATH DELAYs WireDelay : BLOCK @@ -21669,18 +21878,12 @@ signal PADDO_ipd : std_logic := 'X'; signal RA4_out : std_logic := 'X'; - signal GNDI: Std_logic; - component gnd - port (PWR0: out Std_logic); - end component; - component xo2iobuf0068 - port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); + component xo2iobuf0084 + port (I: in Std_logic; PAD: out Std_logic); end component; begin - RA_pad_4: xo2iobuf0068 - port map (I=>PADDO_ipd, T=>GNDI, PAD=>RA4_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); + RA_pad_4: xo2iobuf0084 + port map (I=>PADDO_ipd, PAD=>RA4_out); -- INPUT PATH DELAYs WireDelay : BLOCK @@ -21742,18 +21945,12 @@ signal PADDO_ipd : std_logic := 'X'; signal RA3_out : std_logic := 'X'; - signal GNDI: Std_logic; - component gnd - port (PWR0: out Std_logic); - end component; - component xo2iobuf0068 - port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); + component xo2iobuf0084 + port (I: in Std_logic; PAD: out Std_logic); end component; begin - RA_pad_3: xo2iobuf0068 - port map (I=>PADDO_ipd, T=>GNDI, PAD=>RA3_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); + RA_pad_3: xo2iobuf0084 + port map (I=>PADDO_ipd, PAD=>RA3_out); -- INPUT PATH DELAYs WireDelay : BLOCK @@ -21815,18 +22012,12 @@ signal PADDO_ipd : std_logic := 'X'; signal RA2_out : std_logic := 'X'; - signal GNDI: Std_logic; - component gnd - port (PWR0: out Std_logic); - end component; - component xo2iobuf0068 - port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); + component xo2iobuf0084 + port (I: in Std_logic; PAD: out Std_logic); end component; begin - RA_pad_2: xo2iobuf0068 - port map (I=>PADDO_ipd, T=>GNDI, PAD=>RA2_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); + RA_pad_2: xo2iobuf0084 + port map (I=>PADDO_ipd, PAD=>RA2_out); -- INPUT PATH DELAYs WireDelay : BLOCK @@ -21888,18 +22079,12 @@ signal PADDO_ipd : std_logic := 'X'; signal RA1_out : std_logic := 'X'; - signal GNDI: Std_logic; - component gnd - port (PWR0: out Std_logic); - end component; - component xo2iobuf0068 - port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); + component xo2iobuf0084 + port (I: in Std_logic; PAD: out Std_logic); end component; begin - RA_pad_1: xo2iobuf0068 - port map (I=>PADDO_ipd, T=>GNDI, PAD=>RA1_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); + RA_pad_1: xo2iobuf0084 + port map (I=>PADDO_ipd, PAD=>RA1_out); -- INPUT PATH DELAYs WireDelay : BLOCK @@ -21961,18 +22146,12 @@ signal PADDO_ipd : std_logic := 'X'; signal RA0_out : std_logic := 'X'; - signal GNDI: Std_logic; - component gnd - port (PWR0: out Std_logic); - end component; - component xo2iobuf0068 - port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); + component xo2iobuf0084 + port (I: in Std_logic; PAD: out Std_logic); end component; begin - RA_pad_0: xo2iobuf0068 - port map (I=>PADDO_ipd, T=>GNDI, PAD=>RA0_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); + RA_pad_0: xo2iobuf0084 + port map (I=>PADDO_ipd, PAD=>RA0_out); -- INPUT PATH DELAYs WireDelay : BLOCK @@ -22005,57 +22184,51 @@ end Structure; --- entity nRCSB +-- entity RBA_1_B library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity nRCSB is + entity RBA_1_B is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "nRCSB"; + InstancePath : string := "RBA_1_B"; - tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); - tpd_PADDO_nRCSS : VitalDelayType01 := (0 ns, 0 ns)); + tipd_IOLDO : VitalDelayType01 := (0 ns, 0 ns); + tpd_IOLDO_RBA1 : VitalDelayType01 := (0 ns, 0 ns)); - port (PADDO: in Std_logic; nRCSS: out Std_logic); + port (IOLDO: in Std_logic; RBA1: out Std_logic); - ATTRIBUTE Vital_Level0 OF nRCSB : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF RBA_1_B : ENTITY IS TRUE; - end nRCSB; + end RBA_1_B; - architecture Structure of nRCSB is + architecture Structure of RBA_1_B is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - signal PADDO_ipd : std_logic := 'X'; - signal nRCSS_out : std_logic := 'X'; + signal IOLDO_ipd : std_logic := 'X'; + signal RBA1_out : std_logic := 'X'; - signal GNDI: Std_logic; - component gnd - port (PWR0: out Std_logic); - end component; - component xo2iobuf0068 - port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); + component xo2iobuf0084 + port (I: in Std_logic; PAD: out Std_logic); end component; begin - nRCS_pad: xo2iobuf0068 - port map (I=>PADDO_ipd, T=>GNDI, PAD=>nRCSS_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); + RBA_pad_1: xo2iobuf0084 + port map (I=>IOLDO_ipd, PAD=>RBA1_out); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN - VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); + VitalWireDelay(IOLDO_ipd, IOLDO, tipd_IOLDO); END BLOCK; - VitalBehavior : PROCESS (PADDO_ipd, nRCSS_out) - VARIABLE nRCSS_zd : std_logic := 'X'; - VARIABLE nRCSS_GlitchData : VitalGlitchDataType; + VitalBehavior : PROCESS (IOLDO_ipd, RBA1_out) + VARIABLE RBA1_zd : std_logic := 'X'; + VARIABLE RBA1_GlitchData : VitalGlitchDataType; BEGIN @@ -22064,71 +22237,204 @@ END IF; - nRCSS_zd := nRCSS_out; + RBA1_zd := RBA1_out; VitalPathDelay01 ( - OutSignal => nRCSS, OutSignalName => "nRCSS", OutTemp => nRCSS_zd, - Paths => (0 => (InputChangeTime => PADDO_ipd'last_event, - PathDelay => tpd_PADDO_nRCSS, + OutSignal => RBA1, OutSignalName => "RBA1", OutTemp => RBA1_zd, + Paths => (0 => (InputChangeTime => IOLDO_ipd'last_event, + PathDelay => tpd_IOLDO_RBA1, PathCondition => TRUE)), - GlitchData => nRCSS_GlitchData, + GlitchData => RBA1_GlitchData, Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); END PROCESS; end Structure; --- entity RCKEB +-- entity RBA_1_MGIOL library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity RCKEB is + entity RBA_1_MGIOL is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "RCKEB"; + InstancePath : string := "RBA_1_MGIOL"; - tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); - tpd_PADDO_RCKES : VitalDelayType01 := (0 ns, 0 ns)); + tipd_OPOS : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_IOLDO : VitalDelayType01 := (0 ns, 0 ns); + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns; + ticd_CLK : VitalDelayType := 0 ns; + tisd_OPOS_CLK : VitalDelayType := 0 ns; + tsetup_OPOS_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_OPOS_CLK_noedge_negedge : VitalDelayType := 0 ns); - port (PADDO: in Std_logic; RCKES: out Std_logic); + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); - ATTRIBUTE Vital_Level0 OF RCKEB : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF RBA_1_MGIOL : ENTITY IS TRUE; - end RCKEB; + end RBA_1_MGIOL; - architecture Structure of RCKEB is + architecture Structure of RBA_1_MGIOL is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - signal PADDO_ipd : std_logic := 'X'; - signal RCKES_out : std_logic := 'X'; + signal IOLDO_out : std_logic := 'X'; + signal OPOS_ipd : std_logic := 'X'; + signal OPOS_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal VCCI: Std_logic; + signal CLK_NOTIN: Std_logic; signal GNDI: Std_logic; + component vcc + port (PWR1: out Std_logic); + end component; component gnd port (PWR0: out Std_logic); end component; - component xo2iobuf0068 - port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); + component inverter + port (I: in Std_logic; Z: out Std_logic); + end component; + component mfflsre + port (D0: in Std_logic; SP: in Std_logic; CK: in Std_logic; + LSR: in Std_logic; Q: out Std_logic); end component; begin - RCKE_pad: xo2iobuf0068 - port map (I=>PADDO_ipd, T=>GNDI, PAD=>RCKES_out); + RBA_0io_1: mfflsre + port map (D0=>OPOS_dly, SP=>VCCI, CK=>CLK_NOTIN, LSR=>GNDI, Q=>IOLDO_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + CLK_INVERTERIN: inverter + port map (I=>CLK_dly, Z=>CLK_NOTIN); DRIVEGND: gnd port map (PWR0=>GNDI); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN - VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); + VitalWireDelay(OPOS_ipd, OPOS, tipd_OPOS); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); END BLOCK; - VitalBehavior : PROCESS (PADDO_ipd, RCKES_out) - VARIABLE RCKES_zd : std_logic := 'X'; - VARIABLE RCKES_GlitchData : VitalGlitchDataType; + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(OPOS_dly, OPOS_ipd, tisd_OPOS_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (IOLDO_out, OPOS_dly, CLK_dly) + VARIABLE IOLDO_zd : std_logic := 'X'; + VARIABLE IOLDO_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_OPOS_CLK : x01 := '0'; + VARIABLE OPOS_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => OPOS_dly, + TestSignalName => "OPOS", + TestDelay => tisd_OPOS_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_OPOS_CLK_noedge_negedge, + SetupLow => tsetup_OPOS_CLK_noedge_negedge, + HoldHigh => thold_OPOS_CLK_noedge_negedge, + HoldLow => thold_OPOS_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => OPOS_CLK_TimingDatash, + Violation => tviol_OPOS_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + IOLDO_zd := IOLDO_out; + + VitalPathDelay01 ( + OutSignal => IOLDO, OutSignalName => "IOLDO", OutTemp => IOLDO_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_IOLDO, + PathCondition => TRUE)), + GlitchData => IOLDO_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity RBA_0_B + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity RBA_0_B is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "RBA_0_B"; + + tipd_IOLDO : VitalDelayType01 := (0 ns, 0 ns); + tpd_IOLDO_RBA0 : VitalDelayType01 := (0 ns, 0 ns)); + + port (IOLDO: in Std_logic; RBA0: out Std_logic); + + ATTRIBUTE Vital_Level0 OF RBA_0_B : ENTITY IS TRUE; + + end RBA_0_B; + + architecture Structure of RBA_0_B is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal IOLDO_ipd : std_logic := 'X'; + signal RBA0_out : std_logic := 'X'; + + component xo2iobuf0084 + port (I: in Std_logic; PAD: out Std_logic); + end component; + begin + RBA_pad_0: xo2iobuf0084 + port map (I=>IOLDO_ipd, PAD=>RBA0_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(IOLDO_ipd, IOLDO, tipd_IOLDO); + END BLOCK; + + VitalBehavior : PROCESS (IOLDO_ipd, RBA0_out) + VARIABLE RBA0_zd : std_logic := 'X'; + VARIABLE RBA0_GlitchData : VitalGlitchDataType; BEGIN @@ -22137,71 +22443,223 @@ END IF; - RCKES_zd := RCKES_out; + RBA0_zd := RBA0_out; VitalPathDelay01 ( - OutSignal => RCKES, OutSignalName => "RCKES", OutTemp => RCKES_zd, - Paths => (0 => (InputChangeTime => PADDO_ipd'last_event, - PathDelay => tpd_PADDO_RCKES, + OutSignal => RBA0, OutSignalName => "RBA0", OutTemp => RBA0_zd, + Paths => (0 => (InputChangeTime => IOLDO_ipd'last_event, + PathDelay => tpd_IOLDO_RBA0, PathCondition => TRUE)), - GlitchData => RCKES_GlitchData, + GlitchData => RBA0_GlitchData, Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); END PROCESS; end Structure; --- entity nRWEB +-- entity RBA_0_MGIOL library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity nRWEB is + entity RBA_0_MGIOL is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "nRWEB"; + InstancePath : string := "RBA_0_MGIOL"; - tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); - tpd_PADDO_nRWES : VitalDelayType01 := (0 ns, 0 ns)); + tipd_OPOS : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_IOLDO : VitalDelayType01 := (0 ns, 0 ns); + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns; + ticd_CLK : VitalDelayType := 0 ns; + tisd_OPOS_CLK : VitalDelayType := 0 ns; + tsetup_OPOS_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_OPOS_CLK_noedge_negedge : VitalDelayType := 0 ns); - port (PADDO: in Std_logic; nRWES: out Std_logic); + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); - ATTRIBUTE Vital_Level0 OF nRWEB : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF RBA_0_MGIOL : ENTITY IS TRUE; - end nRWEB; + end RBA_0_MGIOL; - architecture Structure of nRWEB is + architecture Structure of RBA_0_MGIOL is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - signal PADDO_ipd : std_logic := 'X'; - signal nRWES_out : std_logic := 'X'; + signal IOLDO_out : std_logic := 'X'; + signal OPOS_ipd : std_logic := 'X'; + signal OPOS_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal VCCI: Std_logic; + signal CLK_NOTIN: Std_logic; signal GNDI: Std_logic; + component vcc + port (PWR1: out Std_logic); + end component; component gnd port (PWR0: out Std_logic); end component; - component xo2iobuf0068 - port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); + component inverter + port (I: in Std_logic; Z: out Std_logic); + end component; + component mfflsre + port (D0: in Std_logic; SP: in Std_logic; CK: in Std_logic; + LSR: in Std_logic; Q: out Std_logic); end component; begin - nRWE_pad: xo2iobuf0068 - port map (I=>PADDO_ipd, T=>GNDI, PAD=>nRWES_out); + RBA_0io_0: mfflsre + port map (D0=>OPOS_dly, SP=>VCCI, CK=>CLK_NOTIN, LSR=>GNDI, Q=>IOLDO_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + CLK_INVERTERIN: inverter + port map (I=>CLK_dly, Z=>CLK_NOTIN); DRIVEGND: gnd port map (PWR0=>GNDI); + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(OPOS_ipd, OPOS, tipd_OPOS); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(OPOS_dly, OPOS_ipd, tisd_OPOS_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (IOLDO_out, OPOS_dly, CLK_dly) + VARIABLE IOLDO_zd : std_logic := 'X'; + VARIABLE IOLDO_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_OPOS_CLK : x01 := '0'; + VARIABLE OPOS_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => OPOS_dly, + TestSignalName => "OPOS", + TestDelay => tisd_OPOS_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_OPOS_CLK_noedge_negedge, + SetupLow => tsetup_OPOS_CLK_noedge_negedge, + HoldHigh => thold_OPOS_CLK_noedge_negedge, + HoldLow => thold_OPOS_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => OPOS_CLK_TimingDatash, + Violation => tviol_OPOS_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + IOLDO_zd := IOLDO_out; + + VitalPathDelay01 ( + OutSignal => IOLDO, OutSignalName => "IOLDO", OutTemp => IOLDO_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_IOLDO, + PathCondition => TRUE)), + GlitchData => IOLDO_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity xo2iobuf0089 + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity xo2iobuf0089 is + port (I: in Std_logic; PAD: out Std_logic); + + ATTRIBUTE Vital_Level0 OF xo2iobuf0089 : ENTITY IS TRUE; + + end xo2iobuf0089; + + architecture Structure of xo2iobuf0089 is + begin + INST5: OB + port map (I=>I, O=>PAD); + end Structure; + +-- entity LEDB + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity LEDB is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "LEDB"; + + tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); + tpd_PADDO_LEDS : VitalDelayType01 := (0 ns, 0 ns)); + + port (PADDO: in Std_logic; LEDS: out Std_logic); + + ATTRIBUTE Vital_Level0 OF LEDB : ENTITY IS TRUE; + + end LEDB; + + architecture Structure of LEDB is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal PADDO_ipd : std_logic := 'X'; + signal LEDS_out : std_logic := 'X'; + + component xo2iobuf0089 + port (I: in Std_logic; PAD: out Std_logic); + end component; + begin + LED_pad: xo2iobuf0089 + port map (I=>PADDO_ipd, PAD=>LEDS_out); + -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); END BLOCK; - VitalBehavior : PROCESS (PADDO_ipd, nRWES_out) - VARIABLE nRWES_zd : std_logic := 'X'; - VARIABLE nRWES_GlitchData : VitalGlitchDataType; + VitalBehavior : PROCESS (PADDO_ipd, LEDS_out) + VARIABLE LEDS_zd : std_logic := 'X'; + VARIABLE LEDS_GlitchData : VitalGlitchDataType; BEGIN @@ -22210,613 +22668,102 @@ END IF; - nRWES_zd := nRWES_out; + LEDS_zd := LEDS_out; VitalPathDelay01 ( - OutSignal => nRWES, OutSignalName => "nRWES", OutTemp => nRWES_zd, + OutSignal => LEDS, OutSignalName => "LEDS", OutTemp => LEDS_zd, Paths => (0 => (InputChangeTime => PADDO_ipd'last_event, - PathDelay => tpd_PADDO_nRWES, + PathDelay => tpd_PADDO_LEDS, PathCondition => TRUE)), - GlitchData => nRWES_GlitchData, + GlitchData => LEDS_GlitchData, Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); END PROCESS; end Structure; --- entity nRRASB +-- entity xo2iobuf0090 library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity nRRASB is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "nRRASB"; - - tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); - tpd_PADDO_nRRASS : VitalDelayType01 := (0 ns, 0 ns)); - - port (PADDO: in Std_logic; nRRASS: out Std_logic); - - ATTRIBUTE Vital_Level0 OF nRRASB : ENTITY IS TRUE; - - end nRRASB; - - architecture Structure of nRRASB is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal PADDO_ipd : std_logic := 'X'; - signal nRRASS_out : std_logic := 'X'; - - signal GNDI: Std_logic; - component gnd - port (PWR0: out Std_logic); - end component; - component xo2iobuf0068 - port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); - end component; - begin - nRRAS_pad: xo2iobuf0068 - port map (I=>PADDO_ipd, T=>GNDI, PAD=>nRRASS_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); - END BLOCK; - - VitalBehavior : PROCESS (PADDO_ipd, nRRASS_out) - VARIABLE nRRASS_zd : std_logic := 'X'; - VARIABLE nRRASS_GlitchData : VitalGlitchDataType; - - - BEGIN - - IF (TimingChecksOn) THEN - - END IF; - - nRRASS_zd := nRRASS_out; - - VitalPathDelay01 ( - OutSignal => nRRASS, OutSignalName => "nRRASS", OutTemp => nRRASS_zd, - Paths => (0 => (InputChangeTime => PADDO_ipd'last_event, - PathDelay => tpd_PADDO_nRRASS, - PathCondition => TRUE)), - GlitchData => nRRASS_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity nRCASB - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity nRCASB is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "nRCASB"; - - tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); - tpd_PADDO_nRCASS : VitalDelayType01 := (0 ns, 0 ns)); - - port (PADDO: in Std_logic; nRCASS: out Std_logic); - - ATTRIBUTE Vital_Level0 OF nRCASB : ENTITY IS TRUE; - - end nRCASB; - - architecture Structure of nRCASB is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal PADDO_ipd : std_logic := 'X'; - signal nRCASS_out : std_logic := 'X'; - - signal GNDI: Std_logic; - component gnd - port (PWR0: out Std_logic); - end component; - component xo2iobuf0068 - port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); - end component; - begin - nRCAS_pad: xo2iobuf0068 - port map (I=>PADDO_ipd, T=>GNDI, PAD=>nRCASS_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); - END BLOCK; - - VitalBehavior : PROCESS (PADDO_ipd, nRCASS_out) - VARIABLE nRCASS_zd : std_logic := 'X'; - VARIABLE nRCASS_GlitchData : VitalGlitchDataType; - - - BEGIN - - IF (TimingChecksOn) THEN - - END IF; - - nRCASS_zd := nRCASS_out; - - VitalPathDelay01 ( - OutSignal => nRCASS, OutSignalName => "nRCASS", OutTemp => nRCASS_zd, - Paths => (0 => (InputChangeTime => PADDO_ipd'last_event, - PathDelay => tpd_PADDO_nRCASS, - PathCondition => TRUE)), - GlitchData => nRCASS_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity RDQMHB - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity RDQMHB is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "RDQMHB"; - - tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); - tpd_PADDO_RDQMHS : VitalDelayType01 := (0 ns, 0 ns)); - - port (PADDO: in Std_logic; RDQMHS: out Std_logic); - - ATTRIBUTE Vital_Level0 OF RDQMHB : ENTITY IS TRUE; - - end RDQMHB; - - architecture Structure of RDQMHB is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal PADDO_ipd : std_logic := 'X'; - signal RDQMHS_out : std_logic := 'X'; - - signal GNDI: Std_logic; - component gnd - port (PWR0: out Std_logic); - end component; - component xo2iobuf0068 - port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); - end component; - begin - RDQMH_pad: xo2iobuf0068 - port map (I=>PADDO_ipd, T=>GNDI, PAD=>RDQMHS_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); - END BLOCK; - - VitalBehavior : PROCESS (PADDO_ipd, RDQMHS_out) - VARIABLE RDQMHS_zd : std_logic := 'X'; - VARIABLE RDQMHS_GlitchData : VitalGlitchDataType; - - - BEGIN - - IF (TimingChecksOn) THEN - - END IF; - - RDQMHS_zd := RDQMHS_out; - - VitalPathDelay01 ( - OutSignal => RDQMHS, OutSignalName => "RDQMHS", OutTemp => RDQMHS_zd, - Paths => (0 => (InputChangeTime => PADDO_ipd'last_event, - PathDelay => tpd_PADDO_RDQMHS, - PathCondition => TRUE)), - GlitchData => RDQMHS_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity RDQMLB - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity RDQMLB is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "RDQMLB"; - - tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); - tpd_PADDO_RDQMLS : VitalDelayType01 := (0 ns, 0 ns)); - - port (PADDO: in Std_logic; RDQMLS: out Std_logic); - - ATTRIBUTE Vital_Level0 OF RDQMLB : ENTITY IS TRUE; - - end RDQMLB; - - architecture Structure of RDQMLB is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal PADDO_ipd : std_logic := 'X'; - signal RDQMLS_out : std_logic := 'X'; - - signal GNDI: Std_logic; - component gnd - port (PWR0: out Std_logic); - end component; - component xo2iobuf0068 - port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); - end component; - begin - RDQML_pad: xo2iobuf0068 - port map (I=>PADDO_ipd, T=>GNDI, PAD=>RDQMLS_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); - END BLOCK; - - VitalBehavior : PROCESS (PADDO_ipd, RDQMLS_out) - VARIABLE RDQMLS_zd : std_logic := 'X'; - VARIABLE RDQMLS_GlitchData : VitalGlitchDataType; - - - BEGIN - - IF (TimingChecksOn) THEN - - END IF; - - RDQMLS_zd := RDQMLS_out; - - VitalPathDelay01 ( - OutSignal => RDQMLS, OutSignalName => "RDQMLS", OutTemp => RDQMLS_zd, - Paths => (0 => (InputChangeTime => PADDO_ipd'last_event, - PathDelay => tpd_PADDO_RDQMLS, - PathCondition => TRUE)), - GlitchData => RDQMLS_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity nUFMCSB - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity nUFMCSB is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "nUFMCSB"; - - tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); - tpd_PADDO_nUFMCSS : VitalDelayType01 := (0 ns, 0 ns)); - - port (PADDO: in Std_logic; nUFMCSS: out Std_logic); - - ATTRIBUTE Vital_Level0 OF nUFMCSB : ENTITY IS TRUE; - - end nUFMCSB; - - architecture Structure of nUFMCSB is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal PADDO_ipd : std_logic := 'X'; - signal nUFMCSS_out : std_logic := 'X'; - - signal GNDI: Std_logic; - component gnd - port (PWR0: out Std_logic); - end component; - component xo2iobuf0068 - port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); - end component; - begin - nUFMCS_pad: xo2iobuf0068 - port map (I=>PADDO_ipd, T=>GNDI, PAD=>nUFMCSS_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); - END BLOCK; - - VitalBehavior : PROCESS (PADDO_ipd, nUFMCSS_out) - VARIABLE nUFMCSS_zd : std_logic := 'X'; - VARIABLE nUFMCSS_GlitchData : VitalGlitchDataType; - - - BEGIN - - IF (TimingChecksOn) THEN - - END IF; - - nUFMCSS_zd := nUFMCSS_out; - - VitalPathDelay01 ( - OutSignal => nUFMCSS, OutSignalName => "nUFMCSS", OutTemp => nUFMCSS_zd, - Paths => (0 => (InputChangeTime => PADDO_ipd'last_event, - PathDelay => tpd_PADDO_nUFMCSS, - PathCondition => TRUE)), - GlitchData => nUFMCSS_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity UFMCLKB - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity UFMCLKB is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "UFMCLKB"; - - tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); - tpd_PADDO_UFMCLKS : VitalDelayType01 := (0 ns, 0 ns)); - - port (PADDO: in Std_logic; UFMCLKS: out Std_logic); - - ATTRIBUTE Vital_Level0 OF UFMCLKB : ENTITY IS TRUE; - - end UFMCLKB; - - architecture Structure of UFMCLKB is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal PADDO_ipd : std_logic := 'X'; - signal UFMCLKS_out : std_logic := 'X'; - - signal GNDI: Std_logic; - component gnd - port (PWR0: out Std_logic); - end component; - component xo2iobuf0068 - port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); - end component; - begin - UFMCLK_pad: xo2iobuf0068 - port map (I=>PADDO_ipd, T=>GNDI, PAD=>UFMCLKS_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); - END BLOCK; - - VitalBehavior : PROCESS (PADDO_ipd, UFMCLKS_out) - VARIABLE UFMCLKS_zd : std_logic := 'X'; - VARIABLE UFMCLKS_GlitchData : VitalGlitchDataType; - - - BEGIN - - IF (TimingChecksOn) THEN - - END IF; - - UFMCLKS_zd := UFMCLKS_out; - - VitalPathDelay01 ( - OutSignal => UFMCLKS, OutSignalName => "UFMCLKS", OutTemp => UFMCLKS_zd, - Paths => (0 => (InputChangeTime => PADDO_ipd'last_event, - PathDelay => tpd_PADDO_UFMCLKS, - PathCondition => TRUE)), - GlitchData => UFMCLKS_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity UFMSDIB - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity UFMSDIB is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "UFMSDIB"; - - tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); - tpd_PADDO_UFMSDIS : VitalDelayType01 := (0 ns, 0 ns)); - - port (PADDO: in Std_logic; UFMSDIS: out Std_logic); - - ATTRIBUTE Vital_Level0 OF UFMSDIB : ENTITY IS TRUE; - - end UFMSDIB; - - architecture Structure of UFMSDIB is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal PADDO_ipd : std_logic := 'X'; - signal UFMSDIS_out : std_logic := 'X'; - - signal GNDI: Std_logic; - component gnd - port (PWR0: out Std_logic); - end component; - component xo2iobuf0068 - port (I: in Std_logic; T: in Std_logic; PAD: out Std_logic); - end component; - begin - UFMSDI_pad: xo2iobuf0068 - port map (I=>PADDO_ipd, T=>GNDI, PAD=>UFMSDIS_out); - DRIVEGND: gnd - port map (PWR0=>GNDI); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); - END BLOCK; - - VitalBehavior : PROCESS (PADDO_ipd, UFMSDIS_out) - VARIABLE UFMSDIS_zd : std_logic := 'X'; - VARIABLE UFMSDIS_GlitchData : VitalGlitchDataType; - - - BEGIN - - IF (TimingChecksOn) THEN - - END IF; - - UFMSDIS_zd := UFMSDIS_out; - - VitalPathDelay01 ( - OutSignal => UFMSDIS, OutSignalName => "UFMSDIS", OutTemp => UFMSDIS_zd, - Paths => (0 => (InputChangeTime => PADDO_ipd'last_event, - PathDelay => tpd_PADDO_UFMSDIS, - PathCondition => TRUE)), - GlitchData => UFMSDIS_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity xo2iobuf0069 - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity xo2iobuf0069 is + entity xo2iobuf0090 is port (Z: out Std_logic; PAD: in Std_logic); - ATTRIBUTE Vital_Level0 OF xo2iobuf0069 : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF xo2iobuf0090 : ENTITY IS TRUE; - end xo2iobuf0069; + end xo2iobuf0090; - architecture Structure of xo2iobuf0069 is + architecture Structure of xo2iobuf0090 is begin - INST1: IBPD + INST1: IBPU port map (I=>PAD, O=>Z); end Structure; --- entity PHI2B +-- entity nFWEB library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity PHI2B is + entity nFWEB is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "PHI2B"; + InstancePath : string := "nFWEB"; - tipd_PHI2S : VitalDelayType01 := (0 ns, 0 ns); - tpd_PHI2S_PADDI : VitalDelayType01 := (0 ns, 0 ns); - tperiod_PHI2S : VitalDelayType := 0 ns; - tpw_PHI2S_posedge : VitalDelayType := 0 ns; - tpw_PHI2S_negedge : VitalDelayType := 0 ns); + tipd_nFWES : VitalDelayType01 := (0 ns, 0 ns); + tpd_nFWES_PADDI : VitalDelayType01 := (0 ns, 0 ns); + tperiod_nFWES : VitalDelayType := 0 ns; + tpw_nFWES_posedge : VitalDelayType := 0 ns; + tpw_nFWES_negedge : VitalDelayType := 0 ns); - port (PADDI: out Std_logic; PHI2S: in Std_logic); + port (PADDI: out Std_logic; nFWES: in Std_logic); - ATTRIBUTE Vital_Level0 OF PHI2B : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF nFWEB : ENTITY IS TRUE; - end PHI2B; + end nFWEB; - architecture Structure of PHI2B is + architecture Structure of nFWEB is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; signal PADDI_out : std_logic := 'X'; - signal PHI2S_ipd : std_logic := 'X'; + signal nFWES_ipd : std_logic := 'X'; - component xo2iobuf0069 + component xo2iobuf0090 port (Z: out Std_logic; PAD: in Std_logic); end component; begin - PHI2_pad: xo2iobuf0069 - port map (Z=>PADDI_out, PAD=>PHI2S_ipd); + nFWE_pad: xo2iobuf0090 + port map (Z=>PADDI_out, PAD=>nFWES_ipd); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN - VitalWireDelay(PHI2S_ipd, PHI2S, tipd_PHI2S); + VitalWireDelay(nFWES_ipd, nFWES, tipd_nFWES); END BLOCK; - VitalBehavior : PROCESS (PADDI_out, PHI2S_ipd) + VitalBehavior : PROCESS (PADDI_out, nFWES_ipd) VARIABLE PADDI_zd : std_logic := 'X'; VARIABLE PADDI_GlitchData : VitalGlitchDataType; - VARIABLE tviol_PHI2S_PHI2S : x01 := '0'; - VARIABLE periodcheckinfo_PHI2S : VitalPeriodDataType; + VARIABLE tviol_nFWES_nFWES : x01 := '0'; + VARIABLE periodcheckinfo_nFWES : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN VitalPeriodPulseCheck ( - TestSignal => PHI2S_ipd, - TestSignalName => "PHI2S", - Period => tperiod_PHI2S, - PulseWidthHigh => tpw_PHI2S_posedge, - PulseWidthLow => tpw_PHI2S_negedge, - PeriodData => periodcheckinfo_PHI2S, - Violation => tviol_PHI2S_PHI2S, + TestSignal => nFWES_ipd, + TestSignalName => "nFWES", + Period => tperiod_nFWES, + PulseWidthHigh => tpw_nFWES_posedge, + PulseWidthLow => tpw_nFWES_negedge, + PeriodData => periodcheckinfo_nFWES, + Violation => tviol_nFWES_nFWES, MsgOn => MsgOn, XOn => XOn, HeaderMsg => InstancePath, CheckEnabled => TRUE, @@ -22828,8 +22775,8 @@ VitalPathDelay01 ( OutSignal => PADDI, OutSignalName => "PADDI", OutTemp => PADDI_zd, - Paths => (0 => (InputChangeTime => PHI2S_ipd'last_event, - PathDelay => tpd_PHI2S_PADDI, + Paths => (0 => (InputChangeTime => nFWES_ipd'last_event, + PathDelay => tpd_nFWES_PADDI, PathCondition => TRUE)), GlitchData => PADDI_GlitchData, Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); @@ -22838,69 +22785,69 @@ end Structure; --- entity MAin_9_B +-- entity nCRASB library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity MAin_9_B is + entity nCRASB is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "MAin_9_B"; + InstancePath : string := "nCRASB"; - tipd_MAin9 : VitalDelayType01 := (0 ns, 0 ns); - tpd_MAin9_PADDI : VitalDelayType01 := (0 ns, 0 ns); - tperiod_MAin9 : VitalDelayType := 0 ns; - tpw_MAin9_posedge : VitalDelayType := 0 ns; - tpw_MAin9_negedge : VitalDelayType := 0 ns); + tipd_nCRASS : VitalDelayType01 := (0 ns, 0 ns); + tpd_nCRASS_PADDI : VitalDelayType01 := (0 ns, 0 ns); + tperiod_nCRASS : VitalDelayType := 0 ns; + tpw_nCRASS_posedge : VitalDelayType := 0 ns; + tpw_nCRASS_negedge : VitalDelayType := 0 ns); - port (PADDI: out Std_logic; MAin9: in Std_logic); + port (PADDI: out Std_logic; nCRASS: in Std_logic); - ATTRIBUTE Vital_Level0 OF MAin_9_B : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF nCRASB : ENTITY IS TRUE; - end MAin_9_B; + end nCRASB; - architecture Structure of MAin_9_B is + architecture Structure of nCRASB is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; signal PADDI_out : std_logic := 'X'; - signal MAin9_ipd : std_logic := 'X'; + signal nCRASS_ipd : std_logic := 'X'; - component xo2iobuf0069 + component xo2iobuf0090 port (Z: out Std_logic; PAD: in Std_logic); end component; begin - MAin_pad_9: xo2iobuf0069 - port map (Z=>PADDI_out, PAD=>MAin9_ipd); + nCRAS_pad: xo2iobuf0090 + port map (Z=>PADDI_out, PAD=>nCRASS_ipd); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN - VitalWireDelay(MAin9_ipd, MAin9, tipd_MAin9); + VitalWireDelay(nCRASS_ipd, nCRASS, tipd_nCRASS); END BLOCK; - VitalBehavior : PROCESS (PADDI_out, MAin9_ipd) + VitalBehavior : PROCESS (PADDI_out, nCRASS_ipd) VARIABLE PADDI_zd : std_logic := 'X'; VARIABLE PADDI_GlitchData : VitalGlitchDataType; - VARIABLE tviol_MAin9_MAin9 : x01 := '0'; - VARIABLE periodcheckinfo_MAin9 : VitalPeriodDataType; + VARIABLE tviol_nCRASS_nCRASS : x01 := '0'; + VARIABLE periodcheckinfo_nCRASS : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN VitalPeriodPulseCheck ( - TestSignal => MAin9_ipd, - TestSignalName => "MAin9", - Period => tperiod_MAin9, - PulseWidthHigh => tpw_MAin9_posedge, - PulseWidthLow => tpw_MAin9_negedge, - PeriodData => periodcheckinfo_MAin9, - Violation => tviol_MAin9_MAin9, + TestSignal => nCRASS_ipd, + TestSignalName => "nCRASS", + Period => tperiod_nCRASS, + PulseWidthHigh => tpw_nCRASS_posedge, + PulseWidthLow => tpw_nCRASS_negedge, + PeriodData => periodcheckinfo_nCRASS, + Violation => tviol_nCRASS_nCRASS, MsgOn => MsgOn, XOn => XOn, HeaderMsg => InstancePath, CheckEnabled => TRUE, @@ -22912,8 +22859,8 @@ VitalPathDelay01 ( OutSignal => PADDI, OutSignalName => "PADDI", OutTemp => PADDI_zd, - Paths => (0 => (InputChangeTime => MAin9_ipd'last_event, - PathDelay => tpd_MAin9_PADDI, + Paths => (0 => (InputChangeTime => nCRASS_ipd'last_event, + PathDelay => tpd_nCRASS_PADDI, PathCondition => TRUE)), GlitchData => PADDI_GlitchData, Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); @@ -22922,69 +22869,69 @@ end Structure; --- entity MAin_8_B +-- entity nCCASB library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity MAin_8_B is + entity nCCASB is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "MAin_8_B"; + InstancePath : string := "nCCASB"; - tipd_MAin8 : VitalDelayType01 := (0 ns, 0 ns); - tpd_MAin8_PADDI : VitalDelayType01 := (0 ns, 0 ns); - tperiod_MAin8 : VitalDelayType := 0 ns; - tpw_MAin8_posedge : VitalDelayType := 0 ns; - tpw_MAin8_negedge : VitalDelayType := 0 ns); + tipd_nCCASS : VitalDelayType01 := (0 ns, 0 ns); + tpd_nCCASS_PADDI : VitalDelayType01 := (0 ns, 0 ns); + tperiod_nCCASS : VitalDelayType := 0 ns; + tpw_nCCASS_posedge : VitalDelayType := 0 ns; + tpw_nCCASS_negedge : VitalDelayType := 0 ns); - port (PADDI: out Std_logic; MAin8: in Std_logic); + port (PADDI: out Std_logic; nCCASS: in Std_logic); - ATTRIBUTE Vital_Level0 OF MAin_8_B : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF nCCASB : ENTITY IS TRUE; - end MAin_8_B; + end nCCASB; - architecture Structure of MAin_8_B is + architecture Structure of nCCASB is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; signal PADDI_out : std_logic := 'X'; - signal MAin8_ipd : std_logic := 'X'; + signal nCCASS_ipd : std_logic := 'X'; - component xo2iobuf0069 + component xo2iobuf0090 port (Z: out Std_logic; PAD: in Std_logic); end component; begin - MAin_pad_8: xo2iobuf0069 - port map (Z=>PADDI_out, PAD=>MAin8_ipd); + nCCAS_pad: xo2iobuf0090 + port map (Z=>PADDI_out, PAD=>nCCASS_ipd); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN - VitalWireDelay(MAin8_ipd, MAin8, tipd_MAin8); + VitalWireDelay(nCCASS_ipd, nCCASS, tipd_nCCASS); END BLOCK; - VitalBehavior : PROCESS (PADDI_out, MAin8_ipd) + VitalBehavior : PROCESS (PADDI_out, nCCASS_ipd) VARIABLE PADDI_zd : std_logic := 'X'; VARIABLE PADDI_GlitchData : VitalGlitchDataType; - VARIABLE tviol_MAin8_MAin8 : x01 := '0'; - VARIABLE periodcheckinfo_MAin8 : VitalPeriodDataType; + VARIABLE tviol_nCCASS_nCCASS : x01 := '0'; + VARIABLE periodcheckinfo_nCCASS : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN VitalPeriodPulseCheck ( - TestSignal => MAin8_ipd, - TestSignalName => "MAin8", - Period => tperiod_MAin8, - PulseWidthHigh => tpw_MAin8_posedge, - PulseWidthLow => tpw_MAin8_negedge, - PeriodData => periodcheckinfo_MAin8, - Violation => tviol_MAin8_MAin8, + TestSignal => nCCASS_ipd, + TestSignalName => "nCCASS", + Period => tperiod_nCCASS, + PulseWidthHigh => tpw_nCCASS_posedge, + PulseWidthLow => tpw_nCCASS_negedge, + PeriodData => periodcheckinfo_nCCASS, + Violation => tviol_nCCASS_nCCASS, MsgOn => MsgOn, XOn => XOn, HeaderMsg => InstancePath, CheckEnabled => TRUE, @@ -22996,8 +22943,8 @@ VitalPathDelay01 ( OutSignal => PADDI, OutSignalName => "PADDI", OutTemp => PADDI_zd, - Paths => (0 => (InputChangeTime => MAin8_ipd'last_event, - PathDelay => tpd_MAin8_PADDI, + Paths => (0 => (InputChangeTime => nCCASS_ipd'last_event, + PathDelay => tpd_nCCASS_PADDI, PathCondition => TRUE)), GlitchData => PADDI_GlitchData, Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); @@ -23006,69 +22953,538 @@ end Structure; --- entity MAin_7_B +-- entity Dout_7_B library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity MAin_7_B is + entity Dout_7_B is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "MAin_7_B"; + InstancePath : string := "Dout_7_B"; - tipd_MAin7 : VitalDelayType01 := (0 ns, 0 ns); - tpd_MAin7_PADDI : VitalDelayType01 := (0 ns, 0 ns); - tperiod_MAin7 : VitalDelayType := 0 ns; - tpw_MAin7_posedge : VitalDelayType := 0 ns; - tpw_MAin7_negedge : VitalDelayType := 0 ns); + tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); + tpd_PADDO_Dout7 : VitalDelayType01 := (0 ns, 0 ns)); - port (PADDI: out Std_logic; MAin7: in Std_logic); + port (PADDO: in Std_logic; Dout7: out Std_logic); - ATTRIBUTE Vital_Level0 OF MAin_7_B : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF Dout_7_B : ENTITY IS TRUE; - end MAin_7_B; + end Dout_7_B; - architecture Structure of MAin_7_B is + architecture Structure of Dout_7_B is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - signal PADDI_out : std_logic := 'X'; - signal MAin7_ipd : std_logic := 'X'; + signal PADDO_ipd : std_logic := 'X'; + signal Dout7_out : std_logic := 'X'; - component xo2iobuf0069 - port (Z: out Std_logic; PAD: in Std_logic); + component xo2iobuf0084 + port (I: in Std_logic; PAD: out Std_logic); end component; begin - MAin_pad_7: xo2iobuf0069 - port map (Z=>PADDI_out, PAD=>MAin7_ipd); + Dout_pad_7: xo2iobuf0084 + port map (I=>PADDO_ipd, PAD=>Dout7_out); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN - VitalWireDelay(MAin7_ipd, MAin7, tipd_MAin7); + VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); END BLOCK; - VitalBehavior : PROCESS (PADDI_out, MAin7_ipd) + VitalBehavior : PROCESS (PADDO_ipd, Dout7_out) + VARIABLE Dout7_zd : std_logic := 'X'; + VARIABLE Dout7_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + Dout7_zd := Dout7_out; + + VitalPathDelay01 ( + OutSignal => Dout7, OutSignalName => "Dout7", OutTemp => Dout7_zd, + Paths => (0 => (InputChangeTime => PADDO_ipd'last_event, + PathDelay => tpd_PADDO_Dout7, + PathCondition => TRUE)), + GlitchData => Dout7_GlitchData, + Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity Dout_6_B + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity Dout_6_B is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "Dout_6_B"; + + tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); + tpd_PADDO_Dout6 : VitalDelayType01 := (0 ns, 0 ns)); + + port (PADDO: in Std_logic; Dout6: out Std_logic); + + ATTRIBUTE Vital_Level0 OF Dout_6_B : ENTITY IS TRUE; + + end Dout_6_B; + + architecture Structure of Dout_6_B is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal PADDO_ipd : std_logic := 'X'; + signal Dout6_out : std_logic := 'X'; + + component xo2iobuf0084 + port (I: in Std_logic; PAD: out Std_logic); + end component; + begin + Dout_pad_6: xo2iobuf0084 + port map (I=>PADDO_ipd, PAD=>Dout6_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); + END BLOCK; + + VitalBehavior : PROCESS (PADDO_ipd, Dout6_out) + VARIABLE Dout6_zd : std_logic := 'X'; + VARIABLE Dout6_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + Dout6_zd := Dout6_out; + + VitalPathDelay01 ( + OutSignal => Dout6, OutSignalName => "Dout6", OutTemp => Dout6_zd, + Paths => (0 => (InputChangeTime => PADDO_ipd'last_event, + PathDelay => tpd_PADDO_Dout6, + PathCondition => TRUE)), + GlitchData => Dout6_GlitchData, + Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity Dout_5_B + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity Dout_5_B is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "Dout_5_B"; + + tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); + tpd_PADDO_Dout5 : VitalDelayType01 := (0 ns, 0 ns)); + + port (PADDO: in Std_logic; Dout5: out Std_logic); + + ATTRIBUTE Vital_Level0 OF Dout_5_B : ENTITY IS TRUE; + + end Dout_5_B; + + architecture Structure of Dout_5_B is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal PADDO_ipd : std_logic := 'X'; + signal Dout5_out : std_logic := 'X'; + + component xo2iobuf0084 + port (I: in Std_logic; PAD: out Std_logic); + end component; + begin + Dout_pad_5: xo2iobuf0084 + port map (I=>PADDO_ipd, PAD=>Dout5_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); + END BLOCK; + + VitalBehavior : PROCESS (PADDO_ipd, Dout5_out) + VARIABLE Dout5_zd : std_logic := 'X'; + VARIABLE Dout5_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + Dout5_zd := Dout5_out; + + VitalPathDelay01 ( + OutSignal => Dout5, OutSignalName => "Dout5", OutTemp => Dout5_zd, + Paths => (0 => (InputChangeTime => PADDO_ipd'last_event, + PathDelay => tpd_PADDO_Dout5, + PathCondition => TRUE)), + GlitchData => Dout5_GlitchData, + Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity Dout_4_B + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity Dout_4_B is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "Dout_4_B"; + + tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); + tpd_PADDO_Dout4 : VitalDelayType01 := (0 ns, 0 ns)); + + port (PADDO: in Std_logic; Dout4: out Std_logic); + + ATTRIBUTE Vital_Level0 OF Dout_4_B : ENTITY IS TRUE; + + end Dout_4_B; + + architecture Structure of Dout_4_B is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal PADDO_ipd : std_logic := 'X'; + signal Dout4_out : std_logic := 'X'; + + component xo2iobuf0084 + port (I: in Std_logic; PAD: out Std_logic); + end component; + begin + Dout_pad_4: xo2iobuf0084 + port map (I=>PADDO_ipd, PAD=>Dout4_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); + END BLOCK; + + VitalBehavior : PROCESS (PADDO_ipd, Dout4_out) + VARIABLE Dout4_zd : std_logic := 'X'; + VARIABLE Dout4_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + Dout4_zd := Dout4_out; + + VitalPathDelay01 ( + OutSignal => Dout4, OutSignalName => "Dout4", OutTemp => Dout4_zd, + Paths => (0 => (InputChangeTime => PADDO_ipd'last_event, + PathDelay => tpd_PADDO_Dout4, + PathCondition => TRUE)), + GlitchData => Dout4_GlitchData, + Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity Dout_3_B + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity Dout_3_B is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "Dout_3_B"; + + tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); + tpd_PADDO_Dout3 : VitalDelayType01 := (0 ns, 0 ns)); + + port (PADDO: in Std_logic; Dout3: out Std_logic); + + ATTRIBUTE Vital_Level0 OF Dout_3_B : ENTITY IS TRUE; + + end Dout_3_B; + + architecture Structure of Dout_3_B is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal PADDO_ipd : std_logic := 'X'; + signal Dout3_out : std_logic := 'X'; + + component xo2iobuf0084 + port (I: in Std_logic; PAD: out Std_logic); + end component; + begin + Dout_pad_3: xo2iobuf0084 + port map (I=>PADDO_ipd, PAD=>Dout3_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); + END BLOCK; + + VitalBehavior : PROCESS (PADDO_ipd, Dout3_out) + VARIABLE Dout3_zd : std_logic := 'X'; + VARIABLE Dout3_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + Dout3_zd := Dout3_out; + + VitalPathDelay01 ( + OutSignal => Dout3, OutSignalName => "Dout3", OutTemp => Dout3_zd, + Paths => (0 => (InputChangeTime => PADDO_ipd'last_event, + PathDelay => tpd_PADDO_Dout3, + PathCondition => TRUE)), + GlitchData => Dout3_GlitchData, + Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity Dout_2_B + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity Dout_2_B is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "Dout_2_B"; + + tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); + tpd_PADDO_Dout2 : VitalDelayType01 := (0 ns, 0 ns)); + + port (PADDO: in Std_logic; Dout2: out Std_logic); + + ATTRIBUTE Vital_Level0 OF Dout_2_B : ENTITY IS TRUE; + + end Dout_2_B; + + architecture Structure of Dout_2_B is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal PADDO_ipd : std_logic := 'X'; + signal Dout2_out : std_logic := 'X'; + + component xo2iobuf0084 + port (I: in Std_logic; PAD: out Std_logic); + end component; + begin + Dout_pad_2: xo2iobuf0084 + port map (I=>PADDO_ipd, PAD=>Dout2_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); + END BLOCK; + + VitalBehavior : PROCESS (PADDO_ipd, Dout2_out) + VARIABLE Dout2_zd : std_logic := 'X'; + VARIABLE Dout2_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + Dout2_zd := Dout2_out; + + VitalPathDelay01 ( + OutSignal => Dout2, OutSignalName => "Dout2", OutTemp => Dout2_zd, + Paths => (0 => (InputChangeTime => PADDO_ipd'last_event, + PathDelay => tpd_PADDO_Dout2, + PathCondition => TRUE)), + GlitchData => Dout2_GlitchData, + Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity Dout_1_B + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity Dout_1_B is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "Dout_1_B"; + + tipd_PADDO : VitalDelayType01 := (0 ns, 0 ns); + tpd_PADDO_Dout1 : VitalDelayType01 := (0 ns, 0 ns)); + + port (PADDO: in Std_logic; Dout1: out Std_logic); + + ATTRIBUTE Vital_Level0 OF Dout_1_B : ENTITY IS TRUE; + + end Dout_1_B; + + architecture Structure of Dout_1_B is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal PADDO_ipd : std_logic := 'X'; + signal Dout1_out : std_logic := 'X'; + + component xo2iobuf0084 + port (I: in Std_logic; PAD: out Std_logic); + end component; + begin + Dout_pad_1: xo2iobuf0084 + port map (I=>PADDO_ipd, PAD=>Dout1_out); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(PADDO_ipd, PADDO, tipd_PADDO); + END BLOCK; + + VitalBehavior : PROCESS (PADDO_ipd, Dout1_out) + VARIABLE Dout1_zd : std_logic := 'X'; + VARIABLE Dout1_GlitchData : VitalGlitchDataType; + + + BEGIN + + IF (TimingChecksOn) THEN + + END IF; + + Dout1_zd := Dout1_out; + + VitalPathDelay01 ( + OutSignal => Dout1, OutSignalName => "Dout1", OutTemp => Dout1_zd, + Paths => (0 => (InputChangeTime => PADDO_ipd'last_event, + PathDelay => tpd_PADDO_Dout1, + PathCondition => TRUE)), + GlitchData => Dout1_GlitchData, + Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity Din_7_B + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity Din_7_B is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "Din_7_B"; + + tipd_Din7 : VitalDelayType01 := (0 ns, 0 ns); + tpd_Din7_PADDI : VitalDelayType01 := (0 ns, 0 ns); + tperiod_Din7 : VitalDelayType := 0 ns; + tpw_Din7_posedge : VitalDelayType := 0 ns; + tpw_Din7_negedge : VitalDelayType := 0 ns); + + port (PADDI: out Std_logic; Din7: in Std_logic); + + ATTRIBUTE Vital_Level0 OF Din_7_B : ENTITY IS TRUE; + + end Din_7_B; + + architecture Structure of Din_7_B is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal PADDI_out : std_logic := 'X'; + signal Din7_ipd : std_logic := 'X'; + + component xo2iobuf0086 + port (Z: out Std_logic; PAD: in Std_logic); + end component; + begin + Din_pad_7: xo2iobuf0086 + port map (Z=>PADDI_out, PAD=>Din7_ipd); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(Din7_ipd, Din7, tipd_Din7); + END BLOCK; + + VitalBehavior : PROCESS (PADDI_out, Din7_ipd) VARIABLE PADDI_zd : std_logic := 'X'; VARIABLE PADDI_GlitchData : VitalGlitchDataType; - VARIABLE tviol_MAin7_MAin7 : x01 := '0'; - VARIABLE periodcheckinfo_MAin7 : VitalPeriodDataType; + VARIABLE tviol_Din7_Din7 : x01 := '0'; + VARIABLE periodcheckinfo_Din7 : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN VitalPeriodPulseCheck ( - TestSignal => MAin7_ipd, - TestSignalName => "MAin7", - Period => tperiod_MAin7, - PulseWidthHigh => tpw_MAin7_posedge, - PulseWidthLow => tpw_MAin7_negedge, - PeriodData => periodcheckinfo_MAin7, - Violation => tviol_MAin7_MAin7, + TestSignal => Din7_ipd, + TestSignalName => "Din7", + Period => tperiod_Din7, + PulseWidthHigh => tpw_Din7_posedge, + PulseWidthLow => tpw_Din7_negedge, + PeriodData => periodcheckinfo_Din7, + Violation => tviol_Din7_Din7, MsgOn => MsgOn, XOn => XOn, HeaderMsg => InstancePath, CheckEnabled => TRUE, @@ -23080,8 +23496,8 @@ VitalPathDelay01 ( OutSignal => PADDI, OutSignalName => "PADDI", OutTemp => PADDI_zd, - Paths => (0 => (InputChangeTime => MAin7_ipd'last_event, - PathDelay => tpd_MAin7_PADDI, + Paths => (0 => (InputChangeTime => Din7_ipd'last_event, + PathDelay => tpd_Din7_PADDI, PathCondition => TRUE)), GlitchData => PADDI_GlitchData, Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); @@ -23090,69 +23506,202 @@ end Structure; --- entity MAin_6_B +-- entity Din_7_MGIOL library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity MAin_6_B is + entity Din_7_MGIOL is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "MAin_6_B"; + InstancePath : string := "Din_7_MGIOL"; - tipd_MAin6 : VitalDelayType01 := (0 ns, 0 ns); - tpd_MAin6_PADDI : VitalDelayType01 := (0 ns, 0 ns); - tperiod_MAin6 : VitalDelayType := 0 ns; - tpw_MAin6_posedge : VitalDelayType := 0 ns; - tpw_MAin6_negedge : VitalDelayType := 0 ns); + tipd_DI : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_INP : VitalDelayType01 := (0 ns, 0 ns); + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI_CLK : VitalDelayType := 0 ns; + tsetup_DI_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_DI_CLK_noedge_posedge : VitalDelayType := 0 ns; + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns); - port (PADDI: out Std_logic; MAin6: in Std_logic); + port (DI: in Std_logic; CLK: in Std_logic; INP: out Std_logic); - ATTRIBUTE Vital_Level0 OF MAin_6_B : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF Din_7_MGIOL : ENTITY IS TRUE; - end MAin_6_B; + end Din_7_MGIOL; - architecture Structure of MAin_6_B is + architecture Structure of Din_7_MGIOL is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - signal PADDI_out : std_logic := 'X'; - signal MAin6_ipd : std_logic := 'X'; + signal DI_ipd : std_logic := 'X'; + signal DI_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal INP_out : std_logic := 'X'; - component xo2iobuf0069 - port (Z: out Std_logic; PAD: in Std_logic); + signal VCCI: Std_logic; + signal GNDI: Std_logic; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component smuxlregsre + port (D0: in Std_logic; SP: in Std_logic; CK: in Std_logic; + LSR: in Std_logic; Q: out Std_logic); end component; begin - MAin_pad_6: xo2iobuf0069 - port map (Z=>PADDI_out, PAD=>MAin6_ipd); + Bank_0io_7: smuxlregsre + port map (D0=>DI_dly, SP=>VCCI, CK=>CLK_dly, LSR=>GNDI, Q=>INP_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + DRIVEGND: gnd + port map (PWR0=>GNDI); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN - VitalWireDelay(MAin6_ipd, MAin6, tipd_MAin6); + VitalWireDelay(DI_ipd, DI, tipd_DI); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); END BLOCK; - VitalBehavior : PROCESS (PADDI_out, MAin6_ipd) + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI_dly, DI_ipd, tisd_DI_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (DI_dly, CLK_dly, INP_out) + VARIABLE INP_zd : std_logic := 'X'; + VARIABLE INP_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_DI_CLK : x01 := '0'; + VARIABLE DI_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI_dly, + TestSignalName => "DI", + TestDelay => tisd_DI_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI_CLK_noedge_posedge, + SetupLow => tsetup_DI_CLK_noedge_posedge, + HoldHigh => thold_DI_CLK_noedge_posedge, + HoldLow => thold_DI_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI_CLK_TimingDatash, + Violation => tviol_DI_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + INP_zd := INP_out; + + VitalPathDelay01 ( + OutSignal => INP, OutSignalName => "INP", OutTemp => INP_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_INP, + PathCondition => TRUE)), + GlitchData => INP_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity Din_6_B + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity Din_6_B is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "Din_6_B"; + + tipd_Din6 : VitalDelayType01 := (0 ns, 0 ns); + tpd_Din6_PADDI : VitalDelayType01 := (0 ns, 0 ns); + tperiod_Din6 : VitalDelayType := 0 ns; + tpw_Din6_posedge : VitalDelayType := 0 ns; + tpw_Din6_negedge : VitalDelayType := 0 ns); + + port (PADDI: out Std_logic; Din6: in Std_logic); + + ATTRIBUTE Vital_Level0 OF Din_6_B : ENTITY IS TRUE; + + end Din_6_B; + + architecture Structure of Din_6_B is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal PADDI_out : std_logic := 'X'; + signal Din6_ipd : std_logic := 'X'; + + component xo2iobuf0086 + port (Z: out Std_logic; PAD: in Std_logic); + end component; + begin + Din_pad_6: xo2iobuf0086 + port map (Z=>PADDI_out, PAD=>Din6_ipd); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(Din6_ipd, Din6, tipd_Din6); + END BLOCK; + + VitalBehavior : PROCESS (PADDI_out, Din6_ipd) VARIABLE PADDI_zd : std_logic := 'X'; VARIABLE PADDI_GlitchData : VitalGlitchDataType; - VARIABLE tviol_MAin6_MAin6 : x01 := '0'; - VARIABLE periodcheckinfo_MAin6 : VitalPeriodDataType; + VARIABLE tviol_Din6_Din6 : x01 := '0'; + VARIABLE periodcheckinfo_Din6 : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN VitalPeriodPulseCheck ( - TestSignal => MAin6_ipd, - TestSignalName => "MAin6", - Period => tperiod_MAin6, - PulseWidthHigh => tpw_MAin6_posedge, - PulseWidthLow => tpw_MAin6_negedge, - PeriodData => periodcheckinfo_MAin6, - Violation => tviol_MAin6_MAin6, + TestSignal => Din6_ipd, + TestSignalName => "Din6", + Period => tperiod_Din6, + PulseWidthHigh => tpw_Din6_posedge, + PulseWidthLow => tpw_Din6_negedge, + PeriodData => periodcheckinfo_Din6, + Violation => tviol_Din6_Din6, MsgOn => MsgOn, XOn => XOn, HeaderMsg => InstancePath, CheckEnabled => TRUE, @@ -23164,8 +23713,8 @@ VitalPathDelay01 ( OutSignal => PADDI, OutSignalName => "PADDI", OutTemp => PADDI_zd, - Paths => (0 => (InputChangeTime => MAin6_ipd'last_event, - PathDelay => tpd_MAin6_PADDI, + Paths => (0 => (InputChangeTime => Din6_ipd'last_event, + PathDelay => tpd_Din6_PADDI, PathCondition => TRUE)), GlitchData => PADDI_GlitchData, Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); @@ -23174,69 +23723,202 @@ end Structure; --- entity MAin_5_B +-- entity Din_6_MGIOL library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity MAin_5_B is + entity Din_6_MGIOL is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "MAin_5_B"; + InstancePath : string := "Din_6_MGIOL"; - tipd_MAin5 : VitalDelayType01 := (0 ns, 0 ns); - tpd_MAin5_PADDI : VitalDelayType01 := (0 ns, 0 ns); - tperiod_MAin5 : VitalDelayType := 0 ns; - tpw_MAin5_posedge : VitalDelayType := 0 ns; - tpw_MAin5_negedge : VitalDelayType := 0 ns); + tipd_DI : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_INP : VitalDelayType01 := (0 ns, 0 ns); + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI_CLK : VitalDelayType := 0 ns; + tsetup_DI_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_DI_CLK_noedge_posedge : VitalDelayType := 0 ns; + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns); - port (PADDI: out Std_logic; MAin5: in Std_logic); + port (DI: in Std_logic; CLK: in Std_logic; INP: out Std_logic); - ATTRIBUTE Vital_Level0 OF MAin_5_B : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF Din_6_MGIOL : ENTITY IS TRUE; - end MAin_5_B; + end Din_6_MGIOL; - architecture Structure of MAin_5_B is + architecture Structure of Din_6_MGIOL is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - signal PADDI_out : std_logic := 'X'; - signal MAin5_ipd : std_logic := 'X'; + signal DI_ipd : std_logic := 'X'; + signal DI_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal INP_out : std_logic := 'X'; - component xo2iobuf0069 - port (Z: out Std_logic; PAD: in Std_logic); + signal VCCI: Std_logic; + signal GNDI: Std_logic; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component smuxlregsre + port (D0: in Std_logic; SP: in Std_logic; CK: in Std_logic; + LSR: in Std_logic; Q: out Std_logic); end component; begin - MAin_pad_5: xo2iobuf0069 - port map (Z=>PADDI_out, PAD=>MAin5_ipd); + Bank_0io_6: smuxlregsre + port map (D0=>DI_dly, SP=>VCCI, CK=>CLK_dly, LSR=>GNDI, Q=>INP_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + DRIVEGND: gnd + port map (PWR0=>GNDI); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN - VitalWireDelay(MAin5_ipd, MAin5, tipd_MAin5); + VitalWireDelay(DI_ipd, DI, tipd_DI); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); END BLOCK; - VitalBehavior : PROCESS (PADDI_out, MAin5_ipd) + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI_dly, DI_ipd, tisd_DI_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (DI_dly, CLK_dly, INP_out) + VARIABLE INP_zd : std_logic := 'X'; + VARIABLE INP_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_DI_CLK : x01 := '0'; + VARIABLE DI_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI_dly, + TestSignalName => "DI", + TestDelay => tisd_DI_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI_CLK_noedge_posedge, + SetupLow => tsetup_DI_CLK_noedge_posedge, + HoldHigh => thold_DI_CLK_noedge_posedge, + HoldLow => thold_DI_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI_CLK_TimingDatash, + Violation => tviol_DI_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + INP_zd := INP_out; + + VitalPathDelay01 ( + OutSignal => INP, OutSignalName => "INP", OutTemp => INP_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_INP, + PathCondition => TRUE)), + GlitchData => INP_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity Din_5_B + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity Din_5_B is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "Din_5_B"; + + tipd_Din5 : VitalDelayType01 := (0 ns, 0 ns); + tpd_Din5_PADDI : VitalDelayType01 := (0 ns, 0 ns); + tperiod_Din5 : VitalDelayType := 0 ns; + tpw_Din5_posedge : VitalDelayType := 0 ns; + tpw_Din5_negedge : VitalDelayType := 0 ns); + + port (PADDI: out Std_logic; Din5: in Std_logic); + + ATTRIBUTE Vital_Level0 OF Din_5_B : ENTITY IS TRUE; + + end Din_5_B; + + architecture Structure of Din_5_B is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal PADDI_out : std_logic := 'X'; + signal Din5_ipd : std_logic := 'X'; + + component xo2iobuf0086 + port (Z: out Std_logic; PAD: in Std_logic); + end component; + begin + Din_pad_5: xo2iobuf0086 + port map (Z=>PADDI_out, PAD=>Din5_ipd); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(Din5_ipd, Din5, tipd_Din5); + END BLOCK; + + VitalBehavior : PROCESS (PADDI_out, Din5_ipd) VARIABLE PADDI_zd : std_logic := 'X'; VARIABLE PADDI_GlitchData : VitalGlitchDataType; - VARIABLE tviol_MAin5_MAin5 : x01 := '0'; - VARIABLE periodcheckinfo_MAin5 : VitalPeriodDataType; + VARIABLE tviol_Din5_Din5 : x01 := '0'; + VARIABLE periodcheckinfo_Din5 : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN VitalPeriodPulseCheck ( - TestSignal => MAin5_ipd, - TestSignalName => "MAin5", - Period => tperiod_MAin5, - PulseWidthHigh => tpw_MAin5_posedge, - PulseWidthLow => tpw_MAin5_negedge, - PeriodData => periodcheckinfo_MAin5, - Violation => tviol_MAin5_MAin5, + TestSignal => Din5_ipd, + TestSignalName => "Din5", + Period => tperiod_Din5, + PulseWidthHigh => tpw_Din5_posedge, + PulseWidthLow => tpw_Din5_negedge, + PeriodData => periodcheckinfo_Din5, + Violation => tviol_Din5_Din5, MsgOn => MsgOn, XOn => XOn, HeaderMsg => InstancePath, CheckEnabled => TRUE, @@ -23248,8 +23930,8 @@ VitalPathDelay01 ( OutSignal => PADDI, OutSignalName => "PADDI", OutTemp => PADDI_zd, - Paths => (0 => (InputChangeTime => MAin5_ipd'last_event, - PathDelay => tpd_MAin5_PADDI, + Paths => (0 => (InputChangeTime => Din5_ipd'last_event, + PathDelay => tpd_Din5_PADDI, PathCondition => TRUE)), GlitchData => PADDI_GlitchData, Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); @@ -23258,69 +23940,202 @@ end Structure; --- entity MAin_4_B +-- entity Din_5_MGIOL library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity MAin_4_B is + entity Din_5_MGIOL is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "MAin_4_B"; + InstancePath : string := "Din_5_MGIOL"; - tipd_MAin4 : VitalDelayType01 := (0 ns, 0 ns); - tpd_MAin4_PADDI : VitalDelayType01 := (0 ns, 0 ns); - tperiod_MAin4 : VitalDelayType := 0 ns; - tpw_MAin4_posedge : VitalDelayType := 0 ns; - tpw_MAin4_negedge : VitalDelayType := 0 ns); + tipd_DI : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_INP : VitalDelayType01 := (0 ns, 0 ns); + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI_CLK : VitalDelayType := 0 ns; + tsetup_DI_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_DI_CLK_noedge_posedge : VitalDelayType := 0 ns; + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns); - port (PADDI: out Std_logic; MAin4: in Std_logic); + port (DI: in Std_logic; CLK: in Std_logic; INP: out Std_logic); - ATTRIBUTE Vital_Level0 OF MAin_4_B : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF Din_5_MGIOL : ENTITY IS TRUE; - end MAin_4_B; + end Din_5_MGIOL; - architecture Structure of MAin_4_B is + architecture Structure of Din_5_MGIOL is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - signal PADDI_out : std_logic := 'X'; - signal MAin4_ipd : std_logic := 'X'; + signal DI_ipd : std_logic := 'X'; + signal DI_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal INP_out : std_logic := 'X'; - component xo2iobuf0069 - port (Z: out Std_logic; PAD: in Std_logic); + signal VCCI: Std_logic; + signal GNDI: Std_logic; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component smuxlregsre + port (D0: in Std_logic; SP: in Std_logic; CK: in Std_logic; + LSR: in Std_logic; Q: out Std_logic); end component; begin - MAin_pad_4: xo2iobuf0069 - port map (Z=>PADDI_out, PAD=>MAin4_ipd); + Bank_0io_5: smuxlregsre + port map (D0=>DI_dly, SP=>VCCI, CK=>CLK_dly, LSR=>GNDI, Q=>INP_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + DRIVEGND: gnd + port map (PWR0=>GNDI); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN - VitalWireDelay(MAin4_ipd, MAin4, tipd_MAin4); + VitalWireDelay(DI_ipd, DI, tipd_DI); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); END BLOCK; - VitalBehavior : PROCESS (PADDI_out, MAin4_ipd) + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI_dly, DI_ipd, tisd_DI_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (DI_dly, CLK_dly, INP_out) + VARIABLE INP_zd : std_logic := 'X'; + VARIABLE INP_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_DI_CLK : x01 := '0'; + VARIABLE DI_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI_dly, + TestSignalName => "DI", + TestDelay => tisd_DI_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI_CLK_noedge_posedge, + SetupLow => tsetup_DI_CLK_noedge_posedge, + HoldHigh => thold_DI_CLK_noedge_posedge, + HoldLow => thold_DI_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI_CLK_TimingDatash, + Violation => tviol_DI_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + INP_zd := INP_out; + + VitalPathDelay01 ( + OutSignal => INP, OutSignalName => "INP", OutTemp => INP_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_INP, + PathCondition => TRUE)), + GlitchData => INP_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity Din_4_B + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity Din_4_B is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "Din_4_B"; + + tipd_Din4 : VitalDelayType01 := (0 ns, 0 ns); + tpd_Din4_PADDI : VitalDelayType01 := (0 ns, 0 ns); + tperiod_Din4 : VitalDelayType := 0 ns; + tpw_Din4_posedge : VitalDelayType := 0 ns; + tpw_Din4_negedge : VitalDelayType := 0 ns); + + port (PADDI: out Std_logic; Din4: in Std_logic); + + ATTRIBUTE Vital_Level0 OF Din_4_B : ENTITY IS TRUE; + + end Din_4_B; + + architecture Structure of Din_4_B is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal PADDI_out : std_logic := 'X'; + signal Din4_ipd : std_logic := 'X'; + + component xo2iobuf0086 + port (Z: out Std_logic; PAD: in Std_logic); + end component; + begin + Din_pad_4: xo2iobuf0086 + port map (Z=>PADDI_out, PAD=>Din4_ipd); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(Din4_ipd, Din4, tipd_Din4); + END BLOCK; + + VitalBehavior : PROCESS (PADDI_out, Din4_ipd) VARIABLE PADDI_zd : std_logic := 'X'; VARIABLE PADDI_GlitchData : VitalGlitchDataType; - VARIABLE tviol_MAin4_MAin4 : x01 := '0'; - VARIABLE periodcheckinfo_MAin4 : VitalPeriodDataType; + VARIABLE tviol_Din4_Din4 : x01 := '0'; + VARIABLE periodcheckinfo_Din4 : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN VitalPeriodPulseCheck ( - TestSignal => MAin4_ipd, - TestSignalName => "MAin4", - Period => tperiod_MAin4, - PulseWidthHigh => tpw_MAin4_posedge, - PulseWidthLow => tpw_MAin4_negedge, - PeriodData => periodcheckinfo_MAin4, - Violation => tviol_MAin4_MAin4, + TestSignal => Din4_ipd, + TestSignalName => "Din4", + Period => tperiod_Din4, + PulseWidthHigh => tpw_Din4_posedge, + PulseWidthLow => tpw_Din4_negedge, + PeriodData => periodcheckinfo_Din4, + Violation => tviol_Din4_Din4, MsgOn => MsgOn, XOn => XOn, HeaderMsg => InstancePath, CheckEnabled => TRUE, @@ -23332,8 +24147,8 @@ VitalPathDelay01 ( OutSignal => PADDI, OutSignalName => "PADDI", OutTemp => PADDI_zd, - Paths => (0 => (InputChangeTime => MAin4_ipd'last_event, - PathDelay => tpd_MAin4_PADDI, + Paths => (0 => (InputChangeTime => Din4_ipd'last_event, + PathDelay => tpd_Din4_PADDI, PathCondition => TRUE)), GlitchData => PADDI_GlitchData, Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); @@ -23342,69 +24157,202 @@ end Structure; --- entity MAin_3_B +-- entity Din_4_MGIOL library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity MAin_3_B is + entity Din_4_MGIOL is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "MAin_3_B"; + InstancePath : string := "Din_4_MGIOL"; - tipd_MAin3 : VitalDelayType01 := (0 ns, 0 ns); - tpd_MAin3_PADDI : VitalDelayType01 := (0 ns, 0 ns); - tperiod_MAin3 : VitalDelayType := 0 ns; - tpw_MAin3_posedge : VitalDelayType := 0 ns; - tpw_MAin3_negedge : VitalDelayType := 0 ns); + tipd_DI : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_INP : VitalDelayType01 := (0 ns, 0 ns); + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI_CLK : VitalDelayType := 0 ns; + tsetup_DI_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_DI_CLK_noedge_posedge : VitalDelayType := 0 ns; + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns); - port (PADDI: out Std_logic; MAin3: in Std_logic); + port (DI: in Std_logic; CLK: in Std_logic; INP: out Std_logic); - ATTRIBUTE Vital_Level0 OF MAin_3_B : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF Din_4_MGIOL : ENTITY IS TRUE; - end MAin_3_B; + end Din_4_MGIOL; - architecture Structure of MAin_3_B is + architecture Structure of Din_4_MGIOL is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - signal PADDI_out : std_logic := 'X'; - signal MAin3_ipd : std_logic := 'X'; + signal DI_ipd : std_logic := 'X'; + signal DI_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal INP_out : std_logic := 'X'; - component xo2iobuf0069 - port (Z: out Std_logic; PAD: in Std_logic); + signal VCCI: Std_logic; + signal GNDI: Std_logic; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component smuxlregsre + port (D0: in Std_logic; SP: in Std_logic; CK: in Std_logic; + LSR: in Std_logic; Q: out Std_logic); end component; begin - MAin_pad_3: xo2iobuf0069 - port map (Z=>PADDI_out, PAD=>MAin3_ipd); + Bank_0io_4: smuxlregsre + port map (D0=>DI_dly, SP=>VCCI, CK=>CLK_dly, LSR=>GNDI, Q=>INP_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + DRIVEGND: gnd + port map (PWR0=>GNDI); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN - VitalWireDelay(MAin3_ipd, MAin3, tipd_MAin3); + VitalWireDelay(DI_ipd, DI, tipd_DI); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); END BLOCK; - VitalBehavior : PROCESS (PADDI_out, MAin3_ipd) + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI_dly, DI_ipd, tisd_DI_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (DI_dly, CLK_dly, INP_out) + VARIABLE INP_zd : std_logic := 'X'; + VARIABLE INP_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_DI_CLK : x01 := '0'; + VARIABLE DI_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI_dly, + TestSignalName => "DI", + TestDelay => tisd_DI_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI_CLK_noedge_posedge, + SetupLow => tsetup_DI_CLK_noedge_posedge, + HoldHigh => thold_DI_CLK_noedge_posedge, + HoldLow => thold_DI_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI_CLK_TimingDatash, + Violation => tviol_DI_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + INP_zd := INP_out; + + VitalPathDelay01 ( + OutSignal => INP, OutSignalName => "INP", OutTemp => INP_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_INP, + PathCondition => TRUE)), + GlitchData => INP_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity Din_3_B + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity Din_3_B is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "Din_3_B"; + + tipd_Din3 : VitalDelayType01 := (0 ns, 0 ns); + tpd_Din3_PADDI : VitalDelayType01 := (0 ns, 0 ns); + tperiod_Din3 : VitalDelayType := 0 ns; + tpw_Din3_posedge : VitalDelayType := 0 ns; + tpw_Din3_negedge : VitalDelayType := 0 ns); + + port (PADDI: out Std_logic; Din3: in Std_logic); + + ATTRIBUTE Vital_Level0 OF Din_3_B : ENTITY IS TRUE; + + end Din_3_B; + + architecture Structure of Din_3_B is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal PADDI_out : std_logic := 'X'; + signal Din3_ipd : std_logic := 'X'; + + component xo2iobuf0086 + port (Z: out Std_logic; PAD: in Std_logic); + end component; + begin + Din_pad_3: xo2iobuf0086 + port map (Z=>PADDI_out, PAD=>Din3_ipd); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(Din3_ipd, Din3, tipd_Din3); + END BLOCK; + + VitalBehavior : PROCESS (PADDI_out, Din3_ipd) VARIABLE PADDI_zd : std_logic := 'X'; VARIABLE PADDI_GlitchData : VitalGlitchDataType; - VARIABLE tviol_MAin3_MAin3 : x01 := '0'; - VARIABLE periodcheckinfo_MAin3 : VitalPeriodDataType; + VARIABLE tviol_Din3_Din3 : x01 := '0'; + VARIABLE periodcheckinfo_Din3 : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN VitalPeriodPulseCheck ( - TestSignal => MAin3_ipd, - TestSignalName => "MAin3", - Period => tperiod_MAin3, - PulseWidthHigh => tpw_MAin3_posedge, - PulseWidthLow => tpw_MAin3_negedge, - PeriodData => periodcheckinfo_MAin3, - Violation => tviol_MAin3_MAin3, + TestSignal => Din3_ipd, + TestSignalName => "Din3", + Period => tperiod_Din3, + PulseWidthHigh => tpw_Din3_posedge, + PulseWidthLow => tpw_Din3_negedge, + PeriodData => periodcheckinfo_Din3, + Violation => tviol_Din3_Din3, MsgOn => MsgOn, XOn => XOn, HeaderMsg => InstancePath, CheckEnabled => TRUE, @@ -23416,8 +24364,8 @@ VitalPathDelay01 ( OutSignal => PADDI, OutSignalName => "PADDI", OutTemp => PADDI_zd, - Paths => (0 => (InputChangeTime => MAin3_ipd'last_event, - PathDelay => tpd_MAin3_PADDI, + Paths => (0 => (InputChangeTime => Din3_ipd'last_event, + PathDelay => tpd_Din3_PADDI, PathCondition => TRUE)), GlitchData => PADDI_GlitchData, Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); @@ -23426,69 +24374,202 @@ end Structure; --- entity MAin_2_B +-- entity Din_3_MGIOL library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity MAin_2_B is + entity Din_3_MGIOL is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "MAin_2_B"; + InstancePath : string := "Din_3_MGIOL"; - tipd_MAin2 : VitalDelayType01 := (0 ns, 0 ns); - tpd_MAin2_PADDI : VitalDelayType01 := (0 ns, 0 ns); - tperiod_MAin2 : VitalDelayType := 0 ns; - tpw_MAin2_posedge : VitalDelayType := 0 ns; - tpw_MAin2_negedge : VitalDelayType := 0 ns); + tipd_DI : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_INP : VitalDelayType01 := (0 ns, 0 ns); + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI_CLK : VitalDelayType := 0 ns; + tsetup_DI_CLK_noedge_posedge : VitalDelayType := 0 ns; + thold_DI_CLK_noedge_posedge : VitalDelayType := 0 ns; + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns); - port (PADDI: out Std_logic; MAin2: in Std_logic); + port (DI: in Std_logic; CLK: in Std_logic; INP: out Std_logic); - ATTRIBUTE Vital_Level0 OF MAin_2_B : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF Din_3_MGIOL : ENTITY IS TRUE; - end MAin_2_B; + end Din_3_MGIOL; - architecture Structure of MAin_2_B is + architecture Structure of Din_3_MGIOL is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - signal PADDI_out : std_logic := 'X'; - signal MAin2_ipd : std_logic := 'X'; + signal DI_ipd : std_logic := 'X'; + signal DI_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal INP_out : std_logic := 'X'; - component xo2iobuf0069 - port (Z: out Std_logic; PAD: in Std_logic); + signal VCCI: Std_logic; + signal GNDI: Std_logic; + component vcc + port (PWR1: out Std_logic); + end component; + component gnd + port (PWR0: out Std_logic); + end component; + component smuxlregsre + port (D0: in Std_logic; SP: in Std_logic; CK: in Std_logic; + LSR: in Std_logic; Q: out Std_logic); end component; begin - MAin_pad_2: xo2iobuf0069 - port map (Z=>PADDI_out, PAD=>MAin2_ipd); + Bank_0io_3: smuxlregsre + port map (D0=>DI_dly, SP=>VCCI, CK=>CLK_dly, LSR=>GNDI, Q=>INP_out); + DRIVEVCC: vcc + port map (PWR1=>VCCI); + DRIVEGND: gnd + port map (PWR0=>GNDI); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN - VitalWireDelay(MAin2_ipd, MAin2, tipd_MAin2); + VitalWireDelay(DI_ipd, DI, tipd_DI); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); END BLOCK; - VitalBehavior : PROCESS (PADDI_out, MAin2_ipd) + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI_dly, DI_ipd, tisd_DI_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (DI_dly, CLK_dly, INP_out) + VARIABLE INP_zd : std_logic := 'X'; + VARIABLE INP_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_DI_CLK : x01 := '0'; + VARIABLE DI_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI_dly, + TestSignalName => "DI", + TestDelay => tisd_DI_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI_CLK_noedge_posedge, + SetupLow => tsetup_DI_CLK_noedge_posedge, + HoldHigh => thold_DI_CLK_noedge_posedge, + HoldLow => thold_DI_CLK_noedge_posedge, + CheckEnabled => TRUE, + RefTransition => '/', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI_CLK_TimingDatash, + Violation => tviol_DI_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + INP_zd := INP_out; + + VitalPathDelay01 ( + OutSignal => INP, OutSignalName => "INP", OutTemp => INP_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_INP, + PathCondition => TRUE)), + GlitchData => INP_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity Din_2_B + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity Din_2_B is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "Din_2_B"; + + tipd_Din2 : VitalDelayType01 := (0 ns, 0 ns); + tpd_Din2_PADDI : VitalDelayType01 := (0 ns, 0 ns); + tperiod_Din2 : VitalDelayType := 0 ns; + tpw_Din2_posedge : VitalDelayType := 0 ns; + tpw_Din2_negedge : VitalDelayType := 0 ns); + + port (PADDI: out Std_logic; Din2: in Std_logic); + + ATTRIBUTE Vital_Level0 OF Din_2_B : ENTITY IS TRUE; + + end Din_2_B; + + architecture Structure of Din_2_B is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal PADDI_out : std_logic := 'X'; + signal Din2_ipd : std_logic := 'X'; + + component xo2iobuf0086 + port (Z: out Std_logic; PAD: in Std_logic); + end component; + begin + Din_pad_2: xo2iobuf0086 + port map (Z=>PADDI_out, PAD=>Din2_ipd); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(Din2_ipd, Din2, tipd_Din2); + END BLOCK; + + VitalBehavior : PROCESS (PADDI_out, Din2_ipd) VARIABLE PADDI_zd : std_logic := 'X'; VARIABLE PADDI_GlitchData : VitalGlitchDataType; - VARIABLE tviol_MAin2_MAin2 : x01 := '0'; - VARIABLE periodcheckinfo_MAin2 : VitalPeriodDataType; + VARIABLE tviol_Din2_Din2 : x01 := '0'; + VARIABLE periodcheckinfo_Din2 : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN VitalPeriodPulseCheck ( - TestSignal => MAin2_ipd, - TestSignalName => "MAin2", - Period => tperiod_MAin2, - PulseWidthHigh => tpw_MAin2_posedge, - PulseWidthLow => tpw_MAin2_negedge, - PeriodData => periodcheckinfo_MAin2, - Violation => tviol_MAin2_MAin2, + TestSignal => Din2_ipd, + TestSignalName => "Din2", + Period => tperiod_Din2, + PulseWidthHigh => tpw_Din2_posedge, + PulseWidthLow => tpw_Din2_negedge, + PeriodData => periodcheckinfo_Din2, + Violation => tviol_Din2_Din2, MsgOn => MsgOn, XOn => XOn, HeaderMsg => InstancePath, CheckEnabled => TRUE, @@ -23500,8 +24581,8 @@ VitalPathDelay01 ( OutSignal => PADDI, OutSignalName => "PADDI", OutTemp => PADDI_zd, - Paths => (0 => (InputChangeTime => MAin2_ipd'last_event, - PathDelay => tpd_MAin2_PADDI, + Paths => (0 => (InputChangeTime => Din2_ipd'last_event, + PathDelay => tpd_Din2_PADDI, PathCondition => TRUE)), GlitchData => PADDI_GlitchData, Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); @@ -23510,69 +24591,231 @@ end Structure; --- entity MAin_1_B +-- entity Din_2_MGIOL library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity MAin_1_B is + entity Din_2_MGIOL is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "MAin_1_B"; + InstancePath : string := "Din_2_MGIOL"; - tipd_MAin1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_MAin1_PADDI : VitalDelayType01 := (0 ns, 0 ns); - tperiod_MAin1 : VitalDelayType := 0 ns; - tpw_MAin1_posedge : VitalDelayType := 0 ns; - tpw_MAin1_negedge : VitalDelayType := 0 ns); + tipd_DI : VitalDelayType01 := (0 ns, 0 ns); + tipd_CE : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_INP : VitalDelayType01 := (0 ns, 0 ns); + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns; + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI_CLK : VitalDelayType := 0 ns; + tsetup_DI_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_DI_CLK_noedge_negedge : VitalDelayType := 0 ns; + tisd_CE_CLK : VitalDelayType := 0 ns; + tsetup_CE_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_CE_CLK_noedge_negedge : VitalDelayType := 0 ns); - port (PADDI: out Std_logic; MAin1: in Std_logic); + port (DI: in Std_logic; CE: in Std_logic; CLK: in Std_logic; + INP: out Std_logic); - ATTRIBUTE Vital_Level0 OF MAin_1_B : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF Din_2_MGIOL : ENTITY IS TRUE; - end MAin_1_B; + end Din_2_MGIOL; - architecture Structure of MAin_1_B is + architecture Structure of Din_2_MGIOL is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - signal PADDI_out : std_logic := 'X'; - signal MAin1_ipd : std_logic := 'X'; + signal DI_ipd : std_logic := 'X'; + signal DI_dly : std_logic := 'X'; + signal CE_ipd : std_logic := 'X'; + signal CE_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal INP_out : std_logic := 'X'; - component xo2iobuf0069 - port (Z: out Std_logic; PAD: in Std_logic); + signal CLK_NOTIN: Std_logic; + signal GNDI: Std_logic; + component gnd + port (PWR0: out Std_logic); + end component; + component inverter + port (I: in Std_logic; Z: out Std_logic); + end component; + component smuxlregsre + port (D0: in Std_logic; SP: in Std_logic; CK: in Std_logic; + LSR: in Std_logic; Q: out Std_logic); end component; begin - MAin_pad_1: xo2iobuf0069 - port map (Z=>PADDI_out, PAD=>MAin1_ipd); + CmdUFMCS: smuxlregsre + port map (D0=>DI_dly, SP=>CE_dly, CK=>CLK_NOTIN, LSR=>GNDI, Q=>INP_out); + CLK_INVERTERIN: inverter + port map (I=>CLK_dly, Z=>CLK_NOTIN); + DRIVEGND: gnd + port map (PWR0=>GNDI); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN - VitalWireDelay(MAin1_ipd, MAin1, tipd_MAin1); + VitalWireDelay(DI_ipd, DI, tipd_DI); + VitalWireDelay(CE_ipd, CE, tipd_CE); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); END BLOCK; - VitalBehavior : PROCESS (PADDI_out, MAin1_ipd) + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI_dly, DI_ipd, tisd_DI_CLK); + VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (DI_dly, CE_dly, CLK_dly, INP_out) + VARIABLE INP_zd : std_logic := 'X'; + VARIABLE INP_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_DI_CLK : x01 := '0'; + VARIABLE DI_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CE_CLK : x01 := '0'; + VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI_dly, + TestSignalName => "DI", + TestDelay => tisd_DI_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI_CLK_noedge_negedge, + SetupLow => tsetup_DI_CLK_noedge_negedge, + HoldHigh => thold_DI_CLK_noedge_negedge, + HoldLow => thold_DI_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI_CLK_TimingDatash, + Violation => tviol_DI_CLK, + MsgSeverity => warning); + VitalSetupHoldCheck ( + TestSignal => CE_dly, + TestSignalName => "CE", + TestDelay => tisd_CE_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_CE_CLK_noedge_negedge, + SetupLow => tsetup_CE_CLK_noedge_negedge, + HoldHigh => thold_CE_CLK_noedge_negedge, + HoldLow => thold_CE_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => CE_CLK_TimingDatash, + Violation => tviol_CE_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + INP_zd := INP_out; + + VitalPathDelay01 ( + OutSignal => INP, OutSignalName => "INP", OutTemp => INP_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_INP, + PathCondition => TRUE)), + GlitchData => INP_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity Din_1_B + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity Din_1_B is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "Din_1_B"; + + tipd_Din1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_Din1_PADDI : VitalDelayType01 := (0 ns, 0 ns); + tperiod_Din1 : VitalDelayType := 0 ns; + tpw_Din1_posedge : VitalDelayType := 0 ns; + tpw_Din1_negedge : VitalDelayType := 0 ns); + + port (PADDI: out Std_logic; Din1: in Std_logic); + + ATTRIBUTE Vital_Level0 OF Din_1_B : ENTITY IS TRUE; + + end Din_1_B; + + architecture Structure of Din_1_B is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal PADDI_out : std_logic := 'X'; + signal Din1_ipd : std_logic := 'X'; + + component xo2iobuf0086 + port (Z: out Std_logic; PAD: in Std_logic); + end component; + begin + Din_pad_1: xo2iobuf0086 + port map (Z=>PADDI_out, PAD=>Din1_ipd); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(Din1_ipd, Din1, tipd_Din1); + END BLOCK; + + VitalBehavior : PROCESS (PADDI_out, Din1_ipd) VARIABLE PADDI_zd : std_logic := 'X'; VARIABLE PADDI_GlitchData : VitalGlitchDataType; - VARIABLE tviol_MAin1_MAin1 : x01 := '0'; - VARIABLE periodcheckinfo_MAin1 : VitalPeriodDataType; + VARIABLE tviol_Din1_Din1 : x01 := '0'; + VARIABLE periodcheckinfo_Din1 : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN VitalPeriodPulseCheck ( - TestSignal => MAin1_ipd, - TestSignalName => "MAin1", - Period => tperiod_MAin1, - PulseWidthHigh => tpw_MAin1_posedge, - PulseWidthLow => tpw_MAin1_negedge, - PeriodData => periodcheckinfo_MAin1, - Violation => tviol_MAin1_MAin1, + TestSignal => Din1_ipd, + TestSignalName => "Din1", + Period => tperiod_Din1, + PulseWidthHigh => tpw_Din1_posedge, + PulseWidthLow => tpw_Din1_negedge, + PeriodData => periodcheckinfo_Din1, + Violation => tviol_Din1_Din1, MsgOn => MsgOn, XOn => XOn, HeaderMsg => InstancePath, CheckEnabled => TRUE, @@ -23584,8 +24827,8 @@ VitalPathDelay01 ( OutSignal => PADDI, OutSignalName => "PADDI", OutTemp => PADDI_zd, - Paths => (0 => (InputChangeTime => MAin1_ipd'last_event, - PathDelay => tpd_MAin1_PADDI, + Paths => (0 => (InputChangeTime => Din1_ipd'last_event, + PathDelay => tpd_Din1_PADDI, PathCondition => TRUE)), GlitchData => PADDI_GlitchData, Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); @@ -23594,69 +24837,231 @@ end Structure; --- entity MAin_0_B +-- entity Din_1_MGIOL library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity MAin_0_B is + entity Din_1_MGIOL is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "MAin_0_B"; + InstancePath : string := "Din_1_MGIOL"; - tipd_MAin0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_MAin0_PADDI : VitalDelayType01 := (0 ns, 0 ns); - tperiod_MAin0 : VitalDelayType := 0 ns; - tpw_MAin0_posedge : VitalDelayType := 0 ns; - tpw_MAin0_negedge : VitalDelayType := 0 ns); + tipd_DI : VitalDelayType01 := (0 ns, 0 ns); + tipd_CE : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_INP : VitalDelayType01 := (0 ns, 0 ns); + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns; + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI_CLK : VitalDelayType := 0 ns; + tsetup_DI_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_DI_CLK_noedge_negedge : VitalDelayType := 0 ns; + tisd_CE_CLK : VitalDelayType := 0 ns; + tsetup_CE_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_CE_CLK_noedge_negedge : VitalDelayType := 0 ns); - port (PADDI: out Std_logic; MAin0: in Std_logic); + port (DI: in Std_logic; CE: in Std_logic; CLK: in Std_logic; + INP: out Std_logic); - ATTRIBUTE Vital_Level0 OF MAin_0_B : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF Din_1_MGIOL : ENTITY IS TRUE; - end MAin_0_B; + end Din_1_MGIOL; - architecture Structure of MAin_0_B is + architecture Structure of Din_1_MGIOL is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - signal PADDI_out : std_logic := 'X'; - signal MAin0_ipd : std_logic := 'X'; + signal DI_ipd : std_logic := 'X'; + signal DI_dly : std_logic := 'X'; + signal CE_ipd : std_logic := 'X'; + signal CE_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal INP_out : std_logic := 'X'; - component xo2iobuf0069 - port (Z: out Std_logic; PAD: in Std_logic); + signal CLK_NOTIN: Std_logic; + signal GNDI: Std_logic; + component gnd + port (PWR0: out Std_logic); + end component; + component inverter + port (I: in Std_logic; Z: out Std_logic); + end component; + component smuxlregsre + port (D0: in Std_logic; SP: in Std_logic; CK: in Std_logic; + LSR: in Std_logic; Q: out Std_logic); end component; begin - MAin_pad_0: xo2iobuf0069 - port map (Z=>PADDI_out, PAD=>MAin0_ipd); + CmdUFMCLK: smuxlregsre + port map (D0=>DI_dly, SP=>CE_dly, CK=>CLK_NOTIN, LSR=>GNDI, Q=>INP_out); + CLK_INVERTERIN: inverter + port map (I=>CLK_dly, Z=>CLK_NOTIN); + DRIVEGND: gnd + port map (PWR0=>GNDI); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN - VitalWireDelay(MAin0_ipd, MAin0, tipd_MAin0); + VitalWireDelay(DI_ipd, DI, tipd_DI); + VitalWireDelay(CE_ipd, CE, tipd_CE); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); END BLOCK; - VitalBehavior : PROCESS (PADDI_out, MAin0_ipd) + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI_dly, DI_ipd, tisd_DI_CLK); + VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (DI_dly, CE_dly, CLK_dly, INP_out) + VARIABLE INP_zd : std_logic := 'X'; + VARIABLE INP_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_DI_CLK : x01 := '0'; + VARIABLE DI_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CE_CLK : x01 := '0'; + VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI_dly, + TestSignalName => "DI", + TestDelay => tisd_DI_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI_CLK_noedge_negedge, + SetupLow => tsetup_DI_CLK_noedge_negedge, + HoldHigh => thold_DI_CLK_noedge_negedge, + HoldLow => thold_DI_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI_CLK_TimingDatash, + Violation => tviol_DI_CLK, + MsgSeverity => warning); + VitalSetupHoldCheck ( + TestSignal => CE_dly, + TestSignalName => "CE", + TestDelay => tisd_CE_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_CE_CLK_noedge_negedge, + SetupLow => tsetup_CE_CLK_noedge_negedge, + HoldHigh => thold_CE_CLK_noedge_negedge, + HoldLow => thold_CE_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => CE_CLK_TimingDatash, + Violation => tviol_CE_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + INP_zd := INP_out; + + VitalPathDelay01 ( + OutSignal => INP, OutSignalName => "INP", OutTemp => INP_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_INP, + PathCondition => TRUE)), + GlitchData => INP_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + +-- entity Din_0_B + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity Din_0_B is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "Din_0_B"; + + tipd_Din0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_Din0_PADDI : VitalDelayType01 := (0 ns, 0 ns); + tperiod_Din0 : VitalDelayType := 0 ns; + tpw_Din0_posedge : VitalDelayType := 0 ns; + tpw_Din0_negedge : VitalDelayType := 0 ns); + + port (PADDI: out Std_logic; Din0: in Std_logic); + + ATTRIBUTE Vital_Level0 OF Din_0_B : ENTITY IS TRUE; + + end Din_0_B; + + architecture Structure of Din_0_B is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal PADDI_out : std_logic := 'X'; + signal Din0_ipd : std_logic := 'X'; + + component xo2iobuf0086 + port (Z: out Std_logic; PAD: in Std_logic); + end component; + begin + Din_pad_0: xo2iobuf0086 + port map (Z=>PADDI_out, PAD=>Din0_ipd); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(Din0_ipd, Din0, tipd_Din0); + END BLOCK; + + VitalBehavior : PROCESS (PADDI_out, Din0_ipd) VARIABLE PADDI_zd : std_logic := 'X'; VARIABLE PADDI_GlitchData : VitalGlitchDataType; - VARIABLE tviol_MAin0_MAin0 : x01 := '0'; - VARIABLE periodcheckinfo_MAin0 : VitalPeriodDataType; + VARIABLE tviol_Din0_Din0 : x01 := '0'; + VARIABLE periodcheckinfo_Din0 : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN VitalPeriodPulseCheck ( - TestSignal => MAin0_ipd, - TestSignalName => "MAin0", - Period => tperiod_MAin0, - PulseWidthHigh => tpw_MAin0_posedge, - PulseWidthLow => tpw_MAin0_negedge, - PeriodData => periodcheckinfo_MAin0, - Violation => tviol_MAin0_MAin0, + TestSignal => Din0_ipd, + TestSignalName => "Din0", + Period => tperiod_Din0, + PulseWidthHigh => tpw_Din0_posedge, + PulseWidthLow => tpw_Din0_negedge, + PeriodData => periodcheckinfo_Din0, + Violation => tviol_Din0_Din0, MsgOn => MsgOn, XOn => XOn, HeaderMsg => InstancePath, CheckEnabled => TRUE, @@ -23668,8 +25073,8 @@ VitalPathDelay01 ( OutSignal => PADDI, OutSignalName => "PADDI", OutTemp => PADDI_zd, - Paths => (0 => (InputChangeTime => MAin0_ipd'last_event, - PathDelay => tpd_MAin0_PADDI, + Paths => (0 => (InputChangeTime => Din0_ipd'last_event, + PathDelay => tpd_Din0_PADDI, PathCondition => TRUE)), GlitchData => PADDI_GlitchData, Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); @@ -23678,6 +25083,168 @@ end Structure; +-- entity Din_0_MGIOL + library IEEE, vital2000, MACHXO2; + use IEEE.STD_LOGIC_1164.all; + use vital2000.vital_timing.all; + use MACHXO2.COMPONENTS.ALL; + + entity Din_0_MGIOL is + -- miscellaneous vital GENERICs + GENERIC ( + TimingChecksOn : boolean := TRUE; + XOn : boolean := FALSE; + MsgOn : boolean := TRUE; + InstancePath : string := "Din_0_MGIOL"; + + tipd_DI : VitalDelayType01 := (0 ns, 0 ns); + tipd_CE : VitalDelayType01 := (0 ns, 0 ns); + tipd_CLK : VitalDelayType01 := (0 ns, 0 ns); + tpd_CLK_INP : VitalDelayType01 := (0 ns, 0 ns); + tperiod_CLK : VitalDelayType := 0 ns; + tpw_CLK_posedge : VitalDelayType := 0 ns; + tpw_CLK_negedge : VitalDelayType := 0 ns; + ticd_CLK : VitalDelayType := 0 ns; + tisd_DI_CLK : VitalDelayType := 0 ns; + tsetup_DI_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_DI_CLK_noedge_negedge : VitalDelayType := 0 ns; + tisd_CE_CLK : VitalDelayType := 0 ns; + tsetup_CE_CLK_noedge_negedge : VitalDelayType := 0 ns; + thold_CE_CLK_noedge_negedge : VitalDelayType := 0 ns); + + port (DI: in Std_logic; CE: in Std_logic; CLK: in Std_logic; + INP: out Std_logic); + + ATTRIBUTE Vital_Level0 OF Din_0_MGIOL : ENTITY IS TRUE; + + end Din_0_MGIOL; + + architecture Structure of Din_0_MGIOL is + ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; + + signal DI_ipd : std_logic := 'X'; + signal DI_dly : std_logic := 'X'; + signal CE_ipd : std_logic := 'X'; + signal CE_dly : std_logic := 'X'; + signal CLK_ipd : std_logic := 'X'; + signal CLK_dly : std_logic := 'X'; + signal INP_out : std_logic := 'X'; + + signal CLK_NOTIN: Std_logic; + signal GNDI: Std_logic; + component gnd + port (PWR0: out Std_logic); + end component; + component inverter + port (I: in Std_logic; Z: out Std_logic); + end component; + component smuxlregsre + port (D0: in Std_logic; SP: in Std_logic; CK: in Std_logic; + LSR: in Std_logic; Q: out Std_logic); + end component; + begin + CmdUFMSDI: smuxlregsre + port map (D0=>DI_dly, SP=>CE_dly, CK=>CLK_NOTIN, LSR=>GNDI, Q=>INP_out); + CLK_INVERTERIN: inverter + port map (I=>CLK_dly, Z=>CLK_NOTIN); + DRIVEGND: gnd + port map (PWR0=>GNDI); + + -- INPUT PATH DELAYs + WireDelay : BLOCK + BEGIN + VitalWireDelay(DI_ipd, DI, tipd_DI); + VitalWireDelay(CE_ipd, CE, tipd_CE); + VitalWireDelay(CLK_ipd, CLK, tipd_CLK); + END BLOCK; + + -- Setup and Hold DELAYs + SignalDelay : BLOCK + BEGIN + VitalSignalDelay(DI_dly, DI_ipd, tisd_DI_CLK); + VitalSignalDelay(CE_dly, CE_ipd, tisd_CE_CLK); + VitalSignalDelay(CLK_dly, CLK_ipd, ticd_CLK); + END BLOCK; + + VitalBehavior : PROCESS (DI_dly, CE_dly, CLK_dly, INP_out) + VARIABLE INP_zd : std_logic := 'X'; + VARIABLE INP_GlitchData : VitalGlitchDataType; + + VARIABLE tviol_DI_CLK : x01 := '0'; + VARIABLE DI_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CE_CLK : x01 := '0'; + VARIABLE CE_CLK_TimingDatash : VitalTimingDataType; + VARIABLE tviol_CLK_CLK : x01 := '0'; + VARIABLE periodcheckinfo_CLK : VitalPeriodDataType; + + BEGIN + + IF (TimingChecksOn) THEN + VitalSetupHoldCheck ( + TestSignal => DI_dly, + TestSignalName => "DI", + TestDelay => tisd_DI_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_DI_CLK_noedge_negedge, + SetupLow => tsetup_DI_CLK_noedge_negedge, + HoldHigh => thold_DI_CLK_noedge_negedge, + HoldLow => thold_DI_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => DI_CLK_TimingDatash, + Violation => tviol_DI_CLK, + MsgSeverity => warning); + VitalSetupHoldCheck ( + TestSignal => CE_dly, + TestSignalName => "CE", + TestDelay => tisd_CE_CLK, + RefSignal => CLK_dly, + RefSignalName => "CLK", + RefDelay => ticd_CLK, + SetupHigh => tsetup_CE_CLK_noedge_negedge, + SetupLow => tsetup_CE_CLK_noedge_negedge, + HoldHigh => thold_CE_CLK_noedge_negedge, + HoldLow => thold_CE_CLK_noedge_negedge, + CheckEnabled => TRUE, + RefTransition => '\', + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + TimingData => CE_CLK_TimingDatash, + Violation => tviol_CE_CLK, + MsgSeverity => warning); + VitalPeriodPulseCheck ( + TestSignal => CLK_ipd, + TestSignalName => "CLK", + Period => tperiod_CLK, + PulseWidthHigh => tpw_CLK_posedge, + PulseWidthLow => tpw_CLK_negedge, + PeriodData => periodcheckinfo_CLK, + Violation => tviol_CLK_CLK, + MsgOn => MsgOn, XOn => XOn, + HeaderMsg => InstancePath, + CheckEnabled => TRUE, + MsgSeverity => warning); + + END IF; + + INP_zd := INP_out; + + VitalPathDelay01 ( + OutSignal => INP, OutSignalName => "INP", OutTemp => INP_zd, + Paths => (0 => (InputChangeTime => CLK_dly'last_event, + PathDelay => tpd_CLK_INP, + PathCondition => TRUE)), + GlitchData => INP_GlitchData, + Mode => ondetect, XOn => XOn, MsgOn => MsgOn); + + END PROCESS; + + end Structure; + -- entity CROW_1_B library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; @@ -23710,11 +25277,11 @@ signal PADDI_out : std_logic := 'X'; signal CROW1_ipd : std_logic := 'X'; - component xo2iobuf0069 + component xo2iobuf0086 port (Z: out Std_logic; PAD: in Std_logic); end component; begin - CROW_pad_1: xo2iobuf0069 + CROW_pad_1: xo2iobuf0086 port map (Z=>PADDI_out, PAD=>CROW1_ipd); -- INPUT PATH DELAYs @@ -23794,11 +25361,11 @@ signal PADDI_out : std_logic := 'X'; signal CROW0_ipd : std_logic := 'X'; - component xo2iobuf0069 + component xo2iobuf0086 port (Z: out Std_logic; PAD: in Std_logic); end component; begin - CROW_pad_0: xo2iobuf0069 + CROW_pad_0: xo2iobuf0086 port map (Z=>PADDI_out, PAD=>CROW0_ipd); -- INPUT PATH DELAYs @@ -23846,69 +25413,69 @@ end Structure; --- entity Din_7_B +-- entity MAin_9_B library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity Din_7_B is + entity MAin_9_B is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "Din_7_B"; + InstancePath : string := "MAin_9_B"; - tipd_Din7 : VitalDelayType01 := (0 ns, 0 ns); - tpd_Din7_PADDI : VitalDelayType01 := (0 ns, 0 ns); - tperiod_Din7 : VitalDelayType := 0 ns; - tpw_Din7_posedge : VitalDelayType := 0 ns; - tpw_Din7_negedge : VitalDelayType := 0 ns); + tipd_MAin9 : VitalDelayType01 := (0 ns, 0 ns); + tpd_MAin9_PADDI : VitalDelayType01 := (0 ns, 0 ns); + tperiod_MAin9 : VitalDelayType := 0 ns; + tpw_MAin9_posedge : VitalDelayType := 0 ns; + tpw_MAin9_negedge : VitalDelayType := 0 ns); - port (PADDI: out Std_logic; Din7: in Std_logic); + port (PADDI: out Std_logic; MAin9: in Std_logic); - ATTRIBUTE Vital_Level0 OF Din_7_B : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF MAin_9_B : ENTITY IS TRUE; - end Din_7_B; + end MAin_9_B; - architecture Structure of Din_7_B is + architecture Structure of MAin_9_B is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; signal PADDI_out : std_logic := 'X'; - signal Din7_ipd : std_logic := 'X'; + signal MAin9_ipd : std_logic := 'X'; - component xo2iobuf0069 + component xo2iobuf0086 port (Z: out Std_logic; PAD: in Std_logic); end component; begin - Din_pad_7: xo2iobuf0069 - port map (Z=>PADDI_out, PAD=>Din7_ipd); + MAin_pad_9: xo2iobuf0086 + port map (Z=>PADDI_out, PAD=>MAin9_ipd); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN - VitalWireDelay(Din7_ipd, Din7, tipd_Din7); + VitalWireDelay(MAin9_ipd, MAin9, tipd_MAin9); END BLOCK; - VitalBehavior : PROCESS (PADDI_out, Din7_ipd) + VitalBehavior : PROCESS (PADDI_out, MAin9_ipd) VARIABLE PADDI_zd : std_logic := 'X'; VARIABLE PADDI_GlitchData : VitalGlitchDataType; - VARIABLE tviol_Din7_Din7 : x01 := '0'; - VARIABLE periodcheckinfo_Din7 : VitalPeriodDataType; + VARIABLE tviol_MAin9_MAin9 : x01 := '0'; + VARIABLE periodcheckinfo_MAin9 : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN VitalPeriodPulseCheck ( - TestSignal => Din7_ipd, - TestSignalName => "Din7", - Period => tperiod_Din7, - PulseWidthHigh => tpw_Din7_posedge, - PulseWidthLow => tpw_Din7_negedge, - PeriodData => periodcheckinfo_Din7, - Violation => tviol_Din7_Din7, + TestSignal => MAin9_ipd, + TestSignalName => "MAin9", + Period => tperiod_MAin9, + PulseWidthHigh => tpw_MAin9_posedge, + PulseWidthLow => tpw_MAin9_negedge, + PeriodData => periodcheckinfo_MAin9, + Violation => tviol_MAin9_MAin9, MsgOn => MsgOn, XOn => XOn, HeaderMsg => InstancePath, CheckEnabled => TRUE, @@ -23920,8 +25487,8 @@ VitalPathDelay01 ( OutSignal => PADDI, OutSignalName => "PADDI", OutTemp => PADDI_zd, - Paths => (0 => (InputChangeTime => Din7_ipd'last_event, - PathDelay => tpd_Din7_PADDI, + Paths => (0 => (InputChangeTime => MAin9_ipd'last_event, + PathDelay => tpd_MAin9_PADDI, PathCondition => TRUE)), GlitchData => PADDI_GlitchData, Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); @@ -23930,69 +25497,69 @@ end Structure; --- entity Din_6_B +-- entity MAin_8_B library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity Din_6_B is + entity MAin_8_B is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "Din_6_B"; + InstancePath : string := "MAin_8_B"; - tipd_Din6 : VitalDelayType01 := (0 ns, 0 ns); - tpd_Din6_PADDI : VitalDelayType01 := (0 ns, 0 ns); - tperiod_Din6 : VitalDelayType := 0 ns; - tpw_Din6_posedge : VitalDelayType := 0 ns; - tpw_Din6_negedge : VitalDelayType := 0 ns); + tipd_MAin8 : VitalDelayType01 := (0 ns, 0 ns); + tpd_MAin8_PADDI : VitalDelayType01 := (0 ns, 0 ns); + tperiod_MAin8 : VitalDelayType := 0 ns; + tpw_MAin8_posedge : VitalDelayType := 0 ns; + tpw_MAin8_negedge : VitalDelayType := 0 ns); - port (PADDI: out Std_logic; Din6: in Std_logic); + port (PADDI: out Std_logic; MAin8: in Std_logic); - ATTRIBUTE Vital_Level0 OF Din_6_B : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF MAin_8_B : ENTITY IS TRUE; - end Din_6_B; + end MAin_8_B; - architecture Structure of Din_6_B is + architecture Structure of MAin_8_B is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; signal PADDI_out : std_logic := 'X'; - signal Din6_ipd : std_logic := 'X'; + signal MAin8_ipd : std_logic := 'X'; - component xo2iobuf0069 + component xo2iobuf0086 port (Z: out Std_logic; PAD: in Std_logic); end component; begin - Din_pad_6: xo2iobuf0069 - port map (Z=>PADDI_out, PAD=>Din6_ipd); + MAin_pad_8: xo2iobuf0086 + port map (Z=>PADDI_out, PAD=>MAin8_ipd); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN - VitalWireDelay(Din6_ipd, Din6, tipd_Din6); + VitalWireDelay(MAin8_ipd, MAin8, tipd_MAin8); END BLOCK; - VitalBehavior : PROCESS (PADDI_out, Din6_ipd) + VitalBehavior : PROCESS (PADDI_out, MAin8_ipd) VARIABLE PADDI_zd : std_logic := 'X'; VARIABLE PADDI_GlitchData : VitalGlitchDataType; - VARIABLE tviol_Din6_Din6 : x01 := '0'; - VARIABLE periodcheckinfo_Din6 : VitalPeriodDataType; + VARIABLE tviol_MAin8_MAin8 : x01 := '0'; + VARIABLE periodcheckinfo_MAin8 : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN VitalPeriodPulseCheck ( - TestSignal => Din6_ipd, - TestSignalName => "Din6", - Period => tperiod_Din6, - PulseWidthHigh => tpw_Din6_posedge, - PulseWidthLow => tpw_Din6_negedge, - PeriodData => periodcheckinfo_Din6, - Violation => tviol_Din6_Din6, + TestSignal => MAin8_ipd, + TestSignalName => "MAin8", + Period => tperiod_MAin8, + PulseWidthHigh => tpw_MAin8_posedge, + PulseWidthLow => tpw_MAin8_negedge, + PeriodData => periodcheckinfo_MAin8, + Violation => tviol_MAin8_MAin8, MsgOn => MsgOn, XOn => XOn, HeaderMsg => InstancePath, CheckEnabled => TRUE, @@ -24004,8 +25571,8 @@ VitalPathDelay01 ( OutSignal => PADDI, OutSignalName => "PADDI", OutTemp => PADDI_zd, - Paths => (0 => (InputChangeTime => Din6_ipd'last_event, - PathDelay => tpd_Din6_PADDI, + Paths => (0 => (InputChangeTime => MAin8_ipd'last_event, + PathDelay => tpd_MAin8_PADDI, PathCondition => TRUE)), GlitchData => PADDI_GlitchData, Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); @@ -24014,69 +25581,69 @@ end Structure; --- entity Din_5_B +-- entity MAin_7_B library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity Din_5_B is + entity MAin_7_B is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "Din_5_B"; + InstancePath : string := "MAin_7_B"; - tipd_Din5 : VitalDelayType01 := (0 ns, 0 ns); - tpd_Din5_PADDI : VitalDelayType01 := (0 ns, 0 ns); - tperiod_Din5 : VitalDelayType := 0 ns; - tpw_Din5_posedge : VitalDelayType := 0 ns; - tpw_Din5_negedge : VitalDelayType := 0 ns); + tipd_MAin7 : VitalDelayType01 := (0 ns, 0 ns); + tpd_MAin7_PADDI : VitalDelayType01 := (0 ns, 0 ns); + tperiod_MAin7 : VitalDelayType := 0 ns; + tpw_MAin7_posedge : VitalDelayType := 0 ns; + tpw_MAin7_negedge : VitalDelayType := 0 ns); - port (PADDI: out Std_logic; Din5: in Std_logic); + port (PADDI: out Std_logic; MAin7: in Std_logic); - ATTRIBUTE Vital_Level0 OF Din_5_B : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF MAin_7_B : ENTITY IS TRUE; - end Din_5_B; + end MAin_7_B; - architecture Structure of Din_5_B is + architecture Structure of MAin_7_B is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; signal PADDI_out : std_logic := 'X'; - signal Din5_ipd : std_logic := 'X'; + signal MAin7_ipd : std_logic := 'X'; - component xo2iobuf0069 + component xo2iobuf0086 port (Z: out Std_logic; PAD: in Std_logic); end component; begin - Din_pad_5: xo2iobuf0069 - port map (Z=>PADDI_out, PAD=>Din5_ipd); + MAin_pad_7: xo2iobuf0086 + port map (Z=>PADDI_out, PAD=>MAin7_ipd); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN - VitalWireDelay(Din5_ipd, Din5, tipd_Din5); + VitalWireDelay(MAin7_ipd, MAin7, tipd_MAin7); END BLOCK; - VitalBehavior : PROCESS (PADDI_out, Din5_ipd) + VitalBehavior : PROCESS (PADDI_out, MAin7_ipd) VARIABLE PADDI_zd : std_logic := 'X'; VARIABLE PADDI_GlitchData : VitalGlitchDataType; - VARIABLE tviol_Din5_Din5 : x01 := '0'; - VARIABLE periodcheckinfo_Din5 : VitalPeriodDataType; + VARIABLE tviol_MAin7_MAin7 : x01 := '0'; + VARIABLE periodcheckinfo_MAin7 : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN VitalPeriodPulseCheck ( - TestSignal => Din5_ipd, - TestSignalName => "Din5", - Period => tperiod_Din5, - PulseWidthHigh => tpw_Din5_posedge, - PulseWidthLow => tpw_Din5_negedge, - PeriodData => periodcheckinfo_Din5, - Violation => tviol_Din5_Din5, + TestSignal => MAin7_ipd, + TestSignalName => "MAin7", + Period => tperiod_MAin7, + PulseWidthHigh => tpw_MAin7_posedge, + PulseWidthLow => tpw_MAin7_negedge, + PeriodData => periodcheckinfo_MAin7, + Violation => tviol_MAin7_MAin7, MsgOn => MsgOn, XOn => XOn, HeaderMsg => InstancePath, CheckEnabled => TRUE, @@ -24088,8 +25655,8 @@ VitalPathDelay01 ( OutSignal => PADDI, OutSignalName => "PADDI", OutTemp => PADDI_zd, - Paths => (0 => (InputChangeTime => Din5_ipd'last_event, - PathDelay => tpd_Din5_PADDI, + Paths => (0 => (InputChangeTime => MAin7_ipd'last_event, + PathDelay => tpd_MAin7_PADDI, PathCondition => TRUE)), GlitchData => PADDI_GlitchData, Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); @@ -24098,69 +25665,69 @@ end Structure; --- entity Din_4_B +-- entity MAin_6_B library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity Din_4_B is + entity MAin_6_B is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "Din_4_B"; + InstancePath : string := "MAin_6_B"; - tipd_Din4 : VitalDelayType01 := (0 ns, 0 ns); - tpd_Din4_PADDI : VitalDelayType01 := (0 ns, 0 ns); - tperiod_Din4 : VitalDelayType := 0 ns; - tpw_Din4_posedge : VitalDelayType := 0 ns; - tpw_Din4_negedge : VitalDelayType := 0 ns); + tipd_MAin6 : VitalDelayType01 := (0 ns, 0 ns); + tpd_MAin6_PADDI : VitalDelayType01 := (0 ns, 0 ns); + tperiod_MAin6 : VitalDelayType := 0 ns; + tpw_MAin6_posedge : VitalDelayType := 0 ns; + tpw_MAin6_negedge : VitalDelayType := 0 ns); - port (PADDI: out Std_logic; Din4: in Std_logic); + port (PADDI: out Std_logic; MAin6: in Std_logic); - ATTRIBUTE Vital_Level0 OF Din_4_B : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF MAin_6_B : ENTITY IS TRUE; - end Din_4_B; + end MAin_6_B; - architecture Structure of Din_4_B is + architecture Structure of MAin_6_B is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; signal PADDI_out : std_logic := 'X'; - signal Din4_ipd : std_logic := 'X'; + signal MAin6_ipd : std_logic := 'X'; - component xo2iobuf0069 + component xo2iobuf0086 port (Z: out Std_logic; PAD: in Std_logic); end component; begin - Din_pad_4: xo2iobuf0069 - port map (Z=>PADDI_out, PAD=>Din4_ipd); + MAin_pad_6: xo2iobuf0086 + port map (Z=>PADDI_out, PAD=>MAin6_ipd); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN - VitalWireDelay(Din4_ipd, Din4, tipd_Din4); + VitalWireDelay(MAin6_ipd, MAin6, tipd_MAin6); END BLOCK; - VitalBehavior : PROCESS (PADDI_out, Din4_ipd) + VitalBehavior : PROCESS (PADDI_out, MAin6_ipd) VARIABLE PADDI_zd : std_logic := 'X'; VARIABLE PADDI_GlitchData : VitalGlitchDataType; - VARIABLE tviol_Din4_Din4 : x01 := '0'; - VARIABLE periodcheckinfo_Din4 : VitalPeriodDataType; + VARIABLE tviol_MAin6_MAin6 : x01 := '0'; + VARIABLE periodcheckinfo_MAin6 : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN VitalPeriodPulseCheck ( - TestSignal => Din4_ipd, - TestSignalName => "Din4", - Period => tperiod_Din4, - PulseWidthHigh => tpw_Din4_posedge, - PulseWidthLow => tpw_Din4_negedge, - PeriodData => periodcheckinfo_Din4, - Violation => tviol_Din4_Din4, + TestSignal => MAin6_ipd, + TestSignalName => "MAin6", + Period => tperiod_MAin6, + PulseWidthHigh => tpw_MAin6_posedge, + PulseWidthLow => tpw_MAin6_negedge, + PeriodData => periodcheckinfo_MAin6, + Violation => tviol_MAin6_MAin6, MsgOn => MsgOn, XOn => XOn, HeaderMsg => InstancePath, CheckEnabled => TRUE, @@ -24172,8 +25739,8 @@ VitalPathDelay01 ( OutSignal => PADDI, OutSignalName => "PADDI", OutTemp => PADDI_zd, - Paths => (0 => (InputChangeTime => Din4_ipd'last_event, - PathDelay => tpd_Din4_PADDI, + Paths => (0 => (InputChangeTime => MAin6_ipd'last_event, + PathDelay => tpd_MAin6_PADDI, PathCondition => TRUE)), GlitchData => PADDI_GlitchData, Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); @@ -24182,69 +25749,69 @@ end Structure; --- entity Din_3_B +-- entity MAin_5_B library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity Din_3_B is + entity MAin_5_B is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "Din_3_B"; + InstancePath : string := "MAin_5_B"; - tipd_Din3 : VitalDelayType01 := (0 ns, 0 ns); - tpd_Din3_PADDI : VitalDelayType01 := (0 ns, 0 ns); - tperiod_Din3 : VitalDelayType := 0 ns; - tpw_Din3_posedge : VitalDelayType := 0 ns; - tpw_Din3_negedge : VitalDelayType := 0 ns); + tipd_MAin5 : VitalDelayType01 := (0 ns, 0 ns); + tpd_MAin5_PADDI : VitalDelayType01 := (0 ns, 0 ns); + tperiod_MAin5 : VitalDelayType := 0 ns; + tpw_MAin5_posedge : VitalDelayType := 0 ns; + tpw_MAin5_negedge : VitalDelayType := 0 ns); - port (PADDI: out Std_logic; Din3: in Std_logic); + port (PADDI: out Std_logic; MAin5: in Std_logic); - ATTRIBUTE Vital_Level0 OF Din_3_B : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF MAin_5_B : ENTITY IS TRUE; - end Din_3_B; + end MAin_5_B; - architecture Structure of Din_3_B is + architecture Structure of MAin_5_B is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; signal PADDI_out : std_logic := 'X'; - signal Din3_ipd : std_logic := 'X'; + signal MAin5_ipd : std_logic := 'X'; - component xo2iobuf0069 + component xo2iobuf0086 port (Z: out Std_logic; PAD: in Std_logic); end component; begin - Din_pad_3: xo2iobuf0069 - port map (Z=>PADDI_out, PAD=>Din3_ipd); + MAin_pad_5: xo2iobuf0086 + port map (Z=>PADDI_out, PAD=>MAin5_ipd); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN - VitalWireDelay(Din3_ipd, Din3, tipd_Din3); + VitalWireDelay(MAin5_ipd, MAin5, tipd_MAin5); END BLOCK; - VitalBehavior : PROCESS (PADDI_out, Din3_ipd) + VitalBehavior : PROCESS (PADDI_out, MAin5_ipd) VARIABLE PADDI_zd : std_logic := 'X'; VARIABLE PADDI_GlitchData : VitalGlitchDataType; - VARIABLE tviol_Din3_Din3 : x01 := '0'; - VARIABLE periodcheckinfo_Din3 : VitalPeriodDataType; + VARIABLE tviol_MAin5_MAin5 : x01 := '0'; + VARIABLE periodcheckinfo_MAin5 : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN VitalPeriodPulseCheck ( - TestSignal => Din3_ipd, - TestSignalName => "Din3", - Period => tperiod_Din3, - PulseWidthHigh => tpw_Din3_posedge, - PulseWidthLow => tpw_Din3_negedge, - PeriodData => periodcheckinfo_Din3, - Violation => tviol_Din3_Din3, + TestSignal => MAin5_ipd, + TestSignalName => "MAin5", + Period => tperiod_MAin5, + PulseWidthHigh => tpw_MAin5_posedge, + PulseWidthLow => tpw_MAin5_negedge, + PeriodData => periodcheckinfo_MAin5, + Violation => tviol_MAin5_MAin5, MsgOn => MsgOn, XOn => XOn, HeaderMsg => InstancePath, CheckEnabled => TRUE, @@ -24256,8 +25823,8 @@ VitalPathDelay01 ( OutSignal => PADDI, OutSignalName => "PADDI", OutTemp => PADDI_zd, - Paths => (0 => (InputChangeTime => Din3_ipd'last_event, - PathDelay => tpd_Din3_PADDI, + Paths => (0 => (InputChangeTime => MAin5_ipd'last_event, + PathDelay => tpd_MAin5_PADDI, PathCondition => TRUE)), GlitchData => PADDI_GlitchData, Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); @@ -24266,69 +25833,69 @@ end Structure; --- entity Din_2_B +-- entity MAin_4_B library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity Din_2_B is + entity MAin_4_B is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "Din_2_B"; + InstancePath : string := "MAin_4_B"; - tipd_Din2 : VitalDelayType01 := (0 ns, 0 ns); - tpd_Din2_PADDI : VitalDelayType01 := (0 ns, 0 ns); - tperiod_Din2 : VitalDelayType := 0 ns; - tpw_Din2_posedge : VitalDelayType := 0 ns; - tpw_Din2_negedge : VitalDelayType := 0 ns); + tipd_MAin4 : VitalDelayType01 := (0 ns, 0 ns); + tpd_MAin4_PADDI : VitalDelayType01 := (0 ns, 0 ns); + tperiod_MAin4 : VitalDelayType := 0 ns; + tpw_MAin4_posedge : VitalDelayType := 0 ns; + tpw_MAin4_negedge : VitalDelayType := 0 ns); - port (PADDI: out Std_logic; Din2: in Std_logic); + port (PADDI: out Std_logic; MAin4: in Std_logic); - ATTRIBUTE Vital_Level0 OF Din_2_B : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF MAin_4_B : ENTITY IS TRUE; - end Din_2_B; + end MAin_4_B; - architecture Structure of Din_2_B is + architecture Structure of MAin_4_B is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; signal PADDI_out : std_logic := 'X'; - signal Din2_ipd : std_logic := 'X'; + signal MAin4_ipd : std_logic := 'X'; - component xo2iobuf0069 + component xo2iobuf0086 port (Z: out Std_logic; PAD: in Std_logic); end component; begin - Din_pad_2: xo2iobuf0069 - port map (Z=>PADDI_out, PAD=>Din2_ipd); + MAin_pad_4: xo2iobuf0086 + port map (Z=>PADDI_out, PAD=>MAin4_ipd); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN - VitalWireDelay(Din2_ipd, Din2, tipd_Din2); + VitalWireDelay(MAin4_ipd, MAin4, tipd_MAin4); END BLOCK; - VitalBehavior : PROCESS (PADDI_out, Din2_ipd) + VitalBehavior : PROCESS (PADDI_out, MAin4_ipd) VARIABLE PADDI_zd : std_logic := 'X'; VARIABLE PADDI_GlitchData : VitalGlitchDataType; - VARIABLE tviol_Din2_Din2 : x01 := '0'; - VARIABLE periodcheckinfo_Din2 : VitalPeriodDataType; + VARIABLE tviol_MAin4_MAin4 : x01 := '0'; + VARIABLE periodcheckinfo_MAin4 : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN VitalPeriodPulseCheck ( - TestSignal => Din2_ipd, - TestSignalName => "Din2", - Period => tperiod_Din2, - PulseWidthHigh => tpw_Din2_posedge, - PulseWidthLow => tpw_Din2_negedge, - PeriodData => periodcheckinfo_Din2, - Violation => tviol_Din2_Din2, + TestSignal => MAin4_ipd, + TestSignalName => "MAin4", + Period => tperiod_MAin4, + PulseWidthHigh => tpw_MAin4_posedge, + PulseWidthLow => tpw_MAin4_negedge, + PeriodData => periodcheckinfo_MAin4, + Violation => tviol_MAin4_MAin4, MsgOn => MsgOn, XOn => XOn, HeaderMsg => InstancePath, CheckEnabled => TRUE, @@ -24340,8 +25907,8 @@ VitalPathDelay01 ( OutSignal => PADDI, OutSignalName => "PADDI", OutTemp => PADDI_zd, - Paths => (0 => (InputChangeTime => Din2_ipd'last_event, - PathDelay => tpd_Din2_PADDI, + Paths => (0 => (InputChangeTime => MAin4_ipd'last_event, + PathDelay => tpd_MAin4_PADDI, PathCondition => TRUE)), GlitchData => PADDI_GlitchData, Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); @@ -24350,69 +25917,69 @@ end Structure; --- entity Din_1_B +-- entity MAin_3_B library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity Din_1_B is + entity MAin_3_B is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "Din_1_B"; + InstancePath : string := "MAin_3_B"; - tipd_Din1 : VitalDelayType01 := (0 ns, 0 ns); - tpd_Din1_PADDI : VitalDelayType01 := (0 ns, 0 ns); - tperiod_Din1 : VitalDelayType := 0 ns; - tpw_Din1_posedge : VitalDelayType := 0 ns; - tpw_Din1_negedge : VitalDelayType := 0 ns); + tipd_MAin3 : VitalDelayType01 := (0 ns, 0 ns); + tpd_MAin3_PADDI : VitalDelayType01 := (0 ns, 0 ns); + tperiod_MAin3 : VitalDelayType := 0 ns; + tpw_MAin3_posedge : VitalDelayType := 0 ns; + tpw_MAin3_negedge : VitalDelayType := 0 ns); - port (PADDI: out Std_logic; Din1: in Std_logic); + port (PADDI: out Std_logic; MAin3: in Std_logic); - ATTRIBUTE Vital_Level0 OF Din_1_B : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF MAin_3_B : ENTITY IS TRUE; - end Din_1_B; + end MAin_3_B; - architecture Structure of Din_1_B is + architecture Structure of MAin_3_B is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; signal PADDI_out : std_logic := 'X'; - signal Din1_ipd : std_logic := 'X'; + signal MAin3_ipd : std_logic := 'X'; - component xo2iobuf0069 + component xo2iobuf0086 port (Z: out Std_logic; PAD: in Std_logic); end component; begin - Din_pad_1: xo2iobuf0069 - port map (Z=>PADDI_out, PAD=>Din1_ipd); + MAin_pad_3: xo2iobuf0086 + port map (Z=>PADDI_out, PAD=>MAin3_ipd); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN - VitalWireDelay(Din1_ipd, Din1, tipd_Din1); + VitalWireDelay(MAin3_ipd, MAin3, tipd_MAin3); END BLOCK; - VitalBehavior : PROCESS (PADDI_out, Din1_ipd) + VitalBehavior : PROCESS (PADDI_out, MAin3_ipd) VARIABLE PADDI_zd : std_logic := 'X'; VARIABLE PADDI_GlitchData : VitalGlitchDataType; - VARIABLE tviol_Din1_Din1 : x01 := '0'; - VARIABLE periodcheckinfo_Din1 : VitalPeriodDataType; + VARIABLE tviol_MAin3_MAin3 : x01 := '0'; + VARIABLE periodcheckinfo_MAin3 : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN VitalPeriodPulseCheck ( - TestSignal => Din1_ipd, - TestSignalName => "Din1", - Period => tperiod_Din1, - PulseWidthHigh => tpw_Din1_posedge, - PulseWidthLow => tpw_Din1_negedge, - PeriodData => periodcheckinfo_Din1, - Violation => tviol_Din1_Din1, + TestSignal => MAin3_ipd, + TestSignalName => "MAin3", + Period => tperiod_MAin3, + PulseWidthHigh => tpw_MAin3_posedge, + PulseWidthLow => tpw_MAin3_negedge, + PeriodData => periodcheckinfo_MAin3, + Violation => tviol_MAin3_MAin3, MsgOn => MsgOn, XOn => XOn, HeaderMsg => InstancePath, CheckEnabled => TRUE, @@ -24424,8 +25991,8 @@ VitalPathDelay01 ( OutSignal => PADDI, OutSignalName => "PADDI", OutTemp => PADDI_zd, - Paths => (0 => (InputChangeTime => Din1_ipd'last_event, - PathDelay => tpd_Din1_PADDI, + Paths => (0 => (InputChangeTime => MAin3_ipd'last_event, + PathDelay => tpd_MAin3_PADDI, PathCondition => TRUE)), GlitchData => PADDI_GlitchData, Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); @@ -24434,69 +26001,69 @@ end Structure; --- entity Din_0_B +-- entity MAin_2_B library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity Din_0_B is + entity MAin_2_B is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "Din_0_B"; + InstancePath : string := "MAin_2_B"; - tipd_Din0 : VitalDelayType01 := (0 ns, 0 ns); - tpd_Din0_PADDI : VitalDelayType01 := (0 ns, 0 ns); - tperiod_Din0 : VitalDelayType := 0 ns; - tpw_Din0_posedge : VitalDelayType := 0 ns; - tpw_Din0_negedge : VitalDelayType := 0 ns); + tipd_MAin2 : VitalDelayType01 := (0 ns, 0 ns); + tpd_MAin2_PADDI : VitalDelayType01 := (0 ns, 0 ns); + tperiod_MAin2 : VitalDelayType := 0 ns; + tpw_MAin2_posedge : VitalDelayType := 0 ns; + tpw_MAin2_negedge : VitalDelayType := 0 ns); - port (PADDI: out Std_logic; Din0: in Std_logic); + port (PADDI: out Std_logic; MAin2: in Std_logic); - ATTRIBUTE Vital_Level0 OF Din_0_B : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF MAin_2_B : ENTITY IS TRUE; - end Din_0_B; + end MAin_2_B; - architecture Structure of Din_0_B is + architecture Structure of MAin_2_B is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; signal PADDI_out : std_logic := 'X'; - signal Din0_ipd : std_logic := 'X'; + signal MAin2_ipd : std_logic := 'X'; - component xo2iobuf0069 + component xo2iobuf0086 port (Z: out Std_logic; PAD: in Std_logic); end component; begin - Din_pad_0: xo2iobuf0069 - port map (Z=>PADDI_out, PAD=>Din0_ipd); + MAin_pad_2: xo2iobuf0086 + port map (Z=>PADDI_out, PAD=>MAin2_ipd); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN - VitalWireDelay(Din0_ipd, Din0, tipd_Din0); + VitalWireDelay(MAin2_ipd, MAin2, tipd_MAin2); END BLOCK; - VitalBehavior : PROCESS (PADDI_out, Din0_ipd) + VitalBehavior : PROCESS (PADDI_out, MAin2_ipd) VARIABLE PADDI_zd : std_logic := 'X'; VARIABLE PADDI_GlitchData : VitalGlitchDataType; - VARIABLE tviol_Din0_Din0 : x01 := '0'; - VARIABLE periodcheckinfo_Din0 : VitalPeriodDataType; + VARIABLE tviol_MAin2_MAin2 : x01 := '0'; + VARIABLE periodcheckinfo_MAin2 : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN VitalPeriodPulseCheck ( - TestSignal => Din0_ipd, - TestSignalName => "Din0", - Period => tperiod_Din0, - PulseWidthHigh => tpw_Din0_posedge, - PulseWidthLow => tpw_Din0_negedge, - PeriodData => periodcheckinfo_Din0, - Violation => tviol_Din0_Din0, + TestSignal => MAin2_ipd, + TestSignalName => "MAin2", + Period => tperiod_MAin2, + PulseWidthHigh => tpw_MAin2_posedge, + PulseWidthLow => tpw_MAin2_negedge, + PeriodData => periodcheckinfo_MAin2, + Violation => tviol_MAin2_MAin2, MsgOn => MsgOn, XOn => XOn, HeaderMsg => InstancePath, CheckEnabled => TRUE, @@ -24508,8 +26075,8 @@ VitalPathDelay01 ( OutSignal => PADDI, OutSignalName => "PADDI", OutTemp => PADDI_zd, - Paths => (0 => (InputChangeTime => Din0_ipd'last_event, - PathDelay => tpd_Din0_PADDI, + Paths => (0 => (InputChangeTime => MAin2_ipd'last_event, + PathDelay => tpd_MAin2_PADDI, PathCondition => TRUE)), GlitchData => PADDI_GlitchData, Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); @@ -24518,69 +26085,69 @@ end Structure; --- entity nCCASB +-- entity MAin_1_B library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity nCCASB is + entity MAin_1_B is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "nCCASB"; + InstancePath : string := "MAin_1_B"; - tipd_nCCASS : VitalDelayType01 := (0 ns, 0 ns); - tpd_nCCASS_PADDI : VitalDelayType01 := (0 ns, 0 ns); - tperiod_nCCASS : VitalDelayType := 0 ns; - tpw_nCCASS_posedge : VitalDelayType := 0 ns; - tpw_nCCASS_negedge : VitalDelayType := 0 ns); + tipd_MAin1 : VitalDelayType01 := (0 ns, 0 ns); + tpd_MAin1_PADDI : VitalDelayType01 := (0 ns, 0 ns); + tperiod_MAin1 : VitalDelayType := 0 ns; + tpw_MAin1_posedge : VitalDelayType := 0 ns; + tpw_MAin1_negedge : VitalDelayType := 0 ns); - port (PADDI: out Std_logic; nCCASS: in Std_logic); + port (PADDI: out Std_logic; MAin1: in Std_logic); - ATTRIBUTE Vital_Level0 OF nCCASB : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF MAin_1_B : ENTITY IS TRUE; - end nCCASB; + end MAin_1_B; - architecture Structure of nCCASB is + architecture Structure of MAin_1_B is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; signal PADDI_out : std_logic := 'X'; - signal nCCASS_ipd : std_logic := 'X'; + signal MAin1_ipd : std_logic := 'X'; - component xo2iobuf0069 + component xo2iobuf0086 port (Z: out Std_logic; PAD: in Std_logic); end component; begin - nCCAS_pad: xo2iobuf0069 - port map (Z=>PADDI_out, PAD=>nCCASS_ipd); + MAin_pad_1: xo2iobuf0086 + port map (Z=>PADDI_out, PAD=>MAin1_ipd); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN - VitalWireDelay(nCCASS_ipd, nCCASS, tipd_nCCASS); + VitalWireDelay(MAin1_ipd, MAin1, tipd_MAin1); END BLOCK; - VitalBehavior : PROCESS (PADDI_out, nCCASS_ipd) + VitalBehavior : PROCESS (PADDI_out, MAin1_ipd) VARIABLE PADDI_zd : std_logic := 'X'; VARIABLE PADDI_GlitchData : VitalGlitchDataType; - VARIABLE tviol_nCCASS_nCCASS : x01 := '0'; - VARIABLE periodcheckinfo_nCCASS : VitalPeriodDataType; + VARIABLE tviol_MAin1_MAin1 : x01 := '0'; + VARIABLE periodcheckinfo_MAin1 : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN VitalPeriodPulseCheck ( - TestSignal => nCCASS_ipd, - TestSignalName => "nCCASS", - Period => tperiod_nCCASS, - PulseWidthHigh => tpw_nCCASS_posedge, - PulseWidthLow => tpw_nCCASS_negedge, - PeriodData => periodcheckinfo_nCCASS, - Violation => tviol_nCCASS_nCCASS, + TestSignal => MAin1_ipd, + TestSignalName => "MAin1", + Period => tperiod_MAin1, + PulseWidthHigh => tpw_MAin1_posedge, + PulseWidthLow => tpw_MAin1_negedge, + PeriodData => periodcheckinfo_MAin1, + Violation => tviol_MAin1_MAin1, MsgOn => MsgOn, XOn => XOn, HeaderMsg => InstancePath, CheckEnabled => TRUE, @@ -24592,8 +26159,8 @@ VitalPathDelay01 ( OutSignal => PADDI, OutSignalName => "PADDI", OutTemp => PADDI_zd, - Paths => (0 => (InputChangeTime => nCCASS_ipd'last_event, - PathDelay => tpd_nCCASS_PADDI, + Paths => (0 => (InputChangeTime => MAin1_ipd'last_event, + PathDelay => tpd_MAin1_PADDI, PathCondition => TRUE)), GlitchData => PADDI_GlitchData, Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); @@ -24602,69 +26169,69 @@ end Structure; --- entity nCRASB +-- entity MAin_0_B library IEEE, vital2000, MACHXO2; use IEEE.STD_LOGIC_1164.all; use vital2000.vital_timing.all; use MACHXO2.COMPONENTS.ALL; - entity nCRASB is + entity MAin_0_B is -- miscellaneous vital GENERICs GENERIC ( TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; - InstancePath : string := "nCRASB"; + InstancePath : string := "MAin_0_B"; - tipd_nCRASS : VitalDelayType01 := (0 ns, 0 ns); - tpd_nCRASS_PADDI : VitalDelayType01 := (0 ns, 0 ns); - tperiod_nCRASS : VitalDelayType := 0 ns; - tpw_nCRASS_posedge : VitalDelayType := 0 ns; - tpw_nCRASS_negedge : VitalDelayType := 0 ns); + tipd_MAin0 : VitalDelayType01 := (0 ns, 0 ns); + tpd_MAin0_PADDI : VitalDelayType01 := (0 ns, 0 ns); + tperiod_MAin0 : VitalDelayType := 0 ns; + tpw_MAin0_posedge : VitalDelayType := 0 ns; + tpw_MAin0_negedge : VitalDelayType := 0 ns); - port (PADDI: out Std_logic; nCRASS: in Std_logic); + port (PADDI: out Std_logic; MAin0: in Std_logic); - ATTRIBUTE Vital_Level0 OF nCRASB : ENTITY IS TRUE; + ATTRIBUTE Vital_Level0 OF MAin_0_B : ENTITY IS TRUE; - end nCRASB; + end MAin_0_B; - architecture Structure of nCRASB is + architecture Structure of MAin_0_B is ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; signal PADDI_out : std_logic := 'X'; - signal nCRASS_ipd : std_logic := 'X'; + signal MAin0_ipd : std_logic := 'X'; - component xo2iobuf0069 + component xo2iobuf0086 port (Z: out Std_logic; PAD: in Std_logic); end component; begin - nCRAS_pad: xo2iobuf0069 - port map (Z=>PADDI_out, PAD=>nCRASS_ipd); + MAin_pad_0: xo2iobuf0086 + port map (Z=>PADDI_out, PAD=>MAin0_ipd); -- INPUT PATH DELAYs WireDelay : BLOCK BEGIN - VitalWireDelay(nCRASS_ipd, nCRASS, tipd_nCRASS); + VitalWireDelay(MAin0_ipd, MAin0, tipd_MAin0); END BLOCK; - VitalBehavior : PROCESS (PADDI_out, nCRASS_ipd) + VitalBehavior : PROCESS (PADDI_out, MAin0_ipd) VARIABLE PADDI_zd : std_logic := 'X'; VARIABLE PADDI_GlitchData : VitalGlitchDataType; - VARIABLE tviol_nCRASS_nCRASS : x01 := '0'; - VARIABLE periodcheckinfo_nCRASS : VitalPeriodDataType; + VARIABLE tviol_MAin0_MAin0 : x01 := '0'; + VARIABLE periodcheckinfo_MAin0 : VitalPeriodDataType; BEGIN IF (TimingChecksOn) THEN VitalPeriodPulseCheck ( - TestSignal => nCRASS_ipd, - TestSignalName => "nCRASS", - Period => tperiod_nCRASS, - PulseWidthHigh => tpw_nCRASS_posedge, - PulseWidthLow => tpw_nCRASS_negedge, - PeriodData => periodcheckinfo_nCRASS, - Violation => tviol_nCRASS_nCRASS, + TestSignal => MAin0_ipd, + TestSignalName => "MAin0", + Period => tperiod_MAin0, + PulseWidthHigh => tpw_MAin0_posedge, + PulseWidthLow => tpw_MAin0_negedge, + PeriodData => periodcheckinfo_MAin0, + Violation => tviol_MAin0_MAin0, MsgOn => MsgOn, XOn => XOn, HeaderMsg => InstancePath, CheckEnabled => TRUE, @@ -24676,260 +26243,8 @@ VitalPathDelay01 ( OutSignal => PADDI, OutSignalName => "PADDI", OutTemp => PADDI_zd, - Paths => (0 => (InputChangeTime => nCRASS_ipd'last_event, - PathDelay => tpd_nCRASS_PADDI, - PathCondition => TRUE)), - GlitchData => PADDI_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity nFWEB - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity nFWEB is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "nFWEB"; - - tipd_nFWES : VitalDelayType01 := (0 ns, 0 ns); - tpd_nFWES_PADDI : VitalDelayType01 := (0 ns, 0 ns); - tperiod_nFWES : VitalDelayType := 0 ns; - tpw_nFWES_posedge : VitalDelayType := 0 ns; - tpw_nFWES_negedge : VitalDelayType := 0 ns); - - port (PADDI: out Std_logic; nFWES: in Std_logic); - - ATTRIBUTE Vital_Level0 OF nFWEB : ENTITY IS TRUE; - - end nFWEB; - - architecture Structure of nFWEB is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal PADDI_out : std_logic := 'X'; - signal nFWES_ipd : std_logic := 'X'; - - component xo2iobuf0069 - port (Z: out Std_logic; PAD: in Std_logic); - end component; - begin - nFWE_pad: xo2iobuf0069 - port map (Z=>PADDI_out, PAD=>nFWES_ipd); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(nFWES_ipd, nFWES, tipd_nFWES); - END BLOCK; - - VitalBehavior : PROCESS (PADDI_out, nFWES_ipd) - VARIABLE PADDI_zd : std_logic := 'X'; - VARIABLE PADDI_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_nFWES_nFWES : x01 := '0'; - VARIABLE periodcheckinfo_nFWES : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalPeriodPulseCheck ( - TestSignal => nFWES_ipd, - TestSignalName => "nFWES", - Period => tperiod_nFWES, - PulseWidthHigh => tpw_nFWES_posedge, - PulseWidthLow => tpw_nFWES_negedge, - PeriodData => periodcheckinfo_nFWES, - Violation => tviol_nFWES_nFWES, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - PADDI_zd := PADDI_out; - - VitalPathDelay01 ( - OutSignal => PADDI, OutSignalName => "PADDI", OutTemp => PADDI_zd, - Paths => (0 => (InputChangeTime => nFWES_ipd'last_event, - PathDelay => tpd_nFWES_PADDI, - PathCondition => TRUE)), - GlitchData => PADDI_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity RCLKB - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity RCLKB is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "RCLKB"; - - tipd_RCLKS : VitalDelayType01 := (0 ns, 0 ns); - tpd_RCLKS_PADDI : VitalDelayType01 := (0 ns, 0 ns); - tperiod_RCLKS : VitalDelayType := 0 ns; - tpw_RCLKS_posedge : VitalDelayType := 0 ns; - tpw_RCLKS_negedge : VitalDelayType := 0 ns); - - port (PADDI: out Std_logic; RCLKS: in Std_logic); - - ATTRIBUTE Vital_Level0 OF RCLKB : ENTITY IS TRUE; - - end RCLKB; - - architecture Structure of RCLKB is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal PADDI_out : std_logic := 'X'; - signal RCLKS_ipd : std_logic := 'X'; - - component xo2iobuf0069 - port (Z: out Std_logic; PAD: in Std_logic); - end component; - begin - RCLK_pad: xo2iobuf0069 - port map (Z=>PADDI_out, PAD=>RCLKS_ipd); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(RCLKS_ipd, RCLKS, tipd_RCLKS); - END BLOCK; - - VitalBehavior : PROCESS (PADDI_out, RCLKS_ipd) - VARIABLE PADDI_zd : std_logic := 'X'; - VARIABLE PADDI_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_RCLKS_RCLKS : x01 := '0'; - VARIABLE periodcheckinfo_RCLKS : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalPeriodPulseCheck ( - TestSignal => RCLKS_ipd, - TestSignalName => "RCLKS", - Period => tperiod_RCLKS, - PulseWidthHigh => tpw_RCLKS_posedge, - PulseWidthLow => tpw_RCLKS_negedge, - PeriodData => periodcheckinfo_RCLKS, - Violation => tviol_RCLKS_RCLKS, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - PADDI_zd := PADDI_out; - - VitalPathDelay01 ( - OutSignal => PADDI, OutSignalName => "PADDI", OutTemp => PADDI_zd, - Paths => (0 => (InputChangeTime => RCLKS_ipd'last_event, - PathDelay => tpd_RCLKS_PADDI, - PathCondition => TRUE)), - GlitchData => PADDI_GlitchData, - Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); - - END PROCESS; - - end Structure; - --- entity UFMSDOB - library IEEE, vital2000, MACHXO2; - use IEEE.STD_LOGIC_1164.all; - use vital2000.vital_timing.all; - use MACHXO2.COMPONENTS.ALL; - - entity UFMSDOB is - -- miscellaneous vital GENERICs - GENERIC ( - TimingChecksOn : boolean := TRUE; - XOn : boolean := FALSE; - MsgOn : boolean := TRUE; - InstancePath : string := "UFMSDOB"; - - tipd_UFMSDOS : VitalDelayType01 := (0 ns, 0 ns); - tpd_UFMSDOS_PADDI : VitalDelayType01 := (0 ns, 0 ns); - tperiod_UFMSDOS : VitalDelayType := 0 ns; - tpw_UFMSDOS_posedge : VitalDelayType := 0 ns; - tpw_UFMSDOS_negedge : VitalDelayType := 0 ns); - - port (PADDI: out Std_logic; UFMSDOS: in Std_logic); - - ATTRIBUTE Vital_Level0 OF UFMSDOB : ENTITY IS TRUE; - - end UFMSDOB; - - architecture Structure of UFMSDOB is - ATTRIBUTE Vital_Level0 OF Structure : ARCHITECTURE IS TRUE; - - signal PADDI_out : std_logic := 'X'; - signal UFMSDOS_ipd : std_logic := 'X'; - - component xo2iobuf0069 - port (Z: out Std_logic; PAD: in Std_logic); - end component; - begin - UFMSDO_pad: xo2iobuf0069 - port map (Z=>PADDI_out, PAD=>UFMSDOS_ipd); - - -- INPUT PATH DELAYs - WireDelay : BLOCK - BEGIN - VitalWireDelay(UFMSDOS_ipd, UFMSDOS, tipd_UFMSDOS); - END BLOCK; - - VitalBehavior : PROCESS (PADDI_out, UFMSDOS_ipd) - VARIABLE PADDI_zd : std_logic := 'X'; - VARIABLE PADDI_GlitchData : VitalGlitchDataType; - - VARIABLE tviol_UFMSDOS_UFMSDOS : x01 := '0'; - VARIABLE periodcheckinfo_UFMSDOS : VitalPeriodDataType; - - BEGIN - - IF (TimingChecksOn) THEN - VitalPeriodPulseCheck ( - TestSignal => UFMSDOS_ipd, - TestSignalName => "UFMSDOS", - Period => tperiod_UFMSDOS, - PulseWidthHigh => tpw_UFMSDOS_posedge, - PulseWidthLow => tpw_UFMSDOS_negedge, - PeriodData => periodcheckinfo_UFMSDOS, - Violation => tviol_UFMSDOS_UFMSDOS, - MsgOn => MsgOn, XOn => XOn, - HeaderMsg => InstancePath, - CheckEnabled => TRUE, - MsgSeverity => warning); - - END IF; - - PADDI_zd := PADDI_out; - - VitalPathDelay01 ( - OutSignal => PADDI, OutSignalName => "PADDI", OutTemp => PADDI_zd, - Paths => (0 => (InputChangeTime => UFMSDOS_ipd'last_event, - PathDelay => tpd_UFMSDOS_PADDI, + Paths => (0 => (InputChangeTime => MAin0_ipd'last_event, + PathDelay => tpd_MAin0_PADDI, PathCondition => TRUE)), GlitchData => PADDI_GlitchData, Mode => vitaltransport, XOn => XOn, MsgOn => MsgOn); @@ -24952,7 +26267,7 @@ nCRAS: in Std_logic; nFWE: in Std_logic; LED: out Std_logic; RBA: out Std_logic_vector (1 downto 0); RA: out Std_logic_vector (11 downto 0); - RD: inout Std_logic_vector (7 downto 0); nRCS: out Std_logic; + RD: out Std_logic_vector (7 downto 0); nRCS: out Std_logic; RCLK: in Std_logic; RCKE: out Std_logic; nRWE: out Std_logic; nRRAS: out Std_logic; nRCAS: out Std_logic; RDQMH: out Std_logic; RDQML: out Std_logic; nUFMCS: out Std_logic; UFMCLK: out Std_logic; @@ -24963,303 +26278,296 @@ end RAM2GS; architecture Structure of RAM2GS is - signal FS_14: Std_logic; - signal FS_13: Std_logic; - signal n81: Std_logic; - signal n82: Std_logic; - signal RCLK_c: Std_logic; - signal n1998: Std_logic; - signal n1999: Std_logic; - signal FS_12: Std_logic; - signal FS_11: Std_logic; - signal n83: Std_logic; - signal n84: Std_logic; - signal n1997: Std_logic; - signal FS_8: Std_logic; - signal FS_7: Std_logic; - signal n87: Std_logic; - signal n88: Std_logic; - signal n1995: Std_logic; - signal n1996: Std_logic; - signal FS_6: Std_logic; - signal FS_5: Std_logic; - signal n89: Std_logic; - signal n90: Std_logic; - signal n1994: Std_logic; - signal FS_2: Std_logic; - signal FS_1: Std_logic; - signal n93: Std_logic; - signal n94: Std_logic; - signal n1992: Std_logic; - signal n1993: Std_logic; signal FS_0: Std_logic; - signal n95: Std_logic; - signal CASr2: Std_logic; - signal CASr3: Std_logic; - signal FS_10: Std_logic; - signal FS_9: Std_logic; - signal n85: Std_logic; - signal n86: Std_logic; + signal FS_s_0: Std_logic; + signal RCLK_c: Std_logic; + signal FS_cry_0: Std_logic; signal FS_17: Std_logic; - signal n78: Std_logic; - signal n2000: Std_logic; - signal FS_4: Std_logic; - signal FS_3: Std_logic; - signal n91: Std_logic; - signal n92: Std_logic; + signal FS_s_17: Std_logic; + signal FS_cry_16: Std_logic; signal FS_16: Std_logic; signal FS_15: Std_logic; - signal n79: Std_logic; - signal n80: Std_logic; - signal Din_c_4: Std_logic; - signal Din_c_6: Std_logic; - signal Din_c_1: Std_logic; - signal Din_c_7: Std_logic; - signal n2382: Std_logic; - signal n8: Std_logic; - signal n2225: Std_logic; - signal n2180: Std_logic; - signal ADSubmitted_N_246: Std_logic; - signal PHI2_N_120_enable_2: Std_logic; - signal C1Submitted_N_237: Std_logic; - signal PHI2_c: Std_logic; + signal FS_s_16: Std_logic; + signal FS_s_15: Std_logic; + signal FS_cry_14: Std_logic; + signal FS_14: Std_logic; + signal FS_13: Std_logic; + signal FS_s_14: Std_logic; + signal FS_s_13: Std_logic; + signal FS_cry_12: Std_logic; + signal FS_12: Std_logic; + signal FS_11: Std_logic; + signal FS_s_12: Std_logic; + signal FS_s_11: Std_logic; + signal FS_cry_10: Std_logic; + signal FS_10: Std_logic; + signal FS_9: Std_logic; + signal FS_s_10: Std_logic; + signal FS_s_9: Std_logic; + signal FS_cry_8: Std_logic; + signal FS_8: Std_logic; + signal FS_7: Std_logic; + signal FS_s_8: Std_logic; + signal FS_s_7: Std_logic; + signal FS_cry_6: Std_logic; + signal FS_6: Std_logic; + signal FS_5: Std_logic; + signal FS_s_6: Std_logic; + signal FS_s_5: Std_logic; + signal FS_cry_4: Std_logic; + signal FS_4: Std_logic; + signal FS_3: Std_logic; + signal FS_s_4: Std_logic; + signal FS_s_3: Std_logic; + signal FS_cry_2: Std_logic; + signal FS_2: Std_logic; + signal FS_1: Std_logic; + signal FS_s_2: Std_logic; + signal FS_s_1: Std_logic; + signal CmdEnable17_5: Std_logic; + signal CmdEnable17_4: Std_logic; + signal ADWR: Std_logic; + signal CmdEnable16: Std_logic; + signal CmdEnable17: Std_logic; + signal un1_ADWR: Std_logic; signal ADSubmitted: Std_logic; - signal n26: Std_logic; - signal MAin_c_5: Std_logic; - signal n22: Std_logic; + signal ADSubmitted_r: Std_logic; + signal PHI2_c: Std_logic; + signal un1_Bank_1: Std_logic; signal MAin_c_2: Std_logic; - signal MAin_c_1: Std_logic; + signal CmdEnable16_5: Std_logic; + signal C1WR_3: Std_logic; signal C1Submitted: Std_logic; - signal n2365: Std_logic; + signal C1Submitted_s: Std_logic; signal nFWE_c: Std_logic; - signal n1398: Std_logic; signal nCCAS_c: Std_logic; - signal nCCAS_N_3: Std_logic; + signal nCCAS_c_i: Std_logic; signal CASr: Std_logic; - signal n2254: Std_logic; - signal Din_c_5: Std_logic; - signal n2191: Std_logic; - signal n2183: Std_logic; - signal n15_adj_1: Std_logic; - signal n2208: Std_logic; - signal n2363: Std_logic; - signal CmdEnable_N_248: Std_logic; - signal PHI2_N_120_enable_1: Std_logic; + signal RD_1_i: Std_logic; + signal CASr2: Std_logic; + signal S_1: Std_logic; + signal RASr2: Std_logic; + signal IS_3: Std_logic; + signal CO0: Std_logic; + signal N_166_i: Std_logic; + signal Ready_0_sqmuxa_0_a3_2: Std_logic; signal CmdEnable: Std_logic; - signal n2447_001_BUF1: Std_logic; - signal PHI2_N_120_enable_7: Std_logic; - signal CmdSubmitted: Std_logic; - signal n1314: Std_logic; - signal n8MEGEN: Std_logic; - signal Din_c_0: Std_logic; - signal Cmdn8MEGEN_N_264: Std_logic; - signal PHI2_N_120_enable_6: Std_logic; - signal Cmdn8MEGEN: Std_logic; + signal un1_CMDWR: Std_logic; + signal CmdEnable_s: Std_logic; + signal N_36: Std_logic; + signal Din_c_5: Std_logic; + signal Din_c_1: Std_logic; + signal N_94: Std_logic; + signal N_60: Std_logic; + signal N_59: Std_logic; + signal LEDEN: Std_logic; + signal N_14_i: Std_logic; + signal XOR8MEG18: Std_logic; + signal CmdLEDEN: Std_logic; signal Din_c_3: Std_logic; - signal n2373: Std_logic; + signal CmdSubmitted: Std_logic; + signal CmdSubmitted_1_sqmuxa: Std_logic; + signal N_412_0: Std_logic; + signal CmdUFMCLK_1_sqmuxa: Std_logic; + signal n8MEGEN: Std_logic; + signal Cmdn8MEGEN_4_u_i_0: Std_logic; + signal N_12_i: Std_logic; + signal Cmdn8MEGEN: Std_logic; + signal MAin_c_1: Std_logic; + signal ADWR_6: Std_logic; + signal ADWR_3: Std_logic; + signal nFWE_c_i: Std_logic; signal nCRAS_c: Std_logic; signal FWEr: Std_logic; - signal CBR: Std_logic; - signal n2447_000_BUF1: Std_logic; - signal RCLK_c_enable_28: Std_logic; + signal CMDWR_2: Std_logic; + signal Ready: Std_logic; + signal N_151: Std_logic; + signal IS_0: Std_logic; + signal N_60_i_i: Std_logic; + signal RA10s_i: Std_logic; + signal IS_2: Std_logic; + signal IS_1: Std_logic; + signal N_180_i: Std_logic; + signal IS_n1_0_x2: Std_logic; + signal N_48_i: Std_logic; + signal N_58_i_i: Std_logic; + signal N_137_5: Std_logic; + signal N_137_3: Std_logic; signal InitReady: Std_logic; - signal n2447: Std_logic; - signal RCLK_c_enable_16: Std_logic; - signal LEDEN: Std_logic; - signal nCRAS_c_inv: Std_logic; + signal InitReady3: Std_logic; + signal N_413_0: Std_logic; + signal N_74_i: Std_logic; + signal N_28: Std_logic; + signal CBR: Std_logic; + signal nCRAS_c_i_0: Std_logic; signal RASr: Std_logic; signal LED_c: Std_logic; - signal RASr2: Std_logic; - signal nRowColSel_N_35: Std_logic; - signal nRCAS_N_165: Std_logic; - signal Ready: Std_logic; - signal n2381: Std_logic; - signal nRCS_N_139: Std_logic; - signal n2036: Std_logic; - signal nRWE_N_177: Std_logic; - signal RA_0S: Std_logic; - signal XOR8MEG: Std_logic; - signal RA11_N_184: Std_logic; - signal RA_c: Std_logic; - signal n6_adj_2: Std_logic; - signal PHI2r2: Std_logic; - signal PHI2r3: Std_logic; - signal n15_adj_4: Std_logic; - signal RCKEEN_N_121: Std_logic; - signal RCLK_c_enable_6: Std_logic; + signal S_0_i_o2_1: Std_logic; + signal RCKEEN_8_u_1_0: Std_logic; + signal RCKEEN_8_u_0_0: Std_logic; + signal RCKEEN_8: Std_logic; signal RCKEEN: Std_logic; - signal RCLK_c_enable_10: Std_logic; + signal Ready_fast: Std_logic; + signal CROW_c_1: Std_logic; signal RASr3: Std_logic; - signal RCKE_N_132: Std_logic; - signal PHI2r: Std_logic; + signal RCKE_2: Std_logic; signal RCKE_c: Std_logic; - signal n2447_002_BUF1: Std_logic; - signal Ready_N_292: Std_logic; - signal n2267: Std_logic; - signal n13_adj_6: Std_logic; - signal CmdUFMCLK: Std_logic; - signal n1893: Std_logic; - signal UFMCLK_N_224: Std_logic; - signal n2366: Std_logic; - signal UFMCLK_c: Std_logic; - signal n10: Std_logic; - signal n7: Std_logic; - signal n4: Std_logic; - signal CmdUFMSDI: Std_logic; - signal n2174: Std_logic; - signal UFMSDI_N_231: Std_logic; - signal UFMSDI_c: Std_logic; - signal n2260: Std_logic; - signal Din_c_2: Std_logic; - signal XOR8MEG_N_110: Std_logic; - signal PHI2_N_120_enable_3: Std_logic; - signal n2375: Std_logic; - signal UFMSDO_c: Std_logic; - signal n2367: Std_logic; - signal n8MEGEN_N_91: Std_logic; - signal RCLK_c_enable_15: Std_logic; - signal nRCS_N_142: Std_logic; - signal nRCAS_N_166: Std_logic; - signal n2371: Std_logic; - signal nRCAS_N_161: Std_logic; - signal nRCAS_c: Std_logic; - signal nRCS_N_141: Std_logic; - signal nRCS_N_137: Std_logic; - signal nRCS_N_136: Std_logic; - signal nRCS_c: Std_logic; - signal n2379: Std_logic; - signal nRRAS_N_156: Std_logic; - signal nRRAS_c: Std_logic; - signal nRWE_N_178: Std_logic; - signal n1765: Std_logic; - signal nRWE_N_171: Std_logic; - signal RCLK_c_enable_5: Std_logic; - signal nRWE_c: Std_logic; - signal nRowColSel_N_34: Std_logic; - signal nRowColSel_N_33: Std_logic; - signal n2376: Std_logic; - signal n1060: Std_logic; - signal n2372: Std_logic; - signal n917: Std_logic; - signal nRowColSel: Std_logic; - signal nRowColSel_N_32: Std_logic; - signal n827: Std_logic; - signal n2227: Std_logic; - signal n1406: Std_logic; - signal Bank_3: Std_logic; - signal Bank_6: Std_logic; - signal n2287: Std_logic; - signal n13: Std_logic; - signal n2374: Std_logic; - signal n2368: Std_logic; - signal CmdUFMCS: Std_logic; - signal n64: Std_logic; - signal nUFMCS_N_199: Std_logic; - signal nUFMCS_c: Std_logic; - signal n6_adj_3: Std_logic; - signal Ready_N_296: Std_logic; - signal n2204: Std_logic; - signal n2369: Std_logic; + signal RBAd_0_1: Std_logic; + signal N_158: Std_logic; + signal N_414_0: Std_logic; + signal Ready_0_sqmuxa: Std_logic; + signal N_415_0: Std_logic; signal MAin_c_0: Std_logic; - signal PHI2_N_120_enable_8: Std_logic; - signal Bank_5: Std_logic; - signal n2277: Std_logic; - signal Bank_2: Std_logic; - signal n2220: Std_logic; + signal RowAd_0_1: Std_logic; + signal RowAd_0_0: Std_logic; signal RowA_0: Std_logic; signal RowA_1: Std_logic; - signal n2370: Std_logic; - signal n2228: Std_logic; - signal n732: Std_logic; - signal n733: Std_logic; - signal RCLK_c_enable_27: Std_logic; - signal n2055: Std_logic; - signal MAin_c_9: Std_logic; - signal MAin_c_8: Std_logic; - signal RowA_8: Std_logic; - signal RowA_9: Std_logic; - signal n2210: Std_logic; - signal nRWE_N_182: Std_logic; - signal nRCS_N_146: Std_logic; - signal n728: Std_logic; - signal n729: Std_logic; - signal n727: Std_logic; - signal n730: Std_logic; - signal n2378: Std_logic; - signal n726: Std_logic; - signal n12: Std_logic; - signal MAin_c_4: Std_logic; - signal RowA_4: Std_logic; - signal RowA_5: Std_logic; - signal n1277: Std_logic; - signal n4_adj_7: Std_logic; - signal n2377: Std_logic; - signal n738: Std_logic; - signal n737: Std_logic; - signal n14: Std_logic; - signal n15: Std_logic; - signal n6: Std_logic; - signal CROW_c_1: Std_logic; - signal CROW_c_0: Std_logic; - signal RBA_c_0: Std_logic; - signal RBA_c_1: Std_logic; - signal n7_adj_5: Std_logic; - signal n2362: Std_logic; - signal WRD_6: Std_logic; - signal WRD_7: Std_logic; - signal WRD_4: Std_logic; - signal WRD_5: Std_logic; - signal WRD_0: Std_logic; - signal WRD_1: Std_logic; signal MAin_c_3: Std_logic; + signal RowAd_0_3: Std_logic; + signal RowAd_0_2: Std_logic; signal RowA_2: Std_logic; signal RowA_3: Std_logic; - signal WRD_2: Std_logic; - signal WRD_3: Std_logic; - signal RA_1_9: Std_logic; - signal Bank_0: Std_logic; - signal RDQML_c: Std_logic; - signal Bank_1: Std_logic; - signal n734: Std_logic; - signal n735: Std_logic; - signal RA_1_8: Std_logic; - signal RDQMH_c: Std_logic; - signal Bank_4: Std_logic; + signal MAin_c_5: Std_logic; + signal MAin_c_4: Std_logic; + signal RowAd_0_5: Std_logic; + signal RowAd_0_4: Std_logic; + signal RowA_4: Std_logic; + signal RowA_5: Std_logic; signal MAin_c_7: Std_logic; - signal RowA_7: Std_logic; - signal RA_1_7: Std_logic; - signal Bank_7: Std_logic; signal MAin_c_6: Std_logic; + signal RowAd_0_7: Std_logic; + signal RowAd_0_6: Std_logic; signal RowA_6: Std_logic; - signal RA_1_6: Std_logic; - signal RA_1_5: Std_logic; - signal RA_1_0: Std_logic; - signal RA_1_4: Std_logic; - signal RA_1_1: Std_logic; - signal RA_1_3: Std_logic; - signal RA_1_2: Std_logic; - signal n984: Std_logic; - signal n736: Std_logic; - signal Dout_c: Std_logic; - signal Dout_0S: Std_logic; - signal Dout_1S: Std_logic; - signal Dout_2S: Std_logic; - signal Dout_3S: Std_logic; - signal Dout_4S: Std_logic; - signal Dout_5S: Std_logic; - signal Dout_6S: Std_logic; + signal RowA_7: Std_logic; + signal MAin_c_9: Std_logic; + signal MAin_c_8: Std_logic; + signal RowAd_0_9: Std_logic; + signal RowAd_0_8: Std_logic; + signal RowA_8: Std_logic; + signal RowA_9: Std_logic; + signal nRCAS_0_sqmuxa_1: Std_logic; + signal CmdUFMSDI: Std_logic; + signal N_145: Std_logic; + signal UFMSDI_ens2_i_a0: Std_logic; + signal nUFMCS15: Std_logic; + signal UFMSDI_c: Std_logic; + signal UFMSDI_RNO: Std_logic; + signal N_141_i: Std_logic; + signal Din_c_7: Std_logic; + signal Din_c_6: Std_logic; + signal Din_c_4: Std_logic; + signal un1_Din_3: Std_logic; + signal XOR8MEG_3_u_1: Std_logic; + signal XOR8MEG: Std_logic; + signal Din_c_0: Std_logic; + signal XOR8MEG_3: Std_logic; + signal Bank_4: Std_logic; + signal Bank_3: Std_logic; + signal Bank_1: Std_logic; + signal Bank_0: Std_logic; + signal UFMSDO_c: Std_logic; + signal N_131: Std_logic; + signal N_26: Std_logic; + signal un1_Bank_1_4: Std_logic; + signal CASr3: Std_logic; + signal N_168: Std_logic; + signal nRowColSel_0_0: Std_logic; + signal nRRAS_0_sqmuxa: Std_logic; + signal nRowColSel: Std_logic; + signal UFMCLK_r_i_a2_2_2: Std_logic; + signal CmdUFMCS: Std_logic; + signal nUFMCS_c: Std_logic; + signal nUFMCS_s_0_m4_yy: Std_logic; + signal nUFMCS_s_0_N_5_i: Std_logic; + signal N_129: Std_logic; + signal d_m3_0_a2_0: Std_logic; + signal CmdUFMCLK: Std_logic; + signal i1_i: Std_logic; + signal N_50: Std_logic; + signal N_154: Std_logic; + signal un1_nRCAS_6_sqmuxa_i_0: Std_logic; + signal N_45: Std_logic; + signal N_146_i_1: Std_logic; + signal N_27_i_1: Std_logic; + signal N_146_i: Std_logic; + signal nRRAS_5_u_i_0: Std_logic; + signal N_24_i: Std_logic; + signal nRWE_s_i_a3_1_0: Std_logic; + signal nRWE_s_i_tz_0: Std_logic; + signal PHI2r3: Std_logic; + signal PHI2r2: Std_logic; + signal un1_PHI2r3_0: Std_logic; + signal N_140: Std_logic; + signal un1_FS_14_i_a2_0_1: Std_logic; + signal N_139_8: Std_logic; + signal N_139_6: Std_logic; + signal N_139: Std_logic; + signal un1_FS_13_i_a2_1: Std_logic; + signal UFMSDI_ens2_i_a2_4_2: Std_logic; + signal N_34: Std_logic; + signal ADWR_2: Std_logic; + signal N_24: Std_logic; + signal N_27_i_sn: Std_logic; + signal N_153: Std_logic; + signal C1WR_1: Std_logic; + signal UFMSDI_ens2_i_o2_0_3: Std_logic; + signal PHI2r: Std_logic; + signal i2_i: Std_logic; + signal N_27_i: Std_logic; + signal Din_c_2: Std_logic; + signal CmdEnable16_4: Std_logic; + signal CmdEnable16_3: Std_logic; + signal Bank_2: Std_logic; + signal Bank_7: Std_logic; + signal un1_Bank_1_3: Std_logic; + signal Bank_6: Std_logic; + signal Bank_5: Std_logic; + signal nRWE_0io_RNO_1: Std_logic; + signal nRWE_0io_RNO_0: Std_logic; + signal N_147_i: Std_logic; + signal RA_c_9: Std_logic; + signal RDQML_c: Std_logic; + signal RA_c_8: Std_logic; + signal RDQMH_c: Std_logic; + signal RA_c_0: Std_logic; + signal RA_c_7: Std_logic; + signal RA_c_1: Std_logic; + signal RA_c_6: Std_logic; + signal RA_c_2: Std_logic; + signal RA_c_5: Std_logic; + signal RA_c_3: Std_logic; + signal RA_c_4: Std_logic; + signal CROW_c_0: Std_logic; + signal RA11d_0: Std_logic; + signal RBAd_0_0: Std_logic; + signal WRD_0: Std_logic; + signal UFMSDI_c_n0: Std_logic; + signal UFMCLK_c: Std_logic; + signal nUFMCS_c_n1: Std_logic; + signal nRCAS_c: Std_logic; + signal nRRAS_c: Std_logic; + signal nRWE_c: Std_logic; + signal RCKE_c_n2: Std_logic; + signal nRCS_c: Std_logic; + signal WRD_7: Std_logic; + signal WRD_6: Std_logic; + signal WRD_5: Std_logic; + signal WRD_4: Std_logic; + signal WRD_3: Std_logic; + signal WRD_2: Std_logic; + signal WRD_1: Std_logic; + signal RA_c_11: Std_logic; + signal RA_c_10: Std_logic; + signal RBA_c_1: Std_logic; + signal RBA_c_0: Std_logic; signal VCCI: Std_logic; component SLICE_0 - port (A1: in Std_logic; A0: in Std_logic; DI1: in Std_logic; - DI0: in Std_logic; CLK: in Std_logic; FCI: in Std_logic; - F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic; - Q1: out Std_logic; FCO: out Std_logic); + port (A1: in Std_logic; DI1: in Std_logic; CLK: in Std_logic; + F1: out Std_logic; Q1: out Std_logic; FCO: out Std_logic); end component; component SLICE_1 - port (A1: in Std_logic; A0: in Std_logic; DI1: in Std_logic; - DI0: in Std_logic; CLK: in Std_logic; FCI: in Std_logic; - F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic; - Q1: out Std_logic; FCO: out Std_logic); + port (A0: in Std_logic; DI0: in Std_logic; CLK: in Std_logic; + FCI: in Std_logic; F0: out Std_logic; Q0: out Std_logic); end component; component SLICE_2 port (A1: in Std_logic; A0: in Std_logic; DI1: in Std_logic; @@ -25280,8 +26588,9 @@ Q1: out Std_logic; FCO: out Std_logic); end component; component SLICE_5 - port (A1: in Std_logic; DI1: in Std_logic; M0: in Std_logic; - CLK: in Std_logic; Q0: out Std_logic; F1: out Std_logic; + port (A1: in Std_logic; A0: in Std_logic; DI1: in Std_logic; + DI0: in Std_logic; CLK: in Std_logic; FCI: in Std_logic; + F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic; Q1: out Std_logic; FCO: out Std_logic); end component; component SLICE_6 @@ -25291,8 +26600,10 @@ Q1: out Std_logic; FCO: out Std_logic); end component; component SLICE_7 - port (A0: in Std_logic; DI0: in Std_logic; CLK: in Std_logic; - FCI: in Std_logic; F0: out Std_logic; Q0: out Std_logic); + port (A1: in Std_logic; A0: in Std_logic; DI1: in Std_logic; + DI0: in Std_logic; CLK: in Std_logic; FCI: in Std_logic; + F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic; + Q1: out Std_logic; FCO: out Std_logic); end component; component SLICE_8 port (A1: in Std_logic; A0: in Std_logic; DI1: in Std_logic; @@ -25307,96 +26618,181 @@ Q1: out Std_logic; FCO: out Std_logic); end component; component SLICE_10 - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; - B0: in Std_logic; A0: in Std_logic; DI0: in Std_logic; - CE: in Std_logic; LSR: in Std_logic; CLK: in Std_logic; + port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; + D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; DI0: in Std_logic; CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic); end component; - component SLICE_15 + component SLICE_13 + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; DI0: in Std_logic; CLK: in Std_logic; + F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic); + end component; + component SLICE_14 + port (B1: in Std_logic; A1: in Std_logic; A0: in Std_logic; + DI0: in Std_logic; M1: in Std_logic; CLK: in Std_logic; + F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic; + Q1: out Std_logic); + end component; + component SLICE_17 + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; B0: in Std_logic; A0: in Std_logic; + DI0: in Std_logic; LSR: in Std_logic; CLK: in Std_logic; + F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic); + end component; + component SLICE_18 + port (B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; + C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; + DI0: in Std_logic; M0: in Std_logic; CLK: in Std_logic; + OFX0: out Std_logic; Q0: out Std_logic); + end component; + component SLICE_19 + port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; + D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; DI0: in Std_logic; CE: in Std_logic; + CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; + F1: out Std_logic); + end component; + component SLICE_20 + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; B0: in Std_logic; A0: in Std_logic; + DI0: in Std_logic; CLK: in Std_logic; F0: out Std_logic; + Q0: out Std_logic; F1: out Std_logic); + end component; + component SLICE_21 + port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; + C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; + DI0: in Std_logic; CE: in Std_logic; CLK: in Std_logic; + F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic); + end component; + component SLICE_22 + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; A0: in Std_logic; DI0: in Std_logic; + CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; + F1: out Std_logic); + end component; + component SLICE_23 + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; DI0: in Std_logic; CLK: in Std_logic; + F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic); + end component; + component SLICE_24 + port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; + B0: in Std_logic; A0: in Std_logic; DI1: in Std_logic; + DI0: in Std_logic; CE: in Std_logic; CLK: in Std_logic; + F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic; + Q1: out Std_logic); + end component; + component SLICE_25 + port (D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; DI0: in Std_logic; CE: in Std_logic; + CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic); + end component; + component SLICE_26 + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; B0: in Std_logic; A0: in Std_logic; + DI0: in Std_logic; CLK: in Std_logic; F0: out Std_logic; + Q0: out Std_logic; F1: out Std_logic); + end component; + component SLICE_27 + port (B0: in Std_logic; A0: in Std_logic; DI0: in Std_logic; + CE: in Std_logic; CLK: in Std_logic; F0: out Std_logic; + Q0: out Std_logic); + end component; + component SLICE_29 + port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; + A0: in Std_logic; DI0: in Std_logic; M1: in Std_logic; + CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; + F1: out Std_logic; Q1: out Std_logic); + end component; + component SLICE_31 port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; DI0: in Std_logic; - LSR: in Std_logic; CLK: in Std_logic; F0: out Std_logic; - Q0: out Std_logic; F1: out Std_logic); - end component; - component SLICE_16 - port (A0: in Std_logic; DI0: in Std_logic; M1: in Std_logic; CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; + F1: out Std_logic); + end component; + component SLICE_32 + port (B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; + C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; + DI0: in Std_logic; M1: in Std_logic; CLK: in Std_logic; + F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic; Q1: out Std_logic); end component; - component SLICE_19 + component SLICE_33 + port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; + D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; DI0: in Std_logic; CLK: in Std_logic; + F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic); + end component; + component SLICE_34 + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; B0: in Std_logic; A0: in Std_logic; + DI0: in Std_logic; CLK: in Std_logic; F0: out Std_logic; + Q0: out Std_logic; F1: out Std_logic); + end component; + component SLICE_35 + port (B1: in Std_logic; A1: in Std_logic; B0: in Std_logic; + A0: in Std_logic; DI1: in Std_logic; DI0: in Std_logic; + CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; + F1: out Std_logic; Q1: out Std_logic); + end component; + component SLICE_36 + port (B1: in Std_logic; A1: in Std_logic; B0: in Std_logic; + A0: in Std_logic; DI1: in Std_logic; DI0: in Std_logic; + CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; + F1: out Std_logic; Q1: out Std_logic); + end component; + component SLICE_37 + port (B1: in Std_logic; A1: in Std_logic; B0: in Std_logic; + A0: in Std_logic; DI1: in Std_logic; DI0: in Std_logic; + CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; + F1: out Std_logic; Q1: out Std_logic); + end component; + component SLICE_38 + port (B1: in Std_logic; A1: in Std_logic; B0: in Std_logic; + A0: in Std_logic; DI1: in Std_logic; DI0: in Std_logic; + CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; + F1: out Std_logic; Q1: out Std_logic); + end component; + component SLICE_39 + port (B1: in Std_logic; A1: in Std_logic; B0: in Std_logic; + A0: in Std_logic; DI1: in Std_logic; DI0: in Std_logic; + CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; + F1: out Std_logic; Q1: out Std_logic); + end component; + component SLICE_40 + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; B0: in Std_logic; A0: in Std_logic; + DI0: in Std_logic; LSR: in Std_logic; CLK: in Std_logic; + F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic); + end component; + component SLICE_41 + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; B0: in Std_logic; A0: in Std_logic; + DI0: in Std_logic; M0: in Std_logic; CLK: in Std_logic; + OFX0: out Std_logic; Q0: out Std_logic); + end component; + component SLICE_42 port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; DI0: in Std_logic; CE: in Std_logic; CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic); end component; - component SLICE_20 - port (DI0: in Std_logic; CE: in Std_logic; CLK: in Std_logic; - F0: out Std_logic; Q0: out Std_logic); - end component; - component SLICE_24 - port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; - D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; - A0: in Std_logic; DI0: in Std_logic; CE: in Std_logic; - CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; - F1: out Std_logic); - end component; - component SLICE_25 - port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; - A0: in Std_logic; DI0: in Std_logic; M1: in Std_logic; - CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; - F1: out Std_logic; Q1: out Std_logic); - end component; - component SLICE_26 - port (DI0: in Std_logic; CE: in Std_logic; CLK: in Std_logic; - F0: out Std_logic; Q0: out Std_logic); - end component; - component SLICE_27 - port (DI0: in Std_logic; CE: in Std_logic; CLK: in Std_logic; - F0: out Std_logic; Q0: out Std_logic); - end component; - component SLICE_30 - port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; - A0: in Std_logic; DI0: in Std_logic; M1: in Std_logic; - CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; - F1: out Std_logic; Q1: out Std_logic); - end component; - component SLICE_32 - port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; - D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; - A0: in Std_logic; DI0: in Std_logic; LSR: in Std_logic; - CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; - F1: out Std_logic); - end component; - component SLICE_33 - port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; - C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; - DI0: in Std_logic; LSR: in Std_logic; CLK: in Std_logic; - F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic); - end component; - component SLICE_35 + component SLICE_43 port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; DI0: in Std_logic; CE: in Std_logic; CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic); end component; - component SLICE_36 - port (D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; - A0: in Std_logic; DI0: in Std_logic; M1: in Std_logic; - CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; - Q1: out Std_logic); - end component; - component SLICE_37 - port (DI0: in Std_logic; CE: in Std_logic; CLK: in Std_logic; - F0: out Std_logic; Q0: out Std_logic); - end component; component SLICE_44 port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; C0: in Std_logic; B0: in Std_logic; - A0: in Std_logic; DI0: in Std_logic; CE: in Std_logic; + A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; + B0: in Std_logic; A0: in Std_logic; DI0: in Std_logic; LSR: in Std_logic; CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic); end component; @@ -25404,390 +26800,356 @@ port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; DI0: in Std_logic; - CE: in Std_logic; LSR: in Std_logic; CLK: in Std_logic; - F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic); + CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; + F1: out Std_logic); + end component; + component SLICE_46 + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; + B0: in Std_logic; A0: in Std_logic; F0: out Std_logic; + F1: out Std_logic); + end component; + component SLICE_47 + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; + B0: in Std_logic; A0: in Std_logic; F0: out Std_logic; + F1: out Std_logic); + end component; + component SLICE_48 + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; F0: out Std_logic; F1: out Std_logic); + end component; + component SLICE_49 + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; + B0: in Std_logic; A0: in Std_logic; F0: out Std_logic; + F1: out Std_logic); end component; component SLICE_50 port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; - B0: in Std_logic; A0: in Std_logic; DI0: in Std_logic; - CE: in Std_logic; CLK: in Std_logic; F0: out Std_logic; - Q0: out Std_logic; F1: out Std_logic); + A1: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; F0: out Std_logic; F1: out Std_logic); + end component; + component SLICE_51 + port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; + D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; F0: out Std_logic; F1: out Std_logic); + end component; + component SLICE_52 + port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; + D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; F0: out Std_logic; F1: out Std_logic); + end component; + component SLICE_53 + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; F0: out Std_logic; F1: out Std_logic); + end component; + component SLICE_54 + port (B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; + C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; + F0: out Std_logic; F1: out Std_logic); + end component; + component SLICE_55 + port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; + D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; F0: out Std_logic; F1: out Std_logic); + end component; + component SLICE_56 + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; F0: out Std_logic; F1: out Std_logic); end component; component SLICE_57 port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; - B0: in Std_logic; A0: in Std_logic; DI0: in Std_logic; - CE: in Std_logic; CLK: in Std_logic; F0: out Std_logic; - Q0: out Std_logic; F1: out Std_logic); - end component; - component SLICE_59 - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; - B0: in Std_logic; A0: in Std_logic; DI0: in Std_logic; - CE: in Std_logic; CLK: in Std_logic; F0: out Std_logic; - Q0: out Std_logic; F1: out Std_logic); - end component; - component SLICE_61 - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; C0: in Std_logic; B0: in Std_logic; - A0: in Std_logic; DI0: in Std_logic; CE: in Std_logic; - CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; + B0: in Std_logic; A0: in Std_logic; F0: out Std_logic; F1: out Std_logic); end component; - component SLICE_62 + component SLICE_58 port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; - B0: in Std_logic; A0: in Std_logic; DI0: in Std_logic; - CE: in Std_logic; CLK: in Std_logic; F0: out Std_logic; - Q0: out Std_logic; F1: out Std_logic); + B0: in Std_logic; A0: in Std_logic; F0: out Std_logic; + F1: out Std_logic); end component; - component SLICE_64 + component SLICE_59 + port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; + D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; F0: out Std_logic; F1: out Std_logic); + end component; + component SLICE_60 port (B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; - DI0: in Std_logic; CE: in Std_logic; CLK: in Std_logic; - F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic); + F0: out Std_logic; F1: out Std_logic); + end component; + component SLICE_61 + port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; + D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; F0: out Std_logic; F1: out Std_logic); + end component; + component SLICE_62 + port (B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; + C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; + F0: out Std_logic; F1: out Std_logic); + end component; + component SLICE_63 + port (B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; + C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; + M1: in Std_logic; M0: in Std_logic; CLK: in Std_logic; + F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic; + Q1: out Std_logic); + end component; + component SLICE_64 + port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; + D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; F0: out Std_logic; F1: out Std_logic); end component; component SLICE_65 port (B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; - DI0: in Std_logic; CE: in Std_logic; CLK: in Std_logic; - F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic); - end component; - component SLICE_66 - port (B1: in Std_logic; A1: in Std_logic; B0: in Std_logic; - A0: in Std_logic; DI0: in Std_logic; LSR: in Std_logic; - CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; - F1: out Std_logic); - end component; - component SLICE_67 - port (B0: in Std_logic; A0: in Std_logic; DI0: in Std_logic; - LSR: in Std_logic; CLK: in Std_logic; F0: out Std_logic; - Q0: out Std_logic); - end component; - component SLICE_68 - port (B1: in Std_logic; A1: in Std_logic; B0: in Std_logic; - A0: in Std_logic; M0: in Std_logic; LSR: in Std_logic; - CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; - F1: out Std_logic); - end component; - component SLICE_69 - port (B1: in Std_logic; A1: in Std_logic; A0: in Std_logic; - DI0: in Std_logic; M1: in Std_logic; CLK: in Std_logic; + M1: in Std_logic; M0: in Std_logic; CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic; Q1: out Std_logic); end component; - component SLICE_70 + component SLICE_66 port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; - B0: in Std_logic; A0: in Std_logic; DI0: in Std_logic; - CE: in Std_logic; CLK: in Std_logic; F0: out Std_logic; + B0: in Std_logic; A0: in Std_logic; F0: out Std_logic; + F1: out Std_logic); + end component; + component SLICE_67 + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; F0: out Std_logic; F1: out Std_logic); + end component; + component SLICE_68 + port (B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; + C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; + M0: in Std_logic; CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic); end component; - component i30_SLICE_71 + component SLICE_69 + port (B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; + C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; + F0: out Std_logic; F1: out Std_logic); + end component; + component SLICE_70 + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; F0: out Std_logic; F1: out Std_logic); + end component; + component SLICE_71 port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; - A0: in Std_logic; M0: in Std_logic; OFX0: out Std_logic); + A0: in Std_logic; F0: out Std_logic; F1: out Std_logic); end component; component SLICE_72 port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; B0: in Std_logic; A0: in Std_logic; - F0: out Std_logic; F1: out Std_logic); + A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; + B0: in Std_logic; A0: in Std_logic; F0: out Std_logic; + F1: out Std_logic); end component; component SLICE_73 port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; - B0: in Std_logic; A0: in Std_logic; F0: out Std_logic; + B0: in Std_logic; A0: in Std_logic; M0: in Std_logic; + CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic); end component; component SLICE_74 port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; - B0: in Std_logic; A0: in Std_logic; M1: in Std_logic; - M0: in Std_logic; LSR: in Std_logic; CLK: in Std_logic; - F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic; - Q1: out Std_logic); + B0: in Std_logic; A0: in Std_logic; M0: in Std_logic; + CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; + F1: out Std_logic); end component; component SLICE_75 - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; B0: in Std_logic; A0: in Std_logic; - M1: in Std_logic; M0: in Std_logic; CE: in Std_logic; - CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; - F1: out Std_logic; Q1: out Std_logic); + port (B1: in Std_logic; A1: in Std_logic; C0: in Std_logic; + B0: in Std_logic; A0: in Std_logic; F0: out Std_logic; + F1: out Std_logic); end component; component SLICE_76 - port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; - D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; - A0: in Std_logic; M1: in Std_logic; M0: in Std_logic; - LSR: in Std_logic; CLK: in Std_logic; F0: out Std_logic; - Q0: out Std_logic; F1: out Std_logic; Q1: out Std_logic); - end component; - component SLICE_77 port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; F0: out Std_logic; F1: out Std_logic); end component; - component SLICE_78 + component SLICE_77 port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; B0: in Std_logic; A0: in Std_logic; - M1: in Std_logic; M0: in Std_logic; CE: in Std_logic; - CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; - F1: out Std_logic; Q1: out Std_logic); + F0: out Std_logic; F1: out Std_logic); + end component; + component SLICE_78 + port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; + A1: in Std_logic; C0: in Std_logic; B0: in Std_logic; + A0: in Std_logic; F0: out Std_logic; F1: out Std_logic); end component; component SLICE_79 - port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; - D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; - A0: in Std_logic; M1: in Std_logic; M0: in Std_logic; - CE: in Std_logic; CLK: in Std_logic; F0: out Std_logic; - Q0: out Std_logic; F1: out Std_logic; Q1: out Std_logic); + port (B1: in Std_logic; A1: in Std_logic; C0: in Std_logic; + B0: in Std_logic; A0: in Std_logic; F0: out Std_logic; + F1: out Std_logic); end component; component SLICE_80 - port (B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; + port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; F0: out Std_logic; F1: out Std_logic); end component; component SLICE_81 - port (B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; + port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; - M1: in Std_logic; M0: in Std_logic; CE: in Std_logic; - CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; - F1: out Std_logic; Q1: out Std_logic); + F0: out Std_logic; F1: out Std_logic); end component; component SLICE_82 - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; B0: in Std_logic; A0: in Std_logic; - M1: in Std_logic; M0: in Std_logic; LSR: in Std_logic; - CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; - F1: out Std_logic; Q1: out Std_logic); + port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; + C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; + F0: out Std_logic; F1: out Std_logic); end component; component SLICE_83 - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; - B0: in Std_logic; A0: in Std_logic; F0: out Std_logic; - F1: out Std_logic); + port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; + C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; + F0: out Std_logic; F1: out Std_logic); end component; component SLICE_84 - port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; - D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; - A0: in Std_logic; M1: in Std_logic; M0: in Std_logic; - CE: in Std_logic; CLK: in Std_logic; F0: out Std_logic; - Q0: out Std_logic; F1: out Std_logic; Q1: out Std_logic); + port (B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; + C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; + F0: out Std_logic; F1: out Std_logic); end component; component SLICE_85 - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; - B0: in Std_logic; A0: in Std_logic; F0: out Std_logic; - F1: out Std_logic); - end component; - component SLICE_86 - port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; - D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; - A0: in Std_logic; M1: in Std_logic; M0: in Std_logic; - CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; - F1: out Std_logic; Q1: out Std_logic); - end component; - component SLICE_87 port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; B0: in Std_logic; A0: in Std_logic; - M1: in Std_logic; M0: in Std_logic; LSR: in Std_logic; - CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; - F1: out Std_logic; Q1: out Std_logic); - end component; - component SLICE_88 - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; - B0: in Std_logic; A0: in Std_logic; M1: in Std_logic; - M0: in Std_logic; CLK: in Std_logic; F0: out Std_logic; - Q0: out Std_logic; F1: out Std_logic; Q1: out Std_logic); - end component; - component SLICE_89 - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; - B0: in Std_logic; A0: in Std_logic; M1: in Std_logic; - M0: in Std_logic; CLK: in Std_logic; F0: out Std_logic; - Q0: out Std_logic; F1: out Std_logic; Q1: out Std_logic); - end component; - component SLICE_90 - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; C0: in Std_logic; B0: in Std_logic; - A0: in Std_logic; M1: in Std_logic; M0: in Std_logic; - CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; - F1: out Std_logic; Q1: out Std_logic); - end component; - component SLICE_91 - port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; - D0: in Std_logic; C0: in Std_logic; B0: in Std_logic; - A0: in Std_logic; M1: in Std_logic; M0: in Std_logic; - LSR: in Std_logic; CLK: in Std_logic; F0: out Std_logic; - Q0: out Std_logic; F1: out Std_logic; Q1: out Std_logic); - end component; - component SLICE_92 - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; - B0: in Std_logic; A0: in Std_logic; M1: in Std_logic; - M0: in Std_logic; CLK: in Std_logic; F0: out Std_logic; - Q0: out Std_logic; F1: out Std_logic; Q1: out Std_logic); - end component; - component SLICE_93 - port (B1: in Std_logic; A1: in Std_logic; C0: in Std_logic; - B0: in Std_logic; A0: in Std_logic; M1: in Std_logic; - M0: in Std_logic; CLK: in Std_logic; F0: out Std_logic; - Q0: out Std_logic; F1: out Std_logic; Q1: out Std_logic); - end component; - component SLICE_94 - port (B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; - C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; F0: out Std_logic; F1: out Std_logic); end component; - component SLICE_95 - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; D0: in Std_logic; C0: in Std_logic; - B0: in Std_logic; A0: in Std_logic; F0: out Std_logic; - F1: out Std_logic); - end component; - component SLICE_96 - port (B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; - C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; - F0: out Std_logic; F1: out Std_logic); - end component; - component SLICE_97 - port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; - B0: in Std_logic; A0: in Std_logic; M1: in Std_logic; - M0: in Std_logic; CE: in Std_logic; CLK: in Std_logic; - F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic; - Q1: out Std_logic); - end component; - component SLICE_98 - port (B1: in Std_logic; A1: in Std_logic; C0: in Std_logic; - B0: in Std_logic; A0: in Std_logic; M1: in Std_logic; - M0: in Std_logic; CE: in Std_logic; CLK: in Std_logic; - F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic; - Q1: out Std_logic); - end component; - component SLICE_99 - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; C0: in Std_logic; B0: in Std_logic; - A0: in Std_logic; M0: in Std_logic; CE: in Std_logic; - CLK: in Std_logic; F0: out Std_logic; Q0: out Std_logic; - F1: out Std_logic); - end component; - component SLICE_100 - port (D1: in Std_logic; C1: in Std_logic; B1: in Std_logic; - A1: in Std_logic; C0: in Std_logic; B0: in Std_logic; - A0: in Std_logic; M1: in Std_logic; M0: in Std_logic; - CE: in Std_logic; CLK: in Std_logic; F0: out Std_logic; - Q0: out Std_logic; F1: out Std_logic; Q1: out Std_logic); - end component; - component SLICE_101 - port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; - C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; - M1: in Std_logic; M0: in Std_logic; CLK: in Std_logic; - F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic; - Q1: out Std_logic); - end component; - component SLICE_102 - port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; - C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; - M1: in Std_logic; M0: in Std_logic; CLK: in Std_logic; - F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic; - Q1: out Std_logic); - end component; - component SLICE_103 - port (C1: in Std_logic; B1: in Std_logic; A1: in Std_logic; - C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; - M1: in Std_logic; M0: in Std_logic; CLK: in Std_logic; - F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic; - Q1: out Std_logic); - end component; - component SLICE_104 - port (B1: in Std_logic; A1: in Std_logic; C0: in Std_logic; - B0: in Std_logic; A0: in Std_logic; M1: in Std_logic; - M0: in Std_logic; LSR: in Std_logic; CLK: in Std_logic; - F0: out Std_logic; Q0: out Std_logic; F1: out Std_logic; - Q1: out Std_logic); - end component; - component SLICE_105 - port (B1: in Std_logic; A1: in Std_logic; D0: in Std_logic; - C0: in Std_logic; B0: in Std_logic; A0: in Std_logic; - F0: out Std_logic; F1: out Std_logic); - end component; - component SLICE_106 - port (B1: in Std_logic; A1: in Std_logic; B0: in Std_logic; - A0: in Std_logic; M1: in Std_logic; M0: in Std_logic; - CE: in Std_logic; CLK: in Std_logic; F0: out Std_logic; - Q0: out Std_logic; F1: out Std_logic; Q1: out Std_logic); - end component; - component RD_7_B - port (PADDI: out Std_logic; PADDT: in Std_logic; PADDO: in Std_logic; - RD7: inout Std_logic); - end component; - component RD_6_B - port (PADDI: out Std_logic; PADDT: in Std_logic; PADDO: in Std_logic; - RD6: inout Std_logic); - end component; - component RD_5_B - port (PADDI: out Std_logic; PADDT: in Std_logic; PADDO: in Std_logic; - RD5: inout Std_logic); - end component; - component RD_4_B - port (PADDI: out Std_logic; PADDT: in Std_logic; PADDO: in Std_logic; - RD4: inout Std_logic); - end component; - component RD_3_B - port (PADDI: out Std_logic; PADDT: in Std_logic; PADDO: in Std_logic; - RD3: inout Std_logic); - end component; - component RD_2_B - port (PADDI: out Std_logic; PADDT: in Std_logic; PADDO: in Std_logic; - RD2: inout Std_logic); - end component; - component RD_1_B - port (PADDI: out Std_logic; PADDT: in Std_logic; PADDO: in Std_logic; - RD1: inout Std_logic); - end component; component RD_0_B - port (PADDI: out Std_logic; PADDT: in Std_logic; PADDO: in Std_logic; - RD0: inout Std_logic); + port (IOLDO: in Std_logic; PADDT: in Std_logic; RD0: out Std_logic); end component; - component Dout_7_B - port (PADDO: in Std_logic; Dout7: out Std_logic); - end component; - component Dout_6_B - port (PADDO: in Std_logic; Dout6: out Std_logic); - end component; - component Dout_5_B - port (PADDO: in Std_logic; Dout5: out Std_logic); - end component; - component Dout_4_B - port (PADDO: in Std_logic; Dout4: out Std_logic); - end component; - component Dout_3_B - port (PADDO: in Std_logic; Dout3: out Std_logic); - end component; - component Dout_2_B - port (PADDO: in Std_logic; Dout2: out Std_logic); - end component; - component Dout_1_B - port (PADDO: in Std_logic; Dout1: out Std_logic); + component RD_0_MGIOL + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); end component; component Dout_0_B port (PADDO: in Std_logic; Dout0: out Std_logic); end component; - component LEDB - port (PADDO: in Std_logic; LEDS: out Std_logic); + component PHI2B + port (PADDI: out Std_logic; PHI2S: in Std_logic); end component; - component RBA_1_B - port (PADDO: in Std_logic; RBA1: out Std_logic); + component PHI2_MGIOL + port (DI: in Std_logic; CLK: in Std_logic; INP: out Std_logic); end component; - component RBA_0_B - port (PADDO: in Std_logic; RBA0: out Std_logic); + component UFMSDOB + port (PADDI: out Std_logic; UFMSDOS: in Std_logic); + end component; + component UFMSDIB + port (IOLDO: in Std_logic; UFMSDIS: out Std_logic); + end component; + component UFMSDI_MGIOL + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); + end component; + component UFMCLKB + port (IOLDO: in Std_logic; UFMCLKS: out Std_logic); + end component; + component UFMCLK_MGIOL + port (IOLDO: out Std_logic; OPOS: in Std_logic; CE: in Std_logic; + CLK: in Std_logic); + end component; + component nUFMCSB + port (IOLDO: in Std_logic; nUFMCSS: out Std_logic); + end component; + component nUFMCS_MGIOL + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); + end component; + component RDQMLB + port (PADDO: in Std_logic; RDQMLS: out Std_logic); + end component; + component RDQMHB + port (PADDO: in Std_logic; RDQMHS: out Std_logic); + end component; + component nRCASB + port (IOLDO: in Std_logic; nRCASS: out Std_logic); + end component; + component nRCAS_MGIOL + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); + end component; + component nRRASB + port (IOLDO: in Std_logic; nRRASS: out Std_logic); + end component; + component nRRAS_MGIOL + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); + end component; + component nRWEB + port (IOLDO: in Std_logic; nRWES: out Std_logic); + end component; + component nRWE_MGIOL + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); + end component; + component RCKEB + port (IOLDO: in Std_logic; RCKES: out Std_logic); + end component; + component RCKE_MGIOL + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); + end component; + component RCLKB + port (PADDI: out Std_logic; RCLKS: in Std_logic); + end component; + component nRCSB + port (IOLDO: in Std_logic; nRCSS: out Std_logic); + end component; + component nRCS_MGIOL + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); + end component; + component RD_7_B + port (IOLDO: in Std_logic; PADDT: in Std_logic; RD7: out Std_logic); + end component; + component RD_7_MGIOL + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); + end component; + component RD_6_B + port (IOLDO: in Std_logic; PADDT: in Std_logic; RD6: out Std_logic); + end component; + component RD_6_MGIOL + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); + end component; + component RD_5_B + port (IOLDO: in Std_logic; PADDT: in Std_logic; RD5: out Std_logic); + end component; + component RD_5_MGIOL + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); + end component; + component RD_4_B + port (IOLDO: in Std_logic; PADDT: in Std_logic; RD4: out Std_logic); + end component; + component RD_4_MGIOL + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); + end component; + component RD_3_B + port (IOLDO: in Std_logic; PADDT: in Std_logic; RD3: out Std_logic); + end component; + component RD_3_MGIOL + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); + end component; + component RD_2_B + port (IOLDO: in Std_logic; PADDT: in Std_logic; RD2: out Std_logic); + end component; + component RD_2_MGIOL + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); + end component; + component RD_1_B + port (IOLDO: in Std_logic; PADDT: in Std_logic; RD1: out Std_logic); + end component; + component RD_1_MGIOL + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); end component; component RA_11_B - port (PADDO: in Std_logic; RA11: out Std_logic); + port (IOLDO: in Std_logic; RA11: out Std_logic); + end component; + component RA_11_MGIOL + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); end component; component RA_10_B - port (PADDO: in Std_logic; RA10: out Std_logic); + port (IOLDO: in Std_logic; RA10: out Std_logic); + end component; + component RA_10_MGIOL + port (IOLDO: out Std_logic; OPOS: in Std_logic; LSR: in Std_logic; + CLK: in Std_logic); end component; component RA_9_B port (PADDO: in Std_logic; RA9: out Std_logic); @@ -25819,38 +27181,107 @@ component RA_0_B port (PADDO: in Std_logic; RA0: out Std_logic); end component; - component nRCSB - port (PADDO: in Std_logic; nRCSS: out Std_logic); + component RBA_1_B + port (IOLDO: in Std_logic; RBA1: out Std_logic); end component; - component RCKEB - port (PADDO: in Std_logic; RCKES: out Std_logic); + component RBA_1_MGIOL + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); end component; - component nRWEB - port (PADDO: in Std_logic; nRWES: out Std_logic); + component RBA_0_B + port (IOLDO: in Std_logic; RBA0: out Std_logic); end component; - component nRRASB - port (PADDO: in Std_logic; nRRASS: out Std_logic); + component RBA_0_MGIOL + port (IOLDO: out Std_logic; OPOS: in Std_logic; CLK: in Std_logic); end component; - component nRCASB - port (PADDO: in Std_logic; nRCASS: out Std_logic); + component LEDB + port (PADDO: in Std_logic; LEDS: out Std_logic); end component; - component RDQMHB - port (PADDO: in Std_logic; RDQMHS: out Std_logic); + component nFWEB + port (PADDI: out Std_logic; nFWES: in Std_logic); end component; - component RDQMLB - port (PADDO: in Std_logic; RDQMLS: out Std_logic); + component nCRASB + port (PADDI: out Std_logic; nCRASS: in Std_logic); end component; - component nUFMCSB - port (PADDO: in Std_logic; nUFMCSS: out Std_logic); + component nCCASB + port (PADDI: out Std_logic; nCCASS: in Std_logic); end component; - component UFMCLKB - port (PADDO: in Std_logic; UFMCLKS: out Std_logic); + component Dout_7_B + port (PADDO: in Std_logic; Dout7: out Std_logic); end component; - component UFMSDIB - port (PADDO: in Std_logic; UFMSDIS: out Std_logic); + component Dout_6_B + port (PADDO: in Std_logic; Dout6: out Std_logic); end component; - component PHI2B - port (PADDI: out Std_logic; PHI2S: in Std_logic); + component Dout_5_B + port (PADDO: in Std_logic; Dout5: out Std_logic); + end component; + component Dout_4_B + port (PADDO: in Std_logic; Dout4: out Std_logic); + end component; + component Dout_3_B + port (PADDO: in Std_logic; Dout3: out Std_logic); + end component; + component Dout_2_B + port (PADDO: in Std_logic; Dout2: out Std_logic); + end component; + component Dout_1_B + port (PADDO: in Std_logic; Dout1: out Std_logic); + end component; + component Din_7_B + port (PADDI: out Std_logic; Din7: in Std_logic); + end component; + component Din_7_MGIOL + port (DI: in Std_logic; CLK: in Std_logic; INP: out Std_logic); + end component; + component Din_6_B + port (PADDI: out Std_logic; Din6: in Std_logic); + end component; + component Din_6_MGIOL + port (DI: in Std_logic; CLK: in Std_logic; INP: out Std_logic); + end component; + component Din_5_B + port (PADDI: out Std_logic; Din5: in Std_logic); + end component; + component Din_5_MGIOL + port (DI: in Std_logic; CLK: in Std_logic; INP: out Std_logic); + end component; + component Din_4_B + port (PADDI: out Std_logic; Din4: in Std_logic); + end component; + component Din_4_MGIOL + port (DI: in Std_logic; CLK: in Std_logic; INP: out Std_logic); + end component; + component Din_3_B + port (PADDI: out Std_logic; Din3: in Std_logic); + end component; + component Din_3_MGIOL + port (DI: in Std_logic; CLK: in Std_logic; INP: out Std_logic); + end component; + component Din_2_B + port (PADDI: out Std_logic; Din2: in Std_logic); + end component; + component Din_2_MGIOL + port (DI: in Std_logic; CE: in Std_logic; CLK: in Std_logic; + INP: out Std_logic); + end component; + component Din_1_B + port (PADDI: out Std_logic; Din1: in Std_logic); + end component; + component Din_1_MGIOL + port (DI: in Std_logic; CE: in Std_logic; CLK: in Std_logic; + INP: out Std_logic); + end component; + component Din_0_B + port (PADDI: out Std_logic; Din0: in Std_logic); + end component; + component Din_0_MGIOL + port (DI: in Std_logic; CE: in Std_logic; CLK: in Std_logic; + INP: out Std_logic); + end component; + component CROW_1_B + port (PADDI: out Std_logic; CROW1: in Std_logic); + end component; + component CROW_0_B + port (PADDI: out Std_logic; CROW0: in Std_logic); end component; component MAin_9_B port (PADDI: out Std_logic; MAin9: in Std_logic); @@ -25882,442 +27313,477 @@ component MAin_0_B port (PADDI: out Std_logic; MAin0: in Std_logic); end component; - component CROW_1_B - port (PADDI: out Std_logic; CROW1: in Std_logic); - end component; - component CROW_0_B - port (PADDI: out Std_logic; CROW0: in Std_logic); - end component; - component Din_7_B - port (PADDI: out Std_logic; Din7: in Std_logic); - end component; - component Din_6_B - port (PADDI: out Std_logic; Din6: in Std_logic); - end component; - component Din_5_B - port (PADDI: out Std_logic; Din5: in Std_logic); - end component; - component Din_4_B - port (PADDI: out Std_logic; Din4: in Std_logic); - end component; - component Din_3_B - port (PADDI: out Std_logic; Din3: in Std_logic); - end component; - component Din_2_B - port (PADDI: out Std_logic; Din2: in Std_logic); - end component; - component Din_1_B - port (PADDI: out Std_logic; Din1: in Std_logic); - end component; - component Din_0_B - port (PADDI: out Std_logic; Din0: in Std_logic); - end component; - component nCCASB - port (PADDI: out Std_logic; nCCASS: in Std_logic); - end component; - component nCRASB - port (PADDI: out Std_logic; nCRASS: in Std_logic); - end component; - component nFWEB - port (PADDI: out Std_logic; nFWES: in Std_logic); - end component; - component RCLKB - port (PADDI: out Std_logic; RCLKS: in Std_logic); - end component; - component UFMSDOB - port (PADDI: out Std_logic; UFMSDOS: in Std_logic); - end component; begin SLICE_0I: SLICE_0 - port map (A1=>FS_14, A0=>FS_13, DI1=>n81, DI0=>n82, CLK=>RCLK_c, - FCI=>n1998, F0=>n82, Q0=>FS_13, F1=>n81, Q1=>FS_14, FCO=>n1999); + port map (A1=>FS_0, DI1=>FS_s_0, CLK=>RCLK_c, F1=>FS_s_0, Q1=>FS_0, + FCO=>FS_cry_0); SLICE_1I: SLICE_1 - port map (A1=>FS_12, A0=>FS_11, DI1=>n83, DI0=>n84, CLK=>RCLK_c, - FCI=>n1997, F0=>n84, Q0=>FS_11, F1=>n83, Q1=>FS_12, FCO=>n1998); + port map (A0=>FS_17, DI0=>FS_s_17, CLK=>RCLK_c, FCI=>FS_cry_16, + F0=>FS_s_17, Q0=>FS_17); SLICE_2I: SLICE_2 - port map (A1=>FS_8, A0=>FS_7, DI1=>n87, DI0=>n88, CLK=>RCLK_c, - FCI=>n1995, F0=>n88, Q0=>FS_7, F1=>n87, Q1=>FS_8, FCO=>n1996); + port map (A1=>FS_16, A0=>FS_15, DI1=>FS_s_16, DI0=>FS_s_15, CLK=>RCLK_c, + FCI=>FS_cry_14, F0=>FS_s_15, Q0=>FS_15, F1=>FS_s_16, Q1=>FS_16, + FCO=>FS_cry_16); SLICE_3I: SLICE_3 - port map (A1=>FS_6, A0=>FS_5, DI1=>n89, DI0=>n90, CLK=>RCLK_c, - FCI=>n1994, F0=>n90, Q0=>FS_5, F1=>n89, Q1=>FS_6, FCO=>n1995); + port map (A1=>FS_14, A0=>FS_13, DI1=>FS_s_14, DI0=>FS_s_13, CLK=>RCLK_c, + FCI=>FS_cry_12, F0=>FS_s_13, Q0=>FS_13, F1=>FS_s_14, Q1=>FS_14, + FCO=>FS_cry_14); SLICE_4I: SLICE_4 - port map (A1=>FS_2, A0=>FS_1, DI1=>n93, DI0=>n94, CLK=>RCLK_c, - FCI=>n1992, F0=>n94, Q0=>FS_1, F1=>n93, Q1=>FS_2, FCO=>n1993); + port map (A1=>FS_12, A0=>FS_11, DI1=>FS_s_12, DI0=>FS_s_11, CLK=>RCLK_c, + FCI=>FS_cry_10, F0=>FS_s_11, Q0=>FS_11, F1=>FS_s_12, Q1=>FS_12, + FCO=>FS_cry_12); SLICE_5I: SLICE_5 - port map (A1=>FS_0, DI1=>n95, M0=>CASr2, CLK=>RCLK_c, Q0=>CASr3, F1=>n95, - Q1=>FS_0, FCO=>n1992); + port map (A1=>FS_10, A0=>FS_9, DI1=>FS_s_10, DI0=>FS_s_9, CLK=>RCLK_c, + FCI=>FS_cry_8, F0=>FS_s_9, Q0=>FS_9, F1=>FS_s_10, Q1=>FS_10, + FCO=>FS_cry_10); SLICE_6I: SLICE_6 - port map (A1=>FS_10, A0=>FS_9, DI1=>n85, DI0=>n86, CLK=>RCLK_c, - FCI=>n1996, F0=>n86, Q0=>FS_9, F1=>n85, Q1=>FS_10, FCO=>n1997); + port map (A1=>FS_8, A0=>FS_7, DI1=>FS_s_8, DI0=>FS_s_7, CLK=>RCLK_c, + FCI=>FS_cry_6, F0=>FS_s_7, Q0=>FS_7, F1=>FS_s_8, Q1=>FS_8, + FCO=>FS_cry_8); SLICE_7I: SLICE_7 - port map (A0=>FS_17, DI0=>n78, CLK=>RCLK_c, FCI=>n2000, F0=>n78, - Q0=>FS_17); + port map (A1=>FS_6, A0=>FS_5, DI1=>FS_s_6, DI0=>FS_s_5, CLK=>RCLK_c, + FCI=>FS_cry_4, F0=>FS_s_5, Q0=>FS_5, F1=>FS_s_6, Q1=>FS_6, + FCO=>FS_cry_6); SLICE_8I: SLICE_8 - port map (A1=>FS_4, A0=>FS_3, DI1=>n91, DI0=>n92, CLK=>RCLK_c, - FCI=>n1993, F0=>n92, Q0=>FS_3, F1=>n91, Q1=>FS_4, FCO=>n1994); + port map (A1=>FS_4, A0=>FS_3, DI1=>FS_s_4, DI0=>FS_s_3, CLK=>RCLK_c, + FCI=>FS_cry_2, F0=>FS_s_3, Q0=>FS_3, F1=>FS_s_4, Q1=>FS_4, + FCO=>FS_cry_4); SLICE_9I: SLICE_9 - port map (A1=>FS_16, A0=>FS_15, DI1=>n79, DI0=>n80, CLK=>RCLK_c, - FCI=>n1999, F0=>n80, Q0=>FS_15, F1=>n79, Q1=>FS_16, FCO=>n2000); + port map (A1=>FS_2, A0=>FS_1, DI1=>FS_s_2, DI0=>FS_s_1, CLK=>RCLK_c, + FCI=>FS_cry_0, F0=>FS_s_1, Q0=>FS_1, F1=>FS_s_2, Q1=>FS_2, + FCO=>FS_cry_2); SLICE_10I: SLICE_10 - port map (D1=>Din_c_4, C1=>Din_c_6, B1=>Din_c_1, A1=>Din_c_7, D0=>n2382, - C0=>n8, B0=>n2225, A0=>n2180, DI0=>ADSubmitted_N_246, - CE=>PHI2_N_120_enable_2, LSR=>C1Submitted_N_237, CLK=>PHI2_c, - F0=>ADSubmitted_N_246, Q0=>ADSubmitted, F1=>n8); - SLICE_15I: SLICE_15 - port map (D1=>n26, C1=>MAin_c_5, B1=>n22, A1=>MAin_c_2, D0=>MAin_c_1, - C0=>C1Submitted, B0=>n2365, A0=>nFWE_c, DI0=>n1398, - LSR=>C1Submitted_N_237, CLK=>PHI2_c, F0=>n1398, - Q0=>C1Submitted, F1=>n2365); - SLICE_16I: SLICE_16 - port map (A0=>nCCAS_c, DI0=>nCCAS_N_3, M1=>CASr, CLK=>RCLK_c, - F0=>nCCAS_N_3, Q0=>CASr, Q1=>CASr2); + port map (C1=>CmdEnable17_5, B1=>CmdEnable17_4, A1=>ADWR, + D0=>CmdEnable16, C0=>CmdEnable17, B0=>un1_ADWR, + A0=>ADSubmitted, DI0=>ADSubmitted_r, CLK=>PHI2_c, + F0=>ADSubmitted_r, Q0=>ADSubmitted, F1=>CmdEnable17); + SLICE_13I: SLICE_13 + port map (D1=>un1_Bank_1, C1=>MAin_c_2, B1=>CmdEnable16_5, A1=>C1WR_3, + C0=>CmdEnable16, B0=>un1_ADWR, A0=>C1Submitted, + DI0=>C1Submitted_s, CLK=>PHI2_c, F0=>C1Submitted_s, + Q0=>C1Submitted, F1=>CmdEnable16); + SLICE_14I: SLICE_14 + port map (B1=>nFWE_c, A1=>nCCAS_c, A0=>nCCAS_c, DI0=>nCCAS_c_i, M1=>CASr, + CLK=>RCLK_c, F0=>nCCAS_c_i, Q0=>CASr, F1=>RD_1_i, Q1=>CASr2); + SLICE_17I: SLICE_17 + port map (D1=>S_1, C1=>RASr2, B1=>IS_3, A1=>CO0, B0=>S_1, A0=>CO0, + DI0=>N_166_i, LSR=>RASr2, CLK=>RCLK_c, F0=>N_166_i, Q0=>CO0, + F1=>Ready_0_sqmuxa_0_a3_2); + SLICE_18I: SLICE_18 + port map (B1=>ADSubmitted, A1=>CmdEnable, D0=>C1Submitted, C0=>un1_CMDWR, + B0=>CmdEnable, A0=>CmdEnable17, DI0=>CmdEnable_s, + M0=>CmdEnable16, CLK=>PHI2_c, OFX0=>CmdEnable_s, Q0=>CmdEnable); SLICE_19I: SLICE_19 - port map (D1=>n2254, C1=>Din_c_5, B1=>n2191, A1=>n2183, D0=>n15_adj_1, - C0=>n2208, B0=>MAin_c_1, A0=>n2363, DI0=>CmdEnable_N_248, - CE=>PHI2_N_120_enable_1, CLK=>PHI2_c, F0=>CmdEnable_N_248, - Q0=>CmdEnable, F1=>n15_adj_1); + port map (C1=>N_36, B1=>Din_c_5, A1=>Din_c_1, D0=>N_94, C0=>N_60, + B0=>N_59, A0=>LEDEN, DI0=>N_14_i, CE=>XOR8MEG18, CLK=>PHI2_c, + F0=>N_14_i, Q0=>CmdLEDEN, F1=>N_60); SLICE_20I: SLICE_20 - port map (DI0=>n2447_001_BUF1, CE=>PHI2_N_120_enable_7, CLK=>PHI2_c, - F0=>n2447_001_BUF1, Q0=>CmdSubmitted); + port map (D1=>Din_c_3, C1=>Din_c_5, B1=>N_36, A1=>XOR8MEG18, + B0=>CmdSubmitted, A0=>CmdSubmitted_1_sqmuxa, DI0=>N_412_0, + CLK=>PHI2_c, F0=>N_412_0, Q0=>CmdSubmitted, + F1=>CmdUFMCLK_1_sqmuxa); + SLICE_21I: SLICE_21 + port map (C1=>N_36, B1=>Din_c_5, A1=>Din_c_3, C0=>n8MEGEN, B0=>N_94, + A0=>Cmdn8MEGEN_4_u_i_0, DI0=>N_12_i, CE=>XOR8MEG18, + CLK=>PHI2_c, F0=>N_12_i, Q0=>Cmdn8MEGEN, F1=>N_94); + SLICE_22I: SLICE_22 + port map (D1=>nFWE_c, C1=>MAin_c_1, B1=>ADWR_6, A1=>ADWR_3, A0=>nFWE_c, + DI0=>nFWE_c_i, CLK=>nCRAS_c, F0=>nFWE_c_i, Q0=>FWEr, + F1=>CMDWR_2); + SLICE_23I: SLICE_23 + port map (D1=>Ready, C1=>N_151, B1=>IS_3, A1=>IS_0, C0=>Ready, B0=>N_151, + A0=>IS_0, DI0=>N_60_i_i, CLK=>RCLK_c, F0=>N_60_i_i, Q0=>IS_0, + F1=>RA10s_i); SLICE_24I: SLICE_24 - port map (C1=>Din_c_5, B1=>Din_c_7, A1=>Din_c_6, D0=>n1314, C0=>Din_c_4, - B0=>n8MEGEN, A0=>Din_c_0, DI0=>Cmdn8MEGEN_N_264, - CE=>PHI2_N_120_enable_6, CLK=>PHI2_c, F0=>Cmdn8MEGEN_N_264, - Q0=>Cmdn8MEGEN, F1=>n1314); + port map (C1=>IS_2, B1=>IS_1, A1=>IS_0, B0=>IS_1, A0=>IS_0, DI1=>N_180_i, + DI0=>IS_n1_0_x2, CE=>N_48_i, CLK=>RCLK_c, F0=>IS_n1_0_x2, + Q0=>IS_1, F1=>N_180_i, Q1=>IS_2); SLICE_25I: SLICE_25 - port map (C1=>Din_c_3, B1=>Din_c_5, A1=>nFWE_c, A0=>nFWE_c, DI0=>n2373, - M1=>nCCAS_N_3, CLK=>nCRAS_c, F0=>n2373, Q0=>FWEr, F1=>n2180, - Q1=>CBR); + port map (D0=>IS_0, C0=>IS_1, B0=>IS_2, A0=>IS_3, DI0=>N_58_i_i, + CE=>N_48_i, CLK=>RCLK_c, F0=>N_58_i_i, Q0=>IS_3); SLICE_26I: SLICE_26 - port map (DI0=>n2447_000_BUF1, CE=>RCLK_c_enable_28, CLK=>RCLK_c, - F0=>n2447_000_BUF1, Q0=>InitReady); + port map (D1=>N_137_5, C1=>N_137_3, B1=>FS_16, A1=>FS_10, B0=>InitReady, + A0=>InitReady3, DI0=>N_413_0, CLK=>RCLK_c, F0=>N_413_0, + Q0=>InitReady, F1=>InitReady3); SLICE_27I: SLICE_27 - port map (DI0=>n2447, CE=>RCLK_c_enable_16, CLK=>RCLK_c, F0=>n2447, - Q0=>LEDEN); - SLICE_30I: SLICE_30 - port map (C1=>CBR, B1=>LEDEN, A1=>nCRAS_c, A0=>nCRAS_c, DI0=>nCRAS_c_inv, - M1=>RASr, CLK=>RCLK_c, F0=>nCRAS_c_inv, Q0=>RASr, F1=>LED_c, + port map (B0=>InitReady, A0=>CmdLEDEN, DI0=>N_74_i, CE=>N_28, + CLK=>RCLK_c, F0=>N_74_i, Q0=>LEDEN); + SLICE_29I: SLICE_29 + port map (C1=>nCRAS_c, B1=>LEDEN, A1=>CBR, A0=>nCRAS_c, DI0=>nCRAS_c_i_0, + M1=>RASr, CLK=>RCLK_c, F0=>nCRAS_c_i_0, Q0=>RASr, F1=>LED_c, Q1=>RASr2); + SLICE_31I: SLICE_31 + port map (D1=>S_0_i_o2_1, C1=>InitReady, B1=>RASr2, A1=>Ready, D0=>Ready, + C0=>RCKEEN_8_u_1_0, B0=>RCKEEN_8_u_0_0, A0=>CBR, DI0=>RCKEEN_8, + CLK=>RCLK_c, F0=>RCKEEN_8, Q0=>RCKEEN, F1=>RCKEEN_8_u_0_0); SLICE_32I: SLICE_32 - port map (C1=>nRowColSel_N_35, B1=>InitReady, A1=>RASr2, D0=>nRCAS_N_165, - C0=>Ready, B0=>n2381, A0=>nRCS_N_139, DI0=>n2036, - LSR=>nRWE_N_177, CLK=>RCLK_c, F0=>n2036, Q0=>RA_0S, F1=>n2381); + port map (B1=>Ready_fast, A1=>CROW_c_1, D0=>RCKEEN, C0=>RASr3, B0=>RASr2, + A0=>RASr, DI0=>RCKE_2, M1=>RASr2, CLK=>RCLK_c, F0=>RCKE_2, + Q0=>RCKE_c, F1=>RBAd_0_1, Q1=>RASr3); SLICE_33I: SLICE_33 - port map (C1=>Din_c_4, B1=>Din_c_7, A1=>Din_c_6, C0=>n8MEGEN, - B0=>XOR8MEG, A0=>Din_c_6, DI0=>RA11_N_184, LSR=>Ready, - CLK=>PHI2_c, F0=>RA11_N_184, Q0=>RA_c, F1=>n6_adj_2); + port map (C1=>IS_2, B1=>IS_1, A1=>IS_0, D0=>InitReady, C0=>N_158, + B0=>Ready_0_sqmuxa_0_a3_2, A0=>Ready, DI0=>N_414_0, + CLK=>RCLK_c, F0=>N_414_0, Q0=>Ready, F1=>N_158); + SLICE_34I: SLICE_34 + port map (D1=>Ready_0_sqmuxa_0_a3_2, C1=>Ready, B1=>N_158, A1=>InitReady, + B0=>Ready_fast, A0=>Ready_0_sqmuxa, DI0=>N_415_0, CLK=>RCLK_c, + F0=>N_415_0, Q0=>Ready_fast, F1=>Ready_0_sqmuxa); SLICE_35I: SLICE_35 - port map (D1=>InitReady, C1=>CmdSubmitted, B1=>PHI2r2, A1=>PHI2r3, - C0=>Ready, B0=>n15_adj_4, A0=>InitReady, DI0=>RCKEEN_N_121, - CE=>RCLK_c_enable_6, CLK=>RCLK_c, F0=>RCKEEN_N_121, Q0=>RCKEEN, - F1=>RCLK_c_enable_10); + port map (B1=>Ready_fast, A1=>MAin_c_1, B0=>Ready_fast, A0=>MAin_c_0, + DI1=>RowAd_0_1, DI0=>RowAd_0_0, CLK=>nCRAS_c, F0=>RowAd_0_0, + Q0=>RowA_0, F1=>RowAd_0_1, Q1=>RowA_1); SLICE_36I: SLICE_36 - port map (D0=>RASr3, C0=>RASr2, B0=>RCKEEN, A0=>RASr, DI0=>RCKE_N_132, - M1=>PHI2r, CLK=>RCLK_c, F0=>RCKE_N_132, Q0=>RCKE_c, Q1=>PHI2r2); + port map (B1=>Ready_fast, A1=>MAin_c_3, B0=>Ready_fast, A0=>MAin_c_2, + DI1=>RowAd_0_3, DI0=>RowAd_0_2, CLK=>nCRAS_c, F0=>RowAd_0_2, + Q0=>RowA_2, F1=>RowAd_0_3, Q1=>RowA_3); SLICE_37I: SLICE_37 - port map (DI0=>n2447_002_BUF1, CE=>Ready_N_292, CLK=>RCLK_c, - F0=>n2447_002_BUF1, Q0=>Ready); + port map (B1=>Ready_fast, A1=>MAin_c_5, B0=>Ready_fast, A0=>MAin_c_4, + DI1=>RowAd_0_5, DI0=>RowAd_0_4, CLK=>nCRAS_c, F0=>RowAd_0_4, + Q0=>RowA_4, F1=>RowAd_0_5, Q1=>RowA_5); + SLICE_38I: SLICE_38 + port map (B1=>Ready_fast, A1=>MAin_c_7, B0=>Ready_fast, A0=>MAin_c_6, + DI1=>RowAd_0_7, DI0=>RowAd_0_6, CLK=>nCRAS_c, F0=>RowAd_0_6, + Q0=>RowA_6, F1=>RowAd_0_7, Q1=>RowA_7); + SLICE_39I: SLICE_39 + port map (B1=>Ready_fast, A1=>MAin_c_9, B0=>Ready_fast, A0=>MAin_c_8, + DI1=>RowAd_0_9, DI0=>RowAd_0_8, CLK=>nCRAS_c, F0=>RowAd_0_8, + Q0=>RowA_8, F1=>RowAd_0_9, Q1=>RowA_9); + SLICE_40I: SLICE_40 + port map (D1=>Ready, C1=>RASr2, B1=>S_0_i_o2_1, A1=>CBR, B0=>S_1, + A0=>CO0, DI0=>S_0_i_o2_1, LSR=>RASr2, CLK=>RCLK_c, + F0=>S_0_i_o2_1, Q0=>S_1, F1=>nRCAS_0_sqmuxa_1); + SLICE_41I: SLICE_41 + port map (D1=>CmdUFMSDI, C1=>N_145, B1=>UFMSDI_ens2_i_a0, A1=>nUFMCS15, + B0=>nUFMCS15, A0=>UFMSDI_c, DI0=>UFMSDI_RNO, M0=>N_141_i, + CLK=>RCLK_c, OFX0=>UFMSDI_RNO, Q0=>UFMSDI_c); + SLICE_42I: SLICE_42 + port map (D1=>Din_c_7, C1=>Din_c_6, B1=>Din_c_5, A1=>Din_c_4, + D0=>un1_Din_3, C0=>XOR8MEG_3_u_1, B0=>XOR8MEG, A0=>Din_c_0, + DI0=>XOR8MEG_3, CE=>XOR8MEG18, CLK=>PHI2_c, F0=>XOR8MEG_3, + Q0=>XOR8MEG, F1=>un1_Din_3); + SLICE_43I: SLICE_43 + port map (D1=>Bank_4, C1=>Bank_3, B1=>Bank_1, A1=>Bank_0, C0=>UFMSDO_c, + B0=>InitReady, A0=>Cmdn8MEGEN, DI0=>N_131, CE=>N_26, + CLK=>RCLK_c, F0=>N_131, Q0=>n8MEGEN, F1=>un1_Bank_1_4); SLICE_44I: SLICE_44 - port map (D1=>FS_1, C1=>n2267, B1=>n13_adj_6, A1=>FS_4, C0=>InitReady, - B0=>CmdUFMCLK, A0=>n1893, DI0=>UFMCLK_N_224, - CE=>RCLK_c_enable_10, LSR=>n2366, CLK=>RCLK_c, - F0=>UFMCLK_N_224, Q0=>UFMCLK_c, F1=>n1893); + port map (D1=>Ready, C1=>FWEr, B1=>CBR, A1=>CASr3, D0=>S_1, C0=>Ready, + B0=>N_168, A0=>CO0, DI0=>nRowColSel_0_0, LSR=>nRRAS_0_sqmuxa, + CLK=>RCLK_c, F0=>nRowColSel_0_0, Q0=>nRowColSel, F1=>N_168); SLICE_45I: SLICE_45 - port map (D1=>n10, C1=>FS_10, B1=>FS_8, A1=>n7, D0=>n4, C0=>InitReady, - B0=>CmdUFMSDI, A0=>n2174, DI0=>UFMSDI_N_231, - CE=>RCLK_c_enable_10, LSR=>n2366, CLK=>RCLK_c, - F0=>UFMSDI_N_231, Q0=>UFMSDI_c, F1=>n2174); + port map (D1=>UFMCLK_r_i_a2_2_2, C1=>nUFMCS15, B1=>InitReady, + A1=>CmdUFMCS, D0=>nUFMCS_c, C0=>nUFMCS_s_0_m4_yy, B0=>nUFMCS15, + A0=>N_141_i, DI0=>nUFMCS_s_0_N_5_i, CLK=>RCLK_c, + F0=>nUFMCS_s_0_N_5_i, Q0=>nUFMCS_c, F1=>nUFMCS_s_0_m4_yy); + SLICE_46I: SLICE_46 + port map (D1=>un1_Bank_1, C1=>MAin_c_2, B1=>C1WR_3, A1=>ADWR, + D0=>un1_ADWR, C0=>un1_Bank_1, B0=>MAin_c_2, A0=>CMDWR_2, + F0=>un1_CMDWR, F1=>un1_ADWR); + SLICE_47I: SLICE_47 + port map (D1=>N_129, C1=>InitReady, B1=>FS_11, A1=>FS_10, + D0=>d_m3_0_a2_0, C0=>nUFMCS15, B0=>InitReady, A0=>CmdUFMCLK, + F0=>i1_i, F1=>nUFMCS15); + SLICE_48I: SLICE_48 + port map (D1=>N_137_5, C1=>N_137_3, B1=>InitReady, A1=>FS_16, + C0=>UFMCLK_r_i_a2_2_2, B0=>N_50, A0=>InitReady, + F0=>d_m3_0_a2_0, F1=>UFMCLK_r_i_a2_2_2); + SLICE_49I: SLICE_49 + port map (D1=>CO0, C1=>S_1, B1=>InitReady, A1=>RASr2, D0=>S_1, C0=>Ready, + B0=>N_154, A0=>N_151, F0=>un1_nRCAS_6_sqmuxa_i_0, F1=>N_151); SLICE_50I: SLICE_50 - port map (D1=>LEDEN, C1=>n1314, B1=>Din_c_1, A1=>Din_c_4, D0=>Din_c_3, - C0=>n2260, B0=>Din_c_2, A0=>Din_c_0, DI0=>XOR8MEG_N_110, - CE=>PHI2_N_120_enable_3, CLK=>PHI2_c, F0=>XOR8MEG_N_110, - Q0=>XOR8MEG, F1=>n2260); + port map (D1=>Din_c_0, C1=>Din_c_5, B1=>Cmdn8MEGEN, A1=>N_45, C0=>N_36, + B0=>Din_c_5, A0=>Din_c_3, F0=>N_45, F1=>Cmdn8MEGEN_4_u_i_0); + SLICE_51I: SLICE_51 + port map (C1=>S_1, B1=>un1_nRCAS_6_sqmuxa_i_0, A1=>CBR, D0=>S_1, + C0=>N_146_i_1, B0=>nRCAS_0_sqmuxa_1, A0=>N_27_i_1, F0=>N_146_i, + F1=>N_146_i_1); + SLICE_52I: SLICE_52 + port map (C1=>IS_1, B1=>IS_2, A1=>IS_3, D0=>IS_0, C0=>N_151, B0=>N_154, + A0=>nRRAS_5_u_i_0, F0=>N_24_i, F1=>N_154); + SLICE_53I: SLICE_53 + port map (D1=>nRWE_s_i_a3_1_0, C1=>nRRAS_0_sqmuxa, B1=>RCKE_c, A1=>RASr2, + C0=>CO0, B0=>S_1, A0=>Ready, F0=>nRRAS_0_sqmuxa, + F1=>nRWE_s_i_tz_0); + SLICE_54I: SLICE_54 + port map (B1=>PHI2r3, A1=>PHI2r2, D0=>un1_PHI2r3_0, C0=>N_140, + B0=>InitReady, A0=>CmdSubmitted, F0=>N_28, F1=>un1_PHI2r3_0); + SLICE_55I: SLICE_55 + port map (C1=>un1_FS_14_i_a2_0_1, B1=>N_139_8, A1=>N_139_6, + D0=>un1_PHI2r3_0, C0=>N_139, B0=>InitReady, A0=>CmdSubmitted, + F0=>N_26, F1=>N_139); + SLICE_56I: SLICE_56 + port map (D1=>FS_5, C1=>FS_3, B1=>FS_2, A1=>FS_0, C0=>un1_FS_13_i_a2_1, + B0=>N_139_8, A0=>N_139_6, F0=>N_140, F1=>un1_FS_13_i_a2_1); SLICE_57I: SLICE_57 - port map (D1=>FS_10, C1=>FS_11, B1=>n2375, A1=>n10, D0=>Cmdn8MEGEN, - C0=>UFMSDO_c, B0=>n2367, A0=>InitReady, DI0=>n8MEGEN_N_91, - CE=>RCLK_c_enable_15, CLK=>RCLK_c, F0=>n8MEGEN_N_91, - Q0=>n8MEGEN, F1=>n2367); + port map (D1=>Din_c_3, C1=>Din_c_5, B1=>N_36, A1=>XOR8MEG18, + D0=>un1_Bank_1, C0=>MAin_c_2, B0=>CmdEnable, A0=>CMDWR_2, + F0=>XOR8MEG18, F1=>CmdSubmitted_1_sqmuxa); + SLICE_58I: SLICE_58 + port map (D1=>FS_11, C1=>FS_10, B1=>FS_8, A1=>FS_6, + D0=>UFMSDI_ens2_i_a2_4_2, C0=>N_129, B0=>N_34, A0=>InitReady, + F0=>UFMSDI_ens2_i_a0, F1=>UFMSDI_ens2_i_a2_4_2); SLICE_59I: SLICE_59 - port map (D1=>CBR, C1=>nRowColSel_N_35, B1=>RASr2, A1=>nRCS_N_142, - D0=>nRCAS_N_166, C0=>Ready, B0=>nRCAS_N_165, A0=>n2371, - DI0=>nRCAS_N_161, CE=>RCLK_c_enable_6, CLK=>RCLK_c, - F0=>nRCAS_N_161, Q0=>nRCAS_c, F1=>nRCAS_N_166); + port map (C1=>N_129, B1=>InitReady, A1=>FS_8, D0=>N_145, C0=>FS_11, + B0=>FS_9, A0=>FS_4, F0=>N_139_8, F1=>N_145); + SLICE_60I: SLICE_60 + port map (B1=>MAin_c_0, A1=>MAin_c_7, D0=>un1_Bank_1, C0=>MAin_c_1, + B0=>ADWR_3, A0=>ADWR_2, F0=>ADWR, F1=>ADWR_3); SLICE_61I: SLICE_61 - port map (D1=>nRCS_N_142, C1=>nRowColSel_N_35, B1=>RASr2, A1=>RCKE_c, - C0=>Ready, B0=>nRCS_N_141, A0=>nRCS_N_137, DI0=>nRCS_N_136, - CE=>RCLK_c_enable_6, CLK=>RCLK_c, F0=>nRCS_N_136, Q0=>nRCS_c, - F1=>nRCS_N_141); + port map (C1=>S_1, B1=>N_24, A1=>CBR, D0=>nRRAS_5_u_i_0, C0=>N_154, + B0=>N_151, A0=>IS_0, F0=>N_24, F1=>N_27_i_sn); SLICE_62I: SLICE_62 - port map (D1=>RASr2, C1=>nRowColSel_N_35, B1=>InitReady, A1=>nRCS_N_139, - D0=>nRowColSel_N_35, C0=>Ready, B0=>n2379, A0=>nRCS_N_137, - DI0=>nRRAS_N_156, CE=>RCLK_c_enable_6, CLK=>RCLK_c, - F0=>nRRAS_N_156, Q0=>nRRAS_c, F1=>nRCS_N_137); + port map (B1=>IS_2, A1=>IS_1, D0=>Ready, C0=>N_153, B0=>N_151, A0=>IS_0, + F0=>nRWE_s_i_a3_1_0, F1=>N_153); + SLICE_63I: SLICE_63 + port map (B1=>nFWE_c, A1=>MAin_c_7, D0=>MAin_c_1, C0=>MAin_c_0, + B0=>C1WR_1, A0=>ADWR_6, M1=>Din_c_1, M0=>Din_c_0, CLK=>PHI2_c, + F0=>C1WR_3, Q0=>Bank_0, F1=>C1WR_1, Q1=>Bank_1); SLICE_64I: SLICE_64 - port map (B1=>nRCAS_N_165, A1=>nRWE_N_177, D0=>n2371, C0=>Ready, - B0=>nRWE_N_178, A0=>n1765, DI0=>nRWE_N_171, - CE=>RCLK_c_enable_5, CLK=>RCLK_c, F0=>nRWE_N_171, Q0=>nRWE_c, - F1=>n1765); + port map (C1=>UFMSDI_ens2_i_o2_0_3, B1=>FS_16, A1=>FS_15, D0=>N_129, + C0=>FS_11, B0=>FS_4, A0=>FS_1, F0=>N_50, F1=>N_129); SLICE_65I: SLICE_65 - port map (B1=>nRowColSel_N_34, A1=>nRowColSel_N_33, D0=>n2376, C0=>n1060, - B0=>n2372, A0=>FWEr, DI0=>n917, CE=>RCLK_c_enable_5, - CLK=>RCLK_c, F0=>n917, Q0=>nRowColSel, F1=>n1060); + port map (B1=>nUFMCS15, A1=>N_141_i, D0=>PHI2r3, C0=>PHI2r2, + B0=>InitReady, A0=>CmdSubmitted, M1=>PHI2r2, M0=>PHI2r, + CLK=>RCLK_c, F0=>N_141_i, Q0=>PHI2r2, F1=>i2_i, Q1=>PHI2r3); SLICE_66I: SLICE_66 - port map (B1=>CASr2, A1=>nRowColSel_N_33, B0=>nRowColSel_N_32, - A0=>nRowColSel_N_33, DI0=>n827, LSR=>RASr2, CLK=>RCLK_c, - F0=>n827, Q0=>nRowColSel_N_32, F1=>n2227); + port map (D1=>Ready, C1=>N_27_i_sn, B1=>N_27_i_1, A1=>N_24_i, D0=>FWEr, + C0=>CO0, B0=>CASr3, A0=>CASr2, F0=>N_27_i_1, F1=>N_27_i); SLICE_67I: SLICE_67 - port map (B0=>nRowColSel_N_32, A0=>RASr2, DI0=>n1406, - LSR=>nRowColSel_N_34, CLK=>RCLK_c, F0=>n1406, - Q0=>nRowColSel_N_33); + port map (D1=>MAin_c_6, C1=>MAin_c_5, B1=>MAin_c_4, A1=>MAin_c_3, + C0=>nFWE_c, B0=>MAin_c_2, A0=>ADWR_6, F0=>ADWR_2, F1=>ADWR_6); SLICE_68I: SLICE_68 - port map (B1=>FS_0, A1=>FS_8, B0=>Bank_3, A0=>Bank_6, M0=>n1406, - LSR=>nRowColSel_N_35, CLK=>RCLK_c, F0=>n2287, - Q0=>nRowColSel_N_34, F1=>n13); + port map (B1=>Din_c_5, A1=>Din_c_0, D0=>Din_c_6, C0=>Din_c_2, + B0=>CmdEnable16_4, A0=>CmdEnable16_3, M0=>Din_c_2, CLK=>PHI2_c, + F0=>CmdEnable16_5, Q0=>Bank_2, F1=>CmdEnable16_3); SLICE_69I: SLICE_69 - port map (B1=>RASr2, A1=>RCKE_c, A0=>RASr2, DI0=>n2374, M1=>PHI2r2, - CLK=>RCLK_c, F0=>n2374, Q0=>nRowColSel_N_35, F1=>n2379, - Q1=>PHI2r3); + port map (B1=>Bank_7, A1=>Bank_2, D0=>un1_Bank_1_4, C0=>un1_Bank_1_3, + B0=>Bank_6, A0=>Bank_5, F0=>un1_Bank_1, F1=>un1_Bank_1_3); SLICE_70I: SLICE_70 - port map (D1=>FS_10, C1=>InitReady, B1=>n2368, A1=>FS_11, D0=>InitReady, - C0=>CmdUFMCS, B0=>n64, A0=>n13_adj_6, DI0=>nUFMCS_N_199, - CE=>RCLK_c_enable_10, CLK=>RCLK_c, F0=>nUFMCS_N_199, - Q0=>nUFMCS_c, F1=>n64); - i30_SLICE_71I: i30_SLICE_71 - port map (C1=>RASr2, B1=>FWEr, A1=>CBR, D0=>nRowColSel_N_34, C0=>FWEr, - B0=>n2227, A0=>CBR, M0=>nRowColSel_N_35, OFX0=>n15_adj_4); + port map (D1=>Din_c_3, C1=>Din_c_5, B1=>N_36, A1=>CmdLEDEN, C0=>Din_c_7, + B0=>Din_c_6, A0=>Din_c_4, F0=>N_36, F1=>N_59); + SLICE_71I: SLICE_71 + port map (C1=>CO0, B1=>CASr3, A1=>CASr2, D0=>nRWE_s_i_tz_0, + C0=>nRWE_0io_RNO_1, B0=>nRWE_0io_RNO_0, A0=>nRCAS_0_sqmuxa_1, + F0=>N_147_i, F1=>nRWE_0io_RNO_0); SLICE_72I: SLICE_72 - port map (D1=>Ready, C1=>nRowColSel_N_32, B1=>n6_adj_3, A1=>RASr2, - B0=>Ready_N_296, A0=>InitReady, F0=>n6_adj_3, F1=>Ready_N_292); + port map (D1=>FS_17, C1=>FS_14, B1=>FS_13, A1=>FS_12, D0=>FS_17, + C0=>FS_15, B0=>FS_13, A0=>FS_12, F0=>N_137_5, + F1=>UFMSDI_ens2_i_o2_0_3); SLICE_73I: SLICE_73 - port map (D1=>n2204, C1=>n2180, B1=>n26, A1=>n2369, D0=>n6_adj_2, - C0=>CmdEnable, B0=>MAin_c_0, A0=>MAin_c_1, F0=>n2204, - F1=>PHI2_N_120_enable_8); + port map (D1=>Din_c_7, C1=>Din_c_4, B1=>Din_c_3, A1=>Din_c_1, + D0=>Din_c_7, C0=>Din_c_5, B0=>Din_c_4, A0=>Din_c_1, M0=>CASr2, + CLK=>RCLK_c, F0=>CmdEnable17_5, Q0=>CASr3, F1=>CmdEnable16_4); SLICE_74I: SLICE_74 - port map (D1=>Bank_5, C1=>n2287, B1=>n2277, A1=>Bank_2, D0=>nFWE_c, - C0=>n2204, B0=>n26, A0=>n2369, M1=>MAin_c_1, M0=>MAin_c_0, - LSR=>Ready, CLK=>nCRAS_c, F0=>n2220, Q0=>RowA_0, F1=>n26, - Q1=>RowA_1); + port map (D1=>LEDEN, C1=>Din_c_3, B1=>Din_c_2, A1=>Din_c_1, D0=>Din_c_6, + C0=>Din_c_3, B0=>Din_c_2, A0=>Din_c_0, M0=>nCCAS_c_i, + CLK=>nCRAS_c, F0=>CmdEnable17_4, Q0=>CBR, F1=>XOR8MEG_3_u_1); SLICE_75I: SLICE_75 - port map (D1=>n2370, C1=>n2183, B1=>n2228, A1=>Din_c_5, B0=>Din_c_3, - A0=>Din_c_6, M1=>n732, M0=>n733, CE=>RCLK_c_enable_27, - CLK=>RCLK_c, F0=>n2183, Q0=>n732, F1=>n2055, Q1=>nRWE_N_177); + port map (B1=>nRowColSel, A1=>MAin_c_9, C0=>nRowColSel, B0=>RowA_9, + A0=>MAin_c_9, F0=>RA_c_9, F1=>RDQML_c); SLICE_76I: SLICE_76 - port map (C1=>n10, B1=>FS_14, A1=>FS_12, D0=>InitReady, C0=>n2368, - B0=>FS_11, A0=>FS_10, M1=>MAin_c_9, M0=>MAin_c_8, LSR=>Ready, - CLK=>nCRAS_c, F0=>RCLK_c_enable_16, Q0=>RowA_8, F1=>n2368, - Q1=>RowA_9); + port map (D1=>S_1, C1=>Ready, B1=>FWEr, A1=>CBR, D0=>S_1, C0=>FWEr, + B0=>CO0, A0=>CASr2, F0=>RCKEEN_8_u_1_0, F1=>nRWE_0io_RNO_1); SLICE_77I: SLICE_77 - port map (D1=>n2208, C1=>C1Submitted, B1=>n2191, A1=>Din_c_5, - D0=>MAin_c_0, C0=>Din_c_6, B0=>Din_c_3, A0=>Din_c_2, F0=>n2191, - F1=>n2210); + port map (D1=>Ready, C1=>RCKE_c, B1=>RASr2, A1=>S_0_i_o2_1, B0=>Ready, + A0=>N_151, F0=>N_48_i, F1=>nRRAS_5_u_i_0); SLICE_78I: SLICE_78 - port map (D1=>nRowColSel_N_35, C1=>nRWE_N_182, B1=>n1060, A1=>nRCS_N_146, - B0=>RASr2, A0=>RCKE_c, M1=>n728, M0=>n729, - CE=>RCLK_c_enable_27, CLK=>RCLK_c, F0=>nRWE_N_182, Q0=>n728, - F1=>nRWE_N_178, Q1=>n727); + port map (D1=>FS_5, C1=>FS_3, B1=>FS_2, A1=>FS_0, C0=>FS_9, B0=>FS_7, + A0=>FS_5, F0=>N_34, F1=>un1_FS_14_i_a2_0_1); SLICE_79I: SLICE_79 - port map (C1=>MAin_c_5, B1=>n22, A1=>MAin_c_2, D0=>MAin_c_1, C0=>nFWE_c, - B0=>n26, A0=>n2369, M1=>n730, M0=>nRWE_N_177, - CE=>RCLK_c_enable_27, CLK=>RCLK_c, F0=>PHI2_N_120_enable_2, - Q0=>n730, F1=>n2369, Q1=>n729); + port map (B1=>nRowColSel, A1=>MAin_c_9, C0=>nRowColSel, B0=>RowA_8, + A0=>MAin_c_8, F0=>RA_c_8, F1=>RDQMH_c); SLICE_80I: SLICE_80 - port map (B1=>FS_14, A1=>FS_12, D0=>FS_11, C0=>InitReady, B0=>n2375, - A0=>n10, F0=>n2366, F1=>n2375); + port map (C1=>nRowColSel, B1=>RowA_7, A1=>MAin_c_7, C0=>nRowColSel, + B0=>RowA_0, A0=>MAin_c_0, F0=>RA_c_0, F1=>RA_c_7); SLICE_81I: SLICE_81 - port map (B1=>CBR, A1=>FWEr, D0=>nRowColSel_N_33, C0=>n2378, - B0=>nRowColSel_N_34, A0=>nRCS_N_146, M1=>n726, M0=>n727, - CE=>RCLK_c_enable_27, CLK=>RCLK_c, F0=>nRCS_N_142, Q0=>n726, - F1=>n2378, Q1=>Ready_N_296); + port map (C1=>nRowColSel, B1=>RowA_6, A1=>MAin_c_6, C0=>nRowColSel, + B0=>RowA_1, A0=>MAin_c_1, F0=>RA_c_1, F1=>RA_c_6); SLICE_82I: SLICE_82 - port map (D1=>FS_17, C1=>FS_14, B1=>n12, A1=>FS_11, B0=>n13_adj_6, - A0=>FS_10, M1=>MAin_c_5, M0=>MAin_c_4, LSR=>Ready, - CLK=>nCRAS_c, F0=>RCLK_c_enable_28, Q0=>RowA_4, F1=>n13_adj_6, - Q1=>RowA_5); + port map (C1=>nRowColSel, B1=>RowA_5, A1=>MAin_c_5, C0=>nRowColSel, + B0=>RowA_2, A0=>MAin_c_2, F0=>RA_c_2, F1=>RA_c_5); SLICE_83I: SLICE_83 - port map (D1=>n1314, C1=>n1277, B1=>CmdEnable, A1=>n2228, D0=>MAin_c_1, - C0=>MAin_c_0, B0=>n26, A0=>n2369, F0=>n1277, - F1=>PHI2_N_120_enable_3); + port map (C1=>nRowColSel, B1=>RowA_4, A1=>MAin_c_4, C0=>nRowColSel, + B0=>RowA_3, A0=>MAin_c_3, F0=>RA_c_3, F1=>RA_c_4); SLICE_84I: SLICE_84 - port map (C1=>CmdSubmitted, B1=>PHI2r2, A1=>PHI2r3, D0=>n4_adj_7, - C0=>InitReady, B0=>n2377, A0=>n2367, M1=>n738, M0=>nRCAS_N_165, - CE=>RCLK_c_enable_27, CLK=>RCLK_c, F0=>RCLK_c_enable_15, - Q0=>n738, F1=>n2377, Q1=>n737); + port map (B1=>Ready_fast, A1=>CROW_c_0, D0=>n8MEGEN, C0=>XOR8MEG, + B0=>Ready_fast, A0=>Din_c_6, F0=>RA11d_0, F1=>RBAd_0_0); SLICE_85I: SLICE_85 - port map (D1=>n10, C1=>FS_11, B1=>FS_14, A1=>FS_12, D0=>FS_16, C0=>FS_15, - B0=>FS_13, A0=>FS_17, F0=>n10, F1=>n2267); - SLICE_86I: SLICE_86 - port map (C1=>FS_6, B1=>FS_9, A1=>FS_3, D0=>n14, C0=>n13, B0=>n15, - A0=>FS_4, M1=>RASr2, M0=>PHI2_c, CLK=>RCLK_c, F0=>n4_adj_7, - Q0=>PHI2r, F1=>n14, Q1=>RASr3); - SLICE_87I: SLICE_87 - port map (D1=>n6, C1=>nRowColSel_N_32, B1=>nRowColSel_N_33, - A1=>nRowColSel_N_35, B0=>nRowColSel_N_34, A0=>Ready, - M1=>CROW_c_1, M0=>CROW_c_0, LSR=>Ready, CLK=>nCRAS_c, F0=>n6, - Q0=>RBA_c_0, F1=>RCLK_c_enable_6, Q1=>RBA_c_1); - SLICE_88I: SLICE_88 - port map (D1=>n2363, C1=>C1Submitted_N_237, B1=>ADSubmitted, - A1=>n7_adj_5, D0=>n2362, C0=>MAin_c_0, B0=>n2055, A0=>Din_c_2, - M1=>Din_c_7, M0=>Din_c_6, CLK=>nCCAS_c, F0=>C1Submitted_N_237, - Q0=>WRD_6, F1=>PHI2_N_120_enable_1, Q1=>WRD_7); - SLICE_89I: SLICE_89 - port map (D1=>Din_c_5, C1=>Din_c_3, B1=>Din_c_4, A1=>n2220, D0=>Din_c_3, - C0=>Din_c_4, B0=>n2220, A0=>Din_c_5, M1=>Din_c_5, M0=>Din_c_4, - CLK=>nCCAS_c, F0=>PHI2_N_120_enable_6, Q0=>WRD_4, - F1=>PHI2_N_120_enable_7, Q1=>WRD_5); - SLICE_90I: SLICE_90 - port map (D1=>Din_c_0, C1=>Din_c_4, B1=>Din_c_1, A1=>Din_c_7, - C0=>Din_c_0, B0=>Din_c_1, A0=>Din_c_7, M1=>Din_c_1, - M0=>Din_c_0, CLK=>nCCAS_c, F0=>n2370, Q0=>WRD_0, F1=>n2208, - Q1=>WRD_1); - SLICE_91I: SLICE_91 - port map (C1=>MAin_c_1, B1=>n26, A1=>n2369, D0=>MAin_c_1, C0=>MAin_c_0, - B0=>n26, A0=>n2369, M1=>MAin_c_3, M0=>MAin_c_2, LSR=>Ready, - CLK=>nCRAS_c, F0=>n2225, Q0=>RowA_2, F1=>n2362, Q1=>RowA_3); - SLICE_92I: SLICE_92 - port map (D1=>Ready, C1=>nRowColSel_N_35, B1=>InitReady, A1=>RASr2, - D0=>nRCS_N_139, C0=>nRowColSel_N_35, B0=>InitReady, A0=>RASr2, - M1=>Din_c_3, M0=>Din_c_2, CLK=>nCCAS_c, F0=>n2371, Q0=>WRD_2, - F1=>RCLK_c_enable_27, Q1=>WRD_3); - SLICE_93I: SLICE_93 - port map (B1=>nRowColSel, A1=>MAin_c_9, C0=>nRowColSel, B0=>MAin_c_9, - A0=>RowA_9, M1=>Din_c_1, M0=>Din_c_0, CLK=>PHI2_c, F0=>RA_1_9, - Q0=>Bank_0, F1=>RDQML_c, Q1=>Bank_1); - SLICE_94I: SLICE_94 - port map (B1=>nRowColSel_N_35, A1=>Ready, D0=>nRowColSel_N_35, - C0=>nRowColSel_N_32, B0=>n1060, A0=>Ready, F0=>RCLK_c_enable_5, - F1=>n2372); - SLICE_95I: SLICE_95 - port map (D1=>FS_5, C1=>FS_9, B1=>FS_7, A1=>n2375, D0=>FS_2, C0=>FS_1, - B0=>FS_7, A0=>FS_5, F0=>n15, F1=>n7); - SLICE_96I: SLICE_96 - port map (B1=>CASr3, A1=>CBR, D0=>CASr2, C0=>FWEr, B0=>CASr3, A0=>CBR, - F0=>nRCS_N_146, F1=>n2376); - SLICE_97I: SLICE_97 - port map (C1=>MAin_c_1, B1=>n2210, A1=>MAin_c_0, B0=>Din_c_2, - A0=>MAin_c_0, M1=>n734, M0=>n735, CE=>RCLK_c_enable_27, - CLK=>RCLK_c, F0=>n2254, Q0=>n734, F1=>n7_adj_5, Q1=>n733); - SLICE_98I: SLICE_98 - port map (B1=>nRowColSel, A1=>MAin_c_9, C0=>nRowColSel, B0=>MAin_c_8, - A0=>RowA_8, M1=>nRCS_N_139, M0=>Ready_N_296, - CE=>RCLK_c_enable_27, CLK=>RCLK_c, F0=>RA_1_8, Q0=>nRCS_N_139, - F1=>RDQMH_c, Q1=>nRCAS_N_165); - SLICE_99I: SLICE_99 - port map (D1=>Bank_1, C1=>Bank_4, B1=>MAin_c_3, A1=>MAin_c_7, - C0=>nRowColSel, B0=>MAin_c_7, A0=>RowA_7, M0=>Din_c_0, - CE=>PHI2_N_120_enable_8, CLK=>PHI2_c, F0=>RA_1_7, - Q0=>CmdUFMSDI, F1=>n22); - SLICE_100I: SLICE_100 - port map (D1=>Bank_0, C1=>Bank_7, B1=>MAin_c_4, A1=>MAin_c_6, - C0=>nRowColSel, B0=>MAin_c_6, A0=>RowA_6, M1=>Din_c_2, - M0=>Din_c_1, CE=>PHI2_N_120_enable_8, CLK=>PHI2_c, F0=>RA_1_6, - Q0=>CmdUFMCLK, F1=>n2277, Q1=>CmdUFMCS); - SLICE_101I: SLICE_101 - port map (C1=>nRowColSel, B1=>MAin_c_0, A1=>RowA_0, C0=>nRowColSel, - B0=>MAin_c_5, A0=>RowA_5, M1=>Din_c_7, M0=>Din_c_6, - CLK=>PHI2_c, F0=>RA_1_5, Q0=>Bank_6, F1=>RA_1_0, Q1=>Bank_7); - SLICE_102I: SLICE_102 - port map (C1=>nRowColSel, B1=>MAin_c_1, A1=>RowA_1, C0=>nRowColSel, - B0=>MAin_c_4, A0=>RowA_4, M1=>Din_c_5, M0=>Din_c_4, - CLK=>PHI2_c, F0=>RA_1_4, Q0=>Bank_4, F1=>RA_1_1, Q1=>Bank_5); - SLICE_103I: SLICE_103 - port map (C1=>nRowColSel, B1=>MAin_c_2, A1=>RowA_2, C0=>nRowColSel, - B0=>MAin_c_3, A0=>RowA_3, M1=>Din_c_3, M0=>Din_c_2, - CLK=>PHI2_c, F0=>RA_1_3, Q0=>Bank_2, F1=>RA_1_2, Q1=>Bank_3); - SLICE_104I: SLICE_104 - port map (B1=>nFWE_c, A1=>nCCAS_c, C0=>nFWE_c, B0=>n26, A0=>n2369, - M1=>MAin_c_7, M0=>MAin_c_6, LSR=>Ready, CLK=>nCRAS_c, - F0=>n2363, Q0=>RowA_6, F1=>n984, Q1=>RowA_7); - SLICE_105I: SLICE_105 - port map (B1=>FS_6, A1=>FS_11, D0=>FS_16, C0=>FS_15, B0=>FS_12, - A0=>FS_13, F0=>n12, F1=>n4); - SLICE_106I: SLICE_106 - port map (B1=>Din_c_2, A1=>Din_c_0, B0=>Din_c_4, A0=>nFWE_c, M1=>n736, - M0=>n737, CE=>RCLK_c_enable_27, CLK=>RCLK_c, F0=>n2228, - Q0=>n736, F1=>n2382, Q1=>n735); - RD_7_I: RD_7_B - port map (PADDI=>Dout_c, PADDT=>n984, PADDO=>WRD_7, RD7=>RD(7)); - RD_6_I: RD_6_B - port map (PADDI=>Dout_0S, PADDT=>n984, PADDO=>WRD_6, RD6=>RD(6)); - RD_5_I: RD_5_B - port map (PADDI=>Dout_1S, PADDT=>n984, PADDO=>WRD_5, RD5=>RD(5)); - RD_4_I: RD_4_B - port map (PADDI=>Dout_2S, PADDT=>n984, PADDO=>WRD_4, RD4=>RD(4)); - RD_3_I: RD_3_B - port map (PADDI=>Dout_3S, PADDT=>n984, PADDO=>WRD_3, RD3=>RD(3)); - RD_2_I: RD_2_B - port map (PADDI=>Dout_4S, PADDT=>n984, PADDO=>WRD_2, RD2=>RD(2)); - RD_1_I: RD_1_B - port map (PADDI=>Dout_5S, PADDT=>n984, PADDO=>WRD_1, RD1=>RD(1)); + port map (D1=>FS_10, C1=>FS_7, B1=>FS_6, A1=>FS_1, B0=>FS_14, A0=>FS_11, + F0=>N_137_3, F1=>N_139_6); RD_0_I: RD_0_B - port map (PADDI=>Dout_6S, PADDT=>n984, PADDO=>WRD_0, RD0=>RD(0)); - Dout_7_I: Dout_7_B - port map (PADDO=>Dout_c, Dout7=>Dout(7)); - Dout_6_I: Dout_6_B - port map (PADDO=>Dout_0S, Dout6=>Dout(6)); - Dout_5_I: Dout_5_B - port map (PADDO=>Dout_1S, Dout5=>Dout(5)); - Dout_4_I: Dout_4_B - port map (PADDO=>Dout_2S, Dout4=>Dout(4)); - Dout_3_I: Dout_3_B - port map (PADDO=>Dout_3S, Dout3=>Dout(3)); - Dout_2_I: Dout_2_B - port map (PADDO=>Dout_4S, Dout2=>Dout(2)); - Dout_1_I: Dout_1_B - port map (PADDO=>Dout_5S, Dout1=>Dout(1)); + port map (IOLDO=>WRD_0, PADDT=>RD_1_i, RD0=>RD(0)); + RD_0_MGIOLI: RD_0_MGIOL + port map (IOLDO=>WRD_0, OPOS=>Din_c_0, CLK=>nCCAS_c); Dout_0_I: Dout_0_B - port map (PADDO=>Dout_6S, Dout0=>Dout(0)); - LEDI: LEDB - port map (PADDO=>LED_c, LEDS=>LED); - RBA_1_I: RBA_1_B - port map (PADDO=>RBA_c_1, RBA1=>RBA(1)); - RBA_0_I: RBA_0_B - port map (PADDO=>RBA_c_0, RBA0=>RBA(0)); - RA_11_I: RA_11_B - port map (PADDO=>RA_c, RA11=>RA(11)); - RA_10_I: RA_10_B - port map (PADDO=>RA_0S, RA10=>RA(10)); - RA_9_I: RA_9_B - port map (PADDO=>RA_1_9, RA9=>RA(9)); - RA_8_I: RA_8_B - port map (PADDO=>RA_1_8, RA8=>RA(8)); - RA_7_I: RA_7_B - port map (PADDO=>RA_1_7, RA7=>RA(7)); - RA_6_I: RA_6_B - port map (PADDO=>RA_1_6, RA6=>RA(6)); - RA_5_I: RA_5_B - port map (PADDO=>RA_1_5, RA5=>RA(5)); - RA_4_I: RA_4_B - port map (PADDO=>RA_1_4, RA4=>RA(4)); - RA_3_I: RA_3_B - port map (PADDO=>RA_1_3, RA3=>RA(3)); - RA_2_I: RA_2_B - port map (PADDO=>RA_1_2, RA2=>RA(2)); - RA_1_I: RA_1_B - port map (PADDO=>RA_1_1, RA1=>RA(1)); - RA_0_I: RA_0_B - port map (PADDO=>RA_1_0, RA0=>RA(0)); - nRCSI: nRCSB - port map (PADDO=>nRCS_c, nRCSS=>nRCS); - RCKEI: RCKEB - port map (PADDO=>RCKE_c, RCKES=>RCKE); - nRWEI: nRWEB - port map (PADDO=>nRWE_c, nRWES=>nRWE); - nRRASI: nRRASB - port map (PADDO=>nRRAS_c, nRRASS=>nRRAS); - nRCASI: nRCASB - port map (PADDO=>nRCAS_c, nRCASS=>nRCAS); - RDQMHI: RDQMHB - port map (PADDO=>RDQMH_c, RDQMHS=>RDQMH); - RDQMLI: RDQMLB - port map (PADDO=>RDQML_c, RDQMLS=>RDQML); - nUFMCSI: nUFMCSB - port map (PADDO=>nUFMCS_c, nUFMCSS=>nUFMCS); - UFMCLKI: UFMCLKB - port map (PADDO=>UFMCLK_c, UFMCLKS=>UFMCLK); - UFMSDII: UFMSDIB - port map (PADDO=>UFMSDI_c, UFMSDIS=>UFMSDI); + port map (PADDO=>MAin_c_3, Dout0=>Dout(0)); PHI2I: PHI2B port map (PADDI=>PHI2_c, PHI2S=>PHI2); + PHI2_MGIOLI: PHI2_MGIOL + port map (DI=>PHI2_c, CLK=>RCLK_c, INP=>PHI2r); + UFMSDOI: UFMSDOB + port map (PADDI=>UFMSDO_c, UFMSDOS=>UFMSDO); + UFMSDII: UFMSDIB + port map (IOLDO=>UFMSDI_c_n0, UFMSDIS=>UFMSDI); + UFMSDI_MGIOLI: UFMSDI_MGIOL + port map (IOLDO=>UFMSDI_c_n0, OPOS=>UFMSDI_RNO, CLK=>RCLK_c); + UFMCLKI: UFMCLKB + port map (IOLDO=>UFMCLK_c, UFMCLKS=>UFMCLK); + UFMCLK_MGIOLI: UFMCLK_MGIOL + port map (IOLDO=>UFMCLK_c, OPOS=>i1_i, CE=>i2_i, CLK=>RCLK_c); + nUFMCSI: nUFMCSB + port map (IOLDO=>nUFMCS_c_n1, nUFMCSS=>nUFMCS); + nUFMCS_MGIOLI: nUFMCS_MGIOL + port map (IOLDO=>nUFMCS_c_n1, OPOS=>nUFMCS_s_0_N_5_i, CLK=>RCLK_c); + RDQMLI: RDQMLB + port map (PADDO=>RDQML_c, RDQMLS=>RDQML); + RDQMHI: RDQMHB + port map (PADDO=>RDQMH_c, RDQMHS=>RDQMH); + nRCASI: nRCASB + port map (IOLDO=>nRCAS_c, nRCASS=>nRCAS); + nRCAS_MGIOLI: nRCAS_MGIOL + port map (IOLDO=>nRCAS_c, OPOS=>N_146_i, CLK=>RCLK_c); + nRRASI: nRRASB + port map (IOLDO=>nRRAS_c, nRRASS=>nRRAS); + nRRAS_MGIOLI: nRRAS_MGIOL + port map (IOLDO=>nRRAS_c, OPOS=>N_24_i, CLK=>RCLK_c); + nRWEI: nRWEB + port map (IOLDO=>nRWE_c, nRWES=>nRWE); + nRWE_MGIOLI: nRWE_MGIOL + port map (IOLDO=>nRWE_c, OPOS=>N_147_i, CLK=>RCLK_c); + RCKEI: RCKEB + port map (IOLDO=>RCKE_c_n2, RCKES=>RCKE); + RCKE_MGIOLI: RCKE_MGIOL + port map (IOLDO=>RCKE_c_n2, OPOS=>RCKE_2, CLK=>RCLK_c); + RCLKI: RCLKB + port map (PADDI=>RCLK_c, RCLKS=>RCLK); + nRCSI: nRCSB + port map (IOLDO=>nRCS_c, nRCSS=>nRCS); + nRCS_MGIOLI: nRCS_MGIOL + port map (IOLDO=>nRCS_c, OPOS=>N_27_i, CLK=>RCLK_c); + RD_7_I: RD_7_B + port map (IOLDO=>WRD_7, PADDT=>RD_1_i, RD7=>RD(7)); + RD_7_MGIOLI: RD_7_MGIOL + port map (IOLDO=>WRD_7, OPOS=>Din_c_7, CLK=>nCCAS_c); + RD_6_I: RD_6_B + port map (IOLDO=>WRD_6, PADDT=>RD_1_i, RD6=>RD(6)); + RD_6_MGIOLI: RD_6_MGIOL + port map (IOLDO=>WRD_6, OPOS=>Din_c_6, CLK=>nCCAS_c); + RD_5_I: RD_5_B + port map (IOLDO=>WRD_5, PADDT=>RD_1_i, RD5=>RD(5)); + RD_5_MGIOLI: RD_5_MGIOL + port map (IOLDO=>WRD_5, OPOS=>Din_c_5, CLK=>nCCAS_c); + RD_4_I: RD_4_B + port map (IOLDO=>WRD_4, PADDT=>RD_1_i, RD4=>RD(4)); + RD_4_MGIOLI: RD_4_MGIOL + port map (IOLDO=>WRD_4, OPOS=>Din_c_4, CLK=>nCCAS_c); + RD_3_I: RD_3_B + port map (IOLDO=>WRD_3, PADDT=>RD_1_i, RD3=>RD(3)); + RD_3_MGIOLI: RD_3_MGIOL + port map (IOLDO=>WRD_3, OPOS=>Din_c_3, CLK=>nCCAS_c); + RD_2_I: RD_2_B + port map (IOLDO=>WRD_2, PADDT=>RD_1_i, RD2=>RD(2)); + RD_2_MGIOLI: RD_2_MGIOL + port map (IOLDO=>WRD_2, OPOS=>Din_c_2, CLK=>nCCAS_c); + RD_1_I0: RD_1_B + port map (IOLDO=>WRD_1, PADDT=>RD_1_i, RD1=>RD(1)); + RD_1_MGIOLI: RD_1_MGIOL + port map (IOLDO=>WRD_1, OPOS=>Din_c_1, CLK=>nCCAS_c); + RA_11_I: RA_11_B + port map (IOLDO=>RA_c_11, RA11=>RA(11)); + RA_11_MGIOLI: RA_11_MGIOL + port map (IOLDO=>RA_c_11, OPOS=>RA11d_0, CLK=>PHI2_c); + RA_10_I: RA_10_B + port map (IOLDO=>RA_c_10, RA10=>RA(10)); + RA_10_MGIOLI: RA_10_MGIOL + port map (IOLDO=>RA_c_10, OPOS=>N_153, LSR=>RA10s_i, CLK=>RCLK_c); + RA_9_I: RA_9_B + port map (PADDO=>RA_c_9, RA9=>RA(9)); + RA_8_I: RA_8_B + port map (PADDO=>RA_c_8, RA8=>RA(8)); + RA_7_I: RA_7_B + port map (PADDO=>RA_c_7, RA7=>RA(7)); + RA_6_I: RA_6_B + port map (PADDO=>RA_c_6, RA6=>RA(6)); + RA_5_I: RA_5_B + port map (PADDO=>RA_c_5, RA5=>RA(5)); + RA_4_I: RA_4_B + port map (PADDO=>RA_c_4, RA4=>RA(4)); + RA_3_I: RA_3_B + port map (PADDO=>RA_c_3, RA3=>RA(3)); + RA_2_I: RA_2_B + port map (PADDO=>RA_c_2, RA2=>RA(2)); + RA_1_I: RA_1_B + port map (PADDO=>RA_c_1, RA1=>RA(1)); + RA_0_I: RA_0_B + port map (PADDO=>RA_c_0, RA0=>RA(0)); + RBA_1_I: RBA_1_B + port map (IOLDO=>RBA_c_1, RBA1=>RBA(1)); + RBA_1_MGIOLI: RBA_1_MGIOL + port map (IOLDO=>RBA_c_1, OPOS=>RBAd_0_1, CLK=>nCRAS_c); + RBA_0_I: RBA_0_B + port map (IOLDO=>RBA_c_0, RBA0=>RBA(0)); + RBA_0_MGIOLI: RBA_0_MGIOL + port map (IOLDO=>RBA_c_0, OPOS=>RBAd_0_0, CLK=>nCRAS_c); + LEDI: LEDB + port map (PADDO=>LED_c, LEDS=>LED); + nFWEI: nFWEB + port map (PADDI=>nFWE_c, nFWES=>nFWE); + nCRASI: nCRASB + port map (PADDI=>nCRAS_c, nCRASS=>nCRAS); + nCCASI: nCCASB + port map (PADDI=>nCCAS_c, nCCASS=>nCCAS); + Dout_7_I: Dout_7_B + port map (PADDO=>nCRAS_c, Dout7=>Dout(7)); + Dout_6_I: Dout_6_B + port map (PADDO=>MAin_c_9, Dout6=>Dout(6)); + Dout_5_I: Dout_5_B + port map (PADDO=>MAin_c_8, Dout5=>Dout(5)); + Dout_4_I: Dout_4_B + port map (PADDO=>MAin_c_7, Dout4=>Dout(4)); + Dout_3_I: Dout_3_B + port map (PADDO=>MAin_c_6, Dout3=>Dout(3)); + Dout_2_I: Dout_2_B + port map (PADDO=>MAin_c_5, Dout2=>Dout(2)); + Dout_1_I: Dout_1_B + port map (PADDO=>MAin_c_4, Dout1=>Dout(1)); + Din_7_I: Din_7_B + port map (PADDI=>Din_c_7, Din7=>Din(7)); + Din_7_MGIOLI: Din_7_MGIOL + port map (DI=>Din_c_7, CLK=>PHI2_c, INP=>Bank_7); + Din_6_I: Din_6_B + port map (PADDI=>Din_c_6, Din6=>Din(6)); + Din_6_MGIOLI: Din_6_MGIOL + port map (DI=>Din_c_6, CLK=>PHI2_c, INP=>Bank_6); + Din_5_I: Din_5_B + port map (PADDI=>Din_c_5, Din5=>Din(5)); + Din_5_MGIOLI: Din_5_MGIOL + port map (DI=>Din_c_5, CLK=>PHI2_c, INP=>Bank_5); + Din_4_I: Din_4_B + port map (PADDI=>Din_c_4, Din4=>Din(4)); + Din_4_MGIOLI: Din_4_MGIOL + port map (DI=>Din_c_4, CLK=>PHI2_c, INP=>Bank_4); + Din_3_I: Din_3_B + port map (PADDI=>Din_c_3, Din3=>Din(3)); + Din_3_MGIOLI: Din_3_MGIOL + port map (DI=>Din_c_3, CLK=>PHI2_c, INP=>Bank_3); + Din_2_I: Din_2_B + port map (PADDI=>Din_c_2, Din2=>Din(2)); + Din_2_MGIOLI: Din_2_MGIOL + port map (DI=>Din_c_2, CE=>CmdUFMCLK_1_sqmuxa, CLK=>PHI2_c, + INP=>CmdUFMCS); + Din_1_I: Din_1_B + port map (PADDI=>Din_c_1, Din1=>Din(1)); + Din_1_MGIOLI: Din_1_MGIOL + port map (DI=>Din_c_1, CE=>CmdUFMCLK_1_sqmuxa, CLK=>PHI2_c, + INP=>CmdUFMCLK); + Din_0_I: Din_0_B + port map (PADDI=>Din_c_0, Din0=>Din(0)); + Din_0_MGIOLI: Din_0_MGIOL + port map (DI=>Din_c_0, CE=>CmdUFMCLK_1_sqmuxa, CLK=>PHI2_c, + INP=>CmdUFMSDI); + CROW_1_I: CROW_1_B + port map (PADDI=>CROW_c_1, CROW1=>CROW(1)); + CROW_0_I: CROW_0_B + port map (PADDI=>CROW_c_0, CROW0=>CROW(0)); MAin_9_I: MAin_9_B port map (PADDI=>MAin_c_9, MAin9=>MAin(9)); MAin_8_I: MAin_8_B @@ -26338,36 +27804,6 @@ port map (PADDI=>MAin_c_1, MAin1=>MAin(1)); MAin_0_I: MAin_0_B port map (PADDI=>MAin_c_0, MAin0=>MAin(0)); - CROW_1_I: CROW_1_B - port map (PADDI=>CROW_c_1, CROW1=>CROW(1)); - CROW_0_I: CROW_0_B - port map (PADDI=>CROW_c_0, CROW0=>CROW(0)); - Din_7_I: Din_7_B - port map (PADDI=>Din_c_7, Din7=>Din(7)); - Din_6_I: Din_6_B - port map (PADDI=>Din_c_6, Din6=>Din(6)); - Din_5_I: Din_5_B - port map (PADDI=>Din_c_5, Din5=>Din(5)); - Din_4_I: Din_4_B - port map (PADDI=>Din_c_4, Din4=>Din(4)); - Din_3_I: Din_3_B - port map (PADDI=>Din_c_3, Din3=>Din(3)); - Din_2_I: Din_2_B - port map (PADDI=>Din_c_2, Din2=>Din(2)); - Din_1_I: Din_1_B - port map (PADDI=>Din_c_1, Din1=>Din(1)); - Din_0_I: Din_0_B - port map (PADDI=>Din_c_0, Din0=>Din(0)); - nCCASI: nCCASB - port map (PADDI=>nCCAS_c, nCCASS=>nCCAS); - nCRASI: nCRASB - port map (PADDI=>nCRAS_c, nCRASS=>nCRAS); - nFWEI: nFWEB - port map (PADDI=>nFWE_c, nFWES=>nFWE); - RCLKI: RCLKB - port map (PADDI=>RCLK_c, RCLKS=>RCLK); - UFMSDOI: UFMSDOB - port map (PADDI=>UFMSDO_c, UFMSDOS=>UFMSDO); VHI_INST: VHI port map (Z=>VCCI); PUR_INST: PUR diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_mapvo.sdf b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_mapvo.sdf index 76a02d9..593060e 100644 --- a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_mapvo.sdf +++ b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_mapvo.sdf @@ -1,7 +1,7 @@ (DELAYFILE (SDFVERSION "3.0") (DESIGN "RAM2GS") - (DATE "Tue Aug 15 05:03:26 2023") + (DATE "Tue Aug 15 22:56:32 2023") (VENDOR "Lattice") (PROGRAM "ldbanno") (VERSION "Diamond (64-bit) 3.12.1.454") @@ -17,19 +17,11 @@ (ABSOLUTE (IOPATH A1 F1 (367:431:495)(367:431:495)) (IOPATH A1 FCO (718:803:889)(718:803:889)) - (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH A0 F1 (718:803:889)(718:803:889)) - (IOPATH A0 FCO (827:925:1023)(827:925:1023)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) (IOPATH CLK Q1 (392:422:452)(392:422:452)) - (IOPATH FCI F0 (473:529:585)(473:529:585)) - (IOPATH FCI F1 (519:581:643)(519:581:643)) - (IOPATH FCI FCO (130:146:162)(130:146:162)) ) ) (TIMINGCHECK (SETUPHOLD DI1 (posedge CLK) (130:148:166)(-34:-22:-11)) - (SETUPHOLD DI0 (posedge CLK) (130:148:166)(-34:-22:-11)) ) (TIMINGCHECK (WIDTH (posedge CLK) (1250:1250:1250)) @@ -41,20 +33,12 @@ (INSTANCE SLICE_1) (DELAY (ABSOLUTE - (IOPATH A1 F1 (367:431:495)(367:431:495)) - (IOPATH A1 FCO (718:803:889)(718:803:889)) (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH A0 F1 (718:803:889)(718:803:889)) - (IOPATH A0 FCO (827:925:1023)(827:925:1023)) (IOPATH CLK Q0 (392:422:452)(392:422:452)) - (IOPATH CLK Q1 (392:422:452)(392:422:452)) (IOPATH FCI F0 (473:529:585)(473:529:585)) - (IOPATH FCI F1 (519:581:643)(519:581:643)) - (IOPATH FCI FCO (130:146:162)(130:146:162)) ) ) (TIMINGCHECK - (SETUPHOLD DI1 (posedge CLK) (130:148:166)(-34:-22:-11)) (SETUPHOLD DI0 (posedge CLK) (130:148:166)(-34:-22:-11)) ) (TIMINGCHECK @@ -147,13 +131,19 @@ (ABSOLUTE (IOPATH A1 F1 (367:431:495)(367:431:495)) (IOPATH A1 FCO (718:803:889)(718:803:889)) + (IOPATH A0 F0 (367:431:495)(367:431:495)) + (IOPATH A0 F1 (718:803:889)(718:803:889)) + (IOPATH A0 FCO (827:925:1023)(827:925:1023)) (IOPATH CLK Q0 (392:422:452)(392:422:452)) (IOPATH CLK Q1 (392:422:452)(392:422:452)) + (IOPATH FCI F0 (473:529:585)(473:529:585)) + (IOPATH FCI F1 (519:581:643)(519:581:643)) + (IOPATH FCI FCO (130:146:162)(130:146:162)) ) ) (TIMINGCHECK (SETUPHOLD DI1 (posedge CLK) (130:148:166)(-34:-22:-11)) - (SETUPHOLD M0 (posedge CLK) (256:302:348)(-105:-71:-37)) + (SETUPHOLD DI0 (posedge CLK) (130:148:166)(-34:-22:-11)) ) (TIMINGCHECK (WIDTH (posedge CLK) (1250:1250:1250)) @@ -191,12 +181,20 @@ (INSTANCE SLICE_7) (DELAY (ABSOLUTE + (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH A1 FCO (718:803:889)(718:803:889)) (IOPATH A0 F0 (367:431:495)(367:431:495)) + (IOPATH A0 F1 (718:803:889)(718:803:889)) + (IOPATH A0 FCO (827:925:1023)(827:925:1023)) (IOPATH CLK Q0 (392:422:452)(392:422:452)) + (IOPATH CLK Q1 (392:422:452)(392:422:452)) (IOPATH FCI F0 (473:529:585)(473:529:585)) + (IOPATH FCI F1 (519:581:643)(519:581:643)) + (IOPATH FCI FCO (130:146:162)(130:146:162)) ) ) (TIMINGCHECK + (SETUPHOLD DI1 (posedge CLK) (130:148:166)(-34:-22:-11)) (SETUPHOLD DI0 (posedge CLK) (130:148:166)(-34:-22:-11)) ) (TIMINGCHECK @@ -261,7 +259,6 @@ (INSTANCE SLICE_10) (DELAY (ABSOLUTE - (IOPATH D1 F1 (367:431:495)(367:431:495)) (IOPATH C1 F1 (367:431:495)(367:431:495)) (IOPATH B1 F1 (367:431:495)(367:431:495)) (IOPATH A1 F1 (367:431:495)(367:431:495)) @@ -273,27 +270,22 @@ ) ) (TIMINGCHECK - (WIDTH (posedge LSR) (4000:4000:4000)) - (WIDTH (negedge LSR) (4000:4000:4000)) (WIDTH (posedge CLK) (1250:1250:1250)) (WIDTH (negedge CLK) (1250:1250:1250)) ) (TIMINGCHECK (SETUPHOLD DI0 (negedge CLK) (130:148:166)(-34:-22:-11)) - (SETUPHOLD CE (negedge CLK) (247:277:307)(-116:-104:-92)) - (SETUPHOLD LSR (negedge CLK) (236:260:285)(-236:-194:-152)) ) ) (CELL - (CELLTYPE "SLICE_15") - (INSTANCE SLICE_15) + (CELLTYPE "SLICE_13") + (INSTANCE SLICE_13) (DELAY (ABSOLUTE (IOPATH D1 F1 (367:431:495)(367:431:495)) (IOPATH C1 F1 (367:431:495)(367:431:495)) (IOPATH B1 F1 (367:431:495)(367:431:495)) (IOPATH A1 F1 (367:431:495)(367:431:495)) - (IOPATH D0 F0 (367:431:495)(367:431:495)) (IOPATH C0 F0 (367:431:495)(367:431:495)) (IOPATH B0 F0 (367:431:495)(367:431:495)) (IOPATH A0 F0 (367:431:495)(367:431:495)) @@ -301,21 +293,20 @@ ) ) (TIMINGCHECK - (WIDTH (posedge LSR) (4000:4000:4000)) - (WIDTH (negedge LSR) (4000:4000:4000)) (WIDTH (posedge CLK) (1250:1250:1250)) (WIDTH (negedge CLK) (1250:1250:1250)) ) (TIMINGCHECK (SETUPHOLD DI0 (negedge CLK) (130:148:166)(-34:-22:-11)) - (SETUPHOLD LSR (negedge CLK) (236:260:285)(-236:-194:-152)) ) ) (CELL - (CELLTYPE "SLICE_16") - (INSTANCE SLICE_16) + (CELLTYPE "SLICE_14") + (INSTANCE SLICE_14) (DELAY (ABSOLUTE + (IOPATH B1 F1 (367:431:495)(367:431:495)) + (IOPATH A1 F1 (367:431:495)(367:431:495)) (IOPATH A0 F0 (367:431:495)(367:431:495)) (IOPATH CLK Q0 (392:422:452)(392:422:452)) (IOPATH CLK Q1 (392:422:452)(392:422:452)) @@ -330,12 +321,59 @@ (WIDTH (negedge CLK) (1250:1250:1250)) ) ) + (CELL + (CELLTYPE "SLICE_17") + (INSTANCE SLICE_17) + (DELAY + (ABSOLUTE + (IOPATH D1 F1 (367:431:495)(367:431:495)) + (IOPATH C1 F1 (367:431:495)(367:431:495)) + (IOPATH B1 F1 (367:431:495)(367:431:495)) + (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH B0 F0 (367:431:495)(367:431:495)) + (IOPATH A0 F0 (367:431:495)(367:431:495)) + (IOPATH CLK Q0 (392:422:452)(392:422:452)) + ) + ) + (TIMINGCHECK + (SETUPHOLD DI0 (posedge CLK) (130:148:166)(-34:-22:-11)) + (SETUPHOLD LSR (posedge CLK) (225:249:274)(-225:-183:-141)) + ) + (TIMINGCHECK + (WIDTH (posedge LSR) (4000:4000:4000)) + (WIDTH (negedge LSR) (4000:4000:4000)) + (WIDTH (posedge CLK) (1250:1250:1250)) + (WIDTH (negedge CLK) (1250:1250:1250)) + ) + ) + (CELL + (CELLTYPE "SLICE_18") + (INSTANCE SLICE_18) + (DELAY + (ABSOLUTE + (IOPATH B1 OFX0 (457:589:721)(457:589:721)) + (IOPATH A1 OFX0 (457:589:721)(457:589:721)) + (IOPATH D0 OFX0 (457:589:721)(457:589:721)) + (IOPATH C0 OFX0 (457:589:721)(457:589:721)) + (IOPATH B0 OFX0 (457:589:721)(457:589:721)) + (IOPATH A0 OFX0 (457:589:721)(457:589:721)) + (IOPATH M0 OFX0 (322:349:376)(322:349:376)) + (IOPATH CLK Q0 (392:422:452)(392:422:452)) + ) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1250:1250:1250)) + (WIDTH (negedge CLK) (1250:1250:1250)) + ) + (TIMINGCHECK + (SETUPHOLD DI0 (negedge CLK) (130:148:166)(-34:-22:-11)) + ) + ) (CELL (CELLTYPE "SLICE_19") (INSTANCE SLICE_19) (DELAY (ABSOLUTE - (IOPATH D1 F1 (367:431:495)(367:431:495)) (IOPATH C1 F1 (367:431:495)(367:431:495)) (IOPATH B1 F1 (367:431:495)(367:431:495)) (IOPATH A1 F1 (367:431:495)(367:431:495)) @@ -360,6 +398,12 @@ (INSTANCE SLICE_20) (DELAY (ABSOLUTE + (IOPATH D1 F1 (367:431:495)(367:431:495)) + (IOPATH C1 F1 (367:431:495)(367:431:495)) + (IOPATH B1 F1 (367:431:495)(367:431:495)) + (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH B0 F0 (367:431:495)(367:431:495)) + (IOPATH A0 F0 (367:431:495)(367:431:495)) (IOPATH CLK Q0 (392:422:452)(392:422:452)) ) ) @@ -369,18 +413,16 @@ ) (TIMINGCHECK (SETUPHOLD DI0 (negedge CLK) (130:148:166)(-34:-22:-11)) - (SETUPHOLD CE (negedge CLK) (247:277:307)(-116:-104:-92)) ) ) (CELL - (CELLTYPE "SLICE_24") - (INSTANCE SLICE_24) + (CELLTYPE "SLICE_21") + (INSTANCE SLICE_21) (DELAY (ABSOLUTE (IOPATH C1 F1 (367:431:495)(367:431:495)) (IOPATH B1 F1 (367:431:495)(367:431:495)) (IOPATH A1 F1 (367:431:495)(367:431:495)) - (IOPATH D0 F0 (367:431:495)(367:431:495)) (IOPATH C0 F0 (367:431:495)(367:431:495)) (IOPATH B0 F0 (367:431:495)(367:431:495)) (IOPATH A0 F0 (367:431:495)(367:431:495)) @@ -397,16 +439,16 @@ ) ) (CELL - (CELLTYPE "SLICE_25") - (INSTANCE SLICE_25) + (CELLTYPE "SLICE_22") + (INSTANCE SLICE_22) (DELAY (ABSOLUTE + (IOPATH D1 F1 (367:431:495)(367:431:495)) (IOPATH C1 F1 (367:431:495)(367:431:495)) (IOPATH B1 F1 (367:431:495)(367:431:495)) (IOPATH A1 F1 (367:431:495)(367:431:495)) (IOPATH A0 F0 (367:431:495)(367:431:495)) (IOPATH CLK Q0 (392:422:452)(392:422:452)) - (IOPATH CLK Q1 (392:422:452)(392:422:452)) ) ) (TIMINGCHECK @@ -415,119 +457,11 @@ ) (TIMINGCHECK (SETUPHOLD DI0 (negedge CLK) (130:148:166)(-34:-22:-11)) - (SETUPHOLD M1 (negedge CLK) (256:302:348)(-105:-71:-37)) ) ) (CELL - (CELLTYPE "SLICE_26") - (INSTANCE SLICE_26) - (DELAY - (ABSOLUTE - (IOPATH CLK Q0 (392:422:452)(392:422:452)) - ) - ) - (TIMINGCHECK - (SETUPHOLD DI0 (posedge CLK) (130:148:166)(-34:-22:-11)) - (SETUPHOLD CE (posedge CLK) (229:255:282)(-99:-89:-79)) - ) - (TIMINGCHECK - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) - ) - ) - (CELL - (CELLTYPE "SLICE_27") - (INSTANCE SLICE_27) - (DELAY - (ABSOLUTE - (IOPATH CLK Q0 (392:422:452)(392:422:452)) - ) - ) - (TIMINGCHECK - (SETUPHOLD DI0 (posedge CLK) (130:148:166)(-34:-22:-11)) - (SETUPHOLD CE (posedge CLK) (229:255:282)(-99:-89:-79)) - ) - (TIMINGCHECK - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) - ) - ) - (CELL - (CELLTYPE "SLICE_30") - (INSTANCE SLICE_30) - (DELAY - (ABSOLUTE - (IOPATH C1 F1 (367:431:495)(367:431:495)) - (IOPATH B1 F1 (367:431:495)(367:431:495)) - (IOPATH A1 F1 (367:431:495)(367:431:495)) - (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) - (IOPATH CLK Q1 (392:422:452)(392:422:452)) - ) - ) - (TIMINGCHECK - (SETUPHOLD DI0 (posedge CLK) (130:148:166)(-34:-22:-11)) - (SETUPHOLD M1 (posedge CLK) (256:302:348)(-105:-71:-37)) - ) - (TIMINGCHECK - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) - ) - ) - (CELL - (CELLTYPE "SLICE_32") - (INSTANCE SLICE_32) - (DELAY - (ABSOLUTE - (IOPATH C1 F1 (367:431:495)(367:431:495)) - (IOPATH B1 F1 (367:431:495)(367:431:495)) - (IOPATH A1 F1 (367:431:495)(367:431:495)) - (IOPATH D0 F0 (367:431:495)(367:431:495)) - (IOPATH C0 F0 (367:431:495)(367:431:495)) - (IOPATH B0 F0 (367:431:495)(367:431:495)) - (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) - ) - ) - (TIMINGCHECK - (SETUPHOLD DI0 (posedge CLK) (130:148:166)(-34:-22:-11)) - (SETUPHOLD LSR (posedge CLK) (225:249:274)(-225:-183:-141)) - ) - (TIMINGCHECK - (WIDTH (posedge LSR) (4000:4000:4000)) - (WIDTH (negedge LSR) (4000:4000:4000)) - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) - ) - ) - (CELL - (CELLTYPE "SLICE_33") - (INSTANCE SLICE_33) - (DELAY - (ABSOLUTE - (IOPATH C1 F1 (367:431:495)(367:431:495)) - (IOPATH B1 F1 (367:431:495)(367:431:495)) - (IOPATH A1 F1 (367:431:495)(367:431:495)) - (IOPATH C0 F0 (367:431:495)(367:431:495)) - (IOPATH B0 F0 (367:431:495)(367:431:495)) - (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) - ) - ) - (TIMINGCHECK - (SETUPHOLD DI0 (posedge CLK) (130:148:166)(-34:-22:-11)) - (SETUPHOLD LSR (posedge CLK) (225:249:274)(-225:-183:-141)) - ) - (TIMINGCHECK - (WIDTH (posedge LSR) (4000:4000:4000)) - (WIDTH (negedge LSR) (4000:4000:4000)) - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) - ) - ) - (CELL - (CELLTYPE "SLICE_35") - (INSTANCE SLICE_35) + (CELLTYPE "SLICE_23") + (INSTANCE SLICE_23) (DELAY (ABSOLUTE (IOPATH D1 F1 (367:431:495)(367:431:495)) @@ -542,6 +476,29 @@ ) (TIMINGCHECK (SETUPHOLD DI0 (posedge CLK) (130:148:166)(-34:-22:-11)) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1250:1250:1250)) + (WIDTH (negedge CLK) (1250:1250:1250)) + ) + ) + (CELL + (CELLTYPE "SLICE_24") + (INSTANCE SLICE_24) + (DELAY + (ABSOLUTE + (IOPATH C1 F1 (367:431:495)(367:431:495)) + (IOPATH B1 F1 (367:431:495)(367:431:495)) + (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH B0 F0 (367:431:495)(367:431:495)) + (IOPATH A0 F0 (367:431:495)(367:431:495)) + (IOPATH CLK Q0 (392:422:452)(392:422:452)) + (IOPATH CLK Q1 (392:422:452)(392:422:452)) + ) + ) + (TIMINGCHECK + (SETUPHOLD DI1 (posedge CLK) (130:148:166)(-34:-22:-11)) + (SETUPHOLD DI0 (posedge CLK) (130:148:166)(-34:-22:-11)) (SETUPHOLD CE (posedge CLK) (229:255:282)(-99:-89:-79)) ) (TIMINGCHECK @@ -550,8 +507,8 @@ ) ) (CELL - (CELLTYPE "SLICE_36") - (INSTANCE SLICE_36) + (CELLTYPE "SLICE_25") + (INSTANCE SLICE_25) (DELAY (ABSOLUTE (IOPATH D0 F0 (367:431:495)(367:431:495)) @@ -559,6 +516,116 @@ (IOPATH B0 F0 (367:431:495)(367:431:495)) (IOPATH A0 F0 (367:431:495)(367:431:495)) (IOPATH CLK Q0 (392:422:452)(392:422:452)) + ) + ) + (TIMINGCHECK + (SETUPHOLD DI0 (posedge CLK) (130:148:166)(-34:-22:-11)) + (SETUPHOLD CE (posedge CLK) (229:255:282)(-99:-89:-79)) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1250:1250:1250)) + (WIDTH (negedge CLK) (1250:1250:1250)) + ) + ) + (CELL + (CELLTYPE "SLICE_26") + (INSTANCE SLICE_26) + (DELAY + (ABSOLUTE + (IOPATH D1 F1 (367:431:495)(367:431:495)) + (IOPATH C1 F1 (367:431:495)(367:431:495)) + (IOPATH B1 F1 (367:431:495)(367:431:495)) + (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH B0 F0 (367:431:495)(367:431:495)) + (IOPATH A0 F0 (367:431:495)(367:431:495)) + (IOPATH CLK Q0 (392:422:452)(392:422:452)) + ) + ) + (TIMINGCHECK + (SETUPHOLD DI0 (posedge CLK) (130:148:166)(-34:-22:-11)) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1250:1250:1250)) + (WIDTH (negedge CLK) (1250:1250:1250)) + ) + ) + (CELL + (CELLTYPE "SLICE_27") + (INSTANCE SLICE_27) + (DELAY + (ABSOLUTE + (IOPATH B0 F0 (367:431:495)(367:431:495)) + (IOPATH A0 F0 (367:431:495)(367:431:495)) + (IOPATH CLK Q0 (392:422:452)(392:422:452)) + ) + ) + (TIMINGCHECK + (SETUPHOLD DI0 (posedge CLK) (130:148:166)(-34:-22:-11)) + (SETUPHOLD CE (posedge CLK) (229:255:282)(-99:-89:-79)) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1250:1250:1250)) + (WIDTH (negedge CLK) (1250:1250:1250)) + ) + ) + (CELL + (CELLTYPE "SLICE_29") + (INSTANCE SLICE_29) + (DELAY + (ABSOLUTE + (IOPATH C1 F1 (367:431:495)(367:431:495)) + (IOPATH B1 F1 (367:431:495)(367:431:495)) + (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH A0 F0 (367:431:495)(367:431:495)) + (IOPATH CLK Q0 (392:422:452)(392:422:452)) + (IOPATH CLK Q1 (392:422:452)(392:422:452)) + ) + ) + (TIMINGCHECK + (SETUPHOLD DI0 (posedge CLK) (130:148:166)(-34:-22:-11)) + (SETUPHOLD M1 (posedge CLK) (256:302:348)(-105:-71:-37)) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1250:1250:1250)) + (WIDTH (negedge CLK) (1250:1250:1250)) + ) + ) + (CELL + (CELLTYPE "SLICE_31") + (INSTANCE SLICE_31) + (DELAY + (ABSOLUTE + (IOPATH D1 F1 (367:431:495)(367:431:495)) + (IOPATH C1 F1 (367:431:495)(367:431:495)) + (IOPATH B1 F1 (367:431:495)(367:431:495)) + (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH D0 F0 (367:431:495)(367:431:495)) + (IOPATH C0 F0 (367:431:495)(367:431:495)) + (IOPATH B0 F0 (367:431:495)(367:431:495)) + (IOPATH A0 F0 (367:431:495)(367:431:495)) + (IOPATH CLK Q0 (392:422:452)(392:422:452)) + ) + ) + (TIMINGCHECK + (SETUPHOLD DI0 (posedge CLK) (130:148:166)(-34:-22:-11)) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1250:1250:1250)) + (WIDTH (negedge CLK) (1250:1250:1250)) + ) + ) + (CELL + (CELLTYPE "SLICE_32") + (INSTANCE SLICE_32) + (DELAY + (ABSOLUTE + (IOPATH B1 F1 (367:431:495)(367:431:495)) + (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH D0 F0 (367:431:495)(367:431:495)) + (IOPATH C0 F0 (367:431:495)(367:431:495)) + (IOPATH B0 F0 (367:431:495)(367:431:495)) + (IOPATH A0 F0 (367:431:495)(367:431:495)) + (IOPATH CLK Q0 (392:422:452)(392:422:452)) (IOPATH CLK Q1 (392:422:452)(392:422:452)) ) ) @@ -571,11 +638,246 @@ (WIDTH (negedge CLK) (1250:1250:1250)) ) ) + (CELL + (CELLTYPE "SLICE_33") + (INSTANCE SLICE_33) + (DELAY + (ABSOLUTE + (IOPATH C1 F1 (367:431:495)(367:431:495)) + (IOPATH B1 F1 (367:431:495)(367:431:495)) + (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH D0 F0 (367:431:495)(367:431:495)) + (IOPATH C0 F0 (367:431:495)(367:431:495)) + (IOPATH B0 F0 (367:431:495)(367:431:495)) + (IOPATH A0 F0 (367:431:495)(367:431:495)) + (IOPATH CLK Q0 (392:422:452)(392:422:452)) + ) + ) + (TIMINGCHECK + (SETUPHOLD DI0 (posedge CLK) (130:148:166)(-34:-22:-11)) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1250:1250:1250)) + (WIDTH (negedge CLK) (1250:1250:1250)) + ) + ) + (CELL + (CELLTYPE "SLICE_34") + (INSTANCE SLICE_34) + (DELAY + (ABSOLUTE + (IOPATH D1 F1 (367:431:495)(367:431:495)) + (IOPATH C1 F1 (367:431:495)(367:431:495)) + (IOPATH B1 F1 (367:431:495)(367:431:495)) + (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH B0 F0 (367:431:495)(367:431:495)) + (IOPATH A0 F0 (367:431:495)(367:431:495)) + (IOPATH CLK Q0 (392:422:452)(392:422:452)) + ) + ) + (TIMINGCHECK + (SETUPHOLD DI0 (posedge CLK) (130:148:166)(-34:-22:-11)) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1250:1250:1250)) + (WIDTH (negedge CLK) (1250:1250:1250)) + ) + ) + (CELL + (CELLTYPE "SLICE_35") + (INSTANCE SLICE_35) + (DELAY + (ABSOLUTE + (IOPATH B1 F1 (367:431:495)(367:431:495)) + (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH B0 F0 (367:431:495)(367:431:495)) + (IOPATH A0 F0 (367:431:495)(367:431:495)) + (IOPATH CLK Q0 (392:422:452)(392:422:452)) + (IOPATH CLK Q1 (392:422:452)(392:422:452)) + ) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1250:1250:1250)) + (WIDTH (negedge CLK) (1250:1250:1250)) + ) + (TIMINGCHECK + (SETUPHOLD DI1 (negedge CLK) (130:148:166)(-34:-22:-11)) + (SETUPHOLD DI0 (negedge CLK) (130:148:166)(-34:-22:-11)) + ) + ) + (CELL + (CELLTYPE "SLICE_36") + (INSTANCE SLICE_36) + (DELAY + (ABSOLUTE + (IOPATH B1 F1 (367:431:495)(367:431:495)) + (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH B0 F0 (367:431:495)(367:431:495)) + (IOPATH A0 F0 (367:431:495)(367:431:495)) + (IOPATH CLK Q0 (392:422:452)(392:422:452)) + (IOPATH CLK Q1 (392:422:452)(392:422:452)) + ) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1250:1250:1250)) + (WIDTH (negedge CLK) (1250:1250:1250)) + ) + (TIMINGCHECK + (SETUPHOLD DI1 (negedge CLK) (130:148:166)(-34:-22:-11)) + (SETUPHOLD DI0 (negedge CLK) (130:148:166)(-34:-22:-11)) + ) + ) (CELL (CELLTYPE "SLICE_37") (INSTANCE SLICE_37) (DELAY (ABSOLUTE + (IOPATH B1 F1 (367:431:495)(367:431:495)) + (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH B0 F0 (367:431:495)(367:431:495)) + (IOPATH A0 F0 (367:431:495)(367:431:495)) + (IOPATH CLK Q0 (392:422:452)(392:422:452)) + (IOPATH CLK Q1 (392:422:452)(392:422:452)) + ) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1250:1250:1250)) + (WIDTH (negedge CLK) (1250:1250:1250)) + ) + (TIMINGCHECK + (SETUPHOLD DI1 (negedge CLK) (130:148:166)(-34:-22:-11)) + (SETUPHOLD DI0 (negedge CLK) (130:148:166)(-34:-22:-11)) + ) + ) + (CELL + (CELLTYPE "SLICE_38") + (INSTANCE SLICE_38) + (DELAY + (ABSOLUTE + (IOPATH B1 F1 (367:431:495)(367:431:495)) + (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH B0 F0 (367:431:495)(367:431:495)) + (IOPATH A0 F0 (367:431:495)(367:431:495)) + (IOPATH CLK Q0 (392:422:452)(392:422:452)) + (IOPATH CLK Q1 (392:422:452)(392:422:452)) + ) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1250:1250:1250)) + (WIDTH (negedge CLK) (1250:1250:1250)) + ) + (TIMINGCHECK + (SETUPHOLD DI1 (negedge CLK) (130:148:166)(-34:-22:-11)) + (SETUPHOLD DI0 (negedge CLK) (130:148:166)(-34:-22:-11)) + ) + ) + (CELL + (CELLTYPE "SLICE_39") + (INSTANCE SLICE_39) + (DELAY + (ABSOLUTE + (IOPATH B1 F1 (367:431:495)(367:431:495)) + (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH B0 F0 (367:431:495)(367:431:495)) + (IOPATH A0 F0 (367:431:495)(367:431:495)) + (IOPATH CLK Q0 (392:422:452)(392:422:452)) + (IOPATH CLK Q1 (392:422:452)(392:422:452)) + ) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1250:1250:1250)) + (WIDTH (negedge CLK) (1250:1250:1250)) + ) + (TIMINGCHECK + (SETUPHOLD DI1 (negedge CLK) (130:148:166)(-34:-22:-11)) + (SETUPHOLD DI0 (negedge CLK) (130:148:166)(-34:-22:-11)) + ) + ) + (CELL + (CELLTYPE "SLICE_40") + (INSTANCE SLICE_40) + (DELAY + (ABSOLUTE + (IOPATH D1 F1 (367:431:495)(367:431:495)) + (IOPATH C1 F1 (367:431:495)(367:431:495)) + (IOPATH B1 F1 (367:431:495)(367:431:495)) + (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH B0 F0 (367:431:495)(367:431:495)) + (IOPATH A0 F0 (367:431:495)(367:431:495)) + (IOPATH CLK Q0 (392:422:452)(392:422:452)) + ) + ) + (TIMINGCHECK + (SETUPHOLD DI0 (posedge CLK) (130:148:166)(-34:-22:-11)) + (SETUPHOLD LSR (posedge CLK) (225:249:274)(-225:-183:-141)) + ) + (TIMINGCHECK + (WIDTH (posedge LSR) (4000:4000:4000)) + (WIDTH (negedge LSR) (4000:4000:4000)) + (WIDTH (posedge CLK) (1250:1250:1250)) + (WIDTH (negedge CLK) (1250:1250:1250)) + ) + ) + (CELL + (CELLTYPE "SLICE_41") + (INSTANCE SLICE_41) + (DELAY + (ABSOLUTE + (IOPATH D1 OFX0 (457:589:721)(457:589:721)) + (IOPATH C1 OFX0 (457:589:721)(457:589:721)) + (IOPATH B1 OFX0 (457:589:721)(457:589:721)) + (IOPATH A1 OFX0 (457:589:721)(457:589:721)) + (IOPATH B0 OFX0 (457:589:721)(457:589:721)) + (IOPATH A0 OFX0 (457:589:721)(457:589:721)) + (IOPATH M0 OFX0 (322:349:376)(322:349:376)) + (IOPATH CLK Q0 (392:422:452)(392:422:452)) + ) + ) + (TIMINGCHECK + (SETUPHOLD DI0 (posedge CLK) (130:148:166)(-34:-22:-11)) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1250:1250:1250)) + (WIDTH (negedge CLK) (1250:1250:1250)) + ) + ) + (CELL + (CELLTYPE "SLICE_42") + (INSTANCE SLICE_42) + (DELAY + (ABSOLUTE + (IOPATH D1 F1 (367:431:495)(367:431:495)) + (IOPATH C1 F1 (367:431:495)(367:431:495)) + (IOPATH B1 F1 (367:431:495)(367:431:495)) + (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH D0 F0 (367:431:495)(367:431:495)) + (IOPATH C0 F0 (367:431:495)(367:431:495)) + (IOPATH B0 F0 (367:431:495)(367:431:495)) + (IOPATH A0 F0 (367:431:495)(367:431:495)) + (IOPATH CLK Q0 (392:422:452)(392:422:452)) + ) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1250:1250:1250)) + (WIDTH (negedge CLK) (1250:1250:1250)) + ) + (TIMINGCHECK + (SETUPHOLD DI0 (negedge CLK) (130:148:166)(-34:-22:-11)) + (SETUPHOLD CE (negedge CLK) (247:277:307)(-116:-104:-92)) + ) + ) + (CELL + (CELLTYPE "SLICE_43") + (INSTANCE SLICE_43) + (DELAY + (ABSOLUTE + (IOPATH D1 F1 (367:431:495)(367:431:495)) + (IOPATH C1 F1 (367:431:495)(367:431:495)) + (IOPATH B1 F1 (367:431:495)(367:431:495)) + (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH C0 F0 (367:431:495)(367:431:495)) + (IOPATH B0 F0 (367:431:495)(367:431:495)) + (IOPATH A0 F0 (367:431:495)(367:431:495)) (IOPATH CLK Q0 (392:422:452)(392:422:452)) ) ) @@ -597,6 +899,7 @@ (IOPATH C1 F1 (367:431:495)(367:431:495)) (IOPATH B1 F1 (367:431:495)(367:431:495)) (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH D0 F0 (367:431:495)(367:431:495)) (IOPATH C0 F0 (367:431:495)(367:431:495)) (IOPATH B0 F0 (367:431:495)(367:431:495)) (IOPATH A0 F0 (367:431:495)(367:431:495)) @@ -605,7 +908,6 @@ ) (TIMINGCHECK (SETUPHOLD DI0 (posedge CLK) (130:148:166)(-34:-22:-11)) - (SETUPHOLD CE (posedge CLK) (229:255:282)(-99:-89:-79)) (SETUPHOLD LSR (posedge CLK) (225:249:274)(-225:-183:-141)) ) (TIMINGCHECK @@ -633,22 +935,95 @@ ) (TIMINGCHECK (SETUPHOLD DI0 (posedge CLK) (130:148:166)(-34:-22:-11)) - (SETUPHOLD CE (posedge CLK) (229:255:282)(-99:-89:-79)) - (SETUPHOLD LSR (posedge CLK) (225:249:274)(-225:-183:-141)) ) (TIMINGCHECK - (WIDTH (posedge LSR) (4000:4000:4000)) - (WIDTH (negedge LSR) (4000:4000:4000)) (WIDTH (posedge CLK) (1250:1250:1250)) (WIDTH (negedge CLK) (1250:1250:1250)) ) ) + (CELL + (CELLTYPE "SLICE_46") + (INSTANCE SLICE_46) + (DELAY + (ABSOLUTE + (IOPATH D1 F1 (367:431:495)(367:431:495)) + (IOPATH C1 F1 (367:431:495)(367:431:495)) + (IOPATH B1 F1 (367:431:495)(367:431:495)) + (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH D0 F0 (367:431:495)(367:431:495)) + (IOPATH C0 F0 (367:431:495)(367:431:495)) + (IOPATH B0 F0 (367:431:495)(367:431:495)) + (IOPATH A0 F0 (367:431:495)(367:431:495)) + ) + ) + ) + (CELL + (CELLTYPE "SLICE_47") + (INSTANCE SLICE_47) + (DELAY + (ABSOLUTE + (IOPATH D1 F1 (367:431:495)(367:431:495)) + (IOPATH C1 F1 (367:431:495)(367:431:495)) + (IOPATH B1 F1 (367:431:495)(367:431:495)) + (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH D0 F0 (367:431:495)(367:431:495)) + (IOPATH C0 F0 (367:431:495)(367:431:495)) + (IOPATH B0 F0 (367:431:495)(367:431:495)) + (IOPATH A0 F0 (367:431:495)(367:431:495)) + ) + ) + ) + (CELL + (CELLTYPE "SLICE_48") + (INSTANCE SLICE_48) + (DELAY + (ABSOLUTE + (IOPATH D1 F1 (367:431:495)(367:431:495)) + (IOPATH C1 F1 (367:431:495)(367:431:495)) + (IOPATH B1 F1 (367:431:495)(367:431:495)) + (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH C0 F0 (367:431:495)(367:431:495)) + (IOPATH B0 F0 (367:431:495)(367:431:495)) + (IOPATH A0 F0 (367:431:495)(367:431:495)) + ) + ) + ) + (CELL + (CELLTYPE "SLICE_49") + (INSTANCE SLICE_49) + (DELAY + (ABSOLUTE + (IOPATH D1 F1 (367:431:495)(367:431:495)) + (IOPATH C1 F1 (367:431:495)(367:431:495)) + (IOPATH B1 F1 (367:431:495)(367:431:495)) + (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH D0 F0 (367:431:495)(367:431:495)) + (IOPATH C0 F0 (367:431:495)(367:431:495)) + (IOPATH B0 F0 (367:431:495)(367:431:495)) + (IOPATH A0 F0 (367:431:495)(367:431:495)) + ) + ) + ) (CELL (CELLTYPE "SLICE_50") (INSTANCE SLICE_50) (DELAY (ABSOLUTE (IOPATH D1 F1 (367:431:495)(367:431:495)) + (IOPATH C1 F1 (367:431:495)(367:431:495)) + (IOPATH B1 F1 (367:431:495)(367:431:495)) + (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH C0 F0 (367:431:495)(367:431:495)) + (IOPATH B0 F0 (367:431:495)(367:431:495)) + (IOPATH A0 F0 (367:431:495)(367:431:495)) + ) + ) + ) + (CELL + (CELLTYPE "SLICE_51") + (INSTANCE SLICE_51) + (DELAY + (ABSOLUTE (IOPATH C1 F1 (367:431:495)(367:431:495)) (IOPATH B1 F1 (367:431:495)(367:431:495)) (IOPATH A1 F1 (367:431:495)(367:431:495)) @@ -656,16 +1031,81 @@ (IOPATH C0 F0 (367:431:495)(367:431:495)) (IOPATH B0 F0 (367:431:495)(367:431:495)) (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) ) ) - (TIMINGCHECK - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) + ) + (CELL + (CELLTYPE "SLICE_52") + (INSTANCE SLICE_52) + (DELAY + (ABSOLUTE + (IOPATH C1 F1 (367:431:495)(367:431:495)) + (IOPATH B1 F1 (367:431:495)(367:431:495)) + (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH D0 F0 (367:431:495)(367:431:495)) + (IOPATH C0 F0 (367:431:495)(367:431:495)) + (IOPATH B0 F0 (367:431:495)(367:431:495)) + (IOPATH A0 F0 (367:431:495)(367:431:495)) + ) ) - (TIMINGCHECK - (SETUPHOLD DI0 (negedge CLK) (130:148:166)(-34:-22:-11)) - (SETUPHOLD CE (negedge CLK) (247:277:307)(-116:-104:-92)) + ) + (CELL + (CELLTYPE "SLICE_53") + (INSTANCE SLICE_53) + (DELAY + (ABSOLUTE + (IOPATH D1 F1 (367:431:495)(367:431:495)) + (IOPATH C1 F1 (367:431:495)(367:431:495)) + (IOPATH B1 F1 (367:431:495)(367:431:495)) + (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH C0 F0 (367:431:495)(367:431:495)) + (IOPATH B0 F0 (367:431:495)(367:431:495)) + (IOPATH A0 F0 (367:431:495)(367:431:495)) + ) + ) + ) + (CELL + (CELLTYPE "SLICE_54") + (INSTANCE SLICE_54) + (DELAY + (ABSOLUTE + (IOPATH B1 F1 (367:431:495)(367:431:495)) + (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH D0 F0 (367:431:495)(367:431:495)) + (IOPATH C0 F0 (367:431:495)(367:431:495)) + (IOPATH B0 F0 (367:431:495)(367:431:495)) + (IOPATH A0 F0 (367:431:495)(367:431:495)) + ) + ) + ) + (CELL + (CELLTYPE "SLICE_55") + (INSTANCE SLICE_55) + (DELAY + (ABSOLUTE + (IOPATH C1 F1 (367:431:495)(367:431:495)) + (IOPATH B1 F1 (367:431:495)(367:431:495)) + (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH D0 F0 (367:431:495)(367:431:495)) + (IOPATH C0 F0 (367:431:495)(367:431:495)) + (IOPATH B0 F0 (367:431:495)(367:431:495)) + (IOPATH A0 F0 (367:431:495)(367:431:495)) + ) + ) + ) + (CELL + (CELLTYPE "SLICE_56") + (INSTANCE SLICE_56) + (DELAY + (ABSOLUTE + (IOPATH D1 F1 (367:431:495)(367:431:495)) + (IOPATH C1 F1 (367:431:495)(367:431:495)) + (IOPATH B1 F1 (367:431:495)(367:431:495)) + (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH C0 F0 (367:431:495)(367:431:495)) + (IOPATH B0 F0 (367:431:495)(367:431:495)) + (IOPATH A0 F0 (367:431:495)(367:431:495)) + ) ) ) (CELL @@ -681,16 +1121,23 @@ (IOPATH C0 F0 (367:431:495)(367:431:495)) (IOPATH B0 F0 (367:431:495)(367:431:495)) (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) ) ) - (TIMINGCHECK - (SETUPHOLD DI0 (posedge CLK) (130:148:166)(-34:-22:-11)) - (SETUPHOLD CE (posedge CLK) (229:255:282)(-99:-89:-79)) - ) - (TIMINGCHECK - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) + ) + (CELL + (CELLTYPE "SLICE_58") + (INSTANCE SLICE_58) + (DELAY + (ABSOLUTE + (IOPATH D1 F1 (367:431:495)(367:431:495)) + (IOPATH C1 F1 (367:431:495)(367:431:495)) + (IOPATH B1 F1 (367:431:495)(367:431:495)) + (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH D0 F0 (367:431:495)(367:431:495)) + (IOPATH C0 F0 (367:431:495)(367:431:495)) + (IOPATH B0 F0 (367:431:495)(367:431:495)) + (IOPATH A0 F0 (367:431:495)(367:431:495)) + ) ) ) (CELL @@ -698,7 +1145,6 @@ (INSTANCE SLICE_59) (DELAY (ABSOLUTE - (IOPATH D1 F1 (367:431:495)(367:431:495)) (IOPATH C1 F1 (367:431:495)(367:431:495)) (IOPATH B1 F1 (367:431:495)(367:431:495)) (IOPATH A1 F1 (367:431:495)(367:431:495)) @@ -706,16 +1152,21 @@ (IOPATH C0 F0 (367:431:495)(367:431:495)) (IOPATH B0 F0 (367:431:495)(367:431:495)) (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) ) ) - (TIMINGCHECK - (SETUPHOLD DI0 (posedge CLK) (130:148:166)(-34:-22:-11)) - (SETUPHOLD CE (posedge CLK) (229:255:282)(-99:-89:-79)) - ) - (TIMINGCHECK - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) + ) + (CELL + (CELLTYPE "SLICE_60") + (INSTANCE SLICE_60) + (DELAY + (ABSOLUTE + (IOPATH B1 F1 (367:431:495)(367:431:495)) + (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH D0 F0 (367:431:495)(367:431:495)) + (IOPATH C0 F0 (367:431:495)(367:431:495)) + (IOPATH B0 F0 (367:431:495)(367:431:495)) + (IOPATH A0 F0 (367:431:495)(367:431:495)) + ) ) ) (CELL @@ -723,31 +1174,6 @@ (INSTANCE SLICE_61) (DELAY (ABSOLUTE - (IOPATH D1 F1 (367:431:495)(367:431:495)) - (IOPATH C1 F1 (367:431:495)(367:431:495)) - (IOPATH B1 F1 (367:431:495)(367:431:495)) - (IOPATH A1 F1 (367:431:495)(367:431:495)) - (IOPATH C0 F0 (367:431:495)(367:431:495)) - (IOPATH B0 F0 (367:431:495)(367:431:495)) - (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) - ) - ) - (TIMINGCHECK - (SETUPHOLD DI0 (posedge CLK) (130:148:166)(-34:-22:-11)) - (SETUPHOLD CE (posedge CLK) (229:255:282)(-99:-89:-79)) - ) - (TIMINGCHECK - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) - ) - ) - (CELL - (CELLTYPE "SLICE_62") - (INSTANCE SLICE_62) - (DELAY - (ABSOLUTE - (IOPATH D1 F1 (367:431:495)(367:431:495)) (IOPATH C1 F1 (367:431:495)(367:431:495)) (IOPATH B1 F1 (367:431:495)(367:431:495)) (IOPATH A1 F1 (367:431:495)(367:431:495)) @@ -755,12 +1181,41 @@ (IOPATH C0 F0 (367:431:495)(367:431:495)) (IOPATH B0 F0 (367:431:495)(367:431:495)) (IOPATH A0 F0 (367:431:495)(367:431:495)) + ) + ) + ) + (CELL + (CELLTYPE "SLICE_62") + (INSTANCE SLICE_62) + (DELAY + (ABSOLUTE + (IOPATH B1 F1 (367:431:495)(367:431:495)) + (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH D0 F0 (367:431:495)(367:431:495)) + (IOPATH C0 F0 (367:431:495)(367:431:495)) + (IOPATH B0 F0 (367:431:495)(367:431:495)) + (IOPATH A0 F0 (367:431:495)(367:431:495)) + ) + ) + ) + (CELL + (CELLTYPE "SLICE_63") + (INSTANCE SLICE_63) + (DELAY + (ABSOLUTE + (IOPATH B1 F1 (367:431:495)(367:431:495)) + (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH D0 F0 (367:431:495)(367:431:495)) + (IOPATH C0 F0 (367:431:495)(367:431:495)) + (IOPATH B0 F0 (367:431:495)(367:431:495)) + (IOPATH A0 F0 (367:431:495)(367:431:495)) (IOPATH CLK Q0 (392:422:452)(392:422:452)) + (IOPATH CLK Q1 (392:422:452)(392:422:452)) ) ) (TIMINGCHECK - (SETUPHOLD DI0 (posedge CLK) (130:148:166)(-34:-22:-11)) - (SETUPHOLD CE (posedge CLK) (229:255:282)(-99:-89:-79)) + (SETUPHOLD M1 (posedge CLK) (256:302:348)(-105:-71:-37)) + (SETUPHOLD M0 (posedge CLK) (256:302:348)(-105:-71:-37)) ) (TIMINGCHECK (WIDTH (posedge CLK) (1250:1250:1250)) @@ -772,23 +1227,15 @@ (INSTANCE SLICE_64) (DELAY (ABSOLUTE + (IOPATH C1 F1 (367:431:495)(367:431:495)) (IOPATH B1 F1 (367:431:495)(367:431:495)) (IOPATH A1 F1 (367:431:495)(367:431:495)) (IOPATH D0 F0 (367:431:495)(367:431:495)) (IOPATH C0 F0 (367:431:495)(367:431:495)) (IOPATH B0 F0 (367:431:495)(367:431:495)) (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) ) ) - (TIMINGCHECK - (SETUPHOLD DI0 (posedge CLK) (130:148:166)(-34:-22:-11)) - (SETUPHOLD CE (posedge CLK) (229:255:282)(-99:-89:-79)) - ) - (TIMINGCHECK - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) - ) ) (CELL (CELLTYPE "SLICE_65") @@ -802,11 +1249,12 @@ (IOPATH B0 F0 (367:431:495)(367:431:495)) (IOPATH A0 F0 (367:431:495)(367:431:495)) (IOPATH CLK Q0 (392:422:452)(392:422:452)) + (IOPATH CLK Q1 (392:422:452)(392:422:452)) ) ) (TIMINGCHECK - (SETUPHOLD DI0 (posedge CLK) (130:148:166)(-34:-22:-11)) - (SETUPHOLD CE (posedge CLK) (229:255:282)(-99:-89:-79)) + (SETUPHOLD M1 (posedge CLK) (256:302:348)(-105:-71:-37)) + (SETUPHOLD M0 (posedge CLK) (256:302:348)(-105:-71:-37)) ) (TIMINGCHECK (WIDTH (posedge CLK) (1250:1250:1250)) @@ -818,44 +1266,31 @@ (INSTANCE SLICE_66) (DELAY (ABSOLUTE + (IOPATH D1 F1 (367:431:495)(367:431:495)) + (IOPATH C1 F1 (367:431:495)(367:431:495)) (IOPATH B1 F1 (367:431:495)(367:431:495)) (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH D0 F0 (367:431:495)(367:431:495)) + (IOPATH C0 F0 (367:431:495)(367:431:495)) (IOPATH B0 F0 (367:431:495)(367:431:495)) (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) ) ) - (TIMINGCHECK - (SETUPHOLD DI0 (posedge CLK) (130:148:166)(-34:-22:-11)) - (SETUPHOLD LSR (posedge CLK) (225:249:274)(-225:-183:-141)) - ) - (TIMINGCHECK - (WIDTH (posedge LSR) (4000:4000:4000)) - (WIDTH (negedge LSR) (4000:4000:4000)) - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) - ) ) (CELL (CELLTYPE "SLICE_67") (INSTANCE SLICE_67) (DELAY (ABSOLUTE + (IOPATH D1 F1 (367:431:495)(367:431:495)) + (IOPATH C1 F1 (367:431:495)(367:431:495)) + (IOPATH B1 F1 (367:431:495)(367:431:495)) + (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH C0 F0 (367:431:495)(367:431:495)) (IOPATH B0 F0 (367:431:495)(367:431:495)) (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) ) ) - (TIMINGCHECK - (SETUPHOLD DI0 (posedge CLK) (130:148:166)(-34:-22:-11)) - (SETUPHOLD LSR (posedge CLK) (225:249:274)(-225:-183:-141)) - ) - (TIMINGCHECK - (WIDTH (posedge LSR) (4000:4000:4000)) - (WIDTH (negedge LSR) (4000:4000:4000)) - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) - ) ) (CELL (CELLTYPE "SLICE_68") @@ -864,6 +1299,8 @@ (ABSOLUTE (IOPATH B1 F1 (367:431:495)(367:431:495)) (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH D0 F0 (367:431:495)(367:431:495)) + (IOPATH C0 F0 (367:431:495)(367:431:495)) (IOPATH B0 F0 (367:431:495)(367:431:495)) (IOPATH A0 F0 (367:431:495)(367:431:495)) (IOPATH CLK Q0 (392:422:452)(392:422:452)) @@ -871,11 +1308,8 @@ ) (TIMINGCHECK (SETUPHOLD M0 (posedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD LSR (posedge CLK) (225:249:274)(-225:-183:-141)) ) (TIMINGCHECK - (WIDTH (posedge LSR) (4000:4000:4000)) - (WIDTH (negedge LSR) (4000:4000:4000)) (WIDTH (posedge CLK) (1250:1250:1250)) (WIDTH (negedge CLK) (1250:1250:1250)) ) @@ -887,19 +1321,12 @@ (ABSOLUTE (IOPATH B1 F1 (367:431:495)(367:431:495)) (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH D0 F0 (367:431:495)(367:431:495)) + (IOPATH C0 F0 (367:431:495)(367:431:495)) + (IOPATH B0 F0 (367:431:495)(367:431:495)) (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) - (IOPATH CLK Q1 (392:422:452)(392:422:452)) ) ) - (TIMINGCHECK - (SETUPHOLD DI0 (posedge CLK) (130:148:166)(-34:-22:-11)) - (SETUPHOLD M1 (posedge CLK) (256:302:348)(-105:-71:-37)) - ) - (TIMINGCHECK - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) - ) ) (CELL (CELLTYPE "SLICE_70") @@ -907,6 +1334,20 @@ (DELAY (ABSOLUTE (IOPATH D1 F1 (367:431:495)(367:431:495)) + (IOPATH C1 F1 (367:431:495)(367:431:495)) + (IOPATH B1 F1 (367:431:495)(367:431:495)) + (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH C0 F0 (367:431:495)(367:431:495)) + (IOPATH B0 F0 (367:431:495)(367:431:495)) + (IOPATH A0 F0 (367:431:495)(367:431:495)) + ) + ) + ) + (CELL + (CELLTYPE "SLICE_71") + (INSTANCE SLICE_71) + (DELAY + (ABSOLUTE (IOPATH C1 F1 (367:431:495)(367:431:495)) (IOPATH B1 F1 (367:431:495)(367:431:495)) (IOPATH A1 F1 (367:431:495)(367:431:495)) @@ -914,31 +1355,6 @@ (IOPATH C0 F0 (367:431:495)(367:431:495)) (IOPATH B0 F0 (367:431:495)(367:431:495)) (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) - ) - ) - (TIMINGCHECK - (SETUPHOLD DI0 (posedge CLK) (130:148:166)(-34:-22:-11)) - (SETUPHOLD CE (posedge CLK) (229:255:282)(-99:-89:-79)) - ) - (TIMINGCHECK - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) - ) - ) - (CELL - (CELLTYPE "i30_SLICE_71") - (INSTANCE i30\/SLICE_71) - (DELAY - (ABSOLUTE - (IOPATH C1 OFX0 (457:589:721)(457:589:721)) - (IOPATH B1 OFX0 (457:589:721)(457:589:721)) - (IOPATH A1 OFX0 (457:589:721)(457:589:721)) - (IOPATH D0 OFX0 (457:589:721)(457:589:721)) - (IOPATH C0 OFX0 (457:589:721)(457:589:721)) - (IOPATH B0 OFX0 (457:589:721)(457:589:721)) - (IOPATH A0 OFX0 (457:589:721)(457:589:721)) - (IOPATH M0 OFX0 (322:349:376)(322:349:376)) ) ) ) @@ -951,6 +1367,8 @@ (IOPATH C1 F1 (367:431:495)(367:431:495)) (IOPATH B1 F1 (367:431:495)(367:431:495)) (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH D0 F0 (367:431:495)(367:431:495)) + (IOPATH C0 F0 (367:431:495)(367:431:495)) (IOPATH B0 F0 (367:431:495)(367:431:495)) (IOPATH A0 F0 (367:431:495)(367:431:495)) ) @@ -969,8 +1387,16 @@ (IOPATH C0 F0 (367:431:495)(367:431:495)) (IOPATH B0 F0 (367:431:495)(367:431:495)) (IOPATH A0 F0 (367:431:495)(367:431:495)) + (IOPATH CLK Q0 (392:422:452)(392:422:452)) ) ) + (TIMINGCHECK + (SETUPHOLD M0 (posedge CLK) (256:302:348)(-105:-71:-37)) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1250:1250:1250)) + (WIDTH (negedge CLK) (1250:1250:1250)) + ) ) (CELL (CELLTYPE "SLICE_74") @@ -986,19 +1412,14 @@ (IOPATH B0 F0 (367:431:495)(367:431:495)) (IOPATH A0 F0 (367:431:495)(367:431:495)) (IOPATH CLK Q0 (392:422:452)(392:422:452)) - (IOPATH CLK Q1 (392:422:452)(392:422:452)) ) ) (TIMINGCHECK - (WIDTH (posedge LSR) (4000:4000:4000)) - (WIDTH (negedge LSR) (4000:4000:4000)) (WIDTH (posedge CLK) (1250:1250:1250)) (WIDTH (negedge CLK) (1250:1250:1250)) ) (TIMINGCHECK - (SETUPHOLD M1 (negedge CLK) (256:302:348)(-105:-71:-37)) (SETUPHOLD M0 (negedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD LSR (negedge CLK) (236:260:285)(-236:-194:-152)) ) ) (CELL @@ -1006,31 +1427,20 @@ (INSTANCE SLICE_75) (DELAY (ABSOLUTE - (IOPATH D1 F1 (367:431:495)(367:431:495)) - (IOPATH C1 F1 (367:431:495)(367:431:495)) (IOPATH B1 F1 (367:431:495)(367:431:495)) (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH C0 F0 (367:431:495)(367:431:495)) (IOPATH B0 F0 (367:431:495)(367:431:495)) (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) - (IOPATH CLK Q1 (392:422:452)(392:422:452)) ) ) - (TIMINGCHECK - (SETUPHOLD M1 (posedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD M0 (posedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD CE (posedge CLK) (229:255:282)(-99:-89:-79)) - ) - (TIMINGCHECK - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) - ) ) (CELL (CELLTYPE "SLICE_76") (INSTANCE SLICE_76) (DELAY (ABSOLUTE + (IOPATH D1 F1 (367:431:495)(367:431:495)) (IOPATH C1 F1 (367:431:495)(367:431:495)) (IOPATH B1 F1 (367:431:495)(367:431:495)) (IOPATH A1 F1 (367:431:495)(367:431:495)) @@ -1038,21 +1448,8 @@ (IOPATH C0 F0 (367:431:495)(367:431:495)) (IOPATH B0 F0 (367:431:495)(367:431:495)) (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) - (IOPATH CLK Q1 (392:422:452)(392:422:452)) ) ) - (TIMINGCHECK - (WIDTH (posedge LSR) (4000:4000:4000)) - (WIDTH (negedge LSR) (4000:4000:4000)) - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) - ) - (TIMINGCHECK - (SETUPHOLD M1 (negedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD M0 (negedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD LSR (negedge CLK) (236:260:285)(-236:-194:-152)) - ) ) (CELL (CELLTYPE "SLICE_77") @@ -1063,8 +1460,6 @@ (IOPATH C1 F1 (367:431:495)(367:431:495)) (IOPATH B1 F1 (367:431:495)(367:431:495)) (IOPATH A1 F1 (367:431:495)(367:431:495)) - (IOPATH D0 F0 (367:431:495)(367:431:495)) - (IOPATH C0 F0 (367:431:495)(367:431:495)) (IOPATH B0 F0 (367:431:495)(367:431:495)) (IOPATH A0 F0 (367:431:495)(367:431:495)) ) @@ -1079,56 +1474,33 @@ (IOPATH C1 F1 (367:431:495)(367:431:495)) (IOPATH B1 F1 (367:431:495)(367:431:495)) (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH C0 F0 (367:431:495)(367:431:495)) (IOPATH B0 F0 (367:431:495)(367:431:495)) (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) - (IOPATH CLK Q1 (392:422:452)(392:422:452)) ) ) - (TIMINGCHECK - (SETUPHOLD M1 (posedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD M0 (posedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD CE (posedge CLK) (229:255:282)(-99:-89:-79)) - ) - (TIMINGCHECK - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) - ) ) (CELL (CELLTYPE "SLICE_79") (INSTANCE SLICE_79) (DELAY (ABSOLUTE - (IOPATH C1 F1 (367:431:495)(367:431:495)) (IOPATH B1 F1 (367:431:495)(367:431:495)) (IOPATH A1 F1 (367:431:495)(367:431:495)) - (IOPATH D0 F0 (367:431:495)(367:431:495)) (IOPATH C0 F0 (367:431:495)(367:431:495)) (IOPATH B0 F0 (367:431:495)(367:431:495)) (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) - (IOPATH CLK Q1 (392:422:452)(392:422:452)) ) ) - (TIMINGCHECK - (SETUPHOLD M1 (posedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD M0 (posedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD CE (posedge CLK) (229:255:282)(-99:-89:-79)) - ) - (TIMINGCHECK - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) - ) ) (CELL (CELLTYPE "SLICE_80") (INSTANCE SLICE_80) (DELAY (ABSOLUTE + (IOPATH C1 F1 (367:431:495)(367:431:495)) (IOPATH B1 F1 (367:431:495)(367:431:495)) (IOPATH A1 F1 (367:431:495)(367:431:495)) - (IOPATH D0 F0 (367:431:495)(367:431:495)) (IOPATH C0 F0 (367:431:495)(367:431:495)) (IOPATH B0 F0 (367:431:495)(367:431:495)) (IOPATH A0 F0 (367:431:495)(367:431:495)) @@ -1140,63 +1512,37 @@ (INSTANCE SLICE_81) (DELAY (ABSOLUTE + (IOPATH C1 F1 (367:431:495)(367:431:495)) (IOPATH B1 F1 (367:431:495)(367:431:495)) (IOPATH A1 F1 (367:431:495)(367:431:495)) - (IOPATH D0 F0 (367:431:495)(367:431:495)) (IOPATH C0 F0 (367:431:495)(367:431:495)) (IOPATH B0 F0 (367:431:495)(367:431:495)) (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) - (IOPATH CLK Q1 (392:422:452)(392:422:452)) ) ) - (TIMINGCHECK - (SETUPHOLD M1 (posedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD M0 (posedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD CE (posedge CLK) (229:255:282)(-99:-89:-79)) - ) - (TIMINGCHECK - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) - ) ) (CELL (CELLTYPE "SLICE_82") (INSTANCE SLICE_82) (DELAY (ABSOLUTE - (IOPATH D1 F1 (367:431:495)(367:431:495)) (IOPATH C1 F1 (367:431:495)(367:431:495)) (IOPATH B1 F1 (367:431:495)(367:431:495)) (IOPATH A1 F1 (367:431:495)(367:431:495)) + (IOPATH C0 F0 (367:431:495)(367:431:495)) (IOPATH B0 F0 (367:431:495)(367:431:495)) (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) - (IOPATH CLK Q1 (392:422:452)(392:422:452)) ) ) - (TIMINGCHECK - (WIDTH (posedge LSR) (4000:4000:4000)) - (WIDTH (negedge LSR) (4000:4000:4000)) - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) - ) - (TIMINGCHECK - (SETUPHOLD M1 (negedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD M0 (negedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD LSR (negedge CLK) (236:260:285)(-236:-194:-152)) - ) ) (CELL (CELLTYPE "SLICE_83") (INSTANCE SLICE_83) (DELAY (ABSOLUTE - (IOPATH D1 F1 (367:431:495)(367:431:495)) (IOPATH C1 F1 (367:431:495)(367:431:495)) (IOPATH B1 F1 (367:431:495)(367:431:495)) (IOPATH A1 F1 (367:431:495)(367:431:495)) - (IOPATH D0 F0 (367:431:495)(367:431:495)) (IOPATH C0 F0 (367:431:495)(367:431:495)) (IOPATH B0 F0 (367:431:495)(367:431:495)) (IOPATH A0 F0 (367:431:495)(367:431:495)) @@ -1208,26 +1554,14 @@ (INSTANCE SLICE_84) (DELAY (ABSOLUTE - (IOPATH C1 F1 (367:431:495)(367:431:495)) (IOPATH B1 F1 (367:431:495)(367:431:495)) (IOPATH A1 F1 (367:431:495)(367:431:495)) (IOPATH D0 F0 (367:431:495)(367:431:495)) (IOPATH C0 F0 (367:431:495)(367:431:495)) (IOPATH B0 F0 (367:431:495)(367:431:495)) (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) - (IOPATH CLK Q1 (392:422:452)(392:422:452)) ) ) - (TIMINGCHECK - (SETUPHOLD M1 (posedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD M0 (posedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD CE (posedge CLK) (229:255:282)(-99:-89:-79)) - ) - (TIMINGCHECK - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) - ) ) (CELL (CELLTYPE "SLICE_85") @@ -1238,685 +1572,36 @@ (IOPATH C1 F1 (367:431:495)(367:431:495)) (IOPATH B1 F1 (367:431:495)(367:431:495)) (IOPATH A1 F1 (367:431:495)(367:431:495)) - (IOPATH D0 F0 (367:431:495)(367:431:495)) - (IOPATH C0 F0 (367:431:495)(367:431:495)) (IOPATH B0 F0 (367:431:495)(367:431:495)) (IOPATH A0 F0 (367:431:495)(367:431:495)) ) ) ) - (CELL - (CELLTYPE "SLICE_86") - (INSTANCE SLICE_86) - (DELAY - (ABSOLUTE - (IOPATH C1 F1 (367:431:495)(367:431:495)) - (IOPATH B1 F1 (367:431:495)(367:431:495)) - (IOPATH A1 F1 (367:431:495)(367:431:495)) - (IOPATH D0 F0 (367:431:495)(367:431:495)) - (IOPATH C0 F0 (367:431:495)(367:431:495)) - (IOPATH B0 F0 (367:431:495)(367:431:495)) - (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) - (IOPATH CLK Q1 (392:422:452)(392:422:452)) - ) - ) - (TIMINGCHECK - (SETUPHOLD M1 (posedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD M0 (posedge CLK) (256:302:348)(-105:-71:-37)) - ) - (TIMINGCHECK - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) - ) - ) - (CELL - (CELLTYPE "SLICE_87") - (INSTANCE SLICE_87) - (DELAY - (ABSOLUTE - (IOPATH D1 F1 (367:431:495)(367:431:495)) - (IOPATH C1 F1 (367:431:495)(367:431:495)) - (IOPATH B1 F1 (367:431:495)(367:431:495)) - (IOPATH A1 F1 (367:431:495)(367:431:495)) - (IOPATH B0 F0 (367:431:495)(367:431:495)) - (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) - (IOPATH CLK Q1 (392:422:452)(392:422:452)) - ) - ) - (TIMINGCHECK - (WIDTH (posedge LSR) (4000:4000:4000)) - (WIDTH (negedge LSR) (4000:4000:4000)) - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) - ) - (TIMINGCHECK - (SETUPHOLD M1 (negedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD M0 (negedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD LSR (negedge CLK) (236:260:285)(-236:-194:-152)) - ) - ) - (CELL - (CELLTYPE "SLICE_88") - (INSTANCE SLICE_88) - (DELAY - (ABSOLUTE - (IOPATH D1 F1 (367:431:495)(367:431:495)) - (IOPATH C1 F1 (367:431:495)(367:431:495)) - (IOPATH B1 F1 (367:431:495)(367:431:495)) - (IOPATH A1 F1 (367:431:495)(367:431:495)) - (IOPATH D0 F0 (367:431:495)(367:431:495)) - (IOPATH C0 F0 (367:431:495)(367:431:495)) - (IOPATH B0 F0 (367:431:495)(367:431:495)) - (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) - (IOPATH CLK Q1 (392:422:452)(392:422:452)) - ) - ) - (TIMINGCHECK - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) - ) - (TIMINGCHECK - (SETUPHOLD M1 (negedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD M0 (negedge CLK) (256:302:348)(-105:-71:-37)) - ) - ) - (CELL - (CELLTYPE "SLICE_89") - (INSTANCE SLICE_89) - (DELAY - (ABSOLUTE - (IOPATH D1 F1 (367:431:495)(367:431:495)) - (IOPATH C1 F1 (367:431:495)(367:431:495)) - (IOPATH B1 F1 (367:431:495)(367:431:495)) - (IOPATH A1 F1 (367:431:495)(367:431:495)) - (IOPATH D0 F0 (367:431:495)(367:431:495)) - (IOPATH C0 F0 (367:431:495)(367:431:495)) - (IOPATH B0 F0 (367:431:495)(367:431:495)) - (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) - (IOPATH CLK Q1 (392:422:452)(392:422:452)) - ) - ) - (TIMINGCHECK - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) - ) - (TIMINGCHECK - (SETUPHOLD M1 (negedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD M0 (negedge CLK) (256:302:348)(-105:-71:-37)) - ) - ) - (CELL - (CELLTYPE "SLICE_90") - (INSTANCE SLICE_90) - (DELAY - (ABSOLUTE - (IOPATH D1 F1 (367:431:495)(367:431:495)) - (IOPATH C1 F1 (367:431:495)(367:431:495)) - (IOPATH B1 F1 (367:431:495)(367:431:495)) - (IOPATH A1 F1 (367:431:495)(367:431:495)) - (IOPATH C0 F0 (367:431:495)(367:431:495)) - (IOPATH B0 F0 (367:431:495)(367:431:495)) - (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) - (IOPATH CLK Q1 (392:422:452)(392:422:452)) - ) - ) - (TIMINGCHECK - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) - ) - (TIMINGCHECK - (SETUPHOLD M1 (negedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD M0 (negedge CLK) (256:302:348)(-105:-71:-37)) - ) - ) - (CELL - (CELLTYPE "SLICE_91") - (INSTANCE SLICE_91) - (DELAY - (ABSOLUTE - (IOPATH C1 F1 (367:431:495)(367:431:495)) - (IOPATH B1 F1 (367:431:495)(367:431:495)) - (IOPATH A1 F1 (367:431:495)(367:431:495)) - (IOPATH D0 F0 (367:431:495)(367:431:495)) - (IOPATH C0 F0 (367:431:495)(367:431:495)) - (IOPATH B0 F0 (367:431:495)(367:431:495)) - (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) - (IOPATH CLK Q1 (392:422:452)(392:422:452)) - ) - ) - (TIMINGCHECK - (WIDTH (posedge LSR) (4000:4000:4000)) - (WIDTH (negedge LSR) (4000:4000:4000)) - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) - ) - (TIMINGCHECK - (SETUPHOLD M1 (negedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD M0 (negedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD LSR (negedge CLK) (236:260:285)(-236:-194:-152)) - ) - ) - (CELL - (CELLTYPE "SLICE_92") - (INSTANCE SLICE_92) - (DELAY - (ABSOLUTE - (IOPATH D1 F1 (367:431:495)(367:431:495)) - (IOPATH C1 F1 (367:431:495)(367:431:495)) - (IOPATH B1 F1 (367:431:495)(367:431:495)) - (IOPATH A1 F1 (367:431:495)(367:431:495)) - (IOPATH D0 F0 (367:431:495)(367:431:495)) - (IOPATH C0 F0 (367:431:495)(367:431:495)) - (IOPATH B0 F0 (367:431:495)(367:431:495)) - (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) - (IOPATH CLK Q1 (392:422:452)(392:422:452)) - ) - ) - (TIMINGCHECK - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) - ) - (TIMINGCHECK - (SETUPHOLD M1 (negedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD M0 (negedge CLK) (256:302:348)(-105:-71:-37)) - ) - ) - (CELL - (CELLTYPE "SLICE_93") - (INSTANCE SLICE_93) - (DELAY - (ABSOLUTE - (IOPATH B1 F1 (367:431:495)(367:431:495)) - (IOPATH A1 F1 (367:431:495)(367:431:495)) - (IOPATH C0 F0 (367:431:495)(367:431:495)) - (IOPATH B0 F0 (367:431:495)(367:431:495)) - (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) - (IOPATH CLK Q1 (392:422:452)(392:422:452)) - ) - ) - (TIMINGCHECK - (SETUPHOLD M1 (posedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD M0 (posedge CLK) (256:302:348)(-105:-71:-37)) - ) - (TIMINGCHECK - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) - ) - ) - (CELL - (CELLTYPE "SLICE_94") - (INSTANCE SLICE_94) - (DELAY - (ABSOLUTE - (IOPATH B1 F1 (367:431:495)(367:431:495)) - (IOPATH A1 F1 (367:431:495)(367:431:495)) - (IOPATH D0 F0 (367:431:495)(367:431:495)) - (IOPATH C0 F0 (367:431:495)(367:431:495)) - (IOPATH B0 F0 (367:431:495)(367:431:495)) - (IOPATH A0 F0 (367:431:495)(367:431:495)) - ) - ) - ) - (CELL - (CELLTYPE "SLICE_95") - (INSTANCE SLICE_95) - (DELAY - (ABSOLUTE - (IOPATH D1 F1 (367:431:495)(367:431:495)) - (IOPATH C1 F1 (367:431:495)(367:431:495)) - (IOPATH B1 F1 (367:431:495)(367:431:495)) - (IOPATH A1 F1 (367:431:495)(367:431:495)) - (IOPATH D0 F0 (367:431:495)(367:431:495)) - (IOPATH C0 F0 (367:431:495)(367:431:495)) - (IOPATH B0 F0 (367:431:495)(367:431:495)) - (IOPATH A0 F0 (367:431:495)(367:431:495)) - ) - ) - ) - (CELL - (CELLTYPE "SLICE_96") - (INSTANCE SLICE_96) - (DELAY - (ABSOLUTE - (IOPATH B1 F1 (367:431:495)(367:431:495)) - (IOPATH A1 F1 (367:431:495)(367:431:495)) - (IOPATH D0 F0 (367:431:495)(367:431:495)) - (IOPATH C0 F0 (367:431:495)(367:431:495)) - (IOPATH B0 F0 (367:431:495)(367:431:495)) - (IOPATH A0 F0 (367:431:495)(367:431:495)) - ) - ) - ) - (CELL - (CELLTYPE "SLICE_97") - (INSTANCE SLICE_97) - (DELAY - (ABSOLUTE - (IOPATH C1 F1 (367:431:495)(367:431:495)) - (IOPATH B1 F1 (367:431:495)(367:431:495)) - (IOPATH A1 F1 (367:431:495)(367:431:495)) - (IOPATH B0 F0 (367:431:495)(367:431:495)) - (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) - (IOPATH CLK Q1 (392:422:452)(392:422:452)) - ) - ) - (TIMINGCHECK - (SETUPHOLD M1 (posedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD M0 (posedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD CE (posedge CLK) (229:255:282)(-99:-89:-79)) - ) - (TIMINGCHECK - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) - ) - ) - (CELL - (CELLTYPE "SLICE_98") - (INSTANCE SLICE_98) - (DELAY - (ABSOLUTE - (IOPATH B1 F1 (367:431:495)(367:431:495)) - (IOPATH A1 F1 (367:431:495)(367:431:495)) - (IOPATH C0 F0 (367:431:495)(367:431:495)) - (IOPATH B0 F0 (367:431:495)(367:431:495)) - (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) - (IOPATH CLK Q1 (392:422:452)(392:422:452)) - ) - ) - (TIMINGCHECK - (SETUPHOLD M1 (posedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD M0 (posedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD CE (posedge CLK) (229:255:282)(-99:-89:-79)) - ) - (TIMINGCHECK - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) - ) - ) - (CELL - (CELLTYPE "SLICE_99") - (INSTANCE SLICE_99) - (DELAY - (ABSOLUTE - (IOPATH D1 F1 (367:431:495)(367:431:495)) - (IOPATH C1 F1 (367:431:495)(367:431:495)) - (IOPATH B1 F1 (367:431:495)(367:431:495)) - (IOPATH A1 F1 (367:431:495)(367:431:495)) - (IOPATH C0 F0 (367:431:495)(367:431:495)) - (IOPATH B0 F0 (367:431:495)(367:431:495)) - (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) - ) - ) - (TIMINGCHECK - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) - ) - (TIMINGCHECK - (SETUPHOLD M0 (negedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD CE (negedge CLK) (247:277:307)(-116:-104:-92)) - ) - ) - (CELL - (CELLTYPE "SLICE_100") - (INSTANCE SLICE_100) - (DELAY - (ABSOLUTE - (IOPATH D1 F1 (367:431:495)(367:431:495)) - (IOPATH C1 F1 (367:431:495)(367:431:495)) - (IOPATH B1 F1 (367:431:495)(367:431:495)) - (IOPATH A1 F1 (367:431:495)(367:431:495)) - (IOPATH C0 F0 (367:431:495)(367:431:495)) - (IOPATH B0 F0 (367:431:495)(367:431:495)) - (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) - (IOPATH CLK Q1 (392:422:452)(392:422:452)) - ) - ) - (TIMINGCHECK - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) - ) - (TIMINGCHECK - (SETUPHOLD M1 (negedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD M0 (negedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD CE (negedge CLK) (247:277:307)(-116:-104:-92)) - ) - ) - (CELL - (CELLTYPE "SLICE_101") - (INSTANCE SLICE_101) - (DELAY - (ABSOLUTE - (IOPATH C1 F1 (367:431:495)(367:431:495)) - (IOPATH B1 F1 (367:431:495)(367:431:495)) - (IOPATH A1 F1 (367:431:495)(367:431:495)) - (IOPATH C0 F0 (367:431:495)(367:431:495)) - (IOPATH B0 F0 (367:431:495)(367:431:495)) - (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) - (IOPATH CLK Q1 (392:422:452)(392:422:452)) - ) - ) - (TIMINGCHECK - (SETUPHOLD M1 (posedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD M0 (posedge CLK) (256:302:348)(-105:-71:-37)) - ) - (TIMINGCHECK - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) - ) - ) - (CELL - (CELLTYPE "SLICE_102") - (INSTANCE SLICE_102) - (DELAY - (ABSOLUTE - (IOPATH C1 F1 (367:431:495)(367:431:495)) - (IOPATH B1 F1 (367:431:495)(367:431:495)) - (IOPATH A1 F1 (367:431:495)(367:431:495)) - (IOPATH C0 F0 (367:431:495)(367:431:495)) - (IOPATH B0 F0 (367:431:495)(367:431:495)) - (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) - (IOPATH CLK Q1 (392:422:452)(392:422:452)) - ) - ) - (TIMINGCHECK - (SETUPHOLD M1 (posedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD M0 (posedge CLK) (256:302:348)(-105:-71:-37)) - ) - (TIMINGCHECK - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) - ) - ) - (CELL - (CELLTYPE "SLICE_103") - (INSTANCE SLICE_103) - (DELAY - (ABSOLUTE - (IOPATH C1 F1 (367:431:495)(367:431:495)) - (IOPATH B1 F1 (367:431:495)(367:431:495)) - (IOPATH A1 F1 (367:431:495)(367:431:495)) - (IOPATH C0 F0 (367:431:495)(367:431:495)) - (IOPATH B0 F0 (367:431:495)(367:431:495)) - (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) - (IOPATH CLK Q1 (392:422:452)(392:422:452)) - ) - ) - (TIMINGCHECK - (SETUPHOLD M1 (posedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD M0 (posedge CLK) (256:302:348)(-105:-71:-37)) - ) - (TIMINGCHECK - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) - ) - ) - (CELL - (CELLTYPE "SLICE_104") - (INSTANCE SLICE_104) - (DELAY - (ABSOLUTE - (IOPATH B1 F1 (367:431:495)(367:431:495)) - (IOPATH A1 F1 (367:431:495)(367:431:495)) - (IOPATH C0 F0 (367:431:495)(367:431:495)) - (IOPATH B0 F0 (367:431:495)(367:431:495)) - (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) - (IOPATH CLK Q1 (392:422:452)(392:422:452)) - ) - ) - (TIMINGCHECK - (WIDTH (posedge LSR) (4000:4000:4000)) - (WIDTH (negedge LSR) (4000:4000:4000)) - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) - ) - (TIMINGCHECK - (SETUPHOLD M1 (negedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD M0 (negedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD LSR (negedge CLK) (236:260:285)(-236:-194:-152)) - ) - ) - (CELL - (CELLTYPE "SLICE_105") - (INSTANCE SLICE_105) - (DELAY - (ABSOLUTE - (IOPATH B1 F1 (367:431:495)(367:431:495)) - (IOPATH A1 F1 (367:431:495)(367:431:495)) - (IOPATH D0 F0 (367:431:495)(367:431:495)) - (IOPATH C0 F0 (367:431:495)(367:431:495)) - (IOPATH B0 F0 (367:431:495)(367:431:495)) - (IOPATH A0 F0 (367:431:495)(367:431:495)) - ) - ) - ) - (CELL - (CELLTYPE "SLICE_106") - (INSTANCE SLICE_106) - (DELAY - (ABSOLUTE - (IOPATH B1 F1 (367:431:495)(367:431:495)) - (IOPATH A1 F1 (367:431:495)(367:431:495)) - (IOPATH B0 F0 (367:431:495)(367:431:495)) - (IOPATH A0 F0 (367:431:495)(367:431:495)) - (IOPATH CLK Q0 (392:422:452)(392:422:452)) - (IOPATH CLK Q1 (392:422:452)(392:422:452)) - ) - ) - (TIMINGCHECK - (SETUPHOLD M1 (posedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD M0 (posedge CLK) (256:302:348)(-105:-71:-37)) - (SETUPHOLD CE (posedge CLK) (229:255:282)(-99:-89:-79)) - ) - (TIMINGCHECK - (WIDTH (posedge CLK) (1250:1250:1250)) - (WIDTH (negedge CLK) (1250:1250:1250)) - ) - ) - (CELL - (CELLTYPE "RD_7_") - (INSTANCE RD\[7\]_I) - (DELAY - (ABSOLUTE - (IOPATH PADDT RD7 (2349:3502:4656)(2349:3502:4656)(2349:3502:4656)(2349:3502:4656) - (2349:3502:4656)(2349:3502:4656)) - (IOPATH PADDO RD7 (3220:3334:3448)(3220:3334:3448)) - (IOPATH RD7 PADDI (1223:1297:1372)(1223:1297:1372)) - ) - ) - (TIMINGCHECK - (WIDTH (posedge RD7) (3330:3330:3330)) - (WIDTH (negedge RD7) (3330:3330:3330)) - ) - ) - (CELL - (CELLTYPE "RD_6_") - (INSTANCE RD\[6\]_I) - (DELAY - (ABSOLUTE - (IOPATH PADDT RD6 (2349:3502:4656)(2349:3502:4656)(2349:3502:4656)(2349:3502:4656) - (2349:3502:4656)(2349:3502:4656)) - (IOPATH PADDO RD6 (3220:3334:3448)(3220:3334:3448)) - (IOPATH RD6 PADDI (1223:1297:1372)(1223:1297:1372)) - ) - ) - (TIMINGCHECK - (WIDTH (posedge RD6) (3330:3330:3330)) - (WIDTH (negedge RD6) (3330:3330:3330)) - ) - ) - (CELL - (CELLTYPE "RD_5_") - (INSTANCE RD\[5\]_I) - (DELAY - (ABSOLUTE - (IOPATH PADDT RD5 (2349:3502:4656)(2349:3502:4656)(2349:3502:4656)(2349:3502:4656) - (2349:3502:4656)(2349:3502:4656)) - (IOPATH PADDO RD5 (3220:3334:3448)(3220:3334:3448)) - (IOPATH RD5 PADDI (1223:1297:1372)(1223:1297:1372)) - ) - ) - (TIMINGCHECK - (WIDTH (posedge RD5) (3330:3330:3330)) - (WIDTH (negedge RD5) (3330:3330:3330)) - ) - ) - (CELL - (CELLTYPE "RD_4_") - (INSTANCE RD\[4\]_I) - (DELAY - (ABSOLUTE - (IOPATH PADDT RD4 (2349:3502:4656)(2349:3502:4656)(2349:3502:4656)(2349:3502:4656) - (2349:3502:4656)(2349:3502:4656)) - (IOPATH PADDO RD4 (3220:3334:3448)(3220:3334:3448)) - (IOPATH RD4 PADDI (1223:1297:1372)(1223:1297:1372)) - ) - ) - (TIMINGCHECK - (WIDTH (posedge RD4) (3330:3330:3330)) - (WIDTH (negedge RD4) (3330:3330:3330)) - ) - ) - (CELL - (CELLTYPE "RD_3_") - (INSTANCE RD\[3\]_I) - (DELAY - (ABSOLUTE - (IOPATH PADDT RD3 (2349:3502:4656)(2349:3502:4656)(2349:3502:4656)(2349:3502:4656) - (2349:3502:4656)(2349:3502:4656)) - (IOPATH PADDO RD3 (3220:3334:3448)(3220:3334:3448)) - (IOPATH RD3 PADDI (1223:1297:1372)(1223:1297:1372)) - ) - ) - (TIMINGCHECK - (WIDTH (posedge RD3) (3330:3330:3330)) - (WIDTH (negedge RD3) (3330:3330:3330)) - ) - ) - (CELL - (CELLTYPE "RD_2_") - (INSTANCE RD\[2\]_I) - (DELAY - (ABSOLUTE - (IOPATH PADDT RD2 (2349:3502:4656)(2349:3502:4656)(2349:3502:4656)(2349:3502:4656) - (2349:3502:4656)(2349:3502:4656)) - (IOPATH PADDO RD2 (3220:3334:3448)(3220:3334:3448)) - (IOPATH RD2 PADDI (1223:1297:1372)(1223:1297:1372)) - ) - ) - (TIMINGCHECK - (WIDTH (posedge RD2) (3330:3330:3330)) - (WIDTH (negedge RD2) (3330:3330:3330)) - ) - ) - (CELL - (CELLTYPE "RD_1_") - (INSTANCE RD\[1\]_I) - (DELAY - (ABSOLUTE - (IOPATH PADDT RD1 (2349:3502:4656)(2349:3502:4656)(2349:3502:4656)(2349:3502:4656) - (2349:3502:4656)(2349:3502:4656)) - (IOPATH PADDO RD1 (3220:3334:3448)(3220:3334:3448)) - (IOPATH RD1 PADDI (1223:1297:1372)(1223:1297:1372)) - ) - ) - (TIMINGCHECK - (WIDTH (posedge RD1) (3330:3330:3330)) - (WIDTH (negedge RD1) (3330:3330:3330)) - ) - ) (CELL (CELLTYPE "RD_0_") (INSTANCE RD\[0\]_I) (DELAY (ABSOLUTE - (IOPATH PADDT RD0 (2349:3502:4656)(2349:3502:4656)(2349:3502:4656)(2349:3502:4656) - (2349:3502:4656)(2349:3502:4656)) - (IOPATH PADDO RD0 (3220:3334:3448)(3220:3334:3448)) - (IOPATH RD0 PADDI (1223:1297:1372)(1223:1297:1372)) + (IOPATH IOLDO RD0 (2927:3031:3136)(2927:3031:3136)) + (IOPATH PADDT RD0 (2844:3155:3467)(2844:3155:3467)(2844:3155:3467)(2844:3155:3467) + (2844:3155:3467)(2844:3155:3467)) + ) + ) + ) + (CELL + (CELLTYPE "RD_0__MGIOL") + (INSTANCE RD\[0\]_MGIOL) + (DELAY + (ABSOLUTE + (IOPATH CLK IOLDO (546:556:567)(546:556:567)) ) ) (TIMINGCHECK - (WIDTH (posedge RD0) (3330:3330:3330)) - (WIDTH (negedge RD0) (3330:3330:3330)) + (WIDTH (posedge CLK) (1855:1855:1855)) + (WIDTH (negedge CLK) (1855:1855:1855)) ) - ) - (CELL - (CELLTYPE "Dout_7_") - (INSTANCE Dout\[7\]_I) - (DELAY - (ABSOLUTE - (IOPATH PADDO Dout7 (3220:3334:3448)(3220:3334:3448)) - ) - ) - ) - (CELL - (CELLTYPE "Dout_6_") - (INSTANCE Dout\[6\]_I) - (DELAY - (ABSOLUTE - (IOPATH PADDO Dout6 (3220:3334:3448)(3220:3334:3448)) - ) - ) - ) - (CELL - (CELLTYPE "Dout_5_") - (INSTANCE Dout\[5\]_I) - (DELAY - (ABSOLUTE - (IOPATH PADDO Dout5 (3220:3334:3448)(3220:3334:3448)) - ) - ) - ) - (CELL - (CELLTYPE "Dout_4_") - (INSTANCE Dout\[4\]_I) - (DELAY - (ABSOLUTE - (IOPATH PADDO Dout4 (3220:3334:3448)(3220:3334:3448)) - ) - ) - ) - (CELL - (CELLTYPE "Dout_3_") - (INSTANCE Dout\[3\]_I) - (DELAY - (ABSOLUTE - (IOPATH PADDO Dout3 (3220:3334:3448)(3220:3334:3448)) - ) - ) - ) - (CELL - (CELLTYPE "Dout_2_") - (INSTANCE Dout\[2\]_I) - (DELAY - (ABSOLUTE - (IOPATH PADDO Dout2 (3220:3334:3448)(3220:3334:3448)) - ) - ) - ) - (CELL - (CELLTYPE "Dout_1_") - (INSTANCE Dout\[1\]_I) - (DELAY - (ABSOLUTE - (IOPATH PADDO Dout1 (3220:3334:3448)(3220:3334:3448)) - ) + (TIMINGCHECK + (SETUPHOLD OPOS (negedge CLK) (153:153:153)(-86:-86:-86)) ) ) (CELL @@ -1924,232 +1609,7 @@ (INSTANCE Dout\[0\]_I) (DELAY (ABSOLUTE - (IOPATH PADDO Dout0 (3220:3334:3448)(3220:3334:3448)) - ) - ) - ) - (CELL - (CELLTYPE "LED") - (INSTANCE LED_I) - (DELAY - (ABSOLUTE - (IOPATH PADDO LED (3220:3334:3448)(3220:3334:3448)) - ) - ) - ) - (CELL - (CELLTYPE "RBA_1_") - (INSTANCE RBA\[1\]_I) - (DELAY - (ABSOLUTE - (IOPATH PADDO RBA1 (3220:3334:3448)(3220:3334:3448)) - ) - ) - ) - (CELL - (CELLTYPE "RBA_0_") - (INSTANCE RBA\[0\]_I) - (DELAY - (ABSOLUTE - (IOPATH PADDO RBA0 (3220:3334:3448)(3220:3334:3448)) - ) - ) - ) - (CELL - (CELLTYPE "RA_11_") - (INSTANCE RA\[11\]_I) - (DELAY - (ABSOLUTE - (IOPATH PADDO RA11 (3220:3334:3448)(3220:3334:3448)) - ) - ) - ) - (CELL - (CELLTYPE "RA_10_") - (INSTANCE RA\[10\]_I) - (DELAY - (ABSOLUTE - (IOPATH PADDO RA10 (3220:3334:3448)(3220:3334:3448)) - ) - ) - ) - (CELL - (CELLTYPE "RA_9_") - (INSTANCE RA\[9\]_I) - (DELAY - (ABSOLUTE - (IOPATH PADDO RA9 (3220:3334:3448)(3220:3334:3448)) - ) - ) - ) - (CELL - (CELLTYPE "RA_8_") - (INSTANCE RA\[8\]_I) - (DELAY - (ABSOLUTE - (IOPATH PADDO RA8 (3220:3334:3448)(3220:3334:3448)) - ) - ) - ) - (CELL - (CELLTYPE "RA_7_") - (INSTANCE RA\[7\]_I) - (DELAY - (ABSOLUTE - (IOPATH PADDO RA7 (3220:3334:3448)(3220:3334:3448)) - ) - ) - ) - (CELL - (CELLTYPE "RA_6_") - (INSTANCE RA\[6\]_I) - (DELAY - (ABSOLUTE - (IOPATH PADDO RA6 (3220:3334:3448)(3220:3334:3448)) - ) - ) - ) - (CELL - (CELLTYPE "RA_5_") - (INSTANCE RA\[5\]_I) - (DELAY - (ABSOLUTE - (IOPATH PADDO RA5 (3220:3334:3448)(3220:3334:3448)) - ) - ) - ) - (CELL - (CELLTYPE "RA_4_") - (INSTANCE RA\[4\]_I) - (DELAY - (ABSOLUTE - (IOPATH PADDO RA4 (3220:3334:3448)(3220:3334:3448)) - ) - ) - ) - (CELL - (CELLTYPE "RA_3_") - (INSTANCE RA\[3\]_I) - (DELAY - (ABSOLUTE - (IOPATH PADDO RA3 (3220:3334:3448)(3220:3334:3448)) - ) - ) - ) - (CELL - (CELLTYPE "RA_2_") - (INSTANCE RA\[2\]_I) - (DELAY - (ABSOLUTE - (IOPATH PADDO RA2 (3220:3334:3448)(3220:3334:3448)) - ) - ) - ) - (CELL - (CELLTYPE "RA_1_") - (INSTANCE RA\[1\]_I) - (DELAY - (ABSOLUTE - (IOPATH PADDO RA1 (3220:3334:3448)(3220:3334:3448)) - ) - ) - ) - (CELL - (CELLTYPE "RA_0_") - (INSTANCE RA\[0\]_I) - (DELAY - (ABSOLUTE - (IOPATH PADDO RA0 (3220:3334:3448)(3220:3334:3448)) - ) - ) - ) - (CELL - (CELLTYPE "nRCS") - (INSTANCE nRCS_I) - (DELAY - (ABSOLUTE - (IOPATH PADDO nRCS (3220:3334:3448)(3220:3334:3448)) - ) - ) - ) - (CELL - (CELLTYPE "RCKE") - (INSTANCE RCKE_I) - (DELAY - (ABSOLUTE - (IOPATH PADDO RCKE (3220:3334:3448)(3220:3334:3448)) - ) - ) - ) - (CELL - (CELLTYPE "nRWE") - (INSTANCE nRWE_I) - (DELAY - (ABSOLUTE - (IOPATH PADDO nRWE (3220:3334:3448)(3220:3334:3448)) - ) - ) - ) - (CELL - (CELLTYPE "nRRAS") - (INSTANCE nRRAS_I) - (DELAY - (ABSOLUTE - (IOPATH PADDO nRRAS (3220:3334:3448)(3220:3334:3448)) - ) - ) - ) - (CELL - (CELLTYPE "nRCAS") - (INSTANCE nRCAS_I) - (DELAY - (ABSOLUTE - (IOPATH PADDO nRCAS (3220:3334:3448)(3220:3334:3448)) - ) - ) - ) - (CELL - (CELLTYPE "RDQMH") - (INSTANCE RDQMH_I) - (DELAY - (ABSOLUTE - (IOPATH PADDO RDQMH (3220:3334:3448)(3220:3334:3448)) - ) - ) - ) - (CELL - (CELLTYPE "RDQML") - (INSTANCE RDQML_I) - (DELAY - (ABSOLUTE - (IOPATH PADDO RDQML (3220:3334:3448)(3220:3334:3448)) - ) - ) - ) - (CELL - (CELLTYPE "nUFMCS") - (INSTANCE nUFMCS_I) - (DELAY - (ABSOLUTE - (IOPATH PADDO nUFMCS (3220:3334:3448)(3220:3334:3448)) - ) - ) - ) - (CELL - (CELLTYPE "UFMCLK") - (INSTANCE UFMCLK_I) - (DELAY - (ABSOLUTE - (IOPATH PADDO UFMCLK (3220:3334:3448)(3220:3334:3448)) - ) - ) - ) - (CELL - (CELLTYPE "UFMSDI") - (INSTANCE UFMSDI_I) - (DELAY - (ABSOLUTE - (IOPATH PADDO UFMSDI (3220:3334:3448)(3220:3334:3448)) + (IOPATH PADDO Dout0 (2927:3031:3136)(2927:3031:3136)) ) ) ) @@ -2158,7 +1618,7 @@ (INSTANCE PHI2_I) (DELAY (ABSOLUTE - (IOPATH PHI2 PADDI (1223:1297:1372)(1223:1297:1372)) + (IOPATH PHI2 PADDI (1007:1069:1132)(1007:1069:1132)) ) ) (TIMINGCHECK @@ -2167,133 +1627,990 @@ ) ) (CELL - (CELLTYPE "MAin_9_") - (INSTANCE MAin\[9\]_I) + (CELLTYPE "PHI2_MGIOL") + (INSTANCE PHI2_MGIOL) (DELAY (ABSOLUTE - (IOPATH MAin9 PADDI (1223:1297:1372)(1223:1297:1372)) + (IOPATH CLK IN (577:577:577)(577:577:577)) ) ) (TIMINGCHECK - (WIDTH (posedge MAin9) (3330:3330:3330)) - (WIDTH (negedge MAin9) (3330:3330:3330)) + (SETUPHOLD DI (posedge CLK) (595:595:595)(223:223:223)) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1855:1855:1855)) + (WIDTH (negedge CLK) (1855:1855:1855)) ) ) (CELL - (CELLTYPE "MAin_8_") - (INSTANCE MAin\[8\]_I) + (CELLTYPE "UFMSDO") + (INSTANCE UFMSDO_I) (DELAY (ABSOLUTE - (IOPATH MAin8 PADDI (1223:1297:1372)(1223:1297:1372)) + (IOPATH UFMSDO PADDI (1007:1069:1132)(1007:1069:1132)) ) ) (TIMINGCHECK - (WIDTH (posedge MAin8) (3330:3330:3330)) - (WIDTH (negedge MAin8) (3330:3330:3330)) + (WIDTH (posedge UFMSDO) (3330:3330:3330)) + (WIDTH (negedge UFMSDO) (3330:3330:3330)) ) ) (CELL - (CELLTYPE "MAin_7_") - (INSTANCE MAin\[7\]_I) + (CELLTYPE "UFMSDI") + (INSTANCE UFMSDI_I) (DELAY (ABSOLUTE - (IOPATH MAin7 PADDI (1223:1297:1372)(1223:1297:1372)) + (IOPATH IOLDO UFMSDI (2927:3031:3136)(2927:3031:3136)) ) ) - (TIMINGCHECK - (WIDTH (posedge MAin7) (3330:3330:3330)) - (WIDTH (negedge MAin7) (3330:3330:3330)) - ) ) (CELL - (CELLTYPE "MAin_6_") - (INSTANCE MAin\[6\]_I) + (CELLTYPE "UFMSDI_MGIOL") + (INSTANCE UFMSDI_MGIOL) (DELAY (ABSOLUTE - (IOPATH MAin6 PADDI (1223:1297:1372)(1223:1297:1372)) + (IOPATH CLK IOLDO (546:556:567)(546:556:567)) ) ) (TIMINGCHECK - (WIDTH (posedge MAin6) (3330:3330:3330)) - (WIDTH (negedge MAin6) (3330:3330:3330)) + (SETUPHOLD OPOS (posedge CLK) (153:153:153)(-86:-86:-86)) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1855:1855:1855)) + (WIDTH (negedge CLK) (1855:1855:1855)) ) ) (CELL - (CELLTYPE "MAin_5_") - (INSTANCE MAin\[5\]_I) + (CELLTYPE "UFMCLK") + (INSTANCE UFMCLK_I) (DELAY (ABSOLUTE - (IOPATH MAin5 PADDI (1223:1297:1372)(1223:1297:1372)) + (IOPATH IOLDO UFMCLK (2927:3031:3136)(2927:3031:3136)) ) ) - (TIMINGCHECK - (WIDTH (posedge MAin5) (3330:3330:3330)) - (WIDTH (negedge MAin5) (3330:3330:3330)) - ) ) (CELL - (CELLTYPE "MAin_4_") - (INSTANCE MAin\[4\]_I) + (CELLTYPE "UFMCLK_MGIOL") + (INSTANCE UFMCLK_MGIOL) (DELAY (ABSOLUTE - (IOPATH MAin4 PADDI (1223:1297:1372)(1223:1297:1372)) + (IOPATH CLK IOLDO (546:556:567)(546:556:567)) ) ) (TIMINGCHECK - (WIDTH (posedge MAin4) (3330:3330:3330)) - (WIDTH (negedge MAin4) (3330:3330:3330)) + (SETUPHOLD OPOS (posedge CLK) (153:153:153)(-86:-86:-86)) + (SETUPHOLD CE (posedge CLK) (47:47:47)(-36:-36:-36)) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1855:1855:1855)) + (WIDTH (negedge CLK) (1855:1855:1855)) ) ) (CELL - (CELLTYPE "MAin_3_") - (INSTANCE MAin\[3\]_I) + (CELLTYPE "nUFMCS") + (INSTANCE nUFMCS_I) (DELAY (ABSOLUTE - (IOPATH MAin3 PADDI (1223:1297:1372)(1223:1297:1372)) + (IOPATH IOLDO nUFMCS (2927:3031:3136)(2927:3031:3136)) ) ) - (TIMINGCHECK - (WIDTH (posedge MAin3) (3330:3330:3330)) - (WIDTH (negedge MAin3) (3330:3330:3330)) - ) ) (CELL - (CELLTYPE "MAin_2_") - (INSTANCE MAin\[2\]_I) + (CELLTYPE "nUFMCS_MGIOL") + (INSTANCE nUFMCS_MGIOL) (DELAY (ABSOLUTE - (IOPATH MAin2 PADDI (1223:1297:1372)(1223:1297:1372)) + (IOPATH CLK IOLDO (546:556:567)(546:556:567)) ) ) (TIMINGCHECK - (WIDTH (posedge MAin2) (3330:3330:3330)) - (WIDTH (negedge MAin2) (3330:3330:3330)) + (SETUPHOLD OPOS (posedge CLK) (153:153:153)(-86:-86:-86)) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1855:1855:1855)) + (WIDTH (negedge CLK) (1855:1855:1855)) ) ) (CELL - (CELLTYPE "MAin_1_") - (INSTANCE MAin\[1\]_I) + (CELLTYPE "RDQML") + (INSTANCE RDQML_I) (DELAY (ABSOLUTE - (IOPATH MAin1 PADDI (1223:1297:1372)(1223:1297:1372)) + (IOPATH PADDO RDQML (2927:3031:3136)(2927:3031:3136)) ) ) - (TIMINGCHECK - (WIDTH (posedge MAin1) (3330:3330:3330)) - (WIDTH (negedge MAin1) (3330:3330:3330)) - ) ) (CELL - (CELLTYPE "MAin_0_") - (INSTANCE MAin\[0\]_I) + (CELLTYPE "RDQMH") + (INSTANCE RDQMH_I) (DELAY (ABSOLUTE - (IOPATH MAin0 PADDI (1223:1297:1372)(1223:1297:1372)) + (IOPATH PADDO RDQMH (2927:3031:3136)(2927:3031:3136)) + ) + ) + ) + (CELL + (CELLTYPE "nRCAS") + (INSTANCE nRCAS_I) + (DELAY + (ABSOLUTE + (IOPATH IOLDO nRCAS (2927:3031:3136)(2927:3031:3136)) + ) + ) + ) + (CELL + (CELLTYPE "nRCAS_MGIOL") + (INSTANCE nRCAS_MGIOL) + (DELAY + (ABSOLUTE + (IOPATH CLK IOLDO (546:556:567)(546:556:567)) ) ) (TIMINGCHECK - (WIDTH (posedge MAin0) (3330:3330:3330)) - (WIDTH (negedge MAin0) (3330:3330:3330)) + (SETUPHOLD OPOS (posedge CLK) (153:153:153)(-86:-86:-86)) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1855:1855:1855)) + (WIDTH (negedge CLK) (1855:1855:1855)) + ) + ) + (CELL + (CELLTYPE "nRRAS") + (INSTANCE nRRAS_I) + (DELAY + (ABSOLUTE + (IOPATH IOLDO nRRAS (2927:3031:3136)(2927:3031:3136)) + ) + ) + ) + (CELL + (CELLTYPE "nRRAS_MGIOL") + (INSTANCE nRRAS_MGIOL) + (DELAY + (ABSOLUTE + (IOPATH CLK IOLDO (546:556:567)(546:556:567)) + ) + ) + (TIMINGCHECK + (SETUPHOLD OPOS (posedge CLK) (153:153:153)(-86:-86:-86)) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1855:1855:1855)) + (WIDTH (negedge CLK) (1855:1855:1855)) + ) + ) + (CELL + (CELLTYPE "nRWE") + (INSTANCE nRWE_I) + (DELAY + (ABSOLUTE + (IOPATH IOLDO nRWE (2927:3031:3136)(2927:3031:3136)) + ) + ) + ) + (CELL + (CELLTYPE "nRWE_MGIOL") + (INSTANCE nRWE_MGIOL) + (DELAY + (ABSOLUTE + (IOPATH CLK IOLDO (546:556:567)(546:556:567)) + ) + ) + (TIMINGCHECK + (SETUPHOLD OPOS (posedge CLK) (153:153:153)(-86:-86:-86)) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1855:1855:1855)) + (WIDTH (negedge CLK) (1855:1855:1855)) + ) + ) + (CELL + (CELLTYPE "RCKE") + (INSTANCE RCKE_I) + (DELAY + (ABSOLUTE + (IOPATH IOLDO RCKE (2927:3031:3136)(2927:3031:3136)) + ) + ) + ) + (CELL + (CELLTYPE "RCKE_MGIOL") + (INSTANCE RCKE_MGIOL) + (DELAY + (ABSOLUTE + (IOPATH CLK IOLDO (546:556:567)(546:556:567)) + ) + ) + (TIMINGCHECK + (SETUPHOLD OPOS (posedge CLK) (153:153:153)(-86:-86:-86)) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1855:1855:1855)) + (WIDTH (negedge CLK) (1855:1855:1855)) + ) + ) + (CELL + (CELLTYPE "RCLK") + (INSTANCE RCLK_I) + (DELAY + (ABSOLUTE + (IOPATH RCLK PADDI (1007:1069:1132)(1007:1069:1132)) + ) + ) + (TIMINGCHECK + (WIDTH (posedge RCLK) (3330:3330:3330)) + (WIDTH (negedge RCLK) (3330:3330:3330)) + ) + ) + (CELL + (CELLTYPE "nRCS") + (INSTANCE nRCS_I) + (DELAY + (ABSOLUTE + (IOPATH IOLDO nRCS (2927:3031:3136)(2927:3031:3136)) + ) + ) + ) + (CELL + (CELLTYPE "nRCS_MGIOL") + (INSTANCE nRCS_MGIOL) + (DELAY + (ABSOLUTE + (IOPATH CLK IOLDO (546:556:567)(546:556:567)) + ) + ) + (TIMINGCHECK + (SETUPHOLD OPOS (posedge CLK) (153:153:153)(-86:-86:-86)) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1855:1855:1855)) + (WIDTH (negedge CLK) (1855:1855:1855)) + ) + ) + (CELL + (CELLTYPE "RD_7_") + (INSTANCE RD\[7\]_I) + (DELAY + (ABSOLUTE + (IOPATH IOLDO RD7 (2927:3031:3136)(2927:3031:3136)) + (IOPATH PADDT RD7 (2844:3155:3467)(2844:3155:3467)(2844:3155:3467)(2844:3155:3467) + (2844:3155:3467)(2844:3155:3467)) + ) + ) + ) + (CELL + (CELLTYPE "RD_7__MGIOL") + (INSTANCE RD\[7\]_MGIOL) + (DELAY + (ABSOLUTE + (IOPATH CLK IOLDO (546:556:567)(546:556:567)) + ) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1855:1855:1855)) + (WIDTH (negedge CLK) (1855:1855:1855)) + ) + (TIMINGCHECK + (SETUPHOLD OPOS (negedge CLK) (153:153:153)(-86:-86:-86)) + ) + ) + (CELL + (CELLTYPE "RD_6_") + (INSTANCE RD\[6\]_I) + (DELAY + (ABSOLUTE + (IOPATH IOLDO RD6 (2927:3031:3136)(2927:3031:3136)) + (IOPATH PADDT RD6 (2844:3155:3467)(2844:3155:3467)(2844:3155:3467)(2844:3155:3467) + (2844:3155:3467)(2844:3155:3467)) + ) + ) + ) + (CELL + (CELLTYPE "RD_6__MGIOL") + (INSTANCE RD\[6\]_MGIOL) + (DELAY + (ABSOLUTE + (IOPATH CLK IOLDO (546:556:567)(546:556:567)) + ) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1855:1855:1855)) + (WIDTH (negedge CLK) (1855:1855:1855)) + ) + (TIMINGCHECK + (SETUPHOLD OPOS (negedge CLK) (153:153:153)(-86:-86:-86)) + ) + ) + (CELL + (CELLTYPE "RD_5_") + (INSTANCE RD\[5\]_I) + (DELAY + (ABSOLUTE + (IOPATH IOLDO RD5 (2927:3031:3136)(2927:3031:3136)) + (IOPATH PADDT RD5 (2844:3155:3467)(2844:3155:3467)(2844:3155:3467)(2844:3155:3467) + (2844:3155:3467)(2844:3155:3467)) + ) + ) + ) + (CELL + (CELLTYPE "RD_5__MGIOL") + (INSTANCE RD\[5\]_MGIOL) + (DELAY + (ABSOLUTE + (IOPATH CLK IOLDO (546:556:567)(546:556:567)) + ) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1855:1855:1855)) + (WIDTH (negedge CLK) (1855:1855:1855)) + ) + (TIMINGCHECK + (SETUPHOLD OPOS (negedge CLK) (153:153:153)(-86:-86:-86)) + ) + ) + (CELL + (CELLTYPE "RD_4_") + (INSTANCE RD\[4\]_I) + (DELAY + (ABSOLUTE + (IOPATH IOLDO RD4 (2927:3031:3136)(2927:3031:3136)) + (IOPATH PADDT RD4 (2844:3155:3467)(2844:3155:3467)(2844:3155:3467)(2844:3155:3467) + (2844:3155:3467)(2844:3155:3467)) + ) + ) + ) + (CELL + (CELLTYPE "RD_4__MGIOL") + (INSTANCE RD\[4\]_MGIOL) + (DELAY + (ABSOLUTE + (IOPATH CLK IOLDO (546:556:567)(546:556:567)) + ) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1855:1855:1855)) + (WIDTH (negedge CLK) (1855:1855:1855)) + ) + (TIMINGCHECK + (SETUPHOLD OPOS (negedge CLK) (153:153:153)(-86:-86:-86)) + ) + ) + (CELL + (CELLTYPE "RD_3_") + (INSTANCE RD\[3\]_I) + (DELAY + (ABSOLUTE + (IOPATH IOLDO RD3 (2927:3031:3136)(2927:3031:3136)) + (IOPATH PADDT RD3 (2844:3155:3467)(2844:3155:3467)(2844:3155:3467)(2844:3155:3467) + (2844:3155:3467)(2844:3155:3467)) + ) + ) + ) + (CELL + (CELLTYPE "RD_3__MGIOL") + (INSTANCE RD\[3\]_MGIOL) + (DELAY + (ABSOLUTE + (IOPATH CLK IOLDO (546:556:567)(546:556:567)) + ) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1855:1855:1855)) + (WIDTH (negedge CLK) (1855:1855:1855)) + ) + (TIMINGCHECK + (SETUPHOLD OPOS (negedge CLK) (153:153:153)(-86:-86:-86)) + ) + ) + (CELL + (CELLTYPE "RD_2_") + (INSTANCE RD\[2\]_I) + (DELAY + (ABSOLUTE + (IOPATH IOLDO RD2 (2927:3031:3136)(2927:3031:3136)) + (IOPATH PADDT RD2 (2844:3155:3467)(2844:3155:3467)(2844:3155:3467)(2844:3155:3467) + (2844:3155:3467)(2844:3155:3467)) + ) + ) + ) + (CELL + (CELLTYPE "RD_2__MGIOL") + (INSTANCE RD\[2\]_MGIOL) + (DELAY + (ABSOLUTE + (IOPATH CLK IOLDO (546:556:567)(546:556:567)) + ) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1855:1855:1855)) + (WIDTH (negedge CLK) (1855:1855:1855)) + ) + (TIMINGCHECK + (SETUPHOLD OPOS (negedge CLK) (153:153:153)(-86:-86:-86)) + ) + ) + (CELL + (CELLTYPE "RD_1_") + (INSTANCE RD\[1\]_I) + (DELAY + (ABSOLUTE + (IOPATH IOLDO RD1 (2927:3031:3136)(2927:3031:3136)) + (IOPATH PADDT RD1 (2844:3155:3467)(2844:3155:3467)(2844:3155:3467)(2844:3155:3467) + (2844:3155:3467)(2844:3155:3467)) + ) + ) + ) + (CELL + (CELLTYPE "RD_1__MGIOL") + (INSTANCE RD\[1\]_MGIOL) + (DELAY + (ABSOLUTE + (IOPATH CLK IOLDO (546:556:567)(546:556:567)) + ) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1855:1855:1855)) + (WIDTH (negedge CLK) (1855:1855:1855)) + ) + (TIMINGCHECK + (SETUPHOLD OPOS (negedge CLK) (153:153:153)(-86:-86:-86)) + ) + ) + (CELL + (CELLTYPE "RA_11_") + (INSTANCE RA\[11\]_I) + (DELAY + (ABSOLUTE + (IOPATH IOLDO RA11 (2927:3031:3136)(2927:3031:3136)) + ) + ) + ) + (CELL + (CELLTYPE "RA_11__MGIOL") + (INSTANCE RA\[11\]_MGIOL) + (DELAY + (ABSOLUTE + (IOPATH CLK IOLDO (546:556:567)(546:556:567)) + ) + ) + (TIMINGCHECK + (SETUPHOLD OPOS (posedge CLK) (153:153:153)(-86:-86:-86)) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1855:1855:1855)) + (WIDTH (negedge CLK) (1855:1855:1855)) + ) + ) + (CELL + (CELLTYPE "RA_10_") + (INSTANCE RA\[10\]_I) + (DELAY + (ABSOLUTE + (IOPATH IOLDO RA10 (2927:3031:3136)(2927:3031:3136)) + ) + ) + ) + (CELL + (CELLTYPE "RA_10__MGIOL") + (INSTANCE RA\[10\]_MGIOL) + (DELAY + (ABSOLUTE + (IOPATH CLK IOLDO (546:556:567)(546:556:567)) + ) + ) + (TIMINGCHECK + (SETUPHOLD OPOS (posedge CLK) (153:153:153)(-86:-86:-86)) + (SETUPHOLD LSR (posedge CLK) (100:100:100)(-90:-90:-90)) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1855:1855:1855)) + (WIDTH (negedge CLK) (1855:1855:1855)) + ) + ) + (CELL + (CELLTYPE "RA_9_") + (INSTANCE RA\[9\]_I) + (DELAY + (ABSOLUTE + (IOPATH PADDO RA9 (2927:3031:3136)(2927:3031:3136)) + ) + ) + ) + (CELL + (CELLTYPE "RA_8_") + (INSTANCE RA\[8\]_I) + (DELAY + (ABSOLUTE + (IOPATH PADDO RA8 (2927:3031:3136)(2927:3031:3136)) + ) + ) + ) + (CELL + (CELLTYPE "RA_7_") + (INSTANCE RA\[7\]_I) + (DELAY + (ABSOLUTE + (IOPATH PADDO RA7 (2927:3031:3136)(2927:3031:3136)) + ) + ) + ) + (CELL + (CELLTYPE "RA_6_") + (INSTANCE RA\[6\]_I) + (DELAY + (ABSOLUTE + (IOPATH PADDO RA6 (2927:3031:3136)(2927:3031:3136)) + ) + ) + ) + (CELL + (CELLTYPE "RA_5_") + (INSTANCE RA\[5\]_I) + (DELAY + (ABSOLUTE + (IOPATH PADDO RA5 (2927:3031:3136)(2927:3031:3136)) + ) + ) + ) + (CELL + (CELLTYPE "RA_4_") + (INSTANCE RA\[4\]_I) + (DELAY + (ABSOLUTE + (IOPATH PADDO RA4 (2927:3031:3136)(2927:3031:3136)) + ) + ) + ) + (CELL + (CELLTYPE "RA_3_") + (INSTANCE RA\[3\]_I) + (DELAY + (ABSOLUTE + (IOPATH PADDO RA3 (2927:3031:3136)(2927:3031:3136)) + ) + ) + ) + (CELL + (CELLTYPE "RA_2_") + (INSTANCE RA\[2\]_I) + (DELAY + (ABSOLUTE + (IOPATH PADDO RA2 (2927:3031:3136)(2927:3031:3136)) + ) + ) + ) + (CELL + (CELLTYPE "RA_1_") + (INSTANCE RA\[1\]_I) + (DELAY + (ABSOLUTE + (IOPATH PADDO RA1 (2927:3031:3136)(2927:3031:3136)) + ) + ) + ) + (CELL + (CELLTYPE "RA_0_") + (INSTANCE RA\[0\]_I) + (DELAY + (ABSOLUTE + (IOPATH PADDO RA0 (2927:3031:3136)(2927:3031:3136)) + ) + ) + ) + (CELL + (CELLTYPE "RBA_1_") + (INSTANCE RBA\[1\]_I) + (DELAY + (ABSOLUTE + (IOPATH IOLDO RBA1 (2927:3031:3136)(2927:3031:3136)) + ) + ) + ) + (CELL + (CELLTYPE "RBA_1__MGIOL") + (INSTANCE RBA\[1\]_MGIOL) + (DELAY + (ABSOLUTE + (IOPATH CLK IOLDO (546:556:567)(546:556:567)) + ) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1855:1855:1855)) + (WIDTH (negedge CLK) (1855:1855:1855)) + ) + (TIMINGCHECK + (SETUPHOLD OPOS (negedge CLK) (153:153:153)(-86:-86:-86)) + ) + ) + (CELL + (CELLTYPE "RBA_0_") + (INSTANCE RBA\[0\]_I) + (DELAY + (ABSOLUTE + (IOPATH IOLDO RBA0 (2927:3031:3136)(2927:3031:3136)) + ) + ) + ) + (CELL + (CELLTYPE "RBA_0__MGIOL") + (INSTANCE RBA\[0\]_MGIOL) + (DELAY + (ABSOLUTE + (IOPATH CLK IOLDO (546:556:567)(546:556:567)) + ) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1855:1855:1855)) + (WIDTH (negedge CLK) (1855:1855:1855)) + ) + (TIMINGCHECK + (SETUPHOLD OPOS (negedge CLK) (153:153:153)(-86:-86:-86)) + ) + ) + (CELL + (CELLTYPE "LED") + (INSTANCE LED_I) + (DELAY + (ABSOLUTE + (IOPATH PADDO LED (2371:2455:2540)(2371:2455:2540)) + ) + ) + ) + (CELL + (CELLTYPE "nFWE") + (INSTANCE nFWE_I) + (DELAY + (ABSOLUTE + (IOPATH nFWE PADDI (1007:1069:1132)(1007:1069:1132)) + ) + ) + (TIMINGCHECK + (WIDTH (posedge nFWE) (3330:3330:3330)) + (WIDTH (negedge nFWE) (3330:3330:3330)) + ) + ) + (CELL + (CELLTYPE "nCRAS") + (INSTANCE nCRAS_I) + (DELAY + (ABSOLUTE + (IOPATH nCRAS PADDI (1007:1069:1132)(1007:1069:1132)) + ) + ) + (TIMINGCHECK + (WIDTH (posedge nCRAS) (3330:3330:3330)) + (WIDTH (negedge nCRAS) (3330:3330:3330)) + ) + ) + (CELL + (CELLTYPE "nCCAS") + (INSTANCE nCCAS_I) + (DELAY + (ABSOLUTE + (IOPATH nCCAS PADDI (1007:1069:1132)(1007:1069:1132)) + ) + ) + (TIMINGCHECK + (WIDTH (posedge nCCAS) (3330:3330:3330)) + (WIDTH (negedge nCCAS) (3330:3330:3330)) + ) + ) + (CELL + (CELLTYPE "Dout_7_") + (INSTANCE Dout\[7\]_I) + (DELAY + (ABSOLUTE + (IOPATH PADDO Dout7 (2927:3031:3136)(2927:3031:3136)) + ) + ) + ) + (CELL + (CELLTYPE "Dout_6_") + (INSTANCE Dout\[6\]_I) + (DELAY + (ABSOLUTE + (IOPATH PADDO Dout6 (2927:3031:3136)(2927:3031:3136)) + ) + ) + ) + (CELL + (CELLTYPE "Dout_5_") + (INSTANCE Dout\[5\]_I) + (DELAY + (ABSOLUTE + (IOPATH PADDO Dout5 (2927:3031:3136)(2927:3031:3136)) + ) + ) + ) + (CELL + (CELLTYPE "Dout_4_") + (INSTANCE Dout\[4\]_I) + (DELAY + (ABSOLUTE + (IOPATH PADDO Dout4 (2927:3031:3136)(2927:3031:3136)) + ) + ) + ) + (CELL + (CELLTYPE "Dout_3_") + (INSTANCE Dout\[3\]_I) + (DELAY + (ABSOLUTE + (IOPATH PADDO Dout3 (2927:3031:3136)(2927:3031:3136)) + ) + ) + ) + (CELL + (CELLTYPE "Dout_2_") + (INSTANCE Dout\[2\]_I) + (DELAY + (ABSOLUTE + (IOPATH PADDO Dout2 (2927:3031:3136)(2927:3031:3136)) + ) + ) + ) + (CELL + (CELLTYPE "Dout_1_") + (INSTANCE Dout\[1\]_I) + (DELAY + (ABSOLUTE + (IOPATH PADDO Dout1 (2927:3031:3136)(2927:3031:3136)) + ) + ) + ) + (CELL + (CELLTYPE "Din_7_") + (INSTANCE Din\[7\]_I) + (DELAY + (ABSOLUTE + (IOPATH Din7 PADDI (1007:1069:1132)(1007:1069:1132)) + ) + ) + (TIMINGCHECK + (WIDTH (posedge Din7) (3330:3330:3330)) + (WIDTH (negedge Din7) (3330:3330:3330)) + ) + ) + (CELL + (CELLTYPE "Din_7__MGIOL") + (INSTANCE Din\[7\]_MGIOL) + (DELAY + (ABSOLUTE + (IOPATH CLK IN (577:577:577)(577:577:577)) + ) + ) + (TIMINGCHECK + (SETUPHOLD DI (posedge CLK) (595:595:595)(223:223:223)) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1855:1855:1855)) + (WIDTH (negedge CLK) (1855:1855:1855)) + ) + ) + (CELL + (CELLTYPE "Din_6_") + (INSTANCE Din\[6\]_I) + (DELAY + (ABSOLUTE + (IOPATH Din6 PADDI (1007:1069:1132)(1007:1069:1132)) + ) + ) + (TIMINGCHECK + (WIDTH (posedge Din6) (3330:3330:3330)) + (WIDTH (negedge Din6) (3330:3330:3330)) + ) + ) + (CELL + (CELLTYPE "Din_6__MGIOL") + (INSTANCE Din\[6\]_MGIOL) + (DELAY + (ABSOLUTE + (IOPATH CLK IN (577:577:577)(577:577:577)) + ) + ) + (TIMINGCHECK + (SETUPHOLD DI (posedge CLK) (595:595:595)(223:223:223)) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1855:1855:1855)) + (WIDTH (negedge CLK) (1855:1855:1855)) + ) + ) + (CELL + (CELLTYPE "Din_5_") + (INSTANCE Din\[5\]_I) + (DELAY + (ABSOLUTE + (IOPATH Din5 PADDI (1007:1069:1132)(1007:1069:1132)) + ) + ) + (TIMINGCHECK + (WIDTH (posedge Din5) (3330:3330:3330)) + (WIDTH (negedge Din5) (3330:3330:3330)) + ) + ) + (CELL + (CELLTYPE "Din_5__MGIOL") + (INSTANCE Din\[5\]_MGIOL) + (DELAY + (ABSOLUTE + (IOPATH CLK IN (577:577:577)(577:577:577)) + ) + ) + (TIMINGCHECK + (SETUPHOLD DI (posedge CLK) (595:595:595)(223:223:223)) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1855:1855:1855)) + (WIDTH (negedge CLK) (1855:1855:1855)) + ) + ) + (CELL + (CELLTYPE "Din_4_") + (INSTANCE Din\[4\]_I) + (DELAY + (ABSOLUTE + (IOPATH Din4 PADDI (1007:1069:1132)(1007:1069:1132)) + ) + ) + (TIMINGCHECK + (WIDTH (posedge Din4) (3330:3330:3330)) + (WIDTH (negedge Din4) (3330:3330:3330)) + ) + ) + (CELL + (CELLTYPE "Din_4__MGIOL") + (INSTANCE Din\[4\]_MGIOL) + (DELAY + (ABSOLUTE + (IOPATH CLK IN (577:577:577)(577:577:577)) + ) + ) + (TIMINGCHECK + (SETUPHOLD DI (posedge CLK) (595:595:595)(223:223:223)) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1855:1855:1855)) + (WIDTH (negedge CLK) (1855:1855:1855)) + ) + ) + (CELL + (CELLTYPE "Din_3_") + (INSTANCE Din\[3\]_I) + (DELAY + (ABSOLUTE + (IOPATH Din3 PADDI (1007:1069:1132)(1007:1069:1132)) + ) + ) + (TIMINGCHECK + (WIDTH (posedge Din3) (3330:3330:3330)) + (WIDTH (negedge Din3) (3330:3330:3330)) + ) + ) + (CELL + (CELLTYPE "Din_3__MGIOL") + (INSTANCE Din\[3\]_MGIOL) + (DELAY + (ABSOLUTE + (IOPATH CLK IN (577:577:577)(577:577:577)) + ) + ) + (TIMINGCHECK + (SETUPHOLD DI (posedge CLK) (595:595:595)(223:223:223)) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1855:1855:1855)) + (WIDTH (negedge CLK) (1855:1855:1855)) + ) + ) + (CELL + (CELLTYPE "Din_2_") + (INSTANCE Din\[2\]_I) + (DELAY + (ABSOLUTE + (IOPATH Din2 PADDI (1007:1069:1132)(1007:1069:1132)) + ) + ) + (TIMINGCHECK + (WIDTH (posedge Din2) (3330:3330:3330)) + (WIDTH (negedge Din2) (3330:3330:3330)) + ) + ) + (CELL + (CELLTYPE "Din_2__MGIOL") + (INSTANCE Din\[2\]_MGIOL) + (DELAY + (ABSOLUTE + (IOPATH CLK IN (577:577:577)(577:577:577)) + ) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1855:1855:1855)) + (WIDTH (negedge CLK) (1855:1855:1855)) + ) + (TIMINGCHECK + (SETUPHOLD DI (negedge CLK) (595:595:595)(223:223:223)) + (SETUPHOLD CE (negedge CLK) (63:63:63)(-52:-52:-52)) + ) + ) + (CELL + (CELLTYPE "Din_1_") + (INSTANCE Din\[1\]_I) + (DELAY + (ABSOLUTE + (IOPATH Din1 PADDI (1007:1069:1132)(1007:1069:1132)) + ) + ) + (TIMINGCHECK + (WIDTH (posedge Din1) (3330:3330:3330)) + (WIDTH (negedge Din1) (3330:3330:3330)) + ) + ) + (CELL + (CELLTYPE "Din_1__MGIOL") + (INSTANCE Din\[1\]_MGIOL) + (DELAY + (ABSOLUTE + (IOPATH CLK IN (577:577:577)(577:577:577)) + ) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1855:1855:1855)) + (WIDTH (negedge CLK) (1855:1855:1855)) + ) + (TIMINGCHECK + (SETUPHOLD DI (negedge CLK) (595:595:595)(223:223:223)) + (SETUPHOLD CE (negedge CLK) (63:63:63)(-52:-52:-52)) + ) + ) + (CELL + (CELLTYPE "Din_0_") + (INSTANCE Din\[0\]_I) + (DELAY + (ABSOLUTE + (IOPATH Din0 PADDI (1007:1069:1132)(1007:1069:1132)) + ) + ) + (TIMINGCHECK + (WIDTH (posedge Din0) (3330:3330:3330)) + (WIDTH (negedge Din0) (3330:3330:3330)) + ) + ) + (CELL + (CELLTYPE "Din_0__MGIOL") + (INSTANCE Din\[0\]_MGIOL) + (DELAY + (ABSOLUTE + (IOPATH CLK IN (577:577:577)(577:577:577)) + ) + ) + (TIMINGCHECK + (WIDTH (posedge CLK) (1855:1855:1855)) + (WIDTH (negedge CLK) (1855:1855:1855)) + ) + (TIMINGCHECK + (SETUPHOLD DI (negedge CLK) (595:595:595)(223:223:223)) + (SETUPHOLD CE (negedge CLK) (63:63:63)(-52:-52:-52)) ) ) (CELL @@ -2301,7 +2618,7 @@ (INSTANCE CROW\[1\]_I) (DELAY (ABSOLUTE - (IOPATH CROW1 PADDI (1223:1297:1372)(1223:1297:1372)) + (IOPATH CROW1 PADDI (1007:1069:1132)(1007:1069:1132)) ) ) (TIMINGCHECK @@ -2314,7 +2631,7 @@ (INSTANCE CROW\[0\]_I) (DELAY (ABSOLUTE - (IOPATH CROW0 PADDI (1223:1297:1372)(1223:1297:1372)) + (IOPATH CROW0 PADDI (1007:1069:1132)(1007:1069:1132)) ) ) (TIMINGCHECK @@ -2323,172 +2640,133 @@ ) ) (CELL - (CELLTYPE "Din_7_") - (INSTANCE Din\[7\]_I) + (CELLTYPE "MAin_9_") + (INSTANCE MAin\[9\]_I) (DELAY (ABSOLUTE - (IOPATH Din7 PADDI (1223:1297:1372)(1223:1297:1372)) + (IOPATH MAin9 PADDI (1007:1069:1132)(1007:1069:1132)) ) ) (TIMINGCHECK - (WIDTH (posedge Din7) (3330:3330:3330)) - (WIDTH (negedge Din7) (3330:3330:3330)) + (WIDTH (posedge MAin9) (3330:3330:3330)) + (WIDTH (negedge MAin9) (3330:3330:3330)) ) ) (CELL - (CELLTYPE "Din_6_") - (INSTANCE Din\[6\]_I) + (CELLTYPE "MAin_8_") + (INSTANCE MAin\[8\]_I) (DELAY (ABSOLUTE - (IOPATH Din6 PADDI (1223:1297:1372)(1223:1297:1372)) + (IOPATH MAin8 PADDI (1007:1069:1132)(1007:1069:1132)) ) ) (TIMINGCHECK - (WIDTH (posedge Din6) (3330:3330:3330)) - (WIDTH (negedge Din6) (3330:3330:3330)) + (WIDTH (posedge MAin8) (3330:3330:3330)) + (WIDTH (negedge MAin8) (3330:3330:3330)) ) ) (CELL - (CELLTYPE "Din_5_") - (INSTANCE Din\[5\]_I) + (CELLTYPE "MAin_7_") + (INSTANCE MAin\[7\]_I) (DELAY (ABSOLUTE - (IOPATH Din5 PADDI (1223:1297:1372)(1223:1297:1372)) + (IOPATH MAin7 PADDI (1007:1069:1132)(1007:1069:1132)) ) ) (TIMINGCHECK - (WIDTH (posedge Din5) (3330:3330:3330)) - (WIDTH (negedge Din5) (3330:3330:3330)) + (WIDTH (posedge MAin7) (3330:3330:3330)) + (WIDTH (negedge MAin7) (3330:3330:3330)) ) ) (CELL - (CELLTYPE "Din_4_") - (INSTANCE Din\[4\]_I) + (CELLTYPE "MAin_6_") + (INSTANCE MAin\[6\]_I) (DELAY (ABSOLUTE - (IOPATH Din4 PADDI (1223:1297:1372)(1223:1297:1372)) + (IOPATH MAin6 PADDI (1007:1069:1132)(1007:1069:1132)) ) ) (TIMINGCHECK - (WIDTH (posedge Din4) (3330:3330:3330)) - (WIDTH (negedge Din4) (3330:3330:3330)) + (WIDTH (posedge MAin6) (3330:3330:3330)) + (WIDTH (negedge MAin6) (3330:3330:3330)) ) ) (CELL - (CELLTYPE "Din_3_") - (INSTANCE Din\[3\]_I) + (CELLTYPE "MAin_5_") + (INSTANCE MAin\[5\]_I) (DELAY (ABSOLUTE - (IOPATH Din3 PADDI (1223:1297:1372)(1223:1297:1372)) + (IOPATH MAin5 PADDI (1007:1069:1132)(1007:1069:1132)) ) ) (TIMINGCHECK - (WIDTH (posedge Din3) (3330:3330:3330)) - (WIDTH (negedge Din3) (3330:3330:3330)) + (WIDTH (posedge MAin5) (3330:3330:3330)) + (WIDTH (negedge MAin5) (3330:3330:3330)) ) ) (CELL - (CELLTYPE "Din_2_") - (INSTANCE Din\[2\]_I) + (CELLTYPE "MAin_4_") + (INSTANCE MAin\[4\]_I) (DELAY (ABSOLUTE - (IOPATH Din2 PADDI (1223:1297:1372)(1223:1297:1372)) + (IOPATH MAin4 PADDI (1007:1069:1132)(1007:1069:1132)) ) ) (TIMINGCHECK - (WIDTH (posedge Din2) (3330:3330:3330)) - (WIDTH (negedge Din2) (3330:3330:3330)) + (WIDTH (posedge MAin4) (3330:3330:3330)) + (WIDTH (negedge MAin4) (3330:3330:3330)) ) ) (CELL - (CELLTYPE "Din_1_") - (INSTANCE Din\[1\]_I) + (CELLTYPE "MAin_3_") + (INSTANCE MAin\[3\]_I) (DELAY (ABSOLUTE - (IOPATH Din1 PADDI (1223:1297:1372)(1223:1297:1372)) + (IOPATH MAin3 PADDI (1007:1069:1132)(1007:1069:1132)) ) ) (TIMINGCHECK - (WIDTH (posedge Din1) (3330:3330:3330)) - (WIDTH (negedge Din1) (3330:3330:3330)) + (WIDTH (posedge MAin3) (3330:3330:3330)) + (WIDTH (negedge MAin3) (3330:3330:3330)) ) ) (CELL - (CELLTYPE "Din_0_") - (INSTANCE Din\[0\]_I) + (CELLTYPE "MAin_2_") + (INSTANCE MAin\[2\]_I) (DELAY (ABSOLUTE - (IOPATH Din0 PADDI (1223:1297:1372)(1223:1297:1372)) + (IOPATH MAin2 PADDI (1007:1069:1132)(1007:1069:1132)) ) ) (TIMINGCHECK - (WIDTH (posedge Din0) (3330:3330:3330)) - (WIDTH (negedge Din0) (3330:3330:3330)) + (WIDTH (posedge MAin2) (3330:3330:3330)) + (WIDTH (negedge MAin2) (3330:3330:3330)) ) ) (CELL - (CELLTYPE "nCCAS") - (INSTANCE nCCAS_I) + (CELLTYPE "MAin_1_") + (INSTANCE MAin\[1\]_I) (DELAY (ABSOLUTE - (IOPATH nCCAS PADDI (1223:1297:1372)(1223:1297:1372)) + (IOPATH MAin1 PADDI (1007:1069:1132)(1007:1069:1132)) ) ) (TIMINGCHECK - (WIDTH (posedge nCCAS) (3330:3330:3330)) - (WIDTH (negedge nCCAS) (3330:3330:3330)) + (WIDTH (posedge MAin1) (3330:3330:3330)) + (WIDTH (negedge MAin1) (3330:3330:3330)) ) ) (CELL - (CELLTYPE "nCRAS") - (INSTANCE nCRAS_I) + (CELLTYPE "MAin_0_") + (INSTANCE MAin\[0\]_I) (DELAY (ABSOLUTE - (IOPATH nCRAS PADDI (1223:1297:1372)(1223:1297:1372)) + (IOPATH MAin0 PADDI (1007:1069:1132)(1007:1069:1132)) ) ) (TIMINGCHECK - (WIDTH (posedge nCRAS) (3330:3330:3330)) - (WIDTH (negedge nCRAS) (3330:3330:3330)) - ) - ) - (CELL - (CELLTYPE "nFWE") - (INSTANCE nFWE_I) - (DELAY - (ABSOLUTE - (IOPATH nFWE PADDI (1223:1297:1372)(1223:1297:1372)) - ) - ) - (TIMINGCHECK - (WIDTH (posedge nFWE) (3330:3330:3330)) - (WIDTH (negedge nFWE) (3330:3330:3330)) - ) - ) - (CELL - (CELLTYPE "RCLK") - (INSTANCE RCLK_I) - (DELAY - (ABSOLUTE - (IOPATH RCLK PADDI (1223:1297:1372)(1223:1297:1372)) - ) - ) - (TIMINGCHECK - (WIDTH (posedge RCLK) (3330:3330:3330)) - (WIDTH (negedge RCLK) (3330:3330:3330)) - ) - ) - (CELL - (CELLTYPE "UFMSDO") - (INSTANCE UFMSDO_I) - (DELAY - (ABSOLUTE - (IOPATH UFMSDO PADDI (1223:1297:1372)(1223:1297:1372)) - ) - ) - (TIMINGCHECK - (WIDTH (posedge UFMSDO) (3330:3330:3330)) - (WIDTH (negedge UFMSDO) (3330:3330:3330)) + (WIDTH (posedge MAin0) (3330:3330:3330)) + (WIDTH (negedge MAin0) (3330:3330:3330)) ) ) (CELL @@ -2497,15 +2775,9 @@ (DELAY (ABSOLUTE (INTERCONNECT SLICE_0/Q1 SLICE_0/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_0/Q1 SLICE_76/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_0/Q1 SLICE_80/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_0/Q1 SLICE_82/C1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_0/Q1 SLICE_85/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_0/Q0 SLICE_0/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_0/Q0 SLICE_85/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_0/Q0 SLICE_105/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_0/Q1 SLICE_56/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_0/Q1 SLICE_78/A1 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_0/F1 SLICE_0/DI1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_0/F0 SLICE_0/DI0 (0:0:0)(0:0:0)) (INTERCONNECT RCLK_I/PADDI SLICE_0/CLK (0:0:0)(0:0:0)) (INTERCONNECT RCLK_I/PADDI SLICE_1/CLK (0:0:0)(0:0:0)) (INTERCONNECT RCLK_I/PADDI SLICE_2/CLK (0:0:0)(0:0:0)) @@ -2516,660 +2788,695 @@ (INTERCONNECT RCLK_I/PADDI SLICE_7/CLK (0:0:0)(0:0:0)) (INTERCONNECT RCLK_I/PADDI SLICE_8/CLK (0:0:0)(0:0:0)) (INTERCONNECT RCLK_I/PADDI SLICE_9/CLK (0:0:0)(0:0:0)) - (INTERCONNECT RCLK_I/PADDI SLICE_16/CLK (0:0:0)(0:0:0)) + (INTERCONNECT RCLK_I/PADDI SLICE_14/CLK (0:0:0)(0:0:0)) + (INTERCONNECT RCLK_I/PADDI SLICE_17/CLK (0:0:0)(0:0:0)) + (INTERCONNECT RCLK_I/PADDI SLICE_23/CLK (0:0:0)(0:0:0)) + (INTERCONNECT RCLK_I/PADDI SLICE_24/CLK (0:0:0)(0:0:0)) + (INTERCONNECT RCLK_I/PADDI SLICE_25/CLK (0:0:0)(0:0:0)) (INTERCONNECT RCLK_I/PADDI SLICE_26/CLK (0:0:0)(0:0:0)) (INTERCONNECT RCLK_I/PADDI SLICE_27/CLK (0:0:0)(0:0:0)) - (INTERCONNECT RCLK_I/PADDI SLICE_30/CLK (0:0:0)(0:0:0)) + (INTERCONNECT RCLK_I/PADDI SLICE_29/CLK (0:0:0)(0:0:0)) + (INTERCONNECT RCLK_I/PADDI SLICE_31/CLK (0:0:0)(0:0:0)) (INTERCONNECT RCLK_I/PADDI SLICE_32/CLK (0:0:0)(0:0:0)) - (INTERCONNECT RCLK_I/PADDI SLICE_35/CLK (0:0:0)(0:0:0)) - (INTERCONNECT RCLK_I/PADDI SLICE_36/CLK (0:0:0)(0:0:0)) - (INTERCONNECT RCLK_I/PADDI SLICE_37/CLK (0:0:0)(0:0:0)) + (INTERCONNECT RCLK_I/PADDI SLICE_33/CLK (0:0:0)(0:0:0)) + (INTERCONNECT RCLK_I/PADDI SLICE_34/CLK (0:0:0)(0:0:0)) + (INTERCONNECT RCLK_I/PADDI SLICE_40/CLK (0:0:0)(0:0:0)) + (INTERCONNECT RCLK_I/PADDI SLICE_41/CLK (0:0:0)(0:0:0)) + (INTERCONNECT RCLK_I/PADDI SLICE_43/CLK (0:0:0)(0:0:0)) (INTERCONNECT RCLK_I/PADDI SLICE_44/CLK (0:0:0)(0:0:0)) (INTERCONNECT RCLK_I/PADDI SLICE_45/CLK (0:0:0)(0:0:0)) - (INTERCONNECT RCLK_I/PADDI SLICE_57/CLK (0:0:0)(0:0:0)) - (INTERCONNECT RCLK_I/PADDI SLICE_59/CLK (0:0:0)(0:0:0)) - (INTERCONNECT RCLK_I/PADDI SLICE_61/CLK (0:0:0)(0:0:0)) - (INTERCONNECT RCLK_I/PADDI SLICE_62/CLK (0:0:0)(0:0:0)) - (INTERCONNECT RCLK_I/PADDI SLICE_64/CLK (0:0:0)(0:0:0)) (INTERCONNECT RCLK_I/PADDI SLICE_65/CLK (0:0:0)(0:0:0)) - (INTERCONNECT RCLK_I/PADDI SLICE_66/CLK (0:0:0)(0:0:0)) - (INTERCONNECT RCLK_I/PADDI SLICE_67/CLK (0:0:0)(0:0:0)) - (INTERCONNECT RCLK_I/PADDI SLICE_68/CLK (0:0:0)(0:0:0)) - (INTERCONNECT RCLK_I/PADDI SLICE_69/CLK (0:0:0)(0:0:0)) - (INTERCONNECT RCLK_I/PADDI SLICE_70/CLK (0:0:0)(0:0:0)) - (INTERCONNECT RCLK_I/PADDI SLICE_75/CLK (0:0:0)(0:0:0)) - (INTERCONNECT RCLK_I/PADDI SLICE_78/CLK (0:0:0)(0:0:0)) - (INTERCONNECT RCLK_I/PADDI SLICE_79/CLK (0:0:0)(0:0:0)) - (INTERCONNECT RCLK_I/PADDI SLICE_81/CLK (0:0:0)(0:0:0)) - (INTERCONNECT RCLK_I/PADDI SLICE_84/CLK (0:0:0)(0:0:0)) - (INTERCONNECT RCLK_I/PADDI SLICE_86/CLK (0:0:0)(0:0:0)) - (INTERCONNECT RCLK_I/PADDI SLICE_97/CLK (0:0:0)(0:0:0)) - (INTERCONNECT RCLK_I/PADDI SLICE_98/CLK (0:0:0)(0:0:0)) - (INTERCONNECT RCLK_I/PADDI SLICE_106/CLK (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_1/FCO SLICE_0/FCI (0:0:0)(0:0:0)) + (INTERCONNECT RCLK_I/PADDI SLICE_73/CLK (0:0:0)(0:0:0)) + (INTERCONNECT RCLK_I/PADDI PHI2_MGIOL/CLK (0:0:0)(0:0:0)) + (INTERCONNECT RCLK_I/PADDI UFMSDI_MGIOL/CLK (0:0:0)(0:0:0)) + (INTERCONNECT RCLK_I/PADDI UFMCLK_MGIOL/CLK (0:0:0)(0:0:0)) + (INTERCONNECT RCLK_I/PADDI nUFMCS_MGIOL/CLK (0:0:0)(0:0:0)) + (INTERCONNECT RCLK_I/PADDI nRCAS_MGIOL/CLK (0:0:0)(0:0:0)) + (INTERCONNECT RCLK_I/PADDI nRRAS_MGIOL/CLK (0:0:0)(0:0:0)) + (INTERCONNECT RCLK_I/PADDI nRWE_MGIOL/CLK (0:0:0)(0:0:0)) + (INTERCONNECT RCLK_I/PADDI RCKE_MGIOL/CLK (0:0:0)(0:0:0)) + (INTERCONNECT RCLK_I/PADDI nRCS_MGIOL/CLK (0:0:0)(0:0:0)) + (INTERCONNECT RCLK_I/PADDI RA\[10\]_MGIOL/CLK (0:0:0)(0:0:0)) (INTERCONNECT SLICE_0/FCO SLICE_9/FCI (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_1/Q1 SLICE_1/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_1/Q1 SLICE_76/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_1/Q1 SLICE_80/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_1/Q1 SLICE_85/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_1/Q1 SLICE_105/B0 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_1/Q0 SLICE_1/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_1/Q0 SLICE_57/C1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_1/Q0 SLICE_70/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_1/Q0 SLICE_76/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_1/Q0 SLICE_80/D0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_1/Q0 SLICE_82/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_1/Q0 SLICE_85/C1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_1/Q0 SLICE_105/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_1/F1 SLICE_1/DI1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_1/Q0 SLICE_72/D1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_1/Q0 SLICE_72/D0 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_1/F0 SLICE_1/DI0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_6/FCO SLICE_1/FCI (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_2/FCO SLICE_1/FCI (0:0:0)(0:0:0)) (INTERCONNECT SLICE_2/Q1 SLICE_2/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_2/Q1 SLICE_45/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_2/Q1 SLICE_68/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_2/Q1 SLICE_26/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_2/Q1 SLICE_48/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_2/Q1 SLICE_64/B1 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_2/Q0 SLICE_2/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_2/Q0 SLICE_95/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_2/Q0 SLICE_95/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_2/Q0 SLICE_64/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_2/Q0 SLICE_72/C0 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_2/F1 SLICE_2/DI1 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_2/F0 SLICE_2/DI0 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_3/FCO SLICE_2/FCI (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_2/FCO SLICE_6/FCI (0:0:0)(0:0:0)) (INTERCONNECT SLICE_3/Q1 SLICE_3/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_3/Q1 SLICE_86/C1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_3/Q1 SLICE_105/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_3/Q1 SLICE_72/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_3/Q1 SLICE_85/B0 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_3/Q0 SLICE_3/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_3/Q0 SLICE_95/D1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_3/Q0 SLICE_95/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_3/Q0 SLICE_72/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_3/Q0 SLICE_72/B0 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_3/F1 SLICE_3/DI1 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_3/F0 SLICE_3/DI0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_8/FCO SLICE_3/FCI (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_4/FCO SLICE_3/FCI (0:0:0)(0:0:0)) (INTERCONNECT SLICE_4/Q1 SLICE_4/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_4/Q1 SLICE_95/D0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_4/Q1 SLICE_72/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_4/Q1 SLICE_72/A0 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_4/Q0 SLICE_4/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_4/Q0 SLICE_44/D1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_4/Q0 SLICE_95/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_4/Q0 SLICE_47/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_4/Q0 SLICE_58/D1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_4/Q0 SLICE_59/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_4/Q0 SLICE_64/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_4/Q0 SLICE_85/A0 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_4/F1 SLICE_4/DI1 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_4/F0 SLICE_4/DI0 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_5/FCO SLICE_4/FCI (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_4/FCO SLICE_8/FCI (0:0:0)(0:0:0)) (INTERCONNECT SLICE_5/Q1 SLICE_5/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_5/Q1 SLICE_68/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_5/Q1 SLICE_26/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_5/Q1 SLICE_47/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_5/Q1 SLICE_58/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_5/Q1 SLICE_85/D1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_5/Q0 SLICE_5/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_5/Q0 SLICE_59/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_5/Q0 SLICE_78/C0 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_5/F1 SLICE_5/DI1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_16/Q1 SLICE_5/M0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_16/Q1 SLICE_66/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_16/Q1 SLICE_96/D0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_5/Q0 SLICE_96/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_5/Q0 SLICE_96/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_5/F0 SLICE_5/DI0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_6/FCO SLICE_5/FCI (0:0:0)(0:0:0)) (INTERCONNECT SLICE_6/Q1 SLICE_6/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_6/Q1 SLICE_45/C1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_6/Q1 SLICE_57/D1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_6/Q1 SLICE_70/D1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_6/Q1 SLICE_76/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_6/Q1 SLICE_82/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_6/Q1 SLICE_58/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_6/Q1 SLICE_59/A1 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_6/Q0 SLICE_6/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_6/Q0 SLICE_86/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_6/Q0 SLICE_95/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_6/Q0 SLICE_78/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_6/Q0 SLICE_85/C1 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_6/F1 SLICE_6/DI1 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_6/F0 SLICE_6/DI0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_7/FCO SLICE_6/FCI (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_7/Q1 SLICE_7/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_7/Q1 SLICE_58/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_7/Q1 SLICE_85/B1 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_7/Q0 SLICE_7/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_7/Q0 SLICE_82/D1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_7/Q0 SLICE_85/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_7/Q0 SLICE_56/D1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_7/Q0 SLICE_78/D1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_7/Q0 SLICE_78/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_7/F1 SLICE_7/DI1 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_7/F0 SLICE_7/DI0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_9/FCO SLICE_7/FCI (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_8/FCO SLICE_7/FCI (0:0:0)(0:0:0)) (INTERCONNECT SLICE_8/Q1 SLICE_8/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_8/Q1 SLICE_44/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_8/Q1 SLICE_86/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_8/Q1 SLICE_59/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_8/Q1 SLICE_64/B0 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_8/Q0 SLICE_8/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_8/Q0 SLICE_86/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_8/Q0 SLICE_56/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_8/Q0 SLICE_78/C1 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_8/F1 SLICE_8/DI1 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_8/F0 SLICE_8/DI0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_9/FCO SLICE_8/FCI (0:0:0)(0:0:0)) (INTERCONNECT SLICE_9/Q1 SLICE_9/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_9/Q1 SLICE_85/D0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_9/Q1 SLICE_105/D0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_9/Q1 SLICE_56/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_9/Q1 SLICE_78/B1 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_9/Q0 SLICE_9/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_9/Q0 SLICE_85/C0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_9/Q0 SLICE_105/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_9/Q0 SLICE_64/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_9/Q0 SLICE_85/A1 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_9/F1 SLICE_9/DI1 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_9/F0 SLICE_9/DI0 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[4\]_I/PADDI SLICE_10/D1 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[4\]_I/PADDI SLICE_24/C0 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[4\]_I/PADDI SLICE_33/C1 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[4\]_I/PADDI SLICE_50/A1 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[4\]_I/PADDI SLICE_89/B1 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[4\]_I/PADDI SLICE_89/C0 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[4\]_I/PADDI SLICE_89/M0 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[4\]_I/PADDI SLICE_90/C1 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[4\]_I/PADDI SLICE_102/M0 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[4\]_I/PADDI SLICE_106/B0 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[6\]_I/PADDI SLICE_10/C1 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[6\]_I/PADDI SLICE_24/A1 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[6\]_I/PADDI SLICE_33/A1 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[6\]_I/PADDI SLICE_33/A0 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[6\]_I/PADDI SLICE_75/A0 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[6\]_I/PADDI SLICE_77/C0 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[6\]_I/PADDI SLICE_88/M0 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[6\]_I/PADDI SLICE_101/M0 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[1\]_I/PADDI SLICE_10/B1 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[1\]_I/PADDI SLICE_50/B1 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[1\]_I/PADDI SLICE_90/B1 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[1\]_I/PADDI SLICE_90/B0 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[1\]_I/PADDI SLICE_90/M1 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[1\]_I/PADDI SLICE_93/M1 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[1\]_I/PADDI SLICE_100/M0 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[7\]_I/PADDI SLICE_10/A1 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[7\]_I/PADDI SLICE_24/B1 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[7\]_I/PADDI SLICE_33/B1 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[7\]_I/PADDI SLICE_88/M1 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[7\]_I/PADDI SLICE_90/A1 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[7\]_I/PADDI SLICE_90/A0 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[7\]_I/PADDI SLICE_101/M1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_106/F1 SLICE_10/D0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_73/F0 SLICE_10/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_74/F0 SLICE_10/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_60/F0 SLICE_10/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_60/F0 SLICE_46/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_13/F1 SLICE_10/D0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_13/F1 SLICE_13/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_13/F1 SLICE_18/M0 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_10/F1 SLICE_10/C0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_91/F0 SLICE_10/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_25/F1 SLICE_10/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_25/F1 SLICE_73/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_10/F1 SLICE_18/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_46/F1 SLICE_10/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_46/F1 SLICE_13/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_46/F1 SLICE_46/D0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_10/Q0 SLICE_10/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_10/Q0 SLICE_18/B1 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_10/F0 SLICE_10/DI0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_79/F0 SLICE_10/CE (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_88/F0 SLICE_10/LSR (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_88/F0 SLICE_15/LSR (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_88/F0 SLICE_88/C1 (0:0:0)(0:0:0)) (INTERCONNECT PHI2_I/PADDI SLICE_10/CLK (0:0:0)(0:0:0)) - (INTERCONNECT PHI2_I/PADDI SLICE_15/CLK (0:0:0)(0:0:0)) + (INTERCONNECT PHI2_I/PADDI SLICE_13/CLK (0:0:0)(0:0:0)) + (INTERCONNECT PHI2_I/PADDI SLICE_18/CLK (0:0:0)(0:0:0)) (INTERCONNECT PHI2_I/PADDI SLICE_19/CLK (0:0:0)(0:0:0)) (INTERCONNECT PHI2_I/PADDI SLICE_20/CLK (0:0:0)(0:0:0)) - (INTERCONNECT PHI2_I/PADDI SLICE_24/CLK (0:0:0)(0:0:0)) - (INTERCONNECT PHI2_I/PADDI SLICE_33/CLK (0:0:0)(0:0:0)) - (INTERCONNECT PHI2_I/PADDI SLICE_50/CLK (0:0:0)(0:0:0)) - (INTERCONNECT PHI2_I/PADDI SLICE_86/M0 (0:0:0)(0:0:0)) - (INTERCONNECT PHI2_I/PADDI SLICE_93/CLK (0:0:0)(0:0:0)) - (INTERCONNECT PHI2_I/PADDI SLICE_99/CLK (0:0:0)(0:0:0)) - (INTERCONNECT PHI2_I/PADDI SLICE_100/CLK (0:0:0)(0:0:0)) - (INTERCONNECT PHI2_I/PADDI SLICE_101/CLK (0:0:0)(0:0:0)) - (INTERCONNECT PHI2_I/PADDI SLICE_102/CLK (0:0:0)(0:0:0)) - (INTERCONNECT PHI2_I/PADDI SLICE_103/CLK (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_10/Q0 SLICE_88/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_74/F1 SLICE_15/D1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_74/F1 SLICE_73/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_74/F1 SLICE_74/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_74/F1 SLICE_79/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_74/F1 SLICE_83/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_74/F1 SLICE_91/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_74/F1 SLICE_91/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_74/F1 SLICE_104/B0 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[5\]_I/PADDI SLICE_15/C1 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[5\]_I/PADDI SLICE_79/C1 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[5\]_I/PADDI SLICE_82/M1 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[5\]_I/PADDI SLICE_101/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_99/F1 SLICE_15/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_99/F1 SLICE_79/B1 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[2\]_I/PADDI SLICE_15/A1 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[2\]_I/PADDI SLICE_79/A1 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[2\]_I/PADDI SLICE_91/M0 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[2\]_I/PADDI SLICE_103/B1 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[1\]_I/PADDI SLICE_15/D0 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[1\]_I/PADDI SLICE_19/B0 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[1\]_I/PADDI SLICE_73/A0 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[1\]_I/PADDI SLICE_74/M1 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[1\]_I/PADDI SLICE_79/D0 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[1\]_I/PADDI SLICE_83/D0 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[1\]_I/PADDI SLICE_91/C1 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[1\]_I/PADDI SLICE_91/D0 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[1\]_I/PADDI SLICE_97/C1 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[1\]_I/PADDI SLICE_102/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_15/Q0 SLICE_15/C0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_15/Q0 SLICE_77/C1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_15/F1 SLICE_15/B0 (0:0:0)(0:0:0)) - (INTERCONNECT nFWE_I/PADDI SLICE_15/A0 (0:0:0)(0:0:0)) - (INTERCONNECT nFWE_I/PADDI SLICE_25/A1 (0:0:0)(0:0:0)) - (INTERCONNECT nFWE_I/PADDI SLICE_25/A0 (0:0:0)(0:0:0)) - (INTERCONNECT nFWE_I/PADDI SLICE_74/D0 (0:0:0)(0:0:0)) - (INTERCONNECT nFWE_I/PADDI SLICE_79/C0 (0:0:0)(0:0:0)) - (INTERCONNECT nFWE_I/PADDI SLICE_104/B1 (0:0:0)(0:0:0)) - (INTERCONNECT nFWE_I/PADDI SLICE_104/C0 (0:0:0)(0:0:0)) - (INTERCONNECT nFWE_I/PADDI SLICE_106/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_15/F0 SLICE_15/DI0 (0:0:0)(0:0:0)) - (INTERCONNECT nCCAS_I/PADDI SLICE_16/A0 (0:0:0)(0:0:0)) - (INTERCONNECT nCCAS_I/PADDI SLICE_88/CLK (0:0:0)(0:0:0)) - (INTERCONNECT nCCAS_I/PADDI SLICE_89/CLK (0:0:0)(0:0:0)) - (INTERCONNECT nCCAS_I/PADDI SLICE_90/CLK (0:0:0)(0:0:0)) - (INTERCONNECT nCCAS_I/PADDI SLICE_92/CLK (0:0:0)(0:0:0)) - (INTERCONNECT nCCAS_I/PADDI SLICE_104/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_16/F0 SLICE_16/DI0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_16/F0 SLICE_25/M1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_16/Q0 SLICE_16/M1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_97/F0 SLICE_19/D1 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[5\]_I/PADDI SLICE_19/C1 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[5\]_I/PADDI SLICE_24/C1 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[5\]_I/PADDI SLICE_25/B1 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[5\]_I/PADDI SLICE_75/A1 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[5\]_I/PADDI SLICE_77/A1 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[5\]_I/PADDI SLICE_89/D1 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[5\]_I/PADDI SLICE_89/A0 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[5\]_I/PADDI SLICE_89/M1 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[5\]_I/PADDI SLICE_102/M1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_77/F0 SLICE_19/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_77/F0 SLICE_77/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_75/F0 SLICE_19/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_75/F0 SLICE_75/C1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_19/F1 SLICE_19/D0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_90/F1 SLICE_19/C0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_90/F1 SLICE_77/D1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_104/F0 SLICE_19/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_104/F0 SLICE_88/D1 (0:0:0)(0:0:0)) + (INTERCONNECT PHI2_I/PADDI SLICE_21/CLK (0:0:0)(0:0:0)) + (INTERCONNECT PHI2_I/PADDI SLICE_42/CLK (0:0:0)(0:0:0)) + (INTERCONNECT PHI2_I/PADDI SLICE_63/CLK (0:0:0)(0:0:0)) + (INTERCONNECT PHI2_I/PADDI SLICE_68/CLK (0:0:0)(0:0:0)) + (INTERCONNECT PHI2_I/PADDI PHI2_MGIOL/DI (0:0:0)(0:0:0)) + (INTERCONNECT PHI2_I/PADDI RA\[11\]_MGIOL/CLK (0:0:0)(0:0:0)) + (INTERCONNECT PHI2_I/PADDI Din\[7\]_MGIOL/CLK (0:0:0)(0:0:0)) + (INTERCONNECT PHI2_I/PADDI Din\[6\]_MGIOL/CLK (0:0:0)(0:0:0)) + (INTERCONNECT PHI2_I/PADDI Din\[5\]_MGIOL/CLK (0:0:0)(0:0:0)) + (INTERCONNECT PHI2_I/PADDI Din\[4\]_MGIOL/CLK (0:0:0)(0:0:0)) + (INTERCONNECT PHI2_I/PADDI Din\[3\]_MGIOL/CLK (0:0:0)(0:0:0)) + (INTERCONNECT PHI2_I/PADDI Din\[2\]_MGIOL/CLK (0:0:0)(0:0:0)) + (INTERCONNECT PHI2_I/PADDI Din\[1\]_MGIOL/CLK (0:0:0)(0:0:0)) + (INTERCONNECT PHI2_I/PADDI Din\[0\]_MGIOL/CLK (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_69/F0 SLICE_13/D1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_69/F0 SLICE_46/D1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_69/F0 SLICE_46/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_69/F0 SLICE_57/D0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_69/F0 SLICE_60/D0 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[2\]_I/PADDI SLICE_13/C1 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[2\]_I/PADDI SLICE_36/A0 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[2\]_I/PADDI SLICE_46/C1 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[2\]_I/PADDI SLICE_46/B0 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[2\]_I/PADDI SLICE_57/C0 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[2\]_I/PADDI SLICE_67/B0 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[2\]_I/PADDI SLICE_82/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_68/F0 SLICE_13/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_63/F0 SLICE_13/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_63/F0 SLICE_46/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_13/Q0 SLICE_13/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_13/Q0 SLICE_18/D0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_13/F0 SLICE_13/DI0 (0:0:0)(0:0:0)) + (INTERCONNECT nFWE_I/PADDI SLICE_14/B1 (0:0:0)(0:0:0)) + (INTERCONNECT nFWE_I/PADDI SLICE_22/D1 (0:0:0)(0:0:0)) + (INTERCONNECT nFWE_I/PADDI SLICE_22/A0 (0:0:0)(0:0:0)) + (INTERCONNECT nFWE_I/PADDI SLICE_63/B1 (0:0:0)(0:0:0)) + (INTERCONNECT nFWE_I/PADDI SLICE_67/C0 (0:0:0)(0:0:0)) + (INTERCONNECT nCCAS_I/PADDI SLICE_14/A1 (0:0:0)(0:0:0)) + (INTERCONNECT nCCAS_I/PADDI SLICE_14/A0 (0:0:0)(0:0:0)) + (INTERCONNECT nCCAS_I/PADDI RD\[0\]_MGIOL/CLK (0:0:0)(0:0:0)) + (INTERCONNECT nCCAS_I/PADDI RD\[7\]_MGIOL/CLK (0:0:0)(0:0:0)) + (INTERCONNECT nCCAS_I/PADDI RD\[6\]_MGIOL/CLK (0:0:0)(0:0:0)) + (INTERCONNECT nCCAS_I/PADDI RD\[5\]_MGIOL/CLK (0:0:0)(0:0:0)) + (INTERCONNECT nCCAS_I/PADDI RD\[4\]_MGIOL/CLK (0:0:0)(0:0:0)) + (INTERCONNECT nCCAS_I/PADDI RD\[3\]_MGIOL/CLK (0:0:0)(0:0:0)) + (INTERCONNECT nCCAS_I/PADDI RD\[2\]_MGIOL/CLK (0:0:0)(0:0:0)) + (INTERCONNECT nCCAS_I/PADDI RD\[1\]_MGIOL/CLK (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_14/F0 SLICE_14/DI0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_14/F0 SLICE_74/M0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_14/Q0 SLICE_14/M1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_14/F1 RD\[0\]_I/PADDT (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_14/F1 RD\[7\]_I/PADDT (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_14/F1 RD\[6\]_I/PADDT (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_14/F1 RD\[5\]_I/PADDT (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_14/F1 RD\[4\]_I/PADDT (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_14/F1 RD\[3\]_I/PADDT (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_14/F1 RD\[2\]_I/PADDT (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_14/F1 RD\[1\]_I/PADDT (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_14/Q1 SLICE_66/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_14/Q1 SLICE_71/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_14/Q1 SLICE_73/M0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_14/Q1 SLICE_76/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_40/Q0 SLICE_17/D1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_40/Q0 SLICE_17/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_40/Q0 SLICE_40/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_40/Q0 SLICE_44/D0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_40/Q0 SLICE_49/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_40/Q0 SLICE_49/D0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_40/Q0 SLICE_51/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_40/Q0 SLICE_51/D0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_40/Q0 SLICE_53/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_40/Q0 SLICE_61/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_40/Q0 SLICE_76/D1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_40/Q0 SLICE_76/D0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_29/Q1 SLICE_17/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_29/Q1 SLICE_17/LSR (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_29/Q1 SLICE_31/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_29/Q1 SLICE_32/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_29/Q1 SLICE_32/M1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_29/Q1 SLICE_40/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_29/Q1 SLICE_40/LSR (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_29/Q1 SLICE_49/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_29/Q1 SLICE_53/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_29/Q1 SLICE_77/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_25/Q0 SLICE_17/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_25/Q0 SLICE_23/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_25/Q0 SLICE_25/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_25/Q0 SLICE_52/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_17/Q0 SLICE_17/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_17/Q0 SLICE_17/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_17/Q0 SLICE_40/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_17/Q0 SLICE_44/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_17/Q0 SLICE_49/D1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_17/Q0 SLICE_53/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_17/Q0 SLICE_66/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_17/Q0 SLICE_71/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_17/Q0 SLICE_76/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_17/F0 SLICE_17/DI0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_17/F1 SLICE_33/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_17/F1 SLICE_34/D1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_18/Q0 SLICE_18/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_18/Q0 SLICE_18/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_18/Q0 SLICE_57/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_46/F0 SLICE_18/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_18/OFX0 SLICE_18/DI0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_70/F0 SLICE_19/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_70/F0 SLICE_20/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_70/F0 SLICE_21/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_70/F0 SLICE_50/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_70/F0 SLICE_57/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_70/F0 SLICE_70/B1 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[5\]_I/PADDI SLICE_19/B1 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[5\]_I/PADDI SLICE_20/C1 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[5\]_I/PADDI SLICE_21/B1 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[5\]_I/PADDI SLICE_42/B1 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[5\]_I/PADDI SLICE_50/C1 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[5\]_I/PADDI SLICE_50/B0 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[5\]_I/PADDI SLICE_57/C1 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[5\]_I/PADDI SLICE_68/B1 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[5\]_I/PADDI SLICE_70/C1 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[5\]_I/PADDI SLICE_73/C0 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[5\]_I/PADDI RD\[5\]_MGIOL/OPOS (0:0:0)(0:0:0)) + (INTERCONNECT Din\[5\]_I/PADDI Din\[5\]_MGIOL/DI (0:0:0)(0:0:0)) + (INTERCONNECT Din\[1\]_I/PADDI SLICE_19/A1 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[1\]_I/PADDI SLICE_63/M1 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[1\]_I/PADDI SLICE_73/A1 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[1\]_I/PADDI SLICE_73/A0 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[1\]_I/PADDI SLICE_74/A1 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[1\]_I/PADDI RD\[1\]_MGIOL/OPOS (0:0:0)(0:0:0)) + (INTERCONNECT Din\[1\]_I/PADDI Din\[1\]_MGIOL/DI (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_21/F1 SLICE_19/D0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_21/F1 SLICE_21/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_19/F1 SLICE_19/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_70/F1 SLICE_19/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_27/Q0 SLICE_19/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_27/Q0 SLICE_29/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_27/Q0 SLICE_74/D1 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_19/F0 SLICE_19/DI0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_88/F1 SLICE_19/CE (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_19/Q0 SLICE_73/C0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_19/Q0 SLICE_83/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_57/F0 SLICE_19/CE (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_57/F0 SLICE_20/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_57/F0 SLICE_21/CE (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_57/F0 SLICE_42/CE (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_57/F0 SLICE_57/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_19/Q0 SLICE_27/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_19/Q0 SLICE_70/A1 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[3\]_I/PADDI SLICE_20/D1 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[3\]_I/PADDI SLICE_21/A1 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[3\]_I/PADDI SLICE_50/A0 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[3\]_I/PADDI SLICE_57/D1 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[3\]_I/PADDI SLICE_70/D1 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[3\]_I/PADDI SLICE_73/B1 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[3\]_I/PADDI SLICE_74/C1 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[3\]_I/PADDI SLICE_74/C0 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[3\]_I/PADDI RD\[3\]_MGIOL/OPOS (0:0:0)(0:0:0)) + (INTERCONNECT Din\[3\]_I/PADDI Din\[3\]_MGIOL/DI (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_20/Q0 SLICE_20/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_20/Q0 SLICE_54/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_20/Q0 SLICE_55/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_20/Q0 SLICE_65/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_57/F1 SLICE_20/A0 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_20/F0 SLICE_20/DI0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_89/F1 SLICE_20/CE (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_20/Q0 SLICE_35/C1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_20/Q0 SLICE_84/C1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_24/F1 SLICE_24/D0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_24/F1 SLICE_50/C1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_24/F1 SLICE_83/D1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_57/Q0 SLICE_24/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_57/Q0 SLICE_33/C0 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[0\]_I/PADDI SLICE_24/A0 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[0\]_I/PADDI SLICE_50/A0 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[0\]_I/PADDI SLICE_90/D1 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[0\]_I/PADDI SLICE_90/C0 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[0\]_I/PADDI SLICE_90/M0 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[0\]_I/PADDI SLICE_93/M0 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[0\]_I/PADDI SLICE_99/M0 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[0\]_I/PADDI SLICE_106/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_24/F0 SLICE_24/DI0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_89/F0 SLICE_24/CE (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_24/Q0 SLICE_57/D0 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[3\]_I/PADDI SLICE_25/C1 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[3\]_I/PADDI SLICE_50/D0 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[3\]_I/PADDI SLICE_75/B0 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[3\]_I/PADDI SLICE_77/B0 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[3\]_I/PADDI SLICE_89/C1 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[3\]_I/PADDI SLICE_89/D0 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[3\]_I/PADDI SLICE_92/M1 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[3\]_I/PADDI SLICE_103/M1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_25/F0 SLICE_25/DI0 (0:0:0)(0:0:0)) - (INTERCONNECT nCRAS_I/PADDI SLICE_25/CLK (0:0:0)(0:0:0)) - (INTERCONNECT nCRAS_I/PADDI SLICE_30/A1 (0:0:0)(0:0:0)) - (INTERCONNECT nCRAS_I/PADDI SLICE_30/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_20/F1 Din\[2\]_MGIOL/CE (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_20/F1 Din\[1\]_MGIOL/CE (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_20/F1 Din\[0\]_MGIOL/CE (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_43/Q0 SLICE_21/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_43/Q0 SLICE_84/D0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_50/F1 SLICE_21/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_21/F0 SLICE_21/DI0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_21/Q0 SLICE_43/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_21/Q0 SLICE_50/B1 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[1\]_I/PADDI SLICE_22/C1 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[1\]_I/PADDI SLICE_35/A1 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[1\]_I/PADDI SLICE_60/C0 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[1\]_I/PADDI SLICE_63/D0 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[1\]_I/PADDI SLICE_81/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_67/F1 SLICE_22/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_67/F1 SLICE_63/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_67/F1 SLICE_67/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_60/F1 SLICE_22/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_60/F1 SLICE_60/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_22/F0 SLICE_22/DI0 (0:0:0)(0:0:0)) + (INTERCONNECT nCRAS_I/PADDI SLICE_22/CLK (0:0:0)(0:0:0)) + (INTERCONNECT nCRAS_I/PADDI SLICE_29/C1 (0:0:0)(0:0:0)) + (INTERCONNECT nCRAS_I/PADDI SLICE_29/A0 (0:0:0)(0:0:0)) + (INTERCONNECT nCRAS_I/PADDI SLICE_35/CLK (0:0:0)(0:0:0)) + (INTERCONNECT nCRAS_I/PADDI SLICE_36/CLK (0:0:0)(0:0:0)) + (INTERCONNECT nCRAS_I/PADDI SLICE_37/CLK (0:0:0)(0:0:0)) + (INTERCONNECT nCRAS_I/PADDI SLICE_38/CLK (0:0:0)(0:0:0)) + (INTERCONNECT nCRAS_I/PADDI SLICE_39/CLK (0:0:0)(0:0:0)) (INTERCONNECT nCRAS_I/PADDI SLICE_74/CLK (0:0:0)(0:0:0)) - (INTERCONNECT nCRAS_I/PADDI SLICE_76/CLK (0:0:0)(0:0:0)) - (INTERCONNECT nCRAS_I/PADDI SLICE_82/CLK (0:0:0)(0:0:0)) - (INTERCONNECT nCRAS_I/PADDI SLICE_87/CLK (0:0:0)(0:0:0)) - (INTERCONNECT nCRAS_I/PADDI SLICE_91/CLK (0:0:0)(0:0:0)) - (INTERCONNECT nCRAS_I/PADDI SLICE_104/CLK (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_25/Q0 SLICE_65/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_25/Q0 i30\/SLICE_71/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_25/Q0 i30\/SLICE_71/C0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_25/Q0 SLICE_81/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_25/Q0 SLICE_96/C0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_25/Q1 SLICE_30/C1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_25/Q1 SLICE_59/D1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_25/Q1 i30\/SLICE_71/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_25/Q1 i30\/SLICE_71/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_25/Q1 SLICE_81/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_25/Q1 SLICE_96/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_25/Q1 SLICE_96/A0 (0:0:0)(0:0:0)) + (INTERCONNECT nCRAS_I/PADDI RBA\[1\]_MGIOL/CLK (0:0:0)(0:0:0)) + (INTERCONNECT nCRAS_I/PADDI RBA\[0\]_MGIOL/CLK (0:0:0)(0:0:0)) + (INTERCONNECT nCRAS_I/PADDI Dout\[7\]_I/PADDO (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_22/Q0 SLICE_44/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_22/Q0 SLICE_66/D0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_22/Q0 SLICE_76/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_22/Q0 SLICE_76/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_22/F1 SLICE_46/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_22/F1 SLICE_57/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_33/Q0 SLICE_23/D1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_33/Q0 SLICE_23/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_33/Q0 SLICE_31/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_33/Q0 SLICE_31/D0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_33/Q0 SLICE_33/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_33/Q0 SLICE_34/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_33/Q0 SLICE_40/D1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_33/Q0 SLICE_44/D1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_33/Q0 SLICE_44/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_33/Q0 SLICE_49/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_33/Q0 SLICE_53/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_33/Q0 SLICE_62/D0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_33/Q0 SLICE_66/D1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_33/Q0 SLICE_76/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_33/Q0 SLICE_77/D1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_33/Q0 SLICE_77/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_49/F1 SLICE_23/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_49/F1 SLICE_23/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_49/F1 SLICE_49/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_49/F1 SLICE_52/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_49/F1 SLICE_61/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_49/F1 SLICE_62/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_49/F1 SLICE_77/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_23/Q0 SLICE_23/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_23/Q0 SLICE_23/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_23/Q0 SLICE_24/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_23/Q0 SLICE_24/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_23/Q0 SLICE_25/D0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_23/Q0 SLICE_33/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_23/Q0 SLICE_52/D0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_23/Q0 SLICE_61/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_23/Q0 SLICE_62/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_23/F0 SLICE_23/DI0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_23/F1 RA\[10\]_MGIOL/LSR (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_24/Q1 SLICE_24/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_24/Q1 SLICE_25/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_24/Q1 SLICE_33/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_24/Q1 SLICE_52/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_24/Q1 SLICE_62/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_24/Q0 SLICE_24/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_24/Q0 SLICE_24/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_24/Q0 SLICE_25/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_24/Q0 SLICE_33/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_24/Q0 SLICE_52/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_24/Q0 SLICE_62/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_24/F1 SLICE_24/DI1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_24/F0 SLICE_24/DI0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_77/F0 SLICE_24/CE (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_77/F0 SLICE_25/CE (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_25/F0 SLICE_25/DI0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_72/F0 SLICE_26/D1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_72/F0 SLICE_48/D1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_85/F0 SLICE_26/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_85/F0 SLICE_48/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_26/Q0 SLICE_26/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_26/Q0 SLICE_27/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_26/Q0 SLICE_31/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_26/Q0 SLICE_33/D0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_26/Q0 SLICE_34/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_26/Q0 SLICE_43/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_26/Q0 SLICE_45/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_26/Q0 SLICE_47/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_26/Q0 SLICE_47/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_26/Q0 SLICE_48/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_26/Q0 SLICE_48/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_26/Q0 SLICE_49/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_26/Q0 SLICE_54/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_26/Q0 SLICE_55/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_26/Q0 SLICE_58/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_26/Q0 SLICE_59/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_26/Q0 SLICE_65/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_26/F1 SLICE_26/A0 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_26/F0 SLICE_26/DI0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_82/F0 SLICE_26/CE (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_26/Q0 SLICE_32/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_26/Q0 SLICE_35/D1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_26/Q0 SLICE_35/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_26/Q0 SLICE_44/C0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_26/Q0 SLICE_45/C0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_26/Q0 SLICE_57/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_26/Q0 SLICE_62/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_26/Q0 SLICE_70/C1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_26/Q0 SLICE_70/D0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_26/Q0 SLICE_72/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_26/Q0 SLICE_76/D0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_26/Q0 SLICE_80/C0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_26/Q0 SLICE_84/C0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_26/Q0 SLICE_92/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_26/Q0 SLICE_92/B0 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_27/F0 SLICE_27/DI0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_76/F0 SLICE_27/CE (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_27/Q0 SLICE_30/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_27/Q0 SLICE_50/D1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_30/F0 SLICE_30/DI0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_30/Q0 SLICE_30/M1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_30/Q0 SLICE_36/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_30/F1 LED_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_30/Q1 SLICE_32/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_30/Q1 SLICE_36/C0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_30/Q1 SLICE_59/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_30/Q1 SLICE_61/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_30/Q1 SLICE_62/D1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_30/Q1 SLICE_66/LSR (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_30/Q1 SLICE_67/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_30/Q1 SLICE_69/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_30/Q1 SLICE_69/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_30/Q1 i30\/SLICE_71/C1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_30/Q1 SLICE_72/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_30/Q1 SLICE_78/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_30/Q1 SLICE_86/M1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_30/Q1 SLICE_92/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_30/Q1 SLICE_92/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_69/Q0 SLICE_32/C1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_69/Q0 SLICE_59/C1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_69/Q0 SLICE_61/C1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_69/Q0 SLICE_62/C1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_69/Q0 SLICE_62/D0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_69/Q0 SLICE_68/LSR (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_69/Q0 i30\/SLICE_71/M0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_69/Q0 SLICE_78/D1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_69/Q0 SLICE_87/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_69/Q0 SLICE_92/C1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_69/Q0 SLICE_92/C0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_69/Q0 SLICE_94/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_69/Q0 SLICE_94/D0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_98/Q1 SLICE_32/D0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_98/Q1 SLICE_59/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_98/Q1 SLICE_64/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_98/Q1 SLICE_84/M0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_37/Q0 SLICE_32/C0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_37/Q0 SLICE_33/LSR (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_37/Q0 SLICE_35/C0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_37/Q0 SLICE_59/C0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_37/Q0 SLICE_61/C0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_37/Q0 SLICE_62/C0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_37/Q0 SLICE_64/C0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_37/Q0 SLICE_72/D1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_37/Q0 SLICE_74/LSR (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_37/Q0 SLICE_76/LSR (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_37/Q0 SLICE_82/LSR (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_37/Q0 SLICE_87/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_37/Q0 SLICE_87/LSR (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_37/Q0 SLICE_91/LSR (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_37/Q0 SLICE_92/D1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_37/Q0 SLICE_94/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_37/Q0 SLICE_94/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_37/Q0 SLICE_104/LSR (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_32/F1 SLICE_32/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_98/Q0 SLICE_32/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_98/Q0 SLICE_62/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_98/Q0 SLICE_92/D0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_98/Q0 SLICE_98/M1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_54/F0 SLICE_27/CE (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_74/Q0 SLICE_29/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_74/Q0 SLICE_31/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_74/Q0 SLICE_40/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_74/Q0 SLICE_44/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_74/Q0 SLICE_51/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_74/Q0 SLICE_61/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_74/Q0 SLICE_76/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_29/F0 SLICE_29/DI0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_29/Q0 SLICE_29/M1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_29/Q0 SLICE_32/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_29/F1 LED_I/PADDO (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_40/F0 SLICE_31/D1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_40/F0 SLICE_40/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_40/F0 SLICE_40/DI0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_40/F0 SLICE_77/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_76/F0 SLICE_31/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_31/F1 SLICE_31/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_31/F0 SLICE_31/DI0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_31/Q0 SLICE_32/D0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_34/Q0 SLICE_32/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_34/Q0 SLICE_34/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_34/Q0 SLICE_35/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_34/Q0 SLICE_35/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_34/Q0 SLICE_36/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_34/Q0 SLICE_36/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_34/Q0 SLICE_37/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_34/Q0 SLICE_37/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_34/Q0 SLICE_38/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_34/Q0 SLICE_38/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_34/Q0 SLICE_39/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_34/Q0 SLICE_39/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_34/Q0 SLICE_84/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_34/Q0 SLICE_84/B0 (0:0:0)(0:0:0)) + (INTERCONNECT CROW\[1\]_I/PADDI SLICE_32/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_32/Q1 SLICE_32/C0 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_32/F0 SLICE_32/DI0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_75/Q1 SLICE_32/LSR (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_75/Q1 SLICE_64/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_75/Q1 SLICE_79/M0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_32/Q0 RA\[10\]_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_50/Q0 SLICE_33/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_32/F0 RCKE_MGIOL/OPOS (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_32/Q0 SLICE_53/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_32/Q0 SLICE_77/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_32/F1 RBA\[1\]_MGIOL/OPOS (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_33/F1 SLICE_33/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_33/F1 SLICE_34/B1 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_33/F0 SLICE_33/DI0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_33/Q0 RA\[11\]_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_33/F1 SLICE_73/D0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_36/Q1 SLICE_35/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_36/Q1 SLICE_69/M1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_36/Q1 SLICE_84/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_69/Q1 SLICE_35/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_69/Q1 SLICE_84/A1 (0:0:0)(0:0:0)) - (INTERCONNECT i30\/SLICE_71/OFX0 SLICE_35/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_34/F1 SLICE_34/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_34/F0 SLICE_34/DI0 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[0\]_I/PADDI SLICE_35/A0 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[0\]_I/PADDI SLICE_60/B1 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[0\]_I/PADDI SLICE_63/C0 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[0\]_I/PADDI SLICE_80/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_35/F1 SLICE_35/DI1 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_35/F0 SLICE_35/DI0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_87/F1 SLICE_35/CE (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_87/F1 SLICE_59/CE (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_87/F1 SLICE_61/CE (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_87/F1 SLICE_62/CE (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_35/Q0 SLICE_36/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_35/F1 SLICE_44/CE (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_35/F1 SLICE_45/CE (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_35/F1 SLICE_70/CE (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_86/Q1 SLICE_36/D0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_35/Q0 SLICE_80/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_35/Q1 SLICE_81/B0 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[3\]_I/PADDI SLICE_36/A1 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[3\]_I/PADDI SLICE_67/A1 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[3\]_I/PADDI SLICE_83/A0 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[3\]_I/PADDI Dout\[0\]_I/PADDO (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_36/F1 SLICE_36/DI1 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_36/F0 SLICE_36/DI0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_86/Q0 SLICE_36/M1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_36/Q0 SLICE_61/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_36/Q0 SLICE_69/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_36/Q0 SLICE_78/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_36/Q0 RCKE_I/PADDO (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_36/Q0 SLICE_82/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_36/Q1 SLICE_83/B0 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[5\]_I/PADDI SLICE_37/A1 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[5\]_I/PADDI SLICE_67/C1 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[5\]_I/PADDI SLICE_82/A1 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[5\]_I/PADDI Dout\[2\]_I/PADDO (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[4\]_I/PADDI SLICE_37/A0 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[4\]_I/PADDI SLICE_67/B1 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[4\]_I/PADDI SLICE_83/A1 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[4\]_I/PADDI Dout\[1\]_I/PADDO (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_37/F1 SLICE_37/DI1 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_37/F0 SLICE_37/DI0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_72/F1 SLICE_37/CE (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_85/F1 SLICE_44/C1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_82/F1 SLICE_44/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_82/F1 SLICE_70/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_82/F1 SLICE_82/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_100/Q0 SLICE_44/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_44/F1 SLICE_44/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_44/F0 SLICE_44/DI0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_80/F0 SLICE_44/LSR (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_80/F0 SLICE_45/LSR (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_44/Q0 UFMCLK_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_85/F0 SLICE_45/D1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_85/F0 SLICE_57/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_85/F0 SLICE_76/C1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_85/F0 SLICE_80/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_85/F0 SLICE_85/D1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_95/F1 SLICE_45/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_105/F1 SLICE_45/D0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_99/Q0 SLICE_45/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_45/F1 SLICE_45/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_45/F0 SLICE_45/DI0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_45/Q0 UFMSDI_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_50/F1 SLICE_50/C0 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[2\]_I/PADDI SLICE_50/B0 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[2\]_I/PADDI SLICE_77/A0 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[2\]_I/PADDI SLICE_88/A0 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[2\]_I/PADDI SLICE_92/M0 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[2\]_I/PADDI SLICE_97/B0 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[2\]_I/PADDI SLICE_100/M1 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[2\]_I/PADDI SLICE_103/M0 (0:0:0)(0:0:0)) - (INTERCONNECT Din\[2\]_I/PADDI SLICE_106/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_50/F0 SLICE_50/DI0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_83/F1 SLICE_50/CE (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_80/F1 SLICE_57/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_80/F1 SLICE_80/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_80/F1 SLICE_95/A1 (0:0:0)(0:0:0)) - (INTERCONNECT UFMSDO_I/PADDI SLICE_57/C0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_57/F1 SLICE_57/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_57/F1 SLICE_84/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_57/F0 SLICE_57/DI0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_84/F0 SLICE_57/CE (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_81/F0 SLICE_59/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_81/F0 SLICE_61/D1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_37/Q0 SLICE_83/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_37/Q1 SLICE_82/B1 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[7\]_I/PADDI SLICE_38/A1 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[7\]_I/PADDI SLICE_60/A1 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[7\]_I/PADDI SLICE_63/A1 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[7\]_I/PADDI SLICE_80/A1 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[7\]_I/PADDI Dout\[4\]_I/PADDO (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[6\]_I/PADDI SLICE_38/A0 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[6\]_I/PADDI SLICE_67/D1 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[6\]_I/PADDI SLICE_81/A1 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[6\]_I/PADDI Dout\[3\]_I/PADDO (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_38/F1 SLICE_38/DI1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_38/F0 SLICE_38/DI0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_38/Q0 SLICE_81/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_38/Q1 SLICE_80/B1 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[9\]_I/PADDI SLICE_39/A1 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[9\]_I/PADDI SLICE_75/A1 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[9\]_I/PADDI SLICE_75/A0 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[9\]_I/PADDI SLICE_79/A1 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[9\]_I/PADDI Dout\[6\]_I/PADDO (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[8\]_I/PADDI SLICE_39/A0 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[8\]_I/PADDI SLICE_79/A0 (0:0:0)(0:0:0)) + (INTERCONNECT MAin\[8\]_I/PADDI Dout\[5\]_I/PADDO (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_39/F1 SLICE_39/DI1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_39/F0 SLICE_39/DI0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_39/Q0 SLICE_79/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_39/Q1 SLICE_75/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_40/F1 SLICE_51/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_40/F1 SLICE_71/A0 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[0\]_MGIOL/IN SLICE_41/D1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_59/F1 SLICE_41/C1 (0:0:0)(0:0:0)) (INTERCONNECT SLICE_59/F1 SLICE_59/D0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_92/F0 SLICE_59/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_92/F0 SLICE_64/D0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_59/F0 SLICE_59/DI0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_59/Q0 nRCAS_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_61/F1 SLICE_61/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_62/F1 SLICE_61/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_62/F1 SLICE_62/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_61/F0 SLICE_61/DI0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_61/Q0 nRCS_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_69/F1 SLICE_62/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_62/F0 SLICE_62/DI0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_62/Q0 nRRAS_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_78/F1 SLICE_64/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_64/F1 SLICE_64/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_64/F0 SLICE_64/DI0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_94/F0 SLICE_64/CE (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_94/F0 SLICE_65/CE (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_64/Q0 nRWE_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_68/Q0 SLICE_65/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_68/Q0 SLICE_67/LSR (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_68/Q0 i30\/SLICE_71/D0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_68/Q0 SLICE_81/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_68/Q0 SLICE_87/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_67/Q0 SLICE_65/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_67/Q0 SLICE_66/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_67/Q0 SLICE_66/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_67/Q0 SLICE_81/D0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_67/Q0 SLICE_87/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_96/F1 SLICE_65/D0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_65/F1 SLICE_65/C0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_65/F1 SLICE_78/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_65/F1 SLICE_94/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_94/F1 SLICE_65/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_65/F0 SLICE_65/DI0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_65/Q0 SLICE_93/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_65/Q0 SLICE_93/C0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_65/Q0 SLICE_98/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_65/Q0 SLICE_98/C0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_65/Q0 SLICE_99/C0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_65/Q0 SLICE_100/C0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_65/Q0 SLICE_101/C1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_65/Q0 SLICE_101/C0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_65/Q0 SLICE_102/C1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_65/Q0 SLICE_102/C0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_65/Q0 SLICE_103/C1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_65/Q0 SLICE_103/C0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_66/Q0 SLICE_66/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_66/Q0 SLICE_67/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_66/Q0 SLICE_72/C1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_66/Q0 SLICE_87/C1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_66/Q0 SLICE_94/C0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_66/F0 SLICE_66/DI0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_66/F1 i30\/SLICE_71/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_67/F0 SLICE_67/DI0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_67/F0 SLICE_68/M0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_103/Q1 SLICE_68/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_101/Q0 SLICE_68/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_68/F0 SLICE_74/C1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_68/F1 SLICE_86/C0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_69/F0 SLICE_69/DI0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_76/F1 SLICE_70/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_76/F1 SLICE_76/C0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_100/Q1 SLICE_70/C0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_70/F1 SLICE_70/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_70/F0 SLICE_70/DI0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_70/Q0 nUFMCS_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_72/F0 SLICE_72/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_81/Q1 SLICE_72/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_81/Q1 SLICE_98/M0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_73/F0 SLICE_73/D1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_73/F0 SLICE_74/C0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_79/F1 SLICE_73/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_79/F1 SLICE_74/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_79/F1 SLICE_79/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_79/F1 SLICE_83/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_79/F1 SLICE_91/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_79/F1 SLICE_91/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_79/F1 SLICE_104/A0 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[0\]_I/PADDI SLICE_73/B0 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[0\]_I/PADDI SLICE_74/M0 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[0\]_I/PADDI SLICE_77/D0 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[0\]_I/PADDI SLICE_83/C0 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[0\]_I/PADDI SLICE_88/C0 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[0\]_I/PADDI SLICE_91/C0 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[0\]_I/PADDI SLICE_97/A1 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[0\]_I/PADDI SLICE_97/A0 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[0\]_I/PADDI SLICE_101/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_73/F1 SLICE_99/CE (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_73/F1 SLICE_100/CE (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_102/Q1 SLICE_74/D1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_100/F1 SLICE_74/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_103/Q0 SLICE_74/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_74/F0 SLICE_89/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_74/F0 SLICE_89/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_74/Q0 SLICE_101/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_74/Q1 SLICE_102/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_90/F0 SLICE_75/D1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_106/F0 SLICE_75/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_106/F0 SLICE_83/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_75/Q0 SLICE_75/M1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_97/Q1 SLICE_75/M0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_92/F1 SLICE_75/CE (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_92/F1 SLICE_78/CE (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_92/F1 SLICE_79/CE (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_92/F1 SLICE_81/CE (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_92/F1 SLICE_84/CE (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_92/F1 SLICE_97/CE (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_92/F1 SLICE_98/CE (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_92/F1 SLICE_106/CE (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_75/F1 SLICE_88/B0 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[9\]_I/PADDI SLICE_76/M1 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[9\]_I/PADDI SLICE_93/A1 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[9\]_I/PADDI SLICE_93/B0 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[9\]_I/PADDI SLICE_98/A1 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[8\]_I/PADDI SLICE_76/M0 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[8\]_I/PADDI SLICE_98/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_76/Q0 SLICE_98/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_76/Q1 SLICE_93/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_77/F1 SLICE_97/B1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_78/F0 SLICE_78/C1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_96/F0 SLICE_78/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_96/F0 SLICE_81/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_78/Q0 SLICE_78/M1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_79/Q1 SLICE_78/M0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_78/Q1 SLICE_81/M0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_79/Q0 SLICE_79/M1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_81/F1 SLICE_81/C0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_81/Q0 SLICE_81/M1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_105/F0 SLICE_82/B1 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[4\]_I/PADDI SLICE_82/M0 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[4\]_I/PADDI SLICE_100/B1 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[4\]_I/PADDI SLICE_102/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_82/Q0 SLICE_102/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_82/Q1 SLICE_101/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_83/F0 SLICE_83/C1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_86/F0 SLICE_84/D0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_84/F1 SLICE_84/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_84/Q0 SLICE_84/M1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_84/Q1 SLICE_106/M0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_86/F1 SLICE_86/D0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_95/F0 SLICE_86/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_87/F0 SLICE_87/D1 (0:0:0)(0:0:0)) - (INTERCONNECT CROW\[1\]_I/PADDI SLICE_87/M1 (0:0:0)(0:0:0)) - (INTERCONNECT CROW\[0\]_I/PADDI SLICE_87/M0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_87/Q0 RBA\[0\]_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_87/Q1 RBA\[1\]_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_97/F1 SLICE_88/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_91/F1 SLICE_88/D0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_88/Q0 RD\[6\]_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_88/Q1 RD\[7\]_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_89/Q0 RD\[4\]_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_89/Q1 RD\[5\]_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_90/Q0 RD\[0\]_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_90/Q1 RD\[1\]_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[3\]_I/PADDI SLICE_91/M1 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[3\]_I/PADDI SLICE_99/B1 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[3\]_I/PADDI SLICE_103/B0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_91/Q0 SLICE_103/A1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_91/Q1 SLICE_103/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_92/Q0 RD\[2\]_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_92/Q1 RD\[3\]_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_93/F0 RA\[9\]_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_93/Q0 SLICE_100/D1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_93/F1 RDQML_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_93/Q1 SLICE_99/D1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_97/Q0 SLICE_97/M1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_106/Q1 SLICE_97/M0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_98/F0 RA\[8\]_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_98/F1 RDQMH_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_102/Q0 SLICE_99/C1 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[7\]_I/PADDI SLICE_99/A1 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[7\]_I/PADDI SLICE_99/B0 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[7\]_I/PADDI SLICE_104/M1 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_104/Q1 SLICE_99/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_99/F0 RA\[7\]_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_101/Q1 SLICE_100/C1 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[6\]_I/PADDI SLICE_100/A1 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[6\]_I/PADDI SLICE_100/B0 (0:0:0)(0:0:0)) - (INTERCONNECT MAin\[6\]_I/PADDI SLICE_104/M0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_104/Q0 SLICE_100/A0 (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_100/F0 RA\[6\]_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_101/F0 RA\[5\]_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_101/F1 RA\[0\]_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_102/F0 RA\[4\]_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_102/F1 RA\[1\]_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_103/F0 RA\[3\]_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_103/F1 RA\[2\]_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_104/F1 RD\[7\]_I/PADDT (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_104/F1 RD\[6\]_I/PADDT (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_104/F1 RD\[5\]_I/PADDT (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_104/F1 RD\[4\]_I/PADDT (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_104/F1 RD\[3\]_I/PADDT (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_104/F1 RD\[2\]_I/PADDT (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_104/F1 RD\[1\]_I/PADDT (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_104/F1 RD\[0\]_I/PADDT (0:0:0)(0:0:0)) - (INTERCONNECT SLICE_106/Q0 SLICE_106/M1 (0:0:0)(0:0:0)) - (INTERCONNECT RD\[7\]_I/PADDI Dout\[7\]_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT RD\[6\]_I/PADDI Dout\[6\]_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT RD\[5\]_I/PADDI Dout\[5\]_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT RD\[4\]_I/PADDI Dout\[4\]_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT RD\[3\]_I/PADDI Dout\[3\]_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT RD\[2\]_I/PADDI Dout\[2\]_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT RD\[1\]_I/PADDI Dout\[1\]_I/PADDO (0:0:0)(0:0:0)) - (INTERCONNECT RD\[0\]_I/PADDI Dout\[0\]_I/PADDO (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_58/F0 SLICE_41/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_47/F1 SLICE_41/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_47/F1 SLICE_41/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_47/F1 SLICE_45/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_47/F1 SLICE_45/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_47/F1 SLICE_47/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_47/F1 SLICE_65/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_41/Q0 SLICE_41/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_41/OFX0 SLICE_41/DI0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_41/OFX0 UFMSDI_MGIOL/OPOS (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_65/F0 SLICE_41/M0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_65/F0 SLICE_45/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_65/F0 SLICE_65/A1 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[7\]_I/PADDI SLICE_42/D1 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[7\]_I/PADDI SLICE_70/C0 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[7\]_I/PADDI SLICE_73/D1 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[7\]_I/PADDI SLICE_73/D0 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[7\]_I/PADDI RD\[7\]_MGIOL/OPOS (0:0:0)(0:0:0)) + (INTERCONNECT Din\[7\]_I/PADDI Din\[7\]_MGIOL/DI (0:0:0)(0:0:0)) + (INTERCONNECT Din\[6\]_I/PADDI SLICE_42/C1 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[6\]_I/PADDI SLICE_68/D0 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[6\]_I/PADDI SLICE_70/B0 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[6\]_I/PADDI SLICE_74/D0 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[6\]_I/PADDI SLICE_84/A0 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[6\]_I/PADDI RD\[6\]_MGIOL/OPOS (0:0:0)(0:0:0)) + (INTERCONNECT Din\[6\]_I/PADDI Din\[6\]_MGIOL/DI (0:0:0)(0:0:0)) + (INTERCONNECT Din\[4\]_I/PADDI SLICE_42/A1 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[4\]_I/PADDI SLICE_70/A0 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[4\]_I/PADDI SLICE_73/C1 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[4\]_I/PADDI SLICE_73/B0 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[4\]_I/PADDI RD\[4\]_MGIOL/OPOS (0:0:0)(0:0:0)) + (INTERCONNECT Din\[4\]_I/PADDI Din\[4\]_MGIOL/DI (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_42/F1 SLICE_42/D0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_74/F1 SLICE_42/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_42/Q0 SLICE_42/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_42/Q0 SLICE_84/C0 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[0\]_I/PADDI SLICE_42/A0 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[0\]_I/PADDI SLICE_50/D1 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[0\]_I/PADDI SLICE_63/M0 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[0\]_I/PADDI SLICE_68/A1 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[0\]_I/PADDI SLICE_74/A0 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[0\]_I/PADDI RD\[0\]_MGIOL/OPOS (0:0:0)(0:0:0)) + (INTERCONNECT Din\[0\]_I/PADDI Din\[0\]_MGIOL/DI (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_42/F0 SLICE_42/DI0 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[4\]_MGIOL/IN SLICE_43/D1 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[3\]_MGIOL/IN SLICE_43/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_63/Q1 SLICE_43/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_63/Q0 SLICE_43/A1 (0:0:0)(0:0:0)) + (INTERCONNECT UFMSDO_I/PADDI SLICE_43/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_43/F0 SLICE_43/DI0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_55/F0 SLICE_43/CE (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_43/F1 SLICE_69/D0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_73/Q0 SLICE_44/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_73/Q0 SLICE_66/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_73/Q0 SLICE_71/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_44/F1 SLICE_44/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_44/F0 SLICE_44/DI0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_53/F0 SLICE_44/LSR (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_53/F0 SLICE_53/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_44/Q0 SLICE_75/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_44/Q0 SLICE_75/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_44/Q0 SLICE_79/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_44/Q0 SLICE_79/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_44/Q0 SLICE_80/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_44/Q0 SLICE_80/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_44/Q0 SLICE_81/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_44/Q0 SLICE_81/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_44/Q0 SLICE_82/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_44/Q0 SLICE_82/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_44/Q0 SLICE_83/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_44/Q0 SLICE_83/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_48/F1 SLICE_45/D1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_48/F1 SLICE_48/C0 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[2\]_MGIOL/IN SLICE_45/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_45/Q0 SLICE_45/D0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_45/F1 SLICE_45/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_45/F0 SLICE_45/DI0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_45/F0 nUFMCS_MGIOL/OPOS (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_64/F1 SLICE_47/D1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_64/F1 SLICE_58/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_64/F1 SLICE_59/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_64/F1 SLICE_64/D0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_48/F0 SLICE_47/D0 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[1\]_MGIOL/IN SLICE_47/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_47/F0 UFMCLK_MGIOL/OPOS (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_64/F0 SLICE_48/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_52/F1 SLICE_49/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_52/F1 SLICE_52/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_52/F1 SLICE_61/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_49/F0 SLICE_51/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_50/F0 SLICE_50/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_51/F1 SLICE_51/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_66/F0 SLICE_51/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_66/F0 SLICE_66/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_51/F0 nRCAS_MGIOL/OPOS (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_77/F1 SLICE_52/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_77/F1 SLICE_61/D0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_52/F0 SLICE_66/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_52/F0 nRRAS_MGIOL/OPOS (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_62/F0 SLICE_53/D1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_53/F1 SLICE_71/D0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_65/Q1 SLICE_54/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_65/Q1 SLICE_65/D0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_65/Q0 SLICE_54/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_65/Q0 SLICE_65/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_65/Q0 SLICE_65/M1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_54/F1 SLICE_54/D0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_54/F1 SLICE_55/D0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_56/F0 SLICE_54/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_78/F1 SLICE_55/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_59/F0 SLICE_55/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_59/F0 SLICE_56/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_85/F1 SLICE_55/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_85/F1 SLICE_56/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_55/F1 SLICE_55/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_56/F1 SLICE_56/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_58/F1 SLICE_58/D0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_78/F0 SLICE_58/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_67/F0 SLICE_60/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_61/F0 SLICE_61/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_61/F1 SLICE_66/C1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_62/F1 SLICE_62/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_62/F1 RA\[10\]_MGIOL/OPOS (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_63/F1 SLICE_63/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_72/F1 SLICE_64/C1 (0:0:0)(0:0:0)) + (INTERCONNECT PHI2_MGIOL/IN SLICE_65/M0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_65/F1 UFMCLK_MGIOL/CE (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_66/F1 nRCS_MGIOL/OPOS (0:0:0)(0:0:0)) + (INTERCONNECT Din\[2\]_I/PADDI SLICE_68/C0 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[2\]_I/PADDI SLICE_68/M0 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[2\]_I/PADDI SLICE_74/B1 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[2\]_I/PADDI SLICE_74/B0 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[2\]_I/PADDI RD\[2\]_MGIOL/OPOS (0:0:0)(0:0:0)) + (INTERCONNECT Din\[2\]_I/PADDI Din\[2\]_MGIOL/DI (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_73/F1 SLICE_68/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_68/F1 SLICE_68/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_68/Q0 SLICE_69/A1 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[7\]_MGIOL/IN SLICE_69/B1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_69/F1 SLICE_69/C0 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[6\]_MGIOL/IN SLICE_69/B0 (0:0:0)(0:0:0)) + (INTERCONNECT Din\[5\]_MGIOL/IN SLICE_69/A0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_76/F1 SLICE_71/C0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_71/F1 SLICE_71/B0 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_71/F0 nRWE_MGIOL/OPOS (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_75/F0 RA\[9\]_I/PADDO (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_75/F1 RDQML_I/PADDO (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_79/F0 RA\[8\]_I/PADDO (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_79/F1 RDQMH_I/PADDO (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_80/F0 RA\[0\]_I/PADDO (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_80/F1 RA\[7\]_I/PADDO (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_81/F0 RA\[1\]_I/PADDO (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_81/F1 RA\[6\]_I/PADDO (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_82/F0 RA\[2\]_I/PADDO (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_82/F1 RA\[5\]_I/PADDO (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_83/F0 RA\[3\]_I/PADDO (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_83/F1 RA\[4\]_I/PADDO (0:0:0)(0:0:0)) + (INTERCONNECT CROW\[0\]_I/PADDI SLICE_84/A1 (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_84/F0 RA\[11\]_MGIOL/OPOS (0:0:0)(0:0:0)) + (INTERCONNECT SLICE_84/F1 RBA\[0\]_MGIOL/OPOS (0:0:0)(0:0:0)) + (INTERCONNECT RD\[0\]_MGIOL/IOLDO RD\[0\]_I/IOLDO (0:0:0)(0:0:0)) + (INTERCONNECT UFMSDI_MGIOL/IOLDO UFMSDI_I/IOLDO (0:0:0)(0:0:0)) + (INTERCONNECT UFMCLK_MGIOL/IOLDO UFMCLK_I/IOLDO (0:0:0)(0:0:0)) + (INTERCONNECT nUFMCS_MGIOL/IOLDO nUFMCS_I/IOLDO (0:0:0)(0:0:0)) + (INTERCONNECT nRCAS_MGIOL/IOLDO nRCAS_I/IOLDO (0:0:0)(0:0:0)) + (INTERCONNECT nRRAS_MGIOL/IOLDO nRRAS_I/IOLDO (0:0:0)(0:0:0)) + (INTERCONNECT nRWE_MGIOL/IOLDO nRWE_I/IOLDO (0:0:0)(0:0:0)) + (INTERCONNECT RCKE_MGIOL/IOLDO RCKE_I/IOLDO (0:0:0)(0:0:0)) + (INTERCONNECT nRCS_MGIOL/IOLDO nRCS_I/IOLDO (0:0:0)(0:0:0)) + (INTERCONNECT RD\[7\]_MGIOL/IOLDO RD\[7\]_I/IOLDO (0:0:0)(0:0:0)) + (INTERCONNECT RD\[6\]_MGIOL/IOLDO RD\[6\]_I/IOLDO (0:0:0)(0:0:0)) + (INTERCONNECT RD\[5\]_MGIOL/IOLDO RD\[5\]_I/IOLDO (0:0:0)(0:0:0)) + (INTERCONNECT RD\[4\]_MGIOL/IOLDO RD\[4\]_I/IOLDO (0:0:0)(0:0:0)) + (INTERCONNECT RD\[3\]_MGIOL/IOLDO RD\[3\]_I/IOLDO (0:0:0)(0:0:0)) + (INTERCONNECT RD\[2\]_MGIOL/IOLDO RD\[2\]_I/IOLDO (0:0:0)(0:0:0)) + (INTERCONNECT RD\[1\]_MGIOL/IOLDO RD\[1\]_I/IOLDO (0:0:0)(0:0:0)) + (INTERCONNECT RA\[11\]_MGIOL/IOLDO RA\[11\]_I/IOLDO (0:0:0)(0:0:0)) + (INTERCONNECT RA\[10\]_MGIOL/IOLDO RA\[10\]_I/IOLDO (0:0:0)(0:0:0)) + (INTERCONNECT RBA\[1\]_MGIOL/IOLDO RBA\[1\]_I/IOLDO (0:0:0)(0:0:0)) + (INTERCONNECT RBA\[0\]_MGIOL/IOLDO RBA\[0\]_I/IOLDO (0:0:0)(0:0:0)) ) ) ) diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_mapvo.vo b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_mapvo.vo index 49fcc79..c0bd4e2 100644 --- a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_mapvo.vo +++ b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_mapvo.vo @@ -2,8 +2,8 @@ // Verilog netlist produced by program ldbanno, Version Diamond (64-bit) 3.12.1.454 // ldbanno -n Verilog -o RAM2GS_LCMXO2_640HC_impl1_mapvo.vo -w -neg -gui -msgset D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/promote.xml RAM2GS_LCMXO2_640HC_impl1_map.ncd -// Netlist created on Tue Aug 15 05:03:24 2023 -// Netlist written on Tue Aug 15 05:03:26 2023 +// Netlist created on Tue Aug 15 22:56:31 2023 +// Netlist written on Tue Aug 15 22:56:32 2023 // Design is for device LCMXO2-640HC // Design is for package TQFP100 // Design is for performance grade 4 @@ -22,377 +22,426 @@ module RAM2GS ( PHI2, MAin, CROW, Din, Dout, nCCAS, nCRAS, nFWE, LED, RBA, RA, output LED; output [1:0] RBA; output [11:0] RA; + output [7:0] RD; output nRCS, RCKE, nRWE, nRRAS, nRCAS, RDQMH, RDQML, nUFMCS, UFMCLK, UFMSDI; - inout [7:0] RD; - wire FS_14, FS_13, n81, n82, RCLK_c, n1998, n1999, FS_12, FS_11, n83, n84, - n1997, FS_8, FS_7, n87, n88, n1995, n1996, FS_6, FS_5, n89, n90, - n1994, FS_2, FS_1, n93, n94, n1992, n1993, FS_0, n95, CASr2, CASr3, - FS_10, FS_9, n85, n86, FS_17, n78, n2000, FS_4, FS_3, n91, n92, FS_16, - FS_15, n79, n80, Din_c_4, Din_c_6, Din_c_1, Din_c_7, n2382, n8, n2225, - n2180, ADSubmitted_N_246, PHI2_N_120_enable_2, C1Submitted_N_237, - PHI2_c, ADSubmitted, n26, MAin_c_5, n22, MAin_c_2, MAin_c_1, - C1Submitted, n2365, nFWE_c, n1398, nCCAS_c, nCCAS_N_3, CASr, n2254, - Din_c_5, n2191, n2183, n15_adj_1, n2208, n2363, CmdEnable_N_248, - PHI2_N_120_enable_1, CmdEnable, \n2447\001/BUF1 , PHI2_N_120_enable_7, - CmdSubmitted, n1314, n8MEGEN, Din_c_0, Cmdn8MEGEN_N_264, - PHI2_N_120_enable_6, Cmdn8MEGEN, Din_c_3, n2373, nCRAS_c, FWEr, CBR, - \n2447\000/BUF1 , RCLK_c_enable_28, InitReady, n2447, - RCLK_c_enable_16, LEDEN, nCRAS_c__inv, RASr, LED_c, RASr2, - nRowColSel_N_35, nRCAS_N_165, Ready, n2381, nRCS_N_139, n2036, - nRWE_N_177, RA_0, XOR8MEG, RA11_N_184, RA_c, n6_adj_2, PHI2r2, PHI2r3, - n15_adj_4, RCKEEN_N_121, RCLK_c_enable_6, RCKEEN, RCLK_c_enable_10, - RASr3, RCKE_N_132, PHI2r, RCKE_c, \n2447\002/BUF1 , Ready_N_292, - n2267, n13_adj_6, CmdUFMCLK, n1893, UFMCLK_N_224, n2366, UFMCLK_c, - n10, n7, n4, CmdUFMSDI, n2174, UFMSDI_N_231, UFMSDI_c, n2260, Din_c_2, - XOR8MEG_N_110, PHI2_N_120_enable_3, n2375, UFMSDO_c, n2367, - n8MEGEN_N_91, RCLK_c_enable_15, nRCS_N_142, nRCAS_N_166, n2371, - nRCAS_N_161, nRCAS_c, nRCS_N_141, nRCS_N_137, nRCS_N_136, nRCS_c, - n2379, nRRAS_N_156, nRRAS_c, nRWE_N_178, n1765, nRWE_N_171, - RCLK_c_enable_5, nRWE_c, nRowColSel_N_34, nRowColSel_N_33, n2376, - n1060, n2372, n917, nRowColSel, nRowColSel_N_32, n827, n2227, n1406, - Bank_3, Bank_6, n2287, n13, n2374, n2368, CmdUFMCS, n64, nUFMCS_N_199, - nUFMCS_c, n6_adj_3, Ready_N_296, n2204, n2369, MAin_c_0, - PHI2_N_120_enable_8, Bank_5, n2277, Bank_2, n2220, RowA_0, RowA_1, - n2370, n2228, n732, n733, RCLK_c_enable_27, n2055, MAin_c_9, MAin_c_8, - RowA_8, RowA_9, n2210, nRWE_N_182, nRCS_N_146, n728, n729, n727, n730, - n2378, n726, n12, MAin_c_4, RowA_4, RowA_5, n1277, n4_adj_7, n2377, - n738, n737, n14, n15, n6, CROW_c_1, CROW_c_0, RBA_c_0, RBA_c_1, - n7_adj_5, n2362, WRD_6, WRD_7, WRD_4, WRD_5, WRD_0, WRD_1, MAin_c_3, - RowA_2, RowA_3, WRD_2, WRD_3, RA_1_9, Bank_0, RDQML_c, Bank_1, n734, - n735, RA_1_8, RDQMH_c, Bank_4, MAin_c_7, RowA_7, RA_1_7, Bank_7, - MAin_c_6, RowA_6, RA_1_6, RA_1_5, RA_1_0, RA_1_4, RA_1_1, RA_1_3, - RA_1_2, n984, n736, Dout_c, Dout_0, Dout_1, Dout_2, Dout_3, Dout_4, - Dout_5, Dout_6, VCCI; + wire \FS[0] , \FS_s[0] , RCLK_c, \FS_cry[0] , \FS[17] , \FS_s[17] , + \FS_cry[16] , \FS[16] , \FS[15] , \FS_s[16] , \FS_s[15] , + \FS_cry[14] , \FS[14] , \FS[13] , \FS_s[14] , \FS_s[13] , + \FS_cry[12] , \FS[12] , \FS[11] , \FS_s[12] , \FS_s[11] , + \FS_cry[10] , \FS[10] , \FS[9] , \FS_s[10] , \FS_s[9] , \FS_cry[8] , + \FS[8] , \FS[7] , \FS_s[8] , \FS_s[7] , \FS_cry[6] , \FS[6] , \FS[5] , + \FS_s[6] , \FS_s[5] , \FS_cry[4] , \FS[4] , \FS[3] , \FS_s[4] , + \FS_s[3] , \FS_cry[2] , \FS[2] , \FS[1] , \FS_s[2] , \FS_s[1] , + CmdEnable17_5, CmdEnable17_4, ADWR, CmdEnable16, CmdEnable17, + un1_ADWR, ADSubmitted, ADSubmitted_r, PHI2_c, un1_Bank_1, \MAin_c[2] , + CmdEnable16_5, C1WR_3, C1Submitted, C1Submitted_s, nFWE_c, nCCAS_c, + nCCAS_c_i, CASr, RD_1_i, CASr2, \S[1] , RASr2, \IS[3] , CO0, N_166_i, + Ready_0_sqmuxa_0_a3_2, CmdEnable, un1_CMDWR, CmdEnable_s, N_36, + \Din_c[5] , \Din_c[1] , N_94, N_60, N_59, LEDEN, N_14_i, XOR8MEG18, + CmdLEDEN, \Din_c[3] , CmdSubmitted, CmdSubmitted_1_sqmuxa, N_412_0, + CmdUFMCLK_1_sqmuxa, n8MEGEN, Cmdn8MEGEN_4_u_i_0, N_12_i, Cmdn8MEGEN, + \MAin_c[1] , ADWR_6, ADWR_3, nFWE_c_i, nCRAS_c, FWEr, CMDWR_2, Ready, + N_151, \IS[0] , N_60_i_i, RA10s_i, \IS[2] , \IS[1] , N_180_i, + IS_n1_0_x2, N_48_i, N_58_i_i, N_137_5, N_137_3, InitReady, InitReady3, + N_413_0, N_74_i, N_28, CBR, nCRAS_c_i_0, RASr, LED_c, \S_0_i_o2[1] , + RCKEEN_8_u_1_0, RCKEEN_8_u_0_0, RCKEEN_8, RCKEEN, Ready_fast, + \CROW_c[1] , RASr3, RCKE_2, RCKE_c, \RBAd_0[1] , N_158, N_414_0, + Ready_0_sqmuxa, N_415_0, \MAin_c[0] , \RowAd_0[1] , \RowAd_0[0] , + \RowA[0] , \RowA[1] , \MAin_c[3] , \RowAd_0[3] , \RowAd_0[2] , + \RowA[2] , \RowA[3] , \MAin_c[5] , \MAin_c[4] , \RowAd_0[5] , + \RowAd_0[4] , \RowA[4] , \RowA[5] , \MAin_c[7] , \MAin_c[6] , + \RowAd_0[7] , \RowAd_0[6] , \RowA[6] , \RowA[7] , \MAin_c[9] , + \MAin_c[8] , \RowAd_0[9] , \RowAd_0[8] , \RowA[8] , \RowA[9] , + nRCAS_0_sqmuxa_1, CmdUFMSDI, N_145, UFMSDI_ens2_i_a0, nUFMCS15, + UFMSDI_c, UFMSDI_RNO, N_141_i, \Din_c[7] , \Din_c[6] , \Din_c[4] , + un1_Din_3, XOR8MEG_3_u_1, XOR8MEG, \Din_c[0] , XOR8MEG_3, \Bank[4] , + \Bank[3] , \Bank[1] , \Bank[0] , UFMSDO_c, N_131, N_26, un1_Bank_1_4, + CASr3, N_168, nRowColSel_0_0, nRRAS_0_sqmuxa, nRowColSel, + UFMCLK_r_i_a2_2_2, CmdUFMCS, nUFMCS_c, nUFMCS_s_0_m4_yy, + nUFMCS_s_0_N_5_i, N_129, d_m3_0_a2_0, CmdUFMCLK, i1_i, N_50, N_154, + un1_nRCAS_6_sqmuxa_i_0, N_45, N_146_i_1, N_27_i_1, N_146_i, + nRRAS_5_u_i_0, N_24_i, nRWE_s_i_a3_1_0, nRWE_s_i_tz_0, PHI2r3, PHI2r2, + un1_PHI2r3_0, N_140, un1_FS_14_i_a2_0_1, N_139_8, N_139_6, N_139, + un1_FS_13_i_a2_1, UFMSDI_ens2_i_a2_4_2, N_34, ADWR_2, N_24, N_27_i_sn, + N_153, C1WR_1, UFMSDI_ens2_i_o2_0_3, PHI2r, i2_i, N_27_i, \Din_c[2] , + CmdEnable16_4, CmdEnable16_3, \Bank[2] , \Bank[7] , un1_Bank_1_3, + \Bank[6] , \Bank[5] , nRWE_0io_RNO_1, nRWE_0io_RNO_0, N_147_i, + \RA_c[9] , RDQML_c, \RA_c[8] , RDQMH_c, \RA_c[0] , \RA_c[7] , + \RA_c[1] , \RA_c[6] , \RA_c[2] , \RA_c[5] , \RA_c[3] , \RA_c[4] , + \CROW_c[0] , RA11d_0, \RBAd_0[0] , \WRD[0] , \UFMSDI_c$n0 , UFMCLK_c, + \nUFMCS_c$n1 , nRCAS_c, nRRAS_c, nRWE_c, \RCKE_c$n2 , nRCS_c, + \WRD[7] , \WRD[6] , \WRD[5] , \WRD[4] , \WRD[3] , \WRD[2] , \WRD[1] , + \RA_c[11] , \RA_c[10] , \RBA_c[1] , \RBA_c[0] , VCCI; - SLICE_0 SLICE_0( .A1(FS_14), .A0(FS_13), .DI1(n81), .DI0(n82), .CLK(RCLK_c), - .FCI(n1998), .F0(n82), .Q0(FS_13), .F1(n81), .Q1(FS_14), .FCO(n1999)); - SLICE_1 SLICE_1( .A1(FS_12), .A0(FS_11), .DI1(n83), .DI0(n84), .CLK(RCLK_c), - .FCI(n1997), .F0(n84), .Q0(FS_11), .F1(n83), .Q1(FS_12), .FCO(n1998)); - SLICE_2 SLICE_2( .A1(FS_8), .A0(FS_7), .DI1(n87), .DI0(n88), .CLK(RCLK_c), - .FCI(n1995), .F0(n88), .Q0(FS_7), .F1(n87), .Q1(FS_8), .FCO(n1996)); - SLICE_3 SLICE_3( .A1(FS_6), .A0(FS_5), .DI1(n89), .DI0(n90), .CLK(RCLK_c), - .FCI(n1994), .F0(n90), .Q0(FS_5), .F1(n89), .Q1(FS_6), .FCO(n1995)); - SLICE_4 SLICE_4( .A1(FS_2), .A0(FS_1), .DI1(n93), .DI0(n94), .CLK(RCLK_c), - .FCI(n1992), .F0(n94), .Q0(FS_1), .F1(n93), .Q1(FS_2), .FCO(n1993)); - SLICE_5 SLICE_5( .A1(FS_0), .DI1(n95), .M0(CASr2), .CLK(RCLK_c), .Q0(CASr3), - .F1(n95), .Q1(FS_0), .FCO(n1992)); - SLICE_6 SLICE_6( .A1(FS_10), .A0(FS_9), .DI1(n85), .DI0(n86), .CLK(RCLK_c), - .FCI(n1996), .F0(n86), .Q0(FS_9), .F1(n85), .Q1(FS_10), .FCO(n1997)); - SLICE_7 SLICE_7( .A0(FS_17), .DI0(n78), .CLK(RCLK_c), .FCI(n2000), .F0(n78), - .Q0(FS_17)); - SLICE_8 SLICE_8( .A1(FS_4), .A0(FS_3), .DI1(n91), .DI0(n92), .CLK(RCLK_c), - .FCI(n1993), .F0(n92), .Q0(FS_3), .F1(n91), .Q1(FS_4), .FCO(n1994)); - SLICE_9 SLICE_9( .A1(FS_16), .A0(FS_15), .DI1(n79), .DI0(n80), .CLK(RCLK_c), - .FCI(n1999), .F0(n80), .Q0(FS_15), .F1(n79), .Q1(FS_16), .FCO(n2000)); - SLICE_10 SLICE_10( .D1(Din_c_4), .C1(Din_c_6), .B1(Din_c_1), .A1(Din_c_7), - .D0(n2382), .C0(n8), .B0(n2225), .A0(n2180), .DI0(ADSubmitted_N_246), - .CE(PHI2_N_120_enable_2), .LSR(C1Submitted_N_237), .CLK(PHI2_c), - .F0(ADSubmitted_N_246), .Q0(ADSubmitted), .F1(n8)); - SLICE_15 SLICE_15( .D1(n26), .C1(MAin_c_5), .B1(n22), .A1(MAin_c_2), - .D0(MAin_c_1), .C0(C1Submitted), .B0(n2365), .A0(nFWE_c), .DI0(n1398), - .LSR(C1Submitted_N_237), .CLK(PHI2_c), .F0(n1398), .Q0(C1Submitted), - .F1(n2365)); - SLICE_16 SLICE_16( .A0(nCCAS_c), .DI0(nCCAS_N_3), .M1(CASr), .CLK(RCLK_c), - .F0(nCCAS_N_3), .Q0(CASr), .Q1(CASr2)); - SLICE_19 SLICE_19( .D1(n2254), .C1(Din_c_5), .B1(n2191), .A1(n2183), - .D0(n15_adj_1), .C0(n2208), .B0(MAin_c_1), .A0(n2363), - .DI0(CmdEnable_N_248), .CE(PHI2_N_120_enable_1), .CLK(PHI2_c), - .F0(CmdEnable_N_248), .Q0(CmdEnable), .F1(n15_adj_1)); - SLICE_20 SLICE_20( .DI0(\n2447\001/BUF1 ), .CE(PHI2_N_120_enable_7), - .CLK(PHI2_c), .F0(\n2447\001/BUF1 ), .Q0(CmdSubmitted)); - SLICE_24 SLICE_24( .C1(Din_c_5), .B1(Din_c_7), .A1(Din_c_6), .D0(n1314), - .C0(Din_c_4), .B0(n8MEGEN), .A0(Din_c_0), .DI0(Cmdn8MEGEN_N_264), - .CE(PHI2_N_120_enable_6), .CLK(PHI2_c), .F0(Cmdn8MEGEN_N_264), - .Q0(Cmdn8MEGEN), .F1(n1314)); - SLICE_25 SLICE_25( .C1(Din_c_3), .B1(Din_c_5), .A1(nFWE_c), .A0(nFWE_c), - .DI0(n2373), .M1(nCCAS_N_3), .CLK(nCRAS_c), .F0(n2373), .Q0(FWEr), - .F1(n2180), .Q1(CBR)); - SLICE_26 SLICE_26( .DI0(\n2447\000/BUF1 ), .CE(RCLK_c_enable_28), - .CLK(RCLK_c), .F0(\n2447\000/BUF1 ), .Q0(InitReady)); - SLICE_27 SLICE_27( .DI0(n2447), .CE(RCLK_c_enable_16), .CLK(RCLK_c), - .F0(n2447), .Q0(LEDEN)); - SLICE_30 SLICE_30( .C1(CBR), .B1(LEDEN), .A1(nCRAS_c), .A0(nCRAS_c), - .DI0(nCRAS_c__inv), .M1(RASr), .CLK(RCLK_c), .F0(nCRAS_c__inv), .Q0(RASr), + SLICE_0 SLICE_0( .A1(\FS[0] ), .DI1(\FS_s[0] ), .CLK(RCLK_c), .F1(\FS_s[0] ), + .Q1(\FS[0] ), .FCO(\FS_cry[0] )); + SLICE_1 SLICE_1( .A0(\FS[17] ), .DI0(\FS_s[17] ), .CLK(RCLK_c), + .FCI(\FS_cry[16] ), .F0(\FS_s[17] ), .Q0(\FS[17] )); + SLICE_2 SLICE_2( .A1(\FS[16] ), .A0(\FS[15] ), .DI1(\FS_s[16] ), + .DI0(\FS_s[15] ), .CLK(RCLK_c), .FCI(\FS_cry[14] ), .F0(\FS_s[15] ), + .Q0(\FS[15] ), .F1(\FS_s[16] ), .Q1(\FS[16] ), .FCO(\FS_cry[16] )); + SLICE_3 SLICE_3( .A1(\FS[14] ), .A0(\FS[13] ), .DI1(\FS_s[14] ), + .DI0(\FS_s[13] ), .CLK(RCLK_c), .FCI(\FS_cry[12] ), .F0(\FS_s[13] ), + .Q0(\FS[13] ), .F1(\FS_s[14] ), .Q1(\FS[14] ), .FCO(\FS_cry[14] )); + SLICE_4 SLICE_4( .A1(\FS[12] ), .A0(\FS[11] ), .DI1(\FS_s[12] ), + .DI0(\FS_s[11] ), .CLK(RCLK_c), .FCI(\FS_cry[10] ), .F0(\FS_s[11] ), + .Q0(\FS[11] ), .F1(\FS_s[12] ), .Q1(\FS[12] ), .FCO(\FS_cry[12] )); + SLICE_5 SLICE_5( .A1(\FS[10] ), .A0(\FS[9] ), .DI1(\FS_s[10] ), + .DI0(\FS_s[9] ), .CLK(RCLK_c), .FCI(\FS_cry[8] ), .F0(\FS_s[9] ), + .Q0(\FS[9] ), .F1(\FS_s[10] ), .Q1(\FS[10] ), .FCO(\FS_cry[10] )); + SLICE_6 SLICE_6( .A1(\FS[8] ), .A0(\FS[7] ), .DI1(\FS_s[8] ), + .DI0(\FS_s[7] ), .CLK(RCLK_c), .FCI(\FS_cry[6] ), .F0(\FS_s[7] ), + .Q0(\FS[7] ), .F1(\FS_s[8] ), .Q1(\FS[8] ), .FCO(\FS_cry[8] )); + SLICE_7 SLICE_7( .A1(\FS[6] ), .A0(\FS[5] ), .DI1(\FS_s[6] ), + .DI0(\FS_s[5] ), .CLK(RCLK_c), .FCI(\FS_cry[4] ), .F0(\FS_s[5] ), + .Q0(\FS[5] ), .F1(\FS_s[6] ), .Q1(\FS[6] ), .FCO(\FS_cry[6] )); + SLICE_8 SLICE_8( .A1(\FS[4] ), .A0(\FS[3] ), .DI1(\FS_s[4] ), + .DI0(\FS_s[3] ), .CLK(RCLK_c), .FCI(\FS_cry[2] ), .F0(\FS_s[3] ), + .Q0(\FS[3] ), .F1(\FS_s[4] ), .Q1(\FS[4] ), .FCO(\FS_cry[4] )); + SLICE_9 SLICE_9( .A1(\FS[2] ), .A0(\FS[1] ), .DI1(\FS_s[2] ), + .DI0(\FS_s[1] ), .CLK(RCLK_c), .FCI(\FS_cry[0] ), .F0(\FS_s[1] ), + .Q0(\FS[1] ), .F1(\FS_s[2] ), .Q1(\FS[2] ), .FCO(\FS_cry[2] )); + SLICE_10 SLICE_10( .C1(CmdEnable17_5), .B1(CmdEnable17_4), .A1(ADWR), + .D0(CmdEnable16), .C0(CmdEnable17), .B0(un1_ADWR), .A0(ADSubmitted), + .DI0(ADSubmitted_r), .CLK(PHI2_c), .F0(ADSubmitted_r), .Q0(ADSubmitted), + .F1(CmdEnable17)); + SLICE_13 SLICE_13( .D1(un1_Bank_1), .C1(\MAin_c[2] ), .B1(CmdEnable16_5), + .A1(C1WR_3), .C0(CmdEnable16), .B0(un1_ADWR), .A0(C1Submitted), + .DI0(C1Submitted_s), .CLK(PHI2_c), .F0(C1Submitted_s), .Q0(C1Submitted), + .F1(CmdEnable16)); + SLICE_14 SLICE_14( .B1(nFWE_c), .A1(nCCAS_c), .A0(nCCAS_c), .DI0(nCCAS_c_i), + .M1(CASr), .CLK(RCLK_c), .F0(nCCAS_c_i), .Q0(CASr), .F1(RD_1_i), + .Q1(CASr2)); + SLICE_17 SLICE_17( .D1(\S[1] ), .C1(RASr2), .B1(\IS[3] ), .A1(CO0), + .B0(\S[1] ), .A0(CO0), .DI0(N_166_i), .LSR(RASr2), .CLK(RCLK_c), + .F0(N_166_i), .Q0(CO0), .F1(Ready_0_sqmuxa_0_a3_2)); + SLICE_18 SLICE_18( .B1(ADSubmitted), .A1(CmdEnable), .D0(C1Submitted), + .C0(un1_CMDWR), .B0(CmdEnable), .A0(CmdEnable17), .DI0(CmdEnable_s), + .M0(CmdEnable16), .CLK(PHI2_c), .OFX0(CmdEnable_s), .Q0(CmdEnable)); + SLICE_19 SLICE_19( .C1(N_36), .B1(\Din_c[5] ), .A1(\Din_c[1] ), .D0(N_94), + .C0(N_60), .B0(N_59), .A0(LEDEN), .DI0(N_14_i), .CE(XOR8MEG18), + .CLK(PHI2_c), .F0(N_14_i), .Q0(CmdLEDEN), .F1(N_60)); + SLICE_20 SLICE_20( .D1(\Din_c[3] ), .C1(\Din_c[5] ), .B1(N_36), + .A1(XOR8MEG18), .B0(CmdSubmitted), .A0(CmdSubmitted_1_sqmuxa), + .DI0(N_412_0), .CLK(PHI2_c), .F0(N_412_0), .Q0(CmdSubmitted), + .F1(CmdUFMCLK_1_sqmuxa)); + SLICE_21 SLICE_21( .C1(N_36), .B1(\Din_c[5] ), .A1(\Din_c[3] ), .C0(n8MEGEN), + .B0(N_94), .A0(Cmdn8MEGEN_4_u_i_0), .DI0(N_12_i), .CE(XOR8MEG18), + .CLK(PHI2_c), .F0(N_12_i), .Q0(Cmdn8MEGEN), .F1(N_94)); + SLICE_22 SLICE_22( .D1(nFWE_c), .C1(\MAin_c[1] ), .B1(ADWR_6), .A1(ADWR_3), + .A0(nFWE_c), .DI0(nFWE_c_i), .CLK(nCRAS_c), .F0(nFWE_c_i), .Q0(FWEr), + .F1(CMDWR_2)); + SLICE_23 SLICE_23( .D1(Ready), .C1(N_151), .B1(\IS[3] ), .A1(\IS[0] ), + .C0(Ready), .B0(N_151), .A0(\IS[0] ), .DI0(N_60_i_i), .CLK(RCLK_c), + .F0(N_60_i_i), .Q0(\IS[0] ), .F1(RA10s_i)); + SLICE_24 SLICE_24( .C1(\IS[2] ), .B1(\IS[1] ), .A1(\IS[0] ), .B0(\IS[1] ), + .A0(\IS[0] ), .DI1(N_180_i), .DI0(IS_n1_0_x2), .CE(N_48_i), .CLK(RCLK_c), + .F0(IS_n1_0_x2), .Q0(\IS[1] ), .F1(N_180_i), .Q1(\IS[2] )); + SLICE_25 SLICE_25( .D0(\IS[0] ), .C0(\IS[1] ), .B0(\IS[2] ), .A0(\IS[3] ), + .DI0(N_58_i_i), .CE(N_48_i), .CLK(RCLK_c), .F0(N_58_i_i), .Q0(\IS[3] )); + SLICE_26 SLICE_26( .D1(N_137_5), .C1(N_137_3), .B1(\FS[16] ), .A1(\FS[10] ), + .B0(InitReady), .A0(InitReady3), .DI0(N_413_0), .CLK(RCLK_c), .F0(N_413_0), + .Q0(InitReady), .F1(InitReady3)); + SLICE_27 SLICE_27( .B0(InitReady), .A0(CmdLEDEN), .DI0(N_74_i), .CE(N_28), + .CLK(RCLK_c), .F0(N_74_i), .Q0(LEDEN)); + SLICE_29 SLICE_29( .C1(nCRAS_c), .B1(LEDEN), .A1(CBR), .A0(nCRAS_c), + .DI0(nCRAS_c_i_0), .M1(RASr), .CLK(RCLK_c), .F0(nCRAS_c_i_0), .Q0(RASr), .F1(LED_c), .Q1(RASr2)); - SLICE_32 SLICE_32( .C1(nRowColSel_N_35), .B1(InitReady), .A1(RASr2), - .D0(nRCAS_N_165), .C0(Ready), .B0(n2381), .A0(nRCS_N_139), .DI0(n2036), - .LSR(nRWE_N_177), .CLK(RCLK_c), .F0(n2036), .Q0(RA_0), .F1(n2381)); - SLICE_33 SLICE_33( .C1(Din_c_4), .B1(Din_c_7), .A1(Din_c_6), .C0(n8MEGEN), - .B0(XOR8MEG), .A0(Din_c_6), .DI0(RA11_N_184), .LSR(Ready), .CLK(PHI2_c), - .F0(RA11_N_184), .Q0(RA_c), .F1(n6_adj_2)); - SLICE_35 SLICE_35( .D1(InitReady), .C1(CmdSubmitted), .B1(PHI2r2), - .A1(PHI2r3), .C0(Ready), .B0(n15_adj_4), .A0(InitReady), - .DI0(RCKEEN_N_121), .CE(RCLK_c_enable_6), .CLK(RCLK_c), .F0(RCKEEN_N_121), - .Q0(RCKEEN), .F1(RCLK_c_enable_10)); - SLICE_36 SLICE_36( .D0(RASr3), .C0(RASr2), .B0(RCKEEN), .A0(RASr), - .DI0(RCKE_N_132), .M1(PHI2r), .CLK(RCLK_c), .F0(RCKE_N_132), .Q0(RCKE_c), - .Q1(PHI2r2)); - SLICE_37 SLICE_37( .DI0(\n2447\002/BUF1 ), .CE(Ready_N_292), .CLK(RCLK_c), - .F0(\n2447\002/BUF1 ), .Q0(Ready)); - SLICE_44 SLICE_44( .D1(FS_1), .C1(n2267), .B1(n13_adj_6), .A1(FS_4), - .C0(InitReady), .B0(CmdUFMCLK), .A0(n1893), .DI0(UFMCLK_N_224), - .CE(RCLK_c_enable_10), .LSR(n2366), .CLK(RCLK_c), .F0(UFMCLK_N_224), - .Q0(UFMCLK_c), .F1(n1893)); - SLICE_45 SLICE_45( .D1(n10), .C1(FS_10), .B1(FS_8), .A1(n7), .D0(n4), - .C0(InitReady), .B0(CmdUFMSDI), .A0(n2174), .DI0(UFMSDI_N_231), - .CE(RCLK_c_enable_10), .LSR(n2366), .CLK(RCLK_c), .F0(UFMSDI_N_231), - .Q0(UFMSDI_c), .F1(n2174)); - SLICE_50 SLICE_50( .D1(LEDEN), .C1(n1314), .B1(Din_c_1), .A1(Din_c_4), - .D0(Din_c_3), .C0(n2260), .B0(Din_c_2), .A0(Din_c_0), .DI0(XOR8MEG_N_110), - .CE(PHI2_N_120_enable_3), .CLK(PHI2_c), .F0(XOR8MEG_N_110), .Q0(XOR8MEG), - .F1(n2260)); - SLICE_57 SLICE_57( .D1(FS_10), .C1(FS_11), .B1(n2375), .A1(n10), - .D0(Cmdn8MEGEN), .C0(UFMSDO_c), .B0(n2367), .A0(InitReady), - .DI0(n8MEGEN_N_91), .CE(RCLK_c_enable_15), .CLK(RCLK_c), .F0(n8MEGEN_N_91), - .Q0(n8MEGEN), .F1(n2367)); - SLICE_59 SLICE_59( .D1(CBR), .C1(nRowColSel_N_35), .B1(RASr2), - .A1(nRCS_N_142), .D0(nRCAS_N_166), .C0(Ready), .B0(nRCAS_N_165), - .A0(n2371), .DI0(nRCAS_N_161), .CE(RCLK_c_enable_6), .CLK(RCLK_c), - .F0(nRCAS_N_161), .Q0(nRCAS_c), .F1(nRCAS_N_166)); - SLICE_61 SLICE_61( .D1(nRCS_N_142), .C1(nRowColSel_N_35), .B1(RASr2), - .A1(RCKE_c), .C0(Ready), .B0(nRCS_N_141), .A0(nRCS_N_137), - .DI0(nRCS_N_136), .CE(RCLK_c_enable_6), .CLK(RCLK_c), .F0(nRCS_N_136), - .Q0(nRCS_c), .F1(nRCS_N_141)); - SLICE_62 SLICE_62( .D1(RASr2), .C1(nRowColSel_N_35), .B1(InitReady), - .A1(nRCS_N_139), .D0(nRowColSel_N_35), .C0(Ready), .B0(n2379), - .A0(nRCS_N_137), .DI0(nRRAS_N_156), .CE(RCLK_c_enable_6), .CLK(RCLK_c), - .F0(nRRAS_N_156), .Q0(nRRAS_c), .F1(nRCS_N_137)); - SLICE_64 SLICE_64( .B1(nRCAS_N_165), .A1(nRWE_N_177), .D0(n2371), .C0(Ready), - .B0(nRWE_N_178), .A0(n1765), .DI0(nRWE_N_171), .CE(RCLK_c_enable_5), - .CLK(RCLK_c), .F0(nRWE_N_171), .Q0(nRWE_c), .F1(n1765)); - SLICE_65 SLICE_65( .B1(nRowColSel_N_34), .A1(nRowColSel_N_33), .D0(n2376), - .C0(n1060), .B0(n2372), .A0(FWEr), .DI0(n917), .CE(RCLK_c_enable_5), - .CLK(RCLK_c), .F0(n917), .Q0(nRowColSel), .F1(n1060)); - SLICE_66 SLICE_66( .B1(CASr2), .A1(nRowColSel_N_33), .B0(nRowColSel_N_32), - .A0(nRowColSel_N_33), .DI0(n827), .LSR(RASr2), .CLK(RCLK_c), .F0(n827), - .Q0(nRowColSel_N_32), .F1(n2227)); - SLICE_67 SLICE_67( .B0(nRowColSel_N_32), .A0(RASr2), .DI0(n1406), - .LSR(nRowColSel_N_34), .CLK(RCLK_c), .F0(n1406), .Q0(nRowColSel_N_33)); - SLICE_68 SLICE_68( .B1(FS_0), .A1(FS_8), .B0(Bank_3), .A0(Bank_6), - .M0(n1406), .LSR(nRowColSel_N_35), .CLK(RCLK_c), .F0(n2287), - .Q0(nRowColSel_N_34), .F1(n13)); - SLICE_69 SLICE_69( .B1(RASr2), .A1(RCKE_c), .A0(RASr2), .DI0(n2374), - .M1(PHI2r2), .CLK(RCLK_c), .F0(n2374), .Q0(nRowColSel_N_35), .F1(n2379), - .Q1(PHI2r3)); - SLICE_70 SLICE_70( .D1(FS_10), .C1(InitReady), .B1(n2368), .A1(FS_11), - .D0(InitReady), .C0(CmdUFMCS), .B0(n64), .A0(n13_adj_6), - .DI0(nUFMCS_N_199), .CE(RCLK_c_enable_10), .CLK(RCLK_c), .F0(nUFMCS_N_199), - .Q0(nUFMCS_c), .F1(n64)); - i30_SLICE_71 \i30/SLICE_71 ( .C1(RASr2), .B1(FWEr), .A1(CBR), - .D0(nRowColSel_N_34), .C0(FWEr), .B0(n2227), .A0(CBR), - .M0(nRowColSel_N_35), .OFX0(n15_adj_4)); - SLICE_72 SLICE_72( .D1(Ready), .C1(nRowColSel_N_32), .B1(n6_adj_3), - .A1(RASr2), .B0(Ready_N_296), .A0(InitReady), .F0(n6_adj_3), - .F1(Ready_N_292)); - SLICE_73 SLICE_73( .D1(n2204), .C1(n2180), .B1(n26), .A1(n2369), - .D0(n6_adj_2), .C0(CmdEnable), .B0(MAin_c_0), .A0(MAin_c_1), .F0(n2204), - .F1(PHI2_N_120_enable_8)); - SLICE_74 SLICE_74( .D1(Bank_5), .C1(n2287), .B1(n2277), .A1(Bank_2), - .D0(nFWE_c), .C0(n2204), .B0(n26), .A0(n2369), .M1(MAin_c_1), - .M0(MAin_c_0), .LSR(Ready), .CLK(nCRAS_c), .F0(n2220), .Q0(RowA_0), - .F1(n26), .Q1(RowA_1)); - SLICE_75 SLICE_75( .D1(n2370), .C1(n2183), .B1(n2228), .A1(Din_c_5), - .B0(Din_c_3), .A0(Din_c_6), .M1(n732), .M0(n733), .CE(RCLK_c_enable_27), - .CLK(RCLK_c), .F0(n2183), .Q0(n732), .F1(n2055), .Q1(nRWE_N_177)); - SLICE_76 SLICE_76( .C1(n10), .B1(FS_14), .A1(FS_12), .D0(InitReady), - .C0(n2368), .B0(FS_11), .A0(FS_10), .M1(MAin_c_9), .M0(MAin_c_8), - .LSR(Ready), .CLK(nCRAS_c), .F0(RCLK_c_enable_16), .Q0(RowA_8), .F1(n2368), - .Q1(RowA_9)); - SLICE_77 SLICE_77( .D1(n2208), .C1(C1Submitted), .B1(n2191), .A1(Din_c_5), - .D0(MAin_c_0), .C0(Din_c_6), .B0(Din_c_3), .A0(Din_c_2), .F0(n2191), - .F1(n2210)); - SLICE_78 SLICE_78( .D1(nRowColSel_N_35), .C1(nRWE_N_182), .B1(n1060), - .A1(nRCS_N_146), .B0(RASr2), .A0(RCKE_c), .M1(n728), .M0(n729), - .CE(RCLK_c_enable_27), .CLK(RCLK_c), .F0(nRWE_N_182), .Q0(n728), - .F1(nRWE_N_178), .Q1(n727)); - SLICE_79 SLICE_79( .C1(MAin_c_5), .B1(n22), .A1(MAin_c_2), .D0(MAin_c_1), - .C0(nFWE_c), .B0(n26), .A0(n2369), .M1(n730), .M0(nRWE_N_177), - .CE(RCLK_c_enable_27), .CLK(RCLK_c), .F0(PHI2_N_120_enable_2), .Q0(n730), - .F1(n2369), .Q1(n729)); - SLICE_80 SLICE_80( .B1(FS_14), .A1(FS_12), .D0(FS_11), .C0(InitReady), - .B0(n2375), .A0(n10), .F0(n2366), .F1(n2375)); - SLICE_81 SLICE_81( .B1(CBR), .A1(FWEr), .D0(nRowColSel_N_33), .C0(n2378), - .B0(nRowColSel_N_34), .A0(nRCS_N_146), .M1(n726), .M0(n727), - .CE(RCLK_c_enable_27), .CLK(RCLK_c), .F0(nRCS_N_142), .Q0(n726), - .F1(n2378), .Q1(Ready_N_296)); - SLICE_82 SLICE_82( .D1(FS_17), .C1(FS_14), .B1(n12), .A1(FS_11), - .B0(n13_adj_6), .A0(FS_10), .M1(MAin_c_5), .M0(MAin_c_4), .LSR(Ready), - .CLK(nCRAS_c), .F0(RCLK_c_enable_28), .Q0(RowA_4), .F1(n13_adj_6), - .Q1(RowA_5)); - SLICE_83 SLICE_83( .D1(n1314), .C1(n1277), .B1(CmdEnable), .A1(n2228), - .D0(MAin_c_1), .C0(MAin_c_0), .B0(n26), .A0(n2369), .F0(n1277), - .F1(PHI2_N_120_enable_3)); - SLICE_84 SLICE_84( .C1(CmdSubmitted), .B1(PHI2r2), .A1(PHI2r3), - .D0(n4_adj_7), .C0(InitReady), .B0(n2377), .A0(n2367), .M1(n738), - .M0(nRCAS_N_165), .CE(RCLK_c_enable_27), .CLK(RCLK_c), - .F0(RCLK_c_enable_15), .Q0(n738), .F1(n2377), .Q1(n737)); - SLICE_85 SLICE_85( .D1(n10), .C1(FS_11), .B1(FS_14), .A1(FS_12), .D0(FS_16), - .C0(FS_15), .B0(FS_13), .A0(FS_17), .F0(n10), .F1(n2267)); - SLICE_86 SLICE_86( .C1(FS_6), .B1(FS_9), .A1(FS_3), .D0(n14), .C0(n13), - .B0(n15), .A0(FS_4), .M1(RASr2), .M0(PHI2_c), .CLK(RCLK_c), .F0(n4_adj_7), - .Q0(PHI2r), .F1(n14), .Q1(RASr3)); - SLICE_87 SLICE_87( .D1(n6), .C1(nRowColSel_N_32), .B1(nRowColSel_N_33), - .A1(nRowColSel_N_35), .B0(nRowColSel_N_34), .A0(Ready), .M1(CROW_c_1), - .M0(CROW_c_0), .LSR(Ready), .CLK(nCRAS_c), .F0(n6), .Q0(RBA_c_0), - .F1(RCLK_c_enable_6), .Q1(RBA_c_1)); - SLICE_88 SLICE_88( .D1(n2363), .C1(C1Submitted_N_237), .B1(ADSubmitted), - .A1(n7_adj_5), .D0(n2362), .C0(MAin_c_0), .B0(n2055), .A0(Din_c_2), - .M1(Din_c_7), .M0(Din_c_6), .CLK(nCCAS_c), .F0(C1Submitted_N_237), - .Q0(WRD_6), .F1(PHI2_N_120_enable_1), .Q1(WRD_7)); - SLICE_89 SLICE_89( .D1(Din_c_5), .C1(Din_c_3), .B1(Din_c_4), .A1(n2220), - .D0(Din_c_3), .C0(Din_c_4), .B0(n2220), .A0(Din_c_5), .M1(Din_c_5), - .M0(Din_c_4), .CLK(nCCAS_c), .F0(PHI2_N_120_enable_6), .Q0(WRD_4), - .F1(PHI2_N_120_enable_7), .Q1(WRD_5)); - SLICE_90 SLICE_90( .D1(Din_c_0), .C1(Din_c_4), .B1(Din_c_1), .A1(Din_c_7), - .C0(Din_c_0), .B0(Din_c_1), .A0(Din_c_7), .M1(Din_c_1), .M0(Din_c_0), - .CLK(nCCAS_c), .F0(n2370), .Q0(WRD_0), .F1(n2208), .Q1(WRD_1)); - SLICE_91 SLICE_91( .C1(MAin_c_1), .B1(n26), .A1(n2369), .D0(MAin_c_1), - .C0(MAin_c_0), .B0(n26), .A0(n2369), .M1(MAin_c_3), .M0(MAin_c_2), - .LSR(Ready), .CLK(nCRAS_c), .F0(n2225), .Q0(RowA_2), .F1(n2362), - .Q1(RowA_3)); - SLICE_92 SLICE_92( .D1(Ready), .C1(nRowColSel_N_35), .B1(InitReady), - .A1(RASr2), .D0(nRCS_N_139), .C0(nRowColSel_N_35), .B0(InitReady), - .A0(RASr2), .M1(Din_c_3), .M0(Din_c_2), .CLK(nCCAS_c), .F0(n2371), - .Q0(WRD_2), .F1(RCLK_c_enable_27), .Q1(WRD_3)); - SLICE_93 SLICE_93( .B1(nRowColSel), .A1(MAin_c_9), .C0(nRowColSel), - .B0(MAin_c_9), .A0(RowA_9), .M1(Din_c_1), .M0(Din_c_0), .CLK(PHI2_c), - .F0(RA_1_9), .Q0(Bank_0), .F1(RDQML_c), .Q1(Bank_1)); - SLICE_94 SLICE_94( .B1(nRowColSel_N_35), .A1(Ready), .D0(nRowColSel_N_35), - .C0(nRowColSel_N_32), .B0(n1060), .A0(Ready), .F0(RCLK_c_enable_5), - .F1(n2372)); - SLICE_95 SLICE_95( .D1(FS_5), .C1(FS_9), .B1(FS_7), .A1(n2375), .D0(FS_2), - .C0(FS_1), .B0(FS_7), .A0(FS_5), .F0(n15), .F1(n7)); - SLICE_96 SLICE_96( .B1(CASr3), .A1(CBR), .D0(CASr2), .C0(FWEr), .B0(CASr3), - .A0(CBR), .F0(nRCS_N_146), .F1(n2376)); - SLICE_97 SLICE_97( .C1(MAin_c_1), .B1(n2210), .A1(MAin_c_0), .B0(Din_c_2), - .A0(MAin_c_0), .M1(n734), .M0(n735), .CE(RCLK_c_enable_27), .CLK(RCLK_c), - .F0(n2254), .Q0(n734), .F1(n7_adj_5), .Q1(n733)); - SLICE_98 SLICE_98( .B1(nRowColSel), .A1(MAin_c_9), .C0(nRowColSel), - .B0(MAin_c_8), .A0(RowA_8), .M1(nRCS_N_139), .M0(Ready_N_296), - .CE(RCLK_c_enable_27), .CLK(RCLK_c), .F0(RA_1_8), .Q0(nRCS_N_139), - .F1(RDQMH_c), .Q1(nRCAS_N_165)); - SLICE_99 SLICE_99( .D1(Bank_1), .C1(Bank_4), .B1(MAin_c_3), .A1(MAin_c_7), - .C0(nRowColSel), .B0(MAin_c_7), .A0(RowA_7), .M0(Din_c_0), - .CE(PHI2_N_120_enable_8), .CLK(PHI2_c), .F0(RA_1_7), .Q0(CmdUFMSDI), - .F1(n22)); - SLICE_100 SLICE_100( .D1(Bank_0), .C1(Bank_7), .B1(MAin_c_4), .A1(MAin_c_6), - .C0(nRowColSel), .B0(MAin_c_6), .A0(RowA_6), .M1(Din_c_2), .M0(Din_c_1), - .CE(PHI2_N_120_enable_8), .CLK(PHI2_c), .F0(RA_1_6), .Q0(CmdUFMCLK), - .F1(n2277), .Q1(CmdUFMCS)); - SLICE_101 SLICE_101( .C1(nRowColSel), .B1(MAin_c_0), .A1(RowA_0), - .C0(nRowColSel), .B0(MAin_c_5), .A0(RowA_5), .M1(Din_c_7), .M0(Din_c_6), - .CLK(PHI2_c), .F0(RA_1_5), .Q0(Bank_6), .F1(RA_1_0), .Q1(Bank_7)); - SLICE_102 SLICE_102( .C1(nRowColSel), .B1(MAin_c_1), .A1(RowA_1), - .C0(nRowColSel), .B0(MAin_c_4), .A0(RowA_4), .M1(Din_c_5), .M0(Din_c_4), - .CLK(PHI2_c), .F0(RA_1_4), .Q0(Bank_4), .F1(RA_1_1), .Q1(Bank_5)); - SLICE_103 SLICE_103( .C1(nRowColSel), .B1(MAin_c_2), .A1(RowA_2), - .C0(nRowColSel), .B0(MAin_c_3), .A0(RowA_3), .M1(Din_c_3), .M0(Din_c_2), - .CLK(PHI2_c), .F0(RA_1_3), .Q0(Bank_2), .F1(RA_1_2), .Q1(Bank_3)); - SLICE_104 SLICE_104( .B1(nFWE_c), .A1(nCCAS_c), .C0(nFWE_c), .B0(n26), - .A0(n2369), .M1(MAin_c_7), .M0(MAin_c_6), .LSR(Ready), .CLK(nCRAS_c), - .F0(n2363), .Q0(RowA_6), .F1(n984), .Q1(RowA_7)); - SLICE_105 SLICE_105( .B1(FS_6), .A1(FS_11), .D0(FS_16), .C0(FS_15), - .B0(FS_12), .A0(FS_13), .F0(n12), .F1(n4)); - SLICE_106 SLICE_106( .B1(Din_c_2), .A1(Din_c_0), .B0(Din_c_4), .A0(nFWE_c), - .M1(n736), .M0(n737), .CE(RCLK_c_enable_27), .CLK(RCLK_c), .F0(n2228), - .Q0(n736), .F1(n2382), .Q1(n735)); - RD_7_ \RD[7]_I ( .PADDI(Dout_c), .PADDT(n984), .PADDO(WRD_7), .RD7(RD[7])); - RD_6_ \RD[6]_I ( .PADDI(Dout_0), .PADDT(n984), .PADDO(WRD_6), .RD6(RD[6])); - RD_5_ \RD[5]_I ( .PADDI(Dout_1), .PADDT(n984), .PADDO(WRD_5), .RD5(RD[5])); - RD_4_ \RD[4]_I ( .PADDI(Dout_2), .PADDT(n984), .PADDO(WRD_4), .RD4(RD[4])); - RD_3_ \RD[3]_I ( .PADDI(Dout_3), .PADDT(n984), .PADDO(WRD_3), .RD3(RD[3])); - RD_2_ \RD[2]_I ( .PADDI(Dout_4), .PADDT(n984), .PADDO(WRD_2), .RD2(RD[2])); - RD_1_ \RD[1]_I ( .PADDI(Dout_5), .PADDT(n984), .PADDO(WRD_1), .RD1(RD[1])); - RD_0_ \RD[0]_I ( .PADDI(Dout_6), .PADDT(n984), .PADDO(WRD_0), .RD0(RD[0])); - Dout_7_ \Dout[7]_I ( .PADDO(Dout_c), .Dout7(Dout[7])); - Dout_6_ \Dout[6]_I ( .PADDO(Dout_0), .Dout6(Dout[6])); - Dout_5_ \Dout[5]_I ( .PADDO(Dout_1), .Dout5(Dout[5])); - Dout_4_ \Dout[4]_I ( .PADDO(Dout_2), .Dout4(Dout[4])); - Dout_3_ \Dout[3]_I ( .PADDO(Dout_3), .Dout3(Dout[3])); - Dout_2_ \Dout[2]_I ( .PADDO(Dout_4), .Dout2(Dout[2])); - Dout_1_ \Dout[1]_I ( .PADDO(Dout_5), .Dout1(Dout[1])); - Dout_0_ \Dout[0]_I ( .PADDO(Dout_6), .Dout0(Dout[0])); - LED LED_I( .PADDO(LED_c), .LED(LED)); - RBA_1_ \RBA[1]_I ( .PADDO(RBA_c_1), .RBA1(RBA[1])); - RBA_0_ \RBA[0]_I ( .PADDO(RBA_c_0), .RBA0(RBA[0])); - RA_11_ \RA[11]_I ( .PADDO(RA_c), .RA11(RA[11])); - RA_10_ \RA[10]_I ( .PADDO(RA_0), .RA10(RA[10])); - RA_9_ \RA[9]_I ( .PADDO(RA_1_9), .RA9(RA[9])); - RA_8_ \RA[8]_I ( .PADDO(RA_1_8), .RA8(RA[8])); - RA_7_ \RA[7]_I ( .PADDO(RA_1_7), .RA7(RA[7])); - RA_6_ \RA[6]_I ( .PADDO(RA_1_6), .RA6(RA[6])); - RA_5_ \RA[5]_I ( .PADDO(RA_1_5), .RA5(RA[5])); - RA_4_ \RA[4]_I ( .PADDO(RA_1_4), .RA4(RA[4])); - RA_3_ \RA[3]_I ( .PADDO(RA_1_3), .RA3(RA[3])); - RA_2_ \RA[2]_I ( .PADDO(RA_1_2), .RA2(RA[2])); - RA_1_ \RA[1]_I ( .PADDO(RA_1_1), .RA1(RA[1])); - RA_0_ \RA[0]_I ( .PADDO(RA_1_0), .RA0(RA[0])); - nRCS nRCS_I( .PADDO(nRCS_c), .nRCS(nRCS)); - RCKE RCKE_I( .PADDO(RCKE_c), .RCKE(RCKE)); - nRWE nRWE_I( .PADDO(nRWE_c), .nRWE(nRWE)); - nRRAS nRRAS_I( .PADDO(nRRAS_c), .nRRAS(nRRAS)); - nRCAS nRCAS_I( .PADDO(nRCAS_c), .nRCAS(nRCAS)); - RDQMH RDQMH_I( .PADDO(RDQMH_c), .RDQMH(RDQMH)); - RDQML RDQML_I( .PADDO(RDQML_c), .RDQML(RDQML)); - nUFMCS nUFMCS_I( .PADDO(nUFMCS_c), .nUFMCS(nUFMCS)); - UFMCLK UFMCLK_I( .PADDO(UFMCLK_c), .UFMCLK(UFMCLK)); - UFMSDI UFMSDI_I( .PADDO(UFMSDI_c), .UFMSDI(UFMSDI)); + SLICE_31 SLICE_31( .D1(\S_0_i_o2[1] ), .C1(InitReady), .B1(RASr2), + .A1(Ready), .D0(Ready), .C0(RCKEEN_8_u_1_0), .B0(RCKEEN_8_u_0_0), .A0(CBR), + .DI0(RCKEEN_8), .CLK(RCLK_c), .F0(RCKEEN_8), .Q0(RCKEEN), + .F1(RCKEEN_8_u_0_0)); + SLICE_32 SLICE_32( .B1(Ready_fast), .A1(\CROW_c[1] ), .D0(RCKEEN), + .C0(RASr3), .B0(RASr2), .A0(RASr), .DI0(RCKE_2), .M1(RASr2), .CLK(RCLK_c), + .F0(RCKE_2), .Q0(RCKE_c), .F1(\RBAd_0[1] ), .Q1(RASr3)); + SLICE_33 SLICE_33( .C1(\IS[2] ), .B1(\IS[1] ), .A1(\IS[0] ), .D0(InitReady), + .C0(N_158), .B0(Ready_0_sqmuxa_0_a3_2), .A0(Ready), .DI0(N_414_0), + .CLK(RCLK_c), .F0(N_414_0), .Q0(Ready), .F1(N_158)); + SLICE_34 SLICE_34( .D1(Ready_0_sqmuxa_0_a3_2), .C1(Ready), .B1(N_158), + .A1(InitReady), .B0(Ready_fast), .A0(Ready_0_sqmuxa), .DI0(N_415_0), + .CLK(RCLK_c), .F0(N_415_0), .Q0(Ready_fast), .F1(Ready_0_sqmuxa)); + SLICE_35 SLICE_35( .B1(Ready_fast), .A1(\MAin_c[1] ), .B0(Ready_fast), + .A0(\MAin_c[0] ), .DI1(\RowAd_0[1] ), .DI0(\RowAd_0[0] ), .CLK(nCRAS_c), + .F0(\RowAd_0[0] ), .Q0(\RowA[0] ), .F1(\RowAd_0[1] ), .Q1(\RowA[1] )); + SLICE_36 SLICE_36( .B1(Ready_fast), .A1(\MAin_c[3] ), .B0(Ready_fast), + .A0(\MAin_c[2] ), .DI1(\RowAd_0[3] ), .DI0(\RowAd_0[2] ), .CLK(nCRAS_c), + .F0(\RowAd_0[2] ), .Q0(\RowA[2] ), .F1(\RowAd_0[3] ), .Q1(\RowA[3] )); + SLICE_37 SLICE_37( .B1(Ready_fast), .A1(\MAin_c[5] ), .B0(Ready_fast), + .A0(\MAin_c[4] ), .DI1(\RowAd_0[5] ), .DI0(\RowAd_0[4] ), .CLK(nCRAS_c), + .F0(\RowAd_0[4] ), .Q0(\RowA[4] ), .F1(\RowAd_0[5] ), .Q1(\RowA[5] )); + SLICE_38 SLICE_38( .B1(Ready_fast), .A1(\MAin_c[7] ), .B0(Ready_fast), + .A0(\MAin_c[6] ), .DI1(\RowAd_0[7] ), .DI0(\RowAd_0[6] ), .CLK(nCRAS_c), + .F0(\RowAd_0[6] ), .Q0(\RowA[6] ), .F1(\RowAd_0[7] ), .Q1(\RowA[7] )); + SLICE_39 SLICE_39( .B1(Ready_fast), .A1(\MAin_c[9] ), .B0(Ready_fast), + .A0(\MAin_c[8] ), .DI1(\RowAd_0[9] ), .DI0(\RowAd_0[8] ), .CLK(nCRAS_c), + .F0(\RowAd_0[8] ), .Q0(\RowA[8] ), .F1(\RowAd_0[9] ), .Q1(\RowA[9] )); + SLICE_40 SLICE_40( .D1(Ready), .C1(RASr2), .B1(\S_0_i_o2[1] ), .A1(CBR), + .B0(\S[1] ), .A0(CO0), .DI0(\S_0_i_o2[1] ), .LSR(RASr2), .CLK(RCLK_c), + .F0(\S_0_i_o2[1] ), .Q0(\S[1] ), .F1(nRCAS_0_sqmuxa_1)); + SLICE_41 SLICE_41( .D1(CmdUFMSDI), .C1(N_145), .B1(UFMSDI_ens2_i_a0), + .A1(nUFMCS15), .B0(nUFMCS15), .A0(UFMSDI_c), .DI0(UFMSDI_RNO), + .M0(N_141_i), .CLK(RCLK_c), .OFX0(UFMSDI_RNO), .Q0(UFMSDI_c)); + SLICE_42 SLICE_42( .D1(\Din_c[7] ), .C1(\Din_c[6] ), .B1(\Din_c[5] ), + .A1(\Din_c[4] ), .D0(un1_Din_3), .C0(XOR8MEG_3_u_1), .B0(XOR8MEG), + .A0(\Din_c[0] ), .DI0(XOR8MEG_3), .CE(XOR8MEG18), .CLK(PHI2_c), + .F0(XOR8MEG_3), .Q0(XOR8MEG), .F1(un1_Din_3)); + SLICE_43 SLICE_43( .D1(\Bank[4] ), .C1(\Bank[3] ), .B1(\Bank[1] ), + .A1(\Bank[0] ), .C0(UFMSDO_c), .B0(InitReady), .A0(Cmdn8MEGEN), + .DI0(N_131), .CE(N_26), .CLK(RCLK_c), .F0(N_131), .Q0(n8MEGEN), + .F1(un1_Bank_1_4)); + SLICE_44 SLICE_44( .D1(Ready), .C1(FWEr), .B1(CBR), .A1(CASr3), .D0(\S[1] ), + .C0(Ready), .B0(N_168), .A0(CO0), .DI0(nRowColSel_0_0), + .LSR(nRRAS_0_sqmuxa), .CLK(RCLK_c), .F0(nRowColSel_0_0), .Q0(nRowColSel), + .F1(N_168)); + SLICE_45 SLICE_45( .D1(UFMCLK_r_i_a2_2_2), .C1(nUFMCS15), .B1(InitReady), + .A1(CmdUFMCS), .D0(nUFMCS_c), .C0(nUFMCS_s_0_m4_yy), .B0(nUFMCS15), + .A0(N_141_i), .DI0(nUFMCS_s_0_N_5_i), .CLK(RCLK_c), .F0(nUFMCS_s_0_N_5_i), + .Q0(nUFMCS_c), .F1(nUFMCS_s_0_m4_yy)); + SLICE_46 SLICE_46( .D1(un1_Bank_1), .C1(\MAin_c[2] ), .B1(C1WR_3), .A1(ADWR), + .D0(un1_ADWR), .C0(un1_Bank_1), .B0(\MAin_c[2] ), .A0(CMDWR_2), + .F0(un1_CMDWR), .F1(un1_ADWR)); + SLICE_47 SLICE_47( .D1(N_129), .C1(InitReady), .B1(\FS[11] ), .A1(\FS[10] ), + .D0(d_m3_0_a2_0), .C0(nUFMCS15), .B0(InitReady), .A0(CmdUFMCLK), .F0(i1_i), + .F1(nUFMCS15)); + SLICE_48 SLICE_48( .D1(N_137_5), .C1(N_137_3), .B1(InitReady), .A1(\FS[16] ), + .C0(UFMCLK_r_i_a2_2_2), .B0(N_50), .A0(InitReady), .F0(d_m3_0_a2_0), + .F1(UFMCLK_r_i_a2_2_2)); + SLICE_49 SLICE_49( .D1(CO0), .C1(\S[1] ), .B1(InitReady), .A1(RASr2), + .D0(\S[1] ), .C0(Ready), .B0(N_154), .A0(N_151), + .F0(un1_nRCAS_6_sqmuxa_i_0), .F1(N_151)); + SLICE_50 SLICE_50( .D1(\Din_c[0] ), .C1(\Din_c[5] ), .B1(Cmdn8MEGEN), + .A1(N_45), .C0(N_36), .B0(\Din_c[5] ), .A0(\Din_c[3] ), .F0(N_45), + .F1(Cmdn8MEGEN_4_u_i_0)); + SLICE_51 SLICE_51( .C1(\S[1] ), .B1(un1_nRCAS_6_sqmuxa_i_0), .A1(CBR), + .D0(\S[1] ), .C0(N_146_i_1), .B0(nRCAS_0_sqmuxa_1), .A0(N_27_i_1), + .F0(N_146_i), .F1(N_146_i_1)); + SLICE_52 SLICE_52( .C1(\IS[1] ), .B1(\IS[2] ), .A1(\IS[3] ), .D0(\IS[0] ), + .C0(N_151), .B0(N_154), .A0(nRRAS_5_u_i_0), .F0(N_24_i), .F1(N_154)); + SLICE_53 SLICE_53( .D1(nRWE_s_i_a3_1_0), .C1(nRRAS_0_sqmuxa), .B1(RCKE_c), + .A1(RASr2), .C0(CO0), .B0(\S[1] ), .A0(Ready), .F0(nRRAS_0_sqmuxa), + .F1(nRWE_s_i_tz_0)); + SLICE_54 SLICE_54( .B1(PHI2r3), .A1(PHI2r2), .D0(un1_PHI2r3_0), .C0(N_140), + .B0(InitReady), .A0(CmdSubmitted), .F0(N_28), .F1(un1_PHI2r3_0)); + SLICE_55 SLICE_55( .C1(un1_FS_14_i_a2_0_1), .B1(N_139_8), .A1(N_139_6), + .D0(un1_PHI2r3_0), .C0(N_139), .B0(InitReady), .A0(CmdSubmitted), + .F0(N_26), .F1(N_139)); + SLICE_56 SLICE_56( .D1(\FS[5] ), .C1(\FS[3] ), .B1(\FS[2] ), .A1(\FS[0] ), + .C0(un1_FS_13_i_a2_1), .B0(N_139_8), .A0(N_139_6), .F0(N_140), + .F1(un1_FS_13_i_a2_1)); + SLICE_57 SLICE_57( .D1(\Din_c[3] ), .C1(\Din_c[5] ), .B1(N_36), + .A1(XOR8MEG18), .D0(un1_Bank_1), .C0(\MAin_c[2] ), .B0(CmdEnable), + .A0(CMDWR_2), .F0(XOR8MEG18), .F1(CmdSubmitted_1_sqmuxa)); + SLICE_58 SLICE_58( .D1(\FS[11] ), .C1(\FS[10] ), .B1(\FS[8] ), .A1(\FS[6] ), + .D0(UFMSDI_ens2_i_a2_4_2), .C0(N_129), .B0(N_34), .A0(InitReady), + .F0(UFMSDI_ens2_i_a0), .F1(UFMSDI_ens2_i_a2_4_2)); + SLICE_59 SLICE_59( .C1(N_129), .B1(InitReady), .A1(\FS[8] ), .D0(N_145), + .C0(\FS[11] ), .B0(\FS[9] ), .A0(\FS[4] ), .F0(N_139_8), .F1(N_145)); + SLICE_60 SLICE_60( .B1(\MAin_c[0] ), .A1(\MAin_c[7] ), .D0(un1_Bank_1), + .C0(\MAin_c[1] ), .B0(ADWR_3), .A0(ADWR_2), .F0(ADWR), .F1(ADWR_3)); + SLICE_61 SLICE_61( .C1(\S[1] ), .B1(N_24), .A1(CBR), .D0(nRRAS_5_u_i_0), + .C0(N_154), .B0(N_151), .A0(\IS[0] ), .F0(N_24), .F1(N_27_i_sn)); + SLICE_62 SLICE_62( .B1(\IS[2] ), .A1(\IS[1] ), .D0(Ready), .C0(N_153), + .B0(N_151), .A0(\IS[0] ), .F0(nRWE_s_i_a3_1_0), .F1(N_153)); + SLICE_63 SLICE_63( .B1(nFWE_c), .A1(\MAin_c[7] ), .D0(\MAin_c[1] ), + .C0(\MAin_c[0] ), .B0(C1WR_1), .A0(ADWR_6), .M1(\Din_c[1] ), + .M0(\Din_c[0] ), .CLK(PHI2_c), .F0(C1WR_3), .Q0(\Bank[0] ), .F1(C1WR_1), + .Q1(\Bank[1] )); + SLICE_64 SLICE_64( .C1(UFMSDI_ens2_i_o2_0_3), .B1(\FS[16] ), .A1(\FS[15] ), + .D0(N_129), .C0(\FS[11] ), .B0(\FS[4] ), .A0(\FS[1] ), .F0(N_50), + .F1(N_129)); + SLICE_65 SLICE_65( .B1(nUFMCS15), .A1(N_141_i), .D0(PHI2r3), .C0(PHI2r2), + .B0(InitReady), .A0(CmdSubmitted), .M1(PHI2r2), .M0(PHI2r), .CLK(RCLK_c), + .F0(N_141_i), .Q0(PHI2r2), .F1(i2_i), .Q1(PHI2r3)); + SLICE_66 SLICE_66( .D1(Ready), .C1(N_27_i_sn), .B1(N_27_i_1), .A1(N_24_i), + .D0(FWEr), .C0(CO0), .B0(CASr3), .A0(CASr2), .F0(N_27_i_1), .F1(N_27_i)); + SLICE_67 SLICE_67( .D1(\MAin_c[6] ), .C1(\MAin_c[5] ), .B1(\MAin_c[4] ), + .A1(\MAin_c[3] ), .C0(nFWE_c), .B0(\MAin_c[2] ), .A0(ADWR_6), .F0(ADWR_2), + .F1(ADWR_6)); + SLICE_68 SLICE_68( .B1(\Din_c[5] ), .A1(\Din_c[0] ), .D0(\Din_c[6] ), + .C0(\Din_c[2] ), .B0(CmdEnable16_4), .A0(CmdEnable16_3), .M0(\Din_c[2] ), + .CLK(PHI2_c), .F0(CmdEnable16_5), .Q0(\Bank[2] ), .F1(CmdEnable16_3)); + SLICE_69 SLICE_69( .B1(\Bank[7] ), .A1(\Bank[2] ), .D0(un1_Bank_1_4), + .C0(un1_Bank_1_3), .B0(\Bank[6] ), .A0(\Bank[5] ), .F0(un1_Bank_1), + .F1(un1_Bank_1_3)); + SLICE_70 SLICE_70( .D1(\Din_c[3] ), .C1(\Din_c[5] ), .B1(N_36), + .A1(CmdLEDEN), .C0(\Din_c[7] ), .B0(\Din_c[6] ), .A0(\Din_c[4] ), + .F0(N_36), .F1(N_59)); + SLICE_71 SLICE_71( .C1(CO0), .B1(CASr3), .A1(CASr2), .D0(nRWE_s_i_tz_0), + .C0(nRWE_0io_RNO_1), .B0(nRWE_0io_RNO_0), .A0(nRCAS_0_sqmuxa_1), + .F0(N_147_i), .F1(nRWE_0io_RNO_0)); + SLICE_72 SLICE_72( .D1(\FS[17] ), .C1(\FS[14] ), .B1(\FS[13] ), + .A1(\FS[12] ), .D0(\FS[17] ), .C0(\FS[15] ), .B0(\FS[13] ), .A0(\FS[12] ), + .F0(N_137_5), .F1(UFMSDI_ens2_i_o2_0_3)); + SLICE_73 SLICE_73( .D1(\Din_c[7] ), .C1(\Din_c[4] ), .B1(\Din_c[3] ), + .A1(\Din_c[1] ), .D0(\Din_c[7] ), .C0(\Din_c[5] ), .B0(\Din_c[4] ), + .A0(\Din_c[1] ), .M0(CASr2), .CLK(RCLK_c), .F0(CmdEnable17_5), .Q0(CASr3), + .F1(CmdEnable16_4)); + SLICE_74 SLICE_74( .D1(LEDEN), .C1(\Din_c[3] ), .B1(\Din_c[2] ), + .A1(\Din_c[1] ), .D0(\Din_c[6] ), .C0(\Din_c[3] ), .B0(\Din_c[2] ), + .A0(\Din_c[0] ), .M0(nCCAS_c_i), .CLK(nCRAS_c), .F0(CmdEnable17_4), + .Q0(CBR), .F1(XOR8MEG_3_u_1)); + SLICE_75 SLICE_75( .B1(nRowColSel), .A1(\MAin_c[9] ), .C0(nRowColSel), + .B0(\RowA[9] ), .A0(\MAin_c[9] ), .F0(\RA_c[9] ), .F1(RDQML_c)); + SLICE_76 SLICE_76( .D1(\S[1] ), .C1(Ready), .B1(FWEr), .A1(CBR), .D0(\S[1] ), + .C0(FWEr), .B0(CO0), .A0(CASr2), .F0(RCKEEN_8_u_1_0), .F1(nRWE_0io_RNO_1)); + SLICE_77 SLICE_77( .D1(Ready), .C1(RCKE_c), .B1(RASr2), .A1(\S_0_i_o2[1] ), + .B0(Ready), .A0(N_151), .F0(N_48_i), .F1(nRRAS_5_u_i_0)); + SLICE_78 SLICE_78( .D1(\FS[5] ), .C1(\FS[3] ), .B1(\FS[2] ), .A1(\FS[0] ), + .C0(\FS[9] ), .B0(\FS[7] ), .A0(\FS[5] ), .F0(N_34), + .F1(un1_FS_14_i_a2_0_1)); + SLICE_79 SLICE_79( .B1(nRowColSel), .A1(\MAin_c[9] ), .C0(nRowColSel), + .B0(\RowA[8] ), .A0(\MAin_c[8] ), .F0(\RA_c[8] ), .F1(RDQMH_c)); + SLICE_80 SLICE_80( .C1(nRowColSel), .B1(\RowA[7] ), .A1(\MAin_c[7] ), + .C0(nRowColSel), .B0(\RowA[0] ), .A0(\MAin_c[0] ), .F0(\RA_c[0] ), + .F1(\RA_c[7] )); + SLICE_81 SLICE_81( .C1(nRowColSel), .B1(\RowA[6] ), .A1(\MAin_c[6] ), + .C0(nRowColSel), .B0(\RowA[1] ), .A0(\MAin_c[1] ), .F0(\RA_c[1] ), + .F1(\RA_c[6] )); + SLICE_82 SLICE_82( .C1(nRowColSel), .B1(\RowA[5] ), .A1(\MAin_c[5] ), + .C0(nRowColSel), .B0(\RowA[2] ), .A0(\MAin_c[2] ), .F0(\RA_c[2] ), + .F1(\RA_c[5] )); + SLICE_83 SLICE_83( .C1(nRowColSel), .B1(\RowA[4] ), .A1(\MAin_c[4] ), + .C0(nRowColSel), .B0(\RowA[3] ), .A0(\MAin_c[3] ), .F0(\RA_c[3] ), + .F1(\RA_c[4] )); + SLICE_84 SLICE_84( .B1(Ready_fast), .A1(\CROW_c[0] ), .D0(n8MEGEN), + .C0(XOR8MEG), .B0(Ready_fast), .A0(\Din_c[6] ), .F0(RA11d_0), + .F1(\RBAd_0[0] )); + SLICE_85 SLICE_85( .D1(\FS[10] ), .C1(\FS[7] ), .B1(\FS[6] ), .A1(\FS[1] ), + .B0(\FS[14] ), .A0(\FS[11] ), .F0(N_137_3), .F1(N_139_6)); + RD_0_ \RD[0]_I ( .IOLDO(\WRD[0] ), .PADDT(RD_1_i), .RD0(RD[0])); + RD_0__MGIOL \RD[0]_MGIOL ( .IOLDO(\WRD[0] ), .OPOS(\Din_c[0] ), + .CLK(nCCAS_c)); + Dout_0_ \Dout[0]_I ( .PADDO(\MAin_c[3] ), .Dout0(Dout[0])); PHI2 PHI2_I( .PADDI(PHI2_c), .PHI2(PHI2)); - MAin_9_ \MAin[9]_I ( .PADDI(MAin_c_9), .MAin9(MAin[9])); - MAin_8_ \MAin[8]_I ( .PADDI(MAin_c_8), .MAin8(MAin[8])); - MAin_7_ \MAin[7]_I ( .PADDI(MAin_c_7), .MAin7(MAin[7])); - MAin_6_ \MAin[6]_I ( .PADDI(MAin_c_6), .MAin6(MAin[6])); - MAin_5_ \MAin[5]_I ( .PADDI(MAin_c_5), .MAin5(MAin[5])); - MAin_4_ \MAin[4]_I ( .PADDI(MAin_c_4), .MAin4(MAin[4])); - MAin_3_ \MAin[3]_I ( .PADDI(MAin_c_3), .MAin3(MAin[3])); - MAin_2_ \MAin[2]_I ( .PADDI(MAin_c_2), .MAin2(MAin[2])); - MAin_1_ \MAin[1]_I ( .PADDI(MAin_c_1), .MAin1(MAin[1])); - MAin_0_ \MAin[0]_I ( .PADDI(MAin_c_0), .MAin0(MAin[0])); - CROW_1_ \CROW[1]_I ( .PADDI(CROW_c_1), .CROW1(CROW[1])); - CROW_0_ \CROW[0]_I ( .PADDI(CROW_c_0), .CROW0(CROW[0])); - Din_7_ \Din[7]_I ( .PADDI(Din_c_7), .Din7(Din[7])); - Din_6_ \Din[6]_I ( .PADDI(Din_c_6), .Din6(Din[6])); - Din_5_ \Din[5]_I ( .PADDI(Din_c_5), .Din5(Din[5])); - Din_4_ \Din[4]_I ( .PADDI(Din_c_4), .Din4(Din[4])); - Din_3_ \Din[3]_I ( .PADDI(Din_c_3), .Din3(Din[3])); - Din_2_ \Din[2]_I ( .PADDI(Din_c_2), .Din2(Din[2])); - Din_1_ \Din[1]_I ( .PADDI(Din_c_1), .Din1(Din[1])); - Din_0_ \Din[0]_I ( .PADDI(Din_c_0), .Din0(Din[0])); - nCCAS nCCAS_I( .PADDI(nCCAS_c), .nCCAS(nCCAS)); - nCRAS nCRAS_I( .PADDI(nCRAS_c), .nCRAS(nCRAS)); - nFWE nFWE_I( .PADDI(nFWE_c), .nFWE(nFWE)); - RCLK RCLK_I( .PADDI(RCLK_c), .RCLK(RCLK)); + PHI2_MGIOL PHI2_MGIOL( .DI(PHI2_c), .CLK(RCLK_c), .IN(PHI2r)); UFMSDO UFMSDO_I( .PADDI(UFMSDO_c), .UFMSDO(UFMSDO)); + UFMSDI UFMSDI_I( .IOLDO(\UFMSDI_c$n0 ), .UFMSDI(UFMSDI)); + UFMSDI_MGIOL UFMSDI_MGIOL( .IOLDO(\UFMSDI_c$n0 ), .OPOS(UFMSDI_RNO), + .CLK(RCLK_c)); + UFMCLK UFMCLK_I( .IOLDO(UFMCLK_c), .UFMCLK(UFMCLK)); + UFMCLK_MGIOL UFMCLK_MGIOL( .IOLDO(UFMCLK_c), .OPOS(i1_i), .CE(i2_i), + .CLK(RCLK_c)); + nUFMCS nUFMCS_I( .IOLDO(\nUFMCS_c$n1 ), .nUFMCS(nUFMCS)); + nUFMCS_MGIOL nUFMCS_MGIOL( .IOLDO(\nUFMCS_c$n1 ), .OPOS(nUFMCS_s_0_N_5_i), + .CLK(RCLK_c)); + RDQML RDQML_I( .PADDO(RDQML_c), .RDQML(RDQML)); + RDQMH RDQMH_I( .PADDO(RDQMH_c), .RDQMH(RDQMH)); + nRCAS nRCAS_I( .IOLDO(nRCAS_c), .nRCAS(nRCAS)); + nRCAS_MGIOL nRCAS_MGIOL( .IOLDO(nRCAS_c), .OPOS(N_146_i), .CLK(RCLK_c)); + nRRAS nRRAS_I( .IOLDO(nRRAS_c), .nRRAS(nRRAS)); + nRRAS_MGIOL nRRAS_MGIOL( .IOLDO(nRRAS_c), .OPOS(N_24_i), .CLK(RCLK_c)); + nRWE nRWE_I( .IOLDO(nRWE_c), .nRWE(nRWE)); + nRWE_MGIOL nRWE_MGIOL( .IOLDO(nRWE_c), .OPOS(N_147_i), .CLK(RCLK_c)); + RCKE RCKE_I( .IOLDO(\RCKE_c$n2 ), .RCKE(RCKE)); + RCKE_MGIOL RCKE_MGIOL( .IOLDO(\RCKE_c$n2 ), .OPOS(RCKE_2), .CLK(RCLK_c)); + RCLK RCLK_I( .PADDI(RCLK_c), .RCLK(RCLK)); + nRCS nRCS_I( .IOLDO(nRCS_c), .nRCS(nRCS)); + nRCS_MGIOL nRCS_MGIOL( .IOLDO(nRCS_c), .OPOS(N_27_i), .CLK(RCLK_c)); + RD_7_ \RD[7]_I ( .IOLDO(\WRD[7] ), .PADDT(RD_1_i), .RD7(RD[7])); + RD_7__MGIOL \RD[7]_MGIOL ( .IOLDO(\WRD[7] ), .OPOS(\Din_c[7] ), + .CLK(nCCAS_c)); + RD_6_ \RD[6]_I ( .IOLDO(\WRD[6] ), .PADDT(RD_1_i), .RD6(RD[6])); + RD_6__MGIOL \RD[6]_MGIOL ( .IOLDO(\WRD[6] ), .OPOS(\Din_c[6] ), + .CLK(nCCAS_c)); + RD_5_ \RD[5]_I ( .IOLDO(\WRD[5] ), .PADDT(RD_1_i), .RD5(RD[5])); + RD_5__MGIOL \RD[5]_MGIOL ( .IOLDO(\WRD[5] ), .OPOS(\Din_c[5] ), + .CLK(nCCAS_c)); + RD_4_ \RD[4]_I ( .IOLDO(\WRD[4] ), .PADDT(RD_1_i), .RD4(RD[4])); + RD_4__MGIOL \RD[4]_MGIOL ( .IOLDO(\WRD[4] ), .OPOS(\Din_c[4] ), + .CLK(nCCAS_c)); + RD_3_ \RD[3]_I ( .IOLDO(\WRD[3] ), .PADDT(RD_1_i), .RD3(RD[3])); + RD_3__MGIOL \RD[3]_MGIOL ( .IOLDO(\WRD[3] ), .OPOS(\Din_c[3] ), + .CLK(nCCAS_c)); + RD_2_ \RD[2]_I ( .IOLDO(\WRD[2] ), .PADDT(RD_1_i), .RD2(RD[2])); + RD_2__MGIOL \RD[2]_MGIOL ( .IOLDO(\WRD[2] ), .OPOS(\Din_c[2] ), + .CLK(nCCAS_c)); + RD_1_ \RD[1]_I ( .IOLDO(\WRD[1] ), .PADDT(RD_1_i), .RD1(RD[1])); + RD_1__MGIOL \RD[1]_MGIOL ( .IOLDO(\WRD[1] ), .OPOS(\Din_c[1] ), + .CLK(nCCAS_c)); + RA_11_ \RA[11]_I ( .IOLDO(\RA_c[11] ), .RA11(RA[11])); + RA_11__MGIOL \RA[11]_MGIOL ( .IOLDO(\RA_c[11] ), .OPOS(RA11d_0), + .CLK(PHI2_c)); + RA_10_ \RA[10]_I ( .IOLDO(\RA_c[10] ), .RA10(RA[10])); + RA_10__MGIOL \RA[10]_MGIOL ( .IOLDO(\RA_c[10] ), .OPOS(N_153), .LSR(RA10s_i), + .CLK(RCLK_c)); + RA_9_ \RA[9]_I ( .PADDO(\RA_c[9] ), .RA9(RA[9])); + RA_8_ \RA[8]_I ( .PADDO(\RA_c[8] ), .RA8(RA[8])); + RA_7_ \RA[7]_I ( .PADDO(\RA_c[7] ), .RA7(RA[7])); + RA_6_ \RA[6]_I ( .PADDO(\RA_c[6] ), .RA6(RA[6])); + RA_5_ \RA[5]_I ( .PADDO(\RA_c[5] ), .RA5(RA[5])); + RA_4_ \RA[4]_I ( .PADDO(\RA_c[4] ), .RA4(RA[4])); + RA_3_ \RA[3]_I ( .PADDO(\RA_c[3] ), .RA3(RA[3])); + RA_2_ \RA[2]_I ( .PADDO(\RA_c[2] ), .RA2(RA[2])); + RA_1_ \RA[1]_I ( .PADDO(\RA_c[1] ), .RA1(RA[1])); + RA_0_ \RA[0]_I ( .PADDO(\RA_c[0] ), .RA0(RA[0])); + RBA_1_ \RBA[1]_I ( .IOLDO(\RBA_c[1] ), .RBA1(RBA[1])); + RBA_1__MGIOL \RBA[1]_MGIOL ( .IOLDO(\RBA_c[1] ), .OPOS(\RBAd_0[1] ), + .CLK(nCRAS_c)); + RBA_0_ \RBA[0]_I ( .IOLDO(\RBA_c[0] ), .RBA0(RBA[0])); + RBA_0__MGIOL \RBA[0]_MGIOL ( .IOLDO(\RBA_c[0] ), .OPOS(\RBAd_0[0] ), + .CLK(nCRAS_c)); + LED LED_I( .PADDO(LED_c), .LED(LED)); + nFWE nFWE_I( .PADDI(nFWE_c), .nFWE(nFWE)); + nCRAS nCRAS_I( .PADDI(nCRAS_c), .nCRAS(nCRAS)); + nCCAS nCCAS_I( .PADDI(nCCAS_c), .nCCAS(nCCAS)); + Dout_7_ \Dout[7]_I ( .PADDO(nCRAS_c), .Dout7(Dout[7])); + Dout_6_ \Dout[6]_I ( .PADDO(\MAin_c[9] ), .Dout6(Dout[6])); + Dout_5_ \Dout[5]_I ( .PADDO(\MAin_c[8] ), .Dout5(Dout[5])); + Dout_4_ \Dout[4]_I ( .PADDO(\MAin_c[7] ), .Dout4(Dout[4])); + Dout_3_ \Dout[3]_I ( .PADDO(\MAin_c[6] ), .Dout3(Dout[3])); + Dout_2_ \Dout[2]_I ( .PADDO(\MAin_c[5] ), .Dout2(Dout[2])); + Dout_1_ \Dout[1]_I ( .PADDO(\MAin_c[4] ), .Dout1(Dout[1])); + Din_7_ \Din[7]_I ( .PADDI(\Din_c[7] ), .Din7(Din[7])); + Din_7__MGIOL \Din[7]_MGIOL ( .DI(\Din_c[7] ), .CLK(PHI2_c), .IN(\Bank[7] )); + Din_6_ \Din[6]_I ( .PADDI(\Din_c[6] ), .Din6(Din[6])); + Din_6__MGIOL \Din[6]_MGIOL ( .DI(\Din_c[6] ), .CLK(PHI2_c), .IN(\Bank[6] )); + Din_5_ \Din[5]_I ( .PADDI(\Din_c[5] ), .Din5(Din[5])); + Din_5__MGIOL \Din[5]_MGIOL ( .DI(\Din_c[5] ), .CLK(PHI2_c), .IN(\Bank[5] )); + Din_4_ \Din[4]_I ( .PADDI(\Din_c[4] ), .Din4(Din[4])); + Din_4__MGIOL \Din[4]_MGIOL ( .DI(\Din_c[4] ), .CLK(PHI2_c), .IN(\Bank[4] )); + Din_3_ \Din[3]_I ( .PADDI(\Din_c[3] ), .Din3(Din[3])); + Din_3__MGIOL \Din[3]_MGIOL ( .DI(\Din_c[3] ), .CLK(PHI2_c), .IN(\Bank[3] )); + Din_2_ \Din[2]_I ( .PADDI(\Din_c[2] ), .Din2(Din[2])); + Din_2__MGIOL \Din[2]_MGIOL ( .DI(\Din_c[2] ), .CE(CmdUFMCLK_1_sqmuxa), + .CLK(PHI2_c), .IN(CmdUFMCS)); + Din_1_ \Din[1]_I ( .PADDI(\Din_c[1] ), .Din1(Din[1])); + Din_1__MGIOL \Din[1]_MGIOL ( .DI(\Din_c[1] ), .CE(CmdUFMCLK_1_sqmuxa), + .CLK(PHI2_c), .IN(CmdUFMCLK)); + Din_0_ \Din[0]_I ( .PADDI(\Din_c[0] ), .Din0(Din[0])); + Din_0__MGIOL \Din[0]_MGIOL ( .DI(\Din_c[0] ), .CE(CmdUFMCLK_1_sqmuxa), + .CLK(PHI2_c), .IN(CmdUFMSDI)); + CROW_1_ \CROW[1]_I ( .PADDI(\CROW_c[1] ), .CROW1(CROW[1])); + CROW_0_ \CROW[0]_I ( .PADDI(\CROW_c[0] ), .CROW0(CROW[0])); + MAin_9_ \MAin[9]_I ( .PADDI(\MAin_c[9] ), .MAin9(MAin[9])); + MAin_8_ \MAin[8]_I ( .PADDI(\MAin_c[8] ), .MAin8(MAin[8])); + MAin_7_ \MAin[7]_I ( .PADDI(\MAin_c[7] ), .MAin7(MAin[7])); + MAin_6_ \MAin[6]_I ( .PADDI(\MAin_c[6] ), .MAin6(MAin[6])); + MAin_5_ \MAin[5]_I ( .PADDI(\MAin_c[5] ), .MAin5(MAin[5])); + MAin_4_ \MAin[4]_I ( .PADDI(\MAin_c[4] ), .MAin4(MAin[4])); + MAin_3_ \MAin[3]_I ( .PADDI(\MAin_c[3] ), .MAin3(MAin[3])); + MAin_2_ \MAin[2]_I ( .PADDI(\MAin_c[2] ), .MAin2(MAin[2])); + MAin_1_ \MAin[1]_I ( .PADDI(\MAin_c[1] ), .MAin1(MAin[1])); + MAin_0_ \MAin[0]_I ( .PADDI(\MAin_c[0] ), .MAin0(MAin[0])); VHI VHI_INST( .Z(VCCI)); PUR PUR_INST( .PUR(VCCI)); GSR GSR_INST( .GSR(VCCI)); endmodule -module SLICE_0 ( input A1, A0, DI1, DI0, CLK, FCI, output F0, Q0, F1, Q1, FCO ); - wire VCCI, GNDI, DI1_dly, CLK_dly, DI0_dly; +module SLICE_0 ( input A1, DI1, CLK, output F1, Q1, FCO ); + wire VCCI, GNDI, DI1_dly, CLK_dly; - vmuxregsre FS_610__i14( .D0(VCCI), .D1(DI1_dly), .SD(VCCI), .SP(VCCI), + vmuxregsre \FS[0] ( .D0(VCCI), .D1(DI1_dly), .SD(VCCI), .SP(VCCI), .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); vcc DRIVEVCC( .PWR1(VCCI)); gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre FS_610__i13( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - ccu2 FS_610_add_4_15( .A0(A0), .B0(GNDI), .C0(GNDI), .D0(GNDI), .A1(A1), - .B1(GNDI), .C1(GNDI), .D1(GNDI), .CI(FCI), .S0(F0), .S1(F1), .CO1(FCO)); + ccu2 \FS_cry_0[0] ( .A0(GNDI), .B0(GNDI), .C0(GNDI), .D0(GNDI), .A1(A1), + .B1(GNDI), .C1(GNDI), .D1(GNDI), .CI(GNDI), .S0(), .S1(F1), .CO1(FCO)); specify (A1 => F1) = (0:0:0,0:0:0); (A1 => FCO) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (A0 => F1) = (0:0:0,0:0:0); - (A0 => FCO) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); (CLK => Q1) = (0:0:0,0:0:0); - (FCI => F0) = (0:0:0,0:0:0); - (FCI => F1) = (0:0:0,0:0:0); - (FCI => FCO) = (0:0:0,0:0:0); $setuphold (posedge CLK, DI1, 0:0:0, 0:0:0,,,, CLK_dly, DI1_dly); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); $width (posedge CLK, 0:0:0); $width (negedge CLK, 0:0:0); endspecify @@ -419,36 +468,26 @@ module ccu2 ( input A0, B0, C0, D0, A1, B1, C1, D1, CI, output S0, S1, CO1 ); CCU2D inst1( .CIN(CI), .A0(A0), .B0(B0), .C0(C0), .D0(D0), .A1(A1), .B1(B1), .C1(C1), .D1(D1), .S0(S0), .S1(S1), .COUT(CO1)); - defparam inst1.INIT0 = 16'hfaaa; - defparam inst1.INIT1 = 16'hfaaa; + defparam inst1.INIT0 = 16'h000A; + defparam inst1.INIT1 = 16'h300A; defparam inst1.INJECT1_0 = "NO"; defparam inst1.INJECT1_1 = "NO"; endmodule -module SLICE_1 ( input A1, A0, DI1, DI0, CLK, FCI, output F0, Q0, F1, Q1, FCO ); - wire VCCI, GNDI, DI1_dly, CLK_dly, DI0_dly; +module SLICE_1 ( input A0, DI0, CLK, FCI, output F0, Q0 ); + wire VCCI, GNDI, DI0_dly, CLK_dly; - vmuxregsre FS_610__i12( .D0(VCCI), .D1(DI1_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); + vmuxregsre \FS[17] ( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), + .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); vcc DRIVEVCC( .PWR1(VCCI)); gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre FS_610__i11( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - ccu2 FS_610_add_4_13( .A0(A0), .B0(GNDI), .C0(GNDI), .D0(GNDI), .A1(A1), - .B1(GNDI), .C1(GNDI), .D1(GNDI), .CI(FCI), .S0(F0), .S1(F1), .CO1(FCO)); + ccu20001 \FS_s_0[17] ( .A0(A0), .B0(GNDI), .C0(GNDI), .D0(GNDI), .A1(GNDI), + .B1(GNDI), .C1(GNDI), .D1(GNDI), .CI(FCI), .S0(F0), .S1(), .CO1()); specify - (A1 => F1) = (0:0:0,0:0:0); - (A1 => FCO) = (0:0:0,0:0:0); (A0 => F0) = (0:0:0,0:0:0); - (A0 => F1) = (0:0:0,0:0:0); - (A0 => FCO) = (0:0:0,0:0:0); (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); (FCI => F0) = (0:0:0,0:0:0); - (FCI => F1) = (0:0:0,0:0:0); - (FCI => FCO) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI1, 0:0:0, 0:0:0,,,, CLK_dly, DI1_dly); $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); $width (posedge CLK, 0:0:0); $width (negedge CLK, 0:0:0); @@ -456,16 +495,26 @@ module SLICE_1 ( input A1, A0, DI1, DI0, CLK, FCI, output F0, Q0, F1, Q1, FCO ); endmodule +module ccu20001 ( input A0, B0, C0, D0, A1, B1, C1, D1, CI, output S0, S1, CO1 ); + + CCU2D inst1( .CIN(CI), .A0(A0), .B0(B0), .C0(C0), .D0(D0), .A1(A1), .B1(B1), + .C1(C1), .D1(D1), .S0(S0), .S1(S1), .COUT(CO1)); + defparam inst1.INIT0 = 16'h5002; + defparam inst1.INIT1 = 16'h300A; + defparam inst1.INJECT1_0 = "NO"; + defparam inst1.INJECT1_1 = "NO"; +endmodule + module SLICE_2 ( input A1, A0, DI1, DI0, CLK, FCI, output F0, Q0, F1, Q1, FCO ); wire VCCI, GNDI, DI1_dly, CLK_dly, DI0_dly; - vmuxregsre FS_610__i8( .D0(VCCI), .D1(DI1_dly), .SD(VCCI), .SP(VCCI), + vmuxregsre \FS[16] ( .D0(VCCI), .D1(DI1_dly), .SD(VCCI), .SP(VCCI), .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); vcc DRIVEVCC( .PWR1(VCCI)); gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre FS_610__i7( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), + vmuxregsre \FS[15] ( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - ccu2 FS_610_add_4_9( .A0(A0), .B0(GNDI), .C0(GNDI), .D0(GNDI), .A1(A1), + ccu20002 \FS_cry_0[15] ( .A0(A0), .B0(GNDI), .C0(GNDI), .D0(GNDI), .A1(A1), .B1(GNDI), .C1(GNDI), .D1(GNDI), .CI(FCI), .S0(F0), .S1(F1), .CO1(FCO)); specify @@ -487,16 +536,26 @@ module SLICE_2 ( input A1, A0, DI1, DI0, CLK, FCI, output F0, Q0, F1, Q1, FCO ); endmodule +module ccu20002 ( input A0, B0, C0, D0, A1, B1, C1, D1, CI, output S0, S1, CO1 ); + + CCU2D inst1( .CIN(CI), .A0(A0), .B0(B0), .C0(C0), .D0(D0), .A1(A1), .B1(B1), + .C1(C1), .D1(D1), .S0(S0), .S1(S1), .COUT(CO1)); + defparam inst1.INIT0 = 16'h300A; + defparam inst1.INIT1 = 16'h300A; + defparam inst1.INJECT1_0 = "NO"; + defparam inst1.INJECT1_1 = "NO"; +endmodule + module SLICE_3 ( input A1, A0, DI1, DI0, CLK, FCI, output F0, Q0, F1, Q1, FCO ); wire VCCI, GNDI, DI1_dly, CLK_dly, DI0_dly; - vmuxregsre FS_610__i6( .D0(VCCI), .D1(DI1_dly), .SD(VCCI), .SP(VCCI), + vmuxregsre \FS[14] ( .D0(VCCI), .D1(DI1_dly), .SD(VCCI), .SP(VCCI), .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); vcc DRIVEVCC( .PWR1(VCCI)); gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre FS_610__i5( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), + vmuxregsre \FS[13] ( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - ccu2 FS_610_add_4_7( .A0(A0), .B0(GNDI), .C0(GNDI), .D0(GNDI), .A1(A1), + ccu20002 \FS_cry_0[13] ( .A0(A0), .B0(GNDI), .C0(GNDI), .D0(GNDI), .A1(A1), .B1(GNDI), .C1(GNDI), .D1(GNDI), .CI(FCI), .S0(F0), .S1(F1), .CO1(FCO)); specify @@ -521,13 +580,13 @@ endmodule module SLICE_4 ( input A1, A0, DI1, DI0, CLK, FCI, output F0, Q0, F1, Q1, FCO ); wire VCCI, GNDI, DI1_dly, CLK_dly, DI0_dly; - vmuxregsre FS_610__i2( .D0(VCCI), .D1(DI1_dly), .SD(VCCI), .SP(VCCI), + vmuxregsre \FS[12] ( .D0(VCCI), .D1(DI1_dly), .SD(VCCI), .SP(VCCI), .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); vcc DRIVEVCC( .PWR1(VCCI)); gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre FS_610__i1( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), + vmuxregsre \FS[11] ( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - ccu2 FS_610_add_4_3( .A0(A0), .B0(GNDI), .C0(GNDI), .D0(GNDI), .A1(A1), + ccu20002 \FS_cry_0[11] ( .A0(A0), .B0(GNDI), .C0(GNDI), .D0(GNDI), .A1(A1), .B1(GNDI), .C1(GNDI), .D1(GNDI), .CI(FCI), .S0(F0), .S1(F1), .CO1(FCO)); specify @@ -549,51 +608,47 @@ module SLICE_4 ( input A1, A0, DI1, DI0, CLK, FCI, output F0, Q0, F1, Q1, FCO ); endmodule -module SLICE_5 ( input A1, DI1, M0, CLK, output Q0, F1, Q1, FCO ); - wire VCCI, GNDI, DI1_dly, CLK_dly, M0_dly; +module SLICE_5 ( input A1, A0, DI1, DI0, CLK, FCI, output F0, Q0, F1, Q1, FCO ); + wire VCCI, GNDI, DI1_dly, CLK_dly, DI0_dly; - vmuxregsre FS_610__i0( .D0(VCCI), .D1(DI1_dly), .SD(VCCI), .SP(VCCI), + vmuxregsre \FS[10] ( .D0(VCCI), .D1(DI1_dly), .SD(VCCI), .SP(VCCI), .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); vcc DRIVEVCC( .PWR1(VCCI)); gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre CASr3_384( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), + vmuxregsre \FS[9] ( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - ccu20001 FS_610_add_4_1( .A0(GNDI), .B0(GNDI), .C0(GNDI), .D0(GNDI), .A1(A1), - .B1(GNDI), .C1(GNDI), .D1(GNDI), .CI(GNDI), .S0(), .S1(F1), .CO1(FCO)); + ccu20002 \FS_cry_0[9] ( .A0(A0), .B0(GNDI), .C0(GNDI), .D0(GNDI), .A1(A1), + .B1(GNDI), .C1(GNDI), .D1(GNDI), .CI(FCI), .S0(F0), .S1(F1), .CO1(FCO)); specify (A1 => F1) = (0:0:0,0:0:0); (A1 => FCO) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); + (A0 => F1) = (0:0:0,0:0:0); + (A0 => FCO) = (0:0:0,0:0:0); (CLK => Q0) = (0:0:0,0:0:0); (CLK => Q1) = (0:0:0,0:0:0); + (FCI => F0) = (0:0:0,0:0:0); + (FCI => F1) = (0:0:0,0:0:0); + (FCI => FCO) = (0:0:0,0:0:0); $setuphold (posedge CLK, DI1, 0:0:0, 0:0:0,,,, CLK_dly, DI1_dly); - $setuphold (posedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); + $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); $width (posedge CLK, 0:0:0); $width (negedge CLK, 0:0:0); endspecify endmodule -module ccu20001 ( input A0, B0, C0, D0, A1, B1, C1, D1, CI, output S0, S1, CO1 ); - - CCU2D inst1( .CIN(CI), .A0(A0), .B0(B0), .C0(C0), .D0(D0), .A1(A1), .B1(B1), - .C1(C1), .D1(D1), .S0(S0), .S1(S1), .COUT(CO1)); - defparam inst1.INIT0 = 16'hF000; - defparam inst1.INIT1 = 16'h0555; - defparam inst1.INJECT1_0 = "NO"; - defparam inst1.INJECT1_1 = "NO"; -endmodule - module SLICE_6 ( input A1, A0, DI1, DI0, CLK, FCI, output F0, Q0, F1, Q1, FCO ); wire VCCI, GNDI, DI1_dly, CLK_dly, DI0_dly; - vmuxregsre FS_610__i10( .D0(VCCI), .D1(DI1_dly), .SD(VCCI), .SP(VCCI), + vmuxregsre \FS[8] ( .D0(VCCI), .D1(DI1_dly), .SD(VCCI), .SP(VCCI), .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); vcc DRIVEVCC( .PWR1(VCCI)); gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre FS_610__i9( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), + vmuxregsre \FS[7] ( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - ccu2 FS_610_add_4_11( .A0(A0), .B0(GNDI), .C0(GNDI), .D0(GNDI), .A1(A1), + ccu20002 \FS_cry_0[7] ( .A0(A0), .B0(GNDI), .C0(GNDI), .D0(GNDI), .A1(A1), .B1(GNDI), .C1(GNDI), .D1(GNDI), .CI(FCI), .S0(F0), .S1(F1), .CO1(FCO)); specify @@ -615,21 +670,30 @@ module SLICE_6 ( input A1, A0, DI1, DI0, CLK, FCI, output F0, Q0, F1, Q1, FCO ); endmodule -module SLICE_7 ( input A0, DI0, CLK, FCI, output F0, Q0 ); - wire VCCI, GNDI, DI0_dly, CLK_dly; +module SLICE_7 ( input A1, A0, DI1, DI0, CLK, FCI, output F0, Q0, F1, Q1, FCO ); + wire VCCI, GNDI, DI1_dly, CLK_dly, DI0_dly; - vmuxregsre FS_610__i17( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); + vmuxregsre \FS[6] ( .D0(VCCI), .D1(DI1_dly), .SD(VCCI), .SP(VCCI), + .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); vcc DRIVEVCC( .PWR1(VCCI)); gnd DRIVEGND( .PWR0(GNDI)); - ccu20002 FS_610_add_4_19( .A0(A0), .B0(GNDI), .C0(GNDI), .D0(GNDI), - .A1(GNDI), .B1(GNDI), .C1(GNDI), .D1(GNDI), .CI(FCI), .S0(F0), .S1(), - .CO1()); + vmuxregsre \FS[5] ( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), + .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); + ccu20002 \FS_cry_0[5] ( .A0(A0), .B0(GNDI), .C0(GNDI), .D0(GNDI), .A1(A1), + .B1(GNDI), .C1(GNDI), .D1(GNDI), .CI(FCI), .S0(F0), .S1(F1), .CO1(FCO)); specify + (A1 => F1) = (0:0:0,0:0:0); + (A1 => FCO) = (0:0:0,0:0:0); (A0 => F0) = (0:0:0,0:0:0); + (A0 => F1) = (0:0:0,0:0:0); + (A0 => FCO) = (0:0:0,0:0:0); (CLK => Q0) = (0:0:0,0:0:0); + (CLK => Q1) = (0:0:0,0:0:0); (FCI => F0) = (0:0:0,0:0:0); + (FCI => F1) = (0:0:0,0:0:0); + (FCI => FCO) = (0:0:0,0:0:0); + $setuphold (posedge CLK, DI1, 0:0:0, 0:0:0,,,, CLK_dly, DI1_dly); $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); $width (posedge CLK, 0:0:0); $width (negedge CLK, 0:0:0); @@ -637,26 +701,16 @@ module SLICE_7 ( input A0, DI0, CLK, FCI, output F0, Q0 ); endmodule -module ccu20002 ( input A0, B0, C0, D0, A1, B1, C1, D1, CI, output S0, S1, CO1 ); - - CCU2D inst1( .CIN(CI), .A0(A0), .B0(B0), .C0(C0), .D0(D0), .A1(A1), .B1(B1), - .C1(C1), .D1(D1), .S0(S0), .S1(S1), .COUT(CO1)); - defparam inst1.INIT0 = 16'hfaaa; - defparam inst1.INIT1 = 16'h0000; - defparam inst1.INJECT1_0 = "NO"; - defparam inst1.INJECT1_1 = "NO"; -endmodule - module SLICE_8 ( input A1, A0, DI1, DI0, CLK, FCI, output F0, Q0, F1, Q1, FCO ); wire VCCI, GNDI, DI1_dly, CLK_dly, DI0_dly; - vmuxregsre FS_610__i4( .D0(VCCI), .D1(DI1_dly), .SD(VCCI), .SP(VCCI), + vmuxregsre \FS[4] ( .D0(VCCI), .D1(DI1_dly), .SD(VCCI), .SP(VCCI), .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); vcc DRIVEVCC( .PWR1(VCCI)); gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre FS_610__i3( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), + vmuxregsre \FS[3] ( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - ccu2 FS_610_add_4_5( .A0(A0), .B0(GNDI), .C0(GNDI), .D0(GNDI), .A1(A1), + ccu20002 \FS_cry_0[3] ( .A0(A0), .B0(GNDI), .C0(GNDI), .D0(GNDI), .A1(A1), .B1(GNDI), .C1(GNDI), .D1(GNDI), .CI(FCI), .S0(F0), .S1(F1), .CO1(FCO)); specify @@ -681,13 +735,13 @@ endmodule module SLICE_9 ( input A1, A0, DI1, DI0, CLK, FCI, output F0, Q0, F1, Q1, FCO ); wire VCCI, GNDI, DI1_dly, CLK_dly, DI0_dly; - vmuxregsre FS_610__i16( .D0(VCCI), .D1(DI1_dly), .SD(VCCI), .SP(VCCI), + vmuxregsre \FS[2] ( .D0(VCCI), .D1(DI1_dly), .SD(VCCI), .SP(VCCI), .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); vcc DRIVEVCC( .PWR1(VCCI)); gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre FS_610__i15( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), + vmuxregsre \FS[1] ( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - ccu2 FS_610_add_4_17( .A0(A0), .B0(GNDI), .C0(GNDI), .D0(GNDI), .A1(A1), + ccu20002 \FS_cry_0[1] ( .A0(A0), .B0(GNDI), .C0(GNDI), .D0(GNDI), .A1(A1), .B1(GNDI), .C1(GNDI), .D1(GNDI), .CI(FCI), .S0(F0), .S1(F1), .CO1(FCO)); specify @@ -709,19 +763,19 @@ module SLICE_9 ( input A1, A0, DI1, DI0, CLK, FCI, output F0, Q0, F1, Q1, FCO ); endmodule -module SLICE_10 ( input D1, C1, B1, A1, D0, C0, B0, A0, DI0, CE, LSR, CLK, - output F0, Q0, F1 ); - wire VCCI, CLK_NOTIN, DI0_dly, CLK_dly, CE_dly, LSR_dly; +module SLICE_10 ( input C1, B1, A1, D0, C0, B0, A0, DI0, CLK, output F0, Q0, + F1 ); + wire GNDI, VCCI, CLK_NOTIN, DI0_dly, CLK_dly; - lut4 i3_3_lut_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40003 i1_4_lut_adj_4( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre0004 ADSubmitted_407( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), - .SP(CE_dly), .CK(CLK_NOTIN), .LSR(LSR_dly), .Q(Q0)); + lut4 CmdEnable17( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); + gnd DRIVEGND( .PWR0(GNDI)); + lut40003 ADSubmitted_r( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); + vmuxregsre ADSubmitted( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), + .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q0)); vcc DRIVEVCC( .PWR1(VCCI)); inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); specify - (D1 => F1) = (0:0:0,0:0:0); (C1 => F1) = (0:0:0,0:0:0); (B1 => F1) = (0:0:0,0:0:0); (A1 => F1) = (0:0:0,0:0:0); @@ -730,31 +784,21 @@ module SLICE_10 ( input D1, C1, B1, A1, D0, C0, B0, A0, DI0, CE, LSR, CLK, (B0 => F0) = (0:0:0,0:0:0); (A0 => F0) = (0:0:0,0:0:0); (CLK => Q0) = (0:0:0,0:0:0); - $width (posedge LSR, 0:0:0); - $width (negedge LSR, 0:0:0); $width (posedge CLK, 0:0:0); $width (negedge CLK, 0:0:0); $setuphold (negedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (negedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $setuphold (negedge CLK, LSR, 0:0:0, 0:0:0,,,, CLK_dly, LSR_dly); endspecify endmodule module lut4 ( input A, B, C, D, output Z ); - ROM16X1A #(16'h0002) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); + ROM16X1A #(16'h8080) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule module lut40003 ( input A, B, C, D, output Z ); - ROM16X1A #(16'h2000) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module vmuxregsre0004 ( input D0, D1, SD, SP, CK, LSR, output Q ); - - FL1P3IY INST01( .D0(D0), .D1(D1), .SP(SP), .CK(CK), .SD(SD), .CD(LSR), .Q(Q)); - defparam INST01.GSR = "DISABLED"; + ROM16X1A #(16'h00F2) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule module inverter ( input I, output Z ); @@ -762,14 +806,15 @@ module inverter ( input I, output Z ); INV INST1( .A(I), .Z(Z)); endmodule -module SLICE_15 ( input D1, C1, B1, A1, D0, C0, B0, A0, DI0, LSR, CLK, output - F0, Q0, F1 ); - wire VCCI, CLK_NOTIN, DI0_dly, CLK_dly, LSR_dly; +module SLICE_13 ( input D1, C1, B1, A1, C0, B0, A0, DI0, CLK, output F0, Q0, + F1 ); + wire GNDI, VCCI, CLK_NOTIN, DI0_dly, CLK_dly; - lut40005 i13_2_lut_rep_16_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40006 i1110_2_lut_3_lut_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre0007 C1Submitted_406( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), - .SP(VCCI), .CK(CLK_NOTIN), .LSR(LSR_dly), .Q(Q0)); + lut40004 CmdEnable16( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); + lut40005 C1Submitted_s( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); + gnd DRIVEGND( .PWR0(GNDI)); + vmuxregsre C1Submitted( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), + .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q0)); vcc DRIVEVCC( .PWR1(VCCI)); inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); @@ -778,49 +823,42 @@ module SLICE_15 ( input D1, C1, B1, A1, D0, C0, B0, A0, DI0, LSR, CLK, output (C1 => F1) = (0:0:0,0:0:0); (B1 => F1) = (0:0:0,0:0:0); (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); (C0 => F0) = (0:0:0,0:0:0); (B0 => F0) = (0:0:0,0:0:0); (A0 => F0) = (0:0:0,0:0:0); (CLK => Q0) = (0:0:0,0:0:0); - $width (posedge LSR, 0:0:0); - $width (negedge LSR, 0:0:0); $width (posedge CLK, 0:0:0); $width (negedge CLK, 0:0:0); $setuphold (negedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (negedge CLK, LSR, 0:0:0, 0:0:0,,,, CLK_dly, LSR_dly); endspecify endmodule +module lut40004 ( input A, B, C, D, output Z ); + + ROM16X1A #(16'h8000) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + module lut40005 ( input A, B, C, D, output Z ); - ROM16X1A #(16'hFF7F) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); + ROM16X1A #(16'hF2F2) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule -module lut40006 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hE0F0) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module vmuxregsre0007 ( input D0, D1, SD, SP, CK, LSR, output Q ); - - FL1P3JY INST01( .D0(D0), .D1(D1), .SP(SP), .CK(CK), .SD(SD), .PD(LSR), .Q(Q)); - defparam INST01.GSR = "DISABLED"; -endmodule - -module SLICE_16 ( input A0, DI0, M1, CLK, output F0, Q0, Q1 ); +module SLICE_14 ( input B1, A1, A0, DI0, M1, CLK, output F0, Q0, F1, Q1 ); wire GNDI, VCCI, DI0_dly, CLK_dly, M1_dly; - lut40008 i2045( .A(A0), .B(GNDI), .C(GNDI), .D(GNDI), .Z(F0)); + lut40006 nCCAS_pad_RNI01SJ( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre CASr2_383( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); + lut40007 nCCAS_pad_RNISUR8( .A(A0), .B(GNDI), .C(GNDI), .D(GNDI), .Z(F0)); + vmuxregsre CASr2( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), .CK(CLK_dly), + .LSR(GNDI), .Q(Q1)); vcc DRIVEVCC( .PWR1(VCCI)); - vmuxregsre CASr_382( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); + vmuxregsre CASr( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), .CK(CLK_dly), + .LSR(GNDI), .Q(Q0)); specify + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); (A0 => F0) = (0:0:0,0:0:0); (CLK => Q0) = (0:0:0,0:0:0); (CLK => Q1) = (0:0:0,0:0:0); @@ -832,85 +870,117 @@ module SLICE_16 ( input A0, DI0, M1, CLK, output F0, Q0, Q1 ); endmodule +module lut40006 ( input A, B, C, D, output Z ); + + ROM16X1A #(16'hEEEE) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module lut40007 ( input A, B, C, D, output Z ); + + ROM16X1A #(16'h5555) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module SLICE_17 ( input D1, C1, B1, A1, B0, A0, DI0, LSR, CLK, output F0, Q0, + F1 ); + wire GNDI, VCCI, LSR_NOTIN, DI0_dly, CLK_dly, LSR_dly; + + lut40008 Ready_0_sqmuxa_0_a3_2( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); + lut40009 \S_RNO[0] ( .A(A0), .B(B0), .C(GNDI), .D(GNDI), .Z(F0)); + gnd DRIVEGND( .PWR0(GNDI)); + vmuxregsre0010 \S[0] ( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), + .CK(CLK_dly), .LSR(LSR_NOTIN), .Q(Q0)); + vcc DRIVEVCC( .PWR1(VCCI)); + inverter LSR_INVERTERIN( .I(LSR_dly), .Z(LSR_NOTIN)); + + specify + (D1 => F1) = (0:0:0,0:0:0); + (C1 => F1) = (0:0:0,0:0:0); + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); + (CLK => Q0) = (0:0:0,0:0:0); + $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); + $setuphold (posedge CLK, LSR, 0:0:0, 0:0:0,,,, CLK_dly, LSR_dly); + $width (posedge LSR, 0:0:0); + $width (negedge LSR, 0:0:0); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + endspecify + +endmodule + module lut40008 ( input A, B, C, D, output Z ); - ROM16X1A #(16'h5555) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_19 ( input D1, C1, B1, A1, D0, C0, B0, A0, DI0, CE, CLK, output - F0, Q0, F1 ); - wire VCCI, CLK_NOTIN, GNDI, DI0_dly, CLK_dly, CE_dly; - - lut40009 i26_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40010 i2_3_lut_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre CmdEnable_405( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), - .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - $setuphold (negedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (negedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - endspecify - + ROM16X1A #(16'h0800) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule module lut40009 ( input A, B, C, D, output Z ); - ROM16X1A #(16'hC0CA) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); + ROM16X1A #(16'hDDDD) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule -module lut40010 ( input A, B, C, D, output Z ); +module vmuxregsre0010 ( input D0, D1, SD, SP, CK, LSR, output Q ); - ROM16X1A #(16'h4000) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); + FL1P3IY INST01( .D0(D0), .D1(D1), .SP(SP), .CK(CK), .SD(SD), .CD(LSR), .Q(Q)); + defparam INST01.GSR = "DISABLED"; endmodule -module SLICE_20 ( input DI0, CE, CLK, output F0, Q0 ); - wire GNDI, VCCI, CLK_NOTIN, DI0_dly, CLK_dly, CE_dly; +module SLICE_18 ( input B1, A1, D0, C0, B0, A0, DI0, M0, CLK, output OFX0, Q0 ); + wire GNDI, \SLICE_18/SLICE_18_K1_H1 , \SLICE_18/CmdEnable_s/GATE_H0 , VCCI, + CLK_NOTIN, DI0_dly, CLK_dly; - lut40011 \n2447\001/BUF1/BUF1 ( .A(GNDI), .B(GNDI), .C(GNDI), .D(GNDI), - .Z(F0)); + lut40011 SLICE_18_K1( .A(A1), .B(B1), .C(GNDI), .D(GNDI), + .Z(\SLICE_18/SLICE_18_K1_H1 )); gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre CmdSubmitted_411( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), + lut40012 \CmdEnable_s/GATE ( .A(A0), .B(B0), .C(C0), .D(D0), + .Z(\SLICE_18/CmdEnable_s/GATE_H0 )); + vmuxregsre CmdEnable( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q0)); vcc DRIVEVCC( .PWR1(VCCI)); inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); + selmux2 SLICE_18_K0K1MUX( .D0(\SLICE_18/CmdEnable_s/GATE_H0 ), + .D1(\SLICE_18/SLICE_18_K1_H1 ), .SD(M0), .Z(OFX0)); specify + (B1 => OFX0) = (0:0:0,0:0:0); + (A1 => OFX0) = (0:0:0,0:0:0); + (D0 => OFX0) = (0:0:0,0:0:0); + (C0 => OFX0) = (0:0:0,0:0:0); + (B0 => OFX0) = (0:0:0,0:0:0); + (A0 => OFX0) = (0:0:0,0:0:0); + (M0 => OFX0) = (0:0:0,0:0:0); (CLK => Q0) = (0:0:0,0:0:0); $width (posedge CLK, 0:0:0); $width (negedge CLK, 0:0:0); $setuphold (negedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (negedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); endspecify endmodule module lut40011 ( input A, B, C, D, output Z ); - ROM16X1A #(16'hFFFF) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); + ROM16X1A #(16'hEEEE) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule -module SLICE_24 ( input C1, B1, A1, D0, C0, B0, A0, DI0, CE, CLK, output F0, +module lut40012 ( input A, B, C, D, output Z ); + + ROM16X1A #(16'hAC8C) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module selmux2 ( input D0, D1, SD, output Z ); + + MUX21 INST1( .D0(D0), .D1(D1), .SD(SD), .Z(Z)); +endmodule + +module SLICE_19 ( input C1, B1, A1, D0, C0, B0, A0, DI0, CE, CLK, output F0, Q0, F1 ); wire GNDI, VCCI, CLK_NOTIN, DI0_dly, CLK_dly, CE_dly; - lut40012 i1_2_lut_3_lut_adj_15( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); + lut40013 CmdLEDEN_4_u_i_a2_0( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); gnd DRIVEGND( .PWR0(GNDI)); - lut40013 Cmdn8MEGEN_I_93_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre Cmdn8MEGEN_410( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), + lut40014 CmdLEDEN_RNO( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); + vmuxregsre CmdLEDEN( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q0)); vcc DRIVEVCC( .PWR1(VCCI)); inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); @@ -932,209 +1002,123 @@ module SLICE_24 ( input C1, B1, A1, D0, C0, B0, A0, DI0, CE, CLK, output F0, endmodule -module lut40012 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hFEFE) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - module lut40013 ( input A, B, C, D, output Z ); - ROM16X1A #(16'hCC5C) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_25 ( input C1, B1, A1, A0, DI0, M1, CLK, output F0, Q0, F1, Q1 ); - wire GNDI, VCCI, CLK_NOTIN, DI0_dly, CLK_dly, M1_dly; - - lut40014 i2_3_lut_3_lut( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40008 i2_1_lut_rep_24( .A(A0), .B(GNDI), .C(GNDI), .D(GNDI), .Z(F0)); - vmuxregsre CBR_390( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); - vmuxregsre FWEr_389( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q0)); - - specify - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - $setuphold (negedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (negedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - endspecify - + ROM16X1A #(16'h0101) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule module lut40014 ( input A, B, C, D, output Z ); - ROM16X1A #(16'h4040) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); + ROM16X1A #(16'h0203) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule -module SLICE_26 ( input DI0, CE, CLK, output F0, Q0 ); - wire GNDI, VCCI, DI0_dly, CLK_dly, CE_dly; +module SLICE_20 ( input D1, C1, B1, A1, B0, A0, DI0, CLK, output F0, Q0, F1 ); + wire GNDI, VCCI, CLK_NOTIN, DI0_dly, CLK_dly; - lut40011 \n2447\000/BUF1/BUF1 ( .A(GNDI), .B(GNDI), .C(GNDI), .D(GNDI), - .Z(F0)); + lut40015 CmdUFMCLK_1_sqmuxa_0_a2( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); + lut40006 CmdSubmitted_RNO( .A(A0), .B(B0), .C(GNDI), .D(GNDI), .Z(F0)); gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre InitReady_394( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); + vmuxregsre CmdSubmitted( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), + .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q0)); vcc DRIVEVCC( .PWR1(VCCI)); + inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); specify - (CLK => Q0) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module SLICE_27 ( input DI0, CE, CLK, output F0, Q0 ); - wire GNDI, VCCI, DI0_dly, CLK_dly, CE_dly; - - lut40011 m1_lut( .A(GNDI), .B(GNDI), .C(GNDI), .D(GNDI), .Z(F0)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre LEDEN_419( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - - specify - (CLK => Q0) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module SLICE_30 ( input C1, B1, A1, A0, DI0, M1, CLK, output F0, Q0, F1, Q1 ); - wire GNDI, VCCI, DI0_dly, CLK_dly, M1_dly; - - lut40015 i2010_3_lut_3_lut( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40008 i2044( .A(A0), .B(GNDI), .C(GNDI), .D(GNDI), .Z(F0)); - vmuxregsre RASr2_380( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - vmuxregsre RASr_379( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - - specify + (D1 => F1) = (0:0:0,0:0:0); (C1 => F1) = (0:0:0,0:0:0); (B1 => F1) = (0:0:0,0:0:0); (A1 => F1) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); (A0 => F0) = (0:0:0,0:0:0); (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); $width (posedge CLK, 0:0:0); $width (negedge CLK, 0:0:0); + $setuphold (negedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); endspecify endmodule module lut40015 ( input A, B, C, D, output Z ); - ROM16X1A #(16'hFBFB) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); + ROM16X1A #(16'h2000) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule -module SLICE_32 ( input C1, B1, A1, D0, C0, B0, A0, DI0, LSR, CLK, output F0, - Q0, F1 ); - wire GNDI, VCCI, LSR_NOTIN, DI0_dly, CLK_dly, LSR_dly; +module SLICE_21 ( input C1, B1, A1, C0, B0, A0, DI0, CE, CLK, output F0, Q0, + F1 ); + wire GNDI, VCCI, CLK_NOTIN, DI0_dly, CLK_dly, CE_dly; - lut40016 i2_3_lut_rep_32( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); + lut40016 Cmdn8MEGEN_4_u_i_a2_2( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); gnd DRIVEGND( .PWR0(GNDI)); - lut40017 i2_2_lut_3_lut_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre0007 RA10_400( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(LSR_NOTIN), .Q(Q0)); + lut40017 Cmdn8MEGEN_RNO( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); + vmuxregsre Cmdn8MEGEN( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), + .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q0)); vcc DRIVEVCC( .PWR1(VCCI)); - inverter LSR_INVERTERIN( .I(LSR_dly), .Z(LSR_NOTIN)); + inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); specify (C1 => F1) = (0:0:0,0:0:0); (B1 => F1) = (0:0:0,0:0:0); (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); (C0 => F0) = (0:0:0,0:0:0); (B0 => F0) = (0:0:0,0:0:0); (A0 => F0) = (0:0:0,0:0:0); (CLK => Q0) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, LSR, 0:0:0, 0:0:0,,,, CLK_dly, LSR_dly); - $width (posedge LSR, 0:0:0); - $width (negedge LSR, 0:0:0); $width (posedge CLK, 0:0:0); $width (negedge CLK, 0:0:0); + $setuphold (negedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); + $setuphold (negedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); endspecify endmodule module lut40016 ( input A, B, C, D, output Z ); - ROM16X1A #(16'h8080) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); + ROM16X1A #(16'h0808) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule module lut40017 ( input A, B, C, D, output Z ); - ROM16X1A #(16'hFFFB) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); + ROM16X1A #(16'h5151) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule -module SLICE_33 ( input C1, B1, A1, C0, B0, A0, DI0, LSR, CLK, output F0, Q0, - F1 ); - wire GNDI, VCCI, LSR_NOTIN, DI0_dly, CLK_dly, LSR_dly; +module SLICE_22 ( input D1, C1, B1, A1, A0, DI0, CLK, output F0, Q0, F1 ); + wire GNDI, VCCI, CLK_NOTIN, DI0_dly, CLK_dly; - lut40018 i1_2_lut_3_lut( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); + lut40018 CMDWR_2( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); + lut40007 FWEr_RNO( .A(A0), .B(GNDI), .C(GNDI), .D(GNDI), .Z(F0)); gnd DRIVEGND( .PWR0(GNDI)); - lut40019 RA11_I_54_3_lut( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); - vmuxregsre0004 RA11_385( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(LSR_NOTIN), .Q(Q0)); + vmuxregsre FWEr( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), + .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q0)); vcc DRIVEVCC( .PWR1(VCCI)); - inverter LSR_INVERTERIN( .I(LSR_dly), .Z(LSR_NOTIN)); + inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); specify + (D1 => F1) = (0:0:0,0:0:0); (C1 => F1) = (0:0:0,0:0:0); (B1 => F1) = (0:0:0,0:0:0); (A1 => F1) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); (A0 => F0) = (0:0:0,0:0:0); (CLK => Q0) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, LSR, 0:0:0, 0:0:0,,,, CLK_dly, LSR_dly); - $width (posedge LSR, 0:0:0); - $width (negedge LSR, 0:0:0); $width (posedge CLK, 0:0:0); $width (negedge CLK, 0:0:0); + $setuphold (negedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); endspecify endmodule module lut40018 ( input A, B, C, D, output Z ); - ROM16X1A #(16'h1010) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); + ROM16X1A #(16'h0008) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule -module lut40019 ( input A, B, C, D, output Z ); +module SLICE_23 ( input D1, C1, B1, A1, C0, B0, A0, DI0, CLK, output F0, Q0, + F1 ); + wire GNDI, VCCI, DI0_dly, CLK_dly; - ROM16X1A #(16'hC6C6) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_35 ( input D1, C1, B1, A1, C0, B0, A0, DI0, CE, CLK, output F0, - Q0, F1 ); - wire GNDI, VCCI, DI0_dly, CLK_dly, CE_dly; - - lut40020 i1_2_lut_4_lut_adj_25( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40021 i29_3_lut( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); + lut40019 RA10_0io_RNO( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); + lut40020 \IS_RNO[0] ( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre RCKEEN_401( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), + vmuxregsre \IS[0] ( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); vcc DRIVEVCC( .PWR1(VCCI)); @@ -1148,6 +1132,45 @@ module SLICE_35 ( input D1, C1, B1, A1, C0, B0, A0, DI0, CE, CLK, output F0, (A0 => F0) = (0:0:0,0:0:0); (CLK => Q0) = (0:0:0,0:0:0); $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + endspecify + +endmodule + +module lut40019 ( input A, B, C, D, output Z ); + + ROM16X1A #(16'hFFF7) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module lut40020 ( input A, B, C, D, output Z ); + + ROM16X1A #(16'hA9A9) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module SLICE_24 ( input C1, B1, A1, B0, A0, DI1, DI0, CE, CLK, output F0, Q0, + F1, Q1 ); + wire GNDI, VCCI, DI1_dly, CLK_dly, DI0_dly, CE_dly; + + lut40021 \IS_RNO[2] ( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); + gnd DRIVEGND( .PWR0(GNDI)); + lut40022 IS_n1_0_x2( .A(A0), .B(B0), .C(GNDI), .D(GNDI), .Z(F0)); + vmuxregsre \IS[2] ( .D0(VCCI), .D1(DI1_dly), .SD(VCCI), .SP(CE_dly), + .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); + vcc DRIVEVCC( .PWR1(VCCI)); + vmuxregsre \IS[1] ( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), + .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); + + specify + (C1 => F1) = (0:0:0,0:0:0); + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); + (CLK => Q0) = (0:0:0,0:0:0); + (CLK => Q1) = (0:0:0,0:0:0); + $setuphold (posedge CLK, DI1, 0:0:0, 0:0:0,,,, CLK_dly, DI1_dly); + $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); $width (posedge CLK, 0:0:0); $width (negedge CLK, 0:0:0); @@ -1155,58 +1178,30 @@ module SLICE_35 ( input D1, C1, B1, A1, C0, B0, A0, DI0, CE, CLK, output F0, endmodule -module lut40020 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h20FF) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - module lut40021 ( input A, B, C, D, output Z ); - ROM16X1A #(16'hCACA) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); + ROM16X1A #(16'h7878) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule -module SLICE_36 ( input D0, C0, B0, A0, DI0, M1, CLK, output F0, Q0, Q1 ); - wire VCCI, GNDI, DI0_dly, CLK_dly, M1_dly; +module lut40022 ( input A, B, C, D, output Z ); - lut40022 i1404_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre PHI2r2_377( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); + ROM16X1A #(16'h6666) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module SLICE_25 ( input D0, C0, B0, A0, DI0, CE, CLK, output F0, Q0 ); + wire VCCI, GNDI, DI0_dly, CLK_dly, CE_dly; + + lut40023 \IS_RNO[3] ( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); + vmuxregsre \IS[3] ( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), + .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); vcc DRIVEVCC( .PWR1(VCCI)); gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre RCKE_395( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); specify (D0 => F0) = (0:0:0,0:0:0); (C0 => F0) = (0:0:0,0:0:0); (B0 => F0) = (0:0:0,0:0:0); (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module lut40022 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hCFC8) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_37 ( input DI0, CE, CLK, output F0, Q0 ); - wire GNDI, VCCI, DI0_dly, CLK_dly, CE_dly; - - lut40011 \n2447\002/BUF1/BUF1 ( .A(GNDI), .B(GNDI), .C(GNDI), .D(GNDI), - .Z(F0)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre Ready_404( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - - specify (CLK => Q0) = (0:0:0,0:0:0); $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); @@ -1216,52 +1211,105 @@ module SLICE_37 ( input DI0, CE, CLK, output F0, Q0 ); endmodule -module SLICE_44 ( input D1, C1, B1, A1, C0, B0, A0, DI0, CE, LSR, CLK, output - F0, Q0, F1 ); - wire GNDI, VCCI, DI0_dly, CLK_dly, CE_dly, LSR_dly; - - lut40023 i1970_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40021 i1603_3_lut( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre0004 UFMCLK_416( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), - .CK(CLK_dly), .LSR(LSR_dly), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $setuphold (posedge CLK, LSR, 0:0:0, 0:0:0,,,, CLK_dly, LSR_dly); - $width (posedge LSR, 0:0:0); - $width (negedge LSR, 0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - module lut40023 ( input A, B, C, D, output Z ); - ROM16X1A #(16'h3A0A) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); + ROM16X1A #(16'h6AAA) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule -module SLICE_45 ( input D1, C1, B1, A1, D0, C0, B0, A0, DI0, CE, LSR, CLK, - output F0, Q0, F1 ); - wire VCCI, DI0_dly, CLK_dly, CE_dly, LSR_dly; +module SLICE_26 ( input D1, C1, B1, A1, B0, A0, DI0, CLK, output F0, Q0, F1 ); + wire GNDI, VCCI, DI0_dly, CLK_dly; - lut4 i4_4_lut_adj_17( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40024 i1589_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre0004 UFMSDI_417( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), - .CK(CLK_dly), .LSR(LSR_dly), .Q(Q0)); + lut40004 InitReady3_0_a2( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); + lut40006 InitReady_RNO( .A(A0), .B(B0), .C(GNDI), .D(GNDI), .Z(F0)); + gnd DRIVEGND( .PWR0(GNDI)); + vmuxregsre InitReady( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), + .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); vcc DRIVEVCC( .PWR1(VCCI)); + specify + (D1 => F1) = (0:0:0,0:0:0); + (C1 => F1) = (0:0:0,0:0:0); + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); + (CLK => Q0) = (0:0:0,0:0:0); + $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + endspecify + +endmodule + +module SLICE_27 ( input B0, A0, DI0, CE, CLK, output F0, Q0 ); + wire GNDI, VCCI, DI0_dly, CLK_dly, CE_dly; + + lut40024 LEDEN_RNO( .A(A0), .B(B0), .C(GNDI), .D(GNDI), .Z(F0)); + gnd DRIVEGND( .PWR0(GNDI)); + vmuxregsre LEDEN( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), + .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); + vcc DRIVEVCC( .PWR1(VCCI)); + + specify + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); + (CLK => Q0) = (0:0:0,0:0:0); + $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); + $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + endspecify + +endmodule + +module lut40024 ( input A, B, C, D, output Z ); + + ROM16X1A #(16'hBBBB) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module SLICE_29 ( input C1, B1, A1, A0, DI0, M1, CLK, output F0, Q0, F1, Q1 ); + wire GNDI, VCCI, DI0_dly, CLK_dly, M1_dly; + + lut40025 LED_pad_RNO( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); + gnd DRIVEGND( .PWR0(GNDI)); + lut40007 RASr_RNO( .A(A0), .B(GNDI), .C(GNDI), .D(GNDI), .Z(F0)); + vmuxregsre RASr2( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), .CK(CLK_dly), + .LSR(GNDI), .Q(Q1)); + vcc DRIVEVCC( .PWR1(VCCI)); + vmuxregsre RASr( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), .CK(CLK_dly), + .LSR(GNDI), .Q(Q0)); + + specify + (C1 => F1) = (0:0:0,0:0:0); + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); + (CLK => Q0) = (0:0:0,0:0:0); + (CLK => Q1) = (0:0:0,0:0:0); + $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); + $setuphold (posedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + endspecify + +endmodule + +module lut40025 ( input A, B, C, D, output Z ); + + ROM16X1A #(16'hFBFB) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module SLICE_31 ( input D1, C1, B1, A1, D0, C0, B0, A0, DI0, CLK, output F0, + Q0, F1 ); + wire VCCI, GNDI, DI0_dly, CLK_dly; + + lut40026 RCKEEN_8_u_RNO( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); + lut40027 RCKEEN_8_u( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); + vmuxregsre RCKEEN( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), + .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); + vcc DRIVEVCC( .PWR1(VCCI)); + gnd DRIVEGND( .PWR0(GNDI)); + specify (D1 => F1) = (0:0:0,0:0:0); (C1 => F1) = (0:0:0,0:0:0); @@ -1273,7 +1321,290 @@ module SLICE_45 ( input D1, C1, B1, A1, D0, C0, B0, A0, DI0, CE, LSR, CLK, (A0 => F0) = (0:0:0,0:0:0); (CLK => Q0) = (0:0:0,0:0:0); $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + endspecify + +endmodule + +module lut40026 ( input A, B, C, D, output Z ); + + ROM16X1A #(16'h5072) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module lut40027 ( input A, B, C, D, output Z ); + + ROM16X1A #(16'hDCCC) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module SLICE_32 ( input B1, A1, D0, C0, B0, A0, DI0, M1, CLK, output F0, Q0, + F1, Q1 ); + wire GNDI, VCCI, DI0_dly, CLK_dly, M1_dly; + + lut40028 \RBAd[1] ( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); + gnd DRIVEGND( .PWR0(GNDI)); + lut40029 RCKE_2_0( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); + vmuxregsre RASr3( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), .CK(CLK_dly), + .LSR(GNDI), .Q(Q1)); + vcc DRIVEVCC( .PWR1(VCCI)); + vmuxregsre RCKE( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), .CK(CLK_dly), + .LSR(GNDI), .Q(Q0)); + + specify + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (D0 => F0) = (0:0:0,0:0:0); + (C0 => F0) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); + (CLK => Q0) = (0:0:0,0:0:0); + (CLK => Q1) = (0:0:0,0:0:0); + $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); + $setuphold (posedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + endspecify + +endmodule + +module lut40028 ( input A, B, C, D, output Z ); + + ROM16X1A #(16'h8888) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module lut40029 ( input A, B, C, D, output Z ); + + ROM16X1A #(16'hFE30) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module SLICE_33 ( input C1, B1, A1, D0, C0, B0, A0, DI0, CLK, output F0, Q0, + F1 ); + wire GNDI, VCCI, DI0_dly, CLK_dly; + + lut40030 Ready_0_sqmuxa_0_o2( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); + gnd DRIVEGND( .PWR0(GNDI)); + lut40031 Ready_RNO( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); + vmuxregsre Ready( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), + .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); + vcc DRIVEVCC( .PWR1(VCCI)); + + specify + (C1 => F1) = (0:0:0,0:0:0); + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (D0 => F0) = (0:0:0,0:0:0); + (C0 => F0) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); + (CLK => Q0) = (0:0:0,0:0:0); + $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + endspecify + +endmodule + +module lut40030 ( input A, B, C, D, output Z ); + + ROM16X1A #(16'h7F7F) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module lut40031 ( input A, B, C, D, output Z ); + + ROM16X1A #(16'hAEAA) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module SLICE_34 ( input D1, C1, B1, A1, B0, A0, DI0, CLK, output F0, Q0, F1 ); + wire GNDI, VCCI, DI0_dly, CLK_dly; + + lut40032 Ready_0_sqmuxa_0_a3( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); + lut40006 Ready_fast_RNO( .A(A0), .B(B0), .C(GNDI), .D(GNDI), .Z(F0)); + gnd DRIVEGND( .PWR0(GNDI)); + vmuxregsre Ready_fast( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), + .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); + vcc DRIVEVCC( .PWR1(VCCI)); + + specify + (D1 => F1) = (0:0:0,0:0:0); + (C1 => F1) = (0:0:0,0:0:0); + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); + (CLK => Q0) = (0:0:0,0:0:0); + $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + endspecify + +endmodule + +module lut40032 ( input A, B, C, D, output Z ); + + ROM16X1A #(16'h0200) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module SLICE_35 ( input B1, A1, B0, A0, DI1, DI0, CLK, output F0, Q0, F1, Q1 ); + wire GNDI, VCCI, CLK_NOTIN, DI1_dly, CLK_dly, DI0_dly; + + lut40028 \RowAd[1] ( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); + gnd DRIVEGND( .PWR0(GNDI)); + lut40028 \RowAd[0] ( .A(A0), .B(B0), .C(GNDI), .D(GNDI), .Z(F0)); + vmuxregsre \RowA[1] ( .D0(VCCI), .D1(DI1_dly), .SD(VCCI), .SP(VCCI), + .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q1)); + vcc DRIVEVCC( .PWR1(VCCI)); + inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); + vmuxregsre \RowA[0] ( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), + .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q0)); + + specify + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); + (CLK => Q0) = (0:0:0,0:0:0); + (CLK => Q1) = (0:0:0,0:0:0); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + $setuphold (negedge CLK, DI1, 0:0:0, 0:0:0,,,, CLK_dly, DI1_dly); + $setuphold (negedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); + endspecify + +endmodule + +module SLICE_36 ( input B1, A1, B0, A0, DI1, DI0, CLK, output F0, Q0, F1, Q1 ); + wire GNDI, VCCI, CLK_NOTIN, DI1_dly, CLK_dly, DI0_dly; + + lut40028 \RowAd[3] ( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); + gnd DRIVEGND( .PWR0(GNDI)); + lut40028 \RowAd[2] ( .A(A0), .B(B0), .C(GNDI), .D(GNDI), .Z(F0)); + vmuxregsre \RowA[3] ( .D0(VCCI), .D1(DI1_dly), .SD(VCCI), .SP(VCCI), + .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q1)); + vcc DRIVEVCC( .PWR1(VCCI)); + inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); + vmuxregsre \RowA[2] ( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), + .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q0)); + + specify + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); + (CLK => Q0) = (0:0:0,0:0:0); + (CLK => Q1) = (0:0:0,0:0:0); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + $setuphold (negedge CLK, DI1, 0:0:0, 0:0:0,,,, CLK_dly, DI1_dly); + $setuphold (negedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); + endspecify + +endmodule + +module SLICE_37 ( input B1, A1, B0, A0, DI1, DI0, CLK, output F0, Q0, F1, Q1 ); + wire GNDI, VCCI, CLK_NOTIN, DI1_dly, CLK_dly, DI0_dly; + + lut40024 \RowAd[5] ( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); + gnd DRIVEGND( .PWR0(GNDI)); + lut40028 \RowAd[4] ( .A(A0), .B(B0), .C(GNDI), .D(GNDI), .Z(F0)); + vmuxregsre \RowA[5] ( .D0(VCCI), .D1(DI1_dly), .SD(VCCI), .SP(VCCI), + .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q1)); + vcc DRIVEVCC( .PWR1(VCCI)); + inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); + vmuxregsre \RowA[4] ( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), + .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q0)); + + specify + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); + (CLK => Q0) = (0:0:0,0:0:0); + (CLK => Q1) = (0:0:0,0:0:0); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + $setuphold (negedge CLK, DI1, 0:0:0, 0:0:0,,,, CLK_dly, DI1_dly); + $setuphold (negedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); + endspecify + +endmodule + +module SLICE_38 ( input B1, A1, B0, A0, DI1, DI0, CLK, output F0, Q0, F1, Q1 ); + wire GNDI, VCCI, CLK_NOTIN, DI1_dly, CLK_dly, DI0_dly; + + lut40028 \RowAd[7] ( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); + gnd DRIVEGND( .PWR0(GNDI)); + lut40028 \RowAd[6] ( .A(A0), .B(B0), .C(GNDI), .D(GNDI), .Z(F0)); + vmuxregsre \RowA[7] ( .D0(VCCI), .D1(DI1_dly), .SD(VCCI), .SP(VCCI), + .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q1)); + vcc DRIVEVCC( .PWR1(VCCI)); + inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); + vmuxregsre \RowA[6] ( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), + .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q0)); + + specify + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); + (CLK => Q0) = (0:0:0,0:0:0); + (CLK => Q1) = (0:0:0,0:0:0); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + $setuphold (negedge CLK, DI1, 0:0:0, 0:0:0,,,, CLK_dly, DI1_dly); + $setuphold (negedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); + endspecify + +endmodule + +module SLICE_39 ( input B1, A1, B0, A0, DI1, DI0, CLK, output F0, Q0, F1, Q1 ); + wire GNDI, VCCI, CLK_NOTIN, DI1_dly, CLK_dly, DI0_dly; + + lut40024 \RowAd[9] ( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); + gnd DRIVEGND( .PWR0(GNDI)); + lut40028 \RowAd[8] ( .A(A0), .B(B0), .C(GNDI), .D(GNDI), .Z(F0)); + vmuxregsre \RowA[9] ( .D0(VCCI), .D1(DI1_dly), .SD(VCCI), .SP(VCCI), + .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q1)); + vcc DRIVEVCC( .PWR1(VCCI)); + inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); + vmuxregsre \RowA[8] ( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), + .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q0)); + + specify + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); + (CLK => Q0) = (0:0:0,0:0:0); + (CLK => Q1) = (0:0:0,0:0:0); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + $setuphold (negedge CLK, DI1, 0:0:0, 0:0:0,,,, CLK_dly, DI1_dly); + $setuphold (negedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); + endspecify + +endmodule + +module SLICE_40 ( input D1, C1, B1, A1, B0, A0, DI0, LSR, CLK, output F0, Q0, + F1 ); + wire GNDI, VCCI, LSR_NOTIN, DI0_dly, CLK_dly, LSR_dly; + + lut40015 nRCAS_0_sqmuxa_1_0_a3( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); + lut40006 \S_0_i_o2[1] ( .A(A0), .B(B0), .C(GNDI), .D(GNDI), .Z(F0)); + gnd DRIVEGND( .PWR0(GNDI)); + vmuxregsre0010 \S[1] ( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), + .CK(CLK_dly), .LSR(LSR_NOTIN), .Q(Q0)); + vcc DRIVEVCC( .PWR1(VCCI)); + inverter LSR_INVERTERIN( .I(LSR_dly), .Z(LSR_NOTIN)); + + specify + (D1 => F1) = (0:0:0,0:0:0); + (C1 => F1) = (0:0:0,0:0:0); + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); + (CLK => Q0) = (0:0:0,0:0:0); + $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); $setuphold (posedge CLK, LSR, 0:0:0, 0:0:0,,,, CLK_dly, LSR_dly); $width (posedge LSR, 0:0:0); $width (negedge LSR, 0:0:0); @@ -1283,18 +1614,54 @@ module SLICE_45 ( input D1, C1, B1, A1, D0, C0, B0, A0, DI0, CE, LSR, CLK, endmodule -module lut40024 ( input A, B, C, D, output Z ); +module SLICE_41 ( input D1, C1, B1, A1, B0, A0, DI0, M0, CLK, output OFX0, Q0 ); + wire \SLICE_41/SLICE_41_K1_H1 , GNDI, \SLICE_41/UFMSDI_RNO/GATE_H0 , VCCI, + DI0_dly, CLK_dly; + + lut40033 SLICE_41_K1( .A(A1), .B(B1), .C(C1), .D(D1), + .Z(\SLICE_41/SLICE_41_K1_H1 )); + lut40034 \UFMSDI_RNO/GATE ( .A(A0), .B(B0), .C(GNDI), .D(GNDI), + .Z(\SLICE_41/UFMSDI_RNO/GATE_H0 )); + gnd DRIVEGND( .PWR0(GNDI)); + vmuxregsre UFMSDI( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), + .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); + vcc DRIVEVCC( .PWR1(VCCI)); + selmux2 SLICE_41_K0K1MUX( .D0(\SLICE_41/UFMSDI_RNO/GATE_H0 ), + .D1(\SLICE_41/SLICE_41_K1_H1 ), .SD(M0), .Z(OFX0)); + + specify + (D1 => OFX0) = (0:0:0,0:0:0); + (C1 => OFX0) = (0:0:0,0:0:0); + (B1 => OFX0) = (0:0:0,0:0:0); + (A1 => OFX0) = (0:0:0,0:0:0); + (B0 => OFX0) = (0:0:0,0:0:0); + (A0 => OFX0) = (0:0:0,0:0:0); + (M0 => OFX0) = (0:0:0,0:0:0); + (CLK => Q0) = (0:0:0,0:0:0); + $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + endspecify - ROM16X1A #(16'hCAC0) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule -module SLICE_50 ( input D1, C1, B1, A1, D0, C0, B0, A0, DI0, CE, CLK, output +module lut40033 ( input A, B, C, D, output Z ); + + ROM16X1A #(16'h1110) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module lut40034 ( input A, B, C, D, output Z ); + + ROM16X1A #(16'h2222) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module SLICE_42 ( input D1, C1, B1, A1, D0, C0, B0, A0, DI0, CE, CLK, output F0, Q0, F1 ); wire VCCI, CLK_NOTIN, GNDI, DI0_dly, CLK_dly, CE_dly; - lut40025 i1962_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40026 i2_3_lut_4_lut_adj_11( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre XOR8MEG_408( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), + lut40035 un1_Din_3( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); + lut40036 XOR8MEG_3_u( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); + vmuxregsre XOR8MEG( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q0)); vcc DRIVEVCC( .PWR1(VCCI)); inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); @@ -1318,257 +1685,38 @@ module SLICE_50 ( input D1, C1, B1, A1, D0, C0, B0, A0, DI0, CE, CLK, output endmodule -module lut40025 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hFEFA) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module lut40026 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h0008) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_57 ( input D1, C1, B1, A1, D0, C0, B0, A0, DI0, CE, CLK, output - F0, Q0, F1 ); - wire VCCI, GNDI, DI0_dly, CLK_dly, CE_dly; - - lut40027 i2_3_lut_rep_18_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40028 n8MEGEN_I_14_3_lut_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre n8MEGEN_418( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module lut40027 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h1000) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module lut40028 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hBF04) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_59 ( input D1, C1, B1, A1, D0, C0, B0, A0, DI0, CE, CLK, output - F0, Q0, F1 ); - wire VCCI, GNDI, DI0_dly, CLK_dly, CE_dly; - - lut40029 nRCAS_I_43_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40030 nRCAS_I_0_452_3_lut_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre0031 nRCAS_398( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module lut40029 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h3AFA) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module lut40030 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hFE0E) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module vmuxregsre0031 ( input D0, D1, SD, SP, CK, LSR, output Q ); - - FL1P3BX INST01( .D0(D0), .D1(D1), .SP(SP), .CK(CK), .SD(SD), .PD(LSR), .Q(Q)); - defparam INST01.GSR = "DISABLED"; -endmodule - -module SLICE_61 ( input D1, C1, B1, A1, C0, B0, A0, DI0, CE, CLK, output F0, - Q0, F1 ); - wire GNDI, VCCI, DI0_dly, CLK_dly, CE_dly; - - lut40032 nRCS_I_31_3_lut_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40021 nRCS_I_0_448_3_lut( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre0031 nRCS_396( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module lut40032 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h1F10) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_62 ( input D1, C1, B1, A1, D0, C0, B0, A0, DI0, CE, CLK, output - F0, Q0, F1 ); - wire VCCI, GNDI, DI0_dly, CLK_dly, CE_dly; - - lut40033 i3_4_lut_adj_2( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40029 nRCS_N_137_I_0_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre0031 nRRAS_397( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module lut40033 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hBFFF) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_64 ( input B1, A1, D0, C0, B0, A0, DI0, CE, CLK, output F0, Q0, - F1 ); - wire GNDI, VCCI, DI0_dly, CLK_dly, CE_dly; - - lut40034 i1477_2_lut( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40035 nRWE_I_0_455_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre0031 nRWE_399( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - - specify - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module lut40034 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hEEEE) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - module lut40035 ( input A, B, C, D, output Z ); - ROM16X1A #(16'hCFC5) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_65 ( input B1, A1, D0, C0, B0, A0, DI0, CE, CLK, output F0, Q0, - F1 ); - wire GNDI, VCCI, DI0_dly, CLK_dly, CE_dly; - - lut40034 i786_2_lut( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40036 i1432_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre nRowColSel_402( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - - specify - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - + ROM16X1A #(16'h0001) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule module lut40036 ( input A, B, C, D, output Z ); - ROM16X1A #(16'h3032) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); + ROM16X1A #(16'hA0CC) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule -module SLICE_66 ( input B1, A1, B0, A0, DI0, LSR, CLK, output F0, Q0, F1 ); - wire GNDI, VCCI, LSR_NOTIN, DI0_dly, CLK_dly, LSR_dly; +module SLICE_43 ( input D1, C1, B1, A1, C0, B0, A0, DI0, CE, CLK, output F0, + Q0, F1 ); + wire GNDI, VCCI, DI0_dly, CLK_dly, CE_dly; - lut40037 i1_2_lut_adj_23( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); + lut40004 un1_Bank_1_4( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); + lut40037 n8MEGEN_5_i_m2( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); gnd DRIVEGND( .PWR0(GNDI)); - lut40034 i1439_2_lut( .A(A0), .B(B0), .C(GNDI), .D(GNDI), .Z(F0)); - vmuxregsre0004 S_FSM_i4( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(LSR_NOTIN), .Q(Q0)); + vmuxregsre n8MEGEN( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), + .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); vcc DRIVEVCC( .PWR1(VCCI)); - inverter LSR_INVERTERIN( .I(LSR_dly), .Z(LSR_NOTIN)); specify + (D1 => F1) = (0:0:0,0:0:0); + (C1 => F1) = (0:0:0,0:0:0); (B1 => F1) = (0:0:0,0:0:0); (A1 => F1) = (0:0:0,0:0:0); + (C0 => F0) = (0:0:0,0:0:0); (B0 => F0) = (0:0:0,0:0:0); (A0 => F0) = (0:0:0,0:0:0); (CLK => Q0) = (0:0:0,0:0:0); $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, LSR, 0:0:0, 0:0:0,,,, CLK_dly, LSR_dly); - $width (posedge LSR, 0:0:0); - $width (negedge LSR, 0:0:0); + $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); $width (posedge CLK, 0:0:0); $width (negedge CLK, 0:0:0); endspecify @@ -1577,20 +1725,26 @@ endmodule module lut40037 ( input A, B, C, D, output Z ); - ROM16X1A #(16'hBBBB) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); + ROM16X1A #(16'h8B8B) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule -module SLICE_67 ( input B0, A0, DI0, LSR, CLK, output F0, Q0 ); - wire GNDI, VCCI, LSR_NOTIN, DI0_dly, CLK_dly, LSR_dly; +module SLICE_44 ( input D1, C1, B1, A1, D0, C0, B0, A0, DI0, LSR, CLK, output + F0, Q0, F1 ); + wire VCCI, DI0_dly, CLK_dly, LSR_dly; - lut40038 i1_2_lut_adj_10( .A(A0), .B(B0), .C(GNDI), .D(GNDI), .Z(F0)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre0004 S_FSM_i3( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(LSR_NOTIN), .Q(Q0)); + lut40038 nRowColSel_0_0_a3_0( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); + lut40039 nRowColSel_0_0( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); + vmuxregsre0010 nRowColSel( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), + .CK(CLK_dly), .LSR(LSR_dly), .Q(Q0)); vcc DRIVEVCC( .PWR1(VCCI)); - inverter LSR_INVERTERIN( .I(LSR_dly), .Z(LSR_NOTIN)); specify + (D1 => F1) = (0:0:0,0:0:0); + (C1 => F1) = (0:0:0,0:0:0); + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (D0 => F0) = (0:0:0,0:0:0); + (C0 => F0) = (0:0:0,0:0:0); (B0 => F0) = (0:0:0,0:0:0); (A0 => F0) = (0:0:0,0:0:0); (CLK => Q0) = (0:0:0,0:0:0); @@ -1606,75 +1760,21 @@ endmodule module lut40038 ( input A, B, C, D, output Z ); - ROM16X1A #(16'h2222) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_68 ( input B1, A1, B0, A0, M0, LSR, CLK, output F0, Q0, F1 ); - wire GNDI, VCCI, LSR_NOTIN, M0_dly, CLK_dly, LSR_dly; - - lut40034 i4_2_lut( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40039 i1989_2_lut( .A(A0), .B(B0), .C(GNDI), .D(GNDI), .Z(F0)); - vmuxregsre0004 S_FSM_i2( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_dly), .LSR(LSR_NOTIN), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - inverter LSR_INVERTERIN( .I(LSR_dly), .Z(LSR_NOTIN)); - - specify - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - $setuphold (posedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $setuphold (posedge CLK, LSR, 0:0:0, 0:0:0,,,, CLK_dly, LSR_dly); - $width (posedge LSR, 0:0:0); - $width (negedge LSR, 0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - + ROM16X1A #(16'h1000) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule module lut40039 ( input A, B, C, D, output Z ); - ROM16X1A #(16'h8888) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); + ROM16X1A #(16'hDCEC) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule -module SLICE_69 ( input B1, A1, A0, DI0, M1, CLK, output F0, Q0, F1, Q1 ); - wire GNDI, VCCI, DI0_dly, CLK_dly, M1_dly; +module SLICE_45 ( input D1, C1, B1, A1, D0, C0, B0, A0, DI0, CLK, output F0, + Q0, F1 ); + wire VCCI, GNDI, DI0_dly, CLK_dly; - lut40034 i1491_2_lut_rep_30( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40008 RASr2_I_0_1_lut_rep_25( .A(A0), .B(GNDI), .C(GNDI), .D(GNDI), - .Z(F0)); - vmuxregsre PHI2r3_378( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - vmuxregsre S_FSM_i1( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - - specify - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module SLICE_70 ( input D1, C1, B1, A1, D0, C0, B0, A0, DI0, CE, CLK, output - F0, Q0, F1 ); - wire VCCI, GNDI, DI0_dly, CLK_dly, CE_dly; - - lut40040 i1_2_lut_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40041 i1448_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre0031 nUFMCS_415( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(CE_dly), + lut40040 nUFMCS_s_0_m4_yy( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); + lut40041 nUFMCS_s_0_N_5_i( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); + vmuxregsre0042 nUFMCS( .D0(VCCI), .D1(DI0_dly), .SD(VCCI), .SP(VCCI), .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); vcc DRIVEVCC( .PWR1(VCCI)); gnd DRIVEGND( .PWR0(GNDI)); @@ -1690,7 +1790,6 @@ module SLICE_70 ( input D1, C1, B1, A1, D0, C0, B0, A0, DI0, CE, CLK, output (A0 => F0) = (0:0:0,0:0:0); (CLK => Q0) = (0:0:0,0:0:0); $setuphold (posedge CLK, DI0, 0:0:0, 0:0:0,,,, CLK_dly, DI0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); $width (posedge CLK, 0:0:0); $width (negedge CLK, 0:0:0); endspecify @@ -1699,80 +1798,52 @@ endmodule module lut40040 ( input A, B, C, D, output Z ); - ROM16X1A #(16'hFFFE) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); + ROM16X1A #(16'h000B) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule module lut40041 ( input A, B, C, D, output Z ); - ROM16X1A #(16'h3FBB) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); + ROM16X1A #(16'h5F4E) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule -module i30_SLICE_71 ( input C1, B1, A1, D0, C0, B0, A0, M0, output OFX0 ); - wire GNDI, \i30/SLICE_71/i30/SLICE_71_K1_H1 , \i30/SLICE_71/i30/GATE_H0 ; +module vmuxregsre0042 ( input D0, D1, SD, SP, CK, LSR, output Q ); - lut40042 \i30/SLICE_71_K1 ( .A(A1), .B(B1), .C(C1), .D(GNDI), - .Z(\i30/SLICE_71/i30/SLICE_71_K1_H1 )); - gnd DRIVEGND( .PWR0(GNDI)); - lut40043 \i30/GATE ( .A(A0), .B(B0), .C(C0), .D(D0), - .Z(\i30/SLICE_71/i30/GATE_H0 )); - selmux2 \i30/SLICE_71_K0K1MUX ( .D0(\i30/SLICE_71/i30/GATE_H0 ), - .D1(\i30/SLICE_71/i30/SLICE_71_K1_H1 ), .SD(M0), .Z(OFX0)); + FL1P3BX INST01( .D0(D0), .D1(D1), .SP(SP), .CK(CK), .SD(SD), .PD(LSR), .Q(Q)); + defparam INST01.GSR = "DISABLED"; +endmodule + +module SLICE_46 ( input D1, C1, B1, A1, D0, C0, B0, A0, output F0, F1 ); + + lut40043 un1_ADWR( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); + lut40044 un1_CMDWR( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); specify - (C1 => OFX0) = (0:0:0,0:0:0); - (B1 => OFX0) = (0:0:0,0:0:0); - (A1 => OFX0) = (0:0:0,0:0:0); - (D0 => OFX0) = (0:0:0,0:0:0); - (C0 => OFX0) = (0:0:0,0:0:0); - (B0 => OFX0) = (0:0:0,0:0:0); - (A0 => OFX0) = (0:0:0,0:0:0); - (M0 => OFX0) = (0:0:0,0:0:0); + (D1 => F1) = (0:0:0,0:0:0); + (C1 => F1) = (0:0:0,0:0:0); + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (D0 => F0) = (0:0:0,0:0:0); + (C0 => F0) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); endspecify endmodule -module lut40042 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h1F1F) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - module lut40043 ( input A, B, C, D, output Z ); - ROM16X1A #(16'h5540) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module selmux2 ( input D0, D1, SD, output Z ); - - MUX21 INST1( .D0(D0), .D1(D1), .SD(SD), .Z(Z)); -endmodule - -module SLICE_72 ( input D1, C1, B1, A1, B0, A0, output F0, F1 ); - wire GNDI; - - lut40044 i1_4_lut_4_lut_adj_12( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40039 i2_2_lut( .A(A0), .B(B0), .C(GNDI), .D(GNDI), .Z(F0)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - endspecify - + ROM16X1A #(16'hEAAA) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule module lut40044 ( input A, B, C, D, output Z ); - ROM16X1A #(16'hFF40) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); + ROM16X1A #(16'hFF80) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule -module SLICE_73 ( input D1, C1, B1, A1, D0, C0, B0, A0, output F0, F1 ); +module SLICE_47 ( input D1, C1, B1, A1, D0, C0, B0, A0, output F0, F1 ); - lut40003 i2_3_lut_4_lut_adj_14( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40010 i4_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); + lut40035 nUFMCS15_0_a2( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); + lut40045 UFMCLK_0io_RNO( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); specify (D1 => F1) = (0:0:0,0:0:0); @@ -1787,126 +1858,23 @@ module SLICE_73 ( input D1, C1, B1, A1, D0, C0, B0, A0, output F0, F1 ); endmodule -module SLICE_74 ( input D1, C1, B1, A1, D0, C0, B0, A0, M1, M0, LSR, CLK, - output F0, Q0, F1, Q1 ); - wire VCCI, GNDI, CLK_NOTIN, LSR_NOTIN, M1_dly, CLK_dly, M0_dly, LSR_dly; - - lut40033 i12_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40045 i1_2_lut_3_lut_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre0004 RowA_i1( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(LSR_NOTIN), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - gnd DRIVEGND( .PWR0(GNDI)); - inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); - inverter LSR_INVERTERIN( .I(LSR_dly), .Z(LSR_NOTIN)); - vmuxregsre0004 RowA_i0( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(LSR_NOTIN), .Q(Q0)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $width (posedge LSR, 0:0:0); - $width (negedge LSR, 0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - $setuphold (negedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (negedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $setuphold (negedge CLK, LSR, 0:0:0, 0:0:0,,,, CLK_dly, LSR_dly); - endspecify - -endmodule - module lut40045 ( input A, B, C, D, output Z ); - ROM16X1A #(16'h0020) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); + ROM16X1A #(16'h0B00) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule -module SLICE_75 ( input D1, C1, B1, A1, B0, A0, M1, M0, CE, CLK, output F0, Q0, - F1, Q1 ); - wire GNDI, VCCI, M1_dly, CLK_dly, M0_dly, CE_dly; +module SLICE_48 ( input D1, C1, B1, A1, C0, B0, A0, output F0, F1 ); + wire GNDI; - lut40027 i3_4_lut_adj_18( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40038 i1_2_lut( .A(A0), .B(B0), .C(GNDI), .D(GNDI), .Z(F0)); + lut40015 UFMCLK_r_i_a2_2_2( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); + lut40046 UFMCLK_0io_RNO_1( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre IS_FSM__i9( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - vmuxregsre IS_FSM__i8( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); specify (D1 => F1) = (0:0:0,0:0:0); (C1 => F1) = (0:0:0,0:0:0); (B1 => F1) = (0:0:0,0:0:0); (A1 => F1) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $setuphold (posedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (posedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module SLICE_76 ( input C1, B1, A1, D0, C0, B0, A0, M1, M0, LSR, CLK, output - F0, Q0, F1, Q1 ); - wire GNDI, VCCI, CLK_NOTIN, LSR_NOTIN, M1_dly, CLK_dly, M0_dly, LSR_dly; - - lut40012 i1_2_lut_rep_19_3_lut( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40026 i1_2_lut_rep_15_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre0007 RowA_i9( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(LSR_NOTIN), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); - inverter LSR_INVERTERIN( .I(LSR_dly), .Z(LSR_NOTIN)); - vmuxregsre0004 RowA_i8( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(LSR_NOTIN), .Q(Q0)); - - specify - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $width (posedge LSR, 0:0:0); - $width (negedge LSR, 0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - $setuphold (negedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (negedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $setuphold (negedge CLK, LSR, 0:0:0, 0:0:0,,,, CLK_dly, LSR_dly); - endspecify - -endmodule - -module SLICE_77 ( input D1, C1, B1, A1, D0, C0, B0, A0, output F0, F1 ); - - lut40046 i3_4_lut_adj_22( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40046 i3_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); (C0 => F0) = (0:0:0,0:0:0); (B0 => F0) = (0:0:0,0:0:0); (A0 => F0) = (0:0:0,0:0:0); @@ -1916,64 +1884,16 @@ endmodule module lut40046 ( input A, B, C, D, output Z ); - ROM16X1A #(16'h0800) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); + ROM16X1A #(16'h0E0E) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule -module SLICE_78 ( input D1, C1, B1, A1, B0, A0, M1, M0, CE, CLK, output F0, Q0, - F1, Q1 ); - wire GNDI, VCCI, M1_dly, CLK_dly, M0_dly, CE_dly; +module SLICE_49 ( input D1, C1, B1, A1, D0, C0, B0, A0, output F0, F1 ); - lut40047 nRCS_N_146_bdd_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40048 i1423_2_lut( .A(A0), .B(B0), .C(GNDI), .D(GNDI), .Z(F0)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre IS_FSM__i13( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - vmuxregsre IS_FSM__i12( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); + lut40019 IS_0_sqmuxa_0_o2_0( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); + lut40047 un1_nRCAS_6_sqmuxa_i_0( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); specify (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $setuphold (posedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (posedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module lut40047 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hF0DD) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module lut40048 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hDDDD) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_79 ( input C1, B1, A1, D0, C0, B0, A0, M1, M0, CE, CLK, output F0, - Q0, F1, Q1 ); - wire GNDI, VCCI, M1_dly, CLK_dly, M0_dly, CE_dly; - - lut40016 i11_3_lut_rep_20( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40049 MAin_c_0_bdd_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre IS_FSM__i11( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - vmuxregsre IS_FSM__i10( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - - specify (C1 => F1) = (0:0:0,0:0:0); (B1 => F1) = (0:0:0,0:0:0); (A1 => F1) = (0:0:0,0:0:0); @@ -1981,30 +1901,53 @@ module SLICE_79 ( input C1, B1, A1, D0, C0, B0, A0, M1, M0, CE, CLK, output F0, (C0 => F0) = (0:0:0,0:0:0); (B0 => F0) = (0:0:0,0:0:0); (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $setuphold (posedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (posedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); endspecify endmodule -module lut40049 ( input A, B, C, D, output Z ); +module lut40047 ( input A, B, C, D, output Z ); - ROM16X1A #(16'h0200) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); + ROM16X1A #(16'h0BFB) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule -module SLICE_80 ( input B1, A1, D0, C0, B0, A0, output F0, F1 ); +module SLICE_50 ( input D1, C1, B1, A1, C0, B0, A0, output F0, F1 ); wire GNDI; - lut40034 i3_2_lut_rep_26( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); + lut40048 Cmdn8MEGEN_4_u_i_0( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); + lut40049 Cmdn8MEGEN_4_u_i_o2( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); gnd DRIVEGND( .PWR0(GNDI)); - lut40050 i2005_3_lut_rep_17_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); specify + (D1 => F1) = (0:0:0,0:0:0); + (C1 => F1) = (0:0:0,0:0:0); + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (C0 => F0) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); + endspecify + +endmodule + +module lut40048 ( input A, B, C, D, output Z ); + + ROM16X1A #(16'h2722) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module lut40049 ( input A, B, C, D, output Z ); + + ROM16X1A #(16'hF4F4) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module SLICE_51 ( input C1, B1, A1, D0, C0, B0, A0, output F0, F1 ); + wire GNDI; + + lut40050 nRCAS_0io_RNO_0( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); + gnd DRIVEGND( .PWR0(GNDI)); + lut40051 nRCAS_0io_RNO( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); + + specify + (C1 => F1) = (0:0:0,0:0:0); (B1 => F1) = (0:0:0,0:0:0); (A1 => F1) = (0:0:0,0:0:0); (D0 => F0) = (0:0:0,0:0:0); @@ -2017,158 +1960,80 @@ endmodule module lut40050 ( input A, B, C, D, output Z ); - ROM16X1A #(16'h0001) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); + ROM16X1A #(16'h1313) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule -module SLICE_81 ( input B1, A1, D0, C0, B0, A0, M1, M0, CE, CLK, output F0, Q0, - F1, Q1 ); - wire GNDI, VCCI, M1_dly, CLK_dly, M0_dly, CE_dly; +module lut40051 ( input A, B, C, D, output Z ); - lut40034 i1_2_lut_rep_29( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); + ROM16X1A #(16'h1303) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module SLICE_52 ( input C1, B1, A1, D0, C0, B0, A0, output F0, F1 ); + wire GNDI; + + lut40052 un1_nRCAS_6_sqmuxa_i_o2( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); gnd DRIVEGND( .PWR0(GNDI)); - lut40051 i1427_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre IS_FSM__i15( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - vmuxregsre IS_FSM__i14( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); + lut40053 nRRAS_5_u_i_0_RNILD5I( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); specify + (C1 => F1) = (0:0:0,0:0:0); (B1 => F1) = (0:0:0,0:0:0); (A1 => F1) = (0:0:0,0:0:0); (D0 => F0) = (0:0:0,0:0:0); (C0 => F0) = (0:0:0,0:0:0); (B0 => F0) = (0:0:0,0:0:0); (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $setuphold (posedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (posedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module lut40051 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'hFCDD) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_82 ( input D1, C1, B1, A1, B0, A0, M1, M0, LSR, CLK, output F0, - Q0, F1, Q1 ); - wire GNDI, VCCI, CLK_NOTIN, LSR_NOTIN, M1_dly, CLK_dly, M0_dly, LSR_dly; - - lut40052 i6_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40039 i1_2_lut_adj_3( .A(A0), .B(B0), .C(GNDI), .D(GNDI), .Z(F0)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre0007 RowA_i5( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(LSR_NOTIN), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); - inverter LSR_INVERTERIN( .I(LSR_dly), .Z(LSR_NOTIN)); - vmuxregsre0004 RowA_i4( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(LSR_NOTIN), .Q(Q0)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $width (posedge LSR, 0:0:0); - $width (negedge LSR, 0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - $setuphold (negedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (negedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $setuphold (negedge CLK, LSR, 0:0:0, 0:0:0,,,, CLK_dly, LSR_dly); endspecify endmodule module lut40052 ( input A, B, C, D, output Z ); - ROM16X1A #(16'h8000) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_83 ( input D1, C1, B1, A1, D0, C0, B0, A0, output F0, F1 ); - - lut40053 i2_4_lut_adj_21( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40054 i2_3_lut_4_lut_adj_6( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - endspecify - + ROM16X1A #(16'hFEFE) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule module lut40053 ( input A, B, C, D, output Z ); - ROM16X1A #(16'h0004) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); + ROM16X1A #(16'h5051) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule -module lut40054 ( input A, B, C, D, output Z ); +module SLICE_53 ( input D1, C1, B1, A1, C0, B0, A0, output F0, F1 ); + wire GNDI; - ROM16X1A #(16'hFFDF) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_84 ( input C1, B1, A1, D0, C0, B0, A0, M1, M0, CE, CLK, output F0, - Q0, F1, Q1 ); - wire GNDI, VCCI, M1_dly, CLK_dly, M0_dly, CE_dly; - - lut40055 i2_3_lut_rep_28( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); + lut40054 nRWE_s_i_tz_0( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); + lut40055 \S_RNICVV51[0] ( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); gnd DRIVEGND( .PWR0(GNDI)); - lut40024 i1573_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre IS_FSM__i3( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - vmuxregsre IS_FSM__i2( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - - specify - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $setuphold (posedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (posedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module lut40055 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h2020) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_85 ( input D1, C1, B1, A1, D0, C0, B0, A0, output F0, F1 ); - - lut40056 i1969_2_lut_3_lut_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40040 i3_4_lut_adj_7( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); specify (D1 => F1) = (0:0:0,0:0:0); (C1 => F1) = (0:0:0,0:0:0); + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (C0 => F0) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); + endspecify + +endmodule + +module lut40054 ( input A, B, C, D, output Z ); + + ROM16X1A #(16'hFF40) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module lut40055 ( input A, B, C, D, output Z ); + + ROM16X1A #(16'h0202) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module SLICE_54 ( input B1, A1, D0, C0, B0, A0, output F0, F1 ); + wire GNDI; + + lut40056 un1_PHI2r3_0( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); + gnd DRIVEGND( .PWR0(GNDI)); + lut40057 un1_FS_13_i_0( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); + + specify (B1 => F1) = (0:0:0,0:0:0); (A1 => F1) = (0:0:0,0:0:0); (D0 => F0) = (0:0:0,0:0:0); @@ -2181,129 +2046,22 @@ endmodule module lut40056 ( input A, B, C, D, output Z ); - ROM16X1A #(16'hFFEF) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_86 ( input C1, B1, A1, D0, C0, B0, A0, M1, M0, CLK, output F0, Q0, - F1, Q1 ); - wire GNDI, VCCI, M1_dly, CLK_dly, M0_dly; - - lut40012 i5_3_lut( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut4 i1_4_lut_adj_8( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre RASr3_381( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - vmuxregsre PHI2r_376( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - - specify - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $setuphold (posedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (posedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module SLICE_87 ( input D1, C1, B1, A1, B0, A0, M1, M0, LSR, CLK, output F0, - Q0, F1, Q1 ); - wire GNDI, VCCI, CLK_NOTIN, LSR_NOTIN, M1_dly, CLK_dly, M0_dly, LSR_dly; - - lut40040 i4_4_lut_adj_16( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40048 i1_2_lut_2_lut( .A(A0), .B(B0), .C(GNDI), .D(GNDI), .Z(F0)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre0004 RBA__i2( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(LSR_NOTIN), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); - inverter LSR_INVERTERIN( .I(LSR_dly), .Z(LSR_NOTIN)); - vmuxregsre0004 RBA__i1( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(LSR_NOTIN), .Q(Q0)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $width (posedge LSR, 0:0:0); - $width (negedge LSR, 0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - $setuphold (negedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (negedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $setuphold (negedge CLK, LSR, 0:0:0, 0:0:0,,,, CLK_dly, LSR_dly); - endspecify - -endmodule - -module SLICE_88 ( input D1, C1, B1, A1, D0, C0, B0, A0, M1, M0, CLK, output F0, - Q0, F1, Q1 ); - wire VCCI, GNDI, CLK_NOTIN, M1_dly, CLK_dly, M0_dly; - - lut40057 i34_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40053 i1_4_lut_adj_13( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre WRD_i7( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - gnd DRIVEGND( .PWR0(GNDI)); - inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); - vmuxregsre WRD_i6( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q0)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - $setuphold (negedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (negedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - endspecify - + ROM16X1A #(16'h4444) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule module lut40057 ( input A, B, C, D, output Z ); - ROM16X1A #(16'hC0C5) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); + ROM16X1A #(16'hF8F0) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule -module SLICE_89 ( input D1, C1, B1, A1, D0, C0, B0, A0, M1, M0, CLK, output F0, - Q0, F1, Q1 ); - wire VCCI, GNDI, CLK_NOTIN, M1_dly, CLK_dly, M0_dly; +module SLICE_55 ( input C1, B1, A1, D0, C0, B0, A0, output F0, F1 ); + wire GNDI; - lut40058 i2_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40059 i1_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre WRD_i5( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); + lut4 un1_FS_14_i_a2_0( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); gnd DRIVEGND( .PWR0(GNDI)); - inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); - vmuxregsre WRD_i4( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q0)); + lut40057 un1_FS_14_i_0( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); specify - (D1 => F1) = (0:0:0,0:0:0); (C1 => F1) = (0:0:0,0:0:0); (B1 => F1) = (0:0:0,0:0:0); (A1 => F1) = (0:0:0,0:0:0); @@ -2311,74 +2069,64 @@ module SLICE_89 ( input D1, C1, B1, A1, D0, C0, B0, A0, M1, M0, CLK, output F0, (C0 => F0) = (0:0:0,0:0:0); (B0 => F0) = (0:0:0,0:0:0); (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - $setuphold (negedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (negedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); + endspecify + +endmodule + +module SLICE_56 ( input D1, C1, B1, A1, C0, B0, A0, output F0, F1 ); + wire GNDI; + + lut40058 un1_FS_13_i_a2_1( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); + lut4 un1_FS_13_i_a2( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); + gnd DRIVEGND( .PWR0(GNDI)); + + specify + (D1 => F1) = (0:0:0,0:0:0); + (C1 => F1) = (0:0:0,0:0:0); + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (C0 => F0) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); endspecify endmodule module lut40058 ( input A, B, C, D, output Z ); - ROM16X1A #(16'h8088) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); + ROM16X1A #(16'h0100) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule -module lut40059 ( input A, B, C, D, output Z ); +module SLICE_57 ( input D1, C1, B1, A1, D0, C0, B0, A0, output F0, F1 ); - ROM16X1A #(16'hC444) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_90 ( input D1, C1, B1, A1, C0, B0, A0, M1, M0, CLK, output F0, Q0, - F1, Q1 ); - wire GNDI, VCCI, CLK_NOTIN, M1_dly, CLK_dly, M0_dly; - - lut40049 i1_2_lut_3_lut_4_lut_adj_1( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40055 i1_2_lut_rep_21_3_lut( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre WRD_i1( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); - vmuxregsre WRD_i0( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q0)); + lut40059 CmdSubmitted_1_sqmuxa_0_a2( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); + lut40004 XOR8MEG18( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); + + specify + (D1 => F1) = (0:0:0,0:0:0); + (C1 => F1) = (0:0:0,0:0:0); + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (D0 => F0) = (0:0:0,0:0:0); + (C0 => F0) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); + endspecify + +endmodule + +module lut40059 ( input A, B, C, D, output Z ); + + ROM16X1A #(16'h2202) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module SLICE_58 ( input D1, C1, B1, A1, D0, C0, B0, A0, output F0, F1 ); + + lut40032 UFMSDI_ens2_i_a2_4_2( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); + lut40060 UFMSDI_ens2_i_a0( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); specify (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - $setuphold (negedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (negedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - endspecify - -endmodule - -module SLICE_91 ( input C1, B1, A1, D0, C0, B0, A0, M1, M0, LSR, CLK, output - F0, Q0, F1, Q1 ); - wire GNDI, VCCI, CLK_NOTIN, LSR_NOTIN, M1_dly, CLK_dly, M0_dly, LSR_dly; - - lut40060 i1_2_lut_rep_13_3_lut( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40061 i1_2_lut_3_lut_4_lut_adj_5( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre0004 RowA_i3( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(LSR_NOTIN), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); - inverter LSR_INVERTERIN( .I(LSR_dly), .Z(LSR_NOTIN)); - vmuxregsre0004 RowA_i2( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(LSR_NOTIN), .Q(Q0)); - - specify (C1 => F1) = (0:0:0,0:0:0); (B1 => F1) = (0:0:0,0:0:0); (A1 => F1) = (0:0:0,0:0:0); @@ -2386,45 +2134,23 @@ module SLICE_91 ( input C1, B1, A1, D0, C0, B0, A0, M1, M0, LSR, CLK, output (C0 => F0) = (0:0:0,0:0:0); (B0 => F0) = (0:0:0,0:0:0); (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $width (posedge LSR, 0:0:0); - $width (negedge LSR, 0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - $setuphold (negedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (negedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $setuphold (negedge CLK, LSR, 0:0:0, 0:0:0,,,, CLK_dly, LSR_dly); endspecify endmodule module lut40060 ( input A, B, C, D, output Z ); - ROM16X1A #(16'hDFDF) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); + ROM16X1A #(16'h5155) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule -module lut40061 ( input A, B, C, D, output Z ); +module SLICE_59 ( input C1, B1, A1, D0, C0, B0, A0, output F0, F1 ); + wire GNDI; - ROM16X1A #(16'hDFFF) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_92 ( input D1, C1, B1, A1, D0, C0, B0, A0, M1, M0, CLK, output F0, - Q0, F1, Q1 ); - wire VCCI, GNDI, CLK_NOTIN, M1_dly, CLK_dly, M0_dly; - - lut40062 i2008_2_lut_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40005 i1_2_lut_rep_22_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - vmuxregsre WRD_i3( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); + lut40013 UFMSDI_en_ss0_0_a2_0( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); gnd DRIVEGND( .PWR0(GNDI)); - inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); - vmuxregsre WRD_i2( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q0)); + lut40015 un1_FS_13_i_a2_8( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); specify - (D1 => F1) = (0:0:0,0:0:0); (C1 => F1) = (0:0:0,0:0:0); (B1 => F1) = (0:0:0,0:0:0); (A1 => F1) = (0:0:0,0:0:0); @@ -2432,36 +2158,97 @@ module SLICE_92 ( input D1, C1, B1, A1, D0, C0, B0, A0, M1, M0, CLK, output F0, (C0 => F0) = (0:0:0,0:0:0); (B0 => F0) = (0:0:0,0:0:0); (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - $setuphold (negedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (negedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); endspecify endmodule -module lut40062 ( input A, B, C, D, output Z ); +module SLICE_60 ( input B1, A1, D0, C0, B0, A0, output F0, F1 ); + wire GNDI; + + lut40028 ADWR_3( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); + gnd DRIVEGND( .PWR0(GNDI)); + lut40004 ADWR( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); + + specify + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (D0 => F0) = (0:0:0,0:0:0); + (C0 => F0) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); + endspecify - ROM16X1A #(16'h0080) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule -module SLICE_93 ( input B1, A1, C0, B0, A0, M1, M0, CLK, output F0, Q0, F1, Q1 ); +module SLICE_61 ( input C1, B1, A1, D0, C0, B0, A0, output F0, F1 ); + wire GNDI; + + lut40061 nRCS_0io_RNO_0( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); + gnd DRIVEGND( .PWR0(GNDI)); + lut40062 nRRAS_5_u_i( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); + + specify + (C1 => F1) = (0:0:0,0:0:0); + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (D0 => F0) = (0:0:0,0:0:0); + (C0 => F0) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); + endspecify + +endmodule + +module lut40061 ( input A, B, C, D, output Z ); + + ROM16X1A #(16'h1010) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module lut40062 ( input A, B, C, D, output Z ); + + ROM16X1A #(16'hFF32) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module SLICE_62 ( input B1, A1, D0, C0, B0, A0, output F0, F1 ); + wire GNDI; + + lut40006 RA10_2_sqmuxa_0_o2( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); + gnd DRIVEGND( .PWR0(GNDI)); + lut40063 nRWE_s_i_a3_1_0( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); + + specify + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (D0 => F0) = (0:0:0,0:0:0); + (C0 => F0) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); + endspecify + +endmodule + +module lut40063 ( input A, B, C, D, output Z ); + + ROM16X1A #(16'h0002) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module SLICE_63 ( input B1, A1, D0, C0, B0, A0, M1, M0, CLK, output F0, Q0, F1, + Q1 ); wire GNDI, VCCI, M1_dly, CLK_dly, M0_dly; - lut40063 i2001_2_lut( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); + lut40064 C1WR_1( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); gnd DRIVEGND( .PWR0(GNDI)); - lut40021 MAin_9__I_0_427_i10_3_lut( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); - vmuxregsre Bank_i1( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), + lut40008 C1WR_3( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); + vmuxregsre \Bank_0io[1] ( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); vcc DRIVEVCC( .PWR1(VCCI)); - vmuxregsre Bank_i0( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), + vmuxregsre \Bank_0io[0] ( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); specify (B1 => F1) = (0:0:0,0:0:0); (A1 => F1) = (0:0:0,0:0:0); + (D0 => F0) = (0:0:0,0:0:0); (C0 => F0) = (0:0:0,0:0:0); (B0 => F0) = (0:0:0,0:0:0); (A0 => F0) = (0:0:0,0:0:0); @@ -2475,41 +2262,19 @@ module SLICE_93 ( input B1, A1, C0, B0, A0, M1, M0, CLK, output F0, Q0, F1, Q1 ) endmodule -module lut40063 ( input A, B, C, D, output Z ); - - ROM16X1A #(16'h7777) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); -endmodule - -module SLICE_94 ( input B1, A1, D0, C0, B0, A0, output F0, F1 ); - wire GNDI; - - lut40048 i771_2_lut_rep_23_2_lut( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40064 i2_3_lut_4_lut_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); - - specify - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (D0 => F0) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - endspecify - -endmodule - module lut40064 ( input A, B, C, D, output Z ); - ROM16X1A #(16'hFFFD) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); + ROM16X1A #(16'h2222) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule -module SLICE_95 ( input D1, C1, B1, A1, D0, C0, B0, A0, output F0, F1 ); +module SLICE_64 ( input C1, B1, A1, D0, C0, B0, A0, output F0, F1 ); + wire GNDI; - lut40065 i2_4_lut_adj_20( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40040 i6_4_lut_adj_9( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); + lut40052 UFMSDI_ens2_i_o2_0( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); + gnd DRIVEGND( .PWR0(GNDI)); + lut40065 UFMCLK_r_i_m2( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); specify - (D1 => F1) = (0:0:0,0:0:0); (C1 => F1) = (0:0:0,0:0:0); (B1 => F1) = (0:0:0,0:0:0); (A1 => F1) = (0:0:0,0:0:0); @@ -2523,15 +2288,21 @@ endmodule module lut40065 ( input A, B, C, D, output Z ); - ROM16X1A #(16'h1404) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); + ROM16X1A #(16'hAAC0) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule -module SLICE_96 ( input B1, A1, D0, C0, B0, A0, output F0, F1 ); - wire GNDI; +module SLICE_65 ( input B1, A1, D0, C0, B0, A0, M1, M0, CLK, output F0, Q0, F1, + Q1 ); + wire GNDI, VCCI, M1_dly, CLK_dly, M0_dly; - lut40034 i1_2_lut_rep_27( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); + lut40006 UFMCLK_0io_RNO_0( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); gnd DRIVEGND( .PWR0(GNDI)); - lut40027 i2_3_lut_4_lut_adj_24( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); + lut40066 PHI2r3_RNITCN41( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); + vmuxregsre PHI2r3( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), + .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); + vcc DRIVEVCC( .PWR1(VCCI)); + vmuxregsre PHI2r2( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), + .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); specify (B1 => F1) = (0:0:0,0:0:0); @@ -2540,34 +2311,10 @@ module SLICE_96 ( input B1, A1, D0, C0, B0, A0, output F0, F1 ); (C0 => F0) = (0:0:0,0:0:0); (B0 => F0) = (0:0:0,0:0:0); (A0 => F0) = (0:0:0,0:0:0); - endspecify - -endmodule - -module SLICE_97 ( input C1, B1, A1, B0, A0, M1, M0, CE, CLK, output F0, Q0, F1, - Q1 ); - wire GNDI, VCCI, M1_dly, CLK_dly, M0_dly, CE_dly; - - lut40066 i13_3_lut( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40034 i1956_2_lut( .A(A0), .B(B0), .C(GNDI), .D(GNDI), .Z(F0)); - vmuxregsre IS_FSM__i7( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - vmuxregsre IS_FSM__i6( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - - specify - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); (CLK => Q0) = (0:0:0,0:0:0); (CLK => Q1) = (0:0:0,0:0:0); $setuphold (posedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); $setuphold (posedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); $width (posedge CLK, 0:0:0); $width (negedge CLK, 0:0:0); endspecify @@ -2576,236 +2323,87 @@ endmodule module lut40066 ( input A, B, C, D, output Z ); - ROM16X1A #(16'hC5C5) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); + ROM16X1A #(16'h3B33) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule -module SLICE_98 ( input B1, A1, C0, B0, A0, M1, M0, CE, CLK, output F0, Q0, F1, - Q1 ); - wire GNDI, VCCI, M1_dly, CLK_dly, M0_dly, CE_dly; +module SLICE_66 ( input D1, C1, B1, A1, D0, C0, B0, A0, output F0, F1 ); - lut40037 i1416_2_lut( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40021 MAin_9__I_0_427_i9_3_lut( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); - vmuxregsre IS_FSM__i1( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - vmuxregsre IS_FSM__i0( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - - specify - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $setuphold (posedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (posedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module SLICE_99 ( input D1, C1, B1, A1, C0, B0, A0, M0, CE, CLK, output F0, Q0, - F1 ); - wire GNDI, VCCI, CLK_NOTIN, M0_dly, CLK_dly, CE_dly; - - lut40052 i8_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40021 MAin_9__I_0_427_i8_3_lut( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre CmdUFMSDI_414( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q0)); - vcc DRIVEVCC( .PWR1(VCCI)); - inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); + lut40067 nRCS_0io_RNO( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); + lut40068 nRCAS_r_i_a3_1_1_tz( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); specify (D1 => F1) = (0:0:0,0:0:0); (C1 => F1) = (0:0:0,0:0:0); (B1 => F1) = (0:0:0,0:0:0); (A1 => F1) = (0:0:0,0:0:0); + (D0 => F0) = (0:0:0,0:0:0); (C0 => F0) = (0:0:0,0:0:0); (B0 => F0) = (0:0:0,0:0:0); (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - $setuphold (negedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $setuphold (negedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - endspecify - -endmodule - -module SLICE_100 ( input D1, C1, B1, A1, C0, B0, A0, M1, M0, CE, CLK, output - F0, Q0, F1, Q1 ); - wire GNDI, VCCI, CLK_NOTIN, M1_dly, CLK_dly, M0_dly, CE_dly; - - lut40052 i1979_4_lut( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); - lut40021 MAin_9__I_0_427_i7_3_lut( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); - gnd DRIVEGND( .PWR0(GNDI)); - vmuxregsre CmdUFMCS_412( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); - vmuxregsre CmdUFMCLK_413( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_NOTIN), .LSR(GNDI), .Q(Q0)); - - specify - (D1 => F1) = (0:0:0,0:0:0); - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - $setuphold (negedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (negedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $setuphold (negedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); - endspecify - -endmodule - -module SLICE_101 ( input C1, B1, A1, C0, B0, A0, M1, M0, CLK, output F0, Q0, - F1, Q1 ); - wire GNDI, VCCI, M1_dly, CLK_dly, M0_dly; - - lut40021 MAin_9__I_0_427_i1_3_lut( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40021 MAin_9__I_0_427_i6_3_lut( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); - vmuxregsre Bank_i7( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - vmuxregsre Bank_i6( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - - specify - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $setuphold (posedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (posedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module SLICE_102 ( input C1, B1, A1, C0, B0, A0, M1, M0, CLK, output F0, Q0, - F1, Q1 ); - wire GNDI, VCCI, M1_dly, CLK_dly, M0_dly; - - lut40021 MAin_9__I_0_427_i2_3_lut( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40021 MAin_9__I_0_427_i5_3_lut( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); - vmuxregsre Bank_i5( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - vmuxregsre Bank_i4( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - - specify - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $setuphold (posedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (posedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module SLICE_103 ( input C1, B1, A1, C0, B0, A0, M1, M0, CLK, output F0, Q0, - F1, Q1 ); - wire GNDI, VCCI, M1_dly, CLK_dly, M0_dly; - - lut40021 MAin_9__I_0_427_i3_3_lut( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40021 MAin_9__I_0_427_i4_3_lut( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); - vmuxregsre Bank_i3( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - vmuxregsre Bank_i2( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); - - specify - (C1 => F1) = (0:0:0,0:0:0); - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $setuphold (posedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (posedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - endspecify - -endmodule - -module SLICE_104 ( input B1, A1, C0, B0, A0, M1, M0, LSR, CLK, output F0, Q0, - F1, Q1 ); - wire GNDI, VCCI, CLK_NOTIN, LSR_NOTIN, M1_dly, CLK_dly, M0_dly, LSR_dly; - - lut40034 i1417_2_lut( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); - gnd DRIVEGND( .PWR0(GNDI)); - lut40067 i1_2_lut_rep_14_3_lut( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); - vmuxregsre0004 RowA_i7( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(LSR_NOTIN), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); - inverter LSR_INVERTERIN( .I(LSR_dly), .Z(LSR_NOTIN)); - vmuxregsre0004 RowA_i6( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), - .CK(CLK_NOTIN), .LSR(LSR_NOTIN), .Q(Q0)); - - specify - (B1 => F1) = (0:0:0,0:0:0); - (A1 => F1) = (0:0:0,0:0:0); - (C0 => F0) = (0:0:0,0:0:0); - (B0 => F0) = (0:0:0,0:0:0); - (A0 => F0) = (0:0:0,0:0:0); - (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $width (posedge LSR, 0:0:0); - $width (negedge LSR, 0:0:0); - $width (posedge CLK, 0:0:0); - $width (negedge CLK, 0:0:0); - $setuphold (negedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); - $setuphold (negedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $setuphold (negedge CLK, LSR, 0:0:0, 0:0:0,,,, CLK_dly, LSR_dly); endspecify endmodule module lut40067 ( input A, B, C, D, output Z ); - ROM16X1A #(16'hFDFD) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); + ROM16X1A #(16'h3AFA) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule -module SLICE_105 ( input B1, A1, D0, C0, B0, A0, output F0, F1 ); +module lut40068 ( input A, B, C, D, output Z ); + + ROM16X1A #(16'h200F) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module SLICE_67 ( input D1, C1, B1, A1, C0, B0, A0, output F0, F1 ); wire GNDI; - lut40039 i1_2_lut_adj_19( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); + lut40004 ADWR_6( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); + lut40016 ADWR_2( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); gnd DRIVEGND( .PWR0(GNDI)); - lut40052 i5_4_lut( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); + + specify + (D1 => F1) = (0:0:0,0:0:0); + (C1 => F1) = (0:0:0,0:0:0); + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (C0 => F0) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); + endspecify + +endmodule + +module SLICE_68 ( input B1, A1, D0, C0, B0, A0, M0, CLK, output F0, Q0, F1 ); + wire GNDI, VCCI, M0_dly, CLK_dly; + + lut40064 CmdEnable16_3( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); + gnd DRIVEGND( .PWR0(GNDI)); + lut40008 CmdEnable16_5( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); + vmuxregsre \Bank_0io[2] ( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), + .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); + vcc DRIVEVCC( .PWR1(VCCI)); + + specify + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (D0 => F0) = (0:0:0,0:0:0); + (C0 => F0) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); + (CLK => Q0) = (0:0:0,0:0:0); + $setuphold (posedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + endspecify + +endmodule + +module SLICE_69 ( input B1, A1, D0, C0, B0, A0, output F0, F1 ); + wire GNDI; + + lut40056 un1_Bank_1_3( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); + gnd DRIVEGND( .PWR0(GNDI)); + lut40004 un1_Bank_1( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); specify (B1 => F1) = (0:0:0,0:0:0); @@ -2818,255 +2416,435 @@ module SLICE_105 ( input B1, A1, D0, C0, B0, A0, output F0, F1 ); endmodule -module SLICE_106 ( input B1, A1, B0, A0, M1, M0, CE, CLK, output F0, Q0, F1, - Q1 ); - wire GNDI, VCCI, M1_dly, CLK_dly, M0_dly, CE_dly; +module SLICE_70 ( input D1, C1, B1, A1, C0, B0, A0, output F0, F1 ); + wire GNDI; - lut40039 i1_2_lut_rep_33( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); + lut40069 CmdLEDEN_4_u_i_a2( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); + lut40070 Cmdn8MEGEN_4_u_i_o2_0( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); gnd DRIVEGND( .PWR0(GNDI)); - lut40034 i1930_2_lut( .A(A0), .B(B0), .C(GNDI), .D(GNDI), .Z(F0)); - vmuxregsre IS_FSM__i5( .D0(M1_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q1)); - vcc DRIVEVCC( .PWR1(VCCI)); - vmuxregsre IS_FSM__i4( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(CE_dly), - .CK(CLK_dly), .LSR(GNDI), .Q(Q0)); specify + (D1 => F1) = (0:0:0,0:0:0); + (C1 => F1) = (0:0:0,0:0:0); (B1 => F1) = (0:0:0,0:0:0); (A1 => F1) = (0:0:0,0:0:0); + (C0 => F0) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); + endspecify + +endmodule + +module lut40069 ( input A, B, C, D, output Z ); + + ROM16X1A #(16'h4454) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module lut40070 ( input A, B, C, D, output Z ); + + ROM16X1A #(16'hFDFD) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module SLICE_71 ( input C1, B1, A1, D0, C0, B0, A0, output F0, F1 ); + wire GNDI; + + lut40071 nRWE_0io_RNO_0( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); + gnd DRIVEGND( .PWR0(GNDI)); + lut40072 nRWE_0io_RNO( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); + + specify + (C1 => F1) = (0:0:0,0:0:0); + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (D0 => F0) = (0:0:0,0:0:0); + (C0 => F0) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); + endspecify + +endmodule + +module lut40071 ( input A, B, C, D, output Z ); + + ROM16X1A #(16'h2020) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module lut40072 ( input A, B, C, D, output Z ); + + ROM16X1A #(16'hAABF) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module SLICE_72 ( input D1, C1, B1, A1, D0, C0, B0, A0, output F0, F1 ); + + lut40073 UFMSDI_ens2_i_o2_0_3( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); + lut40004 InitReady3_0_a2_5( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); + + specify + (D1 => F1) = (0:0:0,0:0:0); + (C1 => F1) = (0:0:0,0:0:0); + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (D0 => F0) = (0:0:0,0:0:0); + (C0 => F0) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); + endspecify + +endmodule + +module lut40073 ( input A, B, C, D, output Z ); + + ROM16X1A #(16'hFFFE) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module SLICE_73 ( input D1, C1, B1, A1, D0, C0, B0, A0, M0, CLK, output F0, Q0, + F1 ); + wire VCCI, GNDI, M0_dly, CLK_dly; + + lut40058 CmdEnable16_4( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); + lut40038 CmdEnable17_5( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); + vmuxregsre CASr3( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), .CK(CLK_dly), + .LSR(GNDI), .Q(Q0)); + vcc DRIVEVCC( .PWR1(VCCI)); + gnd DRIVEGND( .PWR0(GNDI)); + + specify + (D1 => F1) = (0:0:0,0:0:0); + (C1 => F1) = (0:0:0,0:0:0); + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (D0 => F0) = (0:0:0,0:0:0); + (C0 => F0) = (0:0:0,0:0:0); (B0 => F0) = (0:0:0,0:0:0); (A0 => F0) = (0:0:0,0:0:0); (CLK => Q0) = (0:0:0,0:0:0); - (CLK => Q1) = (0:0:0,0:0:0); - $setuphold (posedge CLK, M1, 0:0:0, 0:0:0,,,, CLK_dly, M1_dly); $setuphold (posedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); - $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); $width (posedge CLK, 0:0:0); $width (negedge CLK, 0:0:0); endspecify endmodule -module RD_7_ ( output PADDI, input PADDT, PADDO, inout RD7 ); +module SLICE_74 ( input D1, C1, B1, A1, D0, C0, B0, A0, M0, CLK, output F0, Q0, + F1 ); + wire VCCI, GNDI, CLK_NOTIN, M0_dly, CLK_dly; - xo2iobuf Dout_pad_7__713( .I(PADDO), .T(PADDT), .Z(PADDI), .PAD(RD7), - .PADI(RD7)); + lut40074 XOR8MEG_3_u_1( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); + lut40075 CmdEnable17_4( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); + vmuxregsre CBR( .D0(M0_dly), .D1(VCCI), .SD(GNDI), .SP(VCCI), .CK(CLK_NOTIN), + .LSR(GNDI), .Q(Q0)); + vcc DRIVEVCC( .PWR1(VCCI)); + gnd DRIVEGND( .PWR0(GNDI)); + inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); specify - (PADDT => RD7) = (0:0:0,0:0:0,0:0:0,0:0:0,0:0:0,0:0:0); - (PADDO => RD7) = (0:0:0,0:0:0); - (RD7 => PADDI) = (0:0:0,0:0:0); - $width (posedge RD7, 0:0:0); - $width (negedge RD7, 0:0:0); + (D1 => F1) = (0:0:0,0:0:0); + (C1 => F1) = (0:0:0,0:0:0); + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (D0 => F0) = (0:0:0,0:0:0); + (C0 => F0) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); + (CLK => Q0) = (0:0:0,0:0:0); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + $setuphold (negedge CLK, M0, 0:0:0, 0:0:0,,,, CLK_dly, M0_dly); endspecify endmodule -module xo2iobuf ( input I, T, output Z, PAD, input PADI ); +module lut40074 ( input A, B, C, D, output Z ); - IBPD INST1( .I(PADI), .O(Z)); - OBZPD INST2( .I(I), .T(T), .O(PAD)); + ROM16X1A #(16'h040C) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); endmodule -module RD_6_ ( output PADDI, input PADDT, PADDO, inout RD6 ); +module lut40075 ( input A, B, C, D, output Z ); - xo2iobuf Dout_pad_6__714( .I(PADDO), .T(PADDT), .Z(PADDI), .PAD(RD6), - .PADI(RD6)); + ROM16X1A #(16'h0080) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module SLICE_75 ( input B1, A1, C0, B0, A0, output F0, F1 ); + wire GNDI; + + lut40076 RDQML( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); + gnd DRIVEGND( .PWR0(GNDI)); + lut40077 \un9_RA[9] ( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); specify - (PADDT => RD6) = (0:0:0,0:0:0,0:0:0,0:0:0,0:0:0,0:0:0); - (PADDO => RD6) = (0:0:0,0:0:0); - (RD6 => PADDI) = (0:0:0,0:0:0); - $width (posedge RD6, 0:0:0); - $width (negedge RD6, 0:0:0); + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (C0 => F0) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); endspecify endmodule -module RD_5_ ( output PADDI, input PADDT, PADDO, inout RD5 ); +module lut40076 ( input A, B, C, D, output Z ); - xo2iobuf Dout_pad_5__715( .I(PADDO), .T(PADDT), .Z(PADDI), .PAD(RD5), - .PADI(RD5)); + ROM16X1A #(16'h7777) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module lut40077 ( input A, B, C, D, output Z ); + + ROM16X1A #(16'hACAC) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module SLICE_76 ( input D1, C1, B1, A1, D0, C0, B0, A0, output F0, F1 ); + + lut40078 nRWE_0io_RNO_1( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); + lut40079 RCKEEN_8_u_1_0( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); specify - (PADDT => RD5) = (0:0:0,0:0:0,0:0:0,0:0:0,0:0:0,0:0:0); - (PADDO => RD5) = (0:0:0,0:0:0); - (RD5 => PADDI) = (0:0:0,0:0:0); - $width (posedge RD5, 0:0:0); - $width (negedge RD5, 0:0:0); + (D1 => F1) = (0:0:0,0:0:0); + (C1 => F1) = (0:0:0,0:0:0); + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (D0 => F0) = (0:0:0,0:0:0); + (C0 => F0) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); endspecify endmodule -module RD_4_ ( output PADDI, input PADDT, PADDO, inout RD4 ); +module lut40078 ( input A, B, C, D, output Z ); - xo2iobuf Dout_pad_4__716( .I(PADDO), .T(PADDT), .Z(PADDI), .PAD(RD4), - .PADI(RD4)); + ROM16X1A #(16'h4000) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module lut40079 ( input A, B, C, D, output Z ); + + ROM16X1A #(16'h70CF) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module SLICE_77 ( input D1, C1, B1, A1, B0, A0, output F0, F1 ); + wire GNDI; + + lut40080 nRRAS_5_u_i_0( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); + lut40081 IS_0_sqmuxa_0_o2_0_RNIS63D( .A(A0), .B(B0), .C(GNDI), .D(GNDI), + .Z(F0)); + gnd DRIVEGND( .PWR0(GNDI)); specify - (PADDT => RD4) = (0:0:0,0:0:0,0:0:0,0:0:0,0:0:0,0:0:0); - (PADDO => RD4) = (0:0:0,0:0:0); - (RD4 => PADDI) = (0:0:0,0:0:0); - $width (posedge RD4, 0:0:0); - $width (negedge RD4, 0:0:0); + (D1 => F1) = (0:0:0,0:0:0); + (C1 => F1) = (0:0:0,0:0:0); + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); endspecify endmodule -module RD_3_ ( output PADDI, input PADDT, PADDO, inout RD3 ); +module lut40080 ( input A, B, C, D, output Z ); - xo2iobuf Dout_pad_3__717( .I(PADDO), .T(PADDT), .Z(PADDI), .PAD(RD3), - .PADI(RD3)); + ROM16X1A #(16'h5400) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module lut40081 ( input A, B, C, D, output Z ); + + ROM16X1A #(16'h1111) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module SLICE_78 ( input D1, C1, B1, A1, C0, B0, A0, output F0, F1 ); + wire GNDI; + + lut40035 un1_FS_14_i_a2_0_1( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); + lut40082 UFMSDI_ens2_i_o2( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); + gnd DRIVEGND( .PWR0(GNDI)); specify - (PADDT => RD3) = (0:0:0,0:0:0,0:0:0,0:0:0,0:0:0,0:0:0); - (PADDO => RD3) = (0:0:0,0:0:0); - (RD3 => PADDI) = (0:0:0,0:0:0); - $width (posedge RD3, 0:0:0); - $width (negedge RD3, 0:0:0); + (D1 => F1) = (0:0:0,0:0:0); + (C1 => F1) = (0:0:0,0:0:0); + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (C0 => F0) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); endspecify endmodule -module RD_2_ ( output PADDI, input PADDT, PADDO, inout RD2 ); +module lut40082 ( input A, B, C, D, output Z ); - xo2iobuf Dout_pad_2__718( .I(PADDO), .T(PADDT), .Z(PADDI), .PAD(RD2), - .PADI(RD2)); + ROM16X1A #(16'h2C2C) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module SLICE_79 ( input B1, A1, C0, B0, A0, output F0, F1 ); + wire GNDI; + + lut40024 RDQMH( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); + gnd DRIVEGND( .PWR0(GNDI)); + lut40077 \un9_RA[8] ( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); specify - (PADDT => RD2) = (0:0:0,0:0:0,0:0:0,0:0:0,0:0:0,0:0:0); - (PADDO => RD2) = (0:0:0,0:0:0); - (RD2 => PADDI) = (0:0:0,0:0:0); - $width (posedge RD2, 0:0:0); - $width (negedge RD2, 0:0:0); + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (C0 => F0) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); endspecify endmodule -module RD_1_ ( output PADDI, input PADDT, PADDO, inout RD1 ); +module SLICE_80 ( input C1, B1, A1, C0, B0, A0, output F0, F1 ); + wire GNDI; - xo2iobuf Dout_pad_1__719( .I(PADDO), .T(PADDT), .Z(PADDI), .PAD(RD1), - .PADI(RD1)); + lut40077 \un9_RA[7] ( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); + gnd DRIVEGND( .PWR0(GNDI)); + lut40077 \un9_RA[0] ( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); specify - (PADDT => RD1) = (0:0:0,0:0:0,0:0:0,0:0:0,0:0:0,0:0:0); - (PADDO => RD1) = (0:0:0,0:0:0); - (RD1 => PADDI) = (0:0:0,0:0:0); - $width (posedge RD1, 0:0:0); - $width (negedge RD1, 0:0:0); + (C1 => F1) = (0:0:0,0:0:0); + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (C0 => F0) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); endspecify endmodule -module RD_0_ ( output PADDI, input PADDT, PADDO, inout RD0 ); +module SLICE_81 ( input C1, B1, A1, C0, B0, A0, output F0, F1 ); + wire GNDI; - xo2iobuf Dout_pad_0__720( .I(PADDO), .T(PADDT), .Z(PADDI), .PAD(RD0), - .PADI(RD0)); + lut40077 \un9_RA[6] ( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); + gnd DRIVEGND( .PWR0(GNDI)); + lut40077 \un9_RA[1] ( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); specify + (C1 => F1) = (0:0:0,0:0:0); + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (C0 => F0) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); + endspecify + +endmodule + +module SLICE_82 ( input C1, B1, A1, C0, B0, A0, output F0, F1 ); + wire GNDI; + + lut40077 \un9_RA[5] ( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); + gnd DRIVEGND( .PWR0(GNDI)); + lut40077 \un9_RA[2] ( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); + + specify + (C1 => F1) = (0:0:0,0:0:0); + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (C0 => F0) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); + endspecify + +endmodule + +module SLICE_83 ( input C1, B1, A1, C0, B0, A0, output F0, F1 ); + wire GNDI; + + lut40077 \un9_RA[4] ( .A(A1), .B(B1), .C(C1), .D(GNDI), .Z(F1)); + gnd DRIVEGND( .PWR0(GNDI)); + lut40077 \un9_RA[3] ( .A(A0), .B(B0), .C(C0), .D(GNDI), .Z(F0)); + + specify + (C1 => F1) = (0:0:0,0:0:0); + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (C0 => F0) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); + endspecify + +endmodule + +module SLICE_84 ( input B1, A1, D0, C0, B0, A0, output F0, F1 ); + wire GNDI; + + lut40028 \RBAd[0] ( .A(A1), .B(B1), .C(GNDI), .D(GNDI), .Z(F1)); + gnd DRIVEGND( .PWR0(GNDI)); + lut40083 RA11d( .A(A0), .B(B0), .C(C0), .D(D0), .Z(F0)); + + specify + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (D0 => F0) = (0:0:0,0:0:0); + (C0 => F0) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); + endspecify + +endmodule + +module lut40083 ( input A, B, C, D, output Z ); + + ROM16X1A #(16'hC048) INST10( .AD0(A), .AD1(B), .AD2(C), .AD3(D), .DO0(Z)); +endmodule + +module SLICE_85 ( input D1, C1, B1, A1, B0, A0, output F0, F1 ); + wire GNDI; + + lut40058 un1_FS_13_i_a2_6( .A(A1), .B(B1), .C(C1), .D(D1), .Z(F1)); + lut40028 InitReady3_0_a2_3( .A(A0), .B(B0), .C(GNDI), .D(GNDI), .Z(F0)); + gnd DRIVEGND( .PWR0(GNDI)); + + specify + (D1 => F1) = (0:0:0,0:0:0); + (C1 => F1) = (0:0:0,0:0:0); + (B1 => F1) = (0:0:0,0:0:0); + (A1 => F1) = (0:0:0,0:0:0); + (B0 => F0) = (0:0:0,0:0:0); + (A0 => F0) = (0:0:0,0:0:0); + endspecify + +endmodule + +module RD_0_ ( input IOLDO, PADDT, output RD0 ); + + xo2iobuf \RD_pad[0] ( .I(IOLDO), .T(PADDT), .PAD(RD0)); + + specify + (IOLDO => RD0) = (0:0:0,0:0:0); (PADDT => RD0) = (0:0:0,0:0:0,0:0:0,0:0:0,0:0:0,0:0:0); - (PADDO => RD0) = (0:0:0,0:0:0); - (RD0 => PADDI) = (0:0:0,0:0:0); - $width (posedge RD0, 0:0:0); - $width (negedge RD0, 0:0:0); endspecify endmodule -module Dout_7_ ( input PADDO, output Dout7 ); - wire GNDI; +module xo2iobuf ( input I, T, output PAD ); - xo2iobuf0068 Dout_pad_7( .I(PADDO), .T(GNDI), .PAD(Dout7)); + OBW INST1( .I(I), .T(T), .O(PAD)); +endmodule + +module RD_0__MGIOL ( output IOLDO, input OPOS, CLK ); + wire VCCI, CLK_NOTIN, GNDI, OPOS_dly, CLK_dly; + + mfflsre \WRD_0io[0] ( .D0(OPOS_dly), .SP(VCCI), .CK(CLK_NOTIN), .LSR(GNDI), + .Q(IOLDO)); + vcc DRIVEVCC( .PWR1(VCCI)); + inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); gnd DRIVEGND( .PWR0(GNDI)); specify - (PADDO => Dout7) = (0:0:0,0:0:0); + (CLK => IOLDO) = (0:0:0,0:0:0); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + $setuphold (negedge CLK, OPOS, 0:0:0, 0:0:0,,,, CLK_dly, OPOS_dly); endspecify endmodule -module xo2iobuf0068 ( input I, T, output PAD ); - - OBZPD INST5( .I(I), .T(T), .O(PAD)); -endmodule - -module Dout_6_ ( input PADDO, output Dout6 ); - wire GNDI; - - xo2iobuf0068 Dout_pad_6( .I(PADDO), .T(GNDI), .PAD(Dout6)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => Dout6) = (0:0:0,0:0:0); - endspecify - -endmodule - -module Dout_5_ ( input PADDO, output Dout5 ); - wire GNDI; - - xo2iobuf0068 Dout_pad_5( .I(PADDO), .T(GNDI), .PAD(Dout5)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => Dout5) = (0:0:0,0:0:0); - endspecify - -endmodule - -module Dout_4_ ( input PADDO, output Dout4 ); - wire GNDI; - - xo2iobuf0068 Dout_pad_4( .I(PADDO), .T(GNDI), .PAD(Dout4)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => Dout4) = (0:0:0,0:0:0); - endspecify - -endmodule - -module Dout_3_ ( input PADDO, output Dout3 ); - wire GNDI; - - xo2iobuf0068 Dout_pad_3( .I(PADDO), .T(GNDI), .PAD(Dout3)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => Dout3) = (0:0:0,0:0:0); - endspecify - -endmodule - -module Dout_2_ ( input PADDO, output Dout2 ); - wire GNDI; - - xo2iobuf0068 Dout_pad_2( .I(PADDO), .T(GNDI), .PAD(Dout2)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => Dout2) = (0:0:0,0:0:0); - endspecify - -endmodule - -module Dout_1_ ( input PADDO, output Dout1 ); - wire GNDI; - - xo2iobuf0068 Dout_pad_1( .I(PADDO), .T(GNDI), .PAD(Dout1)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => Dout1) = (0:0:0,0:0:0); - endspecify +module mfflsre ( input D0, SP, CK, LSR, output Q ); + FD1P3DX INST01( .D(D0), .SP(SP), .CK(CK), .CD(LSR), .Q(Q)); + defparam INST01.GSR = "DISABLED"; endmodule module Dout_0_ ( input PADDO, output Dout0 ); - wire GNDI; - xo2iobuf0068 Dout_pad_0( .I(PADDO), .T(GNDI), .PAD(Dout0)); - gnd DRIVEGND( .PWR0(GNDI)); + xo2iobuf0084 \Dout_pad[0] ( .I(PADDO), .PAD(Dout0)); specify (PADDO => Dout0) = (0:0:0,0:0:0); @@ -3074,309 +2852,14 @@ module Dout_0_ ( input PADDO, output Dout0 ); endmodule -module LED ( input PADDO, output LED ); - wire GNDI; - - xo2iobuf0068 LED_pad( .I(PADDO), .T(GNDI), .PAD(LED)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => LED) = (0:0:0,0:0:0); - endspecify - -endmodule - -module RBA_1_ ( input PADDO, output RBA1 ); - wire GNDI; - - xo2iobuf0068 RBA_pad_1( .I(PADDO), .T(GNDI), .PAD(RBA1)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => RBA1) = (0:0:0,0:0:0); - endspecify - -endmodule - -module RBA_0_ ( input PADDO, output RBA0 ); - wire GNDI; - - xo2iobuf0068 RBA_pad_0( .I(PADDO), .T(GNDI), .PAD(RBA0)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => RBA0) = (0:0:0,0:0:0); - endspecify - -endmodule - -module RA_11_ ( input PADDO, output RA11 ); - wire GNDI; - - xo2iobuf0068 RA_pad_11( .I(PADDO), .T(GNDI), .PAD(RA11)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => RA11) = (0:0:0,0:0:0); - endspecify - -endmodule - -module RA_10_ ( input PADDO, output RA10 ); - wire GNDI; - - xo2iobuf0068 RA_pad_10( .I(PADDO), .T(GNDI), .PAD(RA10)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => RA10) = (0:0:0,0:0:0); - endspecify - -endmodule - -module RA_9_ ( input PADDO, output RA9 ); - wire GNDI; - - xo2iobuf0068 RA_pad_9( .I(PADDO), .T(GNDI), .PAD(RA9)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => RA9) = (0:0:0,0:0:0); - endspecify - -endmodule - -module RA_8_ ( input PADDO, output RA8 ); - wire GNDI; - - xo2iobuf0068 RA_pad_8( .I(PADDO), .T(GNDI), .PAD(RA8)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => RA8) = (0:0:0,0:0:0); - endspecify - -endmodule - -module RA_7_ ( input PADDO, output RA7 ); - wire GNDI; - - xo2iobuf0068 RA_pad_7( .I(PADDO), .T(GNDI), .PAD(RA7)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => RA7) = (0:0:0,0:0:0); - endspecify - -endmodule - -module RA_6_ ( input PADDO, output RA6 ); - wire GNDI; - - xo2iobuf0068 RA_pad_6( .I(PADDO), .T(GNDI), .PAD(RA6)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => RA6) = (0:0:0,0:0:0); - endspecify - -endmodule - -module RA_5_ ( input PADDO, output RA5 ); - wire GNDI; - - xo2iobuf0068 RA_pad_5( .I(PADDO), .T(GNDI), .PAD(RA5)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => RA5) = (0:0:0,0:0:0); - endspecify - -endmodule - -module RA_4_ ( input PADDO, output RA4 ); - wire GNDI; - - xo2iobuf0068 RA_pad_4( .I(PADDO), .T(GNDI), .PAD(RA4)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => RA4) = (0:0:0,0:0:0); - endspecify - -endmodule - -module RA_3_ ( input PADDO, output RA3 ); - wire GNDI; - - xo2iobuf0068 RA_pad_3( .I(PADDO), .T(GNDI), .PAD(RA3)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => RA3) = (0:0:0,0:0:0); - endspecify - -endmodule - -module RA_2_ ( input PADDO, output RA2 ); - wire GNDI; - - xo2iobuf0068 RA_pad_2( .I(PADDO), .T(GNDI), .PAD(RA2)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => RA2) = (0:0:0,0:0:0); - endspecify - -endmodule - -module RA_1_ ( input PADDO, output RA1 ); - wire GNDI; - - xo2iobuf0068 RA_pad_1( .I(PADDO), .T(GNDI), .PAD(RA1)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => RA1) = (0:0:0,0:0:0); - endspecify - -endmodule - -module RA_0_ ( input PADDO, output RA0 ); - wire GNDI; - - xo2iobuf0068 RA_pad_0( .I(PADDO), .T(GNDI), .PAD(RA0)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => RA0) = (0:0:0,0:0:0); - endspecify - -endmodule - -module nRCS ( input PADDO, output nRCS ); - wire GNDI; - - xo2iobuf0068 nRCS_pad( .I(PADDO), .T(GNDI), .PAD(nRCS)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => nRCS) = (0:0:0,0:0:0); - endspecify - -endmodule - -module RCKE ( input PADDO, output RCKE ); - wire GNDI; - - xo2iobuf0068 RCKE_pad( .I(PADDO), .T(GNDI), .PAD(RCKE)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => RCKE) = (0:0:0,0:0:0); - endspecify - -endmodule - -module nRWE ( input PADDO, output nRWE ); - wire GNDI; - - xo2iobuf0068 nRWE_pad( .I(PADDO), .T(GNDI), .PAD(nRWE)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => nRWE) = (0:0:0,0:0:0); - endspecify - -endmodule - -module nRRAS ( input PADDO, output nRRAS ); - wire GNDI; - - xo2iobuf0068 nRRAS_pad( .I(PADDO), .T(GNDI), .PAD(nRRAS)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => nRRAS) = (0:0:0,0:0:0); - endspecify - -endmodule - -module nRCAS ( input PADDO, output nRCAS ); - wire GNDI; - - xo2iobuf0068 nRCAS_pad( .I(PADDO), .T(GNDI), .PAD(nRCAS)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => nRCAS) = (0:0:0,0:0:0); - endspecify - -endmodule - -module RDQMH ( input PADDO, output RDQMH ); - wire GNDI; - - xo2iobuf0068 RDQMH_pad( .I(PADDO), .T(GNDI), .PAD(RDQMH)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => RDQMH) = (0:0:0,0:0:0); - endspecify - -endmodule - -module RDQML ( input PADDO, output RDQML ); - wire GNDI; - - xo2iobuf0068 RDQML_pad( .I(PADDO), .T(GNDI), .PAD(RDQML)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => RDQML) = (0:0:0,0:0:0); - endspecify - -endmodule - -module nUFMCS ( input PADDO, output nUFMCS ); - wire GNDI; - - xo2iobuf0068 nUFMCS_pad( .I(PADDO), .T(GNDI), .PAD(nUFMCS)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => nUFMCS) = (0:0:0,0:0:0); - endspecify - -endmodule - -module UFMCLK ( input PADDO, output UFMCLK ); - wire GNDI; - - xo2iobuf0068 UFMCLK_pad( .I(PADDO), .T(GNDI), .PAD(UFMCLK)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => UFMCLK) = (0:0:0,0:0:0); - endspecify - -endmodule - -module UFMSDI ( input PADDO, output UFMSDI ); - wire GNDI; - - xo2iobuf0068 UFMSDI_pad( .I(PADDO), .T(GNDI), .PAD(UFMSDI)); - gnd DRIVEGND( .PWR0(GNDI)); - - specify - (PADDO => UFMSDI) = (0:0:0,0:0:0); - endspecify +module xo2iobuf0084 ( input I, output PAD ); + OB INST5( .I(I), .O(PAD)); endmodule module PHI2 ( output PADDI, input PHI2 ); - xo2iobuf0069 PHI2_pad( .Z(PADDI), .PAD(PHI2)); + xo2iobuf0085 PHI2_pad( .Z(PADDI), .PAD(PHI2)); specify (PHI2 => PADDI) = (0:0:0,0:0:0); @@ -3386,134 +2869,1088 @@ module PHI2 ( output PADDI, input PHI2 ); endmodule -module xo2iobuf0069 ( output Z, input PAD ); +module xo2iobuf0085 ( output Z, input PAD ); IBPD INST1( .I(PAD), .O(Z)); endmodule -module MAin_9_ ( output PADDI, input MAin9 ); +module PHI2_MGIOL ( input DI, CLK, output IN ); + wire VCCI, GNDI, DI_dly, CLK_dly; - xo2iobuf0069 MAin_pad_9( .Z(PADDI), .PAD(MAin9)); + smuxlregsre PHI2r_0io( .D0(DI_dly), .SP(VCCI), .CK(CLK_dly), .LSR(GNDI), + .Q(IN)); + vcc DRIVEVCC( .PWR1(VCCI)); + gnd DRIVEGND( .PWR0(GNDI)); specify - (MAin9 => PADDI) = (0:0:0,0:0:0); - $width (posedge MAin9, 0:0:0); - $width (negedge MAin9, 0:0:0); + (CLK => IN) = (0:0:0,0:0:0); + $setuphold (posedge CLK, DI, 0:0:0, 0:0:0,,,, CLK_dly, DI_dly); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); endspecify endmodule -module MAin_8_ ( output PADDI, input MAin8 ); +module smuxlregsre ( input D0, SP, CK, LSR, output Q ); - xo2iobuf0069 MAin_pad_8( .Z(PADDI), .PAD(MAin8)); + IFS1P3DX INST01( .D(D0), .SP(SP), .SCLK(CK), .CD(LSR), .Q(Q)); + defparam INST01.GSR = "DISABLED"; +endmodule + +module UFMSDO ( output PADDI, input UFMSDO ); + + xo2iobuf0086 UFMSDO_pad( .Z(PADDI), .PAD(UFMSDO)); specify - (MAin8 => PADDI) = (0:0:0,0:0:0); - $width (posedge MAin8, 0:0:0); - $width (negedge MAin8, 0:0:0); + (UFMSDO => PADDI) = (0:0:0,0:0:0); + $width (posedge UFMSDO, 0:0:0); + $width (negedge UFMSDO, 0:0:0); endspecify endmodule -module MAin_7_ ( output PADDI, input MAin7 ); +module xo2iobuf0086 ( output Z, input PAD ); - xo2iobuf0069 MAin_pad_7( .Z(PADDI), .PAD(MAin7)); + IB INST1( .I(PAD), .O(Z)); +endmodule + +module UFMSDI ( input IOLDO, output UFMSDI ); + + xo2iobuf0084 UFMSDI_pad( .I(IOLDO), .PAD(UFMSDI)); specify - (MAin7 => PADDI) = (0:0:0,0:0:0); - $width (posedge MAin7, 0:0:0); - $width (negedge MAin7, 0:0:0); + (IOLDO => UFMSDI) = (0:0:0,0:0:0); endspecify endmodule -module MAin_6_ ( output PADDI, input MAin6 ); +module UFMSDI_MGIOL ( output IOLDO, input OPOS, CLK ); + wire VCCI, GNDI, OPOS_dly, CLK_dly; - xo2iobuf0069 MAin_pad_6( .Z(PADDI), .PAD(MAin6)); + mfflsre \UFMSDI$r0 ( .D0(OPOS_dly), .SP(VCCI), .CK(CLK_dly), .LSR(GNDI), + .Q(IOLDO)); + vcc DRIVEVCC( .PWR1(VCCI)); + gnd DRIVEGND( .PWR0(GNDI)); specify - (MAin6 => PADDI) = (0:0:0,0:0:0); - $width (posedge MAin6, 0:0:0); - $width (negedge MAin6, 0:0:0); + (CLK => IOLDO) = (0:0:0,0:0:0); + $setuphold (posedge CLK, OPOS, 0:0:0, 0:0:0,,,, CLK_dly, OPOS_dly); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); endspecify endmodule -module MAin_5_ ( output PADDI, input MAin5 ); +module UFMCLK ( input IOLDO, output UFMCLK ); - xo2iobuf0069 MAin_pad_5( .Z(PADDI), .PAD(MAin5)); + xo2iobuf0084 UFMCLK_pad( .I(IOLDO), .PAD(UFMCLK)); specify - (MAin5 => PADDI) = (0:0:0,0:0:0); - $width (posedge MAin5, 0:0:0); - $width (negedge MAin5, 0:0:0); + (IOLDO => UFMCLK) = (0:0:0,0:0:0); endspecify endmodule -module MAin_4_ ( output PADDI, input MAin4 ); +module UFMCLK_MGIOL ( output IOLDO, input OPOS, CE, CLK ); + wire GNDI, OPOS_dly, CLK_dly, CE_dly; - xo2iobuf0069 MAin_pad_4( .Z(PADDI), .PAD(MAin4)); + mfflsre UFMCLK_0io( .D0(OPOS_dly), .SP(CE_dly), .CK(CLK_dly), .LSR(GNDI), + .Q(IOLDO)); + gnd DRIVEGND( .PWR0(GNDI)); specify - (MAin4 => PADDI) = (0:0:0,0:0:0); - $width (posedge MAin4, 0:0:0); - $width (negedge MAin4, 0:0:0); + (CLK => IOLDO) = (0:0:0,0:0:0); + $setuphold (posedge CLK, OPOS, 0:0:0, 0:0:0,,,, CLK_dly, OPOS_dly); + $setuphold (posedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); endspecify endmodule -module MAin_3_ ( output PADDI, input MAin3 ); +module nUFMCS ( input IOLDO, output nUFMCS ); - xo2iobuf0069 MAin_pad_3( .Z(PADDI), .PAD(MAin3)); + xo2iobuf0084 nUFMCS_pad( .I(IOLDO), .PAD(nUFMCS)); specify - (MAin3 => PADDI) = (0:0:0,0:0:0); - $width (posedge MAin3, 0:0:0); - $width (negedge MAin3, 0:0:0); + (IOLDO => nUFMCS) = (0:0:0,0:0:0); endspecify endmodule -module MAin_2_ ( output PADDI, input MAin2 ); +module nUFMCS_MGIOL ( output IOLDO, input OPOS, CLK ); + wire VCCI, GNDI, OPOS_dly, CLK_dly; - xo2iobuf0069 MAin_pad_2( .Z(PADDI), .PAD(MAin2)); + mfflsre0087 \nUFMCS$r1 ( .D0(OPOS_dly), .SP(VCCI), .CK(CLK_dly), .LSR(GNDI), + .Q(IOLDO)); + vcc DRIVEVCC( .PWR1(VCCI)); + gnd DRIVEGND( .PWR0(GNDI)); specify - (MAin2 => PADDI) = (0:0:0,0:0:0); - $width (posedge MAin2, 0:0:0); - $width (negedge MAin2, 0:0:0); + (CLK => IOLDO) = (0:0:0,0:0:0); + $setuphold (posedge CLK, OPOS, 0:0:0, 0:0:0,,,, CLK_dly, OPOS_dly); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); endspecify endmodule -module MAin_1_ ( output PADDI, input MAin1 ); +module mfflsre0087 ( input D0, SP, CK, LSR, output Q ); - xo2iobuf0069 MAin_pad_1( .Z(PADDI), .PAD(MAin1)); + FD1P3BX INST01( .D(D0), .SP(SP), .CK(CK), .PD(LSR), .Q(Q)); + defparam INST01.GSR = "DISABLED"; +endmodule + +module RDQML ( input PADDO, output RDQML ); + + xo2iobuf0084 RDQML_pad( .I(PADDO), .PAD(RDQML)); specify - (MAin1 => PADDI) = (0:0:0,0:0:0); - $width (posedge MAin1, 0:0:0); - $width (negedge MAin1, 0:0:0); + (PADDO => RDQML) = (0:0:0,0:0:0); endspecify endmodule -module MAin_0_ ( output PADDI, input MAin0 ); +module RDQMH ( input PADDO, output RDQMH ); - xo2iobuf0069 MAin_pad_0( .Z(PADDI), .PAD(MAin0)); + xo2iobuf0084 RDQMH_pad( .I(PADDO), .PAD(RDQMH)); specify - (MAin0 => PADDI) = (0:0:0,0:0:0); - $width (posedge MAin0, 0:0:0); - $width (negedge MAin0, 0:0:0); + (PADDO => RDQMH) = (0:0:0,0:0:0); + endspecify + +endmodule + +module nRCAS ( input IOLDO, output nRCAS ); + + xo2iobuf0084 nRCAS_pad( .I(IOLDO), .PAD(nRCAS)); + + specify + (IOLDO => nRCAS) = (0:0:0,0:0:0); + endspecify + +endmodule + +module nRCAS_MGIOL ( output IOLDO, input OPOS, CLK ); + wire VCCI, GNDI, OPOS_dly, CLK_dly; + + mfflsre0087 nRCAS_0io( .D0(OPOS_dly), .SP(VCCI), .CK(CLK_dly), .LSR(GNDI), + .Q(IOLDO)); + vcc DRIVEVCC( .PWR1(VCCI)); + gnd DRIVEGND( .PWR0(GNDI)); + + specify + (CLK => IOLDO) = (0:0:0,0:0:0); + $setuphold (posedge CLK, OPOS, 0:0:0, 0:0:0,,,, CLK_dly, OPOS_dly); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + endspecify + +endmodule + +module nRRAS ( input IOLDO, output nRRAS ); + + xo2iobuf0084 nRRAS_pad( .I(IOLDO), .PAD(nRRAS)); + + specify + (IOLDO => nRRAS) = (0:0:0,0:0:0); + endspecify + +endmodule + +module nRRAS_MGIOL ( output IOLDO, input OPOS, CLK ); + wire VCCI, GNDI, OPOS_dly, CLK_dly; + + mfflsre0087 nRRAS_0io( .D0(OPOS_dly), .SP(VCCI), .CK(CLK_dly), .LSR(GNDI), + .Q(IOLDO)); + vcc DRIVEVCC( .PWR1(VCCI)); + gnd DRIVEGND( .PWR0(GNDI)); + + specify + (CLK => IOLDO) = (0:0:0,0:0:0); + $setuphold (posedge CLK, OPOS, 0:0:0, 0:0:0,,,, CLK_dly, OPOS_dly); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + endspecify + +endmodule + +module nRWE ( input IOLDO, output nRWE ); + + xo2iobuf0084 nRWE_pad( .I(IOLDO), .PAD(nRWE)); + + specify + (IOLDO => nRWE) = (0:0:0,0:0:0); + endspecify + +endmodule + +module nRWE_MGIOL ( output IOLDO, input OPOS, CLK ); + wire VCCI, GNDI, OPOS_dly, CLK_dly; + + mfflsre0087 nRWE_0io( .D0(OPOS_dly), .SP(VCCI), .CK(CLK_dly), .LSR(GNDI), + .Q(IOLDO)); + vcc DRIVEVCC( .PWR1(VCCI)); + gnd DRIVEGND( .PWR0(GNDI)); + + specify + (CLK => IOLDO) = (0:0:0,0:0:0); + $setuphold (posedge CLK, OPOS, 0:0:0, 0:0:0,,,, CLK_dly, OPOS_dly); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + endspecify + +endmodule + +module RCKE ( input IOLDO, output RCKE ); + + xo2iobuf0084 RCKE_pad( .I(IOLDO), .PAD(RCKE)); + + specify + (IOLDO => RCKE) = (0:0:0,0:0:0); + endspecify + +endmodule + +module RCKE_MGIOL ( output IOLDO, input OPOS, CLK ); + wire VCCI, GNDI, OPOS_dly, CLK_dly; + + mfflsre \RCKE$r2 ( .D0(OPOS_dly), .SP(VCCI), .CK(CLK_dly), .LSR(GNDI), + .Q(IOLDO)); + vcc DRIVEVCC( .PWR1(VCCI)); + gnd DRIVEGND( .PWR0(GNDI)); + + specify + (CLK => IOLDO) = (0:0:0,0:0:0); + $setuphold (posedge CLK, OPOS, 0:0:0, 0:0:0,,,, CLK_dly, OPOS_dly); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + endspecify + +endmodule + +module RCLK ( output PADDI, input RCLK ); + + xo2iobuf0086 RCLK_pad( .Z(PADDI), .PAD(RCLK)); + + specify + (RCLK => PADDI) = (0:0:0,0:0:0); + $width (posedge RCLK, 0:0:0); + $width (negedge RCLK, 0:0:0); + endspecify + +endmodule + +module nRCS ( input IOLDO, output nRCS ); + + xo2iobuf0084 nRCS_pad( .I(IOLDO), .PAD(nRCS)); + + specify + (IOLDO => nRCS) = (0:0:0,0:0:0); + endspecify + +endmodule + +module nRCS_MGIOL ( output IOLDO, input OPOS, CLK ); + wire VCCI, GNDI, OPOS_dly, CLK_dly; + + mfflsre0087 nRCS_0io( .D0(OPOS_dly), .SP(VCCI), .CK(CLK_dly), .LSR(GNDI), + .Q(IOLDO)); + vcc DRIVEVCC( .PWR1(VCCI)); + gnd DRIVEGND( .PWR0(GNDI)); + + specify + (CLK => IOLDO) = (0:0:0,0:0:0); + $setuphold (posedge CLK, OPOS, 0:0:0, 0:0:0,,,, CLK_dly, OPOS_dly); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + endspecify + +endmodule + +module RD_7_ ( input IOLDO, PADDT, output RD7 ); + + xo2iobuf \RD_pad[7] ( .I(IOLDO), .T(PADDT), .PAD(RD7)); + + specify + (IOLDO => RD7) = (0:0:0,0:0:0); + (PADDT => RD7) = (0:0:0,0:0:0,0:0:0,0:0:0,0:0:0,0:0:0); + endspecify + +endmodule + +module RD_7__MGIOL ( output IOLDO, input OPOS, CLK ); + wire VCCI, CLK_NOTIN, GNDI, OPOS_dly, CLK_dly; + + mfflsre \WRD_0io[7] ( .D0(OPOS_dly), .SP(VCCI), .CK(CLK_NOTIN), .LSR(GNDI), + .Q(IOLDO)); + vcc DRIVEVCC( .PWR1(VCCI)); + inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); + gnd DRIVEGND( .PWR0(GNDI)); + + specify + (CLK => IOLDO) = (0:0:0,0:0:0); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + $setuphold (negedge CLK, OPOS, 0:0:0, 0:0:0,,,, CLK_dly, OPOS_dly); + endspecify + +endmodule + +module RD_6_ ( input IOLDO, PADDT, output RD6 ); + + xo2iobuf \RD_pad[6] ( .I(IOLDO), .T(PADDT), .PAD(RD6)); + + specify + (IOLDO => RD6) = (0:0:0,0:0:0); + (PADDT => RD6) = (0:0:0,0:0:0,0:0:0,0:0:0,0:0:0,0:0:0); + endspecify + +endmodule + +module RD_6__MGIOL ( output IOLDO, input OPOS, CLK ); + wire VCCI, CLK_NOTIN, GNDI, OPOS_dly, CLK_dly; + + mfflsre \WRD_0io[6] ( .D0(OPOS_dly), .SP(VCCI), .CK(CLK_NOTIN), .LSR(GNDI), + .Q(IOLDO)); + vcc DRIVEVCC( .PWR1(VCCI)); + inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); + gnd DRIVEGND( .PWR0(GNDI)); + + specify + (CLK => IOLDO) = (0:0:0,0:0:0); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + $setuphold (negedge CLK, OPOS, 0:0:0, 0:0:0,,,, CLK_dly, OPOS_dly); + endspecify + +endmodule + +module RD_5_ ( input IOLDO, PADDT, output RD5 ); + + xo2iobuf \RD_pad[5] ( .I(IOLDO), .T(PADDT), .PAD(RD5)); + + specify + (IOLDO => RD5) = (0:0:0,0:0:0); + (PADDT => RD5) = (0:0:0,0:0:0,0:0:0,0:0:0,0:0:0,0:0:0); + endspecify + +endmodule + +module RD_5__MGIOL ( output IOLDO, input OPOS, CLK ); + wire VCCI, CLK_NOTIN, GNDI, OPOS_dly, CLK_dly; + + mfflsre \WRD_0io[5] ( .D0(OPOS_dly), .SP(VCCI), .CK(CLK_NOTIN), .LSR(GNDI), + .Q(IOLDO)); + vcc DRIVEVCC( .PWR1(VCCI)); + inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); + gnd DRIVEGND( .PWR0(GNDI)); + + specify + (CLK => IOLDO) = (0:0:0,0:0:0); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + $setuphold (negedge CLK, OPOS, 0:0:0, 0:0:0,,,, CLK_dly, OPOS_dly); + endspecify + +endmodule + +module RD_4_ ( input IOLDO, PADDT, output RD4 ); + + xo2iobuf \RD_pad[4] ( .I(IOLDO), .T(PADDT), .PAD(RD4)); + + specify + (IOLDO => RD4) = (0:0:0,0:0:0); + (PADDT => RD4) = (0:0:0,0:0:0,0:0:0,0:0:0,0:0:0,0:0:0); + endspecify + +endmodule + +module RD_4__MGIOL ( output IOLDO, input OPOS, CLK ); + wire VCCI, CLK_NOTIN, GNDI, OPOS_dly, CLK_dly; + + mfflsre \WRD_0io[4] ( .D0(OPOS_dly), .SP(VCCI), .CK(CLK_NOTIN), .LSR(GNDI), + .Q(IOLDO)); + vcc DRIVEVCC( .PWR1(VCCI)); + inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); + gnd DRIVEGND( .PWR0(GNDI)); + + specify + (CLK => IOLDO) = (0:0:0,0:0:0); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + $setuphold (negedge CLK, OPOS, 0:0:0, 0:0:0,,,, CLK_dly, OPOS_dly); + endspecify + +endmodule + +module RD_3_ ( input IOLDO, PADDT, output RD3 ); + + xo2iobuf \RD_pad[3] ( .I(IOLDO), .T(PADDT), .PAD(RD3)); + + specify + (IOLDO => RD3) = (0:0:0,0:0:0); + (PADDT => RD3) = (0:0:0,0:0:0,0:0:0,0:0:0,0:0:0,0:0:0); + endspecify + +endmodule + +module RD_3__MGIOL ( output IOLDO, input OPOS, CLK ); + wire VCCI, CLK_NOTIN, GNDI, OPOS_dly, CLK_dly; + + mfflsre \WRD_0io[3] ( .D0(OPOS_dly), .SP(VCCI), .CK(CLK_NOTIN), .LSR(GNDI), + .Q(IOLDO)); + vcc DRIVEVCC( .PWR1(VCCI)); + inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); + gnd DRIVEGND( .PWR0(GNDI)); + + specify + (CLK => IOLDO) = (0:0:0,0:0:0); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + $setuphold (negedge CLK, OPOS, 0:0:0, 0:0:0,,,, CLK_dly, OPOS_dly); + endspecify + +endmodule + +module RD_2_ ( input IOLDO, PADDT, output RD2 ); + + xo2iobuf \RD_pad[2] ( .I(IOLDO), .T(PADDT), .PAD(RD2)); + + specify + (IOLDO => RD2) = (0:0:0,0:0:0); + (PADDT => RD2) = (0:0:0,0:0:0,0:0:0,0:0:0,0:0:0,0:0:0); + endspecify + +endmodule + +module RD_2__MGIOL ( output IOLDO, input OPOS, CLK ); + wire VCCI, CLK_NOTIN, GNDI, OPOS_dly, CLK_dly; + + mfflsre \WRD_0io[2] ( .D0(OPOS_dly), .SP(VCCI), .CK(CLK_NOTIN), .LSR(GNDI), + .Q(IOLDO)); + vcc DRIVEVCC( .PWR1(VCCI)); + inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); + gnd DRIVEGND( .PWR0(GNDI)); + + specify + (CLK => IOLDO) = (0:0:0,0:0:0); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + $setuphold (negedge CLK, OPOS, 0:0:0, 0:0:0,,,, CLK_dly, OPOS_dly); + endspecify + +endmodule + +module RD_1_ ( input IOLDO, PADDT, output RD1 ); + + xo2iobuf \RD_pad[1] ( .I(IOLDO), .T(PADDT), .PAD(RD1)); + + specify + (IOLDO => RD1) = (0:0:0,0:0:0); + (PADDT => RD1) = (0:0:0,0:0:0,0:0:0,0:0:0,0:0:0,0:0:0); + endspecify + +endmodule + +module RD_1__MGIOL ( output IOLDO, input OPOS, CLK ); + wire VCCI, CLK_NOTIN, GNDI, OPOS_dly, CLK_dly; + + mfflsre \WRD_0io[1] ( .D0(OPOS_dly), .SP(VCCI), .CK(CLK_NOTIN), .LSR(GNDI), + .Q(IOLDO)); + vcc DRIVEVCC( .PWR1(VCCI)); + inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); + gnd DRIVEGND( .PWR0(GNDI)); + + specify + (CLK => IOLDO) = (0:0:0,0:0:0); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + $setuphold (negedge CLK, OPOS, 0:0:0, 0:0:0,,,, CLK_dly, OPOS_dly); + endspecify + +endmodule + +module RA_11_ ( input IOLDO, output RA11 ); + + xo2iobuf0084 \RA_pad[11] ( .I(IOLDO), .PAD(RA11)); + + specify + (IOLDO => RA11) = (0:0:0,0:0:0); + endspecify + +endmodule + +module RA_11__MGIOL ( output IOLDO, input OPOS, CLK ); + wire VCCI, GNDI, OPOS_dly, CLK_dly; + + mfflsre RA11_0io( .D0(OPOS_dly), .SP(VCCI), .CK(CLK_dly), .LSR(GNDI), + .Q(IOLDO)); + vcc DRIVEVCC( .PWR1(VCCI)); + gnd DRIVEGND( .PWR0(GNDI)); + + specify + (CLK => IOLDO) = (0:0:0,0:0:0); + $setuphold (posedge CLK, OPOS, 0:0:0, 0:0:0,,,, CLK_dly, OPOS_dly); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + endspecify + +endmodule + +module RA_10_ ( input IOLDO, output RA10 ); + + xo2iobuf0084 \RA_pad[10] ( .I(IOLDO), .PAD(RA10)); + + specify + (IOLDO => RA10) = (0:0:0,0:0:0); + endspecify + +endmodule + +module RA_10__MGIOL ( output IOLDO, input OPOS, LSR, CLK ); + wire VCCI, OPOS_dly, CLK_dly, LSR_dly; + + mfflsre0088 RA10_0io( .D0(OPOS_dly), .SP(VCCI), .CK(CLK_dly), .LSR(LSR_dly), + .Q(IOLDO)); + vcc DRIVEVCC( .PWR1(VCCI)); + + specify + (CLK => IOLDO) = (0:0:0,0:0:0); + $setuphold (posedge CLK, OPOS, 0:0:0, 0:0:0,,,, CLK_dly, OPOS_dly); + $setuphold (posedge CLK, LSR, 0:0:0, 0:0:0,,,, CLK_dly, LSR_dly); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + endspecify + +endmodule + +module mfflsre0088 ( input D0, SP, CK, LSR, output Q ); + + FD1P3JX INST01( .D(D0), .SP(SP), .CK(CK), .PD(LSR), .Q(Q)); + defparam INST01.GSR = "DISABLED"; +endmodule + +module RA_9_ ( input PADDO, output RA9 ); + + xo2iobuf0084 \RA_pad[9] ( .I(PADDO), .PAD(RA9)); + + specify + (PADDO => RA9) = (0:0:0,0:0:0); + endspecify + +endmodule + +module RA_8_ ( input PADDO, output RA8 ); + + xo2iobuf0084 \RA_pad[8] ( .I(PADDO), .PAD(RA8)); + + specify + (PADDO => RA8) = (0:0:0,0:0:0); + endspecify + +endmodule + +module RA_7_ ( input PADDO, output RA7 ); + + xo2iobuf0084 \RA_pad[7] ( .I(PADDO), .PAD(RA7)); + + specify + (PADDO => RA7) = (0:0:0,0:0:0); + endspecify + +endmodule + +module RA_6_ ( input PADDO, output RA6 ); + + xo2iobuf0084 \RA_pad[6] ( .I(PADDO), .PAD(RA6)); + + specify + (PADDO => RA6) = (0:0:0,0:0:0); + endspecify + +endmodule + +module RA_5_ ( input PADDO, output RA5 ); + + xo2iobuf0084 \RA_pad[5] ( .I(PADDO), .PAD(RA5)); + + specify + (PADDO => RA5) = (0:0:0,0:0:0); + endspecify + +endmodule + +module RA_4_ ( input PADDO, output RA4 ); + + xo2iobuf0084 \RA_pad[4] ( .I(PADDO), .PAD(RA4)); + + specify + (PADDO => RA4) = (0:0:0,0:0:0); + endspecify + +endmodule + +module RA_3_ ( input PADDO, output RA3 ); + + xo2iobuf0084 \RA_pad[3] ( .I(PADDO), .PAD(RA3)); + + specify + (PADDO => RA3) = (0:0:0,0:0:0); + endspecify + +endmodule + +module RA_2_ ( input PADDO, output RA2 ); + + xo2iobuf0084 \RA_pad[2] ( .I(PADDO), .PAD(RA2)); + + specify + (PADDO => RA2) = (0:0:0,0:0:0); + endspecify + +endmodule + +module RA_1_ ( input PADDO, output RA1 ); + + xo2iobuf0084 \RA_pad[1] ( .I(PADDO), .PAD(RA1)); + + specify + (PADDO => RA1) = (0:0:0,0:0:0); + endspecify + +endmodule + +module RA_0_ ( input PADDO, output RA0 ); + + xo2iobuf0084 \RA_pad[0] ( .I(PADDO), .PAD(RA0)); + + specify + (PADDO => RA0) = (0:0:0,0:0:0); + endspecify + +endmodule + +module RBA_1_ ( input IOLDO, output RBA1 ); + + xo2iobuf0084 \RBA_pad[1] ( .I(IOLDO), .PAD(RBA1)); + + specify + (IOLDO => RBA1) = (0:0:0,0:0:0); + endspecify + +endmodule + +module RBA_1__MGIOL ( output IOLDO, input OPOS, CLK ); + wire VCCI, CLK_NOTIN, GNDI, OPOS_dly, CLK_dly; + + mfflsre \RBA_0io[1] ( .D0(OPOS_dly), .SP(VCCI), .CK(CLK_NOTIN), .LSR(GNDI), + .Q(IOLDO)); + vcc DRIVEVCC( .PWR1(VCCI)); + inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); + gnd DRIVEGND( .PWR0(GNDI)); + + specify + (CLK => IOLDO) = (0:0:0,0:0:0); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + $setuphold (negedge CLK, OPOS, 0:0:0, 0:0:0,,,, CLK_dly, OPOS_dly); + endspecify + +endmodule + +module RBA_0_ ( input IOLDO, output RBA0 ); + + xo2iobuf0084 \RBA_pad[0] ( .I(IOLDO), .PAD(RBA0)); + + specify + (IOLDO => RBA0) = (0:0:0,0:0:0); + endspecify + +endmodule + +module RBA_0__MGIOL ( output IOLDO, input OPOS, CLK ); + wire VCCI, CLK_NOTIN, GNDI, OPOS_dly, CLK_dly; + + mfflsre \RBA_0io[0] ( .D0(OPOS_dly), .SP(VCCI), .CK(CLK_NOTIN), .LSR(GNDI), + .Q(IOLDO)); + vcc DRIVEVCC( .PWR1(VCCI)); + inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); + gnd DRIVEGND( .PWR0(GNDI)); + + specify + (CLK => IOLDO) = (0:0:0,0:0:0); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + $setuphold (negedge CLK, OPOS, 0:0:0, 0:0:0,,,, CLK_dly, OPOS_dly); + endspecify + +endmodule + +module LED ( input PADDO, output LED ); + + xo2iobuf0089 LED_pad( .I(PADDO), .PAD(LED)); + + specify + (PADDO => LED) = (0:0:0,0:0:0); + endspecify + +endmodule + +module xo2iobuf0089 ( input I, output PAD ); + + OB INST5( .I(I), .O(PAD)); +endmodule + +module nFWE ( output PADDI, input nFWE ); + + xo2iobuf0090 nFWE_pad( .Z(PADDI), .PAD(nFWE)); + + specify + (nFWE => PADDI) = (0:0:0,0:0:0); + $width (posedge nFWE, 0:0:0); + $width (negedge nFWE, 0:0:0); + endspecify + +endmodule + +module xo2iobuf0090 ( output Z, input PAD ); + + IBPU INST1( .I(PAD), .O(Z)); +endmodule + +module nCRAS ( output PADDI, input nCRAS ); + + xo2iobuf0090 nCRAS_pad( .Z(PADDI), .PAD(nCRAS)); + + specify + (nCRAS => PADDI) = (0:0:0,0:0:0); + $width (posedge nCRAS, 0:0:0); + $width (negedge nCRAS, 0:0:0); + endspecify + +endmodule + +module nCCAS ( output PADDI, input nCCAS ); + + xo2iobuf0090 nCCAS_pad( .Z(PADDI), .PAD(nCCAS)); + + specify + (nCCAS => PADDI) = (0:0:0,0:0:0); + $width (posedge nCCAS, 0:0:0); + $width (negedge nCCAS, 0:0:0); + endspecify + +endmodule + +module Dout_7_ ( input PADDO, output Dout7 ); + + xo2iobuf0084 \Dout_pad[7] ( .I(PADDO), .PAD(Dout7)); + + specify + (PADDO => Dout7) = (0:0:0,0:0:0); + endspecify + +endmodule + +module Dout_6_ ( input PADDO, output Dout6 ); + + xo2iobuf0084 \Dout_pad[6] ( .I(PADDO), .PAD(Dout6)); + + specify + (PADDO => Dout6) = (0:0:0,0:0:0); + endspecify + +endmodule + +module Dout_5_ ( input PADDO, output Dout5 ); + + xo2iobuf0084 \Dout_pad[5] ( .I(PADDO), .PAD(Dout5)); + + specify + (PADDO => Dout5) = (0:0:0,0:0:0); + endspecify + +endmodule + +module Dout_4_ ( input PADDO, output Dout4 ); + + xo2iobuf0084 \Dout_pad[4] ( .I(PADDO), .PAD(Dout4)); + + specify + (PADDO => Dout4) = (0:0:0,0:0:0); + endspecify + +endmodule + +module Dout_3_ ( input PADDO, output Dout3 ); + + xo2iobuf0084 \Dout_pad[3] ( .I(PADDO), .PAD(Dout3)); + + specify + (PADDO => Dout3) = (0:0:0,0:0:0); + endspecify + +endmodule + +module Dout_2_ ( input PADDO, output Dout2 ); + + xo2iobuf0084 \Dout_pad[2] ( .I(PADDO), .PAD(Dout2)); + + specify + (PADDO => Dout2) = (0:0:0,0:0:0); + endspecify + +endmodule + +module Dout_1_ ( input PADDO, output Dout1 ); + + xo2iobuf0084 \Dout_pad[1] ( .I(PADDO), .PAD(Dout1)); + + specify + (PADDO => Dout1) = (0:0:0,0:0:0); + endspecify + +endmodule + +module Din_7_ ( output PADDI, input Din7 ); + + xo2iobuf0086 \Din_pad[7] ( .Z(PADDI), .PAD(Din7)); + + specify + (Din7 => PADDI) = (0:0:0,0:0:0); + $width (posedge Din7, 0:0:0); + $width (negedge Din7, 0:0:0); + endspecify + +endmodule + +module Din_7__MGIOL ( input DI, CLK, output IN ); + wire VCCI, GNDI, DI_dly, CLK_dly; + + smuxlregsre \Bank_0io[7] ( .D0(DI_dly), .SP(VCCI), .CK(CLK_dly), .LSR(GNDI), + .Q(IN)); + vcc DRIVEVCC( .PWR1(VCCI)); + gnd DRIVEGND( .PWR0(GNDI)); + + specify + (CLK => IN) = (0:0:0,0:0:0); + $setuphold (posedge CLK, DI, 0:0:0, 0:0:0,,,, CLK_dly, DI_dly); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + endspecify + +endmodule + +module Din_6_ ( output PADDI, input Din6 ); + + xo2iobuf0086 \Din_pad[6] ( .Z(PADDI), .PAD(Din6)); + + specify + (Din6 => PADDI) = (0:0:0,0:0:0); + $width (posedge Din6, 0:0:0); + $width (negedge Din6, 0:0:0); + endspecify + +endmodule + +module Din_6__MGIOL ( input DI, CLK, output IN ); + wire VCCI, GNDI, DI_dly, CLK_dly; + + smuxlregsre \Bank_0io[6] ( .D0(DI_dly), .SP(VCCI), .CK(CLK_dly), .LSR(GNDI), + .Q(IN)); + vcc DRIVEVCC( .PWR1(VCCI)); + gnd DRIVEGND( .PWR0(GNDI)); + + specify + (CLK => IN) = (0:0:0,0:0:0); + $setuphold (posedge CLK, DI, 0:0:0, 0:0:0,,,, CLK_dly, DI_dly); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + endspecify + +endmodule + +module Din_5_ ( output PADDI, input Din5 ); + + xo2iobuf0086 \Din_pad[5] ( .Z(PADDI), .PAD(Din5)); + + specify + (Din5 => PADDI) = (0:0:0,0:0:0); + $width (posedge Din5, 0:0:0); + $width (negedge Din5, 0:0:0); + endspecify + +endmodule + +module Din_5__MGIOL ( input DI, CLK, output IN ); + wire VCCI, GNDI, DI_dly, CLK_dly; + + smuxlregsre \Bank_0io[5] ( .D0(DI_dly), .SP(VCCI), .CK(CLK_dly), .LSR(GNDI), + .Q(IN)); + vcc DRIVEVCC( .PWR1(VCCI)); + gnd DRIVEGND( .PWR0(GNDI)); + + specify + (CLK => IN) = (0:0:0,0:0:0); + $setuphold (posedge CLK, DI, 0:0:0, 0:0:0,,,, CLK_dly, DI_dly); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + endspecify + +endmodule + +module Din_4_ ( output PADDI, input Din4 ); + + xo2iobuf0086 \Din_pad[4] ( .Z(PADDI), .PAD(Din4)); + + specify + (Din4 => PADDI) = (0:0:0,0:0:0); + $width (posedge Din4, 0:0:0); + $width (negedge Din4, 0:0:0); + endspecify + +endmodule + +module Din_4__MGIOL ( input DI, CLK, output IN ); + wire VCCI, GNDI, DI_dly, CLK_dly; + + smuxlregsre \Bank_0io[4] ( .D0(DI_dly), .SP(VCCI), .CK(CLK_dly), .LSR(GNDI), + .Q(IN)); + vcc DRIVEVCC( .PWR1(VCCI)); + gnd DRIVEGND( .PWR0(GNDI)); + + specify + (CLK => IN) = (0:0:0,0:0:0); + $setuphold (posedge CLK, DI, 0:0:0, 0:0:0,,,, CLK_dly, DI_dly); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + endspecify + +endmodule + +module Din_3_ ( output PADDI, input Din3 ); + + xo2iobuf0086 \Din_pad[3] ( .Z(PADDI), .PAD(Din3)); + + specify + (Din3 => PADDI) = (0:0:0,0:0:0); + $width (posedge Din3, 0:0:0); + $width (negedge Din3, 0:0:0); + endspecify + +endmodule + +module Din_3__MGIOL ( input DI, CLK, output IN ); + wire VCCI, GNDI, DI_dly, CLK_dly; + + smuxlregsre \Bank_0io[3] ( .D0(DI_dly), .SP(VCCI), .CK(CLK_dly), .LSR(GNDI), + .Q(IN)); + vcc DRIVEVCC( .PWR1(VCCI)); + gnd DRIVEGND( .PWR0(GNDI)); + + specify + (CLK => IN) = (0:0:0,0:0:0); + $setuphold (posedge CLK, DI, 0:0:0, 0:0:0,,,, CLK_dly, DI_dly); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + endspecify + +endmodule + +module Din_2_ ( output PADDI, input Din2 ); + + xo2iobuf0086 \Din_pad[2] ( .Z(PADDI), .PAD(Din2)); + + specify + (Din2 => PADDI) = (0:0:0,0:0:0); + $width (posedge Din2, 0:0:0); + $width (negedge Din2, 0:0:0); + endspecify + +endmodule + +module Din_2__MGIOL ( input DI, CE, CLK, output IN ); + wire CLK_NOTIN, GNDI, DI_dly, CLK_dly, CE_dly; + + smuxlregsre CmdUFMCS( .D0(DI_dly), .SP(CE_dly), .CK(CLK_NOTIN), .LSR(GNDI), + .Q(IN)); + inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); + gnd DRIVEGND( .PWR0(GNDI)); + + specify + (CLK => IN) = (0:0:0,0:0:0); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + $setuphold (negedge CLK, DI, 0:0:0, 0:0:0,,,, CLK_dly, DI_dly); + $setuphold (negedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); + endspecify + +endmodule + +module Din_1_ ( output PADDI, input Din1 ); + + xo2iobuf0086 \Din_pad[1] ( .Z(PADDI), .PAD(Din1)); + + specify + (Din1 => PADDI) = (0:0:0,0:0:0); + $width (posedge Din1, 0:0:0); + $width (negedge Din1, 0:0:0); + endspecify + +endmodule + +module Din_1__MGIOL ( input DI, CE, CLK, output IN ); + wire CLK_NOTIN, GNDI, DI_dly, CLK_dly, CE_dly; + + smuxlregsre CmdUFMCLK( .D0(DI_dly), .SP(CE_dly), .CK(CLK_NOTIN), .LSR(GNDI), + .Q(IN)); + inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); + gnd DRIVEGND( .PWR0(GNDI)); + + specify + (CLK => IN) = (0:0:0,0:0:0); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + $setuphold (negedge CLK, DI, 0:0:0, 0:0:0,,,, CLK_dly, DI_dly); + $setuphold (negedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); + endspecify + +endmodule + +module Din_0_ ( output PADDI, input Din0 ); + + xo2iobuf0086 \Din_pad[0] ( .Z(PADDI), .PAD(Din0)); + + specify + (Din0 => PADDI) = (0:0:0,0:0:0); + $width (posedge Din0, 0:0:0); + $width (negedge Din0, 0:0:0); + endspecify + +endmodule + +module Din_0__MGIOL ( input DI, CE, CLK, output IN ); + wire CLK_NOTIN, GNDI, DI_dly, CLK_dly, CE_dly; + + smuxlregsre CmdUFMSDI( .D0(DI_dly), .SP(CE_dly), .CK(CLK_NOTIN), .LSR(GNDI), + .Q(IN)); + inverter CLK_INVERTERIN( .I(CLK_dly), .Z(CLK_NOTIN)); + gnd DRIVEGND( .PWR0(GNDI)); + + specify + (CLK => IN) = (0:0:0,0:0:0); + $width (posedge CLK, 0:0:0); + $width (negedge CLK, 0:0:0); + $setuphold (negedge CLK, DI, 0:0:0, 0:0:0,,,, CLK_dly, DI_dly); + $setuphold (negedge CLK, CE, 0:0:0, 0:0:0,,,, CLK_dly, CE_dly); endspecify endmodule module CROW_1_ ( output PADDI, input CROW1 ); - xo2iobuf0069 CROW_pad_1( .Z(PADDI), .PAD(CROW1)); + xo2iobuf0086 \CROW_pad[1] ( .Z(PADDI), .PAD(CROW1)); specify (CROW1 => PADDI) = (0:0:0,0:0:0); @@ -3525,7 +3962,7 @@ endmodule module CROW_0_ ( output PADDI, input CROW0 ); - xo2iobuf0069 CROW_pad_0( .Z(PADDI), .PAD(CROW0)); + xo2iobuf0086 \CROW_pad[0] ( .Z(PADDI), .PAD(CROW0)); specify (CROW0 => PADDI) = (0:0:0,0:0:0); @@ -3535,158 +3972,122 @@ module CROW_0_ ( output PADDI, input CROW0 ); endmodule -module Din_7_ ( output PADDI, input Din7 ); +module MAin_9_ ( output PADDI, input MAin9 ); - xo2iobuf0069 Din_pad_7( .Z(PADDI), .PAD(Din7)); + xo2iobuf0086 \MAin_pad[9] ( .Z(PADDI), .PAD(MAin9)); specify - (Din7 => PADDI) = (0:0:0,0:0:0); - $width (posedge Din7, 0:0:0); - $width (negedge Din7, 0:0:0); + (MAin9 => PADDI) = (0:0:0,0:0:0); + $width (posedge MAin9, 0:0:0); + $width (negedge MAin9, 0:0:0); endspecify endmodule -module Din_6_ ( output PADDI, input Din6 ); +module MAin_8_ ( output PADDI, input MAin8 ); - xo2iobuf0069 Din_pad_6( .Z(PADDI), .PAD(Din6)); + xo2iobuf0086 \MAin_pad[8] ( .Z(PADDI), .PAD(MAin8)); specify - (Din6 => PADDI) = (0:0:0,0:0:0); - $width (posedge Din6, 0:0:0); - $width (negedge Din6, 0:0:0); + (MAin8 => PADDI) = (0:0:0,0:0:0); + $width (posedge MAin8, 0:0:0); + $width (negedge MAin8, 0:0:0); endspecify endmodule -module Din_5_ ( output PADDI, input Din5 ); +module MAin_7_ ( output PADDI, input MAin7 ); - xo2iobuf0069 Din_pad_5( .Z(PADDI), .PAD(Din5)); + xo2iobuf0086 \MAin_pad[7] ( .Z(PADDI), .PAD(MAin7)); specify - (Din5 => PADDI) = (0:0:0,0:0:0); - $width (posedge Din5, 0:0:0); - $width (negedge Din5, 0:0:0); + (MAin7 => PADDI) = (0:0:0,0:0:0); + $width (posedge MAin7, 0:0:0); + $width (negedge MAin7, 0:0:0); endspecify endmodule -module Din_4_ ( output PADDI, input Din4 ); +module MAin_6_ ( output PADDI, input MAin6 ); - xo2iobuf0069 Din_pad_4( .Z(PADDI), .PAD(Din4)); + xo2iobuf0086 \MAin_pad[6] ( .Z(PADDI), .PAD(MAin6)); specify - (Din4 => PADDI) = (0:0:0,0:0:0); - $width (posedge Din4, 0:0:0); - $width (negedge Din4, 0:0:0); + (MAin6 => PADDI) = (0:0:0,0:0:0); + $width (posedge MAin6, 0:0:0); + $width (negedge MAin6, 0:0:0); endspecify endmodule -module Din_3_ ( output PADDI, input Din3 ); +module MAin_5_ ( output PADDI, input MAin5 ); - xo2iobuf0069 Din_pad_3( .Z(PADDI), .PAD(Din3)); + xo2iobuf0086 \MAin_pad[5] ( .Z(PADDI), .PAD(MAin5)); specify - (Din3 => PADDI) = (0:0:0,0:0:0); - $width (posedge Din3, 0:0:0); - $width (negedge Din3, 0:0:0); + (MAin5 => PADDI) = (0:0:0,0:0:0); + $width (posedge MAin5, 0:0:0); + $width (negedge MAin5, 0:0:0); endspecify endmodule -module Din_2_ ( output PADDI, input Din2 ); +module MAin_4_ ( output PADDI, input MAin4 ); - xo2iobuf0069 Din_pad_2( .Z(PADDI), .PAD(Din2)); + xo2iobuf0086 \MAin_pad[4] ( .Z(PADDI), .PAD(MAin4)); specify - (Din2 => PADDI) = (0:0:0,0:0:0); - $width (posedge Din2, 0:0:0); - $width (negedge Din2, 0:0:0); + (MAin4 => PADDI) = (0:0:0,0:0:0); + $width (posedge MAin4, 0:0:0); + $width (negedge MAin4, 0:0:0); endspecify endmodule -module Din_1_ ( output PADDI, input Din1 ); +module MAin_3_ ( output PADDI, input MAin3 ); - xo2iobuf0069 Din_pad_1( .Z(PADDI), .PAD(Din1)); + xo2iobuf0086 \MAin_pad[3] ( .Z(PADDI), .PAD(MAin3)); specify - (Din1 => PADDI) = (0:0:0,0:0:0); - $width (posedge Din1, 0:0:0); - $width (negedge Din1, 0:0:0); + (MAin3 => PADDI) = (0:0:0,0:0:0); + $width (posedge MAin3, 0:0:0); + $width (negedge MAin3, 0:0:0); endspecify endmodule -module Din_0_ ( output PADDI, input Din0 ); +module MAin_2_ ( output PADDI, input MAin2 ); - xo2iobuf0069 Din_pad_0( .Z(PADDI), .PAD(Din0)); + xo2iobuf0086 \MAin_pad[2] ( .Z(PADDI), .PAD(MAin2)); specify - (Din0 => PADDI) = (0:0:0,0:0:0); - $width (posedge Din0, 0:0:0); - $width (negedge Din0, 0:0:0); + (MAin2 => PADDI) = (0:0:0,0:0:0); + $width (posedge MAin2, 0:0:0); + $width (negedge MAin2, 0:0:0); endspecify endmodule -module nCCAS ( output PADDI, input nCCAS ); +module MAin_1_ ( output PADDI, input MAin1 ); - xo2iobuf0069 nCCAS_pad( .Z(PADDI), .PAD(nCCAS)); + xo2iobuf0086 \MAin_pad[1] ( .Z(PADDI), .PAD(MAin1)); specify - (nCCAS => PADDI) = (0:0:0,0:0:0); - $width (posedge nCCAS, 0:0:0); - $width (negedge nCCAS, 0:0:0); + (MAin1 => PADDI) = (0:0:0,0:0:0); + $width (posedge MAin1, 0:0:0); + $width (negedge MAin1, 0:0:0); endspecify endmodule -module nCRAS ( output PADDI, input nCRAS ); +module MAin_0_ ( output PADDI, input MAin0 ); - xo2iobuf0069 nCRAS_pad( .Z(PADDI), .PAD(nCRAS)); + xo2iobuf0086 \MAin_pad[0] ( .Z(PADDI), .PAD(MAin0)); specify - (nCRAS => PADDI) = (0:0:0,0:0:0); - $width (posedge nCRAS, 0:0:0); - $width (negedge nCRAS, 0:0:0); - endspecify - -endmodule - -module nFWE ( output PADDI, input nFWE ); - - xo2iobuf0069 nFWE_pad( .Z(PADDI), .PAD(nFWE)); - - specify - (nFWE => PADDI) = (0:0:0,0:0:0); - $width (posedge nFWE, 0:0:0); - $width (negedge nFWE, 0:0:0); - endspecify - -endmodule - -module RCLK ( output PADDI, input RCLK ); - - xo2iobuf0069 RCLK_pad( .Z(PADDI), .PAD(RCLK)); - - specify - (RCLK => PADDI) = (0:0:0,0:0:0); - $width (posedge RCLK, 0:0:0); - $width (negedge RCLK, 0:0:0); - endspecify - -endmodule - -module UFMSDO ( output PADDI, input UFMSDO ); - - xo2iobuf0069 UFMSDO_pad( .Z(PADDI), .PAD(UFMSDO)); - - specify - (UFMSDO => PADDI) = (0:0:0,0:0:0); - $width (posedge UFMSDO, 0:0:0); - $width (negedge UFMSDO, 0:0:0); + (MAin0 => PADDI) = (0:0:0,0:0:0); + $width (posedge MAin0, 0:0:0); + $width (negedge MAin0, 0:0:0); endspecify endmodule diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_mrp.html b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_mrp.html index 06c3af4..8148b08 100644 --- a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_mrp.html +++ b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_mrp.html @@ -14,29 +14,29 @@ Design Information Command line: map -a MachXO2 -p LCMXO2-640HC -t TQFP100 -s 4 -oc Commercial - RAM2GS_LCMXO2_640HC_impl1.ngd -o RAM2GS_LCMXO2_640HC_impl1_map.ncd -pr - RAM2GS_LCMXO2_640HC_impl1.prf -mp RAM2GS_LCMXO2_640HC_impl1.mrp -lpf D:/One - Drive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_i - mpl1.lpf -lpf D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/RAM2GS_ - LCMXO2_640HC.lpf -c 0 -gui -msgset + -ioreg b RAM2GS_LCMXO2_640HC_impl1.ngd -o RAM2GS_LCMXO2_640HC_impl1_map.ncd + -pr RAM2GS_LCMXO2_640HC_impl1.prf -mp RAM2GS_LCMXO2_640HC_impl1.mrp -lpf D: + /OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640 + HC_impl1_synplify.lpf -lpf D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2- + 640HC/RAM2GS_LCMXO2_640HC.lpf -c 0 -gui -msgset D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/promote.xml Target Vendor: LATTICE Target Device: LCMXO2-640HCTQFP100 Target Performance: 4 Mapper: xo2c00, version: Diamond (64-bit) 3.12.1.454 -Mapped on: 08/15/23 05:03:24 +Mapped on: 08/15/23 23:30:05 Design Summary - Number of registers: 102 out of 877 (12%) - PFU registers: 102 out of 640 (16%) - PIO registers: 0 out of 237 (0%) - Number of SLICEs: 75 out of 320 (23%) - SLICEs as Logic/ROM: 75 out of 320 (23%) + Number of registers: 93 out of 877 (11%) + PFU registers: 64 out of 640 (10%) + PIO registers: 29 out of 237 (12%) + Number of SLICEs: 81 out of 320 (25%) + SLICEs as Logic/ROM: 81 out of 320 (25%) SLICEs as RAM: 0 out of 240 (0%) SLICEs as Carry: 10 out of 320 (3%) - Number of LUT4s: 143 out of 640 (22%) - Number used as logic LUTs: 123 + Number of LUT4s: 159 out of 640 (25%) + Number used as logic LUTs: 139 Number used as distributed RAM: 0 Number used as ripple logic: 20 Number used as shift registers: 0 @@ -60,51 +60,39 @@ Mapped on: 08/15/23 05:03:24 2. Number of logic LUT4s does not include count of distributed RAM and ripple logic. Number of clocks: 4 - Net RCLK_c: 40 loads, 40 rising, 0 falling (Driver: PIO RCLK ) - Net PHI2_c: 13 loads, 5 rising, 8 falling (Driver: PIO PHI2 ) - Net nCCAS_c: 4 loads, 0 rising, 4 falling (Driver: PIO nCCAS ) - Net nCRAS_c: 7 loads, 0 rising, 7 falling (Driver: PIO nCRAS ) - Number of Clock Enables: 14 - Net RCLK_c_enable_6: 4 loads, 4 LSLICEs - Net RCLK_c_enable_5: 2 loads, 2 LSLICEs + Net PHI2_c: 18 loads, 8 rising, 10 falling (Driver: PIO PHI2 ) + Net RCLK_c: 39 loads, 39 rising, 0 falling (Driver: PIO RCLK ) + Net nCRAS_c: 9 loads, 0 rising, 9 falling (Driver: PIO nCRAS ) + Net nCCAS_c: 8 loads, 0 rising, 8 falling (Driver: PIO nCCAS ) + Number of Clock Enables: 6 + Net XOR8MEG18: 3 loads, 3 LSLICEs + Net i2_i: 1 loads, 0 LSLICEs - Net PHI2_N_120_enable_1: 1 loads, 1 LSLICEs - Net PHI2_N_120_enable_2: 1 loads, 1 LSLICEs - Net PHI2_N_120_enable_6: 1 loads, 1 LSLICEs - Net RCLK_c_enable_27: 8 loads, 8 LSLICEs - Net RCLK_c_enable_10: 3 loads, 3 LSLICEs - Net PHI2_N_120_enable_7: 1 loads, 1 LSLICEs - Net RCLK_c_enable_16: 1 loads, 1 LSLICEs - Net RCLK_c_enable_28: 1 loads, 1 LSLICEs - Net RCLK_c_enable_15: 1 loads, 1 LSLICEs - Net PHI2_N_120_enable_3: 1 loads, 1 LSLICEs - Net Ready_N_292: 1 loads, 1 LSLICEs - Net PHI2_N_120_enable_8: 2 loads, 2 LSLICEs - Number of LSRs: 7 - Net RASr2: 1 loads, 1 LSLICEs - Net nRowColSel_N_35: 1 loads, 1 LSLICEs - Net Ready: 7 loads, 7 LSLICEs - Net nRWE_N_177: 1 loads, 1 LSLICEs - Net C1Submitted_N_237: 2 loads, 2 LSLICEs - Net n2366: 2 loads, 2 LSLICEs - Net nRowColSel_N_34: 1 loads, 1 LSLICEs + Net N_26: 1 loads, 1 LSLICEs + Net N_28: 1 loads, 1 LSLICEs + Net N_188_i: 2 loads, 2 LSLICEs + Net CmdUFMCLK_1_sqmuxa: 3 loads, 0 LSLICEs + Number of LSRs: 3 + Net RA10s_i: 1 loads, 0 LSLICEs + Net nRRAS_0_sqmuxa: 1 loads, 1 LSLICEs + Net RASr2: 2 loads, 2 LSLICEs Number of nets driven by tri-state buffers: 0 Top 10 highest fanout non-clock nets: - Net Ready: 18 loads - Net InitReady: 15 loads - Net RASr2: 15 loads - Net nRowColSel_N_35: 13 loads + Net InitReady: 17 loads + Net Ready: 15 loads + Net Ready_fast: 14 loads + Net Din_c[5]: 12 loads Net nRowColSel: 12 loads - Net Din_c_4: 10 loads - Net MAin_c_1: 10 loads - Net Din_c_5: 9 loads - Net MAin_c_0: 9 loads - Net Din_c_0: 8 loads + Net S[1]: 12 loads + Net RASr2: 10 loads + Net CO0: 9 loads + Net Din_c[3]: 9 loads + Net Din_c[4]: 9 loads - Number of warnings: 0 + Number of warnings: 6 Number of errors: 0 @@ -113,7 +101,18 @@ Mapped on: 08/15/23 05:03:24 Design Errors/Warnings - No errors or warnings present. +WARNING - map: Output register UFMSDI$r0 is replicated for UFMSDI_pad. +WARNING - map: Output register nUFMCS$r1 is replicated for nUFMCS_pad. +WARNING - map: Output register RCKE$r2 is replicated for RCKE_pad. +WARNING - map: Register Bank_0io[0] cannot be packed into IOC as intended by its + primitive type or preference due to command option or architecture + limitation. The register was packed into SLICE instead. +WARNING - map: Register Bank_0io[1] cannot be packed into IOC as intended by its + primitive type or preference due to command option or architecture + limitation. The register was packed into SLICE instead. +WARNING - map: Register Bank_0io[2] cannot be packed into IOC as intended by its + primitive type or preference due to command option or architecture + limitation. The register was packed into SLICE instead. @@ -123,167 +122,161 @@ Mapped on: 08/15/23 05:03:24 | IO Name | Direction | Levelmode | IO | | | | IO_TYPE | Register | +---------------------+-----------+-----------+------------+ -| RD[7] | BIDIR | LVCMOS25 | | +| RD[0] | BIDIR | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| RD[6] | BIDIR | LVCMOS25 | | +| Dout[0] | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ +| PHI2 | INPUT | LVCMOS33 | IN | -| RD[5] | BIDIR | LVCMOS25 | | +---------------------+-----------+-----------+------------+ -| RD[4] | BIDIR | LVCMOS25 | | +| UFMSDO | INPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| RD[3] | BIDIR | LVCMOS25 | | +| UFMSDI | OUTPUT | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| RD[2] | BIDIR | LVCMOS25 | | +| UFMCLK | OUTPUT | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| RD[1] | BIDIR | LVCMOS25 | | +| nUFMCS | OUTPUT | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| RD[0] | BIDIR | LVCMOS25 | | +| RDQML | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| Dout[7] | OUTPUT | LVCMOS25 | | +| RDQMH | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| Dout[6] | OUTPUT | LVCMOS25 | | +| nRCAS | OUTPUT | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| Dout[5] | OUTPUT | LVCMOS25 | | +| nRRAS | OUTPUT | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| Dout[4] | OUTPUT | LVCMOS25 | | +| nRWE | OUTPUT | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| Dout[3] | OUTPUT | LVCMOS25 | | +| RCKE | OUTPUT | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| Dout[2] | OUTPUT | LVCMOS25 | | +| RCLK | INPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| Dout[1] | OUTPUT | LVCMOS25 | | +| nRCS | OUTPUT | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| Dout[0] | OUTPUT | LVCMOS25 | | +| RD[7] | BIDIR | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| LED | OUTPUT | LVCMOS25 | | +| RD[6] | BIDIR | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| RBA[1] | OUTPUT | LVCMOS25 | | +| RD[5] | BIDIR | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| RBA[0] | OUTPUT | LVCMOS25 | | +| RD[4] | BIDIR | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| RA[11] | OUTPUT | LVCMOS25 | | +| RD[3] | BIDIR | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| RA[10] | OUTPUT | LVCMOS25 | | +| RD[2] | BIDIR | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| RA[9] | OUTPUT | LVCMOS25 | | +| RD[1] | BIDIR | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| RA[8] | OUTPUT | LVCMOS25 | | +| RA[11] | OUTPUT | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| RA[7] | OUTPUT | LVCMOS25 | | +| RA[10] | OUTPUT | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| RA[6] | OUTPUT | LVCMOS25 | | +| RA[9] | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| RA[5] | OUTPUT | LVCMOS25 | | +| RA[8] | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| RA[4] | OUTPUT | LVCMOS25 | | +| RA[7] | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| RA[3] | OUTPUT | LVCMOS25 | | +| RA[6] | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| RA[2] | OUTPUT | LVCMOS25 | | +| RA[5] | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| RA[1] | OUTPUT | LVCMOS25 | | +| RA[4] | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ +| RA[3] | OUTPUT | LVCMOS33 | | -| RA[0] | OUTPUT | LVCMOS25 | | +---------------------+-----------+-----------+------------+ -| nRCS | OUTPUT | LVCMOS25 | | +| RA[2] | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| RCKE | OUTPUT | LVCMOS25 | | +| RA[1] | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| nRWE | OUTPUT | LVCMOS25 | | +| RA[0] | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| nRRAS | OUTPUT | LVCMOS25 | | +| RBA[1] | OUTPUT | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| nRCAS | OUTPUT | LVCMOS25 | | +| RBA[0] | OUTPUT | LVCMOS33 | OUT | +---------------------+-----------+-----------+------------+ -| RDQMH | OUTPUT | LVCMOS25 | | +| LED | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| RDQML | OUTPUT | LVCMOS25 | | +| nFWE | INPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| nUFMCS | OUTPUT | LVCMOS25 | | +| nCRAS | INPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| UFMCLK | OUTPUT | LVCMOS25 | | +| nCCAS | INPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| UFMSDI | OUTPUT | LVCMOS25 | | +| Dout[7] | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| PHI2 | INPUT | LVCMOS25 | | +| Dout[6] | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| MAin[9] | INPUT | LVCMOS25 | | +| Dout[5] | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| MAin[8] | INPUT | LVCMOS25 | | +| Dout[4] | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| MAin[7] | INPUT | LVCMOS25 | | +| Dout[3] | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| MAin[6] | INPUT | LVCMOS25 | | +| Dout[2] | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| MAin[5] | INPUT | LVCMOS25 | | +| Dout[1] | OUTPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| MAin[4] | INPUT | LVCMOS25 | | +| Din[7] | INPUT | LVCMOS33 | IN | +---------------------+-----------+-----------+------------+ -| MAin[3] | INPUT | LVCMOS25 | | +| Din[6] | INPUT | LVCMOS33 | IN | +---------------------+-----------+-----------+------------+ -| MAin[2] | INPUT | LVCMOS25 | | +| Din[5] | INPUT | LVCMOS33 | IN | +---------------------+-----------+-----------+------------+ -| MAin[1] | INPUT | LVCMOS25 | | +| Din[4] | INPUT | LVCMOS33 | IN | +---------------------+-----------+-----------+------------+ -| MAin[0] | INPUT | LVCMOS25 | | +| Din[3] | INPUT | LVCMOS33 | IN | +---------------------+-----------+-----------+------------+ -| CROW[1] | INPUT | LVCMOS25 | | +| Din[2] | INPUT | LVCMOS33 | IN | +---------------------+-----------+-----------+------------+ -| CROW[0] | INPUT | LVCMOS25 | | +| Din[1] | INPUT | LVCMOS33 | IN | +---------------------+-----------+-----------+------------+ -| Din[7] | INPUT | LVCMOS25 | | +| Din[0] | INPUT | LVCMOS33 | IN | +---------------------+-----------+-----------+------------+ -| Din[6] | INPUT | LVCMOS25 | | +| CROW[1] | INPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| Din[5] | INPUT | LVCMOS25 | | +| CROW[0] | INPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| Din[4] | INPUT | LVCMOS25 | | +| MAin[9] | INPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ +| MAin[8] | INPUT | LVCMOS33 | | -| Din[3] | INPUT | LVCMOS25 | | +---------------------+-----------+-----------+------------+ -| Din[2] | INPUT | LVCMOS25 | | +| MAin[7] | INPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| Din[1] | INPUT | LVCMOS25 | | +| MAin[6] | INPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| Din[0] | INPUT | LVCMOS25 | | +| MAin[5] | INPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| nCCAS | INPUT | LVCMOS25 | | +| MAin[4] | INPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| nCRAS | INPUT | LVCMOS25 | | +| MAin[3] | INPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| nFWE | INPUT | LVCMOS25 | | +| MAin[2] | INPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| RCLK | INPUT | LVCMOS25 | | +| MAin[1] | INPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ -| UFMSDO | INPUT | LVCMOS25 | | +| MAin[0] | INPUT | LVCMOS33 | | +---------------------+-----------+-----------+------------+ Removed logic -Block i2 undriven or does not drive anything - clipped. Block GSR_INST undriven or does not drive anything - clipped. -Signal PHI2_N_120 was merged into signal PHI2_c -Signal n1407 was merged into signal nRowColSel_N_34 -Signal n2380 was merged into signal Ready -Signal n1408 was merged into signal nRowColSel_N_35 -Signal nRWE_N_176 was merged into signal nRWE_N_177 -Signal GND_net undriven or does not drive anything - clipped. -Signal VCC_net undriven or does not drive anything - clipped. -Signal FS_610_add_4_19/S1 undriven or does not drive anything - clipped. -Signal FS_610_add_4_19/CO undriven or does not drive anything - clipped. -Signal FS_610_add_4_1/S0 undriven or does not drive anything - clipped. -Signal FS_610_add_4_1/CI undriven or does not drive anything - clipped. -Block i2046 was optimized away. -Block i1118_1_lut was optimized away. -Block i637_1_lut_rep_31 was optimized away. -Block i1119_1_lut was optimized away. -Block nRWE_I_50_1_lut was optimized away. -Block i1 was optimized away. +Signal nCRAS_c_i was merged into signal nCRAS_c +Signal RASr2_i was merged into signal RASr2 +Signal XOR8MEG.CN was merged into signal PHI2_c +Signal GND undriven or does not drive anything - clipped. +Signal FS_s_0_S1[17] undriven or does not drive anything - clipped. +Signal FS_s_0_COUT[17] undriven or does not drive anything - clipped. +Signal FS_cry_0_S0[0] undriven or does not drive anything - clipped. +Signal N_1 undriven or does not drive anything - clipped. +Block nCRAS_pad_RNIBPVB was optimized away. +Block RASr2_RNIAFR1 was optimized away. +Block XOR8MEG.CN was optimized away. +Block GND was optimized away. @@ -294,7 +287,7 @@ Block i1 was optimized away. Total CPU Time: 0 secs Total REAL Time: 0 secs - Peak Memory Usage: 35 MB + Peak Memory Usage: 36 MB @@ -304,6 +297,13 @@ Block i1 was optimized away. + + + + + + + Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. Copyright (c) 1995 AT&T Corp. All rights reserved. Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_multi_srs_gen.htm b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_multi_srs_gen.htm new file mode 100644 index 0000000..8f7f539 --- /dev/null +++ b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_multi_srs_gen.htm @@ -0,0 +1,9 @@ + + + syntmp/RAM2GS_LCMXO2_640HC_impl1_multi_srs_gen_srr.htm log file + + + + + + diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_ngd.asd b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_ngd.asd new file mode 100644 index 0000000..c265c78 --- /dev/null +++ b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_ngd.asd @@ -0,0 +1 @@ +[ActiveSupport NGD] diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_pad.html b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_pad.html index 635ff81..b7156b7 100644 --- a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_pad.html +++ b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_pad.html @@ -14,89 +14,89 @@ Performance Grade: 4 PACKAGE: TQFP100 Package Status: Final Version 1.39 -Tue Aug 15 05:03:32 2023 +Tue Aug 15 23:30:09 2023 Pinout by Port Name: -+-----------+----------+---------------+-------+-----------+-----------+----------------------------------------------------------+ -| Port Name | Pin/Bank | Buffer Type | Site | PG Enable | BC Enable | Properties | -+-----------+----------+---------------+-------+-----------+-----------+----------------------------------------------------------+ -| CROW[0] | 10/3 | LVCMOS25_IN | PL3D | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| CROW[1] | 16/3 | LVCMOS25_IN | PL6A | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| Din[0] | 3/3 | LVCMOS25_IN | PL2C | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| Din[1] | 96/0 | LVCMOS25_IN | PT6D | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| Din[2] | 88/0 | LVCMOS25_IN | PT9A | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| Din[3] | 97/0 | LVCMOS25_IN | PT6C | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| Din[4] | 99/0 | LVCMOS25_IN | PT6A | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| Din[5] | 98/0 | LVCMOS25_IN | PT6B | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| Din[6] | 2/3 | LVCMOS25_IN | PL2B | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| Din[7] | 1/3 | LVCMOS25_IN | PL2A | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| Dout[0] | 76/0 | LVCMOS25_OUT | PT11D | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| Dout[1] | 86/0 | LVCMOS25_OUT | PT9C | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| Dout[2] | 87/0 | LVCMOS25_OUT | PT9B | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| Dout[3] | 85/0 | LVCMOS25_OUT | PT9D | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| Dout[4] | 83/0 | LVCMOS25_OUT | PT10B | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| Dout[5] | 84/0 | LVCMOS25_OUT | PT10A | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| Dout[6] | 78/0 | LVCMOS25_OUT | PT11A | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| Dout[7] | 82/0 | LVCMOS25_OUT | PT10C | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| LED | 34/2 | LVCMOS25_OUT | PB6C | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| MAin[0] | 14/3 | LVCMOS25_IN | PL5C | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| MAin[1] | 12/3 | LVCMOS25_IN | PL5A | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| MAin[2] | 13/3 | LVCMOS25_IN | PL5B | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| MAin[3] | 21/3 | LVCMOS25_IN | PL7B | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| MAin[4] | 20/3 | LVCMOS25_IN | PL7A | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| MAin[5] | 19/3 | LVCMOS25_IN | PL6D | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| MAin[6] | 24/3 | LVCMOS25_IN | PL7C | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| MAin[7] | 18/3 | LVCMOS25_IN | PL6C | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| MAin[8] | 25/3 | LVCMOS25_IN | PL7D | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| MAin[9] | 32/2 | LVCMOS25_IN | PB6B | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| PHI2 | 8/3 | LVCMOS25_IN | PL3B | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| RA[0] | 66/1 | LVCMOS25_OUT | PR3D | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RA[10] | 64/1 | LVCMOS25_OUT | PR5B | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RA[11] | 59/1 | LVCMOS25_OUT | PR6B | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RA[1] | 67/1 | LVCMOS25_OUT | PR3C | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RA[2] | 69/1 | LVCMOS25_OUT | PR3A | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RA[3] | 71/1 | LVCMOS25_OUT | PR2C | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RA[4] | 74/1 | LVCMOS25_OUT | PR2B | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RA[5] | 70/1 | LVCMOS25_OUT | PR2D | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RA[6] | 68/1 | LVCMOS25_OUT | PR3B | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RA[7] | 75/1 | LVCMOS25_OUT | PR2A | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RA[8] | 65/1 | LVCMOS25_OUT | PR5A | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RA[9] | 63/1 | LVCMOS25_OUT | PR5C | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RBA[0] | 58/1 | LVCMOS25_OUT | PR6C | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RBA[1] | 60/1 | LVCMOS25_OUT | PR6A | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RCKE | 53/1 | LVCMOS25_OUT | PR7B | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RCLK | 62/1 | LVCMOS25_IN | PR5D | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| RDQMH | 51/1 | LVCMOS25_OUT | PR7D | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RDQML | 48/2 | LVCMOS25_OUT | PB14C | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| RD[0] | 36/2 | LVCMOS25_BIDI | PB10A | | | DRIVE:8mA PULL:DOWN CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW | -| RD[1] | 37/2 | LVCMOS25_BIDI | PB10B | | | DRIVE:8mA PULL:DOWN CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW | -| RD[2] | 38/2 | LVCMOS25_BIDI | PB10C | | | DRIVE:8mA PULL:DOWN CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW | -| RD[3] | 39/2 | LVCMOS25_BIDI | PB10D | | | DRIVE:8mA PULL:DOWN CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW | -| RD[4] | 40/2 | LVCMOS25_BIDI | PB12A | | | DRIVE:8mA PULL:DOWN CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW | -| RD[5] | 41/2 | LVCMOS25_BIDI | PB12B | | | DRIVE:8mA PULL:DOWN CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW | -| RD[6] | 42/2 | LVCMOS25_BIDI | PB12C | | | DRIVE:8mA PULL:DOWN CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW | -| RD[7] | 43/2 | LVCMOS25_BIDI | PB12D | | | DRIVE:8mA PULL:DOWN CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW | -| UFMCLK | 29/2 | LVCMOS25_OUT | PB4C | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| UFMSDI | 30/2 | LVCMOS25_OUT | PB4D | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| UFMSDO | 27/2 | LVCMOS25_IN | PB4A | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| nCCAS | 9/3 | LVCMOS25_IN | PL3C | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| nCRAS | 17/3 | LVCMOS25_IN | PL6B | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| nFWE | 28/2 | LVCMOS25_IN | PB4B | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | -| nRCAS | 52/1 | LVCMOS25_OUT | PR7C | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| nRCS | 57/1 | LVCMOS25_OUT | PR6D | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| nRRAS | 54/1 | LVCMOS25_OUT | PR7A | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| nRWE | 49/2 | LVCMOS25_OUT | PB14D | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -| nUFMCS | 77/0 | LVCMOS25_OUT | PT11C | | | DRIVE:8mA PULL:DOWN SLEW:SLOW | -+-----------+----------+---------------+-------+-----------+-----------+----------------------------------------------------------+ ++-----------+----------+---------------+-------+-----------+-----------+------------------------------------------------------------+ +| Port Name | Pin/Bank | Buffer Type | Site | PG Enable | BC Enable | Properties | ++-----------+----------+---------------+-------+-----------+-----------+------------------------------------------------------------+ +| CROW[0] | 10/3 | LVCMOS33_IN | PL3D | | | PULL:KEEPER CLAMP:ON HYSTERESIS:SMALL | +| CROW[1] | 16/3 | LVCMOS33_IN | PL6A | | | PULL:KEEPER CLAMP:ON HYSTERESIS:SMALL | +| Din[0] | 3/3 | LVCMOS33_IN | PL2C | | | PULL:KEEPER CLAMP:ON HYSTERESIS:SMALL | +| Din[1] | 96/0 | LVCMOS33_IN | PT6D | | | PULL:KEEPER CLAMP:ON HYSTERESIS:SMALL | +| Din[2] | 88/0 | LVCMOS33_IN | PT9A | | | PULL:KEEPER CLAMP:ON HYSTERESIS:SMALL | +| Din[3] | 97/0 | LVCMOS33_IN | PT6C | | | PULL:KEEPER CLAMP:ON HYSTERESIS:SMALL | +| Din[4] | 99/0 | LVCMOS33_IN | PT6A | | | PULL:KEEPER CLAMP:ON HYSTERESIS:SMALL | +| Din[5] | 98/0 | LVCMOS33_IN | PT6B | | | PULL:KEEPER CLAMP:ON HYSTERESIS:SMALL | +| Din[6] | 2/3 | LVCMOS33_IN | PL2B | | | PULL:KEEPER CLAMP:ON HYSTERESIS:SMALL | +| Din[7] | 1/3 | LVCMOS33_IN | PL2A | | | PULL:KEEPER CLAMP:ON HYSTERESIS:SMALL | +| Dout[0] | 76/0 | LVCMOS33_OUT | PT11D | | | DRIVE:4mA PULL:KEEPER SLEW:SLOW | +| Dout[1] | 86/0 | LVCMOS33_OUT | PT9C | | | DRIVE:4mA PULL:KEEPER SLEW:SLOW | +| Dout[2] | 87/0 | LVCMOS33_OUT | PT9B | | | DRIVE:4mA PULL:KEEPER SLEW:SLOW | +| Dout[3] | 85/0 | LVCMOS33_OUT | PT9D | | | DRIVE:4mA PULL:KEEPER SLEW:SLOW | +| Dout[4] | 83/0 | LVCMOS33_OUT | PT10B | | | DRIVE:4mA PULL:KEEPER SLEW:SLOW | +| Dout[5] | 84/0 | LVCMOS33_OUT | PT10A | | | DRIVE:4mA PULL:KEEPER SLEW:SLOW | +| Dout[6] | 78/0 | LVCMOS33_OUT | PT11A | | | DRIVE:4mA PULL:KEEPER SLEW:SLOW | +| Dout[7] | 82/0 | LVCMOS33_OUT | PT10C | | | DRIVE:4mA PULL:KEEPER SLEW:SLOW | +| LED | 34/2 | LVCMOS33_OUT | PB6C | | | DRIVE:24mA PULL:KEEPER SLEW:SLOW | +| MAin[0] | 14/3 | LVCMOS33_IN | PL5C | | | PULL:KEEPER CLAMP:ON HYSTERESIS:SMALL | +| MAin[1] | 12/3 | LVCMOS33_IN | PL5A | | | PULL:KEEPER CLAMP:ON HYSTERESIS:SMALL | +| MAin[2] | 13/3 | LVCMOS33_IN | PL5B | | | PULL:KEEPER CLAMP:ON HYSTERESIS:SMALL | +| MAin[3] | 21/3 | LVCMOS33_IN | PL7B | | | PULL:KEEPER CLAMP:ON HYSTERESIS:SMALL | +| MAin[4] | 20/3 | LVCMOS33_IN | PL7A | | | PULL:KEEPER CLAMP:ON HYSTERESIS:SMALL | +| MAin[5] | 19/3 | LVCMOS33_IN | PL6D | | | PULL:KEEPER CLAMP:ON HYSTERESIS:SMALL | +| MAin[6] | 24/3 | LVCMOS33_IN | PL7C | | | PULL:KEEPER CLAMP:ON HYSTERESIS:SMALL | +| MAin[7] | 18/3 | LVCMOS33_IN | PL6C | | | PULL:KEEPER CLAMP:ON HYSTERESIS:SMALL | +| MAin[8] | 25/3 | LVCMOS33_IN | PL7D | | | PULL:KEEPER CLAMP:ON HYSTERESIS:SMALL | +| MAin[9] | 32/2 | LVCMOS33_IN | PB6B | | | PULL:KEEPER CLAMP:ON HYSTERESIS:SMALL | +| PHI2 | 8/3 | LVCMOS33_IN | PL3B | | | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL | +| RA[0] | 66/1 | LVCMOS33_OUT | PR3D | | | DRIVE:4mA PULL:KEEPER SLEW:SLOW | +| RA[10] | 64/1 | LVCMOS33_OUT | PR5B | | | DRIVE:4mA PULL:KEEPER SLEW:SLOW | +| RA[11] | 59/1 | LVCMOS33_OUT | PR6B | | | DRIVE:4mA PULL:KEEPER SLEW:SLOW | +| RA[1] | 67/1 | LVCMOS33_OUT | PR3C | | | DRIVE:4mA PULL:KEEPER SLEW:SLOW | +| RA[2] | 69/1 | LVCMOS33_OUT | PR3A | | | DRIVE:4mA PULL:KEEPER SLEW:SLOW | +| RA[3] | 71/1 | LVCMOS33_OUT | PR2C | | | DRIVE:4mA PULL:KEEPER SLEW:SLOW | +| RA[4] | 74/1 | LVCMOS33_OUT | PR2B | | | DRIVE:4mA PULL:KEEPER SLEW:SLOW | +| RA[5] | 70/1 | LVCMOS33_OUT | PR2D | | | DRIVE:4mA PULL:KEEPER SLEW:SLOW | +| RA[6] | 68/1 | LVCMOS33_OUT | PR3B | | | DRIVE:4mA PULL:KEEPER SLEW:SLOW | +| RA[7] | 75/1 | LVCMOS33_OUT | PR2A | | | DRIVE:4mA PULL:KEEPER SLEW:SLOW | +| RA[8] | 65/1 | LVCMOS33_OUT | PR5A | | | DRIVE:4mA PULL:KEEPER SLEW:SLOW | +| RA[9] | 63/1 | LVCMOS33_OUT | PR5C | | | DRIVE:4mA PULL:KEEPER SLEW:SLOW | +| RBA[0] | 58/1 | LVCMOS33_OUT | PR6C | | | DRIVE:4mA PULL:KEEPER SLEW:SLOW | +| RBA[1] | 60/1 | LVCMOS33_OUT | PR6A | | | DRIVE:4mA PULL:KEEPER SLEW:SLOW | +| RCKE | 53/1 | LVCMOS33_OUT | PR7B | | | DRIVE:4mA PULL:KEEPER SLEW:SLOW | +| RCLK | 62/1 | LVCMOS33_IN | PR5D | | | PULL:KEEPER CLAMP:ON HYSTERESIS:SMALL | +| RDQMH | 51/1 | LVCMOS33_OUT | PR7D | | | DRIVE:4mA PULL:KEEPER SLEW:SLOW | +| RDQML | 48/2 | LVCMOS33_OUT | PB14C | | | DRIVE:4mA PULL:KEEPER SLEW:SLOW | +| RD[0] | 36/2 | LVCMOS33_BIDI | PB10A | | | DRIVE:4mA PULL:KEEPER CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW | +| RD[1] | 37/2 | LVCMOS33_BIDI | PB10B | | | DRIVE:4mA PULL:KEEPER CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW | +| RD[2] | 38/2 | LVCMOS33_BIDI | PB10C | | | DRIVE:4mA PULL:KEEPER CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW | +| RD[3] | 39/2 | LVCMOS33_BIDI | PB10D | | | DRIVE:4mA PULL:KEEPER CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW | +| RD[4] | 40/2 | LVCMOS33_BIDI | PB12A | | | DRIVE:4mA PULL:KEEPER CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW | +| RD[5] | 41/2 | LVCMOS33_BIDI | PB12B | | | DRIVE:4mA PULL:KEEPER CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW | +| RD[6] | 42/2 | LVCMOS33_BIDI | PB12C | | | DRIVE:4mA PULL:KEEPER CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW | +| RD[7] | 43/2 | LVCMOS33_BIDI | PB12D | | | DRIVE:4mA PULL:KEEPER CLAMP:ON HYSTERESIS:SMALL SLEW:SLOW | +| UFMCLK | 28/2 | LVCMOS33_OUT | PB4B | | | DRIVE:4mA PULL:KEEPER SLEW:SLOW | +| UFMSDI | 29/2 | LVCMOS33_OUT | PB4C | | | DRIVE:4mA PULL:KEEPER SLEW:SLOW | +| UFMSDO | 27/2 | LVCMOS33_IN | PB4A | | | PULL:KEEPER CLAMP:ON HYSTERESIS:SMALL | +| nCCAS | 9/3 | LVCMOS33_IN | PL3C | | | PULL:UP CLAMP:ON HYSTERESIS:SMALL | +| nCRAS | 17/3 | LVCMOS33_IN | PL6B | | | PULL:UP CLAMP:ON HYSTERESIS:SMALL | +| nFWE | 15/3 | LVCMOS33_IN | PL5D | | | PULL:UP CLAMP:ON HYSTERESIS:SMALL | +| nRCAS | 52/1 | LVCMOS33_OUT | PR7C | | | DRIVE:4mA PULL:KEEPER SLEW:SLOW | +| nRCS | 57/1 | LVCMOS33_OUT | PR6D | | | DRIVE:4mA PULL:KEEPER SLEW:SLOW | +| nRRAS | 54/1 | LVCMOS33_OUT | PR7A | | | DRIVE:4mA PULL:KEEPER SLEW:SLOW | +| nRWE | 49/2 | LVCMOS33_OUT | PB14D | | | DRIVE:4mA PULL:KEEPER SLEW:SLOW | +| nUFMCS | 30/2 | LVCMOS33_OUT | PB4D | | | DRIVE:4mA PULL:KEEPER SLEW:SLOW | ++-----------+----------+---------------+-------+-----------+-----------+------------------------------------------------------------+ Vccio by Bank: +------+-------+ | Bank | Vccio | +------+-------+ -| 0 | 2.5V | -| 1 | 2.5V | -| 2 | 2.5V | -| 3 | 2.5V | +| 0 | 3.3V | +| 1 | 3.3V | +| 2 | 3.3V | +| 3 | 3.3V | +------+-------+ @@ -110,85 +110,85 @@ Vccio by Bank: +----------+-----------------------+------------+---------------+-------+---------------+-----------+-----------+ | Pin/Bank | Pin Info | Preference | Buffer Type | Site | Dual Function | PG Enable | BC Enable | +----------+-----------------------+------------+---------------+-------+---------------+-----------+-----------+ -| 1/3 | Din[7] | LOCATED | LVCMOS25_IN | PL2A | | | | -| 2/3 | Din[6] | LOCATED | LVCMOS25_IN | PL2B | | | | -| 3/3 | Din[0] | LOCATED | LVCMOS25_IN | PL2C | PCLKT3_2 | | | +| 1/3 | Din[7] | LOCATED | LVCMOS33_IN | PL2A | | | | +| 2/3 | Din[6] | LOCATED | LVCMOS33_IN | PL2B | | | | +| 3/3 | Din[0] | LOCATED | LVCMOS33_IN | PL2C | PCLKT3_2 | | | | 4/3 | unused, PULL:DOWN | | | PL2D | PCLKC3_2 | | | | 7/3 | unused, PULL:DOWN | | | PL3A | | | | -| 8/3 | PHI2 | LOCATED | LVCMOS25_IN | PL3B | | | | -| 9/3 | nCCAS | LOCATED | LVCMOS25_IN | PL3C | | | | -| 10/3 | CROW[0] | LOCATED | LVCMOS25_IN | PL3D | | | | -| 12/3 | MAin[1] | LOCATED | LVCMOS25_IN | PL5A | PCLKT3_1 | | | -| 13/3 | MAin[2] | LOCATED | LVCMOS25_IN | PL5B | PCLKC3_1 | | | -| 14/3 | MAin[0] | LOCATED | LVCMOS25_IN | PL5C | | | | -| 15/3 | unused, PULL:DOWN | | | PL5D | | | | -| 16/3 | CROW[1] | LOCATED | LVCMOS25_IN | PL6A | | | | -| 17/3 | nCRAS | LOCATED | LVCMOS25_IN | PL6B | | | | -| 18/3 | MAin[7] | LOCATED | LVCMOS25_IN | PL6C | | | | -| 19/3 | MAin[5] | LOCATED | LVCMOS25_IN | PL6D | | | | -| 20/3 | MAin[4] | LOCATED | LVCMOS25_IN | PL7A | PCLKT3_0 | | | -| 21/3 | MAin[3] | LOCATED | LVCMOS25_IN | PL7B | PCLKC3_0 | | | -| 24/3 | MAin[6] | LOCATED | LVCMOS25_IN | PL7C | | | | -| 25/3 | MAin[8] | LOCATED | LVCMOS25_IN | PL7D | | | | -| 27/2 | UFMSDO | LOCATED | LVCMOS25_IN | PB4A | CSSPIN | | | -| 28/2 | nFWE | LOCATED | LVCMOS25_IN | PB4B | | | | -| 29/2 | UFMCLK | LOCATED | LVCMOS25_OUT | PB4C | | | | -| 30/2 | UFMSDI | LOCATED | LVCMOS25_OUT | PB4D | | | | +| 8/3 | PHI2 | LOCATED | LVCMOS33_IN | PL3B | | | | +| 9/3 | nCCAS | LOCATED | LVCMOS33_IN | PL3C | | | | +| 10/3 | CROW[0] | LOCATED | LVCMOS33_IN | PL3D | | | | +| 12/3 | MAin[1] | LOCATED | LVCMOS33_IN | PL5A | PCLKT3_1 | | | +| 13/3 | MAin[2] | LOCATED | LVCMOS33_IN | PL5B | PCLKC3_1 | | | +| 14/3 | MAin[0] | LOCATED | LVCMOS33_IN | PL5C | | | | +| 15/3 | nFWE | LOCATED | LVCMOS33_IN | PL5D | | | | +| 16/3 | CROW[1] | LOCATED | LVCMOS33_IN | PL6A | | | | +| 17/3 | nCRAS | LOCATED | LVCMOS33_IN | PL6B | | | | +| 18/3 | MAin[7] | LOCATED | LVCMOS33_IN | PL6C | | | | +| 19/3 | MAin[5] | LOCATED | LVCMOS33_IN | PL6D | | | | +| 20/3 | MAin[4] | LOCATED | LVCMOS33_IN | PL7A | PCLKT3_0 | | | +| 21/3 | MAin[3] | LOCATED | LVCMOS33_IN | PL7B | PCLKC3_0 | | | +| 24/3 | MAin[6] | LOCATED | LVCMOS33_IN | PL7C | | | | +| 25/3 | MAin[8] | LOCATED | LVCMOS33_IN | PL7D | | | | +| 27/2 | UFMSDO | LOCATED | LVCMOS33_IN | PB4A | CSSPIN | | | +| 28/2 | UFMCLK | LOCATED | LVCMOS33_OUT | PB4B | | | | +| 29/2 | UFMSDI | LOCATED | LVCMOS33_OUT | PB4C | | | | +| 30/2 | nUFMCS | LOCATED | LVCMOS33_OUT | PB4D | | | | | 31/2 | unused, PULL:DOWN | | | PB6A | MCLK/CCLK | | | -| 32/2 | MAin[9] | LOCATED | LVCMOS25_IN | PB6B | SO/SPISO | | | -| 34/2 | LED | LOCATED | LVCMOS25_OUT | PB6C | PCLKT2_0 | | | +| 32/2 | MAin[9] | LOCATED | LVCMOS33_IN | PB6B | SO/SPISO | | | +| 34/2 | LED | LOCATED | LVCMOS33_OUT | PB6C | PCLKT2_0 | | | | 35/2 | unused, PULL:DOWN | | | PB6D | PCLKC2_0 | | | -| 36/2 | RD[0] | LOCATED | LVCMOS25_BIDI | PB10A | | | | -| 37/2 | RD[1] | LOCATED | LVCMOS25_BIDI | PB10B | | | | -| 38/2 | RD[2] | LOCATED | LVCMOS25_BIDI | PB10C | PCLKT2_1 | | | -| 39/2 | RD[3] | LOCATED | LVCMOS25_BIDI | PB10D | PCLKC2_1 | | | -| 40/2 | RD[4] | LOCATED | LVCMOS25_BIDI | PB12A | | | | -| 41/2 | RD[5] | LOCATED | LVCMOS25_BIDI | PB12B | | | | -| 42/2 | RD[6] | LOCATED | LVCMOS25_BIDI | PB12C | | | | -| 43/2 | RD[7] | LOCATED | LVCMOS25_BIDI | PB12D | | | | +| 36/2 | RD[0] | LOCATED | LVCMOS33_BIDI | PB10A | | | | +| 37/2 | RD[1] | LOCATED | LVCMOS33_BIDI | PB10B | | | | +| 38/2 | RD[2] | LOCATED | LVCMOS33_BIDI | PB10C | PCLKT2_1 | | | +| 39/2 | RD[3] | LOCATED | LVCMOS33_BIDI | PB10D | PCLKC2_1 | | | +| 40/2 | RD[4] | LOCATED | LVCMOS33_BIDI | PB12A | | | | +| 41/2 | RD[5] | LOCATED | LVCMOS33_BIDI | PB12B | | | | +| 42/2 | RD[6] | LOCATED | LVCMOS33_BIDI | PB12C | | | | +| 43/2 | RD[7] | LOCATED | LVCMOS33_BIDI | PB12D | | | | | 45/2 | unused, PULL:DOWN | | | PB14A | | | | | 47/2 | unused, PULL:DOWN | | | PB14B | | | | -| 48/2 | RDQML | LOCATED | LVCMOS25_OUT | PB14C | SN | | | -| 49/2 | nRWE | LOCATED | LVCMOS25_OUT | PB14D | SI/SISPI | | | -| 51/1 | RDQMH | LOCATED | LVCMOS25_OUT | PR7D | | | | -| 52/1 | nRCAS | LOCATED | LVCMOS25_OUT | PR7C | | | | -| 53/1 | RCKE | LOCATED | LVCMOS25_OUT | PR7B | | | | -| 54/1 | nRRAS | LOCATED | LVCMOS25_OUT | PR7A | | | | -| 57/1 | nRCS | LOCATED | LVCMOS25_OUT | PR6D | | | | -| 58/1 | RBA[0] | LOCATED | LVCMOS25_OUT | PR6C | | | | -| 59/1 | RA[11] | LOCATED | LVCMOS25_OUT | PR6B | | | | -| 60/1 | RBA[1] | LOCATED | LVCMOS25_OUT | PR6A | | | | -| 62/1 | RCLK | LOCATED | LVCMOS25_IN | PR5D | PCLKC1_0 | | | -| 63/1 | RA[9] | LOCATED | LVCMOS25_OUT | PR5C | PCLKT1_0 | | | -| 64/1 | RA[10] | LOCATED | LVCMOS25_OUT | PR5B | | | | -| 65/1 | RA[8] | LOCATED | LVCMOS25_OUT | PR5A | | | | -| 66/1 | RA[0] | LOCATED | LVCMOS25_OUT | PR3D | | | | -| 67/1 | RA[1] | LOCATED | LVCMOS25_OUT | PR3C | | | | -| 68/1 | RA[6] | LOCATED | LVCMOS25_OUT | PR3B | | | | -| 69/1 | RA[2] | LOCATED | LVCMOS25_OUT | PR3A | | | | -| 70/1 | RA[5] | LOCATED | LVCMOS25_OUT | PR2D | | | | -| 71/1 | RA[3] | LOCATED | LVCMOS25_OUT | PR2C | | | | -| 74/1 | RA[4] | LOCATED | LVCMOS25_OUT | PR2B | | | | -| 75/1 | RA[7] | LOCATED | LVCMOS25_OUT | PR2A | | | | -| 76/0 | Dout[0] | LOCATED | LVCMOS25_OUT | PT11D | DONE | | | -| 77/0 | nUFMCS | | LVCMOS25_OUT | PT11C | INITN | | | -| 78/0 | Dout[6] | LOCATED | LVCMOS25_OUT | PT11A | | | | +| 48/2 | RDQML | LOCATED | LVCMOS33_OUT | PB14C | SN | | | +| 49/2 | nRWE | LOCATED | LVCMOS33_OUT | PB14D | SI/SISPI | | | +| 51/1 | RDQMH | LOCATED | LVCMOS33_OUT | PR7D | | | | +| 52/1 | nRCAS | LOCATED | LVCMOS33_OUT | PR7C | | | | +| 53/1 | RCKE | LOCATED | LVCMOS33_OUT | PR7B | | | | +| 54/1 | nRRAS | LOCATED | LVCMOS33_OUT | PR7A | | | | +| 57/1 | nRCS | LOCATED | LVCMOS33_OUT | PR6D | | | | +| 58/1 | RBA[0] | LOCATED | LVCMOS33_OUT | PR6C | | | | +| 59/1 | RA[11] | LOCATED | LVCMOS33_OUT | PR6B | | | | +| 60/1 | RBA[1] | LOCATED | LVCMOS33_OUT | PR6A | | | | +| 62/1 | RCLK | LOCATED | LVCMOS33_IN | PR5D | PCLKC1_0 | | | +| 63/1 | RA[9] | LOCATED | LVCMOS33_OUT | PR5C | PCLKT1_0 | | | +| 64/1 | RA[10] | LOCATED | LVCMOS33_OUT | PR5B | | | | +| 65/1 | RA[8] | LOCATED | LVCMOS33_OUT | PR5A | | | | +| 66/1 | RA[0] | LOCATED | LVCMOS33_OUT | PR3D | | | | +| 67/1 | RA[1] | LOCATED | LVCMOS33_OUT | PR3C | | | | +| 68/1 | RA[6] | LOCATED | LVCMOS33_OUT | PR3B | | | | +| 69/1 | RA[2] | LOCATED | LVCMOS33_OUT | PR3A | | | | +| 70/1 | RA[5] | LOCATED | LVCMOS33_OUT | PR2D | | | | +| 71/1 | RA[3] | LOCATED | LVCMOS33_OUT | PR2C | | | | +| 74/1 | RA[4] | LOCATED | LVCMOS33_OUT | PR2B | | | | +| 75/1 | RA[7] | LOCATED | LVCMOS33_OUT | PR2A | | | | +| 76/0 | Dout[0] | LOCATED | LVCMOS33_OUT | PT11D | DONE | | | +| 77/0 | unused, PULL:DOWN | | | PT11C | INITN | | | +| 78/0 | Dout[6] | LOCATED | LVCMOS33_OUT | PT11A | | | | | 81/0 | unused, PULL:DOWN | | | PT10D | PROGRAMN | | | -| 82/0 | Dout[7] | LOCATED | LVCMOS25_OUT | PT10C | JTAGENB | | | -| 83/0 | Dout[4] | LOCATED | LVCMOS25_OUT | PT10B | | | | -| 84/0 | Dout[5] | LOCATED | LVCMOS25_OUT | PT10A | | | | -| 85/0 | Dout[3] | LOCATED | LVCMOS25_OUT | PT9D | SDA/PCLKC0_0 | | | -| 86/0 | Dout[1] | LOCATED | LVCMOS25_OUT | PT9C | SCL/PCLKT0_0 | | | -| 87/0 | Dout[2] | LOCATED | LVCMOS25_OUT | PT9B | PCLKC0_1 | | | -| 88/0 | Din[2] | LOCATED | LVCMOS25_IN | PT9A | PCLKT0_1 | | | +| 82/0 | Dout[7] | LOCATED | LVCMOS33_OUT | PT10C | JTAGENB | | | +| 83/0 | Dout[4] | LOCATED | LVCMOS33_OUT | PT10B | | | | +| 84/0 | Dout[5] | LOCATED | LVCMOS33_OUT | PT10A | | | | +| 85/0 | Dout[3] | LOCATED | LVCMOS33_OUT | PT9D | SDA/PCLKC0_0 | | | +| 86/0 | Dout[1] | LOCATED | LVCMOS33_OUT | PT9C | SCL/PCLKT0_0 | | | +| 87/0 | Dout[2] | LOCATED | LVCMOS33_OUT | PT9B | PCLKC0_1 | | | +| 88/0 | Din[2] | LOCATED | LVCMOS33_IN | PT9A | PCLKT0_1 | | | | 90/0 | Reserved: sysCONFIG | | | PT7D | TMS | | | | 91/0 | Reserved: sysCONFIG | | | PT7C | TCK | | | | 94/0 | Reserved: sysCONFIG | | | PT7B | TDI | | | | 95/0 | Reserved: sysCONFIG | | | PT7A | TDO | | | -| 96/0 | Din[1] | LOCATED | LVCMOS25_IN | PT6D | | | | -| 97/0 | Din[3] | LOCATED | LVCMOS25_IN | PT6C | | | | -| 98/0 | Din[5] | LOCATED | LVCMOS25_IN | PT6B | | | | -| 99/0 | Din[4] | LOCATED | LVCMOS25_IN | PT6A | | | | +| 96/0 | Din[1] | LOCATED | LVCMOS33_IN | PT6D | | | | +| 97/0 | Din[3] | LOCATED | LVCMOS33_IN | PT6C | | | | +| 98/0 | Din[5] | LOCATED | LVCMOS33_IN | PT6B | | | | +| 99/0 | Din[4] | LOCATED | LVCMOS33_IN | PT6A | | | | | PT11B/0 | unused, PULL:DOWN | | | PT11B | | | | +----------+-----------------------+------------+---------------+-------+---------------+-----------+-----------+ @@ -264,17 +264,17 @@ LOCATE COMP "RD[4]" SITE "40"; LOCATE COMP "RD[5]" SITE "41"; LOCATE COMP "RD[6]" SITE "42"; LOCATE COMP "RD[7]" SITE "43"; -LOCATE COMP "UFMCLK" SITE "29"; -LOCATE COMP "UFMSDI" SITE "30"; +LOCATE COMP "UFMCLK" SITE "28"; +LOCATE COMP "UFMSDI" SITE "29"; LOCATE COMP "UFMSDO" SITE "27"; LOCATE COMP "nCCAS" SITE "9"; LOCATE COMP "nCRAS" SITE "17"; -LOCATE COMP "nFWE" SITE "28"; +LOCATE COMP "nFWE" SITE "15"; LOCATE COMP "nRCAS" SITE "52"; LOCATE COMP "nRCS" SITE "57"; LOCATE COMP "nRRAS" SITE "54"; LOCATE COMP "nRWE" SITE "49"; -LOCATE COMP "nUFMCS" SITE "77"; +LOCATE COMP "nUFMCS" SITE "30"; @@ -286,7 +286,7 @@ Copyright (c) 1995 AT&T Corp. All rights reserved. Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. Copyright (c) 2001 Agere Systems All rights reserved. Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. -Tue Aug 15 05:03:34 2023 +Tue Aug 15 23:30:11 2023 diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_par.html b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_par.html index f7c9130..f197974 100644 --- a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_par.html +++ b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_par.html @@ -12,7 +12,7 @@ Copyright (c) 1995 AT&T Corp. All rights reserved. Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. Copyright (c) 2001 Agere Systems All rights reserved. Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. -Tue Aug 15 05:03:28 2023 +Tue Aug 15 23:30:05 2023 C:/lscc/diamond/3.12/ispfpga\bin\nt64\par -f RAM2GS_LCMXO2_640HC_impl1.p2t RAM2GS_LCMXO2_640HC_impl1_map.ncd RAM2GS_LCMXO2_640HC_impl1.dir @@ -26,17 +26,17 @@ Preference file: RAM2GS_LCMXO2_640HC_impl1.prf. Level/ Number Worst Timing Worst Timing Run NCD Cost [ncd] Unrouted Slack Score Slack(hold) Score(hold) Time Status ---------- -------- ----- ------ ----------- ----------- ---- ------ -5_1 * 0 -5.122 452301 0.304 0 07 Completed +5_1 * 0 5.827 0 0.304 0 06 Completed * : Design saved. -Total (real) run time for 1-seed: 7 secs +Total (real) run time for 1-seed: 6 secs par done! Note: user must run 'Trace' for timing closure signoff. Lattice Place and Route Report for Design "RAM2GS_LCMXO2_640HC_impl1_map.ncd" -Tue Aug 15 05:03:28 2023 +Tue Aug 15 23:30:05 2023 Best Par Run @@ -65,43 +65,44 @@ Ignore Preference Error(s): True PIO (prelim) 67+4(JTAG)/80 89% used 67+4(JTAG)/79 90% bonded + IOLOGIC 29/80 36% used - SLICE 75/320 23% used + SLICE 81/320 25% used -Number of Signals: 285 -Number of Connections: 674 -WARNING - par: Placement timing preferences are hard to meet. However, placement will continue. Use static timing analysis to identify errors. +Number of Signals: 292 +Number of Connections: 703 Pin Constraint Summary: - 66 out of 67 pins locked (98% locked). + 67 out of 67 pins locked (100% locked). The following 2 signals are selected to use the primary clock routing resources: - RCLK_c (driver: RCLK, clk load #: 40) - PHI2_c (driver: PHI2, clk load #: 13) + RCLK_c (driver: RCLK, clk load #: 39) + PHI2_c (driver: PHI2, clk load #: 18) WARNING - par: Signal "RCLK_c" is selected to use Primary clock resources. However, its driver comp "RCLK" is located at "62", which is not a dedicated pin for connecting to Primary clock resources. General routing has to be used to route this signal, and it might suffer from excessive delay or skew. WARNING - par: Signal "PHI2_c" is selected to use Primary clock resources. However, its driver comp "PHI2" is located at "8", which is not a dedicated pin for connecting to Primary clock resources. General routing has to be used to route this signal, and it might suffer from excessive delay or skew. -The following 1 signal is selected to use the secondary clock routing resources: - nCRAS_c (driver: nCRAS, clk load #: 7, sr load #: 0, ce load #: 0) +The following 2 signals are selected to use the secondary clock routing resources: + nCRAS_c (driver: nCRAS, clk load #: 9, sr load #: 0, ce load #: 0) + nCCAS_c (driver: nCCAS, clk load #: 8, sr load #: 0, ce load #: 0) WARNING - par: Signal "nCRAS_c" is selected to use Secondary clock resources. However, its driver comp "nCRAS" is located at "17", which is not a dedicated pin for connecting to Secondary clock resources. General routing has to be used to route this signal, and it might suffer from excessive delay or skew. +WARNING - par: Signal "nCCAS_c" is selected to use Secondary clock resources. However, its driver comp "nCCAS" is located at "9", which is not a dedicated pin for connecting to Secondary clock resources. General routing has to be used to route this signal, and it might suffer from excessive delay or skew. No signal is selected as Global Set/Reset. -. Starting Placer Phase 0. -............. +........... Finished Placer Phase 0. REAL time: 0 secs Starting Placer Phase 1. -............... -Placer score = 121531. +.................... +Placer score = 41844. Finished Placer Phase 1. REAL time: 4 secs Starting Placer Phase 2. . -Placer score = 119079 +Placer score = 41803 Finished Placer Phase 2. REAL time: 4 secs @@ -110,17 +111,18 @@ Finished Placer Phase 2. REAL time: 4 secs Global Clock Resources: CLK_PIN : 0 out of 8 (0%) - General PIO: 3 out of 80 (3%) + General PIO: 4 out of 80 (5%) DCM : 0 out of 2 (0%) DCC : 0 out of 8 (0%) Global Clocks: - PRIMARY "RCLK_c" from comp "RCLK" on PIO site "62 (PR5D)", clk load = 40 - PRIMARY "PHI2_c" from comp "PHI2" on PIO site "8 (PL3B)", clk load = 13 - SECONDARY "nCRAS_c" from comp "nCRAS" on PIO site "17 (PL6B)", clk load = 7, ce load = 0, sr load = 0 + PRIMARY "RCLK_c" from comp "RCLK" on PIO site "62 (PR5D)", clk load = 39 + PRIMARY "PHI2_c" from comp "PHI2" on PIO site "8 (PL3B)", clk load = 18 + SECONDARY "nCRAS_c" from comp "nCRAS" on PIO site "17 (PL6B)", clk load = 9, ce load = 0, sr load = 0 + SECONDARY "nCCAS_c" from comp "nCCAS" on PIO site "9 (PL3C)", clk load = 8, ce load = 0, sr load = 0 PRIMARY : 2 out of 8 (25%) - SECONDARY: 1 out of 8 (12%) + SECONDARY: 2 out of 8 (25%) @@ -135,27 +137,23 @@ I/O Bank Usage Summary: +----------+----------------+------------+-----------+ | I/O Bank | Usage | Bank Vccio | Bank Vref | +----------+----------------+------------+-----------+ -| 0 | 14 / 19 ( 73%) | 2.5V | - | -| 1 | 20 / 20 (100%) | 2.5V | - | -| 2 | 16 / 20 ( 80%) | 2.5V | - | -| 3 | 17 / 20 ( 85%) | 2.5V | - | +| 0 | 13 / 19 ( 68%) | 3.3V | - | +| 1 | 20 / 20 (100%) | 3.3V | - | +| 2 | 16 / 20 ( 80%) | 3.3V | - | +| 3 | 18 / 20 ( 90%) | 3.3V | - | +----------+----------------+------------+-----------+ Total placer CPU time: 3 secs Dumping design to file RAM2GS_LCMXO2_640HC_impl1.dir/5_1.ncd. -0 connections routed; 674 unrouted. +0 connections routed; 703 unrouted. Starting router resource preassignment WARNING - par: The driver of primary clock net RCLK_c is not placed on one of the sites dedicated for primary clocks. This primary clock will be routed to an H-spine through general routing resource and might suffer from excessive delay or skew. -WARNING - par: The driver of primary clock net PHI2_c is not placed on one of the sites dedicated for primary clocks. This primary clock will be routed to an H-spine through general routing resource and might suffer from excessive delay or skew. -WARNING - par: The following clock signals will be routed by using generic routing resource and may suffer from excessive delay and/or skew. - Signal=nCCAS_c loads=6 clock_loads=4 +Completed router resource preassignment. Real time: 6 secs -Completed router resource preassignment. Real time: 7 secs - -Start NBR router at 05:03:35 08/15/23 +Start NBR router at 23:30:11 08/15/23 ***************************************************************** Info: NBR allows conflicts(one node used by more than one signal) @@ -170,78 +168,63 @@ Note: NBR uses a different method to calculate timing slacks. The your design. ***************************************************************** -Start NBR special constraint process at 05:03:35 08/15/23 +Start NBR special constraint process at 23:30:11 08/15/23 -Start NBR section for initial routing at 05:03:35 08/15/23 +Start NBR section for initial routing at 23:30:11 08/15/23 Level 1, iteration 1 -2(0.00%) conflicts; 536(79.53%) untouched conns; 481988 (nbr) score; -Estimated worst slack/total negative slack<setup>: -4.914ns/-481.988ns; real time: 7 secs +0(0.00%) conflict; 529(75.25%) untouched conns; 0 (nbr) score; +Estimated worst slack/total negative slack<setup>: 6.016ns/0.000ns; real time: 6 secs Level 2, iteration 1 -7(0.02%) conflicts; 473(70.18%) untouched conns; 424953 (nbr) score; -Estimated worst slack/total negative slack<setup>: -4.988ns/-424.953ns; real time: 7 secs +0(0.00%) conflict; 526(74.82%) untouched conns; 0 (nbr) score; +Estimated worst slack/total negative slack<setup>: 5.772ns/0.000ns; real time: 6 secs Level 3, iteration 1 -12(0.03%) conflicts; 254(37.69%) untouched conns; 455640 (nbr) score; -Estimated worst slack/total negative slack<setup>: -5.118ns/-455.640ns; real time: 7 secs +0(0.00%) conflict; 526(74.82%) untouched conns; 0 (nbr) score; +Estimated worst slack/total negative slack<setup>: 6.058ns/0.000ns; real time: 6 secs Level 4, iteration 1 -6(0.01%) conflicts; 0(0.00%) untouched conn; 465237 (nbr) score; -Estimated worst slack/total negative slack<setup>: -5.122ns/-465.237ns; real time: 7 secs +3(0.01%) conflicts; 0(0.00%) untouched conn; 0 (nbr) score; +Estimated worst slack/total negative slack<setup>: 5.827ns/0.000ns; real time: 6 secs Info: Initial congestion level at 75% usage is 0 Info: Initial congestion area at 75% usage is 0 (0.00%) -Start NBR section for normal routing at 05:03:35 08/15/23 +Start NBR section for normal routing at 23:30:11 08/15/23 Level 4, iteration 1 -6(0.01%) conflicts; 0(0.00%) untouched conn; 461186 (nbr) score; -Estimated worst slack/total negative slack<setup>: -4.992ns/-461.186ns; real time: 7 secs +1(0.00%) conflict; 0(0.00%) untouched conn; 0 (nbr) score; +Estimated worst slack/total negative slack<setup>: 5.827ns/0.000ns; real time: 6 secs Level 4, iteration 2 -3(0.01%) conflicts; 0(0.00%) untouched conn; 460933 (nbr) score; -Estimated worst slack/total negative slack<setup>: -4.992ns/-460.933ns; real time: 7 secs -Level 4, iteration 3 -2(0.00%) conflicts; 0(0.00%) untouched conn; 461063 (nbr) score; -Estimated worst slack/total negative slack<setup>: -4.992ns/-461.063ns; real time: 7 secs -Level 4, iteration 4 -1(0.00%) conflict; 0(0.00%) untouched conn; 461063 (nbr) score; -Estimated worst slack/total negative slack<setup>: -4.992ns/-461.063ns; real time: 7 secs -Level 4, iteration 5 -0(0.00%) conflict; 0(0.00%) untouched conn; 468515 (nbr) score; -Estimated worst slack/total negative slack<setup>: -5.122ns/-468.515ns; real time: 7 secs +0(0.00%) conflict; 0(0.00%) untouched conn; 0 (nbr) score; +Estimated worst slack/total negative slack<setup>: 5.827ns/0.000ns; real time: 6 secs -Start NBR section for performance tuning (iteration 1) at 05:03:35 08/15/23 +Start NBR section for setup/hold timing optimization with effort level 3 at 23:30:11 08/15/23 + +Start NBR section for re-routing at 23:30:11 08/15/23 Level 4, iteration 1 -0(0.00%) conflict; 0(0.00%) untouched conn; 468515 (nbr) score; -Estimated worst slack/total negative slack<setup>: -5.122ns/-468.515ns; real time: 7 secs +0(0.00%) conflict; 0(0.00%) untouched conn; 0 (nbr) score; +Estimated worst slack/total negative slack<setup>: 5.827ns/0.000ns; real time: 6 secs -Start NBR section for re-routing at 05:03:35 08/15/23 -Level 4, iteration 1 -0(0.00%) conflict; 0(0.00%) untouched conn; 468515 (nbr) score; -Estimated worst slack/total negative slack<setup>: -5.122ns/-468.515ns; real time: 7 secs - -Start NBR section for post-routing at 05:03:35 08/15/23 +Start NBR section for post-routing at 23:30:11 08/15/23 End NBR router with 0 unrouted connection NBR Summary ----------- Number of unrouted connections : 0 (0.00%) - Number of connections with timing violations : 260 (38.58%) - Estimated worst slack<setup> : -5.122ns - Timing score<setup> : 452301 + Number of connections with timing violations : 0 (0.00%) + Estimated worst slack<setup> : 5.827ns + Timing score<setup> : 0 ----------- Notes: The timing info is calculated for SETUP only and all PAR_ADJs are ignored. -WARNING - par: The following clock signals will be routed by using generic routing resource and may suffer from excessive delay and/or skew. - Signal=nCCAS_c loads=6 clock_loads=4 - -Total CPU time 7 secs -Total REAL time: 7 secs +Total CPU time 5 secs +Total REAL time: 6 secs Completely routed. -End of route. 674 routed (100.00%); 0 unrouted. +End of route. 703 routed (100.00%); 0 unrouted. Hold time timing score: 0, hold timing errors: 0 -Timing score: 452301 +Timing score: 0 Dumping design to file RAM2GS_LCMXO2_640HC_impl1.dir/5_1.ncd. @@ -251,14 +234,14 @@ All signals are completely routed. PAR_SUMMARY::Run status = Completed PAR_SUMMARY::Number of unrouted conns = 0 -PAR_SUMMARY::Worst slack<setup/<ns>> = -5.122 -PAR_SUMMARY::Timing score<setup/<ns>> = 452.301 +PAR_SUMMARY::Worst slack<setup/<ns>> = 5.827 +PAR_SUMMARY::Timing score<setup/<ns>> = 0.000 PAR_SUMMARY::Worst slack<hold /<ns>> = 0.304 PAR_SUMMARY::Timing score<hold /<ns>> = 0.000 PAR_SUMMARY::Number of errors = 0 -Total CPU time to completion: 7 secs -Total REAL time to completion: 7 secs +Total CPU time to completion: 5 secs +Total REAL time to completion: 6 secs par done! diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_scck.rpt b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_scck.rpt new file mode 100644 index 0000000..ac8269d --- /dev/null +++ b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_scck.rpt @@ -0,0 +1,59 @@ + +Copyright (C) 1994-2021 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. +Tool: Synplify Pro (R) +Build: R-2021.03L-SP1 +Install: C:\lscc\diamond\3.12\synpbase +OS: Windows 6.2 + +Hostname: ZANEPC + +Implementation : impl1 + +# Written on Tue Aug 15 23:12:43 2023 + +##### FILES SYNTAX CHECKED ############################################## +Constraint File(s): "D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\RAM2GS.sdc" + +#Run constraint checker to find more issues with constraints. +######################################################################### + + + +No issues found in constraint syntax. + + + +Clock Summary +************* + + Start Requested Requested Clock Clock Clock +Level Clock Frequency Period Type Group Load +--------------------------------------------------------------------------------------- +0 - RCLK 62.5 MHz 16.000 declared default_clkgroup 48 + +0 - PHI2 2.9 MHz 350.000 declared default_clkgroup 19 + +0 - nCRAS 2.9 MHz 350.000 declared default_clkgroup 14 + +0 - nCCAS 2.9 MHz 350.000 declared default_clkgroup 8 +======================================================================================= + + +Clock Load Summary +****************** + + Clock Source Clock Pin Non-clock Pin Non-clock Pin +Clock Load Pin Seq Example Seq Example Comb Example +---------------------------------------------------------------------------------------- +RCLK 48 RCLK(port) CASr2.C - - + +PHI2 19 PHI2(port) Bank[7:0].C PHI2r.D[0] un1_PHI2.I[0](inv) + +nCRAS 14 nCRAS(port) CBR.C RASr.D[0] RASr_2.I[0](inv) + +nCCAS 8 nCCAS(port) WRD[7:0].C CASr.D[0] CASr_2.I[0](inv) +======================================================================================== diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_scck.rpt.db b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_scck.rpt.db new file mode 100644 index 0000000000000000000000000000000000000000..33612a25abcc09ccda948d7859cc45d1eae869ad GIT binary patch literal 8192 zcmeI#y$ZrW3Y@Gy=5 literal 0 HcmV?d00001 diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_summary.html b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_summary.html index d0630a7..136bdcc 100644 --- a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_summary.html +++ b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_summary.html @@ -14,7 +14,7 @@ Module Name: RAM2GS_LCMXO2_640HC Synthesis: -Lattice LSE +SynplifyPro Implementation Name: @@ -62,7 +62,7 @@ Updated: -2023/08/15 05:03:41 +2023/08/15 23:33:06 Implementation Location: diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_synplify.html b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_synplify.html new file mode 100644 index 0000000..b5301ad --- /dev/null +++ b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_synplify.html @@ -0,0 +1,1029 @@ + +Synthesis Report + + +

    Synthesis Report
    +#Build: Synplify Pro (R) R-2021.03L-SP1, Build 093R, Aug 10 2021
    +#install: C:\lscc\diamond\3.12\synpbase
    +#OS: Windows 8 6.2
    +#Hostname: ZANEPC
    +
    +# Tue Aug 15 23:12:41 2023
    +
    +#Implementation: impl1
    +
    +
    +Copyright (C) 1994-2021 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.
    +Tool: Synplify Pro (R)
    +Build: R-2021.03L-SP1
    +Install: C:\lscc\diamond\3.12\synpbase
    +OS: Windows 6.2
    +
    +Hostname: ZANEPC
    +
    +Implementation : impl1
    +Synopsys HDL Compiler, Version comp202103synp2, Build 093R, Built Aug 10 2021 09:15:36, @
    +
    +@N|Running in 64-bit mode
    +###########################################################[
    +
    +Copyright (C) 1994-2021 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.
    +Tool: Synplify Pro (R)
    +Build: R-2021.03L-SP1
    +Install: C:\lscc\diamond\3.12\synpbase
    +OS: Windows 6.2
    +
    +Hostname: ZANEPC
    +
    +Implementation : impl1
    +Synopsys Verilog Compiler, Version comp202103synp2, Build 093R, Built Aug 10 2021 09:15:36, @
    +
    +@N|Running in 64-bit mode
    +@I::"C:\lscc\diamond\3.12\synpbase\lib\lucent\machxo2.v" (library work)
    +@I::"C:\lscc\diamond\3.12\synpbase\lib\lucent\pmi_def.v" (library work)
    +@I::"C:\lscc\diamond\3.12\synpbase\lib\vlog\hypermods.v" (library __hyper__lib__)
    +@I::"C:\lscc\diamond\3.12\synpbase\lib\vlog\umr_capim.v" (library snps_haps)
    +@I::"C:\lscc\diamond\3.12\synpbase\lib\vlog\scemi_objects.v" (library snps_haps)
    +@I::"C:\lscc\diamond\3.12\synpbase\lib\vlog\scemi_pipes.svh" (library snps_haps)
    +@I::"D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\RAM2GS-SPI.v" (library work)
    +Verilog syntax check successful!
    +
    +Compiler output is up to date.  No re-compile necessary
    +
    +Selecting top level module RAM2GS
    +@N: CG364 :"D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\RAM2GS-SPI.v":1:7:1:12|Synthesizing module RAM2GS in library work.
    +Running optimization stage 1 on RAM2GS .......
    +Finished optimization stage 1 on RAM2GS (CPU Time 0h:00m:00s, Memory Used current: 93MB peak: 93MB)
    +Running optimization stage 2 on RAM2GS .......
    +Finished optimization stage 2 on RAM2GS (CPU Time 0h:00m:00s, Memory Used current: 93MB peak: 94MB)
    +
    +For a summary of runtime and memory usage per design unit, please see file:
    +==========================================================
    +@L: D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\LCMXO2-640HC\impl1\synwork\layer0.rt.csv
    +
    +
    +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 90MB peak: 91MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +
    +Process completed successfully.
    +# Tue Aug 15 23:12:41 2023
    +
    +###########################################################]
    +###########################################################[
    +
    +Copyright (C) 1994-2021 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.
    +Tool: Synplify Pro (R)
    +Build: R-2021.03L-SP1
    +Install: C:\lscc\diamond\3.12\synpbase
    +OS: Windows 6.2
    +
    +Hostname: ZANEPC
    +
    +Implementation : impl1
    +Synopsys Synopsys Netlist Linker, Version comp202103synp2, Build 093R, Built Aug 10 2021 09:15:36, @
    +
    +@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: 90MB peak: 91MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +
    +Process completed successfully.
    +# Tue Aug 15 23:12:41 2023
    +
    +###########################################################]
    +
    +For a summary of runtime and memory usage for all design units, please see file:
    +==========================================================
    +@L: D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\LCMXO2-640HC\impl1\synwork\RAM2GS_LCMXO2_640HC_impl1_comp.rt.csv
    +
    +@END
    +
    +At c_hdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 23MB peak: 23MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +
    +Process completed successfully.
    +# Tue Aug 15 23:12:41 2023
    +
    +###########################################################]
    +###########################################################[
    +
    +Copyright (C) 1994-2021 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.
    +Tool: Synplify Pro (R)
    +Build: R-2021.03L-SP1
    +Install: C:\lscc\diamond\3.12\synpbase
    +OS: Windows 6.2
    +
    +Hostname: ZANEPC
    +
    +Implementation : impl1
    +Synopsys Synopsys Netlist Linker, Version comp202103synp2, Build 093R, Built Aug 10 2021 09:15:36, @
    +
    +@N|Running in 64-bit mode
    +File D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\LCMXO2-640HC\impl1\synwork\RAM2GS_LCMXO2_640HC_impl1_comp.srs changed - recompiling
    +
    +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 90MB peak: 91MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +
    +Process completed successfully.
    +# Tue Aug 15 23:12:42 2023
    +
    +###########################################################]
    +# Tue Aug 15 23:12:42 2023
    +
    +
    +Copyright (C) 1994-2021 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.
    +Tool: Synplify Pro (R)
    +Build: R-2021.03L-SP1
    +Install: C:\lscc\diamond\3.12\synpbase
    +OS: Windows 6.2
    +
    +Hostname: ZANEPC
    +
    +Implementation : impl1
    +Synopsys Lattice Technology Pre-mapping, Version map202103lat, Build 070R, Built Oct  6 2021 11:12:38, @
    +
    +
    +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 118MB peak: 118MB)
    +
    +
    +Done reading skeleton netlist (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 121MB peak: 130MB)
    +
    +Reading constraint file: D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\RAM2GS.sdc
    +@L: D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\LCMXO2-640HC\impl1\RAM2GS_LCMXO2_640HC_impl1_scck.rpt 
    +See clock summary report "D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\LCMXO2-640HC\impl1\RAM2GS_LCMXO2_640HC_impl1_scck.rpt"
    +@N: MF916 |Option synthesis_strategy=base is enabled. 
    +@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: 125MB peak: 130MB)
    +
    +
    +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 125MB peak: 130MB)
    +
    +
    +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 138MB peak: 138MB)
    +
    +
    +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 138MB peak: 140MB)
    +
    +@N: FX493 |Applying initial value "0" on instance InitReady.
    +@W: FX474 |User-specified initial value defined for some sequential elements which can prevent optimum synthesis results from being achieved. 
    +@N: FX493 |Applying initial value "0" on instance Ready.
    +@N: FX493 |Applying initial value "0" on instance RCKE.
    +@N: FX493 |Applying initial value "1" on instance nRCAS.
    +@N: FX493 |Applying initial value "0" on instance CmdLEDEN.
    +@N: FX493 |Applying initial value "0" on instance Cmdn8MEGEN.
    +@N: FX493 |Applying initial value "1" on instance nRCS.
    +@N: FX493 |Applying initial value "0" on instance LEDEN.
    +@N: FX493 |Applying initial value "0" on instance n8MEGEN.
    +@N: FX493 |Applying initial value "1" on instance nRRAS.
    +@N: FX493 |Applying initial value "0" on instance CmdUFMCLK.
    +@N: FX493 |Applying initial value "0" on instance CmdUFMCS.
    +@N: FX493 |Applying initial value "0" on instance CmdUFMSDI.
    +@N: FX493 |Applying initial value "0" on instance C1Submitted.
    +@N: FX493 |Applying initial value "0" on instance CmdSubmitted.
    +@N: FX493 |Applying initial value "0" on instance ADSubmitted.
    +@N: FX493 |Applying initial value "0" on instance XOR8MEG.
    +@N: FX493 |Applying initial value "1" on instance nUFMCS.
    +@N: FX493 |Applying initial value "0" on instance UFMSDI.
    +@N: FX493 |Applying initial value "0" on instance UFMCLK.
    +@N: FX493 |Applying initial value "0" on instance CmdEnable.
    +@N: FX493 |Applying initial value "1" on instance nRWE.
    +
    +Starting clock optimization phase (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 170MB peak: 170MB)
    +
    +
    +Finished clock optimization phase (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 170MB peak: 171MB)
    +
    +
    +Starting clock optimization report phase (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 171MB peak: 171MB)
    +
    +
    +Finished clock optimization report phase (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 171MB peak: 171MB)
    +
    +@N: FX1184 |Applying syn_allowed_resources blockrams=2 on top level netlist RAM2GS 
    +
    +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 171MB peak: 171MB)
    +
    +
    +
    +Clock Summary
    +******************
    +
    +          Start     Requested     Requested     Clock        Clock                Clock
    +Level     Clock     Frequency     Period        Type         Group                Load 
    +---------------------------------------------------------------------------------------
    +0 -       RCLK      62.5 MHz      16.000        declared     default_clkgroup     48   
    +                                                                                       
    +0 -       PHI2      2.9 MHz       350.000       declared     default_clkgroup     19   
    +                                                                                       
    +0 -       nCRAS     2.9 MHz       350.000       declared     default_clkgroup     14   
    +                                                                                       
    +0 -       nCCAS     2.9 MHz       350.000       declared     default_clkgroup     8    
    +=======================================================================================
    +
    +
    +
    +Clock Load Summary
    +***********************
    +
    +          Clock     Source          Clock Pin       Non-clock Pin     Non-clock Pin     
    +Clock     Load      Pin             Seq Example     Seq Example       Comb Example      
    +----------------------------------------------------------------------------------------
    +RCLK      48        RCLK(port)      CASr2.C         -                 -                 
    +                                                                                        
    +PHI2      19        PHI2(port)      Bank[7:0].C     PHI2r.D[0]        un1_PHI2.I[0](inv)
    +                                                                                        
    +nCRAS     14        nCRAS(port)     CBR.C           RASr.D[0]         RASr_2.I[0](inv)  
    +                                                                                        
    +nCCAS     8         nCCAS(port)     WRD[7:0].C      CASr.D[0]         CASr_2.I[0](inv)  
    +========================================================================================
    +
    +ICG Latch Removal Summary:
    +Number of ICG latches removed: 0
    +Number of ICG latches not removed:	0
    +For details review file gcc_ICG_report.rpt
    +
    +
    +@S |Clock Optimization Summary
    +
    +
    +
    +#### START OF PREMAP CLOCK OPTIMIZATION REPORT #####[
    +
    +4 non-gated/non-generated clock tree(s) driving 89 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
    +---------------------------------------------------------------------------------------
    +@KP:ckid0_0       RCLK                port                   48         nRWE           
    +@KP:ckid0_1       PHI2                port                   19         RA11           
    +@KP:ckid0_2       nCCAS               port                   8          WRD[7:0]       
    +@KP:ckid0_3       nCRAS               port                   14         RowA[9:0]      
    +=======================================================================================
    +
    +
    +##### END OF CLOCK OPTIMIZATION REPORT ######
    +
    +@N: FX1143 |Skipping assigning INTERNAL_VREF to iobanks, because the table of mapping from pin to iobank is not initialized.
    +Finished Pre Mapping Phase.
    +
    +Starting constraint checker (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 171MB peak: 171MB)
    +
    +
    +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 171MB peak: 171MB)
    +
    +
    +Finished constraint checker (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 172MB peak: 172MB)
    +
    +Pre-mapping successful!
    +
    +At Mapper Exit (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 88MB peak: 174MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +# Tue Aug 15 23:12:44 2023
    +
    +###########################################################]
    +# Tue Aug 15 23:12:44 2023
    +
    +
    +Copyright (C) 1994-2021 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.
    +Tool: Synplify Pro (R)
    +Build: R-2021.03L-SP1
    +Install: C:\lscc\diamond\3.12\synpbase
    +OS: Windows 6.2
    +
    +Hostname: ZANEPC
    +
    +Implementation : impl1
    +Synopsys Lattice Technology Mapper, Version map202103lat, Build 070R, Built Oct  6 2021 11:12:38, @
    +
    +
    +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 117MB peak: 117MB)
    +
    +@N: MF916 |Option synthesis_strategy=base is enabled. 
    +@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: 119MB peak: 130MB)
    +
    +
    +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 119MB peak: 130MB)
    +
    +
    +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 133MB peak: 133MB)
    +
    +
    +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 135MB peak: 136MB)
    +
    +
    +
    +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 168MB peak: 168MB)
    +
    +
    +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 171MB peak: 171MB)
    +
    +@N: MO231 :"d:\onedrive\documents\github\ram2gs\cpld\ram2gs-spi.v":147:1:147:6|Found counter in view:work.RAM2GS(verilog) instance IS[3:0] 
    +@N: MO231 :"d:\onedrive\documents\github\ram2gs\cpld\ram2gs-spi.v":134:1:134:6|Found counter in view:work.RAM2GS(verilog) instance FS[17:0] 
    +@N: FX493 |Applying initial value "0" on instance IS[0].
    +@W: FX474 |User-specified initial value defined for some sequential elements which can prevent optimum synthesis results from being achieved. 
    +@N: FX493 |Applying initial value "0" on instance IS[1].
    +@N: FX493 |Applying initial value "0" on instance IS[2].
    +@N: FX493 |Applying initial value "0" on instance IS[3].
    +
    +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 173MB peak: 173MB)
    +
    +
    +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 174MB peak: 174MB)
    +
    +
    +Available hyper_sources - for debug and ip models
    +	None Found
    +
    +
    +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 175MB peak: 175MB)
    +
    +
    +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 175MB peak: 175MB)
    +
    +
    +Finished Early Timing Optimization (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 176MB peak: 176MB)
    +
    +
    +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 176MB peak: 176MB)
    +
    +
    +Finished preparing to map (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 176MB peak: 176MB)
    +
    +
    +Finished technology mapping (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 176MB peak: 176MB)
    +
    +Pass		 CPU time		Worst Slack		Luts / Registers
    +------------------------------------------------------------
    +   1		0h:00m:01s		    -2.34ns		 128 /        89
    +   2		0h:00m:01s		    -2.34ns		 140 /        89
    +   3		0h:00m:01s		    -2.34ns		 140 /        89
    +@N: FX271 :"d:\onedrive\documents\github\ram2gs\cpld\ram2gs-spi.v":147:1:147:6|Replicating instance Ready (in view: work.RAM2GS(verilog)) with 12 loads 1 time to improve timing.
    +Timing driven replication report
    +Added 1 Registers via timing driven replication
    +Added 0 LUTs via timing driven replication
    +
    +   4		0h:00m:01s		    -2.04ns		 140 /        90
    +
    +
    +   5		0h:00m:01s		    -2.04ns		 141 /        90
    +   6		0h:00m:01s		    -2.04ns		 141 /        90
    +   7		0h:00m:01s		    -2.04ns		 141 /        90
    +   8		0h:00m:01s		    -2.04ns		 141 /        90
    +   9		0h:00m:01s		    -2.04ns		 141 /        90
    +
    +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 177MB peak: 177MB)
    +
    +@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: 177MB peak: 177MB)
    +
    +
    +Start Writing Netlists (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 141MB peak: 178MB)
    +
    +Writing Analyst data base D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\LCMXO2-640HC\impl1\synwork\RAM2GS_LCMXO2_640HC_impl1_m.srm
    +
    +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 178MB peak: 178MB)
    +
    +Writing EDIF Netlist and constraint files
    +@N: FX1056 |Writing EDF file: D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\LCMXO2-640HC\impl1\RAM2GS_LCMXO2_640HC_impl1.edi
    +@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: 183MB peak: 183MB)
    +
    +
    +Finished Writing Netlists (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 183MB peak: 184MB)
    +
    +
    +Start final timing analysis (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 181MB peak: 184MB)
    +
    +@N: MT615 |Found clock RCLK with period 16.00ns 
    +@N: MT615 |Found clock PHI2 with period 350.00ns 
    +@N: MT615 |Found clock nCRAS with period 350.00ns 
    +@N: MT615 |Found clock nCCAS with period 350.00ns 
    +
    +
    +##### START OF TIMING REPORT #####[
    +# Timing report written on Tue Aug 15 23:12:47 2023
    +#
    +
    +
    +Top view:               RAM2GS
    +Requested Frequency:    2.9 MHz
    +Wire load mode:         top
    +Paths requested:        3
    +Constraint File(s):    D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\RAM2GS.sdc
    +                       
    +@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: -2.389
    +
    +                   Requested     Estimated     Requested     Estimated                Clock        Clock           
    +Starting Clock     Frequency     Frequency     Period        Period        Slack      Type         Group           
    +-------------------------------------------------------------------------------------------------------------------
    +PHI2               2.9 MHz       0.8 MHz       350.000       1186.150      -2.389     declared     default_clkgroup
    +RCLK               62.5 MHz      18.4 MHz      16.000        54.224        -0.784     declared     default_clkgroup
    +nCCAS              2.9 MHz       NA            350.000       NA            NA         declared     default_clkgroup
    +nCRAS              2.9 MHz       1.0 MHz       350.000       987.210       -1.821     declared     default_clkgroup
    +===================================================================================================================
    +Estimated period and frequency reported as NA means no slack depends directly on the clock waveform
    +
    +
    +@W: MT118 |Paths from clock (PHI2:f) to clock (RCLK:r) are overconstrained because the required time of 1.00 ns is too small.  
    +@W: MT117 |Paths from clock (RCLK:r) to clock (PHI2:f) are overconstrained because the required time of 1.00 ns is too small.  
    +@W: MT118 |Paths from clock (nCRAS:f) to clock (RCLK:r) are overconstrained because the required time of 1.00 ns is too small.  
    +@W: MT116 |Paths from clock (RCLK:r) to clock (PHI2:r) are overconstrained because the required time of 2.00 ns is too small.  
    +@W: MT117 |Paths from clock (RCLK:r) to clock (nCRAS:f) are overconstrained because the required time of 1.00 ns is too small.  
    +
    +
    +
    +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  
    +--------------------------------------------------------------------------------------------------------------
    +RCLK      RCLK    |  16.000      8.400  |  No paths    -        |  No paths    -        |  No paths    -      
    +RCLK      PHI2    |  2.000       0.216  |  No paths    -        |  1.000       -0.636   |  No paths    -      
    +RCLK      nCRAS   |  No paths    -      |  No paths    -        |  1.000       -0.784   |  No paths    -      
    +PHI2      RCLK    |  No paths    -      |  No paths    -        |  No paths    -        |  1.000       -2.389 
    +PHI2      PHI2    |  No paths    -      |  350.000     345.378  |  175.000     167.920  |  175.000     173.428
    +nCRAS     RCLK    |  No paths    -      |  No paths    -        |  No paths    -        |  1.000       -1.821 
    +==============================================================================================================
    + 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: PHI2
    +====================================
    +
    +
    +
    +Starting Points with Worst Slack
    +********************************
    +
    +                 Starting                                            Arrival            
    +Instance         Reference     Type         Pin     Net              Time        Slack  
    +                 Clock                                                                  
    +----------------------------------------------------------------------------------------
    +CmdSubmitted     PHI2          FD1S3AX      Q       CmdSubmitted     1.148       -2.389 
    +CmdUFMCS         PHI2          FD1P3AX      Q       CmdUFMCS         0.972       -1.517 
    +CmdUFMSDI        PHI2          FD1P3AX      Q       CmdUFMSDI        0.972       -0.740 
    +CmdLEDEN         PHI2          FD1P3AX      Q       CmdLEDEN         1.044       -0.572 
    +Cmdn8MEGEN       PHI2          FD1P3AX      Q       Cmdn8MEGEN       1.044       -0.572 
    +CmdUFMCLK        PHI2          FD1P3AX      Q       CmdUFMCLK        0.972       -0.500 
    +Bank_0io[0]      PHI2          IFS1P3DX     Q       Bank[0]          0.972       167.920
    +Bank_0io[1]      PHI2          IFS1P3DX     Q       Bank[1]          0.972       167.920
    +Bank_0io[2]      PHI2          IFS1P3DX     Q       Bank[2]          0.972       167.920
    +Bank_0io[3]      PHI2          IFS1P3DX     Q       Bank[3]          0.972       167.920
    +========================================================================================
    +
    +
    +Ending Points with Worst Slack
    +******************************
    +
    +                Starting                                                Required            
    +Instance        Reference     Type         Pin     Net                  Time         Slack  
    +                Clock                                                                       
    +--------------------------------------------------------------------------------------------
    +UFMCLK_0io      PHI2          OFS1P3DX     SP      i2_i                 0.528        -2.389 
    +nUFMCS          PHI2          FD1S3AY      D       nUFMCS_s_0_N_5_i     1.089        -1.829 
    +UFMSDI          PHI2          FD1S3AX      D       UFMSDI_RNO           1.462        -1.751 
    +LEDEN           PHI2          FD1P3AX      SP      N_28                 0.528        -1.236 
    +n8MEGEN         PHI2          FD1P3AX      SP      N_26                 0.528        -1.236 
    +LEDEN           PHI2          FD1P3AX      D       N_74_i               1.089        -0.572 
    +n8MEGEN         PHI2          FD1P3AX      D       N_131                1.089        -0.572 
    +UFMCLK_0io      PHI2          OFS1P3DX     D       i1_i                 1.089        -0.500 
    +ADSubmitted     PHI2          FD1S3AX      D       ADSubmitted_r_0      175.089      167.920
    +C1Submitted     PHI2          FD1S3AX      D       C1Submitted_s_0      175.089      167.920
    +============================================================================================
    +
    +
    +
    +Worst Path Information
    +***********************
    +
    +
    +Path information for path number 1: 
    +      Requested Period:                      1.000
    +    - Setup time:                            0.472
    +    + Clock delay at ending point:           0.000 (ideal)
    +    = Required time:                         0.528
    +
    +    - Propagation time:                      2.917
    +    - Clock delay at starting point:         0.000 (ideal)
    +    = Slack (critical) :                     -2.389
    +
    +    Number of logic level(s):                2
    +    Starting point:                          CmdSubmitted / Q
    +    Ending point:                            UFMCLK_0io / SP
    +    The start point is clocked by            PHI2 [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK
    +    The end   point is clocked by            RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin SCLK
    +
    +Instance / Net                    Pin      Pin               Arrival     No. of    
    +Name                 Type         Name     Dir     Delay     Time        Fan Out(s)
    +-----------------------------------------------------------------------------------
    +CmdSubmitted         FD1S3AX      Q        Out     1.148     1.148 r     -         
    +CmdSubmitted         Net          -        -       -         -           4         
    +PHI2r3_RNITCN41      ORCALUT4     A        In      0.000     1.148 r     -         
    +PHI2r3_RNITCN41      ORCALUT4     Z        Out     1.153     2.301 r     -         
    +N_141_i              Net          -        -       -         -           3         
    +UFMCLK_0io_RNO_0     ORCALUT4     A        In      0.000     2.301 r     -         
    +UFMCLK_0io_RNO_0     ORCALUT4     Z        Out     0.617     2.917 r     -         
    +i2_i                 Net          -        -       -         -           1         
    +UFMCLK_0io           OFS1P3DX     SP       In      0.000     2.917 r     -         
    +===================================================================================
    +
    +
    +Path information for path number 2: 
    +      Requested Period:                      1.000
    +    - Setup time:                            -0.089
    +    + Clock delay at ending point:           0.000 (ideal)
    +    = Required time:                         1.089
    +
    +    - Propagation time:                      2.917
    +    - Clock delay at starting point:         0.000 (ideal)
    +    = Slack (non-critical) :                 -1.829
    +
    +    Number of logic level(s):                2
    +    Starting point:                          CmdSubmitted / Q
    +    Ending point:                            nUFMCS / D
    +    The start point is clocked by            PHI2 [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK
    +    The end   point is clocked by            RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin CK
    +
    +Instance / Net                    Pin      Pin               Arrival     No. of    
    +Name                 Type         Name     Dir     Delay     Time        Fan Out(s)
    +-----------------------------------------------------------------------------------
    +CmdSubmitted         FD1S3AX      Q        Out     1.148     1.148 r     -         
    +CmdSubmitted         Net          -        -       -         -           4         
    +PHI2r3_RNITCN41      ORCALUT4     A        In      0.000     1.148 r     -         
    +PHI2r3_RNITCN41      ORCALUT4     Z        Out     1.153     2.301 r     -         
    +N_141_i              Net          -        -       -         -           3         
    +nUFMCS_s_0_N_5_i     ORCALUT4     A        In      0.000     2.301 r     -         
    +nUFMCS_s_0_N_5_i     ORCALUT4     Z        Out     0.617     2.917 r     -         
    +nUFMCS_s_0_N_5_i     Net          -        -       -         -           1         
    +nUFMCS               FD1S3AY      D        In      0.000     2.917 r     -         
    +===================================================================================
    +
    +
    +Path information for path number 3: 
    +      Requested Period:                      1.000
    +    - Setup time:                            -0.462
    +    + Clock delay at ending point:           0.000 (ideal)
    +    = Required time:                         1.462
    +
    +    - Propagation time:                      3.214
    +    - Clock delay at starting point:         0.000 (ideal)
    +    = Slack (non-critical) :                 -1.751
    +
    +    Number of logic level(s):                2
    +    Starting point:                          CmdSubmitted / Q
    +    Ending point:                            UFMSDI / D
    +    The start point is clocked by            PHI2 [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK
    +    The end   point is clocked by            RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin CK
    +
    +Instance / Net                   Pin      Pin               Arrival     No. of    
    +Name                Type         Name     Dir     Delay     Time        Fan Out(s)
    +----------------------------------------------------------------------------------
    +CmdSubmitted        FD1S3AX      Q        Out     1.148     1.148 r     -         
    +CmdSubmitted        Net          -        -       -         -           4         
    +PHI2r3_RNITCN41     ORCALUT4     A        In      0.000     1.148 r     -         
    +PHI2r3_RNITCN41     ORCALUT4     Z        Out     1.153     2.301 r     -         
    +N_141_i             Net          -        -       -         -           3         
    +UFMSDI_RNO          PFUMX        C0       In      0.000     2.301 r     -         
    +UFMSDI_RNO          PFUMX        Z        Out     0.913     3.214 r     -         
    +UFMSDI_RNO          Net          -        -       -         -           1         
    +UFMSDI              FD1S3AX      D        In      0.000     3.214 r     -         
    +==================================================================================
    +
    +
    +
    +
    +====================================
    +Detailed Report for Clock: RCLK
    +====================================
    +
    +
    +
    +Starting Points with Worst Slack
    +********************************
    +
    +               Starting                                         Arrival           
    +Instance       Reference     Type        Pin     Net            Time        Slack 
    +               Clock                                                              
    +----------------------------------------------------------------------------------
    +Ready_fast     RCLK          FD1S3AX     Q       Ready_fast     1.256       -0.784
    +LEDEN          RCLK          FD1P3AX     Q       LEDEN          1.108       -0.636
    +n8MEGEN        RCLK          FD1P3AX     Q       n8MEGEN        1.044       -0.572
    +FS[12]         RCLK          FD1S3AX     Q       FS[12]         1.108       8.400 
    +FS[13]         RCLK          FD1S3AX     Q       FS[13]         1.108       8.400 
    +FS[14]         RCLK          FD1S3AX     Q       FS[14]         1.108       8.400 
    +FS[17]         RCLK          FD1S3AX     Q       FS[17]         1.108       8.400 
    +FS[16]         RCLK          FD1S3AX     Q       FS[16]         1.148       9.377 
    +FS[15]         RCLK          FD1S3AX     Q       FS[15]         1.108       9.417 
    +InitReady      RCLK          FD1S3AX     Q       InitReady      1.268       9.849 
    +==================================================================================
    +
    +
    +Ending Points with Worst Slack
    +******************************
    +
    +               Starting                                          Required           
    +Instance       Reference     Type         Pin     Net            Time         Slack 
    +               Clock                                                                
    +------------------------------------------------------------------------------------
    +RBA_0io[0]     RCLK          OFS1P3DX     D       RBAd_0[0]      1.089        -0.784
    +RBA_0io[1]     RCLK          OFS1P3DX     D       RBAd_0[1]      1.089        -0.784
    +RowA[0]        RCLK          FD1S3AX      D       RowAd_0[0]     1.089        -0.784
    +RowA[1]        RCLK          FD1S3AX      D       RowAd_0[1]     1.089        -0.784
    +RowA[2]        RCLK          FD1S3AX      D       RowAd_0[2]     1.089        -0.784
    +RowA[3]        RCLK          FD1S3AX      D       RowAd_0[3]     1.089        -0.784
    +RowA[4]        RCLK          FD1S3AX      D       RowAd_0[4]     1.089        -0.784
    +RowA[5]        RCLK          FD1S3AX      D       RowAd_0[5]     1.089        -0.784
    +RowA[6]        RCLK          FD1S3AX      D       RowAd_0[6]     1.089        -0.784
    +RowA[7]        RCLK          FD1S3AX      D       RowAd_0[7]     1.089        -0.784
    +====================================================================================
    +
    +
    +
    +Worst Path Information
    +***********************
    +
    +
    +Path information for path number 1: 
    +      Requested Period:                      1.000
    +    - Setup time:                            -0.089
    +    + Clock delay at ending point:           0.000 (ideal)
    +    = Required time:                         1.089
    +
    +    - Propagation time:                      1.873
    +    - Clock delay at starting point:         0.000 (ideal)
    +    = Slack (non-critical) :                 -0.784
    +
    +    Number of logic level(s):                1
    +    Starting point:                          Ready_fast / Q
    +    Ending point:                            RBA_0io[0] / D
    +    The start point is clocked by            RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin CK
    +    The end   point is clocked by            nCRAS [falling] (rise=0.000 fall=175.000 period=350.000) on pin SCLK
    +
    +Instance / Net                  Pin      Pin               Arrival     No. of    
    +Name               Type         Name     Dir     Delay     Time        Fan Out(s)
    +---------------------------------------------------------------------------------
    +Ready_fast         FD1S3AX      Q        Out     1.256     1.256 r     -         
    +Ready_fast         Net          -        -       -         -           14        
    +RBAd[0]            ORCALUT4     B        In      0.000     1.256 r     -         
    +RBAd[0]            ORCALUT4     Z        Out     0.617     1.873 r     -         
    +RBAd_0[0]          Net          -        -       -         -           1         
    +RBA_0io[0]         OFS1P3DX     D        In      0.000     1.873 r     -         
    +=================================================================================
    +
    +
    +Path information for path number 2: 
    +      Requested Period:                      1.000
    +    - Setup time:                            -0.089
    +    + Clock delay at ending point:           0.000 (ideal)
    +    = Required time:                         1.089
    +
    +    - Propagation time:                      1.873
    +    - Clock delay at starting point:         0.000 (ideal)
    +    = Slack (non-critical) :                 -0.784
    +
    +    Number of logic level(s):                1
    +    Starting point:                          Ready_fast / Q
    +    Ending point:                            RowA[9] / D
    +    The start point is clocked by            RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin CK
    +    The end   point is clocked by            nCRAS [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK
    +
    +Instance / Net                  Pin      Pin               Arrival     No. of    
    +Name               Type         Name     Dir     Delay     Time        Fan Out(s)
    +---------------------------------------------------------------------------------
    +Ready_fast         FD1S3AX      Q        Out     1.256     1.256 r     -         
    +Ready_fast         Net          -        -       -         -           14        
    +RowAd[9]           ORCALUT4     B        In      0.000     1.256 r     -         
    +RowAd[9]           ORCALUT4     Z        Out     0.617     1.873 f     -         
    +RowAd_0[9]         Net          -        -       -         -           1         
    +RowA[9]            FD1S3AX      D        In      0.000     1.873 f     -         
    +=================================================================================
    +
    +
    +Path information for path number 3: 
    +      Requested Period:                      1.000
    +    - Setup time:                            -0.089
    +    + Clock delay at ending point:           0.000 (ideal)
    +    = Required time:                         1.089
    +
    +    - Propagation time:                      1.873
    +    - Clock delay at starting point:         0.000 (ideal)
    +    = Slack (non-critical) :                 -0.784
    +
    +    Number of logic level(s):                1
    +    Starting point:                          Ready_fast / Q
    +    Ending point:                            RowA[8] / D
    +    The start point is clocked by            RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin CK
    +    The end   point is clocked by            nCRAS [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK
    +
    +Instance / Net                  Pin      Pin               Arrival     No. of    
    +Name               Type         Name     Dir     Delay     Time        Fan Out(s)
    +---------------------------------------------------------------------------------
    +Ready_fast         FD1S3AX      Q        Out     1.256     1.256 r     -         
    +Ready_fast         Net          -        -       -         -           14        
    +RowAd[8]           ORCALUT4     B        In      0.000     1.256 r     -         
    +RowAd[8]           ORCALUT4     Z        Out     0.617     1.873 r     -         
    +RowAd_0[8]         Net          -        -       -         -           1         
    +RowA[8]            FD1S3AX      D        In      0.000     1.873 r     -         
    +=================================================================================
    +
    +
    +
    +
    +====================================
    +Detailed Report for Clock: nCRAS
    +====================================
    +
    +
    +
    +Starting Points with Worst Slack
    +********************************
    +
    +             Starting                                   Arrival           
    +Instance     Reference     Type        Pin     Net      Time        Slack 
    +             Clock                                                        
    +--------------------------------------------------------------------------
    +CBR          nCRAS         FD1S3AX     Q       CBR      1.204       -1.821
    +FWEr         nCRAS         FD1S3AX     Q       FWEr     1.148       -1.765
    +==========================================================================
    +
    +
    +Ending Points with Worst Slack
    +******************************
    +
    +               Starting                                              Required           
    +Instance       Reference     Type         Pin     Net                Time         Slack 
    +               Clock                                                                    
    +----------------------------------------------------------------------------------------
    +nRCAS_0io      nCRAS         OFS1P3BX     D       N_179_i            1.089        -1.821
    +nRWE_0io       nCRAS         OFS1P3BX     D       N_180_i            1.089        -1.821
    +nRCS_0io       nCRAS         OFS1P3BX     D       N_27_i             1.089        -1.765
    +nRowColSel     nCRAS         FD1S3IX      D       nRowColSel_0_0     1.089        -1.749
    +RCKEEN         nCRAS         FD1S3AX      D       RCKEEN_8           1.089        -1.693
    +========================================================================================
    +
    +
    +
    +Worst Path Information
    +***********************
    +
    +
    +Path information for path number 1: 
    +      Requested Period:                      1.000
    +    - Setup time:                            -0.089
    +    + Clock delay at ending point:           0.000 (ideal)
    +    = Required time:                         1.089
    +
    +    - Propagation time:                      2.909
    +    - Clock delay at starting point:         0.000 (ideal)
    +    = Slack (non-critical) :                 -1.821
    +
    +    Number of logic level(s):                2
    +    Starting point:                          CBR / Q
    +    Ending point:                            nRCAS_0io / D
    +    The start point is clocked by            nCRAS [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK
    +    The end   point is clocked by            RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin SCLK
    +
    +Instance / Net                         Pin      Pin               Arrival     No. of    
    +Name                      Type         Name     Dir     Delay     Time        Fan Out(s)
    +----------------------------------------------------------------------------------------
    +CBR                       FD1S3AX      Q        Out     1.204     1.204 r     -         
    +CBR                       Net          -        -       -         -           7         
    +nRCAS_0_sqmuxa_1_0_a3     ORCALUT4     A        In      0.000     1.204 r     -         
    +nRCAS_0_sqmuxa_1_0_a3     ORCALUT4     Z        Out     1.089     2.293 r     -         
    +nRCAS_0_sqmuxa_1          Net          -        -       -         -           2         
    +nRCAS_0io_RNO             ORCALUT4     B        In      0.000     2.293 r     -         
    +nRCAS_0io_RNO             ORCALUT4     Z        Out     0.617     2.909 f     -         
    +N_179_i                   Net          -        -       -         -           1         
    +nRCAS_0io                 OFS1P3BX     D        In      0.000     2.909 f     -         
    +========================================================================================
    +
    +
    +Path information for path number 2: 
    +      Requested Period:                      1.000
    +    - Setup time:                            -0.089
    +    + Clock delay at ending point:           0.000 (ideal)
    +    = Required time:                         1.089
    +
    +    - Propagation time:                      2.909
    +    - Clock delay at starting point:         0.000 (ideal)
    +    = Slack (non-critical) :                 -1.821
    +
    +    Number of logic level(s):                2
    +    Starting point:                          CBR / Q
    +    Ending point:                            nRWE_0io / D
    +    The start point is clocked by            nCRAS [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK
    +    The end   point is clocked by            RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin SCLK
    +
    +Instance / Net                         Pin      Pin               Arrival     No. of    
    +Name                      Type         Name     Dir     Delay     Time        Fan Out(s)
    +----------------------------------------------------------------------------------------
    +CBR                       FD1S3AX      Q        Out     1.204     1.204 r     -         
    +CBR                       Net          -        -       -         -           7         
    +nRCAS_0_sqmuxa_1_0_a3     ORCALUT4     A        In      0.000     1.204 r     -         
    +nRCAS_0_sqmuxa_1_0_a3     ORCALUT4     Z        Out     1.089     2.293 r     -         
    +nRCAS_0_sqmuxa_1          Net          -        -       -         -           2         
    +nRWE_0io_RNO              ORCALUT4     A        In      0.000     2.293 r     -         
    +nRWE_0io_RNO              ORCALUT4     Z        Out     0.617     2.909 r     -         
    +N_180_i                   Net          -        -       -         -           1         
    +nRWE_0io                  OFS1P3BX     D        In      0.000     2.909 r     -         
    +========================================================================================
    +
    +
    +Path information for path number 3: 
    +      Requested Period:                      1.000
    +    - Setup time:                            -0.089
    +    + Clock delay at ending point:           0.000 (ideal)
    +    = Required time:                         1.089
    +
    +    - Propagation time:                      2.853
    +    - Clock delay at starting point:         0.000 (ideal)
    +    = Slack (non-critical) :                 -1.765
    +
    +    Number of logic level(s):                2
    +    Starting point:                          FWEr / Q
    +    Ending point:                            nRCAS_0io / D
    +    The start point is clocked by            nCRAS [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK
    +    The end   point is clocked by            RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin SCLK
    +
    +Instance / Net                       Pin      Pin               Arrival     No. of    
    +Name                    Type         Name     Dir     Delay     Time        Fan Out(s)
    +--------------------------------------------------------------------------------------
    +FWEr                    FD1S3AX      Q        Out     1.148     1.148 r     -         
    +FWEr                    Net          -        -       -         -           4         
    +nRCAS_r_i_a3_1_1_tz     ORCALUT4     D        In      0.000     1.148 r     -         
    +nRCAS_r_i_a3_1_1_tz     ORCALUT4     Z        Out     1.089     2.237 r     -         
    +N_27_i_1                Net          -        -       -         -           2         
    +nRCAS_0io_RNO           ORCALUT4     A        In      0.000     2.237 r     -         
    +nRCAS_0io_RNO           ORCALUT4     Z        Out     0.617     2.853 f     -         
    +N_179_i                 Net          -        -       -         -           1         
    +nRCAS_0io               OFS1P3BX     D        In      0.000     2.853 f     -         
    +======================================================================================
    +
    +
    +
    +##### END OF TIMING REPORT #####]
    +
    +Timing exceptions that could not be applied
    +
    +Finished final timing analysis (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 182MB peak: 184MB)
    +
    +
    +Finished timing report (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 182MB peak: 184MB)
    +
    +---------------------------------------
    +Resource Usage Report
    +Part: lcmxo2_640hc-4
    +
    +Register bits: 90 of 640 (14%)
    +PIC Latch:       0
    +I/O cells:       67
    +
    +
    +Details:
    +BB:             8
    +CCU2D:          10
    +FD1P3AX:        11
    +FD1S3AX:        49
    +FD1S3AY:        1
    +FD1S3IX:        3
    +GSR:            1
    +IB:             26
    +IFS1P3DX:       9
    +INV:            7
    +OB:             33
    +OFS1P3BX:       4
    +OFS1P3DX:       12
    +OFS1P3JX:       1
    +ORCALUT4:       135
    +PFUMX:          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: 67MB peak: 184MB)
    +
    +Process took 0h:00m:02s realtime, 0h:00m:02s cputime
    +# Tue Aug 15 23:12:47 2023
    +
    +###########################################################]
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_synplify.lpf b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_synplify.lpf new file mode 100644 index 0000000..2b0f89b --- /dev/null +++ b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_synplify.lpf @@ -0,0 +1,24 @@ +# +# Logical Preferences generated for Lattice by Synplify map202103lat, Build 070R. +# + +# Period Constraints +FREQUENCY PORT "PHI2" 2.9 MHz; +FREQUENCY PORT "nCCAS" 2.9 MHz; +FREQUENCY PORT "nCRAS" 2.9 MHz; +FREQUENCY PORT "RCLK" 62.5 MHz; + + +# Output Constraints + +# Input Constraints + +# Point-to-point Delay Constraints + + + +# Block Path Constraints + +BLOCK ASYNCPATHS; + +# End of generated Logical Preferences. diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_synplify.tcl b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_synplify.tcl new file mode 100644 index 0000000..04a6c81 --- /dev/null +++ b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_synplify.tcl @@ -0,0 +1,65 @@ +#-- Lattice Semiconductor Corporation Ltd. +#-- Synplify OEM project file + +#device options +set_option -technology MACHXO2 +set_option -part LCMXO2_640HC +set_option -package TG100C +set_option -speed_grade -4 + +#compilation/mapping options +set_option -symbolic_fsm_compiler true +set_option -resource_sharing true + +#use verilog 2001 standard option +set_option -vlog_std v2001 + +#map options +set_option -frequency 70 +set_option -maxfan 1000 +set_option -auto_constrain_io 0 +set_option -disable_io_insertion false +set_option -retiming false; set_option -pipe false +set_option -force_gsr auto +set_option -compiler_compatible 0 +set_option -dup false + +add_file -constraint {D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/RAM2GS.sdc} +set_option -default_enum_encoding default + +#simulation options + + +#timing analysis options +set_option -num_critical_paths 3 + + +#automatic place and route (vendor) options +set_option -write_apr_constraint 1 + +#synplifyPro options +set_option -fix_gated_and_generated_clocks 1 +set_option -update_models_cp 0 +set_option -resolve_multiple_driver 0 + + +set_option -seqshift_no_replicate 0 + +#-- add_file options +set_option -include_path {D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC} +add_file -verilog -vlog_std v2001 {D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/RAM2GS-SPI.v} + +#-- top module name +set_option -top_module RAM2GS + +#-- set result format/file last +project -result_file {D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.edi} + +#-- error message log file +project -log_file {RAM2GS_LCMXO2_640HC_impl1.srf} + +#-- set any command lines input by customer + + +#-- run Synplify with 'arrange HDL file' +project -run -clean diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_synplify_tmp2.lpf b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_synplify_tmp2.lpf new file mode 100644 index 0000000..e69de29 diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_synplify_tmp4.lpf b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_synplify_tmp4.lpf new file mode 100644 index 0000000..e69de29 diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_synplify_tmp8.lpf b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_synplify_tmp8.lpf new file mode 100644 index 0000000..e69de29 diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_tw1.html b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_tw1.html index ea92308..0a00dda 100644 --- a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_tw1.html +++ b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_tw1.html @@ -22,7 +22,7 @@ Setup and Hold Report -------------------------------------------------------------------------------- Lattice TRACE Report - Setup, Version Diamond (64-bit) 3.12.1.454 -Tue Aug 15 05:03:25 2023 +Tue Aug 15 22:56:32 2023 Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. Copyright (c) 1995 AT&T Corp. All rights reserved. @@ -41,15 +41,18 @@ Report level: verbose report, limited to 1 item per preference Preference Summary -
  • FREQUENCY NET "RCLK_c" 299.401000 MHz (245 errors)
  • -
    459 items scored, 245 timing errors detected. -Warning: 139.762MHz is the maximum frequency for this preference. +
  • FREQUENCY PORT "PHI2" 2.900000 MHz (0 errors)
  • 170 items scored, 0 timing errors detected. +Report: 47.214MHz is the maximum frequency for this preference. -
  • FREQUENCY NET "PHI2_c" 99.079000 MHz (104 errors)
  • -
    113 items scored, 104 timing errors detected. -Warning: 50.592MHz is the maximum frequency for this preference. +
  • FREQUENCY PORT "nCCAS" 2.900000 MHz (0 errors)
  • 0 items scored, 0 timing errors detected. +Report: 150.150MHz is the maximum frequency for this preference. + +
  • FREQUENCY PORT "nCRAS" 2.900000 MHz (0 errors)
  • 0 items scored, 0 timing errors detected. +Report: 150.150MHz is the maximum frequency for this preference. + +
  • FREQUENCY PORT "RCLK" 62.500000 MHz (0 errors)
  • 590 items scored, 0 timing errors detected. +Report: 86.296MHz is the maximum frequency for this preference. -Report Type: based on TRACE automatically generated preferences BLOCK ASYNCPATHS BLOCK RESETPATHS -------------------------------------------------------------------------------- @@ -57,87 +60,131 @@ BLOCK RESETPATHS ================================================================================ -Preference: FREQUENCY NET "RCLK_c" 299.401000 MHz ; - 459 items scored, 245 timing errors detected. +Preference: FREQUENCY PORT "PHI2" 2.900000 MHz ; + 170 items scored, 0 timing errors detected. -------------------------------------------------------------------------------- -Error: The following path exceeds requirements by 3.815ns +Passed: The following path meets requirements by 161.824ns (weighted slack = 323.648ns) Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q FS_610__i13 (from RCLK_c +) - Destination: FF Data in n8MEGEN_418 (to RCLK_c +) + Source: FF Q Bank_0io[3] (from PHI2_c +) + Destination: FF Data in CmdEnable (to PHI2_c -) - Delay: 6.873ns (28.2% logic, 71.8% route), 4 logic levels. + Delay: 10.424ns (36.2% logic, 63.8% route), 7 logic levels. Constraint Details: - 6.873ns physical path delay SLICE_0 to SLICE_57 exceeds - 3.340ns delay constraint less - 0.282ns CE_SET requirement (totaling 3.058ns) by 3.815ns + 10.424ns physical path delay Din[3]_MGIOL to SLICE_18 meets + 172.414ns delay constraint less + 0.166ns DIN_SET requirement (totaling 172.248ns) by 161.824ns Physical Path Details: - Data path SLICE_0 to SLICE_57: + Data path Din[3]_MGIOL to SLICE_18: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 SLICE_0.CLK to SLICE_0.Q0 SLICE_0 (from RCLK_c) -ROUTE 3 e 1.234 SLICE_0.Q0 to SLICE_85.B0 FS_13 -CTOF_DEL --- 0.495 SLICE_85.B0 to SLICE_85.F0 SLICE_85 -ROUTE 5 e 1.234 SLICE_85.F0 to SLICE_57.A1 n10 -CTOF_DEL --- 0.495 SLICE_57.A1 to SLICE_57.F1 SLICE_57 -ROUTE 2 e 1.234 SLICE_57.F1 to SLICE_84.A0 n2367 -CTOF_DEL --- 0.495 SLICE_84.A0 to SLICE_84.F0 SLICE_84 -ROUTE 1 e 1.234 SLICE_84.F0 to SLICE_57.CE RCLK_c_enable_15 (to RCLK_c) +C2INP_DEL --- 0.577 *[3]_MGIOL.CLK to *n[3]_MGIOL.IN Din[3]_MGIOL (from PHI2_c) +ROUTE 1 e 1.234 *n[3]_MGIOL.IN to SLICE_43.C1 Bank[3] +CTOF_DEL --- 0.495 SLICE_43.C1 to SLICE_43.F1 SLICE_43 +ROUTE 1 e 1.234 SLICE_43.F1 to SLICE_69.D0 un1_Bank_1_4 +CTOF_DEL --- 0.495 SLICE_69.D0 to SLICE_69.F0 SLICE_69 +ROUTE 5 e 1.234 SLICE_69.F0 to SLICE_60.D0 un1_Bank_1 +CTOF_DEL --- 0.495 SLICE_60.D0 to SLICE_60.F0 SLICE_60 +ROUTE 2 e 1.234 SLICE_60.F0 to SLICE_46.A1 ADWR +CTOF_DEL --- 0.495 SLICE_46.A1 to SLICE_46.F1 SLICE_46 +ROUTE 3 e 0.480 SLICE_46.F1 to SLICE_46.D0 un1_ADWR +CTOF_DEL --- 0.495 SLICE_46.D0 to SLICE_46.F0 SLICE_46 +ROUTE 1 e 1.234 SLICE_46.F0 to SLICE_18.C0 un1_CMDWR +CTOOFX_DEL --- 0.721 SLICE_18.C0 to SLICE_18.OFX0 SLICE_18 +ROUTE 1 e 0.001 SLICE_18.OFX0 to SLICE_18.DI0 CmdEnable_s (to PHI2_c) -------- - 6.873 (28.2% logic, 71.8% route), 4 logic levels. + 10.424 (36.2% logic, 63.8% route), 7 logic levels. -Warning: 139.762MHz is the maximum frequency for this preference. +Report: 47.214MHz is the maximum frequency for this preference. ================================================================================ -Preference: FREQUENCY NET "PHI2_c" 99.079000 MHz ; - 113 items scored, 104 timing errors detected. +Preference: FREQUENCY PORT "nCCAS" 2.900000 MHz ; + 0 items scored, 0 timing errors detected. -------------------------------------------------------------------------------- -Error: The following path exceeds requirements by 4.837ns (weighted slack = -9.674ns) +Passed: The following path meets requirements by 338.168ns + The internal maximum frequency of the following component is 150.150 MHz + + Logical Details: Cell type Pin name Component name + + Destination: PIO PAD nCCAS + + Delay: 6.660ns -- based on Minimum Pulse Width + +Report: 150.150MHz is the maximum frequency for this preference. + + +================================================================================ +Preference: FREQUENCY PORT "nCRAS" 2.900000 MHz ; + 0 items scored, 0 timing errors detected. +-------------------------------------------------------------------------------- + + +Passed: The following path meets requirements by 338.168ns + The internal maximum frequency of the following component is 150.150 MHz + + Logical Details: Cell type Pin name Component name + + Destination: PIO PAD nCRAS + + Delay: 6.660ns -- based on Minimum Pulse Width + +Report: 150.150MHz is the maximum frequency for this preference. + + +================================================================================ +Preference: FREQUENCY PORT "RCLK" 62.500000 MHz ; + 590 items scored, 0 timing errors detected. +-------------------------------------------------------------------------------- + + +Passed: The following path meets requirements by 4.412ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q Bank_i7 (from PHI2_c +) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) + Source: FF Q FS[17] (from RCLK_c +) + Destination: FF Data in LEDEN (to RCLK_c +) - Delay: 9.577ns (30.6% logic, 69.4% route), 6 logic levels. + Delay: 11.306ns (30.3% logic, 69.7% route), 7 logic levels. Constraint Details: - 9.577ns physical path delay SLICE_101 to SLICE_19 exceeds - 5.047ns delay constraint less - 0.307ns CE_SET requirement (totaling 4.740ns) by 4.837ns + 11.306ns physical path delay SLICE_1 to SLICE_27 meets + 16.000ns delay constraint less + 0.282ns CE_SET requirement (totaling 15.718ns) by 4.412ns Physical Path Details: - Data path SLICE_101 to SLICE_19: + Data path SLICE_1 to SLICE_27: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 SLICE_101.CLK to SLICE_101.Q1 SLICE_101 (from PHI2_c) -ROUTE 1 e 1.234 SLICE_101.Q1 to SLICE_100.C1 Bank_7 -CTOF_DEL --- 0.495 SLICE_100.C1 to SLICE_100.F1 SLICE_100 -ROUTE 1 e 1.234 SLICE_100.F1 to SLICE_74.B1 n2277 -CTOF_DEL --- 0.495 SLICE_74.B1 to SLICE_74.F1 SLICE_74 -ROUTE 8 e 1.234 SLICE_74.F1 to SLICE_91.B1 n26 -CTOF_DEL --- 0.495 SLICE_91.B1 to SLICE_91.F1 SLICE_91 -ROUTE 1 e 1.234 SLICE_91.F1 to SLICE_88.D0 n2362 -CTOF_DEL --- 0.495 SLICE_88.D0 to SLICE_88.F0 SLICE_88 -ROUTE 3 e 0.480 SLICE_88.F0 to SLICE_88.C1 C1Submitted_N_237 -CTOF_DEL --- 0.495 SLICE_88.C1 to SLICE_88.F1 SLICE_88 -ROUTE 1 e 1.234 SLICE_88.F1 to SLICE_19.CE PHI2_N_120_enable_1 (to PHI2_c) +REG_DEL --- 0.452 SLICE_1.CLK to SLICE_1.Q0 SLICE_1 (from RCLK_c) +ROUTE 3 e 1.234 SLICE_1.Q0 to SLICE_72.D1 FS[17] +CTOF_DEL --- 0.495 SLICE_72.D1 to SLICE_72.F1 SLICE_72 +ROUTE 1 e 1.234 SLICE_72.F1 to SLICE_64.C1 UFMSDI_ens2_i_o2_0_3 +CTOF_DEL --- 0.495 SLICE_64.C1 to SLICE_64.F1 SLICE_64 +ROUTE 4 e 1.234 SLICE_64.F1 to SLICE_59.C1 N_129 +CTOF_DEL --- 0.495 SLICE_59.C1 to SLICE_59.F1 SLICE_59 +ROUTE 2 e 0.480 SLICE_59.F1 to SLICE_59.D0 N_145 +CTOF_DEL --- 0.495 SLICE_59.D0 to SLICE_59.F0 SLICE_59 +ROUTE 2 e 1.234 SLICE_59.F0 to SLICE_56.B0 N_139_8 +CTOF_DEL --- 0.495 SLICE_56.B0 to SLICE_56.F0 SLICE_56 +ROUTE 1 e 1.234 SLICE_56.F0 to SLICE_54.C0 N_140 +CTOF_DEL --- 0.495 SLICE_54.C0 to SLICE_54.F0 SLICE_54 +ROUTE 1 e 1.234 SLICE_54.F0 to SLICE_27.CE N_28 (to RCLK_c) -------- - 9.577 (30.6% logic, 69.4% route), 6 logic levels. + 11.306 (30.3% logic, 69.7% route), 7 logic levels. -Warning: 50.592MHz is the maximum frequency for this preference. +Report: 86.296MHz is the maximum frequency for this preference. Report Summary -------------- @@ -145,21 +192,18 @@ Warning: 50.592MHz is the maximum frequency for this preference. Preference | Constraint| Actual|Levels ---------------------------------------------------------------------------- | | | -FREQUENCY NET "RCLK_c" 299.401000 MHz ; | 299.401 MHz| 139.762 MHz| 4 * +FREQUENCY PORT "PHI2" 2.900000 MHz ; | 2.900 MHz| 47.214 MHz| 7 | | | -FREQUENCY NET "PHI2_c" 99.079000 MHz ; | 99.079 MHz| 50.592 MHz| 6 * +FREQUENCY PORT "nCCAS" 2.900000 MHz ; | 2.900 MHz| 150.150 MHz| 0 + | | | +FREQUENCY PORT "nCRAS" 2.900000 MHz ; | 2.900 MHz| 150.150 MHz| 0 + | | | +FREQUENCY PORT "RCLK" 62.500000 MHz ; | 62.500 MHz| 86.296 MHz| 7 | | | ---------------------------------------------------------------------------- -2 preferences(marked by "*" above) not met. - ----------------------------------------------------------------------------- -Critical Nets | Loads| Errors| % of total ----------------------------------------------------------------------------- -n26 | 8| 78| 22.35% - | | | ----------------------------------------------------------------------------- +All preferences were met. Clock Domains Analysis @@ -167,14 +211,20 @@ n26 | 8| 78| 22.35% Found 4 clocks: -Clock Domain: nCRAS_c Source: nCRAS.PAD Loads: 9 +Clock Domain: nCRAS_c Source: nCRAS.PAD Loads: 12 No transfer within this clock domain is found -Clock Domain: nCCAS_c Source: nCCAS.PAD Loads: 6 + Data transfers from: + Clock Domain: RCLK_c Source: RCLK.PAD + Not reported because source and destination domains are unrelated. + To report these transfers please refer to preference CLKSKEWDIFF to define + external clock skew between clock ports. + +Clock Domain: nCCAS_c Source: nCCAS.PAD Loads: 10 No transfer within this clock domain is found -Clock Domain: RCLK_c Source: RCLK.PAD Loads: 40 - Covered under: FREQUENCY NET "RCLK_c" 299.401000 MHz ; +Clock Domain: RCLK_c Source: RCLK.PAD Loads: 39 + Covered under: FREQUENCY PORT "RCLK" 62.500000 MHz ; Data transfers from: Clock Domain: nCRAS_c Source: nCRAS.PAD @@ -187,8 +237,8 @@ Clock Domain: RCLK_c Source: RCLK.PAD Loads: 40 To report these transfers please refer to preference CLKSKEWDIFF to define external clock skew between clock ports. -Clock Domain: PHI2_c Source: PHI2.PAD Loads: 14 - Covered under: FREQUENCY NET "PHI2_c" 99.079000 MHz ; +Clock Domain: PHI2_c Source: PHI2.PAD Loads: 19 + Covered under: FREQUENCY PORT "PHI2" 2.900000 MHz ; Data transfers from: Clock Domain: RCLK_c Source: RCLK.PAD @@ -200,14 +250,14 @@ Clock Domain: PHI2_c Source: PHI2.PAD Loads: 14 Timing summary (Setup): --------------- -Timing errors: 349 Score: 848079 -Cumulative negative slack: 584487 +Timing errors: 0 Score: 0 +Cumulative negative slack: 0 -Constraints cover 572 paths, 2 nets, and 409 connections (60.68% coverage) +Constraints cover 760 paths, 4 nets, and 422 connections (60.03% coverage) -------------------------------------------------------------------------------- Lattice TRACE Report - Hold, Version Diamond (64-bit) 3.12.1.454 -Tue Aug 15 05:03:25 2023 +Tue Aug 15 22:56:32 2023 Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. Copyright (c) 1995 AT&T Corp. All rights reserved. @@ -226,9 +276,13 @@ Report level: verbose report, limited to 1 item per preference Preference Summary -
  • FREQUENCY NET "RCLK_c" 299.401000 MHz (0 errors)
  • 459 items scored, 0 timing errors detected. +
  • FREQUENCY PORT "PHI2" 2.900000 MHz (0 errors)
  • 170 items scored, 0 timing errors detected. -
  • FREQUENCY NET "PHI2_c" 99.079000 MHz (0 errors)
  • 113 items scored, 0 timing errors detected. +
  • FREQUENCY PORT "nCCAS" 2.900000 MHz (0 errors)
  • 0 items scored, 0 timing errors detected. + +
  • FREQUENCY PORT "nCRAS" 2.900000 MHz (0 errors)
  • 0 items scored, 0 timing errors detected. + +
  • FREQUENCY PORT "RCLK" 62.500000 MHz (0 errors)
  • 590 items scored, 0 timing errors detected. BLOCK ASYNCPATHS BLOCK RESETPATHS @@ -237,40 +291,8 @@ BLOCK RESETPATHS ================================================================================ -Preference: FREQUENCY NET "RCLK_c" 299.401000 MHz ; - 459 items scored, 0 timing errors detected. --------------------------------------------------------------------------------- - - -Passed: The following path meets requirements by 0.351ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q IS_FSM__i4 (from RCLK_c +) - Destination: FF Data in IS_FSM__i5 (to RCLK_c +) - - Delay: 0.332ns (40.1% logic, 59.9% route), 1 logic levels. - - Constraint Details: - - 0.332ns physical path delay SLICE_106 to SLICE_106 meets - -0.019ns M_HLD and - 0.000ns delay constraint requirement (totaling -0.019ns) by 0.351ns - - Physical Path Details: - - Data path SLICE_106 to SLICE_106: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 SLICE_106.CLK to SLICE_106.Q0 SLICE_106 (from RCLK_c) -ROUTE 1 e 0.199 SLICE_106.Q0 to SLICE_106.M1 n736 (to RCLK_c) - -------- - 0.332 (40.1% logic, 59.9% route), 1 logic levels. - - -================================================================================ -Preference: FREQUENCY NET "PHI2_c" 99.079000 MHz ; - 113 items scored, 0 timing errors detected. +Preference: FREQUENCY PORT "PHI2" 2.900000 MHz ; + 170 items scored, 0 timing errors detected. -------------------------------------------------------------------------------- @@ -278,38 +300,86 @@ Passed: The following path meets requirements by 0.447ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q C1Submitted_406 (from PHI2_c -) - Destination: FF Data in C1Submitted_406 (to PHI2_c -) + Source: FF Q ADSubmitted (from PHI2_c -) + Destination: FF Data in ADSubmitted (to PHI2_c -) Delay: 0.434ns (53.9% logic, 46.1% route), 2 logic levels. Constraint Details: - 0.434ns physical path delay SLICE_15 to SLICE_15 meets + 0.434ns physical path delay SLICE_10 to SLICE_10 meets -0.013ns DIN_HLD and 0.000ns delay constraint requirement (totaling -0.013ns) by 0.447ns Physical Path Details: - Data path SLICE_15 to SLICE_15: + Data path SLICE_10 to SLICE_10: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 SLICE_15.CLK to SLICE_15.Q0 SLICE_15 (from PHI2_c) -ROUTE 2 e 0.199 SLICE_15.Q0 to SLICE_15.C0 C1Submitted -CTOF_DEL --- 0.101 SLICE_15.C0 to SLICE_15.F0 SLICE_15 -ROUTE 1 e 0.001 SLICE_15.F0 to SLICE_15.DI0 n1398 (to PHI2_c) +REG_DEL --- 0.133 SLICE_10.CLK to SLICE_10.Q0 SLICE_10 (from PHI2_c) +ROUTE 2 e 0.199 SLICE_10.Q0 to SLICE_10.A0 ADSubmitted +CTOF_DEL --- 0.101 SLICE_10.A0 to SLICE_10.F0 SLICE_10 +ROUTE 1 e 0.001 SLICE_10.F0 to SLICE_10.DI0 ADSubmitted_r (to PHI2_c) -------- 0.434 (53.9% logic, 46.1% route), 2 logic levels. + +================================================================================ +Preference: FREQUENCY PORT "nCCAS" 2.900000 MHz ; + 0 items scored, 0 timing errors detected. +-------------------------------------------------------------------------------- + + +================================================================================ +Preference: FREQUENCY PORT "nCRAS" 2.900000 MHz ; + 0 items scored, 0 timing errors detected. +-------------------------------------------------------------------------------- + + +================================================================================ +Preference: FREQUENCY PORT "RCLK" 62.500000 MHz ; + 590 items scored, 0 timing errors detected. +-------------------------------------------------------------------------------- + + +Passed: The following path meets requirements by 0.351ns + + Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) + + Source: FF Q CASr (from RCLK_c +) + Destination: FF Data in CASr2 (to RCLK_c +) + + Delay: 0.332ns (40.1% logic, 59.9% route), 1 logic levels. + + Constraint Details: + + 0.332ns physical path delay SLICE_14 to SLICE_14 meets + -0.019ns M_HLD and + 0.000ns delay constraint requirement (totaling -0.019ns) by 0.351ns + + Physical Path Details: + + Data path SLICE_14 to SLICE_14: + + Name Fanout Delay (ns) Site Resource +REG_DEL --- 0.133 SLICE_14.CLK to SLICE_14.Q0 SLICE_14 (from RCLK_c) +ROUTE 1 e 0.199 SLICE_14.Q0 to SLICE_14.M1 CASr (to RCLK_c) + -------- + 0.332 (40.1% logic, 59.9% route), 1 logic levels. + Report Summary -------------- ---------------------------------------------------------------------------- Preference(MIN Delays) | Constraint| Actual|Levels ---------------------------------------------------------------------------- | | | -FREQUENCY NET "RCLK_c" 299.401000 MHz ; | 0.000 ns| 0.351 ns| 1 +FREQUENCY PORT "PHI2" 2.900000 MHz ; | -| -| 2 | | | -FREQUENCY NET "PHI2_c" 99.079000 MHz ; | 0.000 ns| 0.447 ns| 2 +FREQUENCY PORT "nCCAS" 2.900000 MHz ; | -| -| 0 + | | | +FREQUENCY PORT "nCRAS" 2.900000 MHz ; | -| -| 0 + | | | +FREQUENCY PORT "RCLK" 62.500000 MHz ; | -| -| 1 | | | ---------------------------------------------------------------------------- @@ -322,14 +392,20 @@ All preferences were met. Found 4 clocks: -Clock Domain: nCRAS_c Source: nCRAS.PAD Loads: 9 +Clock Domain: nCRAS_c Source: nCRAS.PAD Loads: 12 No transfer within this clock domain is found -Clock Domain: nCCAS_c Source: nCCAS.PAD Loads: 6 + Data transfers from: + Clock Domain: RCLK_c Source: RCLK.PAD + Not reported because source and destination domains are unrelated. + To report these transfers please refer to preference CLKSKEWDIFF to define + external clock skew between clock ports. + +Clock Domain: nCCAS_c Source: nCCAS.PAD Loads: 10 No transfer within this clock domain is found -Clock Domain: RCLK_c Source: RCLK.PAD Loads: 40 - Covered under: FREQUENCY NET "RCLK_c" 299.401000 MHz ; +Clock Domain: RCLK_c Source: RCLK.PAD Loads: 39 + Covered under: FREQUENCY PORT "RCLK" 62.500000 MHz ; Data transfers from: Clock Domain: nCRAS_c Source: nCRAS.PAD @@ -342,8 +418,8 @@ Clock Domain: RCLK_c Source: RCLK.PAD Loads: 40 To report these transfers please refer to preference CLKSKEWDIFF to define external clock skew between clock ports. -Clock Domain: PHI2_c Source: PHI2.PAD Loads: 14 - Covered under: FREQUENCY NET "PHI2_c" 99.079000 MHz ; +Clock Domain: PHI2_c Source: PHI2.PAD Loads: 19 + Covered under: FREQUENCY PORT "PHI2" 2.900000 MHz ; Data transfers from: Clock Domain: RCLK_c Source: RCLK.PAD @@ -358,16 +434,16 @@ Clock Domain: PHI2_c Source: PHI2.PAD Loads: 14 Timing errors: 0 Score: 0 Cumulative negative slack: 0 -Constraints cover 572 paths, 2 nets, and 409 connections (60.68% coverage) +Constraints cover 760 paths, 4 nets, and 422 connections (60.03% coverage) Timing summary (Setup and Hold): --------------- -Timing errors: 349 (setup), 0 (hold) -Score: 848079 (setup), 0 (hold) -Cumulative negative slack: 584487 (584487+0) +Timing errors: 0 (setup), 0 (hold) +Score: 0 (setup), 0 (hold) +Cumulative negative slack: 0 (0+0) -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- diff --git a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_twr.html b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_twr.html index 7c66cde..4a10516 100644 --- a/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_twr.html +++ b/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_twr.html @@ -22,7 +22,7 @@ Setup and Hold Report -------------------------------------------------------------------------------- Lattice TRACE Report - Setup, Version Diamond (64-bit) 3.12.1.454 -Tue Aug 15 05:03:36 2023 +Tue Aug 15 22:56:39 2023 Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. Copyright (c) 1995 AT&T Corp. All rights reserved. @@ -41,15 +41,18 @@ Report level: verbose report, limited to 10 items per preference Preference Summary -
  • FREQUENCY NET "RCLK_c" 299.401000 MHz (264 errors)
  • -
    459 items scored, 264 timing errors detected. -Warning: 160.205MHz is the maximum frequency for this preference. +
  • FREQUENCY PORT "PHI2" 2.900000 MHz (0 errors)
  • 170 items scored, 0 timing errors detected. +Report: 55.475MHz is the maximum frequency for this preference. -
  • FREQUENCY NET "PHI2_c" 99.079000 MHz (85 errors)
  • -
    113 items scored, 85 timing errors detected. -Warning: 65.729MHz is the maximum frequency for this preference. +
  • FREQUENCY PORT "nCCAS" 2.900000 MHz (0 errors)
  • 0 items scored, 0 timing errors detected. +Report: 150.150MHz is the maximum frequency for this preference. + +
  • FREQUENCY PORT "nCRAS" 2.900000 MHz (0 errors)
  • 0 items scored, 0 timing errors detected. +Report: 150.150MHz is the maximum frequency for this preference. + +
  • FREQUENCY PORT "RCLK" 62.500000 MHz (0 errors)
  • 590 items scored, 0 timing errors detected. +Report: 101.286MHz is the maximum frequency for this preference. -Report Type: based on TRACE automatically generated preferences BLOCK ASYNCPATHS BLOCK RESETPATHS -------------------------------------------------------------------------------- @@ -57,1045 +60,1125 @@ BLOCK RESETPATHS ================================================================================ -Preference: FREQUENCY NET "RCLK_c" 299.401000 MHz ; - 459 items scored, 264 timing errors detected. +Preference: FREQUENCY PORT "PHI2" 2.900000 MHz ; + 170 items scored, 0 timing errors detected. -------------------------------------------------------------------------------- -Error: The following path exceeds requirements by 2.902ns +Passed: The following path meets requirements by 163.401ns (weighted slack = 326.802ns) Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q FS_610__i12 (from RCLK_c +) - Destination: FF Data in UFMSDI_417 (to RCLK_c +) + Source: FF Q Bank_0io[3] (from PHI2_c +) + Destination: FF Data in CmdUFMSDI (to PHI2_c -) - Delay: 6.076ns (40.0% logic, 60.0% route), 5 logic levels. + Delay: 8.950ns (28.6% logic, 71.4% route), 5 logic levels. Constraint Details: - 6.076ns physical path delay SLICE_1 to SLICE_45 exceeds - 3.340ns delay constraint less + 8.950ns physical path delay Din[3]_MGIOL to Din[0]_MGIOL meets + 172.414ns delay constraint less 0.000ns skew and - 0.166ns DIN_SET requirement (totaling 3.174ns) by 2.902ns + 0.063ns CE_SET requirement (totaling 172.351ns) by 163.401ns Physical Path Details: - Data path SLICE_1 to SLICE_45: + Data path Din[3]_MGIOL to Din[0]_MGIOL: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R6C8C.CLK to R6C8C.Q1 SLICE_1 (from RCLK_c) -ROUTE 5 0.984 R6C8C.Q1 to R4C8D.D1 FS_12 -CTOF_DEL --- 0.495 R4C8D.D1 to R4C8D.F1 SLICE_80 -ROUTE 3 1.598 R4C8D.F1 to R4C7B.C1 n2375 -CTOF_DEL --- 0.495 R4C7B.C1 to R4C7B.F1 SLICE_95 -ROUTE 1 0.436 R4C7B.F1 to R4C7A.C1 n7 -CTOF_DEL --- 0.495 R4C7A.C1 to R4C7A.F1 SLICE_45 -ROUTE 1 0.626 R4C7A.F1 to R4C7A.D0 n2174 -CTOF_DEL --- 0.495 R4C7A.D0 to R4C7A.F0 SLICE_45 -ROUTE 1 0.000 R4C7A.F0 to R4C7A.DI0 UFMSDI_N_231 (to RCLK_c) +C2INP_DEL --- 0.577 IOL_T6C.CLK to IOL_T6C.IN Din[3]_MGIOL (from PHI2_c) +ROUTE 1 1.496 IOL_T6C.IN to R4C6A.C1 Bank[3] +CTOF_DEL --- 0.495 R4C6A.C1 to R4C6A.F1 SLICE_43 +ROUTE 1 0.623 R4C6A.F1 to R3C6A.D0 un1_Bank_1_4 +CTOF_DEL --- 0.495 R3C6A.D0 to R3C6A.F0 SLICE_69 +ROUTE 5 1.213 R3C6A.F0 to R4C8A.C0 un1_Bank_1 +CTOF_DEL --- 0.495 R4C8A.C0 to R4C8A.F0 SLICE_57 +ROUTE 5 0.710 R4C8A.F0 to R4C8B.B1 XOR8MEG18 +CTOF_DEL --- 0.495 R4C8B.B1 to R4C8B.F1 SLICE_20 +ROUTE 3 2.351 R4C8B.F1 to IOL_L2C.CE CmdUFMCLK_1_sqmuxa (to PHI2_c) -------- - 6.076 (40.0% logic, 60.0% route), 5 logic levels. + 8.950 (28.6% logic, 71.4% route), 5 logic levels. Clock Skew Details: - Source Clock Path RCLK to SLICE_1: + Source Clock Path PHI2 to Din[3]_MGIOL: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R6C8C.CLK RCLK_c +ROUTE 19 3.712 8.PADDI to IOL_T6C.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.712 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path RCLK to SLICE_45: + Destination Clock Path PHI2 to Din[0]_MGIOL: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R4C7A.CLK RCLK_c +ROUTE 19 3.712 8.PADDI to IOL_L2C.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.712 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 2.710ns +Passed: The following path meets requirements by 163.452ns (weighted slack = 326.904ns) Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q FS_610__i14 (from RCLK_c +) - Destination: FF Data in UFMSDI_417 (to RCLK_c +) + Source: FF Q Bank_0io[7] (from PHI2_c +) + Destination: FF Data in CmdUFMSDI (to PHI2_c -) - Delay: 5.884ns (41.3% logic, 58.7% route), 5 logic levels. + Delay: 8.899ns (28.7% logic, 71.3% route), 5 logic levels. Constraint Details: - 5.884ns physical path delay SLICE_0 to SLICE_45 exceeds - 3.340ns delay constraint less + 8.899ns physical path delay Din[7]_MGIOL to Din[0]_MGIOL meets + 172.414ns delay constraint less 0.000ns skew and - 0.166ns DIN_SET requirement (totaling 3.174ns) by 2.710ns + 0.063ns CE_SET requirement (totaling 172.351ns) by 163.452ns Physical Path Details: - Data path SLICE_0 to SLICE_45: + Data path Din[7]_MGIOL to Din[0]_MGIOL: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R6C8D.CLK to R6C8D.Q1 SLICE_0 (from RCLK_c) -ROUTE 5 0.792 R6C8D.Q1 to R4C8D.C1 FS_14 -CTOF_DEL --- 0.495 R4C8D.C1 to R4C8D.F1 SLICE_80 -ROUTE 3 1.598 R4C8D.F1 to R4C7B.C1 n2375 -CTOF_DEL --- 0.495 R4C7B.C1 to R4C7B.F1 SLICE_95 -ROUTE 1 0.436 R4C7B.F1 to R4C7A.C1 n7 -CTOF_DEL --- 0.495 R4C7A.C1 to R4C7A.F1 SLICE_45 -ROUTE 1 0.626 R4C7A.F1 to R4C7A.D0 n2174 -CTOF_DEL --- 0.495 R4C7A.D0 to R4C7A.F0 SLICE_45 -ROUTE 1 0.000 R4C7A.F0 to R4C7A.DI0 UFMSDI_N_231 (to RCLK_c) +C2INP_DEL --- 0.577 IOL_L2A.CLK to IOL_L2A.IN Din[7]_MGIOL (from PHI2_c) +ROUTE 1 1.375 IOL_L2A.IN to R3C6A.D1 Bank[7] +CTOF_DEL --- 0.495 R3C6A.D1 to R3C6A.F1 SLICE_69 +ROUTE 1 0.693 R3C6A.F1 to R3C6A.B0 un1_Bank_1_3 +CTOF_DEL --- 0.495 R3C6A.B0 to R3C6A.F0 SLICE_69 +ROUTE 5 1.213 R3C6A.F0 to R4C8A.C0 un1_Bank_1 +CTOF_DEL --- 0.495 R4C8A.C0 to R4C8A.F0 SLICE_57 +ROUTE 5 0.710 R4C8A.F0 to R4C8B.B1 XOR8MEG18 +CTOF_DEL --- 0.495 R4C8B.B1 to R4C8B.F1 SLICE_20 +ROUTE 3 2.351 R4C8B.F1 to IOL_L2C.CE CmdUFMCLK_1_sqmuxa (to PHI2_c) -------- - 5.884 (41.3% logic, 58.7% route), 5 logic levels. + 8.899 (28.7% logic, 71.3% route), 5 logic levels. Clock Skew Details: - Source Clock Path RCLK to SLICE_0: + Source Clock Path PHI2 to Din[7]_MGIOL: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R6C8D.CLK RCLK_c +ROUTE 19 3.712 8.PADDI to IOL_L2A.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.712 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path RCLK to SLICE_45: + Destination Clock Path PHI2 to Din[0]_MGIOL: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R4C7A.CLK RCLK_c +ROUTE 19 3.712 8.PADDI to IOL_L2C.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.712 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 2.665ns +Passed: The following path meets requirements by 163.522ns (weighted slack = 327.044ns) Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q CASr2_383 (from RCLK_c +) - Destination: FF Data in nRCS_396 (to RCLK_c +) + Source: FF Q Bank_0io[4] (from PHI2_c +) + Destination: FF Data in CmdUFMSDI (to PHI2_c -) - Delay: 5.839ns (41.7% logic, 58.3% route), 5 logic levels. + Delay: 8.829ns (29.0% logic, 71.0% route), 5 logic levels. Constraint Details: - 5.839ns physical path delay SLICE_16 to SLICE_61 exceeds - 3.340ns delay constraint less + 8.829ns physical path delay Din[4]_MGIOL to Din[0]_MGIOL meets + 172.414ns delay constraint less 0.000ns skew and - 0.166ns DIN_SET requirement (totaling 3.174ns) by 2.665ns + 0.063ns CE_SET requirement (totaling 172.351ns) by 163.522ns Physical Path Details: - Data path SLICE_16 to SLICE_61: + Data path Din[4]_MGIOL to Din[0]_MGIOL: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R4C9B.CLK to R4C9B.Q1 SLICE_16 (from RCLK_c) -ROUTE 3 1.000 R4C9B.Q1 to R6C9D.A0 CASr2 -CTOF_DEL --- 0.495 R6C9D.A0 to R6C9D.F0 SLICE_96 -ROUTE 2 0.976 R6C9D.F0 to R6C9C.A0 nRCS_N_146 -CTOF_DEL --- 0.495 R6C9C.A0 to R6C9C.F0 SLICE_81 -ROUTE 2 0.995 R6C9C.F0 to R6C11D.A1 nRCS_N_142 -CTOF_DEL --- 0.495 R6C11D.A1 to R6C11D.F1 SLICE_61 -ROUTE 1 0.436 R6C11D.F1 to R6C11D.C0 nRCS_N_141 -CTOF_DEL --- 0.495 R6C11D.C0 to R6C11D.F0 SLICE_61 -ROUTE 1 0.000 R6C11D.F0 to R6C11D.DI0 nRCS_N_136 (to RCLK_c) +C2INP_DEL --- 0.577 IOL_T6A.CLK to IOL_T6A.IN Din[4]_MGIOL (from PHI2_c) +ROUTE 1 1.375 IOL_T6A.IN to R4C6A.D1 Bank[4] +CTOF_DEL --- 0.495 R4C6A.D1 to R4C6A.F1 SLICE_43 +ROUTE 1 0.623 R4C6A.F1 to R3C6A.D0 un1_Bank_1_4 +CTOF_DEL --- 0.495 R3C6A.D0 to R3C6A.F0 SLICE_69 +ROUTE 5 1.213 R3C6A.F0 to R4C8A.C0 un1_Bank_1 +CTOF_DEL --- 0.495 R4C8A.C0 to R4C8A.F0 SLICE_57 +ROUTE 5 0.710 R4C8A.F0 to R4C8B.B1 XOR8MEG18 +CTOF_DEL --- 0.495 R4C8B.B1 to R4C8B.F1 SLICE_20 +ROUTE 3 2.351 R4C8B.F1 to IOL_L2C.CE CmdUFMCLK_1_sqmuxa (to PHI2_c) -------- - 5.839 (41.7% logic, 58.3% route), 5 logic levels. + 8.829 (29.0% logic, 71.0% route), 5 logic levels. Clock Skew Details: - Source Clock Path RCLK to SLICE_16: + Source Clock Path PHI2 to Din[4]_MGIOL: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R4C9B.CLK RCLK_c +ROUTE 19 3.712 8.PADDI to IOL_T6A.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.712 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path RCLK to SLICE_61: + Destination Clock Path PHI2 to Din[0]_MGIOL: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R6C11D.CLK RCLK_c +ROUTE 19 3.712 8.PADDI to IOL_L2C.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.712 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 2.621ns +Passed: The following path meets requirements by 163.573ns (weighted slack = 327.146ns) Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q FS_610__i15 (from RCLK_c +) - Destination: FF Data in n8MEGEN_418 (to RCLK_c +) + Source: FF Q Bank_0io[3] (from PHI2_c +) + Destination: FF Data in CmdEnable (to PHI2_c -) - Delay: 5.679ns (34.1% logic, 65.9% route), 4 logic levels. + Delay: 8.502ns (44.4% logic, 55.6% route), 7 logic levels. Constraint Details: - 5.679ns physical path delay SLICE_9 to SLICE_57 exceeds - 3.340ns delay constraint less - 0.000ns skew and - 0.282ns CE_SET requirement (totaling 3.058ns) by 2.621ns + 8.502ns physical path delay Din[3]_MGIOL to SLICE_18 meets + 172.414ns delay constraint less + 0.173ns skew and + 0.166ns DIN_SET requirement (totaling 172.075ns) by 163.573ns Physical Path Details: - Data path SLICE_9 to SLICE_57: + Data path Din[3]_MGIOL to SLICE_18: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R6C9A.CLK to R6C9A.Q0 SLICE_9 (from RCLK_c) -ROUTE 3 1.320 R6C9A.Q0 to R4C8A.A0 FS_15 -CTOF_DEL --- 0.495 R4C8A.A0 to R4C8A.F0 SLICE_85 -ROUTE 5 0.793 R4C8A.F0 to R4C8B.C1 n10 -CTOF_DEL --- 0.495 R4C8B.C1 to R4C8B.F1 SLICE_57 -ROUTE 2 0.976 R4C8B.F1 to R4C8C.A0 n2367 -CTOF_DEL --- 0.495 R4C8C.A0 to R4C8C.F0 SLICE_84 -ROUTE 1 0.653 R4C8C.F0 to R4C8B.CE RCLK_c_enable_15 (to RCLK_c) +C2INP_DEL --- 0.577 IOL_T6C.CLK to IOL_T6C.IN Din[3]_MGIOL (from PHI2_c) +ROUTE 1 1.496 IOL_T6C.IN to R4C6A.C1 Bank[3] +CTOF_DEL --- 0.495 R4C6A.C1 to R4C6A.F1 SLICE_43 +ROUTE 1 0.623 R4C6A.F1 to R3C6A.D0 un1_Bank_1_4 +CTOF_DEL --- 0.495 R3C6A.D0 to R3C6A.F0 SLICE_69 +ROUTE 5 1.092 R3C6A.F0 to R4C8D.D0 un1_Bank_1 +CTOF_DEL --- 0.495 R4C8D.D0 to R4C8D.F0 SLICE_60 +ROUTE 2 0.758 R4C8D.F0 to R3C8D.C1 ADWR +CTOF_DEL --- 0.495 R3C8D.C1 to R3C8D.F1 SLICE_46 +ROUTE 3 0.445 R3C8D.F1 to R3C8D.C0 un1_ADWR +CTOF_DEL --- 0.495 R3C8D.C0 to R3C8D.F0 SLICE_46 +ROUTE 1 0.315 R3C8D.F0 to R3C8C.D0 un1_CMDWR +CTOOFX_DEL --- 0.721 R3C8C.D0 to R3C8C.OFX0 SLICE_18 +ROUTE 1 0.000 R3C8C.OFX0 to R3C8C.DI0 CmdEnable_s (to PHI2_c) -------- - 5.679 (34.1% logic, 65.9% route), 4 logic levels. + 8.502 (44.4% logic, 55.6% route), 7 logic levels. Clock Skew Details: - Source Clock Path RCLK to SLICE_9: + Source Clock Path PHI2 to Din[3]_MGIOL: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R6C9A.CLK RCLK_c +ROUTE 19 3.712 8.PADDI to IOL_T6C.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.712 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path RCLK to SLICE_57: + Destination Clock Path PHI2 to SLICE_18: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R4C8B.CLK RCLK_c +ROUTE 19 3.539 8.PADDI to R3C8C.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.539 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 2.513ns +Passed: The following path meets requirements by 163.624ns (weighted slack = 327.248ns) Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q FS_610__i12 (from RCLK_c +) - Destination: FF Data in n8MEGEN_418 (to RCLK_c +) + Source: FF Q Bank_0io[7] (from PHI2_c +) + Destination: FF Data in CmdEnable (to PHI2_c -) - Delay: 5.571ns (34.8% logic, 65.2% route), 4 logic levels. + Delay: 8.451ns (44.6% logic, 55.4% route), 7 logic levels. Constraint Details: - 5.571ns physical path delay SLICE_1 to SLICE_57 exceeds - 3.340ns delay constraint less - 0.000ns skew and - 0.282ns CE_SET requirement (totaling 3.058ns) by 2.513ns + 8.451ns physical path delay Din[7]_MGIOL to SLICE_18 meets + 172.414ns delay constraint less + 0.173ns skew and + 0.166ns DIN_SET requirement (totaling 172.075ns) by 163.624ns Physical Path Details: - Data path SLICE_1 to SLICE_57: + Data path Din[7]_MGIOL to SLICE_18: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R6C8C.CLK to R6C8C.Q1 SLICE_1 (from RCLK_c) -ROUTE 5 0.984 R6C8C.Q1 to R4C8D.D1 FS_12 -CTOF_DEL --- 0.495 R4C8D.D1 to R4C8D.F1 SLICE_80 -ROUTE 3 1.021 R4C8D.F1 to R4C8B.B1 n2375 -CTOF_DEL --- 0.495 R4C8B.B1 to R4C8B.F1 SLICE_57 -ROUTE 2 0.976 R4C8B.F1 to R4C8C.A0 n2367 -CTOF_DEL --- 0.495 R4C8C.A0 to R4C8C.F0 SLICE_84 -ROUTE 1 0.653 R4C8C.F0 to R4C8B.CE RCLK_c_enable_15 (to RCLK_c) +C2INP_DEL --- 0.577 IOL_L2A.CLK to IOL_L2A.IN Din[7]_MGIOL (from PHI2_c) +ROUTE 1 1.375 IOL_L2A.IN to R3C6A.D1 Bank[7] +CTOF_DEL --- 0.495 R3C6A.D1 to R3C6A.F1 SLICE_69 +ROUTE 1 0.693 R3C6A.F1 to R3C6A.B0 un1_Bank_1_3 +CTOF_DEL --- 0.495 R3C6A.B0 to R3C6A.F0 SLICE_69 +ROUTE 5 1.092 R3C6A.F0 to R4C8D.D0 un1_Bank_1 +CTOF_DEL --- 0.495 R4C8D.D0 to R4C8D.F0 SLICE_60 +ROUTE 2 0.758 R4C8D.F0 to R3C8D.C1 ADWR +CTOF_DEL --- 0.495 R3C8D.C1 to R3C8D.F1 SLICE_46 +ROUTE 3 0.445 R3C8D.F1 to R3C8D.C0 un1_ADWR +CTOF_DEL --- 0.495 R3C8D.C0 to R3C8D.F0 SLICE_46 +ROUTE 1 0.315 R3C8D.F0 to R3C8C.D0 un1_CMDWR +CTOOFX_DEL --- 0.721 R3C8C.D0 to R3C8C.OFX0 SLICE_18 +ROUTE 1 0.000 R3C8C.OFX0 to R3C8C.DI0 CmdEnable_s (to PHI2_c) -------- - 5.571 (34.8% logic, 65.2% route), 4 logic levels. + 8.451 (44.6% logic, 55.4% route), 7 logic levels. Clock Skew Details: - Source Clock Path RCLK to SLICE_1: + Source Clock Path PHI2 to Din[7]_MGIOL: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R6C8C.CLK RCLK_c +ROUTE 19 3.712 8.PADDI to IOL_L2A.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.712 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path RCLK to SLICE_57: + Destination Clock Path PHI2 to SLICE_18: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R4C8B.CLK RCLK_c +ROUTE 19 3.539 8.PADDI to R3C8C.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.539 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 2.487ns +Passed: The following path meets requirements by 163.694ns (weighted slack = 327.388ns) Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q FS_610__i3 (from RCLK_c +) - Destination: FF Data in n8MEGEN_418 (to RCLK_c +) + Source: FF Q Bank_0io[4] (from PHI2_c +) + Destination: FF Data in CmdEnable (to PHI2_c -) - Delay: 5.545ns (34.9% logic, 65.1% route), 4 logic levels. + Delay: 8.381ns (45.0% logic, 55.0% route), 7 logic levels. Constraint Details: - 5.545ns physical path delay SLICE_8 to SLICE_57 exceeds - 3.340ns delay constraint less - 0.000ns skew and - 0.282ns CE_SET requirement (totaling 3.058ns) by 2.487ns + 8.381ns physical path delay Din[4]_MGIOL to SLICE_18 meets + 172.414ns delay constraint less + 0.173ns skew and + 0.166ns DIN_SET requirement (totaling 172.075ns) by 163.694ns Physical Path Details: - Data path SLICE_8 to SLICE_57: + Data path Din[4]_MGIOL to SLICE_18: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R6C7C.CLK to R6C7C.Q0 SLICE_8 (from RCLK_c) -ROUTE 2 1.306 R6C7C.Q0 to R4C7D.A1 FS_3 -CTOF_DEL --- 0.495 R4C7D.A1 to R4C7D.F1 SLICE_86 -ROUTE 1 1.004 R4C7D.F1 to R4C7D.B0 n14 -CTOF_DEL --- 0.495 R4C7D.B0 to R4C7D.F0 SLICE_86 -ROUTE 1 0.645 R4C7D.F0 to R4C8C.D0 n4_adj_7 -CTOF_DEL --- 0.495 R4C8C.D0 to R4C8C.F0 SLICE_84 -ROUTE 1 0.653 R4C8C.F0 to R4C8B.CE RCLK_c_enable_15 (to RCLK_c) +C2INP_DEL --- 0.577 IOL_T6A.CLK to IOL_T6A.IN Din[4]_MGIOL (from PHI2_c) +ROUTE 1 1.375 IOL_T6A.IN to R4C6A.D1 Bank[4] +CTOF_DEL --- 0.495 R4C6A.D1 to R4C6A.F1 SLICE_43 +ROUTE 1 0.623 R4C6A.F1 to R3C6A.D0 un1_Bank_1_4 +CTOF_DEL --- 0.495 R3C6A.D0 to R3C6A.F0 SLICE_69 +ROUTE 5 1.092 R3C6A.F0 to R4C8D.D0 un1_Bank_1 +CTOF_DEL --- 0.495 R4C8D.D0 to R4C8D.F0 SLICE_60 +ROUTE 2 0.758 R4C8D.F0 to R3C8D.C1 ADWR +CTOF_DEL --- 0.495 R3C8D.C1 to R3C8D.F1 SLICE_46 +ROUTE 3 0.445 R3C8D.F1 to R3C8D.C0 un1_ADWR +CTOF_DEL --- 0.495 R3C8D.C0 to R3C8D.F0 SLICE_46 +ROUTE 1 0.315 R3C8D.F0 to R3C8C.D0 un1_CMDWR +CTOOFX_DEL --- 0.721 R3C8C.D0 to R3C8C.OFX0 SLICE_18 +ROUTE 1 0.000 R3C8C.OFX0 to R3C8C.DI0 CmdEnable_s (to PHI2_c) -------- - 5.545 (34.9% logic, 65.1% route), 4 logic levels. + 8.381 (45.0% logic, 55.0% route), 7 logic levels. Clock Skew Details: - Source Clock Path RCLK to SLICE_8: + Source Clock Path PHI2 to Din[4]_MGIOL: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R6C7C.CLK RCLK_c +ROUTE 19 3.712 8.PADDI to IOL_T6A.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.712 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path RCLK to SLICE_57: + Destination Clock Path PHI2 to SLICE_18: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R4C8B.CLK RCLK_c +ROUTE 19 3.539 8.PADDI to R3C8C.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.539 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 2.479ns +Passed: The following path meets requirements by 163.812ns (weighted slack = 327.624ns) Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q FS_610__i15 (from RCLK_c +) - Destination: FF Data in nUFMCS_415 (to RCLK_c +) + Source: FF Q Bank_0io[0] (from PHI2_c +) + Destination: FF Data in CmdUFMSDI (to PHI2_c -) - Delay: 5.653ns (43.0% logic, 57.0% route), 5 logic levels. + Delay: 8.712ns (27.9% logic, 72.1% route), 5 logic levels. Constraint Details: - 5.653ns physical path delay SLICE_9 to SLICE_70 exceeds - 3.340ns delay constraint less - 0.000ns skew and - 0.166ns DIN_SET requirement (totaling 3.174ns) by 2.479ns + 8.712ns physical path delay SLICE_63 to Din[0]_MGIOL meets + 172.414ns delay constraint less + -0.173ns skew and + 0.063ns CE_SET requirement (totaling 172.524ns) by 163.812ns Physical Path Details: - Data path SLICE_9 to SLICE_70: + Data path SLICE_63 to Din[0]_MGIOL: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R6C9A.CLK to R6C9A.Q0 SLICE_9 (from RCLK_c) -ROUTE 3 1.320 R6C9A.Q0 to R4C8A.A0 FS_15 -CTOF_DEL --- 0.495 R4C8A.A0 to R4C8A.F0 SLICE_85 -ROUTE 5 0.640 R4C8A.F0 to R4C9D.D1 n10 -CTOF_DEL --- 0.495 R4C9D.D1 to R4C9D.F1 SLICE_76 -ROUTE 2 0.635 R4C9D.F1 to R4C9A.D1 n2368 -CTOF_DEL --- 0.495 R4C9A.D1 to R4C9A.F1 SLICE_70 -ROUTE 1 0.626 R4C9A.F1 to R4C9A.D0 n64 -CTOF_DEL --- 0.495 R4C9A.D0 to R4C9A.F0 SLICE_70 -ROUTE 1 0.000 R4C9A.F0 to R4C9A.DI0 nUFMCS_N_199 (to RCLK_c) +REG_DEL --- 0.452 R4C7A.CLK to R4C7A.Q0 SLICE_63 (from PHI2_c) +ROUTE 1 1.383 R4C7A.Q0 to R4C6A.A1 Bank[0] +CTOF_DEL --- 0.495 R4C6A.A1 to R4C6A.F1 SLICE_43 +ROUTE 1 0.623 R4C6A.F1 to R3C6A.D0 un1_Bank_1_4 +CTOF_DEL --- 0.495 R3C6A.D0 to R3C6A.F0 SLICE_69 +ROUTE 5 1.213 R3C6A.F0 to R4C8A.C0 un1_Bank_1 +CTOF_DEL --- 0.495 R4C8A.C0 to R4C8A.F0 SLICE_57 +ROUTE 5 0.710 R4C8A.F0 to R4C8B.B1 XOR8MEG18 +CTOF_DEL --- 0.495 R4C8B.B1 to R4C8B.F1 SLICE_20 +ROUTE 3 2.351 R4C8B.F1 to IOL_L2C.CE CmdUFMCLK_1_sqmuxa (to PHI2_c) -------- - 5.653 (43.0% logic, 57.0% route), 5 logic levels. + 8.712 (27.9% logic, 72.1% route), 5 logic levels. Clock Skew Details: - Source Clock Path RCLK to SLICE_9: + Source Clock Path PHI2 to SLICE_63: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R6C9A.CLK RCLK_c +ROUTE 19 3.539 8.PADDI to R4C7A.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.539 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path RCLK to SLICE_70: + Destination Clock Path PHI2 to Din[0]_MGIOL: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R4C9A.CLK RCLK_c +ROUTE 19 3.712 8.PADDI to IOL_L2C.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.712 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 2.452ns +Passed: The following path meets requirements by 163.984ns (weighted slack = 327.968ns) Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q FS_610__i15 (from RCLK_c +) - Destination: FF Data in UFMCLK_416 (to RCLK_c +) + Source: FF Q Bank_0io[0] (from PHI2_c +) + Destination: FF Data in CmdEnable (to PHI2_c -) - Delay: 5.626ns (43.2% logic, 56.8% route), 5 logic levels. + Delay: 8.264ns (44.1% logic, 55.9% route), 7 logic levels. Constraint Details: - 5.626ns physical path delay SLICE_9 to SLICE_44 exceeds - 3.340ns delay constraint less + 8.264ns physical path delay SLICE_63 to SLICE_18 meets + 172.414ns delay constraint less 0.000ns skew and - 0.166ns DIN_SET requirement (totaling 3.174ns) by 2.452ns + 0.166ns DIN_SET requirement (totaling 172.248ns) by 163.984ns Physical Path Details: - Data path SLICE_9 to SLICE_44: + Data path SLICE_63 to SLICE_18: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R6C9A.CLK to R6C9A.Q0 SLICE_9 (from RCLK_c) -ROUTE 3 1.320 R6C9A.Q0 to R4C8A.A0 FS_15 -CTOF_DEL --- 0.495 R4C8A.A0 to R4C8A.F0 SLICE_85 -ROUTE 5 0.672 R4C8A.F0 to R4C8A.D1 n10 -CTOF_DEL --- 0.495 R4C8A.D1 to R4C8A.F1 SLICE_85 -ROUTE 1 0.766 R4C8A.F1 to R4C6B.C1 n2267 -CTOF_DEL --- 0.495 R4C6B.C1 to R4C6B.F1 SLICE_44 -ROUTE 1 0.436 R4C6B.F1 to R4C6B.C0 n1893 -CTOF_DEL --- 0.495 R4C6B.C0 to R4C6B.F0 SLICE_44 -ROUTE 1 0.000 R4C6B.F0 to R4C6B.DI0 UFMCLK_N_224 (to RCLK_c) +REG_DEL --- 0.452 R4C7A.CLK to R4C7A.Q0 SLICE_63 (from PHI2_c) +ROUTE 1 1.383 R4C7A.Q0 to R4C6A.A1 Bank[0] +CTOF_DEL --- 0.495 R4C6A.A1 to R4C6A.F1 SLICE_43 +ROUTE 1 0.623 R4C6A.F1 to R3C6A.D0 un1_Bank_1_4 +CTOF_DEL --- 0.495 R3C6A.D0 to R3C6A.F0 SLICE_69 +ROUTE 5 1.092 R3C6A.F0 to R4C8D.D0 un1_Bank_1 +CTOF_DEL --- 0.495 R4C8D.D0 to R4C8D.F0 SLICE_60 +ROUTE 2 0.758 R4C8D.F0 to R3C8D.C1 ADWR +CTOF_DEL --- 0.495 R3C8D.C1 to R3C8D.F1 SLICE_46 +ROUTE 3 0.445 R3C8D.F1 to R3C8D.C0 un1_ADWR +CTOF_DEL --- 0.495 R3C8D.C0 to R3C8D.F0 SLICE_46 +ROUTE 1 0.315 R3C8D.F0 to R3C8C.D0 un1_CMDWR +CTOOFX_DEL --- 0.721 R3C8C.D0 to R3C8C.OFX0 SLICE_18 +ROUTE 1 0.000 R3C8C.OFX0 to R3C8C.DI0 CmdEnable_s (to PHI2_c) -------- - 5.626 (43.2% logic, 56.8% route), 5 logic levels. + 8.264 (44.1% logic, 55.9% route), 7 logic levels. Clock Skew Details: - Source Clock Path RCLK to SLICE_9: + Source Clock Path PHI2 to SLICE_63: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R6C9A.CLK RCLK_c +ROUTE 19 3.539 8.PADDI to R4C7A.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.539 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path RCLK to SLICE_44: + Destination Clock Path PHI2 to SLICE_18: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R4C6B.CLK RCLK_c +ROUTE 19 3.539 8.PADDI to R3C8C.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.539 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 2.438ns +Passed: The following path meets requirements by 164.041ns (weighted slack = 328.082ns) Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q CASr3_384 (from RCLK_c +) - Destination: FF Data in nRCS_396 (to RCLK_c +) + Source: FF Q Bank_0io[3] (from PHI2_c +) + Destination: FF Data in ADSubmitted (to PHI2_c -) - Delay: 5.612ns (43.3% logic, 56.7% route), 5 logic levels. + Delay: 8.034ns (38.0% logic, 62.0% route), 6 logic levels. Constraint Details: - 5.612ns physical path delay SLICE_5 to SLICE_61 exceeds - 3.340ns delay constraint less - 0.000ns skew and - 0.166ns DIN_SET requirement (totaling 3.174ns) by 2.438ns + 8.034ns physical path delay Din[3]_MGIOL to SLICE_10 meets + 172.414ns delay constraint less + 0.173ns skew and + 0.166ns DIN_SET requirement (totaling 172.075ns) by 164.041ns Physical Path Details: - Data path SLICE_5 to SLICE_61: + Data path Din[3]_MGIOL to SLICE_10: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R6C7A.CLK to R6C7A.Q0 SLICE_5 (from RCLK_c) -ROUTE 2 0.773 R6C7A.Q0 to R6C9D.C0 CASr3 -CTOF_DEL --- 0.495 R6C9D.C0 to R6C9D.F0 SLICE_96 -ROUTE 2 0.976 R6C9D.F0 to R6C9C.A0 nRCS_N_146 -CTOF_DEL --- 0.495 R6C9C.A0 to R6C9C.F0 SLICE_81 -ROUTE 2 0.995 R6C9C.F0 to R6C11D.A1 nRCS_N_142 -CTOF_DEL --- 0.495 R6C11D.A1 to R6C11D.F1 SLICE_61 -ROUTE 1 0.436 R6C11D.F1 to R6C11D.C0 nRCS_N_141 -CTOF_DEL --- 0.495 R6C11D.C0 to R6C11D.F0 SLICE_61 -ROUTE 1 0.000 R6C11D.F0 to R6C11D.DI0 nRCS_N_136 (to RCLK_c) +C2INP_DEL --- 0.577 IOL_T6C.CLK to IOL_T6C.IN Din[3]_MGIOL (from PHI2_c) +ROUTE 1 1.496 IOL_T6C.IN to R4C6A.C1 Bank[3] +CTOF_DEL --- 0.495 R4C6A.C1 to R4C6A.F1 SLICE_43 +ROUTE 1 0.623 R4C6A.F1 to R3C6A.D0 un1_Bank_1_4 +CTOF_DEL --- 0.495 R3C6A.D0 to R3C6A.F0 SLICE_69 +ROUTE 5 1.092 R3C6A.F0 to R4C8D.D0 un1_Bank_1 +CTOF_DEL --- 0.495 R4C8D.D0 to R4C8D.F0 SLICE_60 +ROUTE 2 0.758 R4C8D.F0 to R3C8B.C1 ADWR +CTOF_DEL --- 0.495 R3C8B.C1 to R3C8B.F1 SLICE_10 +ROUTE 2 1.013 R3C8B.F1 to R3C8B.B0 CmdEnable17 +CTOF_DEL --- 0.495 R3C8B.B0 to R3C8B.F0 SLICE_10 +ROUTE 1 0.000 R3C8B.F0 to R3C8B.DI0 ADSubmitted_r (to PHI2_c) -------- - 5.612 (43.3% logic, 56.7% route), 5 logic levels. + 8.034 (38.0% logic, 62.0% route), 6 logic levels. Clock Skew Details: - Source Clock Path RCLK to SLICE_5: + Source Clock Path PHI2 to Din[3]_MGIOL: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R6C7A.CLK RCLK_c +ROUTE 19 3.712 8.PADDI to IOL_T6C.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.712 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path RCLK to SLICE_61: + Destination Clock Path PHI2 to SLICE_10: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R6C11D.CLK RCLK_c +ROUTE 19 3.539 8.PADDI to R3C8B.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.539 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 2.423ns +Passed: The following path meets requirements by 164.046ns (weighted slack = 328.092ns) Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q FS_610__i13 (from RCLK_c +) - Destination: FF Data in UFMCLK_416 (to RCLK_c +) + Source: FF Q Bank_0io[2] (from PHI2_c +) + Destination: FF Data in CmdUFMSDI (to PHI2_c -) - Delay: 5.597ns (43.5% logic, 56.5% route), 5 logic levels. + Delay: 8.478ns (28.7% logic, 71.3% route), 5 logic levels. Constraint Details: - 5.597ns physical path delay SLICE_0 to SLICE_44 exceeds - 3.340ns delay constraint less - 0.000ns skew and - 0.166ns DIN_SET requirement (totaling 3.174ns) by 2.423ns + 8.478ns physical path delay SLICE_68 to Din[0]_MGIOL meets + 172.414ns delay constraint less + -0.173ns skew and + 0.063ns CE_SET requirement (totaling 172.524ns) by 164.046ns Physical Path Details: - Data path SLICE_0 to SLICE_44: + Data path SLICE_68 to Din[0]_MGIOL: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R6C8D.CLK to R6C8D.Q0 SLICE_0 (from RCLK_c) -ROUTE 3 1.433 R6C8D.Q0 to R6C6C.B0 FS_13 -CTOF_DEL --- 0.495 R6C6C.B0 to R6C6C.F0 SLICE_105 -ROUTE 1 0.315 R6C6C.F0 to R6C6A.D1 n12 -CTOF_DEL --- 0.495 R6C6A.D1 to R6C6A.F1 SLICE_82 -ROUTE 3 0.981 R6C6A.F1 to R4C6B.D1 n13_adj_6 -CTOF_DEL --- 0.495 R4C6B.D1 to R4C6B.F1 SLICE_44 -ROUTE 1 0.436 R4C6B.F1 to R4C6B.C0 n1893 -CTOF_DEL --- 0.495 R4C6B.C0 to R4C6B.F0 SLICE_44 -ROUTE 1 0.000 R4C6B.F0 to R4C6B.DI0 UFMCLK_N_224 (to RCLK_c) +REG_DEL --- 0.452 R3C9C.CLK to R3C9C.Q0 SLICE_68 (from PHI2_c) +ROUTE 1 1.079 R3C9C.Q0 to R3C6A.C1 Bank[2] +CTOF_DEL --- 0.495 R3C6A.C1 to R3C6A.F1 SLICE_69 +ROUTE 1 0.693 R3C6A.F1 to R3C6A.B0 un1_Bank_1_3 +CTOF_DEL --- 0.495 R3C6A.B0 to R3C6A.F0 SLICE_69 +ROUTE 5 1.213 R3C6A.F0 to R4C8A.C0 un1_Bank_1 +CTOF_DEL --- 0.495 R4C8A.C0 to R4C8A.F0 SLICE_57 +ROUTE 5 0.710 R4C8A.F0 to R4C8B.B1 XOR8MEG18 +CTOF_DEL --- 0.495 R4C8B.B1 to R4C8B.F1 SLICE_20 +ROUTE 3 2.351 R4C8B.F1 to IOL_L2C.CE CmdUFMCLK_1_sqmuxa (to PHI2_c) -------- - 5.597 (43.5% logic, 56.5% route), 5 logic levels. + 8.478 (28.7% logic, 71.3% route), 5 logic levels. Clock Skew Details: - Source Clock Path RCLK to SLICE_0: + Source Clock Path PHI2 to SLICE_68: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R6C8D.CLK RCLK_c +ROUTE 19 3.539 8.PADDI to R3C9C.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.539 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path RCLK to SLICE_44: + Destination Clock Path PHI2 to Din[0]_MGIOL: Name Fanout Delay (ns) Site Resource -ROUTE 40 3.070 62.PADDI to R4C6B.CLK RCLK_c +ROUTE 19 3.712 8.PADDI to IOL_L2C.CLK PHI2_c -------- - 3.070 (0.0% logic, 100.0% route), 0 logic levels. + 3.712 (0.0% logic, 100.0% route), 0 logic levels. -Warning: 160.205MHz is the maximum frequency for this preference. +Report: 55.475MHz is the maximum frequency for this preference. ================================================================================ -Preference: FREQUENCY NET "PHI2_c" 99.079000 MHz ; - 113 items scored, 85 timing errors detected. +Preference: FREQUENCY PORT "nCCAS" 2.900000 MHz ; + 0 items scored, 0 timing errors detected. -------------------------------------------------------------------------------- -Error: The following path exceeds requirements by 2.561ns (weighted slack = -5.122ns) +Passed: The following path meets requirements by 338.168ns + The internal maximum frequency of the following component is 150.150 MHz + + Logical Details: Cell type Pin name Component name + + Destination: PIO PAD nCCAS + + Delay: 6.660ns -- based on Minimum Pulse Width + +Report: 150.150MHz is the maximum frequency for this preference. + + +================================================================================ +Preference: FREQUENCY PORT "nCRAS" 2.900000 MHz ; + 0 items scored, 0 timing errors detected. +-------------------------------------------------------------------------------- + + +Passed: The following path meets requirements by 338.168ns + The internal maximum frequency of the following component is 150.150 MHz + + Logical Details: Cell type Pin name Component name + + Destination: PIO PAD nCRAS + + Delay: 6.660ns -- based on Minimum Pulse Width + +Report: 150.150MHz is the maximum frequency for this preference. + + +================================================================================ +Preference: FREQUENCY PORT "RCLK" 62.500000 MHz ; + 590 items scored, 0 timing errors detected. +-------------------------------------------------------------------------------- + + +Passed: The following path meets requirements by 6.127ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q Bank_i3 (from PHI2_c +) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) + Source: FF Q FS[12] (from RCLK_c +) + Destination: FF Data in LEDEN (to RCLK_c +) - Delay: 7.301ns (40.1% logic, 59.9% route), 6 logic levels. + Delay: 9.591ns (35.7% logic, 64.3% route), 7 logic levels. Constraint Details: - 7.301ns physical path delay SLICE_103 to SLICE_19 exceeds - 5.047ns delay constraint less + 9.591ns physical path delay SLICE_4 to SLICE_27 meets + 16.000ns delay constraint less 0.000ns skew and - 0.307ns CE_SET requirement (totaling 4.740ns) by 2.561ns + 0.282ns CE_SET requirement (totaling 15.718ns) by 6.127ns Physical Path Details: - Data path SLICE_103 to SLICE_19: + Data path SLICE_4 to SLICE_27: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R5C9B.CLK to R5C9B.Q1 SLICE_103 (from PHI2_c) -ROUTE 1 1.023 R5C9B.Q1 to R5C7A.B0 Bank_3 -CTOF_DEL --- 0.495 R5C7A.B0 to R5C7A.F0 SLICE_68 -ROUTE 1 0.626 R5C7A.F0 to R5C7D.D1 n2287 -CTOF_DEL --- 0.495 R5C7D.D1 to R5C7D.F1 SLICE_74 -ROUTE 8 0.693 R5C7D.F1 to R5C8A.D1 n26 -CTOF_DEL --- 0.495 R5C8A.D1 to R5C8A.F1 SLICE_91 -ROUTE 1 0.744 R5C8A.F1 to R5C9A.C0 n2362 -CTOF_DEL --- 0.495 R5C9A.C0 to R5C9A.F0 SLICE_88 -ROUTE 3 0.635 R5C9A.F0 to R5C9A.D1 C1Submitted_N_237 -CTOF_DEL --- 0.495 R5C9A.D1 to R5C9A.F1 SLICE_88 -ROUTE 1 0.653 R5C9A.F1 to R5C9D.CE PHI2_N_120_enable_1 (to PHI2_c) +REG_DEL --- 0.452 R6C4C.CLK to R6C4C.Q1 SLICE_4 (from RCLK_c) +ROUTE 3 1.177 R6C4C.Q1 to R6C5D.C1 FS[12] +CTOF_DEL --- 0.495 R6C5D.C1 to R6C5D.F1 SLICE_72 +ROUTE 1 0.315 R6C5D.F1 to R6C5C.D1 UFMSDI_ens2_i_o2_0_3 +CTOF_DEL --- 0.495 R6C5C.D1 to R6C5C.F1 SLICE_64 +ROUTE 4 0.988 R6C5C.F1 to R5C4C.D1 N_129 +CTOF_DEL --- 0.495 R5C4C.D1 to R5C4C.F1 SLICE_59 +ROUTE 2 0.445 R5C4C.F1 to R5C4C.C0 N_145 +CTOF_DEL --- 0.495 R5C4C.C0 to R5C4C.F0 SLICE_59 +ROUTE 2 0.753 R5C4C.F0 to R5C3A.C0 N_139_8 +CTOF_DEL --- 0.495 R5C3A.C0 to R5C3A.F0 SLICE_56 +ROUTE 1 1.079 R5C3A.F0 to R4C4D.C0 N_140 +CTOF_DEL --- 0.495 R4C4D.C0 to R4C4D.F0 SLICE_54 +ROUTE 1 1.412 R4C4D.F0 to R5C7B.CE N_28 (to RCLK_c) -------- - 7.301 (40.1% logic, 59.9% route), 6 logic levels. + 9.591 (35.7% logic, 64.3% route), 7 logic levels. Clock Skew Details: - Source Clock Path PHI2 to SLICE_103: + Source Clock Path RCLK to SLICE_4: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R5C9B.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R6C4C.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path PHI2 to SLICE_19: + Destination Clock Path RCLK to SLICE_27: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R5C9D.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R5C7B.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 2.184ns (weighted slack = -4.368ns) +Passed: The following path meets requirements by 6.287ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q Bank_i3 (from PHI2_c +) - Destination: FF Data in ADSubmitted_407 (to PHI2_c -) + Source: FF Q FS[17] (from RCLK_c +) + Destination: FF Data in LEDEN (to RCLK_c +) - Delay: 6.946ns (35.0% logic, 65.0% route), 5 logic levels. + Delay: 9.431ns (36.3% logic, 63.7% route), 7 logic levels. Constraint Details: - 6.946ns physical path delay SLICE_103 to SLICE_10 exceeds - 5.047ns delay constraint less + 9.431ns physical path delay SLICE_1 to SLICE_27 meets + 16.000ns delay constraint less 0.000ns skew and - 0.285ns LSR_SET requirement (totaling 4.762ns) by 2.184ns + 0.282ns CE_SET requirement (totaling 15.718ns) by 6.287ns Physical Path Details: - Data path SLICE_103 to SLICE_10: + Data path SLICE_1 to SLICE_27: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R5C9B.CLK to R5C9B.Q1 SLICE_103 (from PHI2_c) -ROUTE 1 1.023 R5C9B.Q1 to R5C7A.B0 Bank_3 -CTOF_DEL --- 0.495 R5C7A.B0 to R5C7A.F0 SLICE_68 -ROUTE 1 0.626 R5C7A.F0 to R5C7D.D1 n2287 -CTOF_DEL --- 0.495 R5C7D.D1 to R5C7D.F1 SLICE_74 -ROUTE 8 0.693 R5C7D.F1 to R5C8A.D1 n26 -CTOF_DEL --- 0.495 R5C8A.D1 to R5C8A.F1 SLICE_91 -ROUTE 1 0.744 R5C8A.F1 to R5C9A.C0 n2362 -CTOF_DEL --- 0.495 R5C9A.C0 to R5C9A.F0 SLICE_88 -ROUTE 3 1.428 R5C9A.F0 to R3C8A.LSR C1Submitted_N_237 (to PHI2_c) +REG_DEL --- 0.452 R6C5B.CLK to R6C5B.Q0 SLICE_1 (from RCLK_c) +ROUTE 3 1.017 R6C5B.Q0 to R6C5D.B1 FS[17] +CTOF_DEL --- 0.495 R6C5D.B1 to R6C5D.F1 SLICE_72 +ROUTE 1 0.315 R6C5D.F1 to R6C5C.D1 UFMSDI_ens2_i_o2_0_3 +CTOF_DEL --- 0.495 R6C5C.D1 to R6C5C.F1 SLICE_64 +ROUTE 4 0.988 R6C5C.F1 to R5C4C.D1 N_129 +CTOF_DEL --- 0.495 R5C4C.D1 to R5C4C.F1 SLICE_59 +ROUTE 2 0.445 R5C4C.F1 to R5C4C.C0 N_145 +CTOF_DEL --- 0.495 R5C4C.C0 to R5C4C.F0 SLICE_59 +ROUTE 2 0.753 R5C4C.F0 to R5C3A.C0 N_139_8 +CTOF_DEL --- 0.495 R5C3A.C0 to R5C3A.F0 SLICE_56 +ROUTE 1 1.079 R5C3A.F0 to R4C4D.C0 N_140 +CTOF_DEL --- 0.495 R4C4D.C0 to R4C4D.F0 SLICE_54 +ROUTE 1 1.412 R4C4D.F0 to R5C7B.CE N_28 (to RCLK_c) -------- - 6.946 (35.0% logic, 65.0% route), 5 logic levels. + 9.431 (36.3% logic, 63.7% route), 7 logic levels. Clock Skew Details: - Source Clock Path PHI2 to SLICE_103: + Source Clock Path RCLK to SLICE_1: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R5C9B.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R6C5B.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path PHI2 to SLICE_10: + Destination Clock Path RCLK to SLICE_27: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R3C8A.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R5C7B.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 2.184ns (weighted slack = -4.368ns) +Passed: The following path meets requirements by 6.319ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q Bank_i3 (from PHI2_c +) - Destination: FF Data in C1Submitted_406 (to PHI2_c -) + Source: FF Q FS[13] (from RCLK_c +) + Destination: FF Data in LEDEN (to RCLK_c +) - Delay: 6.946ns (35.0% logic, 65.0% route), 5 logic levels. + Delay: 9.399ns (36.4% logic, 63.6% route), 7 logic levels. Constraint Details: - 6.946ns physical path delay SLICE_103 to SLICE_15 exceeds - 5.047ns delay constraint less + 9.399ns physical path delay SLICE_3 to SLICE_27 meets + 16.000ns delay constraint less 0.000ns skew and - 0.285ns LSR_SET requirement (totaling 4.762ns) by 2.184ns + 0.282ns CE_SET requirement (totaling 15.718ns) by 6.319ns Physical Path Details: - Data path SLICE_103 to SLICE_15: + Data path SLICE_3 to SLICE_27: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R5C9B.CLK to R5C9B.Q1 SLICE_103 (from PHI2_c) -ROUTE 1 1.023 R5C9B.Q1 to R5C7A.B0 Bank_3 -CTOF_DEL --- 0.495 R5C7A.B0 to R5C7A.F0 SLICE_68 -ROUTE 1 0.626 R5C7A.F0 to R5C7D.D1 n2287 -CTOF_DEL --- 0.495 R5C7D.D1 to R5C7D.F1 SLICE_74 -ROUTE 8 0.693 R5C7D.F1 to R5C8A.D1 n26 -CTOF_DEL --- 0.495 R5C8A.D1 to R5C8A.F1 SLICE_91 -ROUTE 1 0.744 R5C8A.F1 to R5C9A.C0 n2362 -CTOF_DEL --- 0.495 R5C9A.C0 to R5C9A.F0 SLICE_88 -ROUTE 3 1.428 R5C9A.F0 to R3C8B.LSR C1Submitted_N_237 (to PHI2_c) +REG_DEL --- 0.452 R6C4D.CLK to R6C4D.Q0 SLICE_3 (from RCLK_c) +ROUTE 3 0.985 R6C4D.Q0 to R6C5D.A1 FS[13] +CTOF_DEL --- 0.495 R6C5D.A1 to R6C5D.F1 SLICE_72 +ROUTE 1 0.315 R6C5D.F1 to R6C5C.D1 UFMSDI_ens2_i_o2_0_3 +CTOF_DEL --- 0.495 R6C5C.D1 to R6C5C.F1 SLICE_64 +ROUTE 4 0.988 R6C5C.F1 to R5C4C.D1 N_129 +CTOF_DEL --- 0.495 R5C4C.D1 to R5C4C.F1 SLICE_59 +ROUTE 2 0.445 R5C4C.F1 to R5C4C.C0 N_145 +CTOF_DEL --- 0.495 R5C4C.C0 to R5C4C.F0 SLICE_59 +ROUTE 2 0.753 R5C4C.F0 to R5C3A.C0 N_139_8 +CTOF_DEL --- 0.495 R5C3A.C0 to R5C3A.F0 SLICE_56 +ROUTE 1 1.079 R5C3A.F0 to R4C4D.C0 N_140 +CTOF_DEL --- 0.495 R4C4D.C0 to R4C4D.F0 SLICE_54 +ROUTE 1 1.412 R4C4D.F0 to R5C7B.CE N_28 (to RCLK_c) -------- - 6.946 (35.0% logic, 65.0% route), 5 logic levels. + 9.399 (36.4% logic, 63.6% route), 7 logic levels. Clock Skew Details: - Source Clock Path PHI2 to SLICE_103: + Source Clock Path RCLK to SLICE_3: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R5C9B.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R6C4D.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path PHI2 to SLICE_15: + Destination Clock Path RCLK to SLICE_27: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R3C8B.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R5C7B.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 2.161ns (weighted slack = -4.322ns) +Passed: The following path meets requirements by 6.646ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q Bank_i6 (from PHI2_c +) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) + Source: FF Q FS[14] (from RCLK_c +) + Destination: FF Data in LEDEN (to RCLK_c +) - Delay: 6.901ns (42.4% logic, 57.6% route), 6 logic levels. + Delay: 9.072ns (37.7% logic, 62.3% route), 7 logic levels. Constraint Details: - 6.901ns physical path delay SLICE_101 to SLICE_19 exceeds - 5.047ns delay constraint less + 9.072ns physical path delay SLICE_3 to SLICE_27 meets + 16.000ns delay constraint less 0.000ns skew and - 0.307ns CE_SET requirement (totaling 4.740ns) by 2.161ns + 0.282ns CE_SET requirement (totaling 15.718ns) by 6.646ns Physical Path Details: - Data path SLICE_101 to SLICE_19: + Data path SLICE_3 to SLICE_27: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R4C7C.CLK to R4C7C.Q0 SLICE_101 (from PHI2_c) -ROUTE 1 0.623 R4C7C.Q0 to R5C7A.D0 Bank_6 -CTOF_DEL --- 0.495 R5C7A.D0 to R5C7A.F0 SLICE_68 -ROUTE 1 0.626 R5C7A.F0 to R5C7D.D1 n2287 -CTOF_DEL --- 0.495 R5C7D.D1 to R5C7D.F1 SLICE_74 -ROUTE 8 0.693 R5C7D.F1 to R5C8A.D1 n26 -CTOF_DEL --- 0.495 R5C8A.D1 to R5C8A.F1 SLICE_91 -ROUTE 1 0.744 R5C8A.F1 to R5C9A.C0 n2362 -CTOF_DEL --- 0.495 R5C9A.C0 to R5C9A.F0 SLICE_88 -ROUTE 3 0.635 R5C9A.F0 to R5C9A.D1 C1Submitted_N_237 -CTOF_DEL --- 0.495 R5C9A.D1 to R5C9A.F1 SLICE_88 -ROUTE 1 0.653 R5C9A.F1 to R5C9D.CE PHI2_N_120_enable_1 (to PHI2_c) +REG_DEL --- 0.452 R6C4D.CLK to R6C4D.Q1 SLICE_3 (from RCLK_c) +ROUTE 3 0.658 R6C4D.Q1 to R6C5D.D1 FS[14] +CTOF_DEL --- 0.495 R6C5D.D1 to R6C5D.F1 SLICE_72 +ROUTE 1 0.315 R6C5D.F1 to R6C5C.D1 UFMSDI_ens2_i_o2_0_3 +CTOF_DEL --- 0.495 R6C5C.D1 to R6C5C.F1 SLICE_64 +ROUTE 4 0.988 R6C5C.F1 to R5C4C.D1 N_129 +CTOF_DEL --- 0.495 R5C4C.D1 to R5C4C.F1 SLICE_59 +ROUTE 2 0.445 R5C4C.F1 to R5C4C.C0 N_145 +CTOF_DEL --- 0.495 R5C4C.C0 to R5C4C.F0 SLICE_59 +ROUTE 2 0.753 R5C4C.F0 to R5C3A.C0 N_139_8 +CTOF_DEL --- 0.495 R5C3A.C0 to R5C3A.F0 SLICE_56 +ROUTE 1 1.079 R5C3A.F0 to R4C4D.C0 N_140 +CTOF_DEL --- 0.495 R4C4D.C0 to R4C4D.F0 SLICE_54 +ROUTE 1 1.412 R4C4D.F0 to R5C7B.CE N_28 (to RCLK_c) -------- - 6.901 (42.4% logic, 57.6% route), 6 logic levels. + 9.072 (37.7% logic, 62.3% route), 7 logic levels. Clock Skew Details: - Source Clock Path PHI2 to SLICE_101: + Source Clock Path RCLK to SLICE_3: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R4C7C.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R6C4D.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path PHI2 to SLICE_19: + Destination Clock Path RCLK to SLICE_27: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R5C9D.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R5C7B.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 2.092ns (weighted slack = -4.184ns) +Passed: The following path meets requirements by 6.977ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q Bank_i7 (from PHI2_c +) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) + Source: FF Q FS[12] (from RCLK_c +) + Destination: FF Data in n8MEGEN (to RCLK_c +) - Delay: 6.832ns (42.8% logic, 57.2% route), 6 logic levels. + Delay: 8.741ns (39.1% logic, 60.9% route), 7 logic levels. Constraint Details: - 6.832ns physical path delay SLICE_101 to SLICE_19 exceeds - 5.047ns delay constraint less + 8.741ns physical path delay SLICE_4 to SLICE_43 meets + 16.000ns delay constraint less 0.000ns skew and - 0.307ns CE_SET requirement (totaling 4.740ns) by 2.092ns + 0.282ns CE_SET requirement (totaling 15.718ns) by 6.977ns Physical Path Details: - Data path SLICE_101 to SLICE_19: + Data path SLICE_4 to SLICE_43: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R4C7C.CLK to R4C7C.Q1 SLICE_101 (from PHI2_c) -ROUTE 1 0.744 R4C7C.Q1 to R5C7B.C1 Bank_7 -CTOF_DEL --- 0.495 R5C7B.C1 to R5C7B.F1 SLICE_100 -ROUTE 1 0.436 R5C7B.F1 to R5C7D.C1 n2277 -CTOF_DEL --- 0.495 R5C7D.C1 to R5C7D.F1 SLICE_74 -ROUTE 8 0.693 R5C7D.F1 to R5C8A.D1 n26 -CTOF_DEL --- 0.495 R5C8A.D1 to R5C8A.F1 SLICE_91 -ROUTE 1 0.744 R5C8A.F1 to R5C9A.C0 n2362 -CTOF_DEL --- 0.495 R5C9A.C0 to R5C9A.F0 SLICE_88 -ROUTE 3 0.635 R5C9A.F0 to R5C9A.D1 C1Submitted_N_237 -CTOF_DEL --- 0.495 R5C9A.D1 to R5C9A.F1 SLICE_88 -ROUTE 1 0.653 R5C9A.F1 to R5C9D.CE PHI2_N_120_enable_1 (to PHI2_c) +REG_DEL --- 0.452 R6C4C.CLK to R6C4C.Q1 SLICE_4 (from RCLK_c) +ROUTE 3 1.177 R6C4C.Q1 to R6C5D.C1 FS[12] +CTOF_DEL --- 0.495 R6C5D.C1 to R6C5D.F1 SLICE_72 +ROUTE 1 0.315 R6C5D.F1 to R6C5C.D1 UFMSDI_ens2_i_o2_0_3 +CTOF_DEL --- 0.495 R6C5C.D1 to R6C5C.F1 SLICE_64 +ROUTE 4 0.988 R6C5C.F1 to R5C4C.D1 N_129 +CTOF_DEL --- 0.495 R5C4C.D1 to R5C4C.F1 SLICE_59 +ROUTE 2 0.445 R5C4C.F1 to R5C4C.C0 N_145 +CTOF_DEL --- 0.495 R5C4C.C0 to R5C4C.F0 SLICE_59 +ROUTE 2 0.632 R5C4C.F0 to R4C4A.D1 N_139_8 +CTOF_DEL --- 0.495 R4C4A.D1 to R4C4A.F1 SLICE_55 +ROUTE 1 0.693 R4C4A.F1 to R4C4A.B0 N_139 +CTOF_DEL --- 0.495 R4C4A.B0 to R4C4A.F0 SLICE_55 +ROUTE 1 1.069 R4C4A.F0 to R4C6A.CE N_26 (to RCLK_c) -------- - 6.832 (42.8% logic, 57.2% route), 6 logic levels. + 8.741 (39.1% logic, 60.9% route), 7 logic levels. Clock Skew Details: - Source Clock Path PHI2 to SLICE_101: + Source Clock Path RCLK to SLICE_4: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R4C7C.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R6C4C.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path PHI2 to SLICE_19: + Destination Clock Path RCLK to SLICE_43: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R5C9D.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R4C6A.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 2.081ns (weighted slack = -4.162ns) +Passed: The following path meets requirements by 7.097ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q Bank_i4 (from PHI2_c +) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) + Source: FF Q FS[16] (from RCLK_c +) + Destination: FF Data in LEDEN (to RCLK_c +) - Delay: 6.821ns (42.9% logic, 57.1% route), 6 logic levels. + Delay: 8.621ns (34.0% logic, 66.0% route), 6 logic levels. Constraint Details: - 6.821ns physical path delay SLICE_102 to SLICE_19 exceeds - 5.047ns delay constraint less + 8.621ns physical path delay SLICE_2 to SLICE_27 meets + 16.000ns delay constraint less 0.000ns skew and - 0.307ns CE_SET requirement (totaling 4.740ns) by 2.081ns + 0.282ns CE_SET requirement (totaling 15.718ns) by 7.097ns Physical Path Details: - Data path SLICE_102 to SLICE_19: + Data path SLICE_2 to SLICE_27: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R5C6A.CLK to R5C6A.Q0 SLICE_102 (from PHI2_c) -ROUTE 1 0.766 R5C6A.Q0 to R5C8D.C1 Bank_4 -CTOF_DEL --- 0.495 R5C8D.C1 to R5C8D.F1 SLICE_99 -ROUTE 2 0.635 R5C8D.F1 to R5C8B.D1 n22 -CTOF_DEL --- 0.495 R5C8B.D1 to R5C8B.F1 SLICE_79 -ROUTE 7 0.461 R5C8B.F1 to R5C8A.C1 n2369 -CTOF_DEL --- 0.495 R5C8A.C1 to R5C8A.F1 SLICE_91 -ROUTE 1 0.744 R5C8A.F1 to R5C9A.C0 n2362 -CTOF_DEL --- 0.495 R5C9A.C0 to R5C9A.F0 SLICE_88 -ROUTE 3 0.635 R5C9A.F0 to R5C9A.D1 C1Submitted_N_237 -CTOF_DEL --- 0.495 R5C9A.D1 to R5C9A.F1 SLICE_88 -ROUTE 1 0.653 R5C9A.F1 to R5C9D.CE PHI2_N_120_enable_1 (to PHI2_c) +REG_DEL --- 0.452 R6C5A.CLK to R6C5A.Q1 SLICE_2 (from RCLK_c) +ROUTE 4 1.017 R6C5A.Q1 to R6C5C.B1 FS[16] +CTOF_DEL --- 0.495 R6C5C.B1 to R6C5C.F1 SLICE_64 +ROUTE 4 0.988 R6C5C.F1 to R5C4C.D1 N_129 +CTOF_DEL --- 0.495 R5C4C.D1 to R5C4C.F1 SLICE_59 +ROUTE 2 0.445 R5C4C.F1 to R5C4C.C0 N_145 +CTOF_DEL --- 0.495 R5C4C.C0 to R5C4C.F0 SLICE_59 +ROUTE 2 0.753 R5C4C.F0 to R5C3A.C0 N_139_8 +CTOF_DEL --- 0.495 R5C3A.C0 to R5C3A.F0 SLICE_56 +ROUTE 1 1.079 R5C3A.F0 to R4C4D.C0 N_140 +CTOF_DEL --- 0.495 R4C4D.C0 to R4C4D.F0 SLICE_54 +ROUTE 1 1.412 R4C4D.F0 to R5C7B.CE N_28 (to RCLK_c) -------- - 6.821 (42.9% logic, 57.1% route), 6 logic levels. + 8.621 (34.0% logic, 66.0% route), 6 logic levels. Clock Skew Details: - Source Clock Path PHI2 to SLICE_102: + Source Clock Path RCLK to SLICE_2: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R5C6A.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R6C5A.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path PHI2 to SLICE_19: + Destination Clock Path RCLK to SLICE_27: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R5C9D.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R5C7B.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 1.971ns (weighted slack = -3.942ns) +Passed: The following path meets requirements by 7.137ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q Bank_i0 (from PHI2_c +) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) + Source: FF Q FS[17] (from RCLK_c +) + Destination: FF Data in n8MEGEN (to RCLK_c +) - Delay: 6.711ns (43.6% logic, 56.4% route), 6 logic levels. + Delay: 8.581ns (39.9% logic, 60.1% route), 7 logic levels. Constraint Details: - 6.711ns physical path delay SLICE_93 to SLICE_19 exceeds - 5.047ns delay constraint less + 8.581ns physical path delay SLICE_1 to SLICE_43 meets + 16.000ns delay constraint less 0.000ns skew and - 0.307ns CE_SET requirement (totaling 4.740ns) by 1.971ns + 0.282ns CE_SET requirement (totaling 15.718ns) by 7.137ns Physical Path Details: - Data path SLICE_93 to SLICE_19: + Data path SLICE_1 to SLICE_43: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R5C8C.CLK to R5C8C.Q0 SLICE_93 (from PHI2_c) -ROUTE 1 0.623 R5C8C.Q0 to R5C7B.D1 Bank_0 -CTOF_DEL --- 0.495 R5C7B.D1 to R5C7B.F1 SLICE_100 -ROUTE 1 0.436 R5C7B.F1 to R5C7D.C1 n2277 -CTOF_DEL --- 0.495 R5C7D.C1 to R5C7D.F1 SLICE_74 -ROUTE 8 0.693 R5C7D.F1 to R5C8A.D1 n26 -CTOF_DEL --- 0.495 R5C8A.D1 to R5C8A.F1 SLICE_91 -ROUTE 1 0.744 R5C8A.F1 to R5C9A.C0 n2362 -CTOF_DEL --- 0.495 R5C9A.C0 to R5C9A.F0 SLICE_88 -ROUTE 3 0.635 R5C9A.F0 to R5C9A.D1 C1Submitted_N_237 -CTOF_DEL --- 0.495 R5C9A.D1 to R5C9A.F1 SLICE_88 -ROUTE 1 0.653 R5C9A.F1 to R5C9D.CE PHI2_N_120_enable_1 (to PHI2_c) +REG_DEL --- 0.452 R6C5B.CLK to R6C5B.Q0 SLICE_1 (from RCLK_c) +ROUTE 3 1.017 R6C5B.Q0 to R6C5D.B1 FS[17] +CTOF_DEL --- 0.495 R6C5D.B1 to R6C5D.F1 SLICE_72 +ROUTE 1 0.315 R6C5D.F1 to R6C5C.D1 UFMSDI_ens2_i_o2_0_3 +CTOF_DEL --- 0.495 R6C5C.D1 to R6C5C.F1 SLICE_64 +ROUTE 4 0.988 R6C5C.F1 to R5C4C.D1 N_129 +CTOF_DEL --- 0.495 R5C4C.D1 to R5C4C.F1 SLICE_59 +ROUTE 2 0.445 R5C4C.F1 to R5C4C.C0 N_145 +CTOF_DEL --- 0.495 R5C4C.C0 to R5C4C.F0 SLICE_59 +ROUTE 2 0.632 R5C4C.F0 to R4C4A.D1 N_139_8 +CTOF_DEL --- 0.495 R4C4A.D1 to R4C4A.F1 SLICE_55 +ROUTE 1 0.693 R4C4A.F1 to R4C4A.B0 N_139 +CTOF_DEL --- 0.495 R4C4A.B0 to R4C4A.F0 SLICE_55 +ROUTE 1 1.069 R4C4A.F0 to R4C6A.CE N_26 (to RCLK_c) -------- - 6.711 (43.6% logic, 56.4% route), 6 logic levels. + 8.581 (39.9% logic, 60.1% route), 7 logic levels. Clock Skew Details: - Source Clock Path PHI2 to SLICE_93: + Source Clock Path RCLK to SLICE_1: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R5C8C.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R6C5B.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path PHI2 to SLICE_19: + Destination Clock Path RCLK to SLICE_43: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R5C9D.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R4C6A.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 1.941ns (weighted slack = -3.882ns) +Passed: The following path meets requirements by 7.169ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q Bank_i1 (from PHI2_c +) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) + Source: FF Q FS[13] (from RCLK_c +) + Destination: FF Data in n8MEGEN (to RCLK_c +) - Delay: 6.681ns (43.8% logic, 56.2% route), 6 logic levels. + Delay: 8.549ns (40.0% logic, 60.0% route), 7 logic levels. Constraint Details: - 6.681ns physical path delay SLICE_93 to SLICE_19 exceeds - 5.047ns delay constraint less + 8.549ns physical path delay SLICE_3 to SLICE_43 meets + 16.000ns delay constraint less 0.000ns skew and - 0.307ns CE_SET requirement (totaling 4.740ns) by 1.941ns + 0.282ns CE_SET requirement (totaling 15.718ns) by 7.169ns Physical Path Details: - Data path SLICE_93 to SLICE_19: + Data path SLICE_3 to SLICE_43: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R5C8C.CLK to R5C8C.Q1 SLICE_93 (from PHI2_c) -ROUTE 1 0.626 R5C8C.Q1 to R5C8D.D1 Bank_1 -CTOF_DEL --- 0.495 R5C8D.D1 to R5C8D.F1 SLICE_99 -ROUTE 2 0.635 R5C8D.F1 to R5C8B.D1 n22 -CTOF_DEL --- 0.495 R5C8B.D1 to R5C8B.F1 SLICE_79 -ROUTE 7 0.461 R5C8B.F1 to R5C8A.C1 n2369 -CTOF_DEL --- 0.495 R5C8A.C1 to R5C8A.F1 SLICE_91 -ROUTE 1 0.744 R5C8A.F1 to R5C9A.C0 n2362 -CTOF_DEL --- 0.495 R5C9A.C0 to R5C9A.F0 SLICE_88 -ROUTE 3 0.635 R5C9A.F0 to R5C9A.D1 C1Submitted_N_237 -CTOF_DEL --- 0.495 R5C9A.D1 to R5C9A.F1 SLICE_88 -ROUTE 1 0.653 R5C9A.F1 to R5C9D.CE PHI2_N_120_enable_1 (to PHI2_c) +REG_DEL --- 0.452 R6C4D.CLK to R6C4D.Q0 SLICE_3 (from RCLK_c) +ROUTE 3 0.985 R6C4D.Q0 to R6C5D.A1 FS[13] +CTOF_DEL --- 0.495 R6C5D.A1 to R6C5D.F1 SLICE_72 +ROUTE 1 0.315 R6C5D.F1 to R6C5C.D1 UFMSDI_ens2_i_o2_0_3 +CTOF_DEL --- 0.495 R6C5C.D1 to R6C5C.F1 SLICE_64 +ROUTE 4 0.988 R6C5C.F1 to R5C4C.D1 N_129 +CTOF_DEL --- 0.495 R5C4C.D1 to R5C4C.F1 SLICE_59 +ROUTE 2 0.445 R5C4C.F1 to R5C4C.C0 N_145 +CTOF_DEL --- 0.495 R5C4C.C0 to R5C4C.F0 SLICE_59 +ROUTE 2 0.632 R5C4C.F0 to R4C4A.D1 N_139_8 +CTOF_DEL --- 0.495 R4C4A.D1 to R4C4A.F1 SLICE_55 +ROUTE 1 0.693 R4C4A.F1 to R4C4A.B0 N_139 +CTOF_DEL --- 0.495 R4C4A.B0 to R4C4A.F0 SLICE_55 +ROUTE 1 1.069 R4C4A.F0 to R4C6A.CE N_26 (to RCLK_c) -------- - 6.681 (43.8% logic, 56.2% route), 6 logic levels. + 8.549 (40.0% logic, 60.0% route), 7 logic levels. Clock Skew Details: - Source Clock Path PHI2 to SLICE_93: + Source Clock Path RCLK to SLICE_3: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R5C8C.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R6C4D.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path PHI2 to SLICE_19: + Destination Clock Path RCLK to SLICE_43: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R5C9D.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R4C6A.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 1.784ns (weighted slack = -3.568ns) +Passed: The following path meets requirements by 7.281ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q Bank_i6 (from PHI2_c +) - Destination: FF Data in ADSubmitted_407 (to PHI2_c -) + Source: FF Q FS[12] (from RCLK_c +) + Destination: FF Data in UFMCLK_0io (to RCLK_c +) - Delay: 6.546ns (37.2% logic, 62.8% route), 5 logic levels. + Delay: 8.739ns (27.8% logic, 72.2% route), 5 logic levels. Constraint Details: - 6.546ns physical path delay SLICE_101 to SLICE_10 exceeds - 5.047ns delay constraint less - 0.000ns skew and - 0.285ns LSR_SET requirement (totaling 4.762ns) by 1.784ns + 8.739ns physical path delay SLICE_4 to UFMCLK_MGIOL meets + 16.000ns delay constraint less + -0.173ns skew and + 0.153ns DO_SET requirement (totaling 16.020ns) by 7.281ns Physical Path Details: - Data path SLICE_101 to SLICE_10: + Data path SLICE_4 to UFMCLK_MGIOL: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R4C7C.CLK to R4C7C.Q0 SLICE_101 (from PHI2_c) -ROUTE 1 0.623 R4C7C.Q0 to R5C7A.D0 Bank_6 -CTOF_DEL --- 0.495 R5C7A.D0 to R5C7A.F0 SLICE_68 -ROUTE 1 0.626 R5C7A.F0 to R5C7D.D1 n2287 -CTOF_DEL --- 0.495 R5C7D.D1 to R5C7D.F1 SLICE_74 -ROUTE 8 0.693 R5C7D.F1 to R5C8A.D1 n26 -CTOF_DEL --- 0.495 R5C8A.D1 to R5C8A.F1 SLICE_91 -ROUTE 1 0.744 R5C8A.F1 to R5C9A.C0 n2362 -CTOF_DEL --- 0.495 R5C9A.C0 to R5C9A.F0 SLICE_88 -ROUTE 3 1.428 R5C9A.F0 to R3C8A.LSR C1Submitted_N_237 (to PHI2_c) +REG_DEL --- 0.452 R6C4C.CLK to R6C4C.Q1 SLICE_4 (from RCLK_c) +ROUTE 3 1.434 R6C4C.Q1 to R6C5D.B0 FS[12] +CTOF_DEL --- 0.495 R6C5D.B0 to R6C5D.F0 SLICE_72 +ROUTE 2 1.902 R6C5D.F0 to R5C5C.A1 N_137_5 +CTOF_DEL --- 0.495 R5C5C.A1 to R5C5C.F1 SLICE_48 +ROUTE 2 0.982 R5C5C.F1 to R5C5C.A0 UFMCLK_r_i_a2_2_2 +CTOF_DEL --- 0.495 R5C5C.A0 to R5C5C.F0 SLICE_48 +ROUTE 1 0.693 R5C5C.F0 to R5C5D.B0 d_m3_0_a2_0 +CTOF_DEL --- 0.495 R5C5D.B0 to R5C5D.F0 SLICE_47 +ROUTE 1 1.296 R5C5D.F0 to IOL_B4C.OPOS i1_i (to RCLK_c) -------- - 6.546 (37.2% logic, 62.8% route), 5 logic levels. + 8.739 (27.8% logic, 72.2% route), 5 logic levels. Clock Skew Details: - Source Clock Path PHI2 to SLICE_101: + Source Clock Path RCLK to SLICE_4: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R4C7C.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R6C4C.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path PHI2 to SLICE_10: + Destination Clock Path RCLK to UFMCLK_MGIOL: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R3C8A.CLK PHI2_c +ROUTE 39 3.243 62.PADDI to IOL_B4C.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.243 (0.0% logic, 100.0% route), 0 logic levels. -Error: The following path exceeds requirements by 1.784ns (weighted slack = -3.568ns) +Passed: The following path meets requirements by 7.354ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q Bank_i6 (from PHI2_c +) - Destination: FF Data in C1Submitted_406 (to PHI2_c -) + Source: FF Q FS[15] (from RCLK_c +) + Destination: FF Data in LEDEN (to RCLK_c +) - Delay: 6.546ns (37.2% logic, 62.8% route), 5 logic levels. + Delay: 8.364ns (35.0% logic, 65.0% route), 6 logic levels. Constraint Details: - 6.546ns physical path delay SLICE_101 to SLICE_15 exceeds - 5.047ns delay constraint less + 8.364ns physical path delay SLICE_2 to SLICE_27 meets + 16.000ns delay constraint less 0.000ns skew and - 0.285ns LSR_SET requirement (totaling 4.762ns) by 1.784ns + 0.282ns CE_SET requirement (totaling 15.718ns) by 7.354ns Physical Path Details: - Data path SLICE_101 to SLICE_15: + Data path SLICE_2 to SLICE_27: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.452 R4C7C.CLK to R4C7C.Q0 SLICE_101 (from PHI2_c) -ROUTE 1 0.623 R4C7C.Q0 to R5C7A.D0 Bank_6 -CTOF_DEL --- 0.495 R5C7A.D0 to R5C7A.F0 SLICE_68 -ROUTE 1 0.626 R5C7A.F0 to R5C7D.D1 n2287 -CTOF_DEL --- 0.495 R5C7D.D1 to R5C7D.F1 SLICE_74 -ROUTE 8 0.693 R5C7D.F1 to R5C8A.D1 n26 -CTOF_DEL --- 0.495 R5C8A.D1 to R5C8A.F1 SLICE_91 -ROUTE 1 0.744 R5C8A.F1 to R5C9A.C0 n2362 -CTOF_DEL --- 0.495 R5C9A.C0 to R5C9A.F0 SLICE_88 -ROUTE 3 1.428 R5C9A.F0 to R3C8B.LSR C1Submitted_N_237 (to PHI2_c) +REG_DEL --- 0.452 R6C5A.CLK to R6C5A.Q0 SLICE_2 (from RCLK_c) +ROUTE 3 0.760 R6C5A.Q0 to R6C5C.C1 FS[15] +CTOF_DEL --- 0.495 R6C5C.C1 to R6C5C.F1 SLICE_64 +ROUTE 4 0.988 R6C5C.F1 to R5C4C.D1 N_129 +CTOF_DEL --- 0.495 R5C4C.D1 to R5C4C.F1 SLICE_59 +ROUTE 2 0.445 R5C4C.F1 to R5C4C.C0 N_145 +CTOF_DEL --- 0.495 R5C4C.C0 to R5C4C.F0 SLICE_59 +ROUTE 2 0.753 R5C4C.F0 to R5C3A.C0 N_139_8 +CTOF_DEL --- 0.495 R5C3A.C0 to R5C3A.F0 SLICE_56 +ROUTE 1 1.079 R5C3A.F0 to R4C4D.C0 N_140 +CTOF_DEL --- 0.495 R4C4D.C0 to R4C4D.F0 SLICE_54 +ROUTE 1 1.412 R4C4D.F0 to R5C7B.CE N_28 (to RCLK_c) -------- - 6.546 (37.2% logic, 62.8% route), 5 logic levels. + 8.364 (35.0% logic, 65.0% route), 6 logic levels. Clock Skew Details: - Source Clock Path PHI2 to SLICE_101: + Source Clock Path RCLK to SLICE_2: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R4C7C.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R6C5A.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path PHI2 to SLICE_15: + Destination Clock Path RCLK to SLICE_27: Name Fanout Delay (ns) Site Resource -ROUTE 14 3.539 8.PADDI to R3C8B.CLK PHI2_c +ROUTE 39 3.070 62.PADDI to R5C7B.CLK RCLK_c -------- - 3.539 (0.0% logic, 100.0% route), 0 logic levels. + 3.070 (0.0% logic, 100.0% route), 0 logic levels. -Warning: 65.729MHz is the maximum frequency for this preference. +Report: 101.286MHz is the maximum frequency for this preference. Report Summary -------------- @@ -1103,31 +1186,18 @@ Warning: 65.729MHz is the maximum frequency for this preference. Preference | Constraint| Actual|Levels ---------------------------------------------------------------------------- | | | -FREQUENCY NET "RCLK_c" 299.401000 MHz ; | 299.401 MHz| 160.205 MHz| 5 * +FREQUENCY PORT "PHI2" 2.900000 MHz ; | 2.900 MHz| 55.475 MHz| 5 | | | -FREQUENCY NET "PHI2_c" 99.079000 MHz ; | 99.079 MHz| 65.729 MHz| 6 * +FREQUENCY PORT "nCCAS" 2.900000 MHz ; | 2.900 MHz| 150.150 MHz| 0 + | | | +FREQUENCY PORT "nCRAS" 2.900000 MHz ; | 2.900 MHz| 150.150 MHz| 0 + | | | +FREQUENCY PORT "RCLK" 62.500000 MHz ; | 62.500 MHz| 101.286 MHz| 7 | | | ---------------------------------------------------------------------------- -2 preferences(marked by "*" above) not met. - ----------------------------------------------------------------------------- -Critical Nets | Loads| Errors| % of total ----------------------------------------------------------------------------- -n26 | 8| 63| 18.05% - | | | -n1996 | 1| 49| 14.04% - | | | -n1997 | 1| 46| 13.18% - | | | -n1995 | 1| 45| 12.89% - | | | -n1998 | 1| 38| 10.89% - | | | -n1994 | 1| 37| 10.60% - | | | ----------------------------------------------------------------------------- +All preferences were met. Clock Domains Analysis @@ -1135,14 +1205,20 @@ Critical Nets | Loads| Errors| % of total Found 4 clocks: -Clock Domain: nCRAS_c Source: nCRAS.PAD Loads: 9 +Clock Domain: nCRAS_c Source: nCRAS.PAD Loads: 12 No transfer within this clock domain is found -Clock Domain: nCCAS_c Source: nCCAS.PAD Loads: 6 + Data transfers from: + Clock Domain: RCLK_c Source: RCLK.PAD + Not reported because source and destination domains are unrelated. + To report these transfers please refer to preference CLKSKEWDIFF to define + external clock skew between clock ports. + +Clock Domain: nCCAS_c Source: nCCAS.PAD Loads: 10 No transfer within this clock domain is found -Clock Domain: RCLK_c Source: RCLK.PAD Loads: 40 - Covered under: FREQUENCY NET "RCLK_c" 299.401000 MHz ; +Clock Domain: RCLK_c Source: RCLK.PAD Loads: 39 + Covered under: FREQUENCY PORT "RCLK" 62.500000 MHz ; Data transfers from: Clock Domain: nCRAS_c Source: nCRAS.PAD @@ -1155,8 +1231,8 @@ Clock Domain: RCLK_c Source: RCLK.PAD Loads: 40 To report these transfers please refer to preference CLKSKEWDIFF to define external clock skew between clock ports. -Clock Domain: PHI2_c Source: PHI2.PAD Loads: 14 - Covered under: FREQUENCY NET "PHI2_c" 99.079000 MHz ; +Clock Domain: PHI2_c Source: PHI2.PAD Loads: 19 + Covered under: FREQUENCY PORT "PHI2" 2.900000 MHz ; Data transfers from: Clock Domain: RCLK_c Source: RCLK.PAD @@ -1168,14 +1244,14 @@ Clock Domain: PHI2_c Source: PHI2.PAD Loads: 14 Timing summary (Setup): --------------- -Timing errors: 349 Score: 452301 -Cumulative negative slack: 370485 +Timing errors: 0 Score: 0 +Cumulative negative slack: 0 -Constraints cover 572 paths, 2 nets, and 409 connections (60.68% coverage) +Constraints cover 760 paths, 4 nets, and 439 connections (62.45% coverage) -------------------------------------------------------------------------------- Lattice TRACE Report - Hold, Version Diamond (64-bit) 3.12.1.454 -Tue Aug 15 05:03:36 2023 +Tue Aug 15 22:56:39 2023 Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. Copyright (c) 1995 AT&T Corp. All rights reserved. @@ -1194,9 +1270,13 @@ Report level: verbose report, limited to 10 items per preference Preference Summary -
  • FREQUENCY NET "RCLK_c" 299.401000 MHz (0 errors)
  • 459 items scored, 0 timing errors detected. +
  • FREQUENCY PORT "PHI2" 2.900000 MHz (0 errors)
  • 170 items scored, 0 timing errors detected. -
  • FREQUENCY NET "PHI2_c" 99.079000 MHz (0 errors)
  • 113 items scored, 0 timing errors detected. +
  • FREQUENCY PORT "nCCAS" 2.900000 MHz (0 errors)
  • 0 items scored, 0 timing errors detected. + +
  • FREQUENCY PORT "nCRAS" 2.900000 MHz (0 errors)
  • 0 items scored, 0 timing errors detected. + +
  • FREQUENCY PORT "RCLK" 62.500000 MHz (0 errors)
  • 590 items scored, 0 timing errors detected. BLOCK ASYNCPATHS BLOCK RESETPATHS @@ -1205,444 +1285,8 @@ BLOCK RESETPATHS ================================================================================ -Preference: FREQUENCY NET "RCLK_c" 299.401000 MHz ; - 459 items scored, 0 timing errors detected. --------------------------------------------------------------------------------- - - -Passed: The following path meets requirements by 0.304ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q IS_FSM__i4 (from RCLK_c +) - Destination: FF Data in IS_FSM__i5 (to RCLK_c +) - - Delay: 0.285ns (46.7% logic, 53.3% route), 1 logic levels. - - Constraint Details: - - 0.285ns physical path delay SLICE_106 to SLICE_106 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.304ns - - Physical Path Details: - - Data path SLICE_106 to SLICE_106: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R3C8D.CLK to R3C8D.Q0 SLICE_106 (from RCLK_c) -ROUTE 1 0.152 R3C8D.Q0 to R3C8D.M1 n736 (to RCLK_c) - -------- - 0.285 (46.7% logic, 53.3% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_106: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R3C8D.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_106: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R3C8D.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.304ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q CASr_382 (from RCLK_c +) - Destination: FF Data in CASr2_383 (to RCLK_c +) - - Delay: 0.285ns (46.7% logic, 53.3% route), 1 logic levels. - - Constraint Details: - - 0.285ns physical path delay SLICE_16 to SLICE_16 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.304ns - - Physical Path Details: - - Data path SLICE_16 to SLICE_16: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R4C9B.CLK to R4C9B.Q0 SLICE_16 (from RCLK_c) -ROUTE 1 0.152 R4C9B.Q0 to R4C9B.M1 CASr (to RCLK_c) - -------- - 0.285 (46.7% logic, 53.3% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_16: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R4C9B.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_16: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R4C9B.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.304ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q IS_FSM__i8 (from RCLK_c +) - Destination: FF Data in IS_FSM__i9 (to RCLK_c +) - - Delay: 0.285ns (46.7% logic, 53.3% route), 1 logic levels. - - Constraint Details: - - 0.285ns physical path delay SLICE_75 to SLICE_75 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.304ns - - Physical Path Details: - - Data path SLICE_75 to SLICE_75: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R3C9D.CLK to R3C9D.Q0 SLICE_75 (from RCLK_c) -ROUTE 1 0.152 R3C9D.Q0 to R3C9D.M1 n732 (to RCLK_c) - -------- - 0.285 (46.7% logic, 53.3% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_75: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R3C9D.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_75: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R3C9D.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.304ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q IS_FSM__i10 (from RCLK_c +) - Destination: FF Data in IS_FSM__i11 (to RCLK_c +) - - Delay: 0.285ns (46.7% logic, 53.3% route), 1 logic levels. - - Constraint Details: - - 0.285ns physical path delay SLICE_79 to SLICE_79 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.304ns - - Physical Path Details: - - Data path SLICE_79 to SLICE_79: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R5C8B.CLK to R5C8B.Q0 SLICE_79 (from RCLK_c) -ROUTE 1 0.152 R5C8B.Q0 to R5C8B.M1 n730 (to RCLK_c) - -------- - 0.285 (46.7% logic, 53.3% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_79: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R5C8B.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_79: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R5C8B.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.304ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q IS_FSM__i14 (from RCLK_c +) - Destination: FF Data in IS_FSM__i15 (to RCLK_c +) - - Delay: 0.285ns (46.7% logic, 53.3% route), 1 logic levels. - - Constraint Details: - - 0.285ns physical path delay SLICE_81 to SLICE_81 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.304ns - - Physical Path Details: - - Data path SLICE_81 to SLICE_81: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R6C9C.CLK to R6C9C.Q0 SLICE_81 (from RCLK_c) -ROUTE 1 0.152 R6C9C.Q0 to R6C9C.M1 n726 (to RCLK_c) - -------- - 0.285 (46.7% logic, 53.3% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_81: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R6C9C.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_81: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R6C9C.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.304ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q IS_FSM__i7 (from RCLK_c +) - Destination: FF Data in IS_FSM__i8 (to RCLK_c +) - - Delay: 0.285ns (46.7% logic, 53.3% route), 1 logic levels. - - Constraint Details: - - 0.285ns physical path delay SLICE_97 to SLICE_75 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.304ns - - Physical Path Details: - - Data path SLICE_97 to SLICE_75: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R3C9A.CLK to R3C9A.Q1 SLICE_97 (from RCLK_c) -ROUTE 1 0.152 R3C9A.Q1 to R3C9D.M0 n733 (to RCLK_c) - -------- - 0.285 (46.7% logic, 53.3% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_97: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R3C9A.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_75: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R3C9D.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.304ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q IS_FSM__i6 (from RCLK_c +) - Destination: FF Data in IS_FSM__i7 (to RCLK_c +) - - Delay: 0.285ns (46.7% logic, 53.3% route), 1 logic levels. - - Constraint Details: - - 0.285ns physical path delay SLICE_97 to SLICE_97 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.304ns - - Physical Path Details: - - Data path SLICE_97 to SLICE_97: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R3C9A.CLK to R3C9A.Q0 SLICE_97 (from RCLK_c) -ROUTE 1 0.152 R3C9A.Q0 to R3C9A.M1 n734 (to RCLK_c) - -------- - 0.285 (46.7% logic, 53.3% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_97: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R3C9A.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_97: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R3C9A.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.306ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q RASr_379 (from RCLK_c +) - Destination: FF Data in RASr2_380 (to RCLK_c +) - - Delay: 0.287ns (46.3% logic, 53.7% route), 1 logic levels. - - Constraint Details: - - 0.287ns physical path delay SLICE_30 to SLICE_30 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.306ns - - Physical Path Details: - - Data path SLICE_30 to SLICE_30: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R5C10B.CLK to R5C10B.Q0 SLICE_30 (from RCLK_c) -ROUTE 2 0.154 R5C10B.Q0 to R5C10B.M1 RASr (to RCLK_c) - -------- - 0.287 (46.3% logic, 53.7% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_30: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R5C10B.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_30: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R5C10B.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.306ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q PHI2r2_377 (from RCLK_c +) - Destination: FF Data in PHI2r3_378 (to RCLK_c +) - - Delay: 0.287ns (46.3% logic, 53.7% route), 1 logic levels. - - Constraint Details: - - 0.287ns physical path delay SLICE_36 to SLICE_69 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.306ns - - Physical Path Details: - - Data path SLICE_36 to SLICE_69: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R4C10A.CLK to R4C10A.Q1 SLICE_36 (from RCLK_c) -ROUTE 3 0.154 R4C10A.Q1 to R4C10C.M1 PHI2r2 (to RCLK_c) - -------- - 0.287 (46.3% logic, 53.7% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_36: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R4C10A.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_69: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R4C10C.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.307ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q IS_FSM__i0 (from RCLK_c +) - Destination: FF Data in IS_FSM__i1 (to RCLK_c +) - - Delay: 0.288ns (46.2% logic, 53.8% route), 1 logic levels. - - Constraint Details: - - 0.288ns physical path delay SLICE_98 to SLICE_98 meets - -0.019ns M_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.019ns) by 0.307ns - - Physical Path Details: - - Data path SLICE_98 to SLICE_98: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R6C11A.CLK to R6C11A.Q0 SLICE_98 (from RCLK_c) -ROUTE 4 0.155 R6C11A.Q0 to R6C11A.M1 nRCS_N_139 (to RCLK_c) - -------- - 0.288 (46.2% logic, 53.8% route), 1 logic levels. - - Clock Skew Details: - - Source Clock Path RCLK to SLICE_98: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R6C11A.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path RCLK to SLICE_98: - - Name Fanout Delay (ns) Site Resource -ROUTE 40 1.059 62.PADDI to R6C11A.CLK RCLK_c - -------- - 1.059 (0.0% logic, 100.0% route), 0 logic levels. - - -================================================================================ -Preference: FREQUENCY NET "PHI2_c" 99.079000 MHz ; - 113 items scored, 0 timing errors detected. +Preference: FREQUENCY PORT "PHI2" 2.900000 MHz ; + 170 items scored, 0 timing errors detected. -------------------------------------------------------------------------------- @@ -1650,471 +1294,914 @@ Passed: The following path meets requirements by 0.379ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q C1Submitted_406 (from PHI2_c -) - Destination: FF Data in C1Submitted_406 (to PHI2_c -) + Source: FF Q ADSubmitted (from PHI2_c -) + Destination: FF Data in ADSubmitted (to PHI2_c -) Delay: 0.366ns (63.9% logic, 36.1% route), 2 logic levels. Constraint Details: - 0.366ns physical path delay SLICE_15 to SLICE_15 meets + 0.366ns physical path delay SLICE_10 to SLICE_10 meets -0.013ns DIN_HLD and 0.000ns delay constraint less 0.000ns skew requirement (totaling -0.013ns) by 0.379ns Physical Path Details: - Data path SLICE_15 to SLICE_15: + Data path SLICE_10 to SLICE_10: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R3C8B.CLK to R3C8B.Q0 SLICE_15 (from PHI2_c) -ROUTE 2 0.132 R3C8B.Q0 to R3C8B.A0 C1Submitted -CTOF_DEL --- 0.101 R3C8B.A0 to R3C8B.F0 SLICE_15 -ROUTE 1 0.000 R3C8B.F0 to R3C8B.DI0 n1398 (to PHI2_c) +REG_DEL --- 0.133 R3C8B.CLK to R3C8B.Q0 SLICE_10 (from PHI2_c) +ROUTE 2 0.132 R3C8B.Q0 to R3C8B.A0 ADSubmitted +CTOF_DEL --- 0.101 R3C8B.A0 to R3C8B.F0 SLICE_10 +ROUTE 1 0.000 R3C8B.F0 to R3C8B.DI0 ADSubmitted_r (to PHI2_c) -------- 0.366 (63.9% logic, 36.1% route), 2 logic levels. - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_15: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R3C8B.CLK PHI2_c - -------- - 1.240 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_15: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R3C8B.CLK PHI2_c - -------- - 1.240 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.851ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q CmdEnable_405 (from PHI2_c -) - Destination: FF Data in XOR8MEG_408 (to PHI2_c -) - - Delay: 0.823ns (28.4% logic, 71.6% route), 2 logic levels. - - Constraint Details: - - 0.823ns physical path delay SLICE_19 to SLICE_50 meets - -0.028ns CE_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.028ns) by 0.851ns - - Physical Path Details: - - Data path SLICE_19 to SLICE_50: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R5C9D.CLK to R5C9D.Q0 SLICE_19 (from PHI2_c) -ROUTE 2 0.332 R5C9D.Q0 to R5C6B.D1 CmdEnable -CTOF_DEL --- 0.101 R5C6B.D1 to R5C6B.F1 SLICE_83 -ROUTE 1 0.257 R5C6B.F1 to R4C6A.CE PHI2_N_120_enable_3 (to PHI2_c) - -------- - 0.823 (28.4% logic, 71.6% route), 2 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R5C9D.CLK PHI2_c - -------- - 1.240 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_50: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R4C6A.CLK PHI2_c - -------- - 1.240 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 0.906ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q ADSubmitted_407 (from PHI2_c -) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) - - Delay: 0.878ns (26.7% logic, 73.3% route), 2 logic levels. - - Constraint Details: - - 0.878ns physical path delay SLICE_10 to SLICE_19 meets - -0.028ns CE_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.028ns) by 0.906ns - - Physical Path Details: - - Data path SLICE_10 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R3C8A.CLK to R3C8A.Q0 SLICE_10 (from PHI2_c) -ROUTE 1 0.501 R3C8A.Q0 to R5C9A.B1 ADSubmitted -CTOF_DEL --- 0.101 R5C9A.B1 to R5C9A.F1 SLICE_88 -ROUTE 1 0.143 R5C9A.F1 to R5C9D.CE PHI2_N_120_enable_1 (to PHI2_c) - -------- - 0.878 (26.7% logic, 73.3% route), 2 logic levels. - Clock Skew Details: Source Clock Path PHI2 to SLICE_10: Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R3C8A.CLK PHI2_c +ROUTE 19 1.240 8.PADDI to R3C8B.CLK PHI2_c -------- 1.240 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path PHI2 to SLICE_19: + Destination Clock Path PHI2 to SLICE_10: Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R5C9D.CLK PHI2_c +ROUTE 19 1.240 8.PADDI to R3C8B.CLK PHI2_c -------- 1.240 (0.0% logic, 100.0% route), 0 logic levels. -Passed: The following path meets requirements by 0.937ns +Passed: The following path meets requirements by 0.379ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q C1Submitted_406 (from PHI2_c -) - Destination: FF Data in CmdEnable_405 (to PHI2_c -) + Source: FF Q C1Submitted (from PHI2_c -) + Destination: FF Data in C1Submitted (to PHI2_c -) - Delay: 0.909ns (48.0% logic, 52.0% route), 4 logic levels. + Delay: 0.366ns (63.9% logic, 36.1% route), 2 logic levels. Constraint Details: - 0.909ns physical path delay SLICE_15 to SLICE_19 meets - -0.028ns CE_HLD and + 0.366ns physical path delay SLICE_13 to SLICE_13 meets + -0.013ns DIN_HLD and 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.028ns) by 0.937ns + 0.000ns skew requirement (totaling -0.013ns) by 0.379ns Physical Path Details: - Data path SLICE_15 to SLICE_19: + Data path SLICE_13 to SLICE_13: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R3C8B.CLK to R3C8B.Q0 SLICE_15 (from PHI2_c) -ROUTE 2 0.136 R3C8B.Q0 to R3C9B.D1 C1Submitted -CTOF_DEL --- 0.101 R3C9B.D1 to R3C9B.F1 SLICE_77 -ROUTE 1 0.056 R3C9B.F1 to R3C9A.C1 n2210 -CTOF_DEL --- 0.101 R3C9A.C1 to R3C9A.F1 SLICE_97 -ROUTE 1 0.138 R3C9A.F1 to R5C9A.C1 n7_adj_5 -CTOF_DEL --- 0.101 R5C9A.C1 to R5C9A.F1 SLICE_88 -ROUTE 1 0.143 R5C9A.F1 to R5C9D.CE PHI2_N_120_enable_1 (to PHI2_c) +REG_DEL --- 0.133 R3C8A.CLK to R3C8A.Q0 SLICE_13 (from PHI2_c) +ROUTE 2 0.132 R3C8A.Q0 to R3C8A.A0 C1Submitted +CTOF_DEL --- 0.101 R3C8A.A0 to R3C8A.F0 SLICE_13 +ROUTE 1 0.000 R3C8A.F0 to R3C8A.DI0 C1Submitted_s (to PHI2_c) -------- - 0.909 (48.0% logic, 52.0% route), 4 logic levels. + 0.366 (63.9% logic, 36.1% route), 2 logic levels. Clock Skew Details: - Source Clock Path PHI2 to SLICE_15: + Source Clock Path PHI2 to SLICE_13: Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R3C8B.CLK PHI2_c +ROUTE 19 1.240 8.PADDI to R3C8A.CLK PHI2_c -------- 1.240 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path PHI2 to SLICE_19: + Destination Clock Path PHI2 to SLICE_13: Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R5C9D.CLK PHI2_c +ROUTE 19 1.240 8.PADDI to R3C8A.CLK PHI2_c -------- 1.240 (0.0% logic, 100.0% route), 0 logic levels. -Passed: The following path meets requirements by 1.059ns +Passed: The following path meets requirements by 0.379ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q CmdEnable_405 (from PHI2_c -) - Destination: FF Data in CmdUFMCS_412 (to PHI2_c -) - FF CmdUFMCLK_413 + Source: FF Q CmdSubmitted (from PHI2_c -) + Destination: FF Data in CmdSubmitted (to PHI2_c -) - Delay: 1.031ns (32.5% logic, 67.5% route), 3 logic levels. + Delay: 0.366ns (63.9% logic, 36.1% route), 2 logic levels. Constraint Details: - 1.031ns physical path delay SLICE_19 to SLICE_100 meets - -0.028ns CE_HLD and + 0.366ns physical path delay SLICE_20 to SLICE_20 meets + -0.013ns DIN_HLD and 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.028ns) by 1.059ns + 0.000ns skew requirement (totaling -0.013ns) by 0.379ns Physical Path Details: - Data path SLICE_19 to SLICE_100: + Data path SLICE_20 to SLICE_20: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R5C9D.CLK to R5C9D.Q0 SLICE_19 (from PHI2_c) -ROUTE 2 0.224 R5C9D.Q0 to R5C6D.C0 CmdEnable -CTOF_DEL --- 0.101 R5C6D.C0 to R5C6D.F0 SLICE_73 -ROUTE 2 0.212 R5C6D.F0 to R5C6D.A1 n2204 -CTOF_DEL --- 0.101 R5C6D.A1 to R5C6D.F1 SLICE_73 -ROUTE 2 0.260 R5C6D.F1 to R5C7B.CE PHI2_N_120_enable_8 (to PHI2_c) +REG_DEL --- 0.133 R4C8B.CLK to R4C8B.Q0 SLICE_20 (from PHI2_c) +ROUTE 4 0.132 R4C8B.Q0 to R4C8B.A0 CmdSubmitted +CTOF_DEL --- 0.101 R4C8B.A0 to R4C8B.F0 SLICE_20 +ROUTE 1 0.000 R4C8B.F0 to R4C8B.DI0 N_412_0 (to PHI2_c) -------- - 1.031 (32.5% logic, 67.5% route), 3 logic levels. + 0.366 (63.9% logic, 36.1% route), 2 logic levels. Clock Skew Details: - Source Clock Path PHI2 to SLICE_19: + Source Clock Path PHI2 to SLICE_20: Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R5C9D.CLK PHI2_c - -------- - 1.240 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_100: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R5C7B.CLK PHI2_c - -------- - 1.240 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 1.059ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q CmdEnable_405 (from PHI2_c -) - Destination: FF Data in CmdUFMSDI_414 (to PHI2_c -) - - Delay: 1.031ns (32.5% logic, 67.5% route), 3 logic levels. - - Constraint Details: - - 1.031ns physical path delay SLICE_19 to SLICE_99 meets - -0.028ns CE_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.028ns) by 1.059ns - - Physical Path Details: - - Data path SLICE_19 to SLICE_99: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R5C9D.CLK to R5C9D.Q0 SLICE_19 (from PHI2_c) -ROUTE 2 0.224 R5C9D.Q0 to R5C6D.C0 CmdEnable -CTOF_DEL --- 0.101 R5C6D.C0 to R5C6D.F0 SLICE_73 -ROUTE 2 0.212 R5C6D.F0 to R5C6D.A1 n2204 -CTOF_DEL --- 0.101 R5C6D.A1 to R5C6D.F1 SLICE_73 -ROUTE 2 0.260 R5C6D.F1 to R5C8D.CE PHI2_N_120_enable_8 (to PHI2_c) - -------- - 1.031 (32.5% logic, 67.5% route), 3 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R5C9D.CLK PHI2_c - -------- - 1.240 (0.0% logic, 100.0% route), 0 logic levels. - - Destination Clock Path PHI2 to SLICE_99: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R5C8D.CLK PHI2_c - -------- - 1.240 (0.0% logic, 100.0% route), 0 logic levels. - - -Passed: The following path meets requirements by 1.106ns - - Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - - Source: FF Q CmdEnable_405 (from PHI2_c -) - Destination: FF Data in CmdSubmitted_411 (to PHI2_c -) - - Delay: 1.078ns (40.4% logic, 59.6% route), 4 logic levels. - - Constraint Details: - - 1.078ns physical path delay SLICE_19 to SLICE_20 meets - -0.028ns CE_HLD and - 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.028ns) by 1.106ns - - Physical Path Details: - - Data path SLICE_19 to SLICE_20: - - Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R5C9D.CLK to R5C9D.Q0 SLICE_19 (from PHI2_c) -ROUTE 2 0.224 R5C9D.Q0 to R5C6D.C0 CmdEnable -CTOF_DEL --- 0.101 R5C6D.C0 to R5C6D.F0 SLICE_73 -ROUTE 2 0.137 R5C6D.F0 to R5C7D.D0 n2204 -CTOF_DEL --- 0.101 R5C7D.D0 to R5C7D.F0 SLICE_74 -ROUTE 2 0.138 R5C7D.F0 to R3C7C.D1 n2220 -CTOF_DEL --- 0.101 R3C7C.D1 to R3C7C.F1 SLICE_89 -ROUTE 1 0.143 R3C7C.F1 to R3C7D.CE PHI2_N_120_enable_7 (to PHI2_c) - -------- - 1.078 (40.4% logic, 59.6% route), 4 logic levels. - - Clock Skew Details: - - Source Clock Path PHI2 to SLICE_19: - - Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R5C9D.CLK PHI2_c +ROUTE 19 1.240 8.PADDI to R4C8B.CLK PHI2_c -------- 1.240 (0.0% logic, 100.0% route), 0 logic levels. Destination Clock Path PHI2 to SLICE_20: Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R3C7D.CLK PHI2_c +ROUTE 19 1.240 8.PADDI to R4C8B.CLK PHI2_c -------- 1.240 (0.0% logic, 100.0% route), 0 logic levels. -Passed: The following path meets requirements by 1.106ns +Passed: The following path meets requirements by 0.379ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q CmdEnable_405 (from PHI2_c -) - Destination: FF Data in Cmdn8MEGEN_410 (to PHI2_c -) + Source: FF Q XOR8MEG (from PHI2_c -) + Destination: FF Data in XOR8MEG (to PHI2_c -) - Delay: 1.078ns (40.4% logic, 59.6% route), 4 logic levels. + Delay: 0.366ns (63.9% logic, 36.1% route), 2 logic levels. Constraint Details: - 1.078ns physical path delay SLICE_19 to SLICE_24 meets - -0.028ns CE_HLD and + 0.366ns physical path delay SLICE_42 to SLICE_42 meets + -0.013ns DIN_HLD and 0.000ns delay constraint less - 0.000ns skew requirement (totaling -0.028ns) by 1.106ns + 0.000ns skew requirement (totaling -0.013ns) by 0.379ns Physical Path Details: - Data path SLICE_19 to SLICE_24: + Data path SLICE_42 to SLICE_42: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R5C9D.CLK to R5C9D.Q0 SLICE_19 (from PHI2_c) -ROUTE 2 0.224 R5C9D.Q0 to R5C6D.C0 CmdEnable -CTOF_DEL --- 0.101 R5C6D.C0 to R5C6D.F0 SLICE_73 -ROUTE 2 0.137 R5C6D.F0 to R5C7D.D0 n2204 -CTOF_DEL --- 0.101 R5C7D.D0 to R5C7D.F0 SLICE_74 -ROUTE 2 0.138 R5C7D.F0 to R3C7C.D0 n2220 -CTOF_DEL --- 0.101 R3C7C.D0 to R3C7C.F0 SLICE_89 -ROUTE 1 0.143 R3C7C.F0 to R3C7B.CE PHI2_N_120_enable_6 (to PHI2_c) +REG_DEL --- 0.133 R5C9B.CLK to R5C9B.Q0 SLICE_42 (from PHI2_c) +ROUTE 2 0.132 R5C9B.Q0 to R5C9B.A0 XOR8MEG +CTOF_DEL --- 0.101 R5C9B.A0 to R5C9B.F0 SLICE_42 +ROUTE 1 0.000 R5C9B.F0 to R5C9B.DI0 XOR8MEG_3 (to PHI2_c) -------- - 1.078 (40.4% logic, 59.6% route), 4 logic levels. + 0.366 (63.9% logic, 36.1% route), 2 logic levels. + + Clock Skew Details: + + Source Clock Path PHI2 to SLICE_42: + + Name Fanout Delay (ns) Site Resource +ROUTE 19 1.240 8.PADDI to R5C9B.CLK PHI2_c + -------- + 1.240 (0.0% logic, 100.0% route), 0 logic levels. + + Destination Clock Path PHI2 to SLICE_42: + + Name Fanout Delay (ns) Site Resource +ROUTE 19 1.240 8.PADDI to R5C9B.CLK PHI2_c + -------- + 1.240 (0.0% logic, 100.0% route), 0 logic levels. + + +Passed: The following path meets requirements by 0.435ns + + Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) + + Source: FF Q CmdEnable (from PHI2_c -) + Destination: FF Data in CmdEnable (to PHI2_c -) + + Delay: 0.422ns (68.5% logic, 31.5% route), 2 logic levels. + + Constraint Details: + + 0.422ns physical path delay SLICE_18 to SLICE_18 meets + -0.013ns DIN_HLD and + 0.000ns delay constraint less + 0.000ns skew requirement (totaling -0.013ns) by 0.435ns + + Physical Path Details: + + Data path SLICE_18 to SLICE_18: + + Name Fanout Delay (ns) Site Resource +REG_DEL --- 0.133 R3C8C.CLK to R3C8C.Q0 SLICE_18 (from PHI2_c) +ROUTE 3 0.133 R3C8C.Q0 to R3C8C.A0 CmdEnable +CTOOFX_DEL --- 0.156 R3C8C.A0 to R3C8C.OFX0 SLICE_18 +ROUTE 1 0.000 R3C8C.OFX0 to R3C8C.DI0 CmdEnable_s (to PHI2_c) + -------- + 0.422 (68.5% logic, 31.5% route), 2 logic levels. + + Clock Skew Details: + + Source Clock Path PHI2 to SLICE_18: + + Name Fanout Delay (ns) Site Resource +ROUTE 19 1.240 8.PADDI to R3C8C.CLK PHI2_c + -------- + 1.240 (0.0% logic, 100.0% route), 0 logic levels. + + Destination Clock Path PHI2 to SLICE_18: + + Name Fanout Delay (ns) Site Resource +ROUTE 19 1.240 8.PADDI to R3C8C.CLK PHI2_c + -------- + 1.240 (0.0% logic, 100.0% route), 0 logic levels. + + +Passed: The following path meets requirements by 0.440ns + + Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) + + Source: FF Q ADSubmitted (from PHI2_c -) + Destination: FF Data in CmdEnable (to PHI2_c -) + + Delay: 0.427ns (67.7% logic, 32.3% route), 2 logic levels. + + Constraint Details: + + 0.427ns physical path delay SLICE_10 to SLICE_18 meets + -0.013ns DIN_HLD and + 0.000ns delay constraint less + 0.000ns skew requirement (totaling -0.013ns) by 0.440ns + + Physical Path Details: + + Data path SLICE_10 to SLICE_18: + + Name Fanout Delay (ns) Site Resource +REG_DEL --- 0.133 R3C8B.CLK to R3C8B.Q0 SLICE_10 (from PHI2_c) +ROUTE 2 0.138 R3C8B.Q0 to R3C8C.C1 ADSubmitted +CTOOFX_DEL --- 0.156 R3C8C.C1 to R3C8C.OFX0 SLICE_18 +ROUTE 1 0.000 R3C8C.OFX0 to R3C8C.DI0 CmdEnable_s (to PHI2_c) + -------- + 0.427 (67.7% logic, 32.3% route), 2 logic levels. + + Clock Skew Details: + + Source Clock Path PHI2 to SLICE_10: + + Name Fanout Delay (ns) Site Resource +ROUTE 19 1.240 8.PADDI to R3C8B.CLK PHI2_c + -------- + 1.240 (0.0% logic, 100.0% route), 0 logic levels. + + Destination Clock Path PHI2 to SLICE_18: + + Name Fanout Delay (ns) Site Resource +ROUTE 19 1.240 8.PADDI to R3C8C.CLK PHI2_c + -------- + 1.240 (0.0% logic, 100.0% route), 0 logic levels. + + +Passed: The following path meets requirements by 0.526ns + + Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) + + Source: FF Q C1Submitted (from PHI2_c -) + Destination: FF Data in CmdEnable (to PHI2_c -) + + Delay: 0.513ns (56.3% logic, 43.7% route), 2 logic levels. + + Constraint Details: + + 0.513ns physical path delay SLICE_13 to SLICE_18 meets + -0.013ns DIN_HLD and + 0.000ns delay constraint less + 0.000ns skew requirement (totaling -0.013ns) by 0.526ns + + Physical Path Details: + + Data path SLICE_13 to SLICE_18: + + Name Fanout Delay (ns) Site Resource +REG_DEL --- 0.133 R3C8A.CLK to R3C8A.Q0 SLICE_13 (from PHI2_c) +ROUTE 2 0.224 R3C8A.Q0 to R3C8C.B0 C1Submitted +CTOOFX_DEL --- 0.156 R3C8C.B0 to R3C8C.OFX0 SLICE_18 +ROUTE 1 0.000 R3C8C.OFX0 to R3C8C.DI0 CmdEnable_s (to PHI2_c) + -------- + 0.513 (56.3% logic, 43.7% route), 2 logic levels. + + Clock Skew Details: + + Source Clock Path PHI2 to SLICE_13: + + Name Fanout Delay (ns) Site Resource +ROUTE 19 1.240 8.PADDI to R3C8A.CLK PHI2_c + -------- + 1.240 (0.0% logic, 100.0% route), 0 logic levels. + + Destination Clock Path PHI2 to SLICE_18: + + Name Fanout Delay (ns) Site Resource +ROUTE 19 1.240 8.PADDI to R3C8C.CLK PHI2_c + -------- + 1.240 (0.0% logic, 100.0% route), 0 logic levels. + + +Passed: The following path meets requirements by 0.527ns + + Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) + + Source: FF Q CmdEnable (from PHI2_c -) + Destination: FF Data in CmdEnable (to PHI2_c -) + + Delay: 0.514ns (56.2% logic, 43.8% route), 2 logic levels. + + Constraint Details: + + 0.514ns physical path delay SLICE_18 to SLICE_18 meets + -0.013ns DIN_HLD and + 0.000ns delay constraint less + 0.000ns skew requirement (totaling -0.013ns) by 0.527ns + + Physical Path Details: + + Data path SLICE_18 to SLICE_18: + + Name Fanout Delay (ns) Site Resource +REG_DEL --- 0.133 R3C8C.CLK to R3C8C.Q0 SLICE_18 (from PHI2_c) +ROUTE 3 0.225 R3C8C.Q0 to R3C8C.B1 CmdEnable +CTOOFX_DEL --- 0.156 R3C8C.B1 to R3C8C.OFX0 SLICE_18 +ROUTE 1 0.000 R3C8C.OFX0 to R3C8C.DI0 CmdEnable_s (to PHI2_c) + -------- + 0.514 (56.2% logic, 43.8% route), 2 logic levels. + + Clock Skew Details: + + Source Clock Path PHI2 to SLICE_18: + + Name Fanout Delay (ns) Site Resource +ROUTE 19 1.240 8.PADDI to R3C8C.CLK PHI2_c + -------- + 1.240 (0.0% logic, 100.0% route), 0 logic levels. + + Destination Clock Path PHI2 to SLICE_18: + + Name Fanout Delay (ns) Site Resource +ROUTE 19 1.240 8.PADDI to R3C8C.CLK PHI2_c + -------- + 1.240 (0.0% logic, 100.0% route), 0 logic levels. + + +Passed: The following path meets requirements by 0.616ns + + Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) + + Source: FF Q CmdLEDEN (from PHI2_c -) + Destination: FF Data in CmdLEDEN (to PHI2_c -) + + Delay: 0.603ns (55.6% logic, 44.4% route), 3 logic levels. + + Constraint Details: + + 0.603ns physical path delay SLICE_19 to SLICE_19 meets + -0.013ns DIN_HLD and + 0.000ns delay constraint less + 0.000ns skew requirement (totaling -0.013ns) by 0.616ns + + Physical Path Details: + + Data path SLICE_19 to SLICE_19: + + Name Fanout Delay (ns) Site Resource +REG_DEL --- 0.133 R5C8B.CLK to R5C8B.Q0 SLICE_19 (from PHI2_c) +ROUTE 2 0.212 R5C8B.Q0 to R5C8A.A1 CmdLEDEN +CTOF_DEL --- 0.101 R5C8A.A1 to R5C8A.F1 SLICE_70 +ROUTE 1 0.056 R5C8A.F1 to R5C8B.C0 N_59 +CTOF_DEL --- 0.101 R5C8B.C0 to R5C8B.F0 SLICE_19 +ROUTE 1 0.000 R5C8B.F0 to R5C8B.DI0 N_14_i (to PHI2_c) + -------- + 0.603 (55.6% logic, 44.4% route), 3 logic levels. Clock Skew Details: Source Clock Path PHI2 to SLICE_19: Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R5C9D.CLK PHI2_c +ROUTE 19 1.240 8.PADDI to R5C8B.CLK PHI2_c -------- 1.240 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path PHI2 to SLICE_24: + Destination Clock Path PHI2 to SLICE_19: Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R3C7B.CLK PHI2_c +ROUTE 19 1.240 8.PADDI to R5C8B.CLK PHI2_c -------- 1.240 (0.0% logic, 100.0% route), 0 logic levels. -Passed: The following path meets requirements by 5.504ns (weighted slack = 11.008ns) +Passed: The following path meets requirements by 0.702ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q XOR8MEG_408 (from PHI2_c -) - Destination: FF Data in RA11_385 (to PHI2_c +) + Source: FF Q Cmdn8MEGEN (from PHI2_c -) + Destination: FF Data in Cmdn8MEGEN (to PHI2_c -) - Delay: 0.444ns (52.7% logic, 47.3% route), 2 logic levels. + Delay: 0.689ns (48.6% logic, 51.4% route), 3 logic levels. Constraint Details: - 0.444ns physical path delay SLICE_50 to SLICE_33 meets + 0.689ns physical path delay SLICE_21 to SLICE_21 meets -0.013ns DIN_HLD and - -5.047ns delay constraint less - 0.000ns skew requirement (totaling -5.060ns) by 5.504ns + 0.000ns delay constraint less + 0.000ns skew requirement (totaling -0.013ns) by 0.702ns Physical Path Details: - Data path SLICE_50 to SLICE_33: + Data path SLICE_21 to SLICE_21: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R4C6A.CLK to R4C6A.Q0 SLICE_50 (from PHI2_c) -ROUTE 1 0.210 R4C6A.Q0 to R4C6C.A0 XOR8MEG -CTOF_DEL --- 0.101 R4C6C.A0 to R4C6C.F0 SLICE_33 -ROUTE 1 0.000 R4C6C.F0 to R4C6C.DI0 RA11_N_184 (to PHI2_c) +REG_DEL --- 0.133 R5C8D.CLK to R5C8D.Q0 SLICE_21 (from PHI2_c) +ROUTE 2 0.224 R5C8D.Q0 to R5C8C.B1 Cmdn8MEGEN +CTOF_DEL --- 0.101 R5C8C.B1 to R5C8C.F1 SLICE_50 +ROUTE 1 0.130 R5C8C.F1 to R5C8D.A0 Cmdn8MEGEN_4_u_i_0 +CTOF_DEL --- 0.101 R5C8D.A0 to R5C8D.F0 SLICE_21 +ROUTE 1 0.000 R5C8D.F0 to R5C8D.DI0 N_12_i (to PHI2_c) -------- - 0.444 (52.7% logic, 47.3% route), 2 logic levels. + 0.689 (48.6% logic, 51.4% route), 3 logic levels. Clock Skew Details: - Source Clock Path PHI2 to SLICE_50: + Source Clock Path PHI2 to SLICE_21: Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R4C6A.CLK PHI2_c +ROUTE 19 1.240 8.PADDI to R5C8D.CLK PHI2_c -------- 1.240 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path PHI2 to SLICE_33: + Destination Clock Path PHI2 to SLICE_21: Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R4C6C.CLK PHI2_c +ROUTE 19 1.240 8.PADDI to R5C8D.CLK PHI2_c -------- 1.240 (0.0% logic, 100.0% route), 0 logic levels. -Passed: The following path meets requirements by 5.899ns (weighted slack = 11.798ns) +================================================================================ +Preference: FREQUENCY PORT "nCCAS" 2.900000 MHz ; + 0 items scored, 0 timing errors detected. +-------------------------------------------------------------------------------- + + +================================================================================ +Preference: FREQUENCY PORT "nCRAS" 2.900000 MHz ; + 0 items scored, 0 timing errors detected. +-------------------------------------------------------------------------------- + + +================================================================================ +Preference: FREQUENCY PORT "RCLK" 62.500000 MHz ; + 590 items scored, 0 timing errors detected. +-------------------------------------------------------------------------------- + + +Passed: The following path meets requirements by 0.304ns Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) - Source: FF Q Bank_i1 (from PHI2_c +) - Destination: FF Data in C1Submitted_406 (to PHI2_c -) + Source: FF Q CASr (from RCLK_c +) + Destination: FF Data in CASr2 (to RCLK_c +) - Delay: 0.839ns (52.0% logic, 48.0% route), 4 logic levels. + Delay: 0.285ns (46.7% logic, 53.3% route), 1 logic levels. Constraint Details: - 0.839ns physical path delay SLICE_93 to SLICE_15 meets - -0.013ns DIN_HLD and - -5.047ns delay constraint less - 0.000ns skew requirement (totaling -5.060ns) by 5.899ns + 0.285ns physical path delay SLICE_14 to SLICE_14 meets + -0.019ns M_HLD and + 0.000ns delay constraint less + 0.000ns skew requirement (totaling -0.019ns) by 0.304ns Physical Path Details: - Data path SLICE_93 to SLICE_15: + Data path SLICE_14 to SLICE_14: Name Fanout Delay (ns) Site Resource -REG_DEL --- 0.133 R5C8C.CLK to R5C8C.Q1 SLICE_93 (from PHI2_c) -ROUTE 1 0.133 R5C8C.Q1 to R5C8D.D1 Bank_1 -CTOF_DEL --- 0.101 R5C8D.D1 to R5C8D.F1 SLICE_99 -ROUTE 2 0.214 R5C8D.F1 to R3C8B.A1 n22 -CTOF_DEL --- 0.101 R3C8B.A1 to R3C8B.F1 SLICE_15 -ROUTE 1 0.056 R3C8B.F1 to R3C8B.C0 n2365 -CTOF_DEL --- 0.101 R3C8B.C0 to R3C8B.F0 SLICE_15 -ROUTE 1 0.000 R3C8B.F0 to R3C8B.DI0 n1398 (to PHI2_c) +REG_DEL --- 0.133 R5C9A.CLK to R5C9A.Q0 SLICE_14 (from RCLK_c) +ROUTE 1 0.152 R5C9A.Q0 to R5C9A.M1 CASr (to RCLK_c) -------- - 0.839 (52.0% logic, 48.0% route), 4 logic levels. + 0.285 (46.7% logic, 53.3% route), 1 logic levels. Clock Skew Details: - Source Clock Path PHI2 to SLICE_93: + Source Clock Path RCLK to SLICE_14: Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R5C8C.CLK PHI2_c +ROUTE 39 1.059 62.PADDI to R5C9A.CLK RCLK_c -------- - 1.240 (0.0% logic, 100.0% route), 0 logic levels. + 1.059 (0.0% logic, 100.0% route), 0 logic levels. - Destination Clock Path PHI2 to SLICE_15: + Destination Clock Path RCLK to SLICE_14: Name Fanout Delay (ns) Site Resource -ROUTE 14 1.240 8.PADDI to R3C8B.CLK PHI2_c +ROUTE 39 1.059 62.PADDI to R5C9A.CLK RCLK_c -------- - 1.240 (0.0% logic, 100.0% route), 0 logic levels. + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + +Passed: The following path meets requirements by 0.309ns + + Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) + + Source: FF Q RASr (from RCLK_c +) + Destination: FF Data in RASr2 (to RCLK_c +) + + Delay: 0.290ns (45.9% logic, 54.1% route), 1 logic levels. + + Constraint Details: + + 0.290ns physical path delay SLICE_29 to SLICE_29 meets + -0.019ns M_HLD and + 0.000ns delay constraint less + 0.000ns skew requirement (totaling -0.019ns) by 0.309ns + + Physical Path Details: + + Data path SLICE_29 to SLICE_29: + + Name Fanout Delay (ns) Site Resource +REG_DEL --- 0.133 R6C12B.CLK to R6C12B.Q0 SLICE_29 (from RCLK_c) +ROUTE 2 0.157 R6C12B.Q0 to R6C12B.M1 RASr (to RCLK_c) + -------- + 0.290 (45.9% logic, 54.1% route), 1 logic levels. + + Clock Skew Details: + + Source Clock Path RCLK to SLICE_29: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R6C12B.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + Destination Clock Path RCLK to SLICE_29: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R6C12B.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + +Passed: The following path meets requirements by 0.311ns + + Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) + + Source: FF Q RASr2 (from RCLK_c +) + Destination: FF Data in RASr3 (to RCLK_c +) + + Delay: 0.292ns (45.5% logic, 54.5% route), 1 logic levels. + + Constraint Details: + + 0.292ns physical path delay SLICE_29 to SLICE_32 meets + -0.019ns M_HLD and + 0.000ns delay constraint less + 0.000ns skew requirement (totaling -0.019ns) by 0.311ns + + Physical Path Details: + + Data path SLICE_29 to SLICE_32: + + Name Fanout Delay (ns) Site Resource +REG_DEL --- 0.133 R6C12B.CLK to R6C12B.Q1 SLICE_29 (from RCLK_c) +ROUTE 10 0.159 R6C12B.Q1 to R6C12A.M1 RASr2 (to RCLK_c) + -------- + 0.292 (45.5% logic, 54.5% route), 1 logic levels. + + Clock Skew Details: + + Source Clock Path RCLK to SLICE_29: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R6C12B.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + Destination Clock Path RCLK to SLICE_32: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R6C12A.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + +Passed: The following path meets requirements by 0.311ns + + Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) + + Source: FF Q PHI2r2 (from RCLK_c +) + Destination: FF Data in PHI2r3 (to RCLK_c +) + + Delay: 0.292ns (45.5% logic, 54.5% route), 1 logic levels. + + Constraint Details: + + 0.292ns physical path delay SLICE_65 to SLICE_65 meets + -0.019ns M_HLD and + 0.000ns delay constraint less + 0.000ns skew requirement (totaling -0.019ns) by 0.311ns + + Physical Path Details: + + Data path SLICE_65 to SLICE_65: + + Name Fanout Delay (ns) Site Resource +REG_DEL --- 0.133 R4C4B.CLK to R4C4B.Q0 SLICE_65 (from RCLK_c) +ROUTE 3 0.159 R4C4B.Q0 to R4C4B.M1 PHI2r2 (to RCLK_c) + -------- + 0.292 (45.5% logic, 54.5% route), 1 logic levels. + + Clock Skew Details: + + Source Clock Path RCLK to SLICE_65: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R4C4B.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + Destination Clock Path RCLK to SLICE_65: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R4C4B.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + +Passed: The following path meets requirements by 0.379ns + + Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) + + Source: FF Q FS[0] (from RCLK_c +) + Destination: FF Data in FS[0] (to RCLK_c +) + + Delay: 0.366ns (63.9% logic, 36.1% route), 2 logic levels. + + Constraint Details: + + 0.366ns physical path delay SLICE_0 to SLICE_0 meets + -0.013ns DIN_HLD and + 0.000ns delay constraint less + 0.000ns skew requirement (totaling -0.013ns) by 0.379ns + + Physical Path Details: + + Data path SLICE_0 to SLICE_0: + + Name Fanout Delay (ns) Site Resource +REG_DEL --- 0.133 R6C3A.CLK to R6C3A.Q1 SLICE_0 (from RCLK_c) +ROUTE 3 0.132 R6C3A.Q1 to R6C3A.A1 FS[0] +CTOF_DEL --- 0.101 R6C3A.A1 to R6C3A.F1 SLICE_0 +ROUTE 1 0.000 R6C3A.F1 to R6C3A.DI1 FS_s[0] (to RCLK_c) + -------- + 0.366 (63.9% logic, 36.1% route), 2 logic levels. + + Clock Skew Details: + + Source Clock Path RCLK to SLICE_0: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R6C3A.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + Destination Clock Path RCLK to SLICE_0: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R6C3A.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + +Passed: The following path meets requirements by 0.379ns + + Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) + + Source: FF Q FS[13] (from RCLK_c +) + Destination: FF Data in FS[13] (to RCLK_c +) + + Delay: 0.366ns (63.9% logic, 36.1% route), 2 logic levels. + + Constraint Details: + + 0.366ns physical path delay SLICE_3 to SLICE_3 meets + -0.013ns DIN_HLD and + 0.000ns delay constraint less + 0.000ns skew requirement (totaling -0.013ns) by 0.379ns + + Physical Path Details: + + Data path SLICE_3 to SLICE_3: + + Name Fanout Delay (ns) Site Resource +REG_DEL --- 0.133 R6C4D.CLK to R6C4D.Q0 SLICE_3 (from RCLK_c) +ROUTE 3 0.132 R6C4D.Q0 to R6C4D.A0 FS[13] +CTOF_DEL --- 0.101 R6C4D.A0 to R6C4D.F0 SLICE_3 +ROUTE 1 0.000 R6C4D.F0 to R6C4D.DI0 FS_s[13] (to RCLK_c) + -------- + 0.366 (63.9% logic, 36.1% route), 2 logic levels. + + Clock Skew Details: + + Source Clock Path RCLK to SLICE_3: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R6C4D.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + Destination Clock Path RCLK to SLICE_3: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R6C4D.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + +Passed: The following path meets requirements by 0.379ns + + Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) + + Source: FF Q Ready_fast (from RCLK_c +) + Destination: FF Data in Ready_fast (to RCLK_c +) + + Delay: 0.366ns (63.9% logic, 36.1% route), 2 logic levels. + + Constraint Details: + + 0.366ns physical path delay SLICE_34 to SLICE_34 meets + -0.013ns DIN_HLD and + 0.000ns delay constraint less + 0.000ns skew requirement (totaling -0.013ns) by 0.379ns + + Physical Path Details: + + Data path SLICE_34 to SLICE_34: + + Name Fanout Delay (ns) Site Resource +REG_DEL --- 0.133 R4C13C.CLK to R4C13C.Q0 SLICE_34 (from RCLK_c) +ROUTE 14 0.132 R4C13C.Q0 to R4C13C.A0 Ready_fast +CTOF_DEL --- 0.101 R4C13C.A0 to R4C13C.F0 SLICE_34 +ROUTE 1 0.000 R4C13C.F0 to R4C13C.DI0 N_415_0 (to RCLK_c) + -------- + 0.366 (63.9% logic, 36.1% route), 2 logic levels. + + Clock Skew Details: + + Source Clock Path RCLK to SLICE_34: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R4C13C.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + Destination Clock Path RCLK to SLICE_34: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R4C13C.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + +Passed: The following path meets requirements by 0.379ns + + Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) + + Source: FF Q FS[12] (from RCLK_c +) + Destination: FF Data in FS[12] (to RCLK_c +) + + Delay: 0.366ns (63.9% logic, 36.1% route), 2 logic levels. + + Constraint Details: + + 0.366ns physical path delay SLICE_4 to SLICE_4 meets + -0.013ns DIN_HLD and + 0.000ns delay constraint less + 0.000ns skew requirement (totaling -0.013ns) by 0.379ns + + Physical Path Details: + + Data path SLICE_4 to SLICE_4: + + Name Fanout Delay (ns) Site Resource +REG_DEL --- 0.133 R6C4C.CLK to R6C4C.Q1 SLICE_4 (from RCLK_c) +ROUTE 3 0.132 R6C4C.Q1 to R6C4C.A1 FS[12] +CTOF_DEL --- 0.101 R6C4C.A1 to R6C4C.F1 SLICE_4 +ROUTE 1 0.000 R6C4C.F1 to R6C4C.DI1 FS_s[12] (to RCLK_c) + -------- + 0.366 (63.9% logic, 36.1% route), 2 logic levels. + + Clock Skew Details: + + Source Clock Path RCLK to SLICE_4: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R6C4C.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + Destination Clock Path RCLK to SLICE_4: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R6C4C.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + +Passed: The following path meets requirements by 0.379ns + + Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) + + Source: FF Q nUFMCS (from RCLK_c +) + Destination: FF Data in nUFMCS (to RCLK_c +) + + Delay: 0.366ns (63.9% logic, 36.1% route), 2 logic levels. + + Constraint Details: + + 0.366ns physical path delay SLICE_45 to SLICE_45 meets + -0.013ns DIN_HLD and + 0.000ns delay constraint less + 0.000ns skew requirement (totaling -0.013ns) by 0.379ns + + Physical Path Details: + + Data path SLICE_45 to SLICE_45: + + Name Fanout Delay (ns) Site Resource +REG_DEL --- 0.133 R5C5A.CLK to R5C5A.Q0 SLICE_45 (from RCLK_c) +ROUTE 1 0.130 R5C5A.Q0 to R5C5A.A0 nUFMCS_c +CTOF_DEL --- 0.101 R5C5A.A0 to R5C5A.F0 SLICE_45 +ROUTE 2 0.002 R5C5A.F0 to R5C5A.DI0 nUFMCS_s_0_N_5_i (to RCLK_c) + -------- + 0.366 (63.9% logic, 36.1% route), 2 logic levels. + + Clock Skew Details: + + Source Clock Path RCLK to SLICE_45: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R5C5A.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + Destination Clock Path RCLK to SLICE_45: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R5C5A.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + +Passed: The following path meets requirements by 0.379ns + + Logical Details: Cell type Pin type Cell/ASIC name (clock net +/-) + + Source: FF Q FS[9] (from RCLK_c +) + Destination: FF Data in FS[9] (to RCLK_c +) + + Delay: 0.366ns (63.9% logic, 36.1% route), 2 logic levels. + + Constraint Details: + + 0.366ns physical path delay SLICE_5 to SLICE_5 meets + -0.013ns DIN_HLD and + 0.000ns delay constraint less + 0.000ns skew requirement (totaling -0.013ns) by 0.379ns + + Physical Path Details: + + Data path SLICE_5 to SLICE_5: + + Name Fanout Delay (ns) Site Resource +REG_DEL --- 0.133 R6C4B.CLK to R6C4B.Q0 SLICE_5 (from RCLK_c) +ROUTE 3 0.132 R6C4B.Q0 to R6C4B.A0 FS[9] +CTOF_DEL --- 0.101 R6C4B.A0 to R6C4B.F0 SLICE_5 +ROUTE 1 0.000 R6C4B.F0 to R6C4B.DI0 FS_s[9] (to RCLK_c) + -------- + 0.366 (63.9% logic, 36.1% route), 2 logic levels. + + Clock Skew Details: + + Source Clock Path RCLK to SLICE_5: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R6C4B.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. + + Destination Clock Path RCLK to SLICE_5: + + Name Fanout Delay (ns) Site Resource +ROUTE 39 1.059 62.PADDI to R6C4B.CLK RCLK_c + -------- + 1.059 (0.0% logic, 100.0% route), 0 logic levels. Report Summary -------------- @@ -2122,9 +2209,13 @@ ROUTE 14 1.240 8.PADDI to R3C8B.CLK PHI2_c Preference(MIN Delays) | Constraint| Actual|Levels ---------------------------------------------------------------------------- | | | -FREQUENCY NET "RCLK_c" 299.401000 MHz ; | 0.000 ns| 0.304 ns| 1 +FREQUENCY PORT "PHI2" 2.900000 MHz ; | -| -| 2 | | | -FREQUENCY NET "PHI2_c" 99.079000 MHz ; | 0.000 ns| 0.379 ns| 2 +FREQUENCY PORT "nCCAS" 2.900000 MHz ; | -| -| 0 + | | | +FREQUENCY PORT "nCRAS" 2.900000 MHz ; | -| -| 0 + | | | +FREQUENCY PORT "RCLK" 62.500000 MHz ; | -| -| 1 | | | ---------------------------------------------------------------------------- @@ -2137,14 +2228,20 @@ All preferences were met. Found 4 clocks: -Clock Domain: nCRAS_c Source: nCRAS.PAD Loads: 9 +Clock Domain: nCRAS_c Source: nCRAS.PAD Loads: 12 No transfer within this clock domain is found -Clock Domain: nCCAS_c Source: nCCAS.PAD Loads: 6 + Data transfers from: + Clock Domain: RCLK_c Source: RCLK.PAD + Not reported because source and destination domains are unrelated. + To report these transfers please refer to preference CLKSKEWDIFF to define + external clock skew between clock ports. + +Clock Domain: nCCAS_c Source: nCCAS.PAD Loads: 10 No transfer within this clock domain is found -Clock Domain: RCLK_c Source: RCLK.PAD Loads: 40 - Covered under: FREQUENCY NET "RCLK_c" 299.401000 MHz ; +Clock Domain: RCLK_c Source: RCLK.PAD Loads: 39 + Covered under: FREQUENCY PORT "RCLK" 62.500000 MHz ; Data transfers from: Clock Domain: nCRAS_c Source: nCRAS.PAD @@ -2157,8 +2254,8 @@ Clock Domain: RCLK_c Source: RCLK.PAD Loads: 40 To report these transfers please refer to preference CLKSKEWDIFF to define external clock skew between clock ports. -Clock Domain: PHI2_c Source: PHI2.PAD Loads: 14 - Covered under: FREQUENCY NET "PHI2_c" 99.079000 MHz ; +Clock Domain: PHI2_c Source: PHI2.PAD Loads: 19 + Covered under: FREQUENCY PORT "PHI2" 2.900000 MHz ; Data transfers from: Clock Domain: RCLK_c Source: RCLK.PAD @@ -2173,16 +2270,16 @@ Clock Domain: PHI2_c Source: PHI2.PAD Loads: 14 Timing errors: 0 Score: 0 Cumulative negative slack: 0 -Constraints cover 572 paths, 2 nets, and 409 connections (60.68% coverage) +Constraints cover 760 paths, 4 nets, and 439 connections (62.45% coverage) Timing summary (Setup and Hold): --------------- -Timing errors: 349 (setup), 0 (hold) -Score: 452301 (setup), 0 (hold) -Cumulative negative slack: 370485 (370485+0) +Timing errors: 0 (setup), 0 (hold) +Score: 0 (setup), 0 (hold) +Cumulative negative slack: 0 (0+0) -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- diff --git a/CPLD/LCMXO2-640HC/impl1/automake.log b/CPLD/LCMXO2-640HC/impl1/automake.log index 93ca373..574ca7b 100644 --- a/CPLD/LCMXO2-640HC/impl1/automake.log +++ b/CPLD/LCMXO2-640HC/impl1/automake.log @@ -1,255 +1,5 @@ -synthesis -f "RAM2GS_LCMXO2_640HC_impl1_lattice.synproj" -synthesis: version Diamond (64-bit) 3.12.1.454 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. -Tue Aug 15 05:03:22 2023 - - -Command Line: synthesis -f RAM2GS_LCMXO2_640HC_impl1_lattice.synproj -gui -msgset D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/promote.xml - - -Synthesis options: -The -a option is MachXO2. -The -s option is 4. -The -t option is TQFP100. -The -d option is LCMXO2-640HC. -Using package TQFP100. -Using performance grade 4. - - -########################################################## - -### Lattice Family : MachXO2 - -### Device : LCMXO2-640HC - -### Package : TQFP100 - -### Speed : 4 - -########################################################## - - - - -Optimization goal = Balanced -Top-level module name = RAM2GS. -Target frequency = 200.000000 MHz. -Maximum fanout = 1000. -Timing path count = 3 -BRAM utilization = 100.000000 % -DSP usage = true -DSP utilization = 100.000000 % -fsm_encoding_style = auto -resolve_mixed_drivers = 0 -fix_gated_clocks = 1 - -Mux style = Auto -Use Carry Chain = true -carry_chain_length = 0 -Loop Limit = 1950. -Use IO Insertion = TRUE -Use IO Reg = AUTO - -Resource Sharing = TRUE -Propagate Constants = TRUE -Remove Duplicate Registers = TRUE -force_gsr = auto -ROM style = auto -RAM style = auto -The -comp option is FALSE. -The -syn option is FALSE. --p D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC (searchpath added) --p C:/lscc/diamond/3.12/ispfpga/xo2c00/data (searchpath added) --p D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/impl1 (searchpath added) --p D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC (searchpath added) -Verilog design file = D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/RAM2GS-SPI.v -NGD file = RAM2GS_LCMXO2_640HC_impl1.ngd --sdc option: SDC file input not used. --lpf option: Output file option is ON. -Hardtimer checking is enabled (default). The -dt option is not used. -The -r option is OFF. [ Remove LOC Properties is OFF. ] -Technology check ok... - -Analyzing Verilog file C:/lscc/diamond/3.12/ispfpga/userware/NT/SYNTHESIS_HEADERS/machxo2.v. VERI-1482 -Compile design. -Compile Design Begin -Analyzing Verilog file d:/onedrive/documents/github/ram2gs/cpld/ram2gs-spi.v. VERI-1482 -Analyzing Verilog file C:/lscc/diamond/3.12/ispfpga/userware/NT/SYNTHESIS_HEADERS/machxo2.v. VERI-1482 -Top module name (Verilog): RAM2GS - - - - -Last elaborated design is RAM2GS() -Loading NGL library 'C:/lscc/diamond/3.12/ispfpga/xo2c00/data/xo2clib.ngl'... -Loading NGL library 'C:/lscc/diamond/3.12/ispfpga/mg5g00/data/mg5glib.ngl'... -Loading NGL library 'C:/lscc/diamond/3.12/ispfpga/or5g00/data/orc5glib.ngl'... -Loading device for application map from file 'xo2c640.nph' in environment: C:/lscc/diamond/3.12/ispfpga. -Package Status: Final Version 1.39. -Top-level module name = RAM2GS. - -original encoding -> new encoding (one-hot encoding) - - 0000 -> 0000000000000001 - - 0001 -> 0000000000000010 - - 0010 -> 0000000000000100 - - 0011 -> 0000000000001000 - - 0100 -> 0000000000010000 - - 0101 -> 0000000000100000 - - 0110 -> 0000000001000000 - - 0111 -> 0000000010000000 - - 1000 -> 0000000100000000 - - 1001 -> 0000001000000000 - - 1010 -> 0000010000000000 - - 1011 -> 0000100000000000 - - 1100 -> 0001000000000000 - - 1101 -> 0010000000000000 - - 1110 -> 0100000000000000 - - 1111 -> 1000000000000000 - - -original encoding -> new encoding (one-hot encoding) - - 00 -> 0001 - - 01 -> 0010 - - 10 -> 0100 - - 11 -> 1000 - - - - -GSR will not be inferred because no asynchronous signal was found in the netlist. - -Applying 200.000000 MHz constraint to all clocks - - -Results of NGD DRC are available in RAM2GS_drc.log. -Loading NGL library 'C:/lscc/diamond/3.12/ispfpga/xo2c00/data/xo2clib.ngl'... -Loading NGL library 'C:/lscc/diamond/3.12/ispfpga/mg5g00/data/mg5glib.ngl'... -Loading NGL library 'C:/lscc/diamond/3.12/ispfpga/or5g00/data/orc5glib.ngl'... - - -Running DRC... - -DRC complete with no errors or warnings - -Design Results: - 309 blocks expanded -completed the first expansion -All blocks are expanded and NGD expansion is successful. -Writing NGD file RAM2GS_LCMXO2_640HC_impl1.ngd. - -################### Begin Area Report (RAM2GS)###################### -Number of register bits => 102 of 877 (11 % ) -BB => 8 -CCU2D => 10 -FD1P3AX => 29 -FD1P3AY => 5 -FD1P3IX => 3 -FD1S3AX => 47 -FD1S3IX => 14 -FD1S3JX => 4 -GSR => 1 -IB => 26 -INV => 3 -LUT4 => 122 -OB => 33 -PFUMX => 1 -################### End Area Report ################## - -################### Begin BlackBox Report ###################### -TSALL => 1 -################### End BlackBox Report ################## - -################### Begin Clock Report ###################### -Clock Nets -Number of Clocks: 4 - Net : RCLK_c, loads : 62 - Net : PHI2_c, loads : 11 - Net : nCCAS_c, loads : 2 - Net : nCRAS_c, loads : 2 -Clock Enable Nets -Number of Clock Enables: 14 -Top 10 highest fanout Clock Enables: - Net : RCLK_c_enable_27, loads : 16 - Net : RCLK_c_enable_6, loads : 4 - Net : PHI2_N_120_enable_8, loads : 3 - Net : RCLK_c_enable_10, loads : 3 - Net : RCLK_c_enable_5, loads : 2 - Net : PHI2_N_120_enable_3, loads : 1 - Net : Ready_N_292, loads : 1 - Net : PHI2_N_120_enable_2, loads : 1 - Net : RCLK_c_enable_15, loads : 1 - Net : PHI2_N_120_enable_6, loads : 1 -Highest fanout non-clock nets -Top 10 highest fanout non-clock nets: - Net : RCLK_c_enable_27, loads : 16 - Net : InitReady, loads : 15 - Net : nCRAS_c__inv, loads : 15 - Net : RASr2, loads : 14 - Net : nRowColSel_N_35, loads : 13 - Net : n2380, loads : 13 - Net : nRowColSel, loads : 12 - Net : Ready, loads : 12 - Net : Din_c_4, loads : 10 - Net : MAin_c_1, loads : 10 -################### End Clock Report ################## - -Timing Report Summary --------------- --------------------------------------------------------------------------------- -Constraint | Constraint| Actual|Levels --------------------------------------------------------------------------------- - | | | -create_clock -period 5.000000 -name | | | -clk3 [get_nets nCCAS_c] | -| -| 0 - | | | -create_clock -period 5.000000 -name | | | -clk2 [get_nets nCRAS_c] | -| -| 0 - | | | -create_clock -period 5.000000 -name | | | -clk1 [get_nets PHI2_c] | 200.000 MHz| 50.413 MHz| 6 * - | | | -create_clock -period 5.000000 -name | | | -clk0 [get_nets RCLK_c] | 200.000 MHz| 120.207 MHz| 5 * - | | | --------------------------------------------------------------------------------- - - -2 constraints not met. - - -Peak Memory Usage: 53.555 MB - --------------------------------------------------------------- -Elapsed CPU time for LSE flow : 0.828 secs --------------------------------------------------------------- - -map -a "MachXO2" -p LCMXO2-640HC -t TQFP100 -s 4 -oc Commercial "RAM2GS_LCMXO2_640HC_impl1.ngd" -o "RAM2GS_LCMXO2_640HC_impl1_map.ncd" -pr "RAM2GS_LCMXO2_640HC_impl1.prf" -mp "RAM2GS_LCMXO2_640HC_impl1.mrp" -lpf "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.lpf" -lpf "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/RAM2GS_LCMXO2_640HC.lpf" -c 0 +map -a "MachXO2" -p LCMXO2-640HC -t TQFP100 -s 4 -oc Commercial -ioreg b "RAM2GS_LCMXO2_640HC_impl1.ngd" -o "RAM2GS_LCMXO2_640HC_impl1_map.ncd" -pr "RAM2GS_LCMXO2_640HC_impl1.prf" -mp "RAM2GS_LCMXO2_640HC_impl1.mrp" -lpf "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1_synplify.lpf" -lpf "D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/RAM2GS_LCMXO2_640HC.lpf" -c 0 map: version Diamond (64-bit) 3.12.1.454 Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. @@ -279,19 +29,27 @@ Removing unused logic... Optimizing... +1 CCU2 constant inputs absorbed. + + + + + + + Design Summary: - Number of registers: 102 out of 877 (12%) - PFU registers: 102 out of 640 (16%) - PIO registers: 0 out of 237 (0%) - Number of SLICEs: 75 out of 320 (23%) - SLICEs as Logic/ROM: 75 out of 320 (23%) + Number of registers: 93 out of 877 (11%) + PFU registers: 64 out of 640 (10%) + PIO registers: 29 out of 237 (12%) + Number of SLICEs: 81 out of 320 (25%) + SLICEs as Logic/ROM: 81 out of 320 (25%) SLICEs as RAM: 0 out of 240 (0%) SLICEs as Carry: 10 out of 320 (3%) - Number of LUT4s: 143 out of 640 (22%) - Number used as logic LUTs: 123 + Number of LUT4s: 159 out of 640 (25%) + Number used as logic LUTs: 139 Number used as distributed RAM: 0 Number used as ripple logic: 20 Number used as shift registers: 0 @@ -313,225 +71,46 @@ Design Summary: 1. Total number of LUT4s = (Number of logic LUT4s) + 2*(Number of distributed RAMs) + 2*(Number of ripple logic) 2. Number of logic LUT4s does not include count of distributed RAM and ripple logic. Number of clocks: 4 - Net RCLK_c: 40 loads, 40 rising, 0 falling (Driver: PIO RCLK ) - Net PHI2_c: 13 loads, 5 rising, 8 falling (Driver: PIO PHI2 ) - Net nCCAS_c: 4 loads, 0 rising, 4 falling (Driver: PIO nCCAS ) - Net nCRAS_c: 7 loads, 0 rising, 7 falling (Driver: PIO nCRAS ) - Number of Clock Enables: 14 - Net RCLK_c_enable_6: 4 loads, 4 LSLICEs - Net RCLK_c_enable_5: 2 loads, 2 LSLICEs - Net PHI2_N_120_enable_1: 1 loads, 1 LSLICEs - Net PHI2_N_120_enable_2: 1 loads, 1 LSLICEs - Net PHI2_N_120_enable_6: 1 loads, 1 LSLICEs - Net RCLK_c_enable_27: 8 loads, 8 LSLICEs - Net RCLK_c_enable_10: 3 loads, 3 LSLICEs - Net PHI2_N_120_enable_7: 1 loads, 1 LSLICEs - Net RCLK_c_enable_16: 1 loads, 1 LSLICEs - Net RCLK_c_enable_28: 1 loads, 1 LSLICEs - Net RCLK_c_enable_15: 1 loads, 1 LSLICEs - Net PHI2_N_120_enable_3: 1 loads, 1 LSLICEs - Net Ready_N_292: 1 loads, 1 LSLICEs - Net PHI2_N_120_enable_8: 2 loads, 2 LSLICEs - Number of LSRs: 7 - Net RASr2: 1 loads, 1 LSLICEs - Net nRowColSel_N_35: 1 loads, 1 LSLICEs - Net Ready: 7 loads, 7 LSLICEs - Net nRWE_N_177: 1 loads, 1 LSLICEs - Net C1Submitted_N_237: 2 loads, 2 LSLICEs - Net n2366: 2 loads, 2 LSLICEs - Net nRowColSel_N_34: 1 loads, 1 LSLICEs + Net PHI2_c: 18 loads, 8 rising, 10 falling (Driver: PIO PHI2 ) + Net RCLK_c: 39 loads, 39 rising, 0 falling (Driver: PIO RCLK ) + Net nCRAS_c: 9 loads, 0 rising, 9 falling (Driver: PIO nCRAS ) + Net nCCAS_c: 8 loads, 0 rising, 8 falling (Driver: PIO nCCAS ) + Number of Clock Enables: 6 + Net XOR8MEG18: 3 loads, 3 LSLICEs + Net i2_i: 1 loads, 0 LSLICEs + Net N_26: 1 loads, 1 LSLICEs + Net N_28: 1 loads, 1 LSLICEs + Net N_188_i: 2 loads, 2 LSLICEs + Net CmdUFMCLK_1_sqmuxa: 3 loads, 0 LSLICEs + Number of LSRs: 3 + Net RA10s_i: 1 loads, 0 LSLICEs + Net nRRAS_0_sqmuxa: 1 loads, 1 LSLICEs + Net RASr2: 2 loads, 2 LSLICEs Number of nets driven by tri-state buffers: 0 Top 10 highest fanout non-clock nets: - Net Ready: 18 loads - Net InitReady: 15 loads - Net RASr2: 15 loads - Net nRowColSel_N_35: 13 loads + Net InitReady: 17 loads + Net Ready: 15 loads + Net Ready_fast: 14 loads + Net Din_c[5]: 12 loads Net nRowColSel: 12 loads - Net Din_c_4: 10 loads - Net MAin_c_1: 10 loads - Net Din_c_5: 9 loads - Net MAin_c_0: 9 loads - Net Din_c_0: 8 loads + Net S[1]: 12 loads + Net RASr2: 10 loads + Net CO0: 9 loads + Net Din_c[3]: 9 loads + Net Din_c[4]: 9 loads - Number of warnings: 0 + Number of warnings: 6 Number of errors: 0 Total CPU Time: 0 secs Total REAL Time: 0 secs -Peak Memory Usage: 35 MB +Peak Memory Usage: 36 MB Dumping design to file RAM2GS_LCMXO2_640HC_impl1_map.ncd. -ncd2vdb "RAM2GS_LCMXO2_640HC_impl1_map.ncd" ".vdbs/RAM2GS_LCMXO2_640HC_impl1_map.vdb" - -Loading device for application ncd2vdb from file 'xo2c640.nph' in environment: C:/lscc/diamond/3.12/ispfpga. - -trce -f "RAM2GS_LCMXO2_640HC_impl1.mt" -o "RAM2GS_LCMXO2_640HC_impl1.tw1" "RAM2GS_LCMXO2_640HC_impl1_map.ncd" "RAM2GS_LCMXO2_640HC_impl1.prf" -trce: version Diamond (64-bit) 3.12.1.454 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. - -Loading design for application trce from file ram2gs_lcmxo2_640hc_impl1_map.ncd. -Design name: RAM2GS -NCD version: 3.3 -Vendor: LATTICE -Device: LCMXO2-640HC -Package: TQFP100 -Performance: 4 -Loading device for application trce from file 'xo2c640.nph' in environment: C:/lscc/diamond/3.12/ispfpga. -Package Status: Final Version 1.39. -Performance Hardware Data Status: Final Version 34.4. -Setup and Hold Report - --------------------------------------------------------------------------------- -Lattice TRACE Report - Setup, Version Diamond (64-bit) 3.12.1.454 -Tue Aug 15 05:03:25 2023 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. - -Report Information ------------------- -Command line: trce -v 1 -gt -mapchkpnt 0 -sethld -o RAM2GS_LCMXO2_640HC_impl1.tw1 -gui -msgset D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/promote.xml RAM2GS_LCMXO2_640HC_impl1_map.ncd RAM2GS_LCMXO2_640HC_impl1.prf -Design file: ram2gs_lcmxo2_640hc_impl1_map.ncd -Preference file: ram2gs_lcmxo2_640hc_impl1.prf -Device,speed: LCMXO2-640HC,4 -Report level: verbose report, limited to 1 item per preference --------------------------------------------------------------------------------- - -Report Type: based on TRACE automatically generated preferences -BLOCK ASYNCPATHS -BLOCK RESETPATHS --------------------------------------------------------------------------------- - - - -Timing summary (Setup): ---------------- - -Timing errors: 349 Score: 848079 -Cumulative negative slack: 584487 - -Constraints cover 572 paths, 2 nets, and 409 connections (60.68% coverage) - --------------------------------------------------------------------------------- -Lattice TRACE Report - Hold, Version Diamond (64-bit) 3.12.1.454 -Tue Aug 15 05:03:25 2023 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. - -Report Information ------------------- -Command line: trce -v 1 -gt -mapchkpnt 0 -sethld -o RAM2GS_LCMXO2_640HC_impl1.tw1 -gui -msgset D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/promote.xml RAM2GS_LCMXO2_640HC_impl1_map.ncd RAM2GS_LCMXO2_640HC_impl1.prf -Design file: ram2gs_lcmxo2_640hc_impl1_map.ncd -Preference file: ram2gs_lcmxo2_640hc_impl1.prf -Device,speed: LCMXO2-640HC,M -Report level: verbose report, limited to 1 item per preference --------------------------------------------------------------------------------- - -BLOCK ASYNCPATHS -BLOCK RESETPATHS --------------------------------------------------------------------------------- - - - -Timing summary (Hold): ---------------- - -Timing errors: 0 Score: 0 -Cumulative negative slack: 0 - -Constraints cover 572 paths, 2 nets, and 409 connections (60.68% coverage) - - - -Timing summary (Setup and Hold): ---------------- - -Timing errors: 349 (setup), 0 (hold) -Score: 848079 (setup), 0 (hold) -Cumulative negative slack: 584487 (584487+0) --------------------------------------------------------------------------------- - --------------------------------------------------------------------------------- - -Total CPU Time: 0 secs -Total REAL Time: 0 secs -Peak Memory Usage: 41 MB - - -ldbanno "RAM2GS_LCMXO2_640HC_impl1_map.ncd" -n Verilog -o "RAM2GS_LCMXO2_640HC_impl1_mapvo.vo" -w -neg -ldbanno: version Diamond (64-bit) 3.12.1.454 -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. - -Writing a Verilog netlist using the orca library type based on the RAM2GS_LCMXO2_640HC_impl1_map design file. - - -Loading design for application ldbanno from file RAM2GS_LCMXO2_640HC_impl1_map.ncd. -Design name: RAM2GS -NCD version: 3.3 -Vendor: LATTICE -Device: LCMXO2-640HC -Package: TQFP100 -Performance: 4 -Loading device for application ldbanno from file 'xo2c640.nph' in environment: C:/lscc/diamond/3.12/ispfpga. -Package Status: Final Version 1.39. -Performance Hardware Data Status: Final Version 34.4. -Converting design RAM2GS_LCMXO2_640HC_impl1_map.ncd into .ldb format. -Writing Verilog netlist to file RAM2GS_LCMXO2_640HC_impl1_mapvo.vo -Writing SDF timing to file RAM2GS_LCMXO2_640HC_impl1_mapvo.sdf - -Total CPU Time: 0 secs -Total REAL Time: 0 secs -Peak Memory Usage: 37 MB - -ldbanno "RAM2GS_LCMXO2_640HC_impl1_map.ncd" -n VHDL -o "RAM2GS_LCMXO2_640HC_impl1_mapvho.vho" -w -neg -ldbanno: version Diamond (64-bit) 3.12.1.454 -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. - -Writing a VHDL netlist using the orca library type based on the RAM2GS_LCMXO2_640HC_impl1_map design file. - - -Loading design for application ldbanno from file RAM2GS_LCMXO2_640HC_impl1_map.ncd. -Design name: RAM2GS -NCD version: 3.3 -Vendor: LATTICE -Device: LCMXO2-640HC -Package: TQFP100 -Performance: 4 -Loading device for application ldbanno from file 'xo2c640.nph' in environment: C:/lscc/diamond/3.12/ispfpga. -Package Status: Final Version 1.39. -Performance Hardware Data Status: Final Version 34.4. -Converting design RAM2GS_LCMXO2_640HC_impl1_map.ncd into .ldb format. -Writing VHDL netlist to file RAM2GS_LCMXO2_640HC_impl1_mapvho.vho -Writing SDF timing to file RAM2GS_LCMXO2_640HC_impl1_mapvho.sdf - -Total CPU Time: 0 secs -Total REAL Time: 0 secs -Peak Memory Usage: 36 MB - mpartrce -p "RAM2GS_LCMXO2_640HC_impl1.p2t" -f "RAM2GS_LCMXO2_640HC_impl1.p3t" -tf "RAM2GS_LCMXO2_640HC_impl1.pt" "RAM2GS_LCMXO2_640HC_impl1_map.ncd" "RAM2GS_LCMXO2_640HC_impl1.ncd" ---- MParTrce Tool ---- @@ -539,7 +118,7 @@ Removing old design directory at request of -rem command line option to this pro Running par. Please wait . . . Lattice Place and Route Report for Design "RAM2GS_LCMXO2_640HC_impl1_map.ncd" -Tue Aug 15 05:03:28 2023 +Tue Aug 15 23:30:05 2023 PAR: Place And Route Diamond (64-bit) 3.12.1.454. Command Line: par -w -l 5 -i 6 -t 1 -c 0 -e 0 -gui -msgset D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/promote.xml -exp parUseNBR=1:parCDP=0:parCDR=0:parPathBased=OFF:parASE=1 RAM2GS_LCMXO2_640HC_impl1_map.ncd RAM2GS_LCMXO2_640HC_impl1.dir/5_1.ncd RAM2GS_LCMXO2_640HC_impl1.prf @@ -565,43 +144,44 @@ Device utilization summary: PIO (prelim) 67+4(JTAG)/80 89% used 67+4(JTAG)/79 90% bonded + IOLOGIC 29/80 36% used - SLICE 75/320 23% used + SLICE 81/320 25% used -Number of Signals: 285 -Number of Connections: 674 - +Number of Signals: 292 +Number of Connections: 703 Pin Constraint Summary: - 66 out of 67 pins locked (98% locked). + 67 out of 67 pins locked (100% locked). The following 2 signals are selected to use the primary clock routing resources: - RCLK_c (driver: RCLK, clk load #: 40) - PHI2_c (driver: PHI2, clk load #: 13) + RCLK_c (driver: RCLK, clk load #: 39) + PHI2_c (driver: PHI2, clk load #: 18) -The following 1 signal is selected to use the secondary clock routing resources: - nCRAS_c (driver: nCRAS, clk load #: 7, sr load #: 0, ce load #: 0) +The following 2 signals are selected to use the secondary clock routing resources: + nCRAS_c (driver: nCRAS, clk load #: 9, sr load #: 0, ce load #: 0) + nCCAS_c (driver: nCCAS, clk load #: 8, sr load #: 0, ce load #: 0) + No signal is selected as Global Set/Reset. -. Starting Placer Phase 0. -............. +........... Finished Placer Phase 0. REAL time: 0 secs Starting Placer Phase 1. -............... -Placer score = 121531. +.................... +Placer score = 41844. Finished Placer Phase 1. REAL time: 4 secs Starting Placer Phase 2. . -Placer score = 119079 +Placer score = 41803 Finished Placer Phase 2. REAL time: 4 secs @@ -609,17 +189,18 @@ Finished Placer Phase 2. REAL time: 4 secs Global Clock Resources: CLK_PIN : 0 out of 8 (0%) - General PIO: 3 out of 80 (3%) + General PIO: 4 out of 80 (5%) DCM : 0 out of 2 (0%) DCC : 0 out of 8 (0%) Global Clocks: - PRIMARY "RCLK_c" from comp "RCLK" on PIO site "62 (PR5D)", clk load = 40 - PRIMARY "PHI2_c" from comp "PHI2" on PIO site "8 (PL3B)", clk load = 13 - SECONDARY "nCRAS_c" from comp "nCRAS" on PIO site "17 (PL6B)", clk load = 7, ce load = 0, sr load = 0 + PRIMARY "RCLK_c" from comp "RCLK" on PIO site "62 (PR5D)", clk load = 39 + PRIMARY "PHI2_c" from comp "PHI2" on PIO site "8 (PL3B)", clk load = 18 + SECONDARY "nCRAS_c" from comp "nCRAS" on PIO site "17 (PL6B)", clk load = 9, ce load = 0, sr load = 0 + SECONDARY "nCCAS_c" from comp "nCCAS" on PIO site "9 (PL3C)", clk load = 8, ce load = 0, sr load = 0 PRIMARY : 2 out of 8 (25%) - SECONDARY: 1 out of 8 (12%) + SECONDARY: 2 out of 8 (25%) --------------- End of Clock Report --------------- @@ -634,26 +215,23 @@ I/O Bank Usage Summary: +----------+----------------+------------+-----------+ | I/O Bank | Usage | Bank Vccio | Bank Vref | +----------+----------------+------------+-----------+ -| 0 | 14 / 19 ( 73%) | 2.5V | - | -| 1 | 20 / 20 (100%) | 2.5V | - | -| 2 | 16 / 20 ( 80%) | 2.5V | - | -| 3 | 17 / 20 ( 85%) | 2.5V | - | +| 0 | 13 / 19 ( 68%) | 3.3V | - | +| 1 | 20 / 20 (100%) | 3.3V | - | +| 2 | 16 / 20 ( 80%) | 3.3V | - | +| 3 | 18 / 20 ( 90%) | 3.3V | - | +----------+----------------+------------+-----------+ Total placer CPU time: 3 secs Dumping design to file RAM2GS_LCMXO2_640HC_impl1.dir/5_1.ncd. -0 connections routed; 674 unrouted. +0 connections routed; 703 unrouted. Starting router resource preassignment - - +Completed router resource preassignment. Real time: 6 secs -Completed router resource preassignment. Real time: 7 secs - -Start NBR router at 05:03:35 08/15/23 +Start NBR router at 23:30:11 08/15/23 ***************************************************************** Info: NBR allows conflicts(one node used by more than one signal) @@ -668,91 +246,77 @@ Note: NBR uses a different method to calculate timing slacks. The your design. ***************************************************************** -Start NBR special constraint process at 05:03:35 08/15/23 +Start NBR special constraint process at 23:30:11 08/15/23 -Start NBR section for initial routing at 05:03:35 08/15/23 +Start NBR section for initial routing at 23:30:11 08/15/23 Level 1, iteration 1 -2(0.00%) conflicts; 536(79.53%) untouched conns; 481988 (nbr) score; -Estimated worst slack/total negative slack: -4.914ns/-481.988ns; real time: 7 secs +0(0.00%) conflict; 529(75.25%) untouched conns; 0 (nbr) score; +Estimated worst slack/total negative slack: 6.016ns/0.000ns; real time: 6 secs Level 2, iteration 1 -7(0.02%) conflicts; 473(70.18%) untouched conns; 424953 (nbr) score; -Estimated worst slack/total negative slack: -4.988ns/-424.953ns; real time: 7 secs +0(0.00%) conflict; 526(74.82%) untouched conns; 0 (nbr) score; +Estimated worst slack/total negative slack: 5.772ns/0.000ns; real time: 6 secs Level 3, iteration 1 -12(0.03%) conflicts; 254(37.69%) untouched conns; 455640 (nbr) score; -Estimated worst slack/total negative slack: -5.118ns/-455.640ns; real time: 7 secs +0(0.00%) conflict; 526(74.82%) untouched conns; 0 (nbr) score; +Estimated worst slack/total negative slack: 6.058ns/0.000ns; real time: 6 secs Level 4, iteration 1 -6(0.01%) conflicts; 0(0.00%) untouched conn; 465237 (nbr) score; -Estimated worst slack/total negative slack: -5.122ns/-465.237ns; real time: 7 secs +3(0.01%) conflicts; 0(0.00%) untouched conn; 0 (nbr) score; +Estimated worst slack/total negative slack: 5.827ns/0.000ns; real time: 6 secs Info: Initial congestion level at 75% usage is 0 Info: Initial congestion area at 75% usage is 0 (0.00%) -Start NBR section for normal routing at 05:03:35 08/15/23 +Start NBR section for normal routing at 23:30:11 08/15/23 Level 4, iteration 1 -6(0.01%) conflicts; 0(0.00%) untouched conn; 461186 (nbr) score; -Estimated worst slack/total negative slack: -4.992ns/-461.186ns; real time: 7 secs +1(0.00%) conflict; 0(0.00%) untouched conn; 0 (nbr) score; +Estimated worst slack/total negative slack: 5.827ns/0.000ns; real time: 6 secs Level 4, iteration 2 -3(0.01%) conflicts; 0(0.00%) untouched conn; 460933 (nbr) score; -Estimated worst slack/total negative slack: -4.992ns/-460.933ns; real time: 7 secs -Level 4, iteration 3 -2(0.00%) conflicts; 0(0.00%) untouched conn; 461063 (nbr) score; -Estimated worst slack/total negative slack: -4.992ns/-461.063ns; real time: 7 secs -Level 4, iteration 4 -1(0.00%) conflict; 0(0.00%) untouched conn; 461063 (nbr) score; -Estimated worst slack/total negative slack: -4.992ns/-461.063ns; real time: 7 secs -Level 4, iteration 5 -0(0.00%) conflict; 0(0.00%) untouched conn; 468515 (nbr) score; -Estimated worst slack/total negative slack: -5.122ns/-468.515ns; real time: 7 secs +0(0.00%) conflict; 0(0.00%) untouched conn; 0 (nbr) score; +Estimated worst slack/total negative slack: 5.827ns/0.000ns; real time: 6 secs -Start NBR section for performance tuning (iteration 1) at 05:03:35 08/15/23 +Start NBR section for setup/hold timing optimization with effort level 3 at 23:30:11 08/15/23 + +Start NBR section for re-routing at 23:30:11 08/15/23 Level 4, iteration 1 -0(0.00%) conflict; 0(0.00%) untouched conn; 468515 (nbr) score; -Estimated worst slack/total negative slack: -5.122ns/-468.515ns; real time: 7 secs +0(0.00%) conflict; 0(0.00%) untouched conn; 0 (nbr) score; +Estimated worst slack/total negative slack: 5.827ns/0.000ns; real time: 6 secs -Start NBR section for re-routing at 05:03:35 08/15/23 -Level 4, iteration 1 -0(0.00%) conflict; 0(0.00%) untouched conn; 468515 (nbr) score; -Estimated worst slack/total negative slack: -5.122ns/-468.515ns; real time: 7 secs - -Start NBR section for post-routing at 05:03:35 08/15/23 +Start NBR section for post-routing at 23:30:11 08/15/23 End NBR router with 0 unrouted connection NBR Summary ----------- Number of unrouted connections : 0 (0.00%) - Number of connections with timing violations : 260 (38.58%) - Estimated worst slack : -5.122ns - Timing score : 452301 + Number of connections with timing violations : 0 (0.00%) + Estimated worst slack : 5.827ns + Timing score : 0 ----------- Notes: The timing info is calculated for SETUP only and all PAR_ADJs are ignored. - - -Total CPU time 7 secs -Total REAL time: 7 secs +Total CPU time 5 secs +Total REAL time: 6 secs Completely routed. -End of route. 674 routed (100.00%); 0 unrouted. +End of route. 703 routed (100.00%); 0 unrouted. Hold time timing score: 0, hold timing errors: 0 -Timing score: 452301 +Timing score: 0 Dumping design to file RAM2GS_LCMXO2_640HC_impl1.dir/5_1.ncd. PAR_SUMMARY::Run status = Completed PAR_SUMMARY::Number of unrouted conns = 0 -PAR_SUMMARY::Worst slack> = -5.122 -PAR_SUMMARY::Timing score> = 452.301 +PAR_SUMMARY::Worst slack> = 5.827 +PAR_SUMMARY::Timing score> = 0.000 PAR_SUMMARY::Worst slack> = 0.304 PAR_SUMMARY::Timing score> = 0.000 PAR_SUMMARY::Number of errors = 0 -Total CPU time to completion: 7 secs -Total REAL time to completion: 7 secs +Total CPU time to completion: 5 secs +Total REAL time to completion: 6 secs par done! @@ -766,183 +330,6 @@ Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. Exiting par with exit code 0 Exiting mpartrce with exit code 0 -trce -f "RAM2GS_LCMXO2_640HC_impl1.pt" -o "RAM2GS_LCMXO2_640HC_impl1.twr" "RAM2GS_LCMXO2_640HC_impl1.ncd" "RAM2GS_LCMXO2_640HC_impl1.prf" -trce: version Diamond (64-bit) 3.12.1.454 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. - -Loading design for application trce from file ram2gs_lcmxo2_640hc_impl1.ncd. -Design name: RAM2GS -NCD version: 3.3 -Vendor: LATTICE -Device: LCMXO2-640HC -Package: TQFP100 -Performance: 4 -Loading device for application trce from file 'xo2c640.nph' in environment: C:/lscc/diamond/3.12/ispfpga. -Package Status: Final Version 1.39. -Performance Hardware Data Status: Final Version 34.4. -Setup and Hold Report - --------------------------------------------------------------------------------- -Lattice TRACE Report - Setup, Version Diamond (64-bit) 3.12.1.454 -Tue Aug 15 05:03:36 2023 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. - -Report Information ------------------- -Command line: trce -v 10 -gt -sethld -sp 4 -sphld m -o RAM2GS_LCMXO2_640HC_impl1.twr -gui -msgset D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/promote.xml RAM2GS_LCMXO2_640HC_impl1.ncd RAM2GS_LCMXO2_640HC_impl1.prf -Design file: ram2gs_lcmxo2_640hc_impl1.ncd -Preference file: ram2gs_lcmxo2_640hc_impl1.prf -Device,speed: LCMXO2-640HC,4 -Report level: verbose report, limited to 10 items per preference --------------------------------------------------------------------------------- - -Report Type: based on TRACE automatically generated preferences -BLOCK ASYNCPATHS -BLOCK RESETPATHS --------------------------------------------------------------------------------- - - - -Timing summary (Setup): ---------------- - -Timing errors: 349 Score: 452301 -Cumulative negative slack: 370485 - -Constraints cover 572 paths, 2 nets, and 409 connections (60.68% coverage) - --------------------------------------------------------------------------------- -Lattice TRACE Report - Hold, Version Diamond (64-bit) 3.12.1.454 -Tue Aug 15 05:03:36 2023 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. - -Report Information ------------------- -Command line: trce -v 10 -gt -sethld -sp 4 -sphld m -o RAM2GS_LCMXO2_640HC_impl1.twr -gui -msgset D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/promote.xml RAM2GS_LCMXO2_640HC_impl1.ncd RAM2GS_LCMXO2_640HC_impl1.prf -Design file: ram2gs_lcmxo2_640hc_impl1.ncd -Preference file: ram2gs_lcmxo2_640hc_impl1.prf -Device,speed: LCMXO2-640HC,m -Report level: verbose report, limited to 10 items per preference --------------------------------------------------------------------------------- - -BLOCK ASYNCPATHS -BLOCK RESETPATHS --------------------------------------------------------------------------------- - - - -Timing summary (Hold): ---------------- - -Timing errors: 0 Score: 0 -Cumulative negative slack: 0 - -Constraints cover 572 paths, 2 nets, and 409 connections (60.68% coverage) - - - -Timing summary (Setup and Hold): ---------------- - -Timing errors: 349 (setup), 0 (hold) -Score: 452301 (setup), 0 (hold) -Cumulative negative slack: 370485 (370485+0) --------------------------------------------------------------------------------- - --------------------------------------------------------------------------------- - -Total CPU Time: 0 secs -Total REAL Time: 0 secs -Peak Memory Usage: 40 MB - - -iotiming "RAM2GS_LCMXO2_640HC_impl1.ncd" "RAM2GS_LCMXO2_640HC_impl1.prf" -I/O Timing Report: -: version Diamond (64-bit) 3.12.1.454 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2020 Lattice Semiconductor Corporation, All rights reserved. - -Loading design for application iotiming from file ram2gs_lcmxo2_640hc_impl1.ncd. -Design name: RAM2GS -NCD version: 3.3 -Vendor: LATTICE -Device: LCMXO2-640HC -Package: TQFP100 -Performance: 4 -Loading device for application iotiming from file 'xo2c640.nph' in environment: C:/lscc/diamond/3.12/ispfpga. -Package Status: Final Version 1.39. -Performance Hardware Data Status: Final Version 34.4. -Running Performance Grade: 4 -Computing Setup Time ... -Computing Max Clock to Output Delay ... -Computing Hold Time ... -Computing Min Clock to Output Delay ... - -Loading design for application iotiming from file ram2gs_lcmxo2_640hc_impl1.ncd. -Design name: RAM2GS -NCD version: 3.3 -Vendor: LATTICE -Device: LCMXO2-640HC -Package: TQFP100 -Performance: 5 -Package Status: Final Version 1.39. -Performance Hardware Data Status: Final Version 34.4. -Running Performance Grade: 5 -Computing Setup Time ... -Computing Max Clock to Output Delay ... -Computing Hold Time ... -Computing Min Clock to Output Delay ... - -Loading design for application iotiming from file ram2gs_lcmxo2_640hc_impl1.ncd. -Design name: RAM2GS -NCD version: 3.3 -Vendor: LATTICE -Device: LCMXO2-640HC -Package: TQFP100 -Performance: 6 -Package Status: Final Version 1.39. -Performance Hardware Data Status: Final Version 34.4. -Running Performance Grade: 6 -Computing Setup Time ... -Computing Max Clock to Output Delay ... -Computing Hold Time ... -Computing Min Clock to Output Delay ... - -Loading design for application iotiming from file ram2gs_lcmxo2_640hc_impl1.ncd. -Design name: RAM2GS -NCD version: 3.3 -Vendor: LATTICE -Device: LCMXO2-640HC -Package: TQFP100 -Performance: M -Package Status: Final Version 1.39. -Performance Hardware Data Status: Final Version 34.4. -Running Performance Grade: M -Computing Setup Time ... -Computing Max Clock to Output Delay ... -Computing Hold Time ... -Computing Min Clock to Output Delay ... -Done. - tmcheck -par "RAM2GS_LCMXO2_640HC_impl1.par" bitgen -f "RAM2GS_LCMXO2_640HC_impl1.t2b" -w "RAM2GS_LCMXO2_640HC_impl1.ncd" -jedec "RAM2GS_LCMXO2_640HC_impl1.prf" @@ -1030,4 +417,4 @@ Initialized UFM Pages: 0 Page. Total CPU Time: 1 secs Total REAL Time: 2 secs -Peak Memory Usage: 245 MB +Peak Memory Usage: 246 MB diff --git a/CPLD/LCMXO2-640HC/impl1/backup/RAM2GS_LCMXO2_640HC_impl1.srr b/CPLD/LCMXO2-640HC/impl1/backup/RAM2GS_LCMXO2_640HC_impl1.srr new file mode 100644 index 0000000..0441a4c --- /dev/null +++ b/CPLD/LCMXO2-640HC/impl1/backup/RAM2GS_LCMXO2_640HC_impl1.srr @@ -0,0 +1,911 @@ +#Build: Synplify Pro (R) R-2021.03L-SP1, Build 093R, Aug 10 2021 +#install: C:\lscc\diamond\3.12\synpbase +#OS: Windows 8 6.2 +#Hostname: ZANEPC + +# Tue Aug 15 22:17:22 2023 + +#Implementation: impl1 + + +Copyright (C) 1994-2021 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. +Tool: Synplify Pro (R) +Build: R-2021.03L-SP1 +Install: C:\lscc\diamond\3.12\synpbase +OS: Windows 6.2 + +Hostname: ZANEPC + +Implementation : impl1 +Synopsys HDL Compiler, Version comp202103synp2, Build 093R, Built Aug 10 2021 09:15:36, @ + +@N|Running in 64-bit mode +###########################################################[ + +Copyright (C) 1994-2021 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. +Tool: Synplify Pro (R) +Build: R-2021.03L-SP1 +Install: C:\lscc\diamond\3.12\synpbase +OS: Windows 6.2 + +Hostname: ZANEPC + +Implementation : impl1 +Synopsys Verilog Compiler, Version comp202103synp2, Build 093R, Built Aug 10 2021 09:15:36, @ + +@N|Running in 64-bit mode +@I::"C:\lscc\diamond\3.12\synpbase\lib\lucent\machxo2.v" (library work) +@I::"C:\lscc\diamond\3.12\synpbase\lib\lucent\pmi_def.v" (library work) +@I::"C:\lscc\diamond\3.12\synpbase\lib\vlog\hypermods.v" (library __hyper__lib__) +@I::"C:\lscc\diamond\3.12\synpbase\lib\vlog\umr_capim.v" (library snps_haps) +@I::"C:\lscc\diamond\3.12\synpbase\lib\vlog\scemi_objects.v" (library snps_haps) +@I::"C:\lscc\diamond\3.12\synpbase\lib\vlog\scemi_pipes.svh" (library snps_haps) +@I::"D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\RAM2GS-SPI.v" (library work) +Verilog syntax check successful! +Selecting top level module RAM2GS +@N: CG364 :"D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\RAM2GS-SPI.v":1:7:1:12|Synthesizing module RAM2GS in library work. +Running optimization stage 1 on RAM2GS ....... +Finished optimization stage 1 on RAM2GS (CPU Time 0h:00m:00s, Memory Used current: 93MB peak: 93MB) +Running optimization stage 2 on RAM2GS ....... +Finished optimization stage 2 on RAM2GS (CPU Time 0h:00m:00s, Memory Used current: 93MB peak: 94MB) + +For a summary of runtime and memory usage per design unit, please see file: +========================================================== +@L: D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\LCMXO2-640HC\impl1\synwork\layer0.rt.csv + + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 93MB peak: 94MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Tue Aug 15 22:17:22 2023 + +###########################################################] +###########################################################[ + +Copyright (C) 1994-2021 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. +Tool: Synplify Pro (R) +Build: R-2021.03L-SP1 +Install: C:\lscc\diamond\3.12\synpbase +OS: Windows 6.2 + +Hostname: ZANEPC + +Implementation : impl1 +Synopsys Synopsys Netlist Linker, Version comp202103synp2, Build 093R, Built Aug 10 2021 09:15:36, @ + +@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: 90MB peak: 91MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Tue Aug 15 22:17:22 2023 + +###########################################################] + +For a summary of runtime and memory usage for all design units, please see file: +========================================================== +@L: D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\LCMXO2-640HC\impl1\synwork\RAM2GS_LCMXO2_640HC_impl1_comp.rt.csv + +@END + +At c_hdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 23MB peak: 23MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Tue Aug 15 22:17:23 2023 + +###########################################################] +###########################################################[ + +Copyright (C) 1994-2021 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. +Tool: Synplify Pro (R) +Build: R-2021.03L-SP1 +Install: C:\lscc\diamond\3.12\synpbase +OS: Windows 6.2 + +Hostname: ZANEPC + +Implementation : impl1 +Synopsys Synopsys Netlist Linker, Version comp202103synp2, Build 093R, Built Aug 10 2021 09:15:36, @ + +@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: 90MB peak: 91MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Tue Aug 15 22:17:24 2023 + +###########################################################] +Premap Report + +# Tue Aug 15 22:17:24 2023 + + +Copyright (C) 1994-2021 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. +Tool: Synplify Pro (R) +Build: R-2021.03L-SP1 +Install: C:\lscc\diamond\3.12\synpbase +OS: Windows 6.2 + +Hostname: ZANEPC + +Implementation : impl1 +Synopsys Lattice Technology Pre-mapping, Version map202103lat, Build 070R, Built Oct 6 2021 11:12:38, @ + + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 117MB peak: 117MB) + + +Done reading skeleton netlist (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 122MB peak: 130MB) + +@A: MF827 |No constraint file specified. +@L: D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\LCMXO2-640HC\impl1\RAM2GS_LCMXO2_640HC_impl1_scck.rpt +See clock summary report "D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\LCMXO2-640HC\impl1\RAM2GS_LCMXO2_640HC_impl1_scck.rpt" +@N: MF916 |Option synthesis_strategy=base is enabled. +@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: 124MB peak: 130MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 124MB peak: 130MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 138MB peak: 138MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 138MB peak: 140MB) + +@N: FX493 |Applying initial value "0" on instance InitReady. +@W: FX474 |User-specified initial value defined for some sequential elements which can prevent optimum synthesis results from being achieved. +@N: FX493 |Applying initial value "0" on instance Ready. +@N: FX493 |Applying initial value "0" on instance RCKE. +@N: FX493 |Applying initial value "0" on instance LEDEN. +@N: FX493 |Applying initial value "1" on instance nRCAS. +@N: FX493 |Applying initial value "0" on instance CmdLEDEN. +@N: FX493 |Applying initial value "0" on instance Cmdn8MEGEN. +@N: FX493 |Applying initial value "0" on instance n8MEGEN. +@N: FX493 |Applying initial value "1" on instance nRCS. +@N: FX493 |Applying initial value "1" on instance nRRAS. +@N: FX493 |Applying initial value "0" on instance CmdUFMCLK. +@N: FX493 |Applying initial value "0" on instance CmdUFMCS. +@N: FX493 |Applying initial value "0" on instance CmdUFMSDI. +@N: FX493 |Applying initial value "0" on instance C1Submitted. +@N: FX493 |Applying initial value "0" on instance CmdSubmitted. +@N: FX493 |Applying initial value "0" on instance ADSubmitted. +@N: FX493 |Applying initial value "0" on instance XOR8MEG. +@N: FX493 |Applying initial value "1" on instance nUFMCS. +@N: FX493 |Applying initial value "0" on instance UFMSDI. +@N: FX493 |Applying initial value "0" on instance UFMCLK. +@N: FX493 |Applying initial value "0" on instance CmdEnable. +@N: FX493 |Applying initial value "1" on instance nRWE. + +Starting clock optimization phase (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 170MB peak: 170MB) + + +Finished clock optimization phase (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 170MB peak: 170MB) + + +Starting clock optimization report phase (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 170MB peak: 171MB) + + +Finished clock optimization report phase (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 170MB peak: 171MB) + +@N: FX1184 |Applying syn_allowed_resources blockrams=2 on top level netlist RAM2GS + +Finished netlist restructuring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 170MB peak: 171MB) + + + +Clock Summary +****************** + + Start Requested Requested Clock Clock Clock +Level Clock Frequency Period Type Group Load +------------------------------------------------------------------------------------------------- +0 - RAM2GS|RCLK 200.0 MHz 5.000 inferred Inferred_clkgroup_0 48 + +0 - RAM2GS|PHI2 200.0 MHz 5.000 inferred Inferred_clkgroup_1 19 + +0 - RAM2GS|nCRAS 200.0 MHz 5.000 inferred Inferred_clkgroup_2 14 + +0 - RAM2GS|nCCAS 200.0 MHz 5.000 inferred Inferred_clkgroup_3 8 +================================================================================================= + + + +Clock Load Summary +*********************** + + Clock Source Clock Pin Non-clock Pin Non-clock Pin +Clock Load Pin Seq Example Seq Example Comb Example +----------------------------------------------------------------------------------------------- +RAM2GS|RCLK 48 RCLK(port) CASr2.C - - + +RAM2GS|PHI2 19 PHI2(port) Bank[7:0].C PHI2r.D[0] un1_PHI2.I[0](inv) + +RAM2GS|nCRAS 14 nCRAS(port) CBR.C RASr.D[0] RASr_2.I[0](inv) + +RAM2GS|nCCAS 8 nCCAS(port) WRD[7:0].C CASr.D[0] CASr_2.I[0](inv) +=============================================================================================== + +@W: MT529 :"d:\onedrive\documents\github\ram2gs\cpld\ram2gs-spi.v":147:1:147:6|Found inferred clock RAM2GS|RCLK which controls 48 sequential elements including nRWE. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"d:\onedrive\documents\github\ram2gs\cpld\ram2gs-spi.v":288:1:288:6|Found inferred clock RAM2GS|PHI2 which controls 19 sequential elements including CmdEnable. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. +@W: MT529 :"d:\onedrive\documents\github\ram2gs\cpld\ram2gs-spi.v":105:1:105:6|Found inferred clock RAM2GS|nCRAS which controls 14 sequential elements including RowA[9: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 :"d:\onedrive\documents\github\ram2gs\cpld\ram2gs-spi.v":123:1:123:6|Found inferred clock RAM2GS|nCCAS which controls 8 sequential elements including WRD[7:0]. This clock has no specified timing constraint which may prevent conversion of gated or generated clocks and may adversely impact design performance. + +ICG Latch Removal Summary: +Number of ICG latches removed: 0 +Number of ICG latches not removed: 0 +For details review file gcc_ICG_report.rpt + + +@S |Clock Optimization Summary + + + +#### START OF PREMAP CLOCK OPTIMIZATION REPORT #####[ + +4 non-gated/non-generated clock tree(s) driving 89 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 +--------------------------------------------------------------------------------------- +@KP:ckid0_0 RCLK port 48 nRWE +@KP:ckid0_1 PHI2 port 19 RA11 +@KP:ckid0_2 nCCAS port 8 WRD[7:0] +@KP:ckid0_3 nCRAS port 14 RowA[9:0] +======================================================================================= + + +##### END OF CLOCK OPTIMIZATION REPORT ###### + +@N: FX1143 |Skipping assigning INTERNAL_VREF to iobanks, because the table of mapping from pin to iobank is not initialized. +Finished Pre Mapping Phase. + +Starting constraint checker (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 171MB peak: 171MB) + + +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 171MB peak: 171MB) + + +Finished constraint checker (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 172MB peak: 172MB) + +Pre-mapping successful! + +At Mapper Exit (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 88MB peak: 173MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime +# Tue Aug 15 22:17:26 2023 + +###########################################################] +Map & Optimize Report + +# Tue Aug 15 22:17:26 2023 + + +Copyright (C) 1994-2021 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. +Tool: Synplify Pro (R) +Build: R-2021.03L-SP1 +Install: C:\lscc\diamond\3.12\synpbase +OS: Windows 6.2 + +Hostname: ZANEPC + +Implementation : impl1 +Synopsys Lattice Technology Mapper, Version map202103lat, Build 070R, Built Oct 6 2021 11:12:38, @ + + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 117MB peak: 117MB) + +@N: MF916 |Option synthesis_strategy=base is enabled. +@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: 118MB peak: 129MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 119MB peak: 129MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 133MB peak: 133MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 134MB peak: 136MB) + + + +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 167MB peak: 167MB) + + +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 171MB peak: 171MB) + +@N: MO231 :"d:\onedrive\documents\github\ram2gs\cpld\ram2gs-spi.v":147:1:147:6|Found counter in view:work.RAM2GS(verilog) instance IS[3:0] +@N: MO231 :"d:\onedrive\documents\github\ram2gs\cpld\ram2gs-spi.v":134:1:134:6|Found counter in view:work.RAM2GS(verilog) instance FS[17:0] +@N: FX493 |Applying initial value "0" on instance IS[0]. +@W: FX474 |User-specified initial value defined for some sequential elements which can prevent optimum synthesis results from being achieved. +@N: FX493 |Applying initial value "0" on instance IS[1]. +@N: FX493 |Applying initial value "0" on instance IS[2]. +@N: FX493 |Applying initial value "0" on instance IS[3]. + +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 173MB peak: 173MB) + + +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 173MB peak: 173MB) + + +Available hyper_sources - for debug and ip models + None Found + + +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:01s; Memory used current: 174MB peak: 174MB) + + +Starting Early Timing Optimization (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 175MB peak: 175MB) + + +Finished Early Timing Optimization (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 175MB peak: 175MB) + + +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 175MB peak: 176MB) + + +Finished preparing to map (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 176MB peak: 176MB) + + +Finished technology mapping (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 176MB peak: 176MB) + +Pass CPU time Worst Slack Luts / Registers +------------------------------------------------------------ + 1 0h:00m:01s -2.87ns 132 / 89 + 2 0h:00m:01s -2.87ns 142 / 89 + 3 0h:00m:01s -2.50ns 140 / 89 + 4 0h:00m:01s -2.50ns 139 / 89 + 5 0h:00m:01s -2.50ns 139 / 89 + 6 0h:00m:01s -2.50ns 140 / 89 +@N: FX271 :"d:\onedrive\documents\github\ram2gs\cpld\ram2gs-spi.v":98:1:98:6|Replicating instance Bank[5] (in view: work.RAM2GS(verilog)) with 5 loads 1 time to improve timing. +@N: FX271 :"d:\onedrive\documents\github\ram2gs\cpld\ram2gs-spi.v":98:1:98:6|Replicating instance Bank[7] (in view: work.RAM2GS(verilog)) with 4 loads 1 time to improve timing. +Timing driven replication report +Added 2 Registers via timing driven replication +Added 0 LUTs via timing driven replication + + 7 0h:00m:01s -1.81ns 164 / 91 + 8 0h:00m:01s -1.74ns 164 / 91 + 9 0h:00m:01s -1.71ns 165 / 91 + 10 0h:00m:01s -1.37ns 167 / 91 + 11 0h:00m:01s -2.03ns 168 / 91 + + 12 0h:00m:01s -1.83ns 166 / 91 + 13 0h:00m:01s -2.00ns 167 / 91 + +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 176MB peak: 177MB) + +@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:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 177MB peak: 177MB) + + +Start Writing Netlists (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 142MB peak: 177MB) + +Writing Analyst data base D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\LCMXO2-640HC\impl1\synwork\RAM2GS_LCMXO2_640HC_impl1_m.srm + +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 178MB peak: 178MB) + +Writing EDIF Netlist and constraint files +@N: FX1056 |Writing EDF file: D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\LCMXO2-640HC\impl1\RAM2GS_LCMXO2_640HC_impl1.edi +@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: 183MB peak: 183MB) + + +Finished Writing Netlists (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 183MB peak: 184MB) + + +Start final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 181MB peak: 184MB) + +@W: MT420 |Found inferred clock RAM2GS|RCLK with period 5.00ns. Please declare a user-defined clock on port RCLK. +@W: MT420 |Found inferred clock RAM2GS|PHI2 with period 5.00ns. Please declare a user-defined clock on port PHI2. +@W: MT420 |Found inferred clock RAM2GS|nCRAS with period 5.00ns. Please declare a user-defined clock on port nCRAS. +@W: MT420 |Found inferred clock RAM2GS|nCCAS with period 5.00ns. Please declare a user-defined clock on port nCCAS. + + +##### START OF TIMING REPORT #####[ +# Timing report written on Tue Aug 15 22:17:29 2023 +# + + +Top view: RAM2GS +Requested Frequency: 200.0 MHz +Wire load mode: top +Paths requested: 3 +Constraint File(s): +@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: -2.370 + + Requested Estimated Requested Estimated Clock Clock +Starting Clock Frequency Frequency Period Period Slack Type Group +---------------------------------------------------------------------------------------------------------------------- +RAM2GS|PHI2 200.0 MHz 102.7 MHz 5.000 9.740 -2.370 inferred Inferred_clkgroup_1 +RAM2GS|RCLK 200.0 MHz 185.7 MHz 5.000 5.385 -0.385 inferred Inferred_clkgroup_0 +RAM2GS|nCCAS 200.0 MHz NA 5.000 NA NA inferred Inferred_clkgroup_3 +RAM2GS|nCRAS 200.0 MHz NA 5.000 NA NA inferred Inferred_clkgroup_2 +====================================================================================================================== +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 +-------------------------------------------------------------------------------------------------------------------- +RAM2GS|RCLK RAM2GS|RCLK | 5.000 -0.385 | No paths - | No paths - | No paths - +RAM2GS|RCLK RAM2GS|PHI2 | Diff grp - | No paths - | Diff grp - | No paths - +RAM2GS|PHI2 RAM2GS|RCLK | No paths - | No paths - | No paths - | Diff grp - +RAM2GS|PHI2 RAM2GS|PHI2 | No paths - | 5.000 -0.639 | 2.500 -2.370 | 2.500 0.864 +RAM2GS|nCRAS RAM2GS|RCLK | No paths - | No paths - | No paths - | Diff grp - +==================================================================================================================== + 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: RAM2GS|PHI2 +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +--------------------------------------------------------------------------------------------- +Bank_fast_0io[5] RAM2GS|PHI2 IFS1P3DX Q Bank_fast[5] 1.044 -2.370 +Bank_0io[2] RAM2GS|PHI2 IFS1P3DX Q Bank[2] 1.220 -1.457 +Bank_0io[6] RAM2GS|PHI2 IFS1P3DX Q Bank[6] 1.204 -1.441 +Bank_0io[0] RAM2GS|PHI2 IFS1P3DX Q Bank[0] 0.972 -1.429 +Bank_0io[1] RAM2GS|PHI2 IFS1P3DX Q Bank[1] 0.972 -1.429 +Bank_0io[3] RAM2GS|PHI2 IFS1P3DX Q Bank[3] 0.972 -1.429 +Bank_0io[4] RAM2GS|PHI2 IFS1P3DX Q Bank[4] 0.972 -1.429 +Bank_fast_0io[7] RAM2GS|PHI2 IFS1P3DX Q Bank_fast[7] 1.148 -1.385 +Bank[5] RAM2GS|PHI2 FD1S3AX Q Bank[5] 1.148 -1.345 +Bank[7] RAM2GS|PHI2 FD1S3AX Q Bank[7] 1.108 -1.305 +============================================================================================= + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------------ +CmdSubmitted RAM2GS|PHI2 FD1S3AX D N_377_0 2.589 -2.370 +CmdLEDEN RAM2GS|PHI2 FD1S3AX D CmdLEDENe_0 2.589 -1.429 +Cmdn8MEGEN RAM2GS|PHI2 FD1S3AX D Cmdn8MEGENe_0 2.589 -1.429 +XOR8MEG RAM2GS|PHI2 FD1S3AX D XOR8MEGe_0 2.589 -1.429 +ADSubmitted RAM2GS|PHI2 FD1S3AX D ADSubmitted_r 2.589 -1.365 +C1Submitted RAM2GS|PHI2 FD1S3AX D C1Submitted_s 2.589 -1.365 +CmdUFMCLK RAM2GS|PHI2 FD1S3AX D CmdUFMCLKe_0 2.589 -1.365 +CmdUFMCS RAM2GS|PHI2 FD1S3AX D CmdUFMCSe_0 2.589 -1.365 +CmdUFMSDI RAM2GS|PHI2 FD1S3AX D CmdUFMSDIe_0 2.589 -1.353 +CmdEnable RAM2GS|PHI2 FD1S3AX D CmdEnable_s 2.589 -1.337 +========================================================================================== + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 2.500 + - Setup time: -0.089 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 2.589 + + - Propagation time: 4.959 + - Clock delay at starting point: 0.000 (ideal) + = Slack (critical) : -2.370 + + Number of logic level(s): 4 + Starting point: Bank_fast_0io[5] / Q + Ending point: CmdSubmitted / D + The start point is clocked by RAM2GS|PHI2 [rising] (rise=0.000 fall=2.500 period=5.000) on pin SCLK + The end point is clocked by RAM2GS|PHI2 [falling] (rise=0.000 fall=2.500 period=5.000) on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------------------- +Bank_fast_0io[5] IFS1P3DX Q Out 1.044 1.044 r - +Bank_fast[5] Net - - - - 2 +Bank_fast_0io_RNI2FJ23[5] ORCALUT4 A In 0.000 1.044 r - +Bank_fast_0io_RNI2FJ23[5] ORCALUT4 Z Out 1.089 2.133 r - +g0_17_1 Net - - - - 2 +Bank_fast_0io_RNIV4MF3[7] ORCALUT4 D In 0.000 2.133 r - +Bank_fast_0io_RNIV4MF3[7] ORCALUT4 Z Out 1.193 3.325 f - +un1_ADWR_i_o3_12 Net - - - - 4 +CmdSubmitted_1_sqmuxa ORCALUT4 D In 0.000 3.325 f - +CmdSubmitted_1_sqmuxa ORCALUT4 Z Out 1.017 4.342 r - +CmdSubmitted_1_sqmuxa Net - - - - 1 +CmdSubmitted_RNO ORCALUT4 A In 0.000 4.342 r - +CmdSubmitted_RNO ORCALUT4 Z Out 0.617 4.959 r - +N_377_0 Net - - - - 1 +CmdSubmitted FD1S3AX D In 0.000 4.959 r - +============================================================================================ + + +Path information for path number 2: + Requested Period: 2.500 + - Setup time: -0.089 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 2.589 + + - Propagation time: 4.046 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : -1.457 + + Number of logic level(s): 3 + Starting point: Bank_0io[2] / Q + Ending point: CmdSubmitted / D + The start point is clocked by RAM2GS|PHI2 [rising] (rise=0.000 fall=2.500 period=5.000) on pin SCLK + The end point is clocked by RAM2GS|PHI2 [falling] (rise=0.000 fall=2.500 period=5.000) on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------------------- +Bank_0io[2] IFS1P3DX Q Out 1.220 1.220 r - +Bank[2] Net - - - - 8 +Bank_fast_0io_RNIV4MF3[7] ORCALUT4 A In 0.000 1.220 r - +Bank_fast_0io_RNIV4MF3[7] ORCALUT4 Z Out 1.193 2.413 r - +un1_ADWR_i_o3_12 Net - - - - 4 +CmdSubmitted_1_sqmuxa ORCALUT4 D In 0.000 2.413 r - +CmdSubmitted_1_sqmuxa ORCALUT4 Z Out 1.017 3.429 f - +CmdSubmitted_1_sqmuxa Net - - - - 1 +CmdSubmitted_RNO ORCALUT4 A In 0.000 3.429 f - +CmdSubmitted_RNO ORCALUT4 Z Out 0.617 4.046 f - +N_377_0 Net - - - - 1 +CmdSubmitted FD1S3AX D In 0.000 4.046 f - +============================================================================================ + + +Path information for path number 3: + Requested Period: 2.500 + - Setup time: -0.089 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 2.589 + + - Propagation time: 4.030 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : -1.441 + + Number of logic level(s): 3 + Starting point: Bank_0io[6] / Q + Ending point: CmdSubmitted / D + The start point is clocked by RAM2GS|PHI2 [rising] (rise=0.000 fall=2.500 period=5.000) on pin SCLK + The end point is clocked by RAM2GS|PHI2 [falling] (rise=0.000 fall=2.500 period=5.000) on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------------------- +Bank_0io[6] IFS1P3DX Q Out 1.204 1.204 r - +Bank[6] Net - - - - 7 +Bank_fast_0io_RNIV4MF3[7] ORCALUT4 B In 0.000 1.204 r - +Bank_fast_0io_RNIV4MF3[7] ORCALUT4 Z Out 1.193 2.397 f - +un1_ADWR_i_o3_12 Net - - - - 4 +CmdSubmitted_1_sqmuxa ORCALUT4 D In 0.000 2.397 f - +CmdSubmitted_1_sqmuxa ORCALUT4 Z Out 1.017 3.413 r - +CmdSubmitted_1_sqmuxa Net - - - - 1 +CmdSubmitted_RNO ORCALUT4 A In 0.000 3.413 r - +CmdSubmitted_RNO ORCALUT4 Z Out 0.617 4.030 r - +N_377_0 Net - - - - 1 +CmdSubmitted FD1S3AX D In 0.000 4.030 r - +============================================================================================ + + + + +==================================== +Detailed Report for Clock: RAM2GS|RCLK +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +---------------------------------------------------------------------------------- +FS[0] RAM2GS|RCLK FD1S3AX Q FS[0] 1.044 -0.385 +FS[1] RAM2GS|RCLK FD1S3AX Q FS[1] 1.108 -0.306 +FS[12] RAM2GS|RCLK FD1S3AX Q FS[12] 1.148 -0.279 +FS[14] RAM2GS|RCLK FD1S3AX Q FS[14] 1.148 -0.279 +FS[15] RAM2GS|RCLK FD1S3AX Q FS[15] 1.148 -0.279 +FS[2] RAM2GS|RCLK FD1S3AX Q FS[2] 1.044 -0.242 +FS[4] RAM2GS|RCLK FD1S3AX Q FS[4] 1.108 -0.164 +FS[3] RAM2GS|RCLK FD1S3AX Q FS[3] 1.044 -0.100 +InitReady RAM2GS|RCLK FD1S3AX Q InitReady 1.272 -0.082 +FS[5] RAM2GS|RCLK FD1S3AX Q FS[5] 1.108 -0.021 +================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +----------------------------------------------------------------------------------- +FS[17] RAM2GS|RCLK FD1S3AX D FS_s[17] 4.894 -0.385 +UFMSDI RAM2GS|RCLK FD1S3AX D UFMSDI_RNO 5.462 -0.279 +FS[15] RAM2GS|RCLK FD1S3AX D FS_s[15] 4.894 -0.242 +FS[16] RAM2GS|RCLK FD1S3AX D FS_s[16] 4.894 -0.242 +FS[13] RAM2GS|RCLK FD1S3AX D FS_s[13] 4.894 -0.100 +FS[14] RAM2GS|RCLK FD1S3AX D FS_s[14] 4.894 -0.100 +UFMCLK RAM2GS|RCLK FD1S3AX D N_16_i 5.089 -0.082 +nUFMCS RAM2GS|RCLK FD1S3AY D nUFMCS_s_0 5.089 -0.038 +FS[11] RAM2GS|RCLK FD1S3AX D FS_s[11] 4.894 0.043 +FS[12] RAM2GS|RCLK FD1S3AX D FS_s[12] 4.894 0.043 +=================================================================================== + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 5.000 + - Setup time: 0.106 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 4.894 + + - Propagation time: 5.280 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : -0.385 + + Number of logic level(s): 10 + Starting point: FS[0] / Q + Ending point: FS[17] / D + The start point is clocked by RAM2GS|RCLK [rising] (rise=0.000 fall=2.500 period=5.000) on pin CK + The end point is clocked by RAM2GS|RCLK [rising] (rise=0.000 fall=2.500 period=5.000) on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------- +FS[0] FD1S3AX Q Out 1.044 1.044 r - +FS[0] Net - - - - 2 +FS_cry_0[0] CCU2D A1 In 0.000 1.044 r - +FS_cry_0[0] CCU2D COUT Out 1.544 2.588 r - +FS_cry[0] Net - - - - 1 +FS_cry_0[1] CCU2D CIN In 0.000 2.588 r - +FS_cry_0[1] CCU2D COUT Out 0.143 2.731 r - +FS_cry[2] Net - - - - 1 +FS_cry_0[3] CCU2D CIN In 0.000 2.731 r - +FS_cry_0[3] CCU2D COUT Out 0.143 2.874 r - +FS_cry[4] Net - - - - 1 +FS_cry_0[5] CCU2D CIN In 0.000 2.874 r - +FS_cry_0[5] CCU2D COUT Out 0.143 3.017 r - +FS_cry[6] Net - - - - 1 +FS_cry_0[7] CCU2D CIN In 0.000 3.017 r - +FS_cry_0[7] CCU2D COUT Out 0.143 3.159 r - +FS_cry[8] Net - - - - 1 +FS_cry_0[9] CCU2D CIN In 0.000 3.159 r - +FS_cry_0[9] CCU2D COUT Out 0.143 3.302 r - +FS_cry[10] Net - - - - 1 +FS_cry_0[11] CCU2D CIN In 0.000 3.302 r - +FS_cry_0[11] CCU2D COUT Out 0.143 3.445 r - +FS_cry[12] Net - - - - 1 +FS_cry_0[13] CCU2D CIN In 0.000 3.445 r - +FS_cry_0[13] CCU2D COUT Out 0.143 3.588 r - +FS_cry[14] Net - - - - 1 +FS_cry_0[15] CCU2D CIN In 0.000 3.588 r - +FS_cry_0[15] CCU2D COUT Out 0.143 3.731 r - +FS_cry[16] Net - - - - 1 +FS_s_0[17] CCU2D CIN In 0.000 3.731 r - +FS_s_0[17] CCU2D S0 Out 1.549 5.280 r - +FS_s[17] Net - - - - 1 +FS[17] FD1S3AX D In 0.000 5.280 r - +================================================================================ + + +Path information for path number 2: + Requested Period: 5.000 + - Setup time: 0.106 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 4.894 + + - Propagation time: 5.201 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : -0.306 + + Number of logic level(s): 9 + Starting point: FS[1] / Q + Ending point: FS[17] / D + The start point is clocked by RAM2GS|RCLK [rising] (rise=0.000 fall=2.500 period=5.000) on pin CK + The end point is clocked by RAM2GS|RCLK [rising] (rise=0.000 fall=2.500 period=5.000) on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------- +FS[1] FD1S3AX Q Out 1.108 1.108 r - +FS[1] Net - - - - 3 +FS_cry_0[1] CCU2D A0 In 0.000 1.108 r - +FS_cry_0[1] CCU2D COUT Out 1.544 2.652 r - +FS_cry[2] Net - - - - 1 +FS_cry_0[3] CCU2D CIN In 0.000 2.652 r - +FS_cry_0[3] CCU2D COUT Out 0.143 2.795 r - +FS_cry[4] Net - - - - 1 +FS_cry_0[5] CCU2D CIN In 0.000 2.795 r - +FS_cry_0[5] CCU2D COUT Out 0.143 2.938 r - +FS_cry[6] Net - - - - 1 +FS_cry_0[7] CCU2D CIN In 0.000 2.938 r - +FS_cry_0[7] CCU2D COUT Out 0.143 3.081 r - +FS_cry[8] Net - - - - 1 +FS_cry_0[9] CCU2D CIN In 0.000 3.081 r - +FS_cry_0[9] CCU2D COUT Out 0.143 3.224 r - +FS_cry[10] Net - - - - 1 +FS_cry_0[11] CCU2D CIN In 0.000 3.224 r - +FS_cry_0[11] CCU2D COUT Out 0.143 3.366 r - +FS_cry[12] Net - - - - 1 +FS_cry_0[13] CCU2D CIN In 0.000 3.366 r - +FS_cry_0[13] CCU2D COUT Out 0.143 3.509 r - +FS_cry[14] Net - - - - 1 +FS_cry_0[15] CCU2D CIN In 0.000 3.509 r - +FS_cry_0[15] CCU2D COUT Out 0.143 3.652 r - +FS_cry[16] Net - - - - 1 +FS_s_0[17] CCU2D CIN In 0.000 3.652 r - +FS_s_0[17] CCU2D S0 Out 1.549 5.201 r - +FS_s[17] Net - - - - 1 +FS[17] FD1S3AX D In 0.000 5.201 r - +================================================================================ + + +Path information for path number 3: + Requested Period: 5.000 + - Setup time: -0.462 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 5.462 + + - Propagation time: 5.741 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : -0.279 + + Number of logic level(s): 5 + Starting point: FS[12] / Q + Ending point: UFMSDI / D + The start point is clocked by RAM2GS|RCLK [rising] (rise=0.000 fall=2.500 period=5.000) on pin CK + The end point is clocked by RAM2GS|RCLK [rising] (rise=0.000 fall=2.500 period=5.000) on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +----------------------------------------------------------------------------------------- +FS[12] FD1S3AX Q Out 1.148 1.148 r - +FS[12] Net - - - - 4 +UFMSDI_ens2_i_o4_N_2L1 ORCALUT4 A In 0.000 1.148 r - +UFMSDI_ens2_i_o4_N_2L1 ORCALUT4 Z Out 1.017 2.165 f - +UFMSDI_ens2_i_o4_N_2L1 Net - - - - 1 +UFMSDI_ens2_i_o4 ORCALUT4 D In 0.000 2.165 f - +UFMSDI_ens2_i_o4 ORCALUT4 Z Out 1.153 3.317 r - +N_29 Net - - - - 3 +nUFMCS15_0_a2 ORCALUT4 D In 0.000 3.317 r - +nUFMCS15_0_a2 ORCALUT4 Z Out 1.193 4.510 f - +nUFMCS15 Net - - - - 4 +UFMSDI_RNO_0 ORCALUT4 B In 0.000 4.510 f - +UFMSDI_RNO_0 ORCALUT4 Z Out 1.017 5.527 r - +UFMSDI_RNO_0 Net - - - - 1 +UFMSDI_RNO PFUMX ALUT In 0.000 5.527 r - +UFMSDI_RNO PFUMX Z Out 0.214 5.741 r - +UFMSDI_RNO Net - - - - 1 +UFMSDI FD1S3AX D In 0.000 5.741 r - +========================================================================================= + + + +##### END OF TIMING REPORT #####] + +Timing exceptions that could not be applied + +Finished final timing analysis (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 182MB peak: 184MB) + + +Finished timing report (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 182MB peak: 184MB) + +--------------------------------------- +Resource Usage Report +Part: lcmxo2_640hc-4 + +Register bits: 91 of 640 (14%) +PIC Latch: 0 +I/O cells: 67 + + +Details: +BB: 8 +CCU2D: 10 +FD1P3AX: 2 +FD1S3AX: 50 +FD1S3AY: 1 +FD1S3IX: 3 +GSR: 1 +IB: 26 +IFS1P3DX: 9 +IFS1P3IX: 10 +IFS1P3JX: 2 +INV: 7 +OB: 33 +OFS1P3BX: 4 +OFS1P3DX: 8 +OFS1P3IX: 1 +OFS1P3JX: 1 +ORCALUT4: 163 +PFUMX: 1 +PUR: 1 +VHI: 1 +VLO: 1 +Mapper successful! + +At Mapper Exit (Real Time elapsed 0h:00m:03s; CPU Time elapsed 0h:00m:03s; Memory used current: 65MB peak: 184MB) + +Process took 0h:00m:03s realtime, 0h:00m:03s cputime +# Tue Aug 15 22:17:29 2023 + +###########################################################] diff --git a/CPLD/LCMXO2-640HC/impl1/dm/layer0.xdm b/CPLD/LCMXO2-640HC/impl1/dm/layer0.xdm new file mode 100644 index 0000000..6eeb0c4 --- /dev/null +++ b/CPLD/LCMXO2-640HC/impl1/dm/layer0.xdm @@ -0,0 +1,35 @@ +%%% protect protected_file +@EG +- +]17p0Osk0CksRsPC#MHF=3"4j +"> +!S<-1-RFOksCHRVDRC#O0FMskHL0oHMRR0F0REC8HC#o-MR-S> +S +S"/ +S1S +SF<1kCsOR"b=BD:\#\OO8lHNF\M8d.34\M#$b#LNCH\DLD\PFko\lOs_NlbH3RP"Nd=""=RD"sPCHoDF"DROH=#0""-4RHbD#"0=-/4">S +S"/ +S1S< +S/k1Fs#OC>S + +<-!-R8vFkRDCs0FFR>-- +)S + + + +< +S!R--vkF8D7CRCMVHHF0HM-R->< +S7RCVMI="F3s ).qvtP13CDsHFRo"DP="CDsHF>o" +SqS"/ + + + + +/S<7>CV +]sC + +@ diff --git a/CPLD/LCMXO2-640HC/impl1/impl1.areasrr b/CPLD/LCMXO2-640HC/impl1/impl1.areasrr new file mode 100644 index 0000000..41b5352 --- /dev/null +++ b/CPLD/LCMXO2-640HC/impl1/impl1.areasrr @@ -0,0 +1,29 @@ +---------------------------------------------------------------------- +Report for cell RAM2GS.verilog + +Register bits: 90 of 640 (14%) +PIC Latch: 0 +I/O cells: 67 + Cell usage: + cell count Res Usage(%) + BB 8 100.0 + CCU2D 10 100.0 + FD1P3AX 11 100.0 + FD1S3AX 49 100.0 + FD1S3AY 1 100.0 + FD1S3IX 3 100.0 + GSR 1 100.0 + IB 26 100.0 + IFS1P3DX 9 100.0 + INV 7 100.0 + OB 33 100.0 + OFS1P3BX 4 100.0 + OFS1P3DX 12 100.0 + OFS1P3JX 1 100.0 + ORCALUT4 135 100.0 + PFUMX 1 100.0 + PUR 1 100.0 + VHI 1 100.0 + VLO 1 100.0 + + TOTAL 314 diff --git a/CPLD/LCMXO2-640HC/impl1/impl1.edi b/CPLD/LCMXO2-640HC/impl1/impl1.edi new file mode 100644 index 0000000..298000b --- /dev/null +++ b/CPLD/LCMXO2-640HC/impl1/impl1.edi @@ -0,0 +1,2989 @@ +(edif RAM2GS + (edifVersion 2 0 0) + (edifLevel 0) + (keywordMap (keywordLevel 0)) + (status + (written + (timeStamp 2023 8 15 22 34 24) + (author "Synopsys, Inc.") + (program "Synplify Pro" (version "R-2021.03L-SP1, mapper map202103lat, Build 070R")) + ) + ) + (library LUCENT + (edifLevel 0) + (technology (numberDefinition )) + (cell CCU2D (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port A0 (direction INPUT)) + (port B0 (direction INPUT)) + (port C0 (direction INPUT)) + (port D0 (direction INPUT)) + (port A1 (direction INPUT)) + (port B1 (direction INPUT)) + (port C1 (direction INPUT)) + (port D1 (direction INPUT)) + (port CIN (direction INPUT)) + (port COUT (direction OUTPUT)) + (port S0 (direction OUTPUT)) + (port S1 (direction OUTPUT)) + ) + (property INJECT1_1 (string "NO")) + (property INJECT1_0 (string "NO")) + (property INIT1 (string "0000")) + (property INIT0 (string "0000")) + ) + ) + (cell BB (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port B (direction INOUT)) + (port I (direction INPUT)) + (port T (direction INPUT)) + (port O (direction OUTPUT)) + ) + ) + ) + (cell OB (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port I (direction INPUT)) + (port O (direction OUTPUT)) + ) + ) + ) + (cell IB (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port I (direction INPUT)) + (port O (direction OUTPUT)) + ) + ) + ) + (cell FD1S3IX (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port D (direction INPUT)) + (port CK (direction INPUT)) + (port CD (direction INPUT)) + (port Q (direction OUTPUT)) + ) + ) + ) + (cell FD1S3AY (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port D (direction INPUT)) + (port CK (direction INPUT)) + (port Q (direction OUTPUT)) + ) + ) + ) + (cell FD1S3AX (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port D (direction INPUT)) + (port CK (direction INPUT)) + (port Q (direction OUTPUT)) + ) + ) + ) + (cell OFS1P3JX (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port D (direction INPUT)) + (port SP (direction INPUT)) + (port SCLK (direction INPUT)) + (port PD (direction INPUT)) + (port Q (direction OUTPUT)) + ) + ) + ) + (cell OFS1P3DX (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port D (direction INPUT)) + (port SP (direction INPUT)) + (port SCLK (direction INPUT)) + (port CD (direction INPUT)) + (port Q (direction OUTPUT)) + ) + ) + ) + (cell IFS1P3DX (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port D (direction INPUT)) + (port SP (direction INPUT)) + (port SCLK (direction INPUT)) + (port CD (direction INPUT)) + (port Q (direction OUTPUT)) + ) + ) + ) + (cell OFS1P3BX (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port D (direction INPUT)) + (port SP (direction INPUT)) + (port SCLK (direction INPUT)) + (port PD (direction INPUT)) + (port Q (direction OUTPUT)) + ) + ) + ) + (cell FD1P3AX (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port D (direction INPUT)) + (port SP (direction INPUT)) + (port CK (direction INPUT)) + (port Q (direction OUTPUT)) + ) + ) + ) + (cell ORCALUT4 (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port A (direction INPUT)) + (port B (direction INPUT)) + (port C (direction INPUT)) + (port D (direction INPUT)) + (port Z (direction OUTPUT)) + ) + ) + ) + (cell PFUMX (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port ALUT (direction INPUT)) + (port BLUT (direction INPUT)) + (port C0 (direction INPUT)) + (port Z (direction OUTPUT)) + ) + ) + ) + (cell GSR (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port GSR (direction INPUT)) + ) + ) + ) + (cell INV (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port A (direction INPUT)) + (port Z (direction OUTPUT)) + ) + ) + ) + (cell VHI (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port Z (direction OUTPUT)) + ) + ) + ) + (cell VLO (cellType GENERIC) + (view PRIM (viewType NETLIST) + (interface + (port Z (direction OUTPUT)) + ) + ) + ) + ) + (library work + (edifLevel 0) + (technology (numberDefinition )) + (cell RAM2GS (cellType GENERIC) + (view verilog (viewType NETLIST) + (interface + (port PHI2 (direction INPUT)) + (port (array (rename main "MAin[9:0]") 10) (direction INPUT)) + (port (array (rename crow "CROW[1:0]") 2) (direction INPUT)) + (port (array (rename din "Din[7:0]") 8) (direction INPUT)) + (port (array (rename dout "Dout[7:0]") 8) (direction OUTPUT)) + (port nCCAS (direction INPUT)) + (port nCRAS (direction INPUT)) + (port nFWE (direction INPUT)) + (port LED (direction OUTPUT)) + (port (array (rename rba "RBA[1:0]") 2) (direction OUTPUT)) + (port (array (rename ra "RA[11:0]") 12) (direction OUTPUT)) + (port (array (rename rd "RD[7:0]") 8) (direction INOUT)) + (port nRCS (direction OUTPUT)) + (port RCLK (direction INPUT)) + (port RCKE (direction OUTPUT)) + (port nRWE (direction OUTPUT)) + (port nRRAS (direction OUTPUT)) + (port nRCAS (direction OUTPUT)) + (port RDQMH (direction OUTPUT)) + (port RDQML (direction OUTPUT)) + (port nUFMCS (direction OUTPUT)) + (port UFMCLK (direction OUTPUT)) + (port UFMSDI (direction OUTPUT)) + (port UFMSDO (direction INPUT)) + ) + (contents + (instance VCC (viewRef PRIM (cellRef VHI (libraryRef LUCENT))) ) + (instance GND (viewRef PRIM (cellRef VLO (libraryRef LUCENT))) ) + (instance GSR_INST (viewRef PRIM (cellRef GSR (libraryRef LUCENT))) + ) + (instance RASr2_RNIAFR1 (viewRef PRIM (cellRef INV (libraryRef LUCENT))) ) + (instance RA10_0io_RNO (viewRef PRIM (cellRef INV (libraryRef LUCENT))) ) + (instance nCCAS_pad_RNISUR8 (viewRef PRIM (cellRef INV (libraryRef LUCENT))) ) + (instance RASr_RNO (viewRef PRIM (cellRef INV (libraryRef LUCENT))) ) + (instance FWEr_RNO (viewRef PRIM (cellRef INV (libraryRef LUCENT))) ) + (instance (rename S_RNICVV51_0 "S_RNICVV51[0]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C (!B A))")) + ) + (instance RCKEEN_8_u_0_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (!C (!B A)+C (!B+!A))+D (C !A))")) + ) + (instance (rename IS_RNO_3 "IS_RNO[3]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D A+D (!C A+C (!B A+B !A)))")) + ) + (instance Ready_RNO (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D A+D (!C (B+A)+C A))")) + ) + (instance UFMSDI_RNO (viewRef PRIM (cellRef PFUMX (libraryRef LUCENT))) ) + (instance UFMSDI_RNO_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (C (!B !A))+D (!B !A))")) + ) + (instance UFMSDI_RNO_1 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!B A)")) + ) + (instance Ready_fast_RNO (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B+A)")) + ) + (instance InitReady_RNO (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B+A)")) + ) + (instance CmdSubmitted_RNO (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B+A)")) + ) + (instance nCRAS_pad_RNIBPVB (viewRef PRIM (cellRef INV (libraryRef LUCENT))) ) + (instance (rename XOR8MEG_CN "XOR8MEG.CN") (viewRef PRIM (cellRef INV (libraryRef LUCENT))) ) + (instance (rename WRD_0io_0 "WRD_0io[0]") (viewRef PRIM (cellRef OFS1P3DX (libraryRef LUCENT))) + (property IOB (string "TRUE")) + ) + (instance (rename WRD_0io_1 "WRD_0io[1]") (viewRef PRIM (cellRef OFS1P3DX (libraryRef LUCENT))) + (property IOB (string "TRUE")) + ) + (instance (rename WRD_0io_2 "WRD_0io[2]") (viewRef PRIM (cellRef OFS1P3DX (libraryRef LUCENT))) + (property IOB (string "TRUE")) + ) + (instance (rename WRD_0io_3 "WRD_0io[3]") (viewRef PRIM (cellRef OFS1P3DX (libraryRef LUCENT))) + (property IOB (string "TRUE")) + ) + (instance (rename WRD_0io_4 "WRD_0io[4]") (viewRef PRIM (cellRef OFS1P3DX (libraryRef LUCENT))) + (property IOB (string "TRUE")) + ) + (instance (rename WRD_0io_5 "WRD_0io[5]") (viewRef PRIM (cellRef OFS1P3DX (libraryRef LUCENT))) + (property IOB (string "TRUE")) + ) + (instance (rename WRD_0io_6 "WRD_0io[6]") (viewRef PRIM (cellRef OFS1P3DX (libraryRef LUCENT))) + (property IOB (string "TRUE")) + ) + (instance (rename WRD_0io_7 "WRD_0io[7]") (viewRef PRIM (cellRef OFS1P3DX (libraryRef LUCENT))) + (property IOB (string "TRUE")) + ) + (instance PHI2r_0io (viewRef PRIM (cellRef IFS1P3DX (libraryRef LUCENT))) + (property IOB (string "FALSE")) + ) + (instance (rename Bank_0io_0 "Bank_0io[0]") (viewRef PRIM (cellRef IFS1P3DX (libraryRef LUCENT))) + ) + (instance (rename Bank_0io_1 "Bank_0io[1]") (viewRef PRIM (cellRef IFS1P3DX (libraryRef LUCENT))) + ) + (instance (rename Bank_0io_2 "Bank_0io[2]") (viewRef PRIM (cellRef IFS1P3DX (libraryRef LUCENT))) + ) + (instance (rename Bank_0io_3 "Bank_0io[3]") (viewRef PRIM (cellRef IFS1P3DX (libraryRef LUCENT))) + ) + (instance (rename Bank_0io_4 "Bank_0io[4]") (viewRef PRIM (cellRef IFS1P3DX (libraryRef LUCENT))) + ) + (instance (rename Bank_0io_5 "Bank_0io[5]") (viewRef PRIM (cellRef IFS1P3DX (libraryRef LUCENT))) + ) + (instance (rename Bank_0io_6 "Bank_0io[6]") (viewRef PRIM (cellRef IFS1P3DX (libraryRef LUCENT))) + ) + (instance (rename Bank_0io_7 "Bank_0io[7]") (viewRef PRIM (cellRef IFS1P3DX (libraryRef LUCENT))) + ) + (instance nRWE_0io (viewRef PRIM (cellRef OFS1P3BX (libraryRef LUCENT))) + (property IOB (string "FALSE")) + ) + (instance nRRAS_0io (viewRef PRIM (cellRef OFS1P3BX (libraryRef LUCENT))) + (property IOB (string "FALSE")) + ) + (instance nRCS_0io (viewRef PRIM (cellRef OFS1P3BX (libraryRef LUCENT))) + (property IOB (string "FALSE")) + ) + (instance nRCAS_0io (viewRef PRIM (cellRef OFS1P3BX (libraryRef LUCENT))) + (property IOB (string "FALSE")) + ) + (instance UFMCLK_0io (viewRef PRIM (cellRef OFS1P3DX (libraryRef LUCENT))) + (property IOB (string "FALSE")) + ) + (instance (rename RBA_0io_0 "RBA_0io[0]") (viewRef PRIM (cellRef OFS1P3DX (libraryRef LUCENT))) + (property IOB (string "FALSE")) + ) + (instance (rename RBA_0io_1 "RBA_0io[1]") (viewRef PRIM (cellRef OFS1P3DX (libraryRef LUCENT))) + (property IOB (string "FALSE")) + ) + (instance RA11_0io (viewRef PRIM (cellRef OFS1P3DX (libraryRef LUCENT))) + (property IOB (string "FALSE")) + ) + (instance RA10_0io (viewRef PRIM (cellRef OFS1P3JX (libraryRef LUCENT))) + (property IOB (string "FALSE")) + ) + (instance nUFMCS (viewRef PRIM (cellRef FD1S3AY (libraryRef LUCENT))) + ) + (instance nRowColSel (viewRef PRIM (cellRef FD1S3IX (libraryRef LUCENT))) + ) + (instance n8MEGEN (viewRef PRIM (cellRef FD1P3AX (libraryRef LUCENT))) + ) + (instance XOR8MEG (viewRef PRIM (cellRef FD1P3AX (libraryRef LUCENT))) + ) + (instance UFMSDI (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename S_0 "S[0]") (viewRef PRIM (cellRef FD1S3IX (libraryRef LUCENT))) + ) + (instance (rename S_1 "S[1]") (viewRef PRIM (cellRef FD1S3IX (libraryRef LUCENT))) + ) + (instance (rename RowA_0 "RowA[0]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename RowA_1 "RowA[1]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename RowA_2 "RowA[2]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename RowA_3 "RowA[3]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename RowA_4 "RowA[4]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename RowA_5 "RowA[5]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename RowA_6 "RowA[6]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename RowA_7 "RowA[7]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename RowA_8 "RowA[8]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename RowA_9 "RowA[9]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance Ready_fast (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance Ready (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance RCKEEN (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance RCKE (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance RASr3 (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance RASr2 (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance RASr (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance PHI2r3 (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance PHI2r2 (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance LEDEN (viewRef PRIM (cellRef FD1P3AX (libraryRef LUCENT))) + ) + (instance InitReady (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename IS_0 "IS[0]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename IS_1 "IS[1]") (viewRef PRIM (cellRef FD1P3AX (libraryRef LUCENT))) + ) + (instance (rename IS_2 "IS[2]") (viewRef PRIM (cellRef FD1P3AX (libraryRef LUCENT))) + ) + (instance (rename IS_3 "IS[3]") (viewRef PRIM (cellRef FD1P3AX (libraryRef LUCENT))) + ) + (instance FWEr (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_0 "FS[0]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_1 "FS[1]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_2 "FS[2]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_3 "FS[3]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_4 "FS[4]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_5 "FS[5]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_6 "FS[6]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_7 "FS[7]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_8 "FS[8]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_9 "FS[9]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_10 "FS[10]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_11 "FS[11]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_12 "FS[12]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_13 "FS[13]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_14 "FS[14]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_15 "FS[15]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_16 "FS[16]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance (rename FS_17 "FS[17]") (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance Cmdn8MEGEN (viewRef PRIM (cellRef FD1P3AX (libraryRef LUCENT))) + ) + (instance CmdUFMSDI (viewRef PRIM (cellRef FD1P3AX (libraryRef LUCENT))) + ) + (instance CmdUFMCS (viewRef PRIM (cellRef FD1P3AX (libraryRef LUCENT))) + ) + (instance CmdUFMCLK (viewRef PRIM (cellRef FD1P3AX (libraryRef LUCENT))) + ) + (instance CmdSubmitted (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance CmdLEDEN (viewRef PRIM (cellRef FD1P3AX (libraryRef LUCENT))) + ) + (instance CmdEnable (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance CBR (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance CASr3 (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance CASr2 (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance CASr (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance C1Submitted (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance ADSubmitted (viewRef PRIM (cellRef FD1S3AX (libraryRef LUCENT))) + ) + (instance UFMSDO_pad (viewRef PRIM (cellRef IB (libraryRef LUCENT))) ) + (instance UFMSDI_pad (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance UFMCLK_pad (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance nUFMCS_pad (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance RDQML_pad (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance RDQMH_pad (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance nRCAS_pad (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance nRRAS_pad (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance nRWE_pad (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance RCKE_pad (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance RCLK_pad (viewRef PRIM (cellRef IB (libraryRef LUCENT))) ) + (instance nRCS_pad (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename RD_pad_7 "RD_pad[7]") (viewRef PRIM (cellRef BB (libraryRef LUCENT))) ) + (instance (rename RD_pad_6 "RD_pad[6]") (viewRef PRIM (cellRef BB (libraryRef LUCENT))) ) + (instance (rename RD_pad_5 "RD_pad[5]") (viewRef PRIM (cellRef BB (libraryRef LUCENT))) ) + (instance (rename RD_pad_4 "RD_pad[4]") (viewRef PRIM (cellRef BB (libraryRef LUCENT))) ) + (instance (rename RD_pad_3 "RD_pad[3]") (viewRef PRIM (cellRef BB (libraryRef LUCENT))) ) + (instance (rename RD_pad_2 "RD_pad[2]") (viewRef PRIM (cellRef BB (libraryRef LUCENT))) ) + (instance (rename RD_pad_1 "RD_pad[1]") (viewRef PRIM (cellRef BB (libraryRef LUCENT))) ) + (instance (rename RD_pad_0 "RD_pad[0]") (viewRef PRIM (cellRef BB (libraryRef LUCENT))) ) + (instance (rename RA_pad_11 "RA_pad[11]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename RA_pad_10 "RA_pad[10]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename RA_pad_9 "RA_pad[9]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename RA_pad_8 "RA_pad[8]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename RA_pad_7 "RA_pad[7]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename RA_pad_6 "RA_pad[6]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename RA_pad_5 "RA_pad[5]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename RA_pad_4 "RA_pad[4]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename RA_pad_3 "RA_pad[3]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename RA_pad_2 "RA_pad[2]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename RA_pad_1 "RA_pad[1]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename RA_pad_0 "RA_pad[0]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename RBA_pad_1 "RBA_pad[1]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename RBA_pad_0 "RBA_pad[0]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance LED_pad (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance nFWE_pad (viewRef PRIM (cellRef IB (libraryRef LUCENT))) ) + (instance nCRAS_pad (viewRef PRIM (cellRef IB (libraryRef LUCENT))) ) + (instance nCCAS_pad (viewRef PRIM (cellRef IB (libraryRef LUCENT))) ) + (instance (rename Dout_pad_7 "Dout_pad[7]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename Dout_pad_6 "Dout_pad[6]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename Dout_pad_5 "Dout_pad[5]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename Dout_pad_4 "Dout_pad[4]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename Dout_pad_3 "Dout_pad[3]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename Dout_pad_2 "Dout_pad[2]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename Dout_pad_1 "Dout_pad[1]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename Dout_pad_0 "Dout_pad[0]") (viewRef PRIM (cellRef OB (libraryRef LUCENT))) ) + (instance (rename Din_pad_7 "Din_pad[7]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) + ) + (instance (rename Din_pad_6 "Din_pad[6]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) + ) + (instance (rename Din_pad_5 "Din_pad[5]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) + ) + (instance (rename Din_pad_4 "Din_pad[4]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) + ) + (instance (rename Din_pad_3 "Din_pad[3]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) + ) + (instance (rename Din_pad_2 "Din_pad[2]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) + ) + (instance (rename Din_pad_1 "Din_pad[1]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) + ) + (instance (rename Din_pad_0 "Din_pad[0]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) + ) + (instance (rename CROW_pad_1 "CROW_pad[1]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) ) + (instance (rename CROW_pad_0 "CROW_pad[0]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) ) + (instance (rename MAin_pad_9 "MAin_pad[9]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) ) + (instance (rename MAin_pad_8 "MAin_pad[8]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) ) + (instance (rename MAin_pad_7 "MAin_pad[7]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) ) + (instance (rename MAin_pad_6 "MAin_pad[6]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) ) + (instance (rename MAin_pad_5 "MAin_pad[5]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) ) + (instance (rename MAin_pad_4 "MAin_pad[4]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) ) + (instance (rename MAin_pad_3 "MAin_pad[3]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) ) + (instance (rename MAin_pad_2 "MAin_pad[2]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) ) + (instance (rename MAin_pad_1 "MAin_pad[1]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) ) + (instance (rename MAin_pad_0 "MAin_pad[0]") (viewRef PRIM (cellRef IB (libraryRef LUCENT))) ) + (instance PHI2_pad (viewRef PRIM (cellRef IB (libraryRef LUCENT))) + ) + (instance CmdEnable_s (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D+(!C A+C B))")) + ) + (instance CmdEnable_s_RNO (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (!B+A)+D (!C (!B+A)))")) + ) + (instance CmdEnable_0_sqmuxa_0_a2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(C (B A))")) + ) + (instance CmdEnable17_0_a2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (C (B A)))")) + ) + (instance UFMCLK_0io_RNO (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (!C (!B+A)))")) + ) + (instance XOR8MEG18 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B A)")) + ) + (instance un1_FS_14_i_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D C+D (C+(B A)))")) + ) + (instance un1_FS_13_i_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D C+D (C+(B A)))")) + ) + (instance CmdEnable17_0_a2_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (C (!B A)))")) + ) + (instance nUFMCS_s_0_N_5_i (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (!C (B+A)+C (B !A))+D (!C+!A))")) + ) + (instance Cmdn8MEGEN_RNO (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C (!B !A)+C !A)")) + ) + (instance CmdLEDEN_RNO (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C !A+C (B !A))")) + ) + (instance RA10_0io_RNO_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D+(!C+(B+A)))")) + ) + (instance un1_FS_13_i_a2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(C (B A))")) + ) + (instance un1_FS_14_i_a2_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(C (B A))")) + ) + (instance CMDWR (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (C (B A)))")) + ) + (instance un1_CmdEnable20_0_o3_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D+(C+(!B+!A)))")) + ) + (instance nRWE_s_i_tz_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D+(C (B !A)))")) + ) + (instance UFMCLK_0io_RNO_1 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C (B+A))")) + ) + (instance XOR8MEG_3_u_0_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D C+D (C+(!B+!A)))")) + ) + (instance nRWE_s_i_a3_1_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (!C (!B A)))")) + ) + (instance UFMSDI_ens2_i_a0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D !A+D (!C (!B !A)+C !A))")) + ) + (instance un1_FS_13_i_a2_8 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (C (!B A)))")) + ) + (instance nRRAS_5_u_i (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D+(!C (!B A)+C !B))")) + ) + (instance C1WR_7_0_o3 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D+(C+(!B+!A)))")) + ) + (instance un1_CmdEnable20_0_a2_0_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (C !A)+D (!C (!B !A)+C !A))")) + ) + (instance un1_nRCAS_6_sqmuxa_i_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (C+(!B+A))+D (!C (!B+A)))")) + ) + (instance UFMSDI_en_ss0_0_a2_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C (!B !A))")) + ) + (instance nUFMCS15_0_a2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (!C (!B !A)))")) + ) + (instance nUFMCS_s_0_m4_yy (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (!C (!B+A)))")) + ) + (instance Cmdn8MEGEN_4_u_i_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (C A)+D (!C !B+C (!B+A)))")) + ) + (instance CmdLEDEN_4_u_i_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (!C B)+D (!C (B+!A)+C !A))")) + ) + (instance UFMCLK_r_i_m2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (C B)+D A)")) + ) + (instance PHI2r3_RNITCN41 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D !B+D (!C (!B+A)+C !B))")) + ) + (instance IS_0_sqmuxa_0_o2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B+A)")) + ) + (instance nRCAS_0_sqmuxa_1_0_a3 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (C (!B A)))")) + ) + (instance nRowColSel_0_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (!C B+C (B+A))+D (!C B+C (B+!A)))")) + ) + (instance nRCAS_r_i_a3_1_1_tz (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D !C+D (C (!B A)))")) + ) + (instance Ready_0_sqmuxa_0_a3 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (!C (!B A)))")) + ) + (instance Cmdn8MEGEN_4_u_i_a2_2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C (B A))")) + ) + (instance un1_CmdEnable20_0_a2_1 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (!C (B !A)))")) + ) + (instance XOR8MEG_3_u_0_a2_0_2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (!C (B A)))")) + ) + (instance C1WR_7_0_o3_6 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D+(C+(B+!A)))")) + ) + (instance nRRAS_5_u_i_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (!C (B !A)+C !A))")) + ) + (instance (rename IS_RNO_2 "IS_RNO[2]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C (B A)+C (!B+!A))")) + ) + (instance XOR8MEG_3_u_0_a2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B A)")) + ) + (instance Cmdn8MEGEN_4_u_i_o2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(C+(B !A))")) + ) + (instance UFMSDI_ens2_i_o2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C B+C (!B A))")) + ) + (instance ADSubmitted_r_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (C+(B A)))")) + ) + (instance CmdEnable16_0_a2_0_2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(C (!B !A))")) + ) + (instance LED_pad_RNO (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(C+(!B+A))")) + ) + (instance UFMCLK_r_i_a2_2_2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (C (!B A)))")) + ) + (instance UFMSDI_ens2_i_o2_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(C+(B+A))")) + ) + (instance InitReady3_0_a2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (C (B A)))")) + ) + (instance nRowColSel_0_0_a3_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (C (!B !A)))")) + ) + (instance RCKE_2_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (C !B)+D (C+(B+A)))")) + ) + (instance LEDEN_RNO (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!B+A)")) + ) + (instance (rename S_RNO_0 "S_RNO[0]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B+!A)")) + ) + (instance XOR8MEG_3_u_0_o3_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D+(C+(B+A)))")) + ) + (instance C1Submitted_s_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(C+(B A))")) + ) + (instance Cmdn8MEGEN_4_u_i_o2_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(C+(B+!A))")) + ) + (instance un1_nRCAS_6_sqmuxa_i_o2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(C+(B+A))")) + ) + (instance Ready_0_sqmuxa_0_o2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C+(!B+!A))")) + ) + (instance RDQMH_pad_RNO (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!B+A)")) + ) + (instance nCCAS_pad_RNI01SJ (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B+A)")) + ) + (instance UFMCLK_0io_RNO_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B+A)")) + ) + (instance InitReady3_0_a2_5 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (C (B A)))")) + ) + (instance un1_FS_13_i_a2_6 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (!C (!B !A)))")) + ) + (instance CmdEnable16_0_a2_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (C (!B !A)))")) + ) + (instance UFMSDI_ens2_i_o2_0_3 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D+(C+(B+A)))")) + ) + (instance Ready_0_sqmuxa_0_a3_2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (!C (B A)))")) + ) + (instance C1WR_7_0_o3_7 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D+(!C+(!B+!A)))")) + ) + (instance UFMSDI_ens2_i_a2_4_2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (!C (!B A)))")) + ) + (instance un1_CmdEnable20_0_o3_0_1 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(C+(!B+!A))")) + ) + (instance CMDWR_2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (C (B !A)))")) + ) + (instance un1_FS_13_i_a2_1 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (!C (!B !A)))")) + ) + (instance un1_FS_14_i_a2_0_1 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (!C (!B !A)))")) + ) + (instance CmdEnable17_0_a2_1 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(C (B A))")) + ) + (instance (rename un9_RA_8 "un9_RA[8]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C B+C A)")) + ) + (instance (rename un9_RA_i_m3_0 "un9_RA_i_m3[0]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C B+C A)")) + ) + (instance (rename un9_RA_i_m3_1 "un9_RA_i_m3[1]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C B+C A)")) + ) + (instance (rename un9_RA_i_m3_2 "un9_RA_i_m3[2]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C B+C A)")) + ) + (instance (rename un9_RA_i_m3_3 "un9_RA_i_m3[3]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C B+C A)")) + ) + (instance (rename un9_RA_i_m3_4 "un9_RA_i_m3[4]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C B+C A)")) + ) + (instance (rename un9_RA_i_m3_5 "un9_RA_i_m3[5]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C B+C A)")) + ) + (instance (rename un9_RA_i_m3_6 "un9_RA_i_m3[6]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C B+C A)")) + ) + (instance (rename un9_RA_i_m3_7 "un9_RA_i_m3[7]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C B+C A)")) + ) + (instance (rename un9_RA_i_m3_9 "un9_RA_i_m3[9]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C B+C A)")) + ) + (instance n8MEGEN_5_i_m2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C (!B+A)+C (B A))")) + ) + (instance RDQML_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!B+!A)")) + ) + (instance InitReady3_0_a2_3 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B A)")) + ) + (instance (rename S_0_i_o2_1 "S_0_i_o2[1]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B+A)")) + ) + (instance IS_n1_0_x2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!B A+B !A)")) + ) + (instance un1_PHI2r3_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B !A)")) + ) + (instance C1WR_7_0_o3_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!B+!A)")) + ) + (instance CmdEnable17_0_a2_0_2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!B !A)")) + ) + (instance RCKEEN_8_u_1_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (!C+B)+D (C (!B+!A)))")) + ) + (instance RCKEEN_8_u (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D B+D (!C B+C (B+!A)))")) + ) + (instance nRCAS_0io_RNO (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (!C !B)+D (!C !B+C (!B !A)))")) + ) + (instance nRCAS_0io_RNO_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C !B+C (!B !A))")) + ) + (instance nRWE_0io_RNO (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (!C+(!B+A))+D A)")) + ) + (instance nRWE_0io_RNO_1 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (C (B !A)))")) + ) + (instance nRWE_0io_RNO_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(C (!B A))")) + ) + (instance nRCS_0io_RNO_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(C (!B !A))")) + ) + (instance nRCS_0io_RNO (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (C+A)+D (!C A+C !B))")) + ) + (instance RA11d (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (!C (B A)+C (B !A))+D (C B))")) + ) + (instance CmdLEDEN_4_u_i_a2_0_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (!C (!B !A)))")) + ) + (instance (rename RowAd_3 "RowAd[3]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B A)")) + ) + (instance (rename RowAd_0 "RowAd[0]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B A)")) + ) + (instance (rename RowAd_1 "RowAd[1]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B A)")) + ) + (instance (rename RowAd_2 "RowAd[2]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B A)")) + ) + (instance (rename RowAd_7 "RowAd[7]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B A)")) + ) + (instance (rename RowAd_4 "RowAd[4]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B A)")) + ) + (instance (rename RowAd_5 "RowAd[5]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!B+A)")) + ) + (instance (rename RowAd_6 "RowAd[6]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B A)")) + ) + (instance (rename RBAd_1 "RBAd[1]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B A)")) + ) + (instance (rename RowAd_8 "RowAd[8]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B A)")) + ) + (instance (rename RowAd_9 "RowAd[9]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!B+A)")) + ) + (instance (rename RBAd_0 "RBAd[0]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(B A)")) + ) + (instance IS_0_sqmuxa_0_o2_0 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D+(C+(!B+!A)))")) + ) + (instance CmdUFMCLK_1_sqmuxa_0_a2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(D (C (!B A)))")) + ) + (instance CmdSubmitted_1_sqmuxa_0_a2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (!C (!B A))+D (!B A))")) + ) + (instance CmdEnable16_0_a2 (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (!C (B A)))")) + ) + (instance nRRAS_5_u_i_0_RNILD5I (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!D (!C (!B !A)+C !A)+D (C !A))")) + ) + (instance IS_0_sqmuxa_0_o2_0_RNIS63D (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!B !A)")) + ) + (instance (rename IS_RNO_0 "IS_RNO[0]") (viewRef PRIM (cellRef ORCALUT4 (libraryRef LUCENT))) + (property lut_function (string "(!C (!B !A+B A)+C A)")) + ) + (instance (rename FS_s_0_17 "FS_s_0[17]") (viewRef PRIM (cellRef CCU2D (libraryRef LUCENT))) + (property INIT0 (string "0x5002")) + (property INJECT1_1 (string "NO")) + (property INJECT1_0 (string "NO")) + (property INIT1 (string "0x300A")) + ) + (instance (rename FS_cry_0_15 "FS_cry_0[15]") (viewRef PRIM (cellRef CCU2D (libraryRef LUCENT))) + (property INIT0 (string "0x300A")) + (property INJECT1_1 (string "NO")) + (property INJECT1_0 (string "NO")) + (property INIT1 (string "0x300A")) + ) + (instance (rename FS_cry_0_13 "FS_cry_0[13]") (viewRef PRIM (cellRef CCU2D (libraryRef LUCENT))) + (property INIT0 (string "0x300A")) + (property INJECT1_1 (string "NO")) + (property INJECT1_0 (string "NO")) + (property INIT1 (string "0x300A")) + ) + (instance (rename FS_cry_0_11 "FS_cry_0[11]") (viewRef PRIM (cellRef CCU2D (libraryRef LUCENT))) + (property INIT0 (string "0x300A")) + (property INJECT1_1 (string "NO")) + (property INJECT1_0 (string "NO")) + (property INIT1 (string "0x300A")) + ) + (instance (rename FS_cry_0_9 "FS_cry_0[9]") (viewRef PRIM (cellRef CCU2D (libraryRef LUCENT))) + (property INIT0 (string "0x300A")) + (property INJECT1_1 (string "NO")) + (property INJECT1_0 (string "NO")) + (property INIT1 (string "0x300A")) + ) + (instance (rename FS_cry_0_7 "FS_cry_0[7]") (viewRef PRIM (cellRef CCU2D (libraryRef LUCENT))) + (property INIT0 (string "0x300A")) + (property INJECT1_1 (string "NO")) + (property INJECT1_0 (string "NO")) + (property INIT1 (string "0x300A")) + ) + (instance (rename FS_cry_0_5 "FS_cry_0[5]") (viewRef PRIM (cellRef CCU2D (libraryRef LUCENT))) + (property INIT0 (string "0x300A")) + (property INJECT1_1 (string "NO")) + (property INJECT1_0 (string "NO")) + (property INIT1 (string "0x300A")) + ) + (instance (rename FS_cry_0_3 "FS_cry_0[3]") (viewRef PRIM (cellRef CCU2D (libraryRef LUCENT))) + (property INIT0 (string "0x300A")) + (property INJECT1_1 (string "NO")) + (property INJECT1_0 (string "NO")) + (property INIT1 (string "0x300A")) + ) + (instance (rename FS_cry_0_1 "FS_cry_0[1]") (viewRef PRIM (cellRef CCU2D (libraryRef LUCENT))) + (property INIT0 (string "0x300A")) + (property INJECT1_1 (string "NO")) + (property INJECT1_0 (string "NO")) + (property INIT1 (string "0x300A")) + ) + (instance (rename FS_cry_0_0 "FS_cry_0[0]") (viewRef PRIM (cellRef CCU2D (libraryRef LUCENT))) + (property INIT0 (string "0x300A")) + (property INJECT1_1 (string "NO")) + (property INJECT1_0 (string "NO")) + (property INIT1 (string "0x300A")) + ) + (net CBR (joined + (portRef Q (instanceRef CBR)) + (portRef A (instanceRef nRCS_0io_RNO_0)) + (portRef A (instanceRef nRWE_0io_RNO_1)) + (portRef A (instanceRef nRCAS_0io_RNO_0)) + (portRef A (instanceRef RCKEEN_8_u)) + (portRef B (instanceRef nRowColSel_0_0_a3_0)) + (portRef A (instanceRef LED_pad_RNO)) + (portRef A (instanceRef nRCAS_0_sqmuxa_1_0_a3)) + )) + (net C1Submitted (joined + (portRef Q (instanceRef C1Submitted)) + (portRef A (instanceRef C1Submitted_s_0)) + (portRef A (instanceRef un1_CmdEnable20_0_a2_1)) + )) + (net (rename Bank_2 "Bank[2]") (joined + (portRef Q (instanceRef Bank_0io_2)) + (portRef B (instanceRef C1WR_7_0_o3_6)) + )) + (net Ready (joined + (portRef Q (instanceRef Ready)) + (portRef B (instanceRef IS_RNO_0)) + (portRef A (instanceRef IS_0_sqmuxa_0_o2_0_RNIS63D)) + (portRef D (instanceRef nRCS_0io_RNO)) + (portRef C (instanceRef nRWE_0io_RNO_1)) + (portRef D (instanceRef RCKEEN_8_u)) + (portRef D (instanceRef nRowColSel_0_0_a3_0)) + (portRef D (instanceRef nRRAS_5_u_i_0)) + (portRef C (instanceRef Ready_0_sqmuxa_0_a3)) + (portRef C (instanceRef nRowColSel_0_0)) + (portRef D (instanceRef nRCAS_0_sqmuxa_1_0_a3)) + (portRef B (instanceRef IS_0_sqmuxa_0_o2)) + (portRef C (instanceRef un1_nRCAS_6_sqmuxa_i_0)) + (portRef A (instanceRef Ready_RNO)) + (portRef A (instanceRef RCKEEN_8_u_0_0)) + (portRef A (instanceRef S_RNICVV51_0)) + )) + (net n8MEGEN (joined + (portRef Q (instanceRef n8MEGEN)) + (portRef D (instanceRef RA11d)) + (portRef C (instanceRef Cmdn8MEGEN_RNO)) + )) + (net CO0 (joined + (portRef Q (instanceRef S_0)) + (portRef D (instanceRef IS_0_sqmuxa_0_o2_0)) + (portRef C (instanceRef nRWE_0io_RNO_0)) + (portRef B (instanceRef RCKEEN_8_u_1_0)) + (portRef A (instanceRef S_0_i_o2_1)) + (portRef A (instanceRef Ready_0_sqmuxa_0_a3_2)) + (portRef A (instanceRef S_RNO_0)) + (portRef C (instanceRef nRCAS_r_i_a3_1_1_tz)) + (portRef A (instanceRef nRowColSel_0_0)) + (portRef C (instanceRef S_RNICVV51_0)) + )) + (net (rename S_1 "S[1]") (joined + (portRef Q (instanceRef S_1)) + (portRef C (instanceRef IS_0_sqmuxa_0_o2_0)) + (portRef C (instanceRef nRCS_0io_RNO_0)) + (portRef D (instanceRef nRWE_0io_RNO_1)) + (portRef C (instanceRef nRCAS_0io_RNO_0)) + (portRef D (instanceRef nRCAS_0io_RNO)) + (portRef D (instanceRef RCKEEN_8_u_1_0)) + (portRef B (instanceRef S_0_i_o2_1)) + (portRef D (instanceRef Ready_0_sqmuxa_0_a3_2)) + (portRef B (instanceRef S_RNO_0)) + (portRef D (instanceRef nRowColSel_0_0)) + (portRef D (instanceRef un1_nRCAS_6_sqmuxa_i_0)) + (portRef B (instanceRef S_RNICVV51_0)) + )) + (net RASr2 (joined + (portRef Q (instanceRef RASr2)) + (portRef A (instanceRef IS_0_sqmuxa_0_o2_0)) + (portRef C (instanceRef Ready_0_sqmuxa_0_a3_2)) + (portRef B (instanceRef RCKE_2_0)) + (portRef B (instanceRef nRRAS_5_u_i_0)) + (portRef C (instanceRef nRCAS_0_sqmuxa_1_0_a3)) + (portRef A (instanceRef nRWE_s_i_tz_0)) + (portRef D (instanceRef RASr3)) + (portRef B (instanceRef RCKEEN_8_u_0_0)) + (portRef A (instanceRef RASr2_RNIAFR1)) + )) + (net InitReady (joined + (portRef Q (instanceRef InitReady)) + (portRef B (instanceRef IS_0_sqmuxa_0_o2_0)) + (portRef B (instanceRef n8MEGEN_5_i_m2)) + (portRef B (instanceRef LEDEN_RNO)) + (portRef B (instanceRef UFMCLK_r_i_a2_2_2)) + (portRef A (instanceRef Ready_0_sqmuxa_0_a3)) + (portRef B (instanceRef PHI2r3_RNITCN41)) + (portRef B (instanceRef nUFMCS_s_0_m4_yy)) + (portRef C (instanceRef nUFMCS15_0_a2)) + (portRef B (instanceRef UFMSDI_en_ss0_0_a2_0)) + (portRef A (instanceRef UFMSDI_ens2_i_a0)) + (portRef A (instanceRef UFMCLK_0io_RNO_1)) + (portRef B (instanceRef un1_FS_13_i_0)) + (portRef B (instanceRef un1_FS_14_i_0)) + (portRef B (instanceRef UFMCLK_0io_RNO)) + (portRef B (instanceRef InitReady_RNO)) + (portRef D (instanceRef Ready_RNO)) + (portRef C (instanceRef RCKEEN_8_u_0_0)) + )) + (net FWEr (joined + (portRef Q (instanceRef FWEr)) + (portRef B (instanceRef nRWE_0io_RNO_1)) + (portRef C (instanceRef RCKEEN_8_u_1_0)) + (portRef C (instanceRef nRowColSel_0_0_a3_0)) + (portRef D (instanceRef nRCAS_r_i_a3_1_1_tz)) + )) + (net CASr3 (joined + (portRef Q (instanceRef CASr3)) + (portRef B (instanceRef nRWE_0io_RNO_0)) + (portRef A (instanceRef nRowColSel_0_0_a3_0)) + (portRef B (instanceRef nRCAS_r_i_a3_1_1_tz)) + )) + (net (rename IS_0 "IS[0]") (joined + (portRef Q (instanceRef IS_0)) + (portRef A (instanceRef IS_RNO_0)) + (portRef D (instanceRef nRRAS_5_u_i_0_RNILD5I)) + (portRef A (instanceRef IS_n1_0_x2)) + (portRef A (instanceRef Ready_0_sqmuxa_0_o2)) + (portRef A (instanceRef IS_RNO_2)) + (portRef A (instanceRef nRRAS_5_u_i)) + (portRef A (instanceRef nRWE_s_i_a3_1_0)) + (portRef D (instanceRef IS_RNO_3)) + (portRef A (instanceRef RA10_0io_RNO)) + )) + (net (rename IS_3 "IS[3]") (joined + (portRef Q (instanceRef IS_3)) + (portRef B (instanceRef Ready_0_sqmuxa_0_a3_2)) + (portRef C (instanceRef un1_nRCAS_6_sqmuxa_i_o2)) + (portRef C (instanceRef RA10_0io_RNO_0)) + (portRef A (instanceRef IS_RNO_3)) + )) + (net (rename IS_2 "IS[2]") (joined + (portRef Q (instanceRef IS_2)) + (portRef C (instanceRef Ready_0_sqmuxa_0_o2)) + (portRef B (instanceRef un1_nRCAS_6_sqmuxa_i_o2)) + (portRef C (instanceRef IS_RNO_2)) + (portRef C (instanceRef nRWE_s_i_a3_1_0)) + (portRef B (instanceRef RA10_0io_RNO_0)) + (portRef B (instanceRef IS_RNO_3)) + )) + (net (rename IS_1 "IS[1]") (joined + (portRef Q (instanceRef IS_1)) + (portRef B (instanceRef IS_n1_0_x2)) + (portRef B (instanceRef Ready_0_sqmuxa_0_o2)) + (portRef A (instanceRef un1_nRCAS_6_sqmuxa_i_o2)) + (portRef B (instanceRef IS_RNO_2)) + (portRef B (instanceRef nRWE_s_i_a3_1_0)) + (portRef A (instanceRef RA10_0io_RNO_0)) + (portRef C (instanceRef IS_RNO_3)) + )) + (net (rename FS_5 "FS[5]") (joined + (portRef Q (instanceRef FS_5)) + (portRef A0 (instanceRef FS_cry_0_5)) + (portRef D (instanceRef un1_FS_14_i_a2_0_1)) + (portRef D (instanceRef un1_FS_13_i_a2_1)) + (portRef A (instanceRef UFMSDI_ens2_i_o2)) + )) + (net (rename FS_6 "FS[6]") (joined + (portRef Q (instanceRef FS_6)) + (portRef A1 (instanceRef FS_cry_0_5)) + (portRef A (instanceRef UFMSDI_ens2_i_a2_4_2)) + (portRef B (instanceRef un1_FS_13_i_a2_6)) + )) + (net (rename FS_7 "FS[7]") (joined + (portRef Q (instanceRef FS_7)) + (portRef A0 (instanceRef FS_cry_0_7)) + (portRef C (instanceRef un1_FS_13_i_a2_6)) + (portRef B (instanceRef UFMSDI_ens2_i_o2)) + )) + (net (rename FS_8 "FS[8]") (joined + (portRef Q (instanceRef FS_8)) + (portRef A1 (instanceRef FS_cry_0_7)) + (portRef B (instanceRef UFMSDI_ens2_i_a2_4_2)) + (portRef A (instanceRef UFMSDI_en_ss0_0_a2_0)) + )) + (net (rename FS_9 "FS[9]") (joined + (portRef Q (instanceRef FS_9)) + (portRef A0 (instanceRef FS_cry_0_9)) + (portRef C (instanceRef UFMSDI_ens2_i_o2)) + (portRef B (instanceRef un1_FS_13_i_a2_8)) + )) + (net (rename FS_0 "FS[0]") (joined + (portRef Q (instanceRef FS_0)) + (portRef A1 (instanceRef FS_cry_0_0)) + (portRef A (instanceRef un1_FS_14_i_a2_0_1)) + (portRef A (instanceRef un1_FS_13_i_a2_1)) + )) + (net (rename FS_1 "FS[1]") (joined + (portRef Q (instanceRef FS_1)) + (portRef A0 (instanceRef FS_cry_0_1)) + (portRef A (instanceRef un1_FS_13_i_a2_6)) + (portRef A (instanceRef UFMCLK_r_i_m2)) + )) + (net (rename FS_2 "FS[2]") (joined + (portRef Q (instanceRef FS_2)) + (portRef A1 (instanceRef FS_cry_0_1)) + (portRef B (instanceRef un1_FS_14_i_a2_0_1)) + (portRef B (instanceRef un1_FS_13_i_a2_1)) + )) + (net (rename FS_3 "FS[3]") (joined + (portRef Q (instanceRef FS_3)) + (portRef A0 (instanceRef FS_cry_0_3)) + (portRef C (instanceRef un1_FS_14_i_a2_0_1)) + (portRef C (instanceRef un1_FS_13_i_a2_1)) + )) + (net (rename FS_10 "FS[10]") (joined + (portRef Q (instanceRef FS_10)) + (portRef A1 (instanceRef FS_cry_0_9)) + (portRef C (instanceRef UFMSDI_ens2_i_a2_4_2)) + (portRef D (instanceRef un1_FS_13_i_a2_6)) + (portRef A (instanceRef InitReady3_0_a2)) + (portRef A (instanceRef nUFMCS15_0_a2)) + )) + (net (rename FS_11 "FS[11]") (joined + (portRef Q (instanceRef FS_11)) + (portRef A0 (instanceRef FS_cry_0_11)) + (portRef A (instanceRef InitReady3_0_a2_3)) + (portRef D (instanceRef UFMSDI_ens2_i_a2_4_2)) + (portRef C (instanceRef UFMCLK_r_i_m2)) + (portRef B (instanceRef nUFMCS15_0_a2)) + (portRef C (instanceRef un1_FS_13_i_a2_8)) + )) + (net (rename FS_12 "FS[12]") (joined + (portRef Q (instanceRef FS_12)) + (portRef A1 (instanceRef FS_cry_0_11)) + (portRef A (instanceRef UFMSDI_ens2_i_o2_0_3)) + (portRef A (instanceRef InitReady3_0_a2_5)) + )) + (net (rename FS_13 "FS[13]") (joined + (portRef Q (instanceRef FS_13)) + (portRef A0 (instanceRef FS_cry_0_13)) + (portRef B (instanceRef UFMSDI_ens2_i_o2_0_3)) + (portRef B (instanceRef InitReady3_0_a2_5)) + )) + (net (rename FS_14 "FS[14]") (joined + (portRef Q (instanceRef FS_14)) + (portRef A1 (instanceRef FS_cry_0_13)) + (portRef B (instanceRef InitReady3_0_a2_3)) + (portRef C (instanceRef UFMSDI_ens2_i_o2_0_3)) + )) + (net (rename FS_15 "FS[15]") (joined + (portRef Q (instanceRef FS_15)) + (portRef A0 (instanceRef FS_cry_0_15)) + (portRef C (instanceRef InitReady3_0_a2_5)) + (portRef A (instanceRef UFMSDI_ens2_i_o2_0)) + )) + (net (rename FS_16 "FS[16]") (joined + (portRef Q (instanceRef FS_16)) + (portRef A1 (instanceRef FS_cry_0_15)) + (portRef B (instanceRef InitReady3_0_a2)) + (portRef B (instanceRef UFMSDI_ens2_i_o2_0)) + (portRef A (instanceRef UFMCLK_r_i_a2_2_2)) + )) + (net (rename FS_17 "FS[17]") (joined + (portRef Q (instanceRef FS_17)) + (portRef A0 (instanceRef FS_s_0_17)) + (portRef D (instanceRef UFMSDI_ens2_i_o2_0_3)) + (portRef D (instanceRef InitReady3_0_a2_5)) + )) + (net PHI2r2 (joined + (portRef Q (instanceRef PHI2r2)) + (portRef A (instanceRef un1_PHI2r3_0)) + (portRef C (instanceRef PHI2r3_RNITCN41)) + (portRef D (instanceRef PHI2r3)) + )) + (net CmdUFMCS (joined + (portRef Q (instanceRef CmdUFMCS)) + (portRef A (instanceRef nUFMCS_s_0_m4_yy)) + )) + (net CASr2 (joined + (portRef Q (instanceRef CASr2)) + (portRef A (instanceRef nRWE_0io_RNO_0)) + (portRef A (instanceRef RCKEEN_8_u_1_0)) + (portRef A (instanceRef nRCAS_r_i_a3_1_1_tz)) + (portRef D (instanceRef CASr3)) + )) + (net CASr (joined + (portRef Q (instanceRef CASr)) + (portRef D (instanceRef CASr2)) + )) + (net PHI2r (joined + (portRef Q (instanceRef PHI2r_0io)) + (portRef D (instanceRef PHI2r2)) + )) + (net RASr (joined + (portRef Q (instanceRef RASr)) + (portRef A (instanceRef RCKE_2_0)) + (portRef D (instanceRef RASr2)) + )) + (net (rename Bank_0 "Bank[0]") (joined + (portRef Q (instanceRef Bank_0io_0)) + (portRef A (instanceRef C1WR_7_0_o3_6)) + )) + (net (rename Bank_1 "Bank[1]") (joined + (portRef Q (instanceRef Bank_0io_1)) + (portRef A (instanceRef C1WR_7_0_o3_7)) + )) + (net (rename Bank_3 "Bank[3]") (joined + (portRef Q (instanceRef Bank_0io_3)) + (portRef B (instanceRef C1WR_7_0_o3_7)) + )) + (net (rename Bank_4 "Bank[4]") (joined + (portRef Q (instanceRef Bank_0io_4)) + (portRef C (instanceRef C1WR_7_0_o3_7)) + )) + (net (rename Bank_5 "Bank[5]") (joined + (portRef Q (instanceRef Bank_0io_5)) + (portRef D (instanceRef C1WR_7_0_o3_7)) + )) + (net (rename Bank_6 "Bank[6]") (joined + (portRef Q (instanceRef Bank_0io_6)) + (portRef A (instanceRef C1WR_7_0_o3)) + )) + (net (rename Bank_7 "Bank[7]") (joined + (portRef Q (instanceRef Bank_0io_7)) + (portRef B (instanceRef C1WR_7_0_o3)) + )) + (net (rename RowA_0 "RowA[0]") (joined + (portRef Q (instanceRef RowA_0)) + (portRef B (instanceRef un9_RA_i_m3_0)) + )) + (net (rename RowA_1 "RowA[1]") (joined + (portRef Q (instanceRef RowA_1)) + (portRef B (instanceRef un9_RA_i_m3_1)) + )) + (net (rename RowA_2 "RowA[2]") (joined + (portRef Q (instanceRef RowA_2)) + (portRef B (instanceRef un9_RA_i_m3_2)) + )) + (net (rename RowA_3 "RowA[3]") (joined + (portRef Q (instanceRef RowA_3)) + (portRef B (instanceRef un9_RA_i_m3_3)) + )) + (net (rename RowA_4 "RowA[4]") (joined + (portRef Q (instanceRef RowA_4)) + (portRef B (instanceRef un9_RA_i_m3_4)) + )) + (net (rename RowA_5 "RowA[5]") (joined + (portRef Q (instanceRef RowA_5)) + (portRef B (instanceRef un9_RA_i_m3_5)) + )) + (net (rename RowA_6 "RowA[6]") (joined + (portRef Q (instanceRef RowA_6)) + (portRef B (instanceRef un9_RA_i_m3_6)) + )) + (net (rename RowA_7 "RowA[7]") (joined + (portRef Q (instanceRef RowA_7)) + (portRef B (instanceRef un9_RA_i_m3_7)) + )) + (net (rename RowA_8 "RowA[8]") (joined + (portRef Q (instanceRef RowA_8)) + (portRef B (instanceRef un9_RA_8)) + )) + (net (rename RowA_9 "RowA[9]") (joined + (portRef Q (instanceRef RowA_9)) + (portRef B (instanceRef un9_RA_i_m3_9)) + )) + (net (rename WRD_0 "WRD[0]") (joined + (portRef Q (instanceRef WRD_0io_0)) + (portRef I (instanceRef RD_pad_0)) + )) + (net (rename WRD_1 "WRD[1]") (joined + (portRef Q (instanceRef WRD_0io_1)) + (portRef I (instanceRef RD_pad_1)) + )) + (net (rename WRD_2 "WRD[2]") (joined + (portRef Q (instanceRef WRD_0io_2)) + (portRef I (instanceRef RD_pad_2)) + )) + (net (rename WRD_3 "WRD[3]") (joined + (portRef Q (instanceRef WRD_0io_3)) + (portRef I (instanceRef RD_pad_3)) + )) + (net (rename WRD_4 "WRD[4]") (joined + (portRef Q (instanceRef WRD_0io_4)) + (portRef I (instanceRef RD_pad_4)) + )) + (net (rename WRD_5 "WRD[5]") (joined + (portRef Q (instanceRef WRD_0io_5)) + (portRef I (instanceRef RD_pad_5)) + )) + (net (rename WRD_6 "WRD[6]") (joined + (portRef Q (instanceRef WRD_0io_6)) + (portRef I (instanceRef RD_pad_6)) + )) + (net (rename WRD_7 "WRD[7]") (joined + (portRef Q (instanceRef WRD_0io_7)) + (portRef I (instanceRef RD_pad_7)) + )) + (net nRowColSel (joined + (portRef Q (instanceRef nRowColSel)) + (portRef B (instanceRef RDQML_0)) + (portRef C (instanceRef un9_RA_i_m3_9)) + (portRef C (instanceRef un9_RA_i_m3_7)) + (portRef C (instanceRef un9_RA_i_m3_6)) + (portRef C (instanceRef un9_RA_i_m3_5)) + (portRef C (instanceRef un9_RA_i_m3_4)) + (portRef C (instanceRef un9_RA_i_m3_3)) + (portRef C (instanceRef un9_RA_i_m3_2)) + (portRef C (instanceRef un9_RA_i_m3_1)) + (portRef C (instanceRef un9_RA_i_m3_0)) + (portRef C (instanceRef un9_RA_8)) + (portRef B (instanceRef RDQMH_pad_RNO)) + )) + (net RASr3 (joined + (portRef Q (instanceRef RASr3)) + (portRef C (instanceRef RCKE_2_0)) + )) + (net LEDEN (joined + (portRef Q (instanceRef LEDEN)) + (portRef B (instanceRef LED_pad_RNO)) + (portRef B (instanceRef XOR8MEG_3_u_0_0)) + (portRef B (instanceRef CmdLEDEN_RNO)) + )) + (net Cmdn8MEGEN (joined + (portRef Q (instanceRef Cmdn8MEGEN)) + (portRef A (instanceRef n8MEGEN_5_i_m2)) + (portRef B (instanceRef Cmdn8MEGEN_4_u_i_0)) + )) + (net PHI2r3 (joined + (portRef Q (instanceRef PHI2r3)) + (portRef B (instanceRef un1_PHI2r3_0)) + (portRef D (instanceRef PHI2r3_RNITCN41)) + )) + (net CmdSubmitted (joined + (portRef Q (instanceRef CmdSubmitted)) + (portRef A (instanceRef PHI2r3_RNITCN41)) + (portRef A (instanceRef un1_FS_13_i_0)) + (portRef A (instanceRef un1_FS_14_i_0)) + (portRef B (instanceRef CmdSubmitted_RNO)) + )) + (net CmdLEDEN (joined + (portRef Q (instanceRef CmdLEDEN)) + (portRef A (instanceRef LEDEN_RNO)) + (portRef A (instanceRef CmdLEDEN_4_u_i_0)) + )) + (net (rename FS_4 "FS[4]") (joined + (portRef Q (instanceRef FS_4)) + (portRef A1 (instanceRef FS_cry_0_3)) + (portRef B (instanceRef UFMCLK_r_i_m2)) + (portRef A (instanceRef un1_FS_13_i_a2_8)) + )) + (net InitReady3 (joined + (portRef Z (instanceRef InitReady3_0_a2)) + (portRef A (instanceRef InitReady_RNO)) + )) + (net RCKEEN (joined + (portRef Q (instanceRef RCKEEN)) + (portRef D (instanceRef RCKE_2_0)) + )) + (net XOR8MEG (joined + (portRef Q (instanceRef XOR8MEG)) + (portRef C (instanceRef RA11d)) + (portRef B (instanceRef XOR8MEG_3_u_0_a2)) + )) + (net nRRAS_0_sqmuxa (joined + (portRef Z (instanceRef S_RNICVV51_0)) + (portRef C (instanceRef nRWE_s_i_tz_0)) + (portRef CD (instanceRef nRowColSel)) + )) + (net nUFMCS15 (joined + (portRef Z (instanceRef nUFMCS15_0_a2)) + (portRef B (instanceRef UFMCLK_0io_RNO_0)) + (portRef C (instanceRef nUFMCS_s_0_m4_yy)) + (portRef B (instanceRef nUFMCS_s_0_N_5_i)) + (portRef C (instanceRef UFMCLK_0io_RNO)) + (portRef B (instanceRef UFMSDI_RNO_1)) + (portRef B (instanceRef UFMSDI_RNO_0)) + )) + (net Ready_0_sqmuxa (joined + (portRef Z (instanceRef Ready_0_sqmuxa_0_a3)) + (portRef A (instanceRef Ready_fast_RNO)) + )) + (net RCKE_2 (joined + (portRef Z (instanceRef RCKE_2_0)) + (portRef D (instanceRef RCKE)) + )) + (net nRCAS_0_sqmuxa_1 (joined + (portRef Z (instanceRef nRCAS_0_sqmuxa_1_0_a3)) + (portRef A (instanceRef nRWE_0io_RNO)) + (portRef B (instanceRef nRCAS_0io_RNO)) + )) + (net XOR8MEG18 (joined + (portRef Z (instanceRef XOR8MEG18)) + (portRef A (instanceRef CmdSubmitted_1_sqmuxa_0_a2)) + (portRef A (instanceRef CmdUFMCLK_1_sqmuxa_0_a2)) + (portRef SP (instanceRef CmdLEDEN)) + (portRef SP (instanceRef Cmdn8MEGEN)) + (portRef SP (instanceRef XOR8MEG)) + )) + (net CmdEnable (joined + (portRef Q (instanceRef CmdEnable)) + (portRef B (instanceRef XOR8MEG18)) + (portRef A (instanceRef CmdEnable_s)) + )) + (net CmdEnable16 (joined + (portRef Z (instanceRef CmdEnable16_0_a2)) + (portRef C (instanceRef C1Submitted_s_0)) + (portRef D (instanceRef ADSubmitted_r_0)) + )) + (net CmdEnable17 (joined + (portRef Z (instanceRef CmdEnable17_0_a2)) + (portRef C (instanceRef ADSubmitted_r_0)) + (portRef B (instanceRef CmdEnable_s)) + )) + (net CmdSubmitted_1_sqmuxa (joined + (portRef Z (instanceRef CmdSubmitted_1_sqmuxa_0_a2)) + (portRef A (instanceRef CmdSubmitted_RNO)) + )) + (net CmdUFMCLK_1_sqmuxa (joined + (portRef Z (instanceRef CmdUFMCLK_1_sqmuxa_0_a2)) + (portRef SP (instanceRef CmdUFMCLK)) + (portRef SP (instanceRef CmdUFMCS)) + (portRef SP (instanceRef CmdUFMSDI)) + )) + (net CmdUFMCLK (joined + (portRef Q (instanceRef CmdUFMCLK)) + (portRef A (instanceRef UFMCLK_0io_RNO)) + )) + (net CmdUFMSDI (joined + (portRef Q (instanceRef CmdUFMSDI)) + (portRef D (instanceRef UFMSDI_RNO_0)) + )) + (net ADSubmitted (joined + (portRef Q (instanceRef ADSubmitted)) + (portRef A (instanceRef ADSubmitted_r_0)) + (portRef A (instanceRef CmdEnable_0_sqmuxa_0_a2)) + )) + (net CmdEnable_0_sqmuxa (joined + (portRef Z (instanceRef CmdEnable_0_sqmuxa_0_a2)) + (portRef D (instanceRef CmdEnable_s)) + )) + (net C1Submitted_s_0 (joined + (portRef Z (instanceRef C1Submitted_s_0)) + (portRef D (instanceRef C1Submitted)) + )) + (net ADSubmitted_r_0 (joined + (portRef Z (instanceRef ADSubmitted_r_0)) + (portRef D (instanceRef ADSubmitted)) + )) + (net UFMSDI_RNO (joined + (portRef Z (instanceRef UFMSDI_RNO)) + (portRef D (instanceRef UFMSDI)) + )) + (net CmdEnable_s (joined + (portRef Z (instanceRef CmdEnable_s)) + (portRef D (instanceRef CmdEnable)) + )) + (net nRowColSel_0_0 (joined + (portRef Z (instanceRef nRowColSel_0_0)) + (portRef D (instanceRef nRowColSel)) + )) + (net XOR8MEG_3 (joined + (portRef Z (instanceRef XOR8MEG_3_u_0_0)) + (portRef D (instanceRef XOR8MEG)) + )) + (net RCKEEN_8 (joined + (portRef Z (instanceRef RCKEEN_8_u)) + (portRef D (instanceRef RCKEEN)) + )) + (net N_26 (joined + (portRef Z (instanceRef un1_FS_14_i_0)) + (portRef SP (instanceRef n8MEGEN)) + )) + (net N_28 (joined + (portRef Z (instanceRef un1_FS_13_i_0)) + (portRef SP (instanceRef LEDEN)) + )) + (net N_24 (joined + (portRef Z (instanceRef nRRAS_5_u_i)) + (portRef B (instanceRef nRCS_0io_RNO_0)) + )) + (net un1_nRCAS_6_sqmuxa_i_0 (joined + (portRef Z (instanceRef un1_nRCAS_6_sqmuxa_i_0)) + (portRef B (instanceRef nRCAS_0io_RNO_0)) + )) + (net (rename S_0_i_o2_1 "S_0_i_o2[1]") (joined + (portRef Z (instanceRef S_0_i_o2_1)) + (portRef A (instanceRef nRRAS_5_u_i_0)) + (portRef B (instanceRef nRCAS_0_sqmuxa_1_0_a3)) + (portRef D (instanceRef S_1)) + (portRef D (instanceRef RCKEEN_8_u_0_0)) + )) + (net N_46 (joined + (portRef Z (instanceRef C1WR_7_0_o3)) + (portRef C (instanceRef un1_CmdEnable20_0_o3_0)) + (portRef D (instanceRef CMDWR)) + )) + (net N_45 (joined + (portRef Z (instanceRef Cmdn8MEGEN_4_u_i_o2)) + (portRef D (instanceRef CmdLEDEN_4_u_i_0)) + (portRef D (instanceRef Cmdn8MEGEN_4_u_i_0)) + )) + (net N_36 (joined + (portRef Z (instanceRef Cmdn8MEGEN_4_u_i_o2_0)) + (portRef B (instanceRef CmdSubmitted_1_sqmuxa_0_a2)) + (portRef B (instanceRef CmdUFMCLK_1_sqmuxa_0_a2)) + (portRef C (instanceRef Cmdn8MEGEN_4_u_i_o2)) + (portRef C (instanceRef Cmdn8MEGEN_4_u_i_a2_2)) + )) + (net CMDWR (joined + (portRef Z (instanceRef CMDWR)) + (portRef A (instanceRef XOR8MEG18)) + (portRef A (instanceRef CmdEnable_s_RNO)) + )) + (net N_151 (joined + (portRef Z (instanceRef un1_CmdEnable20_0_o3_0)) + (portRef B (instanceRef C1Submitted_s_0)) + (portRef B (instanceRef ADSubmitted_r_0)) + (portRef D (instanceRef CmdEnable17_0_a2_0)) + (portRef B (instanceRef CmdEnable_s_RNO)) + )) + (net N_189 (joined + (portRef Z (instanceRef un1_nRCAS_6_sqmuxa_i_o2)) + (portRef B (instanceRef nRRAS_5_u_i_0_RNILD5I)) + (portRef B (instanceRef un1_nRCAS_6_sqmuxa_i_0)) + (portRef C (instanceRef nRRAS_5_u_i)) + )) + (net N_183 (joined + (portRef Z (instanceRef IS_0_sqmuxa_0_o2_0)) + (portRef C (instanceRef IS_RNO_0)) + (portRef B (instanceRef IS_0_sqmuxa_0_o2_0_RNIS63D)) + (portRef C (instanceRef nRRAS_5_u_i_0_RNILD5I)) + (portRef A (instanceRef IS_0_sqmuxa_0_o2)) + (portRef A (instanceRef un1_nRCAS_6_sqmuxa_i_0)) + (portRef B (instanceRef nRRAS_5_u_i)) + )) + (net N_188 (joined + (portRef Z (instanceRef IS_0_sqmuxa_0_o2)) + (portRef D (instanceRef nRWE_s_i_a3_1_0)) + (portRef D (instanceRef RA10_0io_RNO_0)) + )) + (net N_160 (joined + (portRef Z (instanceRef XOR8MEG_3_u_0_o3_0)) + (portRef A (instanceRef XOR8MEG_3_u_0_a2)) + (portRef D (instanceRef XOR8MEG_3_u_0_a2_0_2)) + )) + (net N_139_8 (joined + (portRef Z (instanceRef un1_FS_13_i_a2_8)) + (portRef B (instanceRef un1_FS_14_i_a2_0)) + (portRef B (instanceRef un1_FS_13_i_a2)) + )) + (net N_139_6 (joined + (portRef Z (instanceRef un1_FS_13_i_a2_6)) + (portRef A (instanceRef un1_FS_14_i_a2_0)) + (portRef A (instanceRef un1_FS_13_i_a2)) + )) + (net N_177 (joined + (portRef Z (instanceRef CmdEnable17_0_a2_0)) + (portRef A (instanceRef CmdEnable16_0_a2)) + (portRef D (instanceRef CmdEnable17_0_a2)) + (portRef C (instanceRef CmdEnable_0_sqmuxa_0_a2)) + (portRef C (instanceRef CmdEnable_s_RNO)) + )) + (net N_178 (joined + (portRef Z (instanceRef CmdEnable16_0_a2_0)) + (portRef B (instanceRef CmdEnable16_0_a2)) + (portRef C (instanceRef CmdEnable16_0_a2_0_2)) + (portRef D (instanceRef un1_CmdEnable20_0_a2_0_0)) + )) + (net N_168 (joined + (portRef Z (instanceRef un1_CmdEnable20_0_a2_1)) + (portRef C (instanceRef un1_CmdEnable20_0_a2_0_0)) + )) + (net N_76 (joined + (portRef Z (instanceRef XOR8MEG_3_u_0_a2)) + (portRef C (instanceRef XOR8MEG_3_u_0_0)) + )) + (net N_94 (joined + (portRef Z (instanceRef Cmdn8MEGEN_4_u_i_a2_2)) + (portRef C (instanceRef CmdLEDEN_RNO)) + (portRef B (instanceRef Cmdn8MEGEN_RNO)) + )) + (net N_131 (joined + (portRef Z (instanceRef n8MEGEN_5_i_m2)) + (portRef D (instanceRef n8MEGEN)) + )) + (net N_205 (joined + (portRef Z (instanceRef nRowColSel_0_0_a3_0)) + (portRef B (instanceRef nRowColSel_0_0)) + )) + (net N_137_5 (joined + (portRef Z (instanceRef InitReady3_0_a2_5)) + (portRef D (instanceRef InitReady3_0_a2)) + (portRef D (instanceRef UFMCLK_r_i_a2_2_2)) + )) + (net N_137_3 (joined + (portRef Z (instanceRef InitReady3_0_a2_3)) + (portRef C (instanceRef InitReady3_0_a2)) + (portRef C (instanceRef UFMCLK_r_i_a2_2_2)) + )) + (net N_129 (joined + (portRef Z (instanceRef UFMSDI_ens2_i_o2_0)) + (portRef D (instanceRef UFMCLK_r_i_m2)) + (portRef D (instanceRef nUFMCS15_0_a2)) + (portRef C (instanceRef UFMSDI_en_ss0_0_a2_0)) + (portRef C (instanceRef UFMSDI_ens2_i_a0)) + )) + (net N_34 (joined + (portRef Z (instanceRef UFMSDI_ens2_i_o2)) + (portRef B (instanceRef UFMSDI_ens2_i_a0)) + )) + (net N_145 (joined + (portRef Z (instanceRef UFMSDI_en_ss0_0_a2_0)) + (portRef D (instanceRef un1_FS_13_i_a2_8)) + (portRef C (instanceRef UFMSDI_RNO_0)) + )) + (net N_50 (joined + (portRef Z (instanceRef UFMCLK_r_i_m2)) + (portRef B (instanceRef UFMCLK_0io_RNO_1)) + )) + (net N_139 (joined + (portRef Z (instanceRef un1_FS_14_i_a2_0)) + (portRef C (instanceRef un1_FS_14_i_0)) + )) + (net N_140 (joined + (portRef Z (instanceRef un1_FS_13_i_a2)) + (portRef C (instanceRef un1_FS_13_i_0)) + )) + (net N_215 (joined + (portRef Z (instanceRef IS_n1_0_x2)) + (portRef D (instanceRef IS_1)) + )) + (net N_56 (joined + (portRef Z (instanceRef Ready_0_sqmuxa_0_o2)) + (portRef B (instanceRef Ready_0_sqmuxa_0_a3)) + (portRef C (instanceRef Ready_RNO)) + )) + (net nRWE_s_i_a3_1_0 (joined + (portRef Z (instanceRef nRWE_s_i_a3_1_0)) + (portRef D (instanceRef nRWE_s_i_tz_0)) + )) + (net RCKEEN_8_u_0_0 (joined + (portRef Z (instanceRef RCKEEN_8_u_0_0)) + (portRef B (instanceRef RCKEEN_8_u)) + )) + (net UFMCLK_r_i_a2_2_2 (joined + (portRef Z (instanceRef UFMCLK_r_i_a2_2_2)) + (portRef D (instanceRef nUFMCS_s_0_m4_yy)) + (portRef C (instanceRef UFMCLK_0io_RNO_1)) + )) + (net i1_i (joined + (portRef Z (instanceRef UFMCLK_0io_RNO)) + (portRef D (instanceRef UFMCLK_0io)) + )) + (net UFMSDI_ens2_i_a0 (joined + (portRef Z (instanceRef UFMSDI_ens2_i_a0)) + (portRef A (instanceRef UFMSDI_RNO_0)) + )) + (net nUFMCS_s_0_m4_yy (joined + (portRef Z (instanceRef nUFMCS_s_0_m4_yy)) + (portRef C (instanceRef nUFMCS_s_0_N_5_i)) + )) + (net N_27_i_1 (joined + (portRef Z (instanceRef nRCAS_r_i_a3_1_1_tz)) + (portRef B (instanceRef nRCS_0io_RNO)) + (portRef A (instanceRef nRCAS_0io_RNO)) + )) + (net CmdLEDEN_4_u_i_a2_0_0 (joined + (portRef Z (instanceRef CmdLEDEN_4_u_i_a2_0_0)) + (portRef B (instanceRef CmdLEDEN_4_u_i_0)) + (portRef A (instanceRef Cmdn8MEGEN_4_u_i_0)) + )) + (net CmdEnable16_0_a2_0 (joined + (portRef Z (instanceRef CmdEnable16_0_a2_0_2)) + (portRef B (instanceRef CmdEnable_0_sqmuxa_0_a2)) + )) + (net nCRAS_c_i (joined + (portRef Z (instanceRef nCRAS_pad_RNIBPVB)) + (portRef CK (instanceRef CBR)) + (portRef CK (instanceRef FWEr)) + (portRef CK (instanceRef RowA_9)) + (portRef CK (instanceRef RowA_8)) + (portRef CK (instanceRef RowA_7)) + (portRef CK (instanceRef RowA_6)) + (portRef CK (instanceRef RowA_5)) + (portRef CK (instanceRef RowA_4)) + (portRef CK (instanceRef RowA_3)) + (portRef CK (instanceRef RowA_2)) + (portRef CK (instanceRef RowA_1)) + (portRef CK (instanceRef RowA_0)) + (portRef SCLK (instanceRef RBA_0io_1)) + (portRef SCLK (instanceRef RBA_0io_0)) + )) + (net N_188_i (joined + (portRef Z (instanceRef IS_0_sqmuxa_0_o2_0_RNIS63D)) + (portRef SP (instanceRef IS_3)) + (portRef SP (instanceRef IS_2)) + (portRef SP (instanceRef IS_1)) + )) + (net RD_1_i (joined + (portRef Z (instanceRef nCCAS_pad_RNI01SJ)) + (portRef T (instanceRef RD_pad_0)) + (portRef T (instanceRef RD_pad_1)) + (portRef T (instanceRef RD_pad_2)) + (portRef T (instanceRef RD_pad_3)) + (portRef T (instanceRef RD_pad_4)) + (portRef T (instanceRef RD_pad_5)) + (portRef T (instanceRef RD_pad_6)) + (portRef T (instanceRef RD_pad_7)) + )) + (net N_27_i (joined + (portRef Z (instanceRef nRCS_0io_RNO)) + (portRef D (instanceRef nRCS_0io)) + )) + (net N_179_i (joined + (portRef Z (instanceRef nRCAS_0io_RNO)) + (portRef D (instanceRef nRCAS_0io)) + )) + (net N_24_i (joined + (portRef Z (instanceRef nRRAS_5_u_i_0_RNILD5I)) + (portRef A (instanceRef nRCS_0io_RNO)) + (portRef D (instanceRef nRRAS_0io)) + )) + (net nUFMCS_s_0_N_5_i (joined + (portRef Z (instanceRef nUFMCS_s_0_N_5_i)) + (portRef D (instanceRef nUFMCS)) + )) + (net N_180_i (joined + (portRef Z (instanceRef nRWE_0io_RNO)) + (portRef D (instanceRef nRWE_0io)) + )) + (net N_60_i_i (joined + (portRef Z (instanceRef IS_RNO_0)) + (portRef D (instanceRef IS_0)) + )) + (net N_58_i_i (joined + (portRef Z (instanceRef IS_RNO_3)) + (portRef D (instanceRef IS_3)) + )) + (net N_57_i_i (joined + (portRef Z (instanceRef IS_RNO_2)) + (portRef D (instanceRef IS_2)) + )) + (net N_203_i (joined + (portRef Z (instanceRef S_RNO_0)) + (portRef D (instanceRef S_0)) + )) + (net N_14_i (joined + (portRef Z (instanceRef CmdLEDEN_RNO)) + (portRef D (instanceRef CmdLEDEN)) + )) + (net N_12_i (joined + (portRef Z (instanceRef Cmdn8MEGEN_RNO)) + (portRef D (instanceRef Cmdn8MEGEN)) + )) + (net N_74_i (joined + (portRef Z (instanceRef LEDEN_RNO)) + (portRef D (instanceRef LEDEN)) + )) + (net un1_CmdEnable20_i (joined + (portRef Z (instanceRef CmdEnable_s_RNO)) + (portRef C (instanceRef CmdEnable_s)) + )) + (net N_141_i (joined + (portRef Z (instanceRef PHI2r3_RNITCN41)) + (portRef A (instanceRef UFMCLK_0io_RNO_0)) + (portRef A (instanceRef nUFMCS_s_0_N_5_i)) + (portRef C0 (instanceRef UFMSDI_RNO)) + )) + (net i2_i (joined + (portRef Z (instanceRef UFMCLK_0io_RNO_0)) + (portRef SP (instanceRef UFMCLK_0io)) + )) + (net (rename FS_cry_0 "FS_cry[0]") (joined + (portRef COUT (instanceRef FS_cry_0_0)) + (portRef CIN (instanceRef FS_cry_0_1)) + )) + (net (rename FS_s_0 "FS_s[0]") (joined + (portRef S1 (instanceRef FS_cry_0_0)) + (portRef D (instanceRef FS_0)) + )) + (net (rename FS_s_1 "FS_s[1]") (joined + (portRef S0 (instanceRef FS_cry_0_1)) + (portRef D (instanceRef FS_1)) + )) + (net (rename FS_cry_2 "FS_cry[2]") (joined + (portRef COUT (instanceRef FS_cry_0_1)) + (portRef CIN (instanceRef FS_cry_0_3)) + )) + (net (rename FS_s_2 "FS_s[2]") (joined + (portRef S1 (instanceRef FS_cry_0_1)) + (portRef D (instanceRef FS_2)) + )) + (net (rename FS_s_3 "FS_s[3]") (joined + (portRef S0 (instanceRef FS_cry_0_3)) + (portRef D (instanceRef FS_3)) + )) + (net (rename FS_cry_4 "FS_cry[4]") (joined + (portRef COUT (instanceRef FS_cry_0_3)) + (portRef CIN (instanceRef FS_cry_0_5)) + )) + (net (rename FS_s_4 "FS_s[4]") (joined + (portRef S1 (instanceRef FS_cry_0_3)) + (portRef D (instanceRef FS_4)) + )) + (net (rename FS_s_5 "FS_s[5]") (joined + (portRef S0 (instanceRef FS_cry_0_5)) + (portRef D (instanceRef FS_5)) + )) + (net (rename FS_cry_6 "FS_cry[6]") (joined + (portRef COUT (instanceRef FS_cry_0_5)) + (portRef CIN (instanceRef FS_cry_0_7)) + )) + (net (rename FS_s_6 "FS_s[6]") (joined + (portRef S1 (instanceRef FS_cry_0_5)) + (portRef D (instanceRef FS_6)) + )) + (net (rename FS_s_7 "FS_s[7]") (joined + (portRef S0 (instanceRef FS_cry_0_7)) + (portRef D (instanceRef FS_7)) + )) + (net (rename FS_cry_8 "FS_cry[8]") (joined + (portRef COUT (instanceRef FS_cry_0_7)) + (portRef CIN (instanceRef FS_cry_0_9)) + )) + (net (rename FS_s_8 "FS_s[8]") (joined + (portRef S1 (instanceRef FS_cry_0_7)) + (portRef D (instanceRef FS_8)) + )) + (net (rename FS_s_9 "FS_s[9]") (joined + (portRef S0 (instanceRef FS_cry_0_9)) + (portRef D (instanceRef FS_9)) + )) + (net (rename FS_cry_10 "FS_cry[10]") (joined + (portRef COUT (instanceRef FS_cry_0_9)) + (portRef CIN (instanceRef FS_cry_0_11)) + )) + (net (rename FS_s_10 "FS_s[10]") (joined + (portRef S1 (instanceRef FS_cry_0_9)) + (portRef D (instanceRef FS_10)) + )) + (net (rename FS_s_11 "FS_s[11]") (joined + (portRef S0 (instanceRef FS_cry_0_11)) + (portRef D (instanceRef FS_11)) + )) + (net (rename FS_cry_12 "FS_cry[12]") (joined + (portRef COUT (instanceRef FS_cry_0_11)) + (portRef CIN (instanceRef FS_cry_0_13)) + )) + (net (rename FS_s_12 "FS_s[12]") (joined + (portRef S1 (instanceRef FS_cry_0_11)) + (portRef D (instanceRef FS_12)) + )) + (net (rename FS_s_13 "FS_s[13]") (joined + (portRef S0 (instanceRef FS_cry_0_13)) + (portRef D (instanceRef FS_13)) + )) + (net (rename FS_cry_14 "FS_cry[14]") (joined + (portRef COUT (instanceRef FS_cry_0_13)) + (portRef CIN (instanceRef FS_cry_0_15)) + )) + (net (rename FS_s_14 "FS_s[14]") (joined + (portRef S1 (instanceRef FS_cry_0_13)) + (portRef D (instanceRef FS_14)) + )) + (net (rename FS_s_15 "FS_s[15]") (joined + (portRef S0 (instanceRef FS_cry_0_15)) + (portRef D (instanceRef FS_15)) + )) + (net (rename FS_cry_16 "FS_cry[16]") (joined + (portRef COUT (instanceRef FS_cry_0_15)) + (portRef CIN (instanceRef FS_s_0_17)) + )) + (net (rename FS_s_16 "FS_s[16]") (joined + (portRef S1 (instanceRef FS_cry_0_15)) + (portRef D (instanceRef FS_16)) + )) + (net (rename FS_s_17 "FS_s[17]") (joined + (portRef S0 (instanceRef FS_s_0_17)) + (portRef D (instanceRef FS_17)) + )) + (net RA10s_i (joined + (portRef Z (instanceRef RA10_0io_RNO_0)) + (portRef PD (instanceRef RA10_0io)) + )) + (net un1_PHI2r3_0 (joined + (portRef Z (instanceRef un1_PHI2r3_0)) + (portRef D (instanceRef un1_FS_13_i_0)) + (portRef D (instanceRef un1_FS_14_i_0)) + )) + (net Cmdn8MEGEN_4_u_i_0 (joined + (portRef Z (instanceRef Cmdn8MEGEN_4_u_i_0)) + (portRef A (instanceRef Cmdn8MEGEN_RNO)) + )) + (net CmdLEDEN_4_u_i_0 (joined + (portRef Z (instanceRef CmdLEDEN_4_u_i_0)) + (portRef A (instanceRef CmdLEDEN_RNO)) + )) + (net d_m3_0_a2_0 (joined + (portRef Z (instanceRef UFMCLK_0io_RNO_1)) + (portRef D (instanceRef UFMCLK_0io_RNO)) + )) + (net XOR8MEG_3_u_0_a2_0_2 (joined + (portRef Z (instanceRef XOR8MEG_3_u_0_a2_0_2)) + (portRef D (instanceRef XOR8MEG_3_u_0_0)) + )) + (net UFMSDI_ens2_i_o2_0_3 (joined + (portRef Z (instanceRef UFMSDI_ens2_i_o2_0_3)) + (portRef C (instanceRef UFMSDI_ens2_i_o2_0)) + )) + (net Ready_0_sqmuxa_0_a3_2 (joined + (portRef Z (instanceRef Ready_0_sqmuxa_0_a3_2)) + (portRef D (instanceRef Ready_0_sqmuxa_0_a3)) + (portRef B (instanceRef Ready_RNO)) + )) + (net C1WR_7_0_o3_0 (joined + (portRef Z (instanceRef C1WR_7_0_o3_0)) + (portRef C (instanceRef C1WR_7_0_o3_6)) + )) + (net C1WR_7_0_o3_6 (joined + (portRef Z (instanceRef C1WR_7_0_o3_6)) + (portRef C (instanceRef C1WR_7_0_o3)) + )) + (net C1WR_7_0_o3_7 (joined + (portRef Z (instanceRef C1WR_7_0_o3_7)) + (portRef D (instanceRef C1WR_7_0_o3)) + )) + (net nRWE_s_i_tz_0 (joined + (portRef Z (instanceRef nRWE_s_i_tz_0)) + (portRef D (instanceRef nRWE_0io_RNO)) + )) + (net UFMSDI_ens2_i_a2_4_2 (joined + (portRef Z (instanceRef UFMSDI_ens2_i_a2_4_2)) + (portRef D (instanceRef UFMSDI_ens2_i_a0)) + )) + (net nRRAS_5_u_i_0 (joined + (portRef Z (instanceRef nRRAS_5_u_i_0)) + (portRef A (instanceRef nRRAS_5_u_i_0_RNILD5I)) + (portRef D (instanceRef nRRAS_5_u_i)) + )) + (net un1_CmdEnable20_0_o3_0_1 (joined + (portRef Z (instanceRef un1_CmdEnable20_0_o3_0_1)) + (portRef D (instanceRef un1_CmdEnable20_0_o3_0)) + )) + (net CMDWR_2 (joined + (portRef Z (instanceRef CMDWR_2)) + (portRef A (instanceRef CMDWR)) + )) + (net un1_FS_13_i_a2_1 (joined + (portRef Z (instanceRef un1_FS_13_i_a2_1)) + (portRef C (instanceRef un1_FS_13_i_a2)) + )) + (net un1_FS_14_i_a2_0_1 (joined + (portRef Z (instanceRef un1_FS_14_i_a2_0_1)) + (portRef C (instanceRef un1_FS_14_i_a2_0)) + )) + (net un1_CmdEnable20_0_a2_0_0 (joined + (portRef Z (instanceRef un1_CmdEnable20_0_a2_0_0)) + (portRef D (instanceRef CmdEnable_s_RNO)) + )) + (net CmdEnable17_0_a2_0 (joined + (portRef Z (instanceRef CmdEnable17_0_a2_0_2)) + (portRef A (instanceRef CmdEnable17_0_a2)) + )) + (net CmdEnable17_0_a2_1 (joined + (portRef Z (instanceRef CmdEnable17_0_a2_1)) + (portRef B (instanceRef un1_CmdEnable20_0_a2_1)) + (portRef B (instanceRef CmdEnable17_0_a2)) + )) + (net (rename FS_cry_0_S0_0 "FS_cry_0_S0[0]") (joined + (portRef S0 (instanceRef FS_cry_0_0)) + )) + (net (rename FS_s_0_S1_17 "FS_s_0_S1[17]") (joined + (portRef S1 (instanceRef FS_s_0_17)) + )) + (net (rename FS_s_0_COUT_17 "FS_s_0_COUT[17]") (joined + (portRef COUT (instanceRef FS_s_0_17)) + )) + (net RCKEEN_8_u_1_0 (joined + (portRef Z (instanceRef RCKEEN_8_u_1_0)) + (portRef C (instanceRef RCKEEN_8_u)) + )) + (net (rename RowAd_0_3 "RowAd_0[3]") (joined + (portRef Z (instanceRef RowAd_3)) + (portRef D (instanceRef RowA_3)) + )) + (net (rename RowAd_0_0 "RowAd_0[0]") (joined + (portRef Z (instanceRef RowAd_0)) + (portRef D (instanceRef RowA_0)) + )) + (net (rename RowAd_0_1 "RowAd_0[1]") (joined + (portRef Z (instanceRef RowAd_1)) + (portRef D (instanceRef RowA_1)) + )) + (net (rename RowAd_0_2 "RowAd_0[2]") (joined + (portRef Z (instanceRef RowAd_2)) + (portRef D (instanceRef RowA_2)) + )) + (net (rename RowAd_0_7 "RowAd_0[7]") (joined + (portRef Z (instanceRef RowAd_7)) + (portRef D (instanceRef RowA_7)) + )) + (net (rename RowAd_0_4 "RowAd_0[4]") (joined + (portRef Z (instanceRef RowAd_4)) + (portRef D (instanceRef RowA_4)) + )) + (net (rename RowAd_0_5 "RowAd_0[5]") (joined + (portRef Z (instanceRef RowAd_5)) + (portRef D (instanceRef RowA_5)) + )) + (net (rename RowAd_0_6 "RowAd_0[6]") (joined + (portRef Z (instanceRef RowAd_6)) + (portRef D (instanceRef RowA_6)) + )) + (net (rename RBAd_0_1 "RBAd_0[1]") (joined + (portRef Z (instanceRef RBAd_1)) + (portRef D (instanceRef RBA_0io_1)) + )) + (net (rename RowAd_0_8 "RowAd_0[8]") (joined + (portRef Z (instanceRef RowAd_8)) + (portRef D (instanceRef RowA_8)) + )) + (net (rename RowAd_0_9 "RowAd_0[9]") (joined + (portRef Z (instanceRef RowAd_9)) + (portRef D (instanceRef RowA_9)) + )) + (net (rename RBAd_0_0 "RBAd_0[0]") (joined + (portRef Z (instanceRef RBAd_0)) + (portRef D (instanceRef RBA_0io_0)) + )) + (net RA11d_0 (joined + (portRef Z (instanceRef RA11d)) + (portRef D (instanceRef RA11_0io)) + )) + (net Ready_fast (joined + (portRef Q (instanceRef Ready_fast)) + (portRef B (instanceRef RBAd_0)) + (portRef B (instanceRef RowAd_9)) + (portRef B (instanceRef RowAd_8)) + (portRef B (instanceRef RBAd_1)) + (portRef B (instanceRef RowAd_6)) + (portRef B (instanceRef RowAd_5)) + (portRef B (instanceRef RowAd_4)) + (portRef B (instanceRef RowAd_7)) + (portRef B (instanceRef RowAd_2)) + (portRef B (instanceRef RowAd_1)) + (portRef B (instanceRef RowAd_0)) + (portRef B (instanceRef RowAd_3)) + (portRef B (instanceRef RA11d)) + (portRef B (instanceRef Ready_fast_RNO)) + )) + (net N_179_i_1 (joined + (portRef Z (instanceRef nRCAS_0io_RNO_0)) + (portRef C (instanceRef nRCAS_0io_RNO)) + )) + (net nRWE_0io_RNO_0 (joined + (portRef Z (instanceRef nRWE_0io_RNO_0)) + (portRef B (instanceRef nRWE_0io_RNO)) + )) + (net nRWE_0io_RNO_1 (joined + (portRef Z (instanceRef nRWE_0io_RNO_1)) + (portRef C (instanceRef nRWE_0io_RNO)) + )) + (net N_27_i_sn (joined + (portRef Z (instanceRef nRCS_0io_RNO_0)) + (portRef C (instanceRef nRCS_0io_RNO)) + )) + (net (rename XOR8MEG_CN "XOR8MEG.CN") (joined + (portRef Z (instanceRef XOR8MEG_CN)) + (portRef CK (instanceRef ADSubmitted)) + (portRef CK (instanceRef C1Submitted)) + (portRef CK (instanceRef CmdEnable)) + (portRef CK (instanceRef CmdLEDEN)) + (portRef CK (instanceRef CmdSubmitted)) + (portRef CK (instanceRef CmdUFMCLK)) + (portRef CK (instanceRef CmdUFMCS)) + (portRef CK (instanceRef CmdUFMSDI)) + (portRef CK (instanceRef Cmdn8MEGEN)) + (portRef CK (instanceRef XOR8MEG)) + )) + (net VCC (joined + (portRef Z (instanceRef VCC)) + (portRef B0 (instanceRef FS_cry_0_0)) + (portRef SP (instanceRef RA10_0io)) + (portRef SP (instanceRef RA11_0io)) + (portRef SP (instanceRef RBA_0io_1)) + (portRef SP (instanceRef RBA_0io_0)) + (portRef SP (instanceRef nRCAS_0io)) + (portRef SP (instanceRef nRCS_0io)) + (portRef SP (instanceRef nRRAS_0io)) + (portRef SP (instanceRef nRWE_0io)) + (portRef SP (instanceRef Bank_0io_7)) + (portRef SP (instanceRef Bank_0io_6)) + (portRef SP (instanceRef Bank_0io_5)) + (portRef SP (instanceRef Bank_0io_4)) + (portRef SP (instanceRef Bank_0io_3)) + (portRef SP (instanceRef Bank_0io_2)) + (portRef SP (instanceRef Bank_0io_1)) + (portRef SP (instanceRef Bank_0io_0)) + (portRef SP (instanceRef PHI2r_0io)) + (portRef SP (instanceRef WRD_0io_7)) + (portRef SP (instanceRef WRD_0io_6)) + (portRef SP (instanceRef WRD_0io_5)) + (portRef SP (instanceRef WRD_0io_4)) + (portRef SP (instanceRef WRD_0io_3)) + (portRef SP (instanceRef WRD_0io_2)) + (portRef SP (instanceRef WRD_0io_1)) + (portRef SP (instanceRef WRD_0io_0)) + (portRef GSR (instanceRef GSR_INST)) + )) + (net GND (joined + (portRef Z (instanceRef GND)) + (portRef D1 (instanceRef FS_cry_0_0)) + (portRef C1 (instanceRef FS_cry_0_0)) + (portRef B1 (instanceRef FS_cry_0_0)) + (portRef D0 (instanceRef FS_cry_0_0)) + (portRef C0 (instanceRef FS_cry_0_0)) + (portRef A0 (instanceRef FS_cry_0_0)) + (portRef D1 (instanceRef FS_cry_0_1)) + (portRef C1 (instanceRef FS_cry_0_1)) + (portRef B1 (instanceRef FS_cry_0_1)) + (portRef D0 (instanceRef FS_cry_0_1)) + (portRef C0 (instanceRef FS_cry_0_1)) + (portRef B0 (instanceRef FS_cry_0_1)) + (portRef D1 (instanceRef FS_cry_0_3)) + (portRef C1 (instanceRef FS_cry_0_3)) + (portRef B1 (instanceRef FS_cry_0_3)) + (portRef D0 (instanceRef FS_cry_0_3)) + (portRef C0 (instanceRef FS_cry_0_3)) + (portRef B0 (instanceRef FS_cry_0_3)) + (portRef D1 (instanceRef FS_cry_0_5)) + (portRef C1 (instanceRef FS_cry_0_5)) + (portRef B1 (instanceRef FS_cry_0_5)) + (portRef D0 (instanceRef FS_cry_0_5)) + (portRef C0 (instanceRef FS_cry_0_5)) + (portRef B0 (instanceRef FS_cry_0_5)) + (portRef D1 (instanceRef FS_cry_0_7)) + (portRef C1 (instanceRef FS_cry_0_7)) + (portRef B1 (instanceRef FS_cry_0_7)) + (portRef D0 (instanceRef FS_cry_0_7)) + (portRef C0 (instanceRef FS_cry_0_7)) + (portRef B0 (instanceRef FS_cry_0_7)) + (portRef D1 (instanceRef FS_cry_0_9)) + (portRef C1 (instanceRef FS_cry_0_9)) + (portRef B1 (instanceRef FS_cry_0_9)) + (portRef D0 (instanceRef FS_cry_0_9)) + (portRef C0 (instanceRef FS_cry_0_9)) + (portRef B0 (instanceRef FS_cry_0_9)) + (portRef D1 (instanceRef FS_cry_0_11)) + (portRef C1 (instanceRef FS_cry_0_11)) + (portRef B1 (instanceRef FS_cry_0_11)) + (portRef D0 (instanceRef FS_cry_0_11)) + (portRef C0 (instanceRef FS_cry_0_11)) + (portRef B0 (instanceRef FS_cry_0_11)) + (portRef D1 (instanceRef FS_cry_0_13)) + (portRef C1 (instanceRef FS_cry_0_13)) + (portRef B1 (instanceRef FS_cry_0_13)) + (portRef D0 (instanceRef FS_cry_0_13)) + (portRef C0 (instanceRef FS_cry_0_13)) + (portRef B0 (instanceRef FS_cry_0_13)) + (portRef D1 (instanceRef FS_cry_0_15)) + (portRef C1 (instanceRef FS_cry_0_15)) + (portRef B1 (instanceRef FS_cry_0_15)) + (portRef D0 (instanceRef FS_cry_0_15)) + (portRef C0 (instanceRef FS_cry_0_15)) + (portRef B0 (instanceRef FS_cry_0_15)) + (portRef D1 (instanceRef FS_s_0_17)) + (portRef C1 (instanceRef FS_s_0_17)) + (portRef B1 (instanceRef FS_s_0_17)) + (portRef A1 (instanceRef FS_s_0_17)) + (portRef D0 (instanceRef FS_s_0_17)) + (portRef C0 (instanceRef FS_s_0_17)) + (portRef B0 (instanceRef FS_s_0_17)) + (portRef CD (instanceRef RA11_0io)) + (portRef CD (instanceRef RBA_0io_1)) + (portRef CD (instanceRef RBA_0io_0)) + (portRef CD (instanceRef UFMCLK_0io)) + (portRef PD (instanceRef nRCAS_0io)) + (portRef PD (instanceRef nRCS_0io)) + (portRef PD (instanceRef nRRAS_0io)) + (portRef PD (instanceRef nRWE_0io)) + (portRef CD (instanceRef Bank_0io_7)) + (portRef CD (instanceRef Bank_0io_6)) + (portRef CD (instanceRef Bank_0io_5)) + (portRef CD (instanceRef Bank_0io_4)) + (portRef CD (instanceRef Bank_0io_3)) + (portRef CD (instanceRef Bank_0io_2)) + (portRef CD (instanceRef Bank_0io_1)) + (portRef CD (instanceRef Bank_0io_0)) + (portRef CD (instanceRef PHI2r_0io)) + (portRef CD (instanceRef WRD_0io_7)) + (portRef CD (instanceRef WRD_0io_6)) + (portRef CD (instanceRef WRD_0io_5)) + (portRef CD (instanceRef WRD_0io_4)) + (portRef CD (instanceRef WRD_0io_3)) + (portRef CD (instanceRef WRD_0io_2)) + (portRef CD (instanceRef WRD_0io_1)) + (portRef CD (instanceRef WRD_0io_0)) + )) + (net PHI2_c (joined + (portRef O (instanceRef PHI2_pad)) + (portRef SCLK (instanceRef RA11_0io)) + (portRef SCLK (instanceRef Bank_0io_7)) + (portRef SCLK (instanceRef Bank_0io_6)) + (portRef SCLK (instanceRef Bank_0io_5)) + (portRef SCLK (instanceRef Bank_0io_4)) + (portRef SCLK (instanceRef Bank_0io_3)) + (portRef SCLK (instanceRef Bank_0io_2)) + (portRef SCLK (instanceRef Bank_0io_1)) + (portRef SCLK (instanceRef Bank_0io_0)) + (portRef D (instanceRef PHI2r_0io)) + (portRef A (instanceRef XOR8MEG_CN)) + )) + (net PHI2 (joined + (portRef PHI2) + (portRef I (instanceRef PHI2_pad)) + )) + (net (rename MAin_c_0 "MAin_c[0]") (joined + (portRef O (instanceRef MAin_pad_0)) + (portRef A (instanceRef RowAd_0)) + (portRef A (instanceRef un9_RA_i_m3_0)) + (portRef D (instanceRef CmdEnable16_0_a2_0)) + (portRef D (instanceRef un1_CmdEnable20_0_a2_1)) + (portRef B (instanceRef CMDWR)) + (portRef C (instanceRef CmdEnable17_0_a2)) + )) + (net (rename MAin_0 "MAin[0]") (joined + (portRef (member main 9)) + (portRef I (instanceRef MAin_pad_0)) + )) + (net (rename MAin_c_1 "MAin_c[1]") (joined + (portRef O (instanceRef MAin_pad_1)) + (portRef A (instanceRef RowAd_1)) + (portRef A (instanceRef un9_RA_i_m3_1)) + (portRef A (instanceRef CMDWR_2)) + (portRef A (instanceRef un1_CmdEnable20_0_o3_0)) + )) + (net (rename MAin_1 "MAin[1]") (joined + (portRef (member main 8)) + (portRef I (instanceRef MAin_pad_1)) + )) + (net (rename MAin_c_2 "MAin_c[2]") (joined + (portRef O (instanceRef MAin_pad_2)) + (portRef A (instanceRef RowAd_2)) + (portRef A (instanceRef un9_RA_i_m3_2)) + (portRef B (instanceRef un1_CmdEnable20_0_o3_0)) + (portRef C (instanceRef CMDWR)) + )) + (net (rename MAin_2 "MAin[2]") (joined + (portRef (member main 7)) + (portRef I (instanceRef MAin_pad_2)) + )) + (net (rename MAin_c_3 "MAin_c[3]") (joined + (portRef O (instanceRef MAin_pad_3)) + (portRef A (instanceRef RowAd_3)) + (portRef A (instanceRef un9_RA_i_m3_3)) + (portRef B (instanceRef CMDWR_2)) + (portRef A (instanceRef un1_CmdEnable20_0_o3_0_1)) + )) + (net (rename MAin_3 "MAin[3]") (joined + (portRef (member main 6)) + (portRef I (instanceRef MAin_pad_3)) + )) + (net (rename MAin_c_4 "MAin_c[4]") (joined + (portRef O (instanceRef MAin_pad_4)) + (portRef A (instanceRef RowAd_4)) + (portRef A (instanceRef un9_RA_i_m3_4)) + (portRef C (instanceRef CMDWR_2)) + (portRef B (instanceRef un1_CmdEnable20_0_o3_0_1)) + )) + (net (rename MAin_4 "MAin[4]") (joined + (portRef (member main 5)) + (portRef I (instanceRef MAin_pad_4)) + )) + (net (rename MAin_c_5 "MAin_c[5]") (joined + (portRef O (instanceRef MAin_pad_5)) + (portRef A (instanceRef RowAd_5)) + (portRef A (instanceRef C1WR_7_0_o3_0)) + (portRef A (instanceRef un9_RA_i_m3_5)) + )) + (net (rename MAin_5 "MAin[5]") (joined + (portRef (member main 4)) + (portRef I (instanceRef MAin_pad_5)) + )) + (net (rename MAin_c_6 "MAin_c[6]") (joined + (portRef O (instanceRef MAin_pad_6)) + (portRef A (instanceRef RowAd_6)) + (portRef A (instanceRef un9_RA_i_m3_6)) + (portRef D (instanceRef C1WR_7_0_o3_6)) + )) + (net (rename MAin_6 "MAin[6]") (joined + (portRef (member main 3)) + (portRef I (instanceRef MAin_pad_6)) + )) + (net (rename MAin_c_7 "MAin_c[7]") (joined + (portRef O (instanceRef MAin_pad_7)) + (portRef A (instanceRef RowAd_7)) + (portRef B (instanceRef C1WR_7_0_o3_0)) + (portRef A (instanceRef un9_RA_i_m3_7)) + )) + (net (rename MAin_7 "MAin[7]") (joined + (portRef (member main 2)) + (portRef I (instanceRef MAin_pad_7)) + )) + (net (rename MAin_c_8 "MAin_c[8]") (joined + (portRef O (instanceRef MAin_pad_8)) + (portRef A (instanceRef RowAd_8)) + (portRef A (instanceRef un9_RA_8)) + )) + (net (rename MAin_8 "MAin[8]") (joined + (portRef (member main 1)) + (portRef I (instanceRef MAin_pad_8)) + )) + (net (rename MAin_c_9 "MAin_c[9]") (joined + (portRef O (instanceRef MAin_pad_9)) + (portRef A (instanceRef RowAd_9)) + (portRef A (instanceRef RDQML_0)) + (portRef A (instanceRef un9_RA_i_m3_9)) + (portRef A (instanceRef RDQMH_pad_RNO)) + )) + (net (rename MAin_9 "MAin[9]") (joined + (portRef (member main 0)) + (portRef I (instanceRef MAin_pad_9)) + )) + (net (rename CROW_c_0 "CROW_c[0]") (joined + (portRef O (instanceRef CROW_pad_0)) + (portRef A (instanceRef RBAd_0)) + )) + (net (rename CROW_0 "CROW[0]") (joined + (portRef (member crow 1)) + (portRef I (instanceRef CROW_pad_0)) + )) + (net (rename CROW_c_1 "CROW_c[1]") (joined + (portRef O (instanceRef CROW_pad_1)) + (portRef A (instanceRef RBAd_1)) + )) + (net (rename CROW_1 "CROW[1]") (joined + (portRef (member crow 0)) + (portRef I (instanceRef CROW_pad_1)) + )) + (net (rename Din_c_0 "Din_c[0]") (joined + (portRef O (instanceRef Din_pad_0)) + (portRef A (instanceRef XOR8MEG_3_u_0_a2_0_2)) + (portRef C (instanceRef Cmdn8MEGEN_4_u_i_0)) + (portRef A (instanceRef CmdEnable17_0_a2_0)) + (portRef D (instanceRef CmdUFMSDI)) + (portRef D (instanceRef Bank_0io_0)) + (portRef D (instanceRef WRD_0io_0)) + )) + (net (rename Din_0 "Din[0]") (joined + (portRef (member din 7)) + (portRef I (instanceRef Din_pad_0)) + )) + (net (rename Din_c_1 "Din_c[1]") (joined + (portRef O (instanceRef Din_pad_1)) + (portRef C (instanceRef CmdLEDEN_4_u_i_0)) + (portRef A (instanceRef XOR8MEG_3_u_0_0)) + (portRef B (instanceRef CmdEnable17_0_a2_0)) + (portRef D (instanceRef CmdUFMCLK)) + (portRef D (instanceRef Bank_0io_1)) + (portRef D (instanceRef WRD_0io_1)) + )) + (net (rename Din_1 "Din[1]") (joined + (portRef (member din 6)) + (portRef I (instanceRef Din_pad_1)) + )) + (net (rename Din_c_2 "Din_c[2]") (joined + (portRef O (instanceRef Din_pad_2)) + (portRef A (instanceRef CmdEnable17_0_a2_1)) + (portRef A (instanceRef CmdEnable16_0_a2_0)) + (portRef B (instanceRef XOR8MEG_3_u_0_a2_0_2)) + (portRef D (instanceRef CmdUFMCS)) + (portRef D (instanceRef Bank_0io_2)) + (portRef D (instanceRef WRD_0io_2)) + )) + (net (rename Din_2 "Din[2]") (joined + (portRef (member din 5)) + (portRef I (instanceRef Din_pad_2)) + )) + (net (rename Din_c_3 "Din_c[3]") (joined + (portRef O (instanceRef Din_pad_3)) + (portRef D (instanceRef CmdSubmitted_1_sqmuxa_0_a2)) + (portRef D (instanceRef CmdUFMCLK_1_sqmuxa_0_a2)) + (portRef B (instanceRef CmdEnable17_0_a2_1)) + (portRef B (instanceRef CmdEnable16_0_a2_0)) + (portRef A (instanceRef Cmdn8MEGEN_4_u_i_o2)) + (portRef C (instanceRef XOR8MEG_3_u_0_a2_0_2)) + (portRef A (instanceRef Cmdn8MEGEN_4_u_i_a2_2)) + (portRef D (instanceRef Bank_0io_3)) + (portRef D (instanceRef WRD_0io_3)) + )) + (net (rename Din_3 "Din[3]") (joined + (portRef (member din 4)) + (portRef I (instanceRef Din_pad_3)) + )) + (net (rename Din_c_4 "Din_c[4]") (joined + (portRef O (instanceRef Din_pad_4)) + (portRef D (instanceRef CmdEnable16_0_a2)) + (portRef D (instanceRef CmdLEDEN_4_u_i_a2_0_0)) + (portRef A (instanceRef CmdEnable17_0_a2_0_2)) + (portRef A (instanceRef Cmdn8MEGEN_4_u_i_o2_0)) + (portRef A (instanceRef XOR8MEG_3_u_0_o3_0)) + (portRef A (instanceRef CmdEnable16_0_a2_0_2)) + (portRef A (instanceRef un1_CmdEnable20_0_a2_0_0)) + (portRef D (instanceRef Bank_0io_4)) + (portRef D (instanceRef WRD_0io_4)) + )) + (net (rename Din_4 "Din[4]") (joined + (portRef (member din 3)) + (portRef I (instanceRef Din_pad_4)) + )) + (net (rename Din_c_5 "Din_c[5]") (joined + (portRef O (instanceRef Din_pad_5)) + (portRef C (instanceRef CmdEnable16_0_a2)) + (portRef C (instanceRef CmdSubmitted_1_sqmuxa_0_a2)) + (portRef C (instanceRef CmdUFMCLK_1_sqmuxa_0_a2)) + (portRef A (instanceRef CmdLEDEN_4_u_i_a2_0_0)) + (portRef C (instanceRef CmdEnable17_0_a2_1)) + (portRef B (instanceRef XOR8MEG_3_u_0_o3_0)) + (portRef B (instanceRef CmdEnable16_0_a2_0_2)) + (portRef B (instanceRef Cmdn8MEGEN_4_u_i_o2)) + (portRef B (instanceRef Cmdn8MEGEN_4_u_i_a2_2)) + (portRef B (instanceRef un1_CmdEnable20_0_a2_0_0)) + (portRef D (instanceRef Bank_0io_5)) + (portRef D (instanceRef WRD_0io_5)) + )) + (net (rename Din_5 "Din[5]") (joined + (portRef (member din 2)) + (portRef I (instanceRef Din_pad_5)) + )) + (net (rename Din_c_6 "Din_c[6]") (joined + (portRef O (instanceRef Din_pad_6)) + (portRef C (instanceRef CmdLEDEN_4_u_i_a2_0_0)) + (portRef A (instanceRef RA11d)) + (portRef B (instanceRef CmdEnable17_0_a2_0_2)) + (portRef C (instanceRef CmdEnable16_0_a2_0)) + (portRef B (instanceRef Cmdn8MEGEN_4_u_i_o2_0)) + (portRef C (instanceRef XOR8MEG_3_u_0_o3_0)) + (portRef C (instanceRef un1_CmdEnable20_0_a2_1)) + (portRef D (instanceRef Bank_0io_6)) + (portRef D (instanceRef WRD_0io_6)) + )) + (net (rename Din_6 "Din[6]") (joined + (portRef (member din 1)) + (portRef I (instanceRef Din_pad_6)) + )) + (net (rename Din_c_7 "Din_c[7]") (joined + (portRef O (instanceRef Din_pad_7)) + (portRef B (instanceRef CmdLEDEN_4_u_i_a2_0_0)) + (portRef C (instanceRef Cmdn8MEGEN_4_u_i_o2_0)) + (portRef D (instanceRef XOR8MEG_3_u_0_o3_0)) + (portRef C (instanceRef CmdEnable17_0_a2_0)) + (portRef D (instanceRef Bank_0io_7)) + (portRef D (instanceRef WRD_0io_7)) + )) + (net (rename Din_7 "Din[7]") (joined + (portRef (member din 0)) + (portRef I (instanceRef Din_pad_7)) + )) + (net (rename Dout_0 "Dout[0]") (joined + (portRef O (instanceRef Dout_pad_0)) + (portRef (member dout 7)) + )) + (net (rename Dout_1 "Dout[1]") (joined + (portRef O (instanceRef Dout_pad_1)) + (portRef (member dout 6)) + )) + (net (rename Dout_2 "Dout[2]") (joined + (portRef O (instanceRef Dout_pad_2)) + (portRef (member dout 5)) + )) + (net (rename Dout_3 "Dout[3]") (joined + (portRef O (instanceRef Dout_pad_3)) + (portRef (member dout 4)) + )) + (net (rename Dout_4 "Dout[4]") (joined + (portRef O (instanceRef Dout_pad_4)) + (portRef (member dout 3)) + )) + (net (rename Dout_5 "Dout[5]") (joined + (portRef O (instanceRef Dout_pad_5)) + (portRef (member dout 2)) + )) + (net (rename Dout_6 "Dout[6]") (joined + (portRef O (instanceRef Dout_pad_6)) + (portRef (member dout 1)) + )) + (net (rename Dout_7 "Dout[7]") (joined + (portRef O (instanceRef Dout_pad_7)) + (portRef (member dout 0)) + )) + (net nCCAS_c (joined + (portRef O (instanceRef nCCAS_pad)) + (portRef A (instanceRef nCCAS_pad_RNI01SJ)) + (portRef A (instanceRef nCCAS_pad_RNISUR8)) + )) + (net nCCAS (joined + (portRef nCCAS) + (portRef I (instanceRef nCCAS_pad)) + )) + (net nCRAS_c (joined + (portRef O (instanceRef nCRAS_pad)) + (portRef C (instanceRef LED_pad_RNO)) + (portRef A (instanceRef nCRAS_pad_RNIBPVB)) + (portRef A (instanceRef RASr_RNO)) + )) + (net nCRAS (joined + (portRef nCRAS) + (portRef I (instanceRef nCRAS_pad)) + )) + (net nFWE_c (joined + (portRef O (instanceRef nFWE_pad)) + (portRef D (instanceRef CMDWR_2)) + (portRef C (instanceRef un1_CmdEnable20_0_o3_0_1)) + (portRef B (instanceRef nCCAS_pad_RNI01SJ)) + (portRef A (instanceRef FWEr_RNO)) + )) + (net nFWE (joined + (portRef nFWE) + (portRef I (instanceRef nFWE_pad)) + )) + (net LED_c (joined + (portRef Z (instanceRef LED_pad_RNO)) + (portRef I (instanceRef LED_pad)) + )) + (net LED (joined + (portRef O (instanceRef LED_pad)) + (portRef LED) + )) + (net (rename RBA_c_0 "RBA_c[0]") (joined + (portRef Q (instanceRef RBA_0io_0)) + (portRef I (instanceRef RBA_pad_0)) + )) + (net (rename RBA_0 "RBA[0]") (joined + (portRef O (instanceRef RBA_pad_0)) + (portRef (member rba 1)) + )) + (net (rename RBA_c_1 "RBA_c[1]") (joined + (portRef Q (instanceRef RBA_0io_1)) + (portRef I (instanceRef RBA_pad_1)) + )) + (net (rename RBA_1 "RBA[1]") (joined + (portRef O (instanceRef RBA_pad_1)) + (portRef (member rba 0)) + )) + (net (rename RA_c_0 "RA_c[0]") (joined + (portRef Z (instanceRef un9_RA_i_m3_0)) + (portRef I (instanceRef RA_pad_0)) + )) + (net (rename RA_0 "RA[0]") (joined + (portRef O (instanceRef RA_pad_0)) + (portRef (member ra 11)) + )) + (net (rename RA_c_1 "RA_c[1]") (joined + (portRef Z (instanceRef un9_RA_i_m3_1)) + (portRef I (instanceRef RA_pad_1)) + )) + (net (rename RA_1 "RA[1]") (joined + (portRef O (instanceRef RA_pad_1)) + (portRef (member ra 10)) + )) + (net (rename RA_c_2 "RA_c[2]") (joined + (portRef Z (instanceRef un9_RA_i_m3_2)) + (portRef I (instanceRef RA_pad_2)) + )) + (net (rename RA_2 "RA[2]") (joined + (portRef O (instanceRef RA_pad_2)) + (portRef (member ra 9)) + )) + (net (rename RA_c_3 "RA_c[3]") (joined + (portRef Z (instanceRef un9_RA_i_m3_3)) + (portRef I (instanceRef RA_pad_3)) + )) + (net (rename RA_3 "RA[3]") (joined + (portRef O (instanceRef RA_pad_3)) + (portRef (member ra 8)) + )) + (net (rename RA_c_4 "RA_c[4]") (joined + (portRef Z (instanceRef un9_RA_i_m3_4)) + (portRef I (instanceRef RA_pad_4)) + )) + (net (rename RA_4 "RA[4]") (joined + (portRef O (instanceRef RA_pad_4)) + (portRef (member ra 7)) + )) + (net (rename RA_c_5 "RA_c[5]") (joined + (portRef Z (instanceRef un9_RA_i_m3_5)) + (portRef I (instanceRef RA_pad_5)) + )) + (net (rename RA_5 "RA[5]") (joined + (portRef O (instanceRef RA_pad_5)) + (portRef (member ra 6)) + )) + (net (rename RA_c_6 "RA_c[6]") (joined + (portRef Z (instanceRef un9_RA_i_m3_6)) + (portRef I (instanceRef RA_pad_6)) + )) + (net (rename RA_6 "RA[6]") (joined + (portRef O (instanceRef RA_pad_6)) + (portRef (member ra 5)) + )) + (net (rename RA_c_7 "RA_c[7]") (joined + (portRef Z (instanceRef un9_RA_i_m3_7)) + (portRef I (instanceRef RA_pad_7)) + )) + (net (rename RA_7 "RA[7]") (joined + (portRef O (instanceRef RA_pad_7)) + (portRef (member ra 4)) + )) + (net (rename RA_c_8 "RA_c[8]") (joined + (portRef Z (instanceRef un9_RA_8)) + (portRef I (instanceRef RA_pad_8)) + )) + (net (rename RA_8 "RA[8]") (joined + (portRef O (instanceRef RA_pad_8)) + (portRef (member ra 3)) + )) + (net (rename RA_c_9 "RA_c[9]") (joined + (portRef Z (instanceRef un9_RA_i_m3_9)) + (portRef I (instanceRef RA_pad_9)) + )) + (net (rename RA_9 "RA[9]") (joined + (portRef O (instanceRef RA_pad_9)) + (portRef (member ra 2)) + )) + (net (rename RA_c_10 "RA_c[10]") (joined + (portRef Q (instanceRef RA10_0io)) + (portRef I (instanceRef RA_pad_10)) + )) + (net (rename RA_10 "RA[10]") (joined + (portRef O (instanceRef RA_pad_10)) + (portRef (member ra 1)) + )) + (net (rename RA_c_11 "RA_c[11]") (joined + (portRef Q (instanceRef RA11_0io)) + (portRef I (instanceRef RA_pad_11)) + )) + (net (rename RA_11 "RA[11]") (joined + (portRef O (instanceRef RA_pad_11)) + (portRef (member ra 0)) + )) + (net (rename RD_in_0 "RD_in[0]") (joined + (portRef O (instanceRef RD_pad_0)) + (portRef I (instanceRef Dout_pad_0)) + )) + (net (rename RD_0 "RD[0]") (joined + (portRef B (instanceRef RD_pad_0)) + (portRef (member rd 7)) + )) + (net (rename RD_in_1 "RD_in[1]") (joined + (portRef O (instanceRef RD_pad_1)) + (portRef I (instanceRef Dout_pad_1)) + )) + (net (rename RD_1 "RD[1]") (joined + (portRef B (instanceRef RD_pad_1)) + (portRef (member rd 6)) + )) + (net (rename RD_in_2 "RD_in[2]") (joined + (portRef O (instanceRef RD_pad_2)) + (portRef I (instanceRef Dout_pad_2)) + )) + (net (rename RD_2 "RD[2]") (joined + (portRef B (instanceRef RD_pad_2)) + (portRef (member rd 5)) + )) + (net (rename RD_in_3 "RD_in[3]") (joined + (portRef O (instanceRef RD_pad_3)) + (portRef I (instanceRef Dout_pad_3)) + )) + (net (rename RD_3 "RD[3]") (joined + (portRef B (instanceRef RD_pad_3)) + (portRef (member rd 4)) + )) + (net (rename RD_in_4 "RD_in[4]") (joined + (portRef O (instanceRef RD_pad_4)) + (portRef I (instanceRef Dout_pad_4)) + )) + (net (rename RD_4 "RD[4]") (joined + (portRef B (instanceRef RD_pad_4)) + (portRef (member rd 3)) + )) + (net (rename RD_in_5 "RD_in[5]") (joined + (portRef O (instanceRef RD_pad_5)) + (portRef I (instanceRef Dout_pad_5)) + )) + (net (rename RD_5 "RD[5]") (joined + (portRef B (instanceRef RD_pad_5)) + (portRef (member rd 2)) + )) + (net (rename RD_in_6 "RD_in[6]") (joined + (portRef O (instanceRef RD_pad_6)) + (portRef I (instanceRef Dout_pad_6)) + )) + (net (rename RD_6 "RD[6]") (joined + (portRef B (instanceRef RD_pad_6)) + (portRef (member rd 1)) + )) + (net (rename RD_in_7 "RD_in[7]") (joined + (portRef O (instanceRef RD_pad_7)) + (portRef I (instanceRef Dout_pad_7)) + )) + (net (rename RD_7 "RD[7]") (joined + (portRef B (instanceRef RD_pad_7)) + (portRef (member rd 0)) + )) + (net nRCS_c (joined + (portRef Q (instanceRef nRCS_0io)) + (portRef I (instanceRef nRCS_pad)) + )) + (net nRCS (joined + (portRef O (instanceRef nRCS_pad)) + (portRef nRCS) + )) + (net RCLK_c (joined + (portRef O (instanceRef RCLK_pad)) + (portRef CK (instanceRef CASr)) + (portRef CK (instanceRef CASr2)) + (portRef CK (instanceRef CASr3)) + (portRef CK (instanceRef FS_17)) + (portRef CK (instanceRef FS_16)) + (portRef CK (instanceRef FS_15)) + (portRef CK (instanceRef FS_14)) + (portRef CK (instanceRef FS_13)) + (portRef CK (instanceRef FS_12)) + (portRef CK (instanceRef FS_11)) + (portRef CK (instanceRef FS_10)) + (portRef CK (instanceRef FS_9)) + (portRef CK (instanceRef FS_8)) + (portRef CK (instanceRef FS_7)) + (portRef CK (instanceRef FS_6)) + (portRef CK (instanceRef FS_5)) + (portRef CK (instanceRef FS_4)) + (portRef CK (instanceRef FS_3)) + (portRef CK (instanceRef FS_2)) + (portRef CK (instanceRef FS_1)) + (portRef CK (instanceRef FS_0)) + (portRef CK (instanceRef IS_3)) + (portRef CK (instanceRef IS_2)) + (portRef CK (instanceRef IS_1)) + (portRef CK (instanceRef IS_0)) + (portRef CK (instanceRef InitReady)) + (portRef CK (instanceRef LEDEN)) + (portRef CK (instanceRef PHI2r2)) + (portRef CK (instanceRef PHI2r3)) + (portRef CK (instanceRef RASr)) + (portRef CK (instanceRef RASr2)) + (portRef CK (instanceRef RASr3)) + (portRef CK (instanceRef RCKE)) + (portRef CK (instanceRef RCKEEN)) + (portRef CK (instanceRef Ready)) + (portRef CK (instanceRef Ready_fast)) + (portRef CK (instanceRef S_1)) + (portRef CK (instanceRef S_0)) + (portRef CK (instanceRef UFMSDI)) + (portRef CK (instanceRef n8MEGEN)) + (portRef CK (instanceRef nRowColSel)) + (portRef CK (instanceRef nUFMCS)) + (portRef SCLK (instanceRef RA10_0io)) + (portRef SCLK (instanceRef UFMCLK_0io)) + (portRef SCLK (instanceRef nRCAS_0io)) + (portRef SCLK (instanceRef nRCS_0io)) + (portRef SCLK (instanceRef nRRAS_0io)) + (portRef SCLK (instanceRef nRWE_0io)) + (portRef SCLK (instanceRef PHI2r_0io)) + )) + (net RCLK (joined + (portRef RCLK) + (portRef I (instanceRef RCLK_pad)) + )) + (net RCKE_c (joined + (portRef Q (instanceRef RCKE)) + (portRef C (instanceRef nRRAS_5_u_i_0)) + (portRef B (instanceRef nRWE_s_i_tz_0)) + (portRef I (instanceRef RCKE_pad)) + )) + (net RCKE (joined + (portRef O (instanceRef RCKE_pad)) + (portRef RCKE) + )) + (net nRWE_c (joined + (portRef Q (instanceRef nRWE_0io)) + (portRef I (instanceRef nRWE_pad)) + )) + (net nRWE (joined + (portRef O (instanceRef nRWE_pad)) + (portRef nRWE) + )) + (net nRRAS_c (joined + (portRef Q (instanceRef nRRAS_0io)) + (portRef I (instanceRef nRRAS_pad)) + )) + (net nRRAS (joined + (portRef O (instanceRef nRRAS_pad)) + (portRef nRRAS) + )) + (net nRCAS_c (joined + (portRef Q (instanceRef nRCAS_0io)) + (portRef I (instanceRef nRCAS_pad)) + )) + (net nRCAS (joined + (portRef O (instanceRef nRCAS_pad)) + (portRef nRCAS) + )) + (net RDQMH_c (joined + (portRef Z (instanceRef RDQMH_pad_RNO)) + (portRef I (instanceRef RDQMH_pad)) + )) + (net RDQMH (joined + (portRef O (instanceRef RDQMH_pad)) + (portRef RDQMH) + )) + (net RDQML_c (joined + (portRef Z (instanceRef RDQML_0)) + (portRef I (instanceRef RDQML_pad)) + )) + (net RDQML (joined + (portRef O (instanceRef RDQML_pad)) + (portRef RDQML) + )) + (net nUFMCS_c (joined + (portRef Q (instanceRef nUFMCS)) + (portRef D (instanceRef nUFMCS_s_0_N_5_i)) + (portRef I (instanceRef nUFMCS_pad)) + )) + (net nUFMCS (joined + (portRef O (instanceRef nUFMCS_pad)) + (portRef nUFMCS) + )) + (net UFMCLK_c (joined + (portRef Q (instanceRef UFMCLK_0io)) + (portRef I (instanceRef UFMCLK_pad)) + )) + (net UFMCLK (joined + (portRef O (instanceRef UFMCLK_pad)) + (portRef UFMCLK) + )) + (net UFMSDI_c (joined + (portRef Q (instanceRef UFMSDI)) + (portRef I (instanceRef UFMSDI_pad)) + (portRef A (instanceRef UFMSDI_RNO_1)) + )) + (net UFMSDI (joined + (portRef O (instanceRef UFMSDI_pad)) + (portRef UFMSDI) + )) + (net UFMSDO_c (joined + (portRef O (instanceRef UFMSDO_pad)) + (portRef C (instanceRef n8MEGEN_5_i_m2)) + )) + (net UFMSDO (joined + (portRef UFMSDO) + (portRef I (instanceRef UFMSDO_pad)) + )) + (net N_415_0 (joined + (portRef Z (instanceRef CmdSubmitted_RNO)) + (portRef D (instanceRef CmdSubmitted)) + )) + (net N_416_0 (joined + (portRef Z (instanceRef InitReady_RNO)) + (portRef D (instanceRef InitReady)) + )) + (net N_417_0 (joined + (portRef Z (instanceRef Ready_RNO)) + (portRef D (instanceRef Ready)) + )) + (net N_418_0 (joined + (portRef Z (instanceRef Ready_fast_RNO)) + (portRef D (instanceRef Ready_fast)) + )) + (net nFWE_c_i (joined + (portRef Z (instanceRef FWEr_RNO)) + (portRef D (instanceRef FWEr)) + )) + (net nCRAS_c_i_0 (joined + (portRef Z (instanceRef RASr_RNO)) + (portRef D (instanceRef RASr)) + )) + (net nCCAS_c_i (joined + (portRef Z (instanceRef nCCAS_pad_RNISUR8)) + (portRef D (instanceRef CASr)) + (portRef D (instanceRef CBR)) + (portRef SCLK (instanceRef WRD_0io_7)) + (portRef SCLK (instanceRef WRD_0io_6)) + (portRef SCLK (instanceRef WRD_0io_5)) + (portRef SCLK (instanceRef WRD_0io_4)) + (portRef SCLK (instanceRef WRD_0io_3)) + (portRef SCLK (instanceRef WRD_0io_2)) + (portRef SCLK (instanceRef WRD_0io_1)) + (portRef SCLK (instanceRef WRD_0io_0)) + )) + (net (rename IS_i_0 "IS_i[0]") (joined + (portRef Z (instanceRef RA10_0io_RNO)) + (portRef D (instanceRef RA10_0io)) + )) + (net RASr2_i (joined + (portRef Z (instanceRef RASr2_RNIAFR1)) + (portRef CD (instanceRef S_1)) + (portRef CD (instanceRef S_0)) + )) + (net UFMSDI_RNO_1 (joined + (portRef Z (instanceRef UFMSDI_RNO_1)) + (portRef BLUT (instanceRef UFMSDI_RNO)) + )) + (net UFMSDI_RNO_0 (joined + (portRef Z (instanceRef UFMSDI_RNO_0)) + (portRef ALUT (instanceRef UFMSDI_RNO)) + )) + (net N_1 (joined + (portRef CIN (instanceRef FS_cry_0_0)) + )) + ) + (property orig_inst_of (string "RAM2GS")) + ) + ) + ) + (design RAM2GS (cellRef RAM2GS (libraryRef work)) + (property PART (string "lcmxo2_640hc-4") )) +) diff --git a/CPLD/LCMXO2-640HC/impl1/impl1.fse b/CPLD/LCMXO2-640HC/impl1/impl1.fse new file mode 100644 index 0000000..e69de29 diff --git a/CPLD/LCMXO2-640HC/impl1/impl1.htm b/CPLD/LCMXO2-640HC/impl1/impl1.htm new file mode 100644 index 0000000..5cabe18 --- /dev/null +++ b/CPLD/LCMXO2-640HC/impl1/impl1.htm @@ -0,0 +1,9 @@ + + + syntmp/impl1_srr.htm log file + + + + + + diff --git a/CPLD/LCMXO2-640HC/impl1/impl1.srd b/CPLD/LCMXO2-640HC/impl1/impl1.srd new file mode 100644 index 0000000000000000000000000000000000000000..956725b61b6b0017387611cf6c330269499b8b28 GIT binary patch literal 22971 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�bT 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 VP~ZXp009600|0=AgCwkw0RRJg@Du<5 literal 0 HcmV?d00001 diff --git a/CPLD/LCMXO2-640HC/impl1/impl1.srm b/CPLD/LCMXO2-640HC/impl1/impl1.srm new file mode 100644 index 0000000000000000000000000000000000000000..b4d59f58e0b809d3f202568b41c6b8a57d9107cf GIT binary patch literal 30371 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 z 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 S00030{{sN(^epAFAp!t-MWMw2 literal 0 HcmV?d00001 diff --git a/CPLD/LCMXO2-640HC/impl1/impl1.srr b/CPLD/LCMXO2-640HC/impl1/impl1.srr new file mode 100644 index 0000000..7df6e22 --- /dev/null +++ b/CPLD/LCMXO2-640HC/impl1/impl1.srr @@ -0,0 +1,1158 @@ +#Build: Synplify Pro (R) R-2021.03L-SP1, Build 093R, Aug 10 2021 +#install: C:\lscc\diamond\3.12\synpbase +#OS: Windows 8 6.2 +#Hostname: ZANEPC + +# Tue Aug 15 22:34:17 2023 + +#Implementation: impl1 + + +Copyright (C) 1994-2021 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. +Tool: Synplify Pro (R) +Build: R-2021.03L-SP1 +Install: C:\lscc\diamond\3.12\synpbase +OS: Windows 6.2 + +Hostname: ZANEPC + +Implementation : impl1 +Synopsys HDL Compiler, Version comp202103synp2, Build 093R, Built Aug 10 2021 09:15:36, @ + +@N|Running in 64-bit mode +###########################################################[ + +Copyright (C) 1994-2021 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. +Tool: Synplify Pro (R) +Build: R-2021.03L-SP1 +Install: C:\lscc\diamond\3.12\synpbase +OS: Windows 6.2 + +Hostname: ZANEPC + +Implementation : impl1 +Synopsys Verilog Compiler, Version comp202103synp2, Build 093R, Built Aug 10 2021 09:15:36, @ + +@N|Running in 64-bit mode +@N: CG1349 : | Running Verilog Compiler in System Verilog mode + +@N: CG1350 : | Running Verilog Compiler in Multiple File Compilation Unit mode + +@I::"C:\lscc\diamond\3.12\synpbase\lib\lucent\machxo2.v" (library work) +@I::"C:\lscc\diamond\3.12\synpbase\lib\lucent\pmi_def.v" (library work) +@I::"C:\lscc\diamond\3.12\synpbase\lib\vlog\hypermods.v" (library __hyper__lib__) +@I::"C:\lscc\diamond\3.12\synpbase\lib\vlog\umr_capim.v" (library snps_haps) +@I::"C:\lscc\diamond\3.12\synpbase\lib\vlog\scemi_objects.v" (library snps_haps) +@I::"C:\lscc\diamond\3.12\synpbase\lib\vlog\scemi_pipes.svh" (library snps_haps) +@I::"D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\RAM2GS-SPI.v" (library work) +Verilog syntax check successful! +Options changed - recompiling +Selecting top level module RAM2GS +@N: CG364 :"D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\RAM2GS-SPI.v":1:7:1:12|Synthesizing module RAM2GS in library work. +Running optimization stage 1 on RAM2GS ....... +Finished optimization stage 1 on RAM2GS (CPU Time 0h:00m:00s, Memory Used current: 93MB peak: 93MB) +Running optimization stage 2 on RAM2GS ....... +Finished optimization stage 2 on RAM2GS (CPU Time 0h:00m:00s, Memory Used current: 93MB peak: 94MB) + +For a summary of runtime and memory usage per design unit, please see file: +========================================================== +@L: D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\LCMXO2-640HC\impl1\synwork\layer0.rt.csv + + +At c_ver Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 93MB peak: 94MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Tue Aug 15 22:34:18 2023 + +###########################################################] +###########################################################[ + +Copyright (C) 1994-2021 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. +Tool: Synplify Pro (R) +Build: R-2021.03L-SP1 +Install: C:\lscc\diamond\3.12\synpbase +OS: Windows 6.2 + +Hostname: ZANEPC + +Implementation : impl1 +Synopsys Synopsys Netlist Linker, Version comp202103synp2, Build 093R, Built Aug 10 2021 09:15:36, @ + +@N|Running in 64-bit mode +@N: NF107 :"d:\onedrive\documents\github\ram2gs\cpld\ram2gs-spi.v":1:7:1:12|Selected library: work cell: RAM2GS view verilog as top level +@N: NF107 :"d:\onedrive\documents\github\ram2gs\cpld\ram2gs-spi.v":1:7:1:12|Selected library: work cell: RAM2GS view verilog as top level + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 90MB peak: 91MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Tue Aug 15 22:34:18 2023 + +###########################################################] + +For a summary of runtime and memory usage for all design units, please see file: +========================================================== +@L: D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\LCMXO2-640HC\impl1\synwork\impl1_comp.rt.csv + +@END + +At c_hdl Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 23MB peak: 23MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Tue Aug 15 22:34:18 2023 + +###########################################################] +###########################################################[ + +Copyright (C) 1994-2021 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. +Tool: Synplify Pro (R) +Build: R-2021.03L-SP1 +Install: C:\lscc\diamond\3.12\synpbase +OS: Windows 6.2 + +Hostname: ZANEPC + +Implementation : impl1 +Synopsys Synopsys Netlist Linker, Version comp202103synp2, Build 093R, Built Aug 10 2021 09:15:36, @ + +@N|Running in 64-bit mode +@N: NF107 :"d:\onedrive\documents\github\ram2gs\cpld\ram2gs-spi.v":1:7:1:12|Selected library: work cell: RAM2GS view verilog as top level +@N: NF107 :"d:\onedrive\documents\github\ram2gs\cpld\ram2gs-spi.v":1:7:1:12|Selected library: work cell: RAM2GS view verilog as top level + +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 90MB peak: 91MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime + +Process completed successfully. +# Tue Aug 15 22:34:19 2023 + +###########################################################] +Premap Report + +# Tue Aug 15 22:34:20 2023 + + +Copyright (C) 1994-2021 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. +Tool: Synplify Pro (R) +Build: R-2021.03L-SP1 +Install: C:\lscc\diamond\3.12\synpbase +OS: Windows 6.2 + +Hostname: ZANEPC + +Implementation : impl1 +Synopsys Lattice Technology Pre-mapping, Version map202103lat, Build 070R, Built Oct 6 2021 11:12:38, @ + + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 118MB peak: 118MB) + + +Done reading skeleton netlist (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 122MB peak: 130MB) + +Reading constraint file: D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\RAM2GS.sdc +@L: D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\LCMXO2-640HC\impl1\impl1_scck.rpt +See clock summary report "D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\LCMXO2-640HC\impl1\impl1_scck.rpt" +@N: MF916 |Option synthesis_strategy=base is enabled. +@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: 127MB peak: 130MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 127MB peak: 130MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 138MB peak: 138MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 139MB peak: 141MB) + +@N: FX493 |Applying initial value "0" on instance InitReady. +@W: FX474 |User-specified initial value defined for some sequential elements which can prevent optimum synthesis results from being achieved. +@N: FX493 |Applying initial value "0" on instance Ready. +@N: FX493 |Applying initial value "0" on instance RCKE. +@N: FX493 |Applying initial value "1" on instance nRCAS. +@N: FX493 |Applying initial value "0" on instance CmdLEDEN. +@N: FX493 |Applying initial value "0" on instance Cmdn8MEGEN. +@N: FX493 |Applying initial value "1" on instance nRCS. +@N: FX493 |Applying initial value "0" on instance LEDEN. +@N: FX493 |Applying initial value "0" on instance n8MEGEN. +@N: FX493 |Applying initial value "1" on instance nRRAS. +@N: FX493 |Applying initial value "0" on instance CmdUFMCLK. +@N: FX493 |Applying initial value "0" on instance CmdUFMCS. +@N: FX493 |Applying initial value "0" on instance CmdUFMSDI. +@N: FX493 |Applying initial value "0" on instance C1Submitted. +@N: FX493 |Applying initial value "0" on instance CmdSubmitted. +@N: FX493 |Applying initial value "0" on instance ADSubmitted. +@N: FX493 |Applying initial value "0" on instance XOR8MEG. +@N: FX493 |Applying initial value "1" on instance nUFMCS. +@N: FX493 |Applying initial value "0" on instance UFMSDI. +@N: FX493 |Applying initial value "0" on instance UFMCLK. +@N: FX493 |Applying initial value "0" on instance CmdEnable. +@N: FX493 |Applying initial value "1" on instance nRWE. + + +Starting clock optimization phase (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 171MB peak: 171MB) + + +Finished clock optimization phase (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 171MB peak: 171MB) + + +Starting clock optimization report phase (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 171MB peak: 171MB) + + +Finished clock optimization report phase (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 171MB peak: 171MB) + +@N: FX1184 |Applying syn_allowed_resources blockrams=2 on top level netlist RAM2GS + +Finished netlist restructuring (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:00s; Memory used current: 171MB peak: 171MB) + + + +Clock Summary +****************** + + Start Requested Requested Clock Clock Clock +Level Clock Frequency Period Type Group Load +--------------------------------------------------------------------------------------- +0 - RCLK 62.5 MHz 16.000 declared default_clkgroup 48 + +0 - PHI2 2.9 MHz 350.000 declared default_clkgroup 19 + +0 - nCRAS 2.9 MHz 350.000 declared default_clkgroup 14 + +0 - nCCAS 2.9 MHz 350.000 declared default_clkgroup 8 +======================================================================================= + + + +Clock Load Summary +*********************** + + Clock Source Clock Pin Non-clock Pin Non-clock Pin +Clock Load Pin Seq Example Seq Example Comb Example +---------------------------------------------------------------------------------------- +RCLK 48 RCLK(port) CASr2.C - - + +PHI2 19 PHI2(port) Bank[7:0].C PHI2r.D[0] un1_PHI2.I[0](inv) + +nCRAS 14 nCRAS(port) CBR.C RASr.D[0] RASr_2.I[0](inv) + +nCCAS 8 nCCAS(port) WRD[7:0].C CASr.D[0] CASr_2.I[0](inv) +======================================================================================== + +ICG Latch Removal Summary: +Number of ICG latches removed: 0 +Number of ICG latches not removed: 0 +For details review file gcc_ICG_report.rpt + + +@S |Clock Optimization Summary + + + +#### START OF PREMAP CLOCK OPTIMIZATION REPORT #####[ + +4 non-gated/non-generated clock tree(s) driving 89 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 +--------------------------------------------------------------------------------------- +@KP:ckid0_0 RCLK port 48 nRWE +@KP:ckid0_1 PHI2 port 19 RA11 +@KP:ckid0_2 nCCAS port 8 WRD[7:0] +@KP:ckid0_3 nCRAS port 14 RowA[9:0] +======================================================================================= + + +##### END OF CLOCK OPTIMIZATION REPORT ###### + +@N: FX1143 |Skipping assigning INTERNAL_VREF to iobanks, because the table of mapping from pin to iobank is not initialized. +Finished Pre Mapping Phase. + +Starting constraint checker (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 171MB peak: 171MB) + + +Finished constraint checker preprocessing (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 172MB peak: 172MB) + + +Finished constraint checker (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 172MB peak: 172MB) + +Pre-mapping successful! + +At Mapper Exit (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 88MB peak: 174MB) + +Process took 0h:00m:01s realtime, 0h:00m:01s cputime +# Tue Aug 15 22:34:21 2023 + +###########################################################] +Map & Optimize Report + +# Tue Aug 15 22:34:22 2023 + + +Copyright (C) 1994-2021 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. +Tool: Synplify Pro (R) +Build: R-2021.03L-SP1 +Install: C:\lscc\diamond\3.12\synpbase +OS: Windows 6.2 + +Hostname: ZANEPC + +Implementation : impl1 +Synopsys Lattice Technology Mapper, Version map202103lat, Build 070R, Built Oct 6 2021 11:12:38, @ + + +Mapper Startup Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 117MB peak: 117MB) + +@N: MF916 |Option synthesis_strategy=base is enabled. +@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: 119MB peak: 130MB) + + +Mapper Initialization Complete (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 119MB peak: 130MB) + + +Start loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 133MB peak: 133MB) + + +Finished loading timing files (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 134MB peak: 136MB) + + + +Starting Optimization and Mapping (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 168MB peak: 168MB) + +@N: MT204 |Auto Constrain mode is disabled because the following clocks are already defined: + + RCLK + PHI2 + nCRAS + nCCAS + + +Finished RTL optimizations (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 171MB peak: 171MB) + +@N: MO231 :"d:\onedrive\documents\github\ram2gs\cpld\ram2gs-spi.v":147:1:147:6|Found counter in view:work.RAM2GS(verilog) instance IS[3:0] +@N: MO231 :"d:\onedrive\documents\github\ram2gs\cpld\ram2gs-spi.v":134:1:134:6|Found counter in view:work.RAM2GS(verilog) instance FS[17:0] +@N: FX493 |Applying initial value "0" on instance IS[0]. +@W: FX474 |User-specified initial value defined for some sequential elements which can prevent optimum synthesis results from being achieved. +@N: FX493 |Applying initial value "0" on instance IS[1]. +@N: FX493 |Applying initial value "0" on instance IS[2]. +@N: FX493 |Applying initial value "0" on instance IS[3]. + +Starting factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 173MB peak: 173MB) + + +Finished factoring (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 174MB peak: 174MB) + + +Available hyper_sources - for debug and ip models + None Found + + +Finished generic timing optimizations - Pass 1 (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 174MB peak: 175MB) + + +Starting Early Timing Optimization (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:01s; Memory used current: 175MB peak: 175MB) + + +Finished Early Timing Optimization (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 175MB peak: 175MB) + + +Finished generic timing optimizations - Pass 2 (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 175MB peak: 176MB) + + +Finished preparing to map (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 176MB peak: 176MB) + + +Finished technology mapping (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 176MB peak: 176MB) + +Pass CPU time Worst Slack Luts / Registers +------------------------------------------------------------ + 1 0h:00m:01s -2.34ns 128 / 89 + 2 0h:00m:01s -2.34ns 140 / 89 + 3 0h:00m:01s -2.34ns 140 / 89 +@N: FX271 :"d:\onedrive\documents\github\ram2gs\cpld\ram2gs-spi.v":147:1:147:6|Replicating instance Ready (in view: work.RAM2GS(verilog)) with 12 loads 1 time to improve timing. +Timing driven replication report +Added 1 Registers via timing driven replication +Added 0 LUTs via timing driven replication + + 4 0h:00m:01s -2.04ns 140 / 90 + + + 5 0h:00m:01s -2.04ns 141 / 90 + 6 0h:00m:01s -2.04ns 141 / 90 + 7 0h:00m:01s -2.04ns 141 / 90 + 8 0h:00m:01s -2.04ns 141 / 90 + 9 0h:00m:01s -2.04ns 141 / 90 + +Finished technology timing optimizations and critical path resynthesis (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 177MB peak: 177MB) + +@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: 177MB peak: 177MB) + + +Start Writing Netlists (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 141MB peak: 177MB) + +Writing Analyst data base D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\LCMXO2-640HC\impl1\synwork\impl1_m.srm + +Finished Writing Netlist Databases (Real Time elapsed 0h:00m:01s; CPU Time elapsed 0h:00m:01s; Memory used current: 178MB peak: 178MB) + +Writing EDIF Netlist and constraint files +@N: FX1056 |Writing EDF file: D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\LCMXO2-640HC\impl1\impl1.edi +@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: 183MB peak: 183MB) + + +Finished Writing Netlists (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 183MB peak: 184MB) + + +Start final timing analysis (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 181MB peak: 184MB) + +@N: MT615 |Found clock RCLK with period 16.00ns +@N: MT615 |Found clock PHI2 with period 350.00ns +@N: MT615 |Found clock nCRAS with period 350.00ns +@N: MT615 |Found clock nCCAS with period 350.00ns + + +##### START OF TIMING REPORT #####[ +# Timing report written on Tue Aug 15 22:34:24 2023 +# + + +Top view: RAM2GS +Requested Frequency: 2.9 MHz +Wire load mode: top +Paths requested: 5 +Constraint File(s): D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\RAM2GS.sdc + +@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: -2.389 + + Requested Estimated Requested Estimated Clock Clock +Starting Clock Frequency Frequency Period Period Slack Type Group +------------------------------------------------------------------------------------------------------------------- +PHI2 2.9 MHz 0.8 MHz 350.000 1186.150 -2.389 declared default_clkgroup +RCLK 62.5 MHz 18.4 MHz 16.000 54.224 -0.784 declared default_clkgroup +nCCAS 2.9 MHz NA 350.000 NA NA declared default_clkgroup +nCRAS 2.9 MHz 1.0 MHz 350.000 987.210 -1.821 declared default_clkgroup +=================================================================================================================== +Estimated period and frequency reported as NA means no slack depends directly on the clock waveform + + +@W: MT118 |Paths from clock (PHI2:f) to clock (RCLK:r) are overconstrained because the required time of 1.00 ns is too small. +@W: MT117 |Paths from clock (RCLK:r) to clock (PHI2:f) are overconstrained because the required time of 1.00 ns is too small. +@W: MT118 |Paths from clock (nCRAS:f) to clock (RCLK:r) are overconstrained because the required time of 1.00 ns is too small. +@W: MT116 |Paths from clock (RCLK:r) to clock (PHI2:r) are overconstrained because the required time of 2.00 ns is too small. +@W: MT117 |Paths from clock (RCLK:r) to clock (nCRAS:f) are overconstrained because the required time of 1.00 ns is too small. + + + +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 +-------------------------------------------------------------------------------------------------------------- +RCLK RCLK | 16.000 8.400 | No paths - | No paths - | No paths - +RCLK PHI2 | 2.000 0.216 | No paths - | 1.000 -0.636 | No paths - +RCLK nCRAS | No paths - | No paths - | 1.000 -0.784 | No paths - +PHI2 RCLK | No paths - | No paths - | No paths - | 1.000 -2.389 +PHI2 PHI2 | No paths - | 350.000 345.378 | 175.000 167.920 | 175.000 173.428 +nCRAS RCLK | No paths - | No paths - | No paths - | 1.000 -1.821 +============================================================================================================== + 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: PHI2 +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +---------------------------------------------------------------------------------------- +CmdSubmitted PHI2 FD1S3AX Q CmdSubmitted 1.148 -2.389 +CmdUFMCS PHI2 FD1P3AX Q CmdUFMCS 0.972 -1.517 +CmdUFMSDI PHI2 FD1P3AX Q CmdUFMSDI 0.972 -0.740 +CmdLEDEN PHI2 FD1P3AX Q CmdLEDEN 1.044 -0.572 +Cmdn8MEGEN PHI2 FD1P3AX Q Cmdn8MEGEN 1.044 -0.572 +CmdUFMCLK PHI2 FD1P3AX Q CmdUFMCLK 0.972 -0.500 +Bank_0io[0] PHI2 IFS1P3DX Q Bank[0] 0.972 167.920 +Bank_0io[1] PHI2 IFS1P3DX Q Bank[1] 0.972 167.920 +Bank_0io[2] PHI2 IFS1P3DX Q Bank[2] 0.972 167.920 +Bank_0io[3] PHI2 IFS1P3DX Q Bank[3] 0.972 167.920 +======================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +-------------------------------------------------------------------------------------------- +UFMCLK_0io PHI2 OFS1P3DX SP i2_i 0.528 -2.389 +nUFMCS PHI2 FD1S3AY D nUFMCS_s_0_N_5_i 1.089 -1.829 +UFMSDI PHI2 FD1S3AX D UFMSDI_RNO 1.462 -1.751 +LEDEN PHI2 FD1P3AX SP N_28 0.528 -1.236 +n8MEGEN PHI2 FD1P3AX SP N_26 0.528 -1.236 +LEDEN PHI2 FD1P3AX D N_74_i 1.089 -0.572 +n8MEGEN PHI2 FD1P3AX D N_131 1.089 -0.572 +UFMCLK_0io PHI2 OFS1P3DX D i1_i 1.089 -0.500 +ADSubmitted PHI2 FD1S3AX D ADSubmitted_r_0 175.089 167.920 +C1Submitted PHI2 FD1S3AX D C1Submitted_s_0 175.089 167.920 +============================================================================================ + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 1.000 + - Setup time: 0.472 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 0.528 + + - Propagation time: 2.917 + - Clock delay at starting point: 0.000 (ideal) + = Slack (critical) : -2.389 + + Number of logic level(s): 2 + Starting point: CmdSubmitted / Q + Ending point: UFMCLK_0io / SP + The start point is clocked by PHI2 [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK + The end point is clocked by RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin SCLK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +----------------------------------------------------------------------------------- +CmdSubmitted FD1S3AX Q Out 1.148 1.148 r - +CmdSubmitted Net - - - - 4 +PHI2r3_RNITCN41 ORCALUT4 A In 0.000 1.148 r - +PHI2r3_RNITCN41 ORCALUT4 Z Out 1.153 2.301 r - +N_141_i Net - - - - 3 +UFMCLK_0io_RNO_0 ORCALUT4 A In 0.000 2.301 r - +UFMCLK_0io_RNO_0 ORCALUT4 Z Out 0.617 2.917 r - +i2_i Net - - - - 1 +UFMCLK_0io OFS1P3DX SP In 0.000 2.917 r - +=================================================================================== + + +Path information for path number 2: + Requested Period: 1.000 + - Setup time: -0.089 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 1.089 + + - Propagation time: 2.917 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : -1.829 + + Number of logic level(s): 2 + Starting point: CmdSubmitted / Q + Ending point: nUFMCS / D + The start point is clocked by PHI2 [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK + The end point is clocked by RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +----------------------------------------------------------------------------------- +CmdSubmitted FD1S3AX Q Out 1.148 1.148 r - +CmdSubmitted Net - - - - 4 +PHI2r3_RNITCN41 ORCALUT4 A In 0.000 1.148 r - +PHI2r3_RNITCN41 ORCALUT4 Z Out 1.153 2.301 r - +N_141_i Net - - - - 3 +nUFMCS_s_0_N_5_i ORCALUT4 A In 0.000 2.301 r - +nUFMCS_s_0_N_5_i ORCALUT4 Z Out 0.617 2.917 r - +nUFMCS_s_0_N_5_i Net - - - - 1 +nUFMCS FD1S3AY D In 0.000 2.917 r - +=================================================================================== + + +Path information for path number 3: + Requested Period: 1.000 + - Setup time: -0.462 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 1.462 + + - Propagation time: 3.214 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : -1.751 + + Number of logic level(s): 2 + Starting point: CmdSubmitted / Q + Ending point: UFMSDI / D + The start point is clocked by PHI2 [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK + The end point is clocked by RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +---------------------------------------------------------------------------------- +CmdSubmitted FD1S3AX Q Out 1.148 1.148 r - +CmdSubmitted Net - - - - 4 +PHI2r3_RNITCN41 ORCALUT4 A In 0.000 1.148 r - +PHI2r3_RNITCN41 ORCALUT4 Z Out 1.153 2.301 r - +N_141_i Net - - - - 3 +UFMSDI_RNO PFUMX C0 In 0.000 2.301 r - +UFMSDI_RNO PFUMX Z Out 0.913 3.214 r - +UFMSDI_RNO Net - - - - 1 +UFMSDI FD1S3AX D In 0.000 3.214 r - +================================================================================== + + +Path information for path number 4: + Requested Period: 1.000 + - Setup time: -0.089 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 1.089 + + - Propagation time: 2.605 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : -1.517 + + Number of logic level(s): 2 + Starting point: CmdUFMCS / Q + Ending point: nUFMCS / D + The start point is clocked by PHI2 [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK + The end point is clocked by RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +----------------------------------------------------------------------------------- +CmdUFMCS FD1P3AX Q Out 0.972 0.972 r - +CmdUFMCS Net - - - - 1 +nUFMCS_s_0_m4_yy ORCALUT4 A In 0.000 0.972 r - +nUFMCS_s_0_m4_yy ORCALUT4 Z Out 1.017 1.989 r - +nUFMCS_s_0_m4_yy Net - - - - 1 +nUFMCS_s_0_N_5_i ORCALUT4 C In 0.000 1.989 r - +nUFMCS_s_0_N_5_i ORCALUT4 Z Out 0.617 2.605 f - +nUFMCS_s_0_N_5_i Net - - - - 1 +nUFMCS FD1S3AY D In 0.000 2.605 f - +=================================================================================== + + +Path information for path number 5: + Requested Period: 1.000 + - Setup time: 0.472 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 0.528 + + - Propagation time: 1.765 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : -1.236 + + Number of logic level(s): 1 + Starting point: CmdSubmitted / Q + Ending point: LEDEN / SP + The start point is clocked by PHI2 [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK + The end point is clocked by RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +--------------------------------------------------------------------------------- +CmdSubmitted FD1S3AX Q Out 1.148 1.148 r - +CmdSubmitted Net - - - - 4 +un1_FS_13_i_0 ORCALUT4 A In 0.000 1.148 r - +un1_FS_13_i_0 ORCALUT4 Z Out 0.617 1.765 r - +N_28 Net - - - - 1 +LEDEN FD1P3AX SP In 0.000 1.765 r - +================================================================================= + + + + +==================================== +Detailed Report for Clock: RCLK +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +---------------------------------------------------------------------------------- +Ready_fast RCLK FD1S3AX Q Ready_fast 1.256 -0.784 +LEDEN RCLK FD1P3AX Q LEDEN 1.108 -0.636 +n8MEGEN RCLK FD1P3AX Q n8MEGEN 1.044 -0.572 +FS[12] RCLK FD1S3AX Q FS[12] 1.108 8.400 +FS[13] RCLK FD1S3AX Q FS[13] 1.108 8.400 +FS[14] RCLK FD1S3AX Q FS[14] 1.108 8.400 +FS[17] RCLK FD1S3AX Q FS[17] 1.108 8.400 +FS[16] RCLK FD1S3AX Q FS[16] 1.148 9.377 +FS[15] RCLK FD1S3AX Q FS[15] 1.108 9.417 +InitReady RCLK FD1S3AX Q InitReady 1.268 9.849 +================================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +------------------------------------------------------------------------------------ +RBA_0io[0] RCLK OFS1P3DX D RBAd_0[0] 1.089 -0.784 +RBA_0io[1] RCLK OFS1P3DX D RBAd_0[1] 1.089 -0.784 +RowA[0] RCLK FD1S3AX D RowAd_0[0] 1.089 -0.784 +RowA[1] RCLK FD1S3AX D RowAd_0[1] 1.089 -0.784 +RowA[2] RCLK FD1S3AX D RowAd_0[2] 1.089 -0.784 +RowA[3] RCLK FD1S3AX D RowAd_0[3] 1.089 -0.784 +RowA[4] RCLK FD1S3AX D RowAd_0[4] 1.089 -0.784 +RowA[5] RCLK FD1S3AX D RowAd_0[5] 1.089 -0.784 +RowA[6] RCLK FD1S3AX D RowAd_0[6] 1.089 -0.784 +RowA[7] RCLK FD1S3AX D RowAd_0[7] 1.089 -0.784 +==================================================================================== + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 1.000 + - Setup time: -0.089 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 1.089 + + - Propagation time: 1.873 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : -0.784 + + Number of logic level(s): 1 + Starting point: Ready_fast / Q + Ending point: RBA_0io[0] / D + The start point is clocked by RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin CK + The end point is clocked by nCRAS [falling] (rise=0.000 fall=175.000 period=350.000) on pin SCLK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +--------------------------------------------------------------------------------- +Ready_fast FD1S3AX Q Out 1.256 1.256 r - +Ready_fast Net - - - - 14 +RBAd[0] ORCALUT4 B In 0.000 1.256 r - +RBAd[0] ORCALUT4 Z Out 0.617 1.873 r - +RBAd_0[0] Net - - - - 1 +RBA_0io[0] OFS1P3DX D In 0.000 1.873 r - +================================================================================= + + +Path information for path number 2: + Requested Period: 1.000 + - Setup time: -0.089 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 1.089 + + - Propagation time: 1.873 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : -0.784 + + Number of logic level(s): 1 + Starting point: Ready_fast / Q + Ending point: RowA[9] / D + The start point is clocked by RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin CK + The end point is clocked by nCRAS [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +--------------------------------------------------------------------------------- +Ready_fast FD1S3AX Q Out 1.256 1.256 r - +Ready_fast Net - - - - 14 +RowAd[9] ORCALUT4 B In 0.000 1.256 r - +RowAd[9] ORCALUT4 Z Out 0.617 1.873 f - +RowAd_0[9] Net - - - - 1 +RowA[9] FD1S3AX D In 0.000 1.873 f - +================================================================================= + + +Path information for path number 3: + Requested Period: 1.000 + - Setup time: -0.089 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 1.089 + + - Propagation time: 1.873 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : -0.784 + + Number of logic level(s): 1 + Starting point: Ready_fast / Q + Ending point: RowA[8] / D + The start point is clocked by RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin CK + The end point is clocked by nCRAS [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +--------------------------------------------------------------------------------- +Ready_fast FD1S3AX Q Out 1.256 1.256 r - +Ready_fast Net - - - - 14 +RowAd[8] ORCALUT4 B In 0.000 1.256 r - +RowAd[8] ORCALUT4 Z Out 0.617 1.873 r - +RowAd_0[8] Net - - - - 1 +RowA[8] FD1S3AX D In 0.000 1.873 r - +================================================================================= + + +Path information for path number 4: + Requested Period: 1.000 + - Setup time: -0.089 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 1.089 + + - Propagation time: 1.873 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : -0.784 + + Number of logic level(s): 1 + Starting point: Ready_fast / Q + Ending point: RBA_0io[1] / D + The start point is clocked by RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin CK + The end point is clocked by nCRAS [falling] (rise=0.000 fall=175.000 period=350.000) on pin SCLK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +--------------------------------------------------------------------------------- +Ready_fast FD1S3AX Q Out 1.256 1.256 r - +Ready_fast Net - - - - 14 +RBAd[1] ORCALUT4 B In 0.000 1.256 r - +RBAd[1] ORCALUT4 Z Out 0.617 1.873 r - +RBAd_0[1] Net - - - - 1 +RBA_0io[1] OFS1P3DX D In 0.000 1.873 r - +================================================================================= + + +Path information for path number 5: + Requested Period: 1.000 + - Setup time: -0.089 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 1.089 + + - Propagation time: 1.873 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : -0.784 + + Number of logic level(s): 1 + Starting point: Ready_fast / Q + Ending point: RowA[6] / D + The start point is clocked by RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin CK + The end point is clocked by nCRAS [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +--------------------------------------------------------------------------------- +Ready_fast FD1S3AX Q Out 1.256 1.256 r - +Ready_fast Net - - - - 14 +RowAd[6] ORCALUT4 B In 0.000 1.256 r - +RowAd[6] ORCALUT4 Z Out 0.617 1.873 r - +RowAd_0[6] Net - - - - 1 +RowA[6] FD1S3AX D In 0.000 1.873 r - +================================================================================= + + + + +==================================== +Detailed Report for Clock: nCRAS +==================================== + + + +Starting Points with Worst Slack +******************************** + + Starting Arrival +Instance Reference Type Pin Net Time Slack + Clock +-------------------------------------------------------------------------- +CBR nCRAS FD1S3AX Q CBR 1.204 -1.821 +FWEr nCRAS FD1S3AX Q FWEr 1.148 -1.765 +========================================================================== + + +Ending Points with Worst Slack +****************************** + + Starting Required +Instance Reference Type Pin Net Time Slack + Clock +---------------------------------------------------------------------------------------- +nRCAS_0io nCRAS OFS1P3BX D N_179_i 1.089 -1.821 +nRWE_0io nCRAS OFS1P3BX D N_180_i 1.089 -1.821 +nRCS_0io nCRAS OFS1P3BX D N_27_i 1.089 -1.765 +nRowColSel nCRAS FD1S3IX D nRowColSel_0_0 1.089 -1.749 +RCKEEN nCRAS FD1S3AX D RCKEEN_8 1.089 -1.693 +======================================================================================== + + + +Worst Path Information +*********************** + + +Path information for path number 1: + Requested Period: 1.000 + - Setup time: -0.089 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 1.089 + + - Propagation time: 2.909 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : -1.821 + + Number of logic level(s): 2 + Starting point: CBR / Q + Ending point: nRCAS_0io / D + The start point is clocked by nCRAS [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK + The end point is clocked by RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin SCLK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +---------------------------------------------------------------------------------------- +CBR FD1S3AX Q Out 1.204 1.204 r - +CBR Net - - - - 7 +nRCAS_0_sqmuxa_1_0_a3 ORCALUT4 A In 0.000 1.204 r - +nRCAS_0_sqmuxa_1_0_a3 ORCALUT4 Z Out 1.089 2.293 r - +nRCAS_0_sqmuxa_1 Net - - - - 2 +nRCAS_0io_RNO ORCALUT4 B In 0.000 2.293 r - +nRCAS_0io_RNO ORCALUT4 Z Out 0.617 2.909 f - +N_179_i Net - - - - 1 +nRCAS_0io OFS1P3BX D In 0.000 2.909 f - +======================================================================================== + + +Path information for path number 2: + Requested Period: 1.000 + - Setup time: -0.089 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 1.089 + + - Propagation time: 2.909 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : -1.821 + + Number of logic level(s): 2 + Starting point: CBR / Q + Ending point: nRWE_0io / D + The start point is clocked by nCRAS [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK + The end point is clocked by RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin SCLK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +---------------------------------------------------------------------------------------- +CBR FD1S3AX Q Out 1.204 1.204 r - +CBR Net - - - - 7 +nRCAS_0_sqmuxa_1_0_a3 ORCALUT4 A In 0.000 1.204 r - +nRCAS_0_sqmuxa_1_0_a3 ORCALUT4 Z Out 1.089 2.293 r - +nRCAS_0_sqmuxa_1 Net - - - - 2 +nRWE_0io_RNO ORCALUT4 A In 0.000 2.293 r - +nRWE_0io_RNO ORCALUT4 Z Out 0.617 2.909 r - +N_180_i Net - - - - 1 +nRWE_0io OFS1P3BX D In 0.000 2.909 r - +======================================================================================== + + +Path information for path number 3: + Requested Period: 1.000 + - Setup time: -0.089 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 1.089 + + - Propagation time: 2.853 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : -1.765 + + Number of logic level(s): 2 + Starting point: FWEr / Q + Ending point: nRCAS_0io / D + The start point is clocked by nCRAS [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK + The end point is clocked by RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin SCLK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------------- +FWEr FD1S3AX Q Out 1.148 1.148 r - +FWEr Net - - - - 4 +nRCAS_r_i_a3_1_1_tz ORCALUT4 D In 0.000 1.148 r - +nRCAS_r_i_a3_1_1_tz ORCALUT4 Z Out 1.089 2.237 r - +N_27_i_1 Net - - - - 2 +nRCAS_0io_RNO ORCALUT4 A In 0.000 2.237 r - +nRCAS_0io_RNO ORCALUT4 Z Out 0.617 2.853 f - +N_179_i Net - - - - 1 +nRCAS_0io OFS1P3BX D In 0.000 2.853 f - +====================================================================================== + + +Path information for path number 4: + Requested Period: 1.000 + - Setup time: -0.089 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 1.089 + + - Propagation time: 2.853 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : -1.765 + + Number of logic level(s): 2 + Starting point: FWEr / Q + Ending point: nRCS_0io / D + The start point is clocked by nCRAS [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK + The end point is clocked by RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin SCLK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +-------------------------------------------------------------------------------------- +FWEr FD1S3AX Q Out 1.148 1.148 r - +FWEr Net - - - - 4 +nRCAS_r_i_a3_1_1_tz ORCALUT4 D In 0.000 1.148 r - +nRCAS_r_i_a3_1_1_tz ORCALUT4 Z Out 1.089 2.237 r - +N_27_i_1 Net - - - - 2 +nRCS_0io_RNO ORCALUT4 B In 0.000 2.237 r - +nRCS_0io_RNO ORCALUT4 Z Out 0.617 2.853 f - +N_27_i Net - - - - 1 +nRCS_0io OFS1P3BX D In 0.000 2.853 f - +====================================================================================== + + +Path information for path number 5: + Requested Period: 1.000 + - Setup time: -0.089 + + Clock delay at ending point: 0.000 (ideal) + = Required time: 1.089 + + - Propagation time: 2.837 + - Clock delay at starting point: 0.000 (ideal) + = Slack (non-critical) : -1.749 + + Number of logic level(s): 2 + Starting point: CBR / Q + Ending point: nRCS_0io / D + The start point is clocked by nCRAS [falling] (rise=0.000 fall=175.000 period=350.000) on pin CK + The end point is clocked by RCLK [rising] (rise=0.000 fall=8.000 period=16.000) on pin SCLK + +Instance / Net Pin Pin Arrival No. of +Name Type Name Dir Delay Time Fan Out(s) +--------------------------------------------------------------------------------- +CBR FD1S3AX Q Out 1.204 1.204 r - +CBR Net - - - - 7 +nRCS_0io_RNO_0 ORCALUT4 A In 0.000 1.204 r - +nRCS_0io_RNO_0 ORCALUT4 Z Out 1.017 2.221 f - +N_27_i_sn Net - - - - 1 +nRCS_0io_RNO ORCALUT4 C In 0.000 2.221 f - +nRCS_0io_RNO ORCALUT4 Z Out 0.617 2.837 r - +N_27_i Net - - - - 1 +nRCS_0io OFS1P3BX D In 0.000 2.837 r - +================================================================================= + + + +##### END OF TIMING REPORT #####] + +Timing exceptions that could not be applied + +Finished final timing analysis (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 182MB peak: 184MB) + + +Finished timing report (Real Time elapsed 0h:00m:02s; CPU Time elapsed 0h:00m:02s; Memory used current: 182MB peak: 184MB) + +--------------------------------------- +Resource Usage Report +Part: lcmxo2_640hc-4 + +Register bits: 90 of 640 (14%) +PIC Latch: 0 +I/O cells: 67 + + +Details: +BB: 8 +CCU2D: 10 +FD1P3AX: 11 +FD1S3AX: 49 +FD1S3AY: 1 +FD1S3IX: 3 +GSR: 1 +IB: 26 +IFS1P3DX: 9 +INV: 7 +OB: 33 +OFS1P3BX: 4 +OFS1P3DX: 12 +OFS1P3JX: 1 +ORCALUT4: 135 +PFUMX: 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: 67MB peak: 184MB) + +Process took 0h:00m:02s realtime, 0h:00m:02s cputime +# Tue Aug 15 22:34:24 2023 + +###########################################################] diff --git a/CPLD/LCMXO2-640HC/impl1/impl1.srr.db b/CPLD/LCMXO2-640HC/impl1/impl1.srr.db new file mode 100644 index 0000000000000000000000000000000000000000..3e9605b053ac17ba3fdbc4ba35669e24aeef6a2a GIT binary patch literal 16384 zcmeHNOK=-W8J7HhNVYfLV25m=*UQ6(SgVm_*->J7Wj!3%+Ob!19wgp!jYciG*Q1%) znURgRfGVXpv3mnf6t_KaNO9pt)tbk4A>bk4A>bk4A>bk4A>bk4A>bk4A@F~WfbAcixpBi^zirD! zl~$=`$rWlfKKs)7Y-%q{_EPIxS<+~oXC-nho64bV-Xtp1j#|ImTUrfAOl!N@fF#rG z1zzO)C%@p>4@`bB@gVrSU^wv0z(HVX{I}!BV}Bm|#n}GX8>4?3{n_aK(W@hW82RbQ z&PZVR_rp(zZx8)r=r=>=kTm%B!DoZj!Pf>p9@rjutN&O1>Aqk0&HDf7U-kXd_nGg9 zFLZ1&G&B>eT#*Ns$8^7>D>Y&8 zeudeGwc@@hS0fc`Uoq5@`yDv2(D7VCipCO>c#r4w8X{1^yG>1?Lyj3eNu22BQ7E6< zj%*a>kEzL2y|U2qcCPS5T26%DCyvAGSLTIPga58ov1M)*-Y;bpkHMBv%C`{&^|xWt zUL+h#)oh)lb%d)aV~kb3Lq`6m)os0$KAm#GEDsgs@SB=R2o`vx}N_gLg_Z|ITBmR*EAkr{Qh`s zvB+#OLU%si`3CM(_?@?;_>R+eGjI<$A~vm@t`=pCADA?acAeY**6_7py~@`ENs2`a zN6aupcv}{$h+a4E?Pc@#QdNQiL7AbN^Ao{J<2w$aa-5@Gv zqDnMstIV>A6WJns*8;0=0v~$8dIx8;uXkGhVb(Qmoj_c_K)hqQOjk=;5gV?KwXZ`5 z>rKb~+;)2F-G+j%T}nYAv)NE^qYDL{AaD~3u7Y>ofP$mmhVW=7zp|a(a5ZGELxa_u zhE%3dD^{6}N#ttDeid43y=j3vI@M&Z^=?dB>eRA63oX6J25@b8CN%>cV)}LeIL3h5 zeY5_R%bL-Ou;f+fxF{>=43K<2)r^nVA>U(sXgoTy_gv2=r@OGAW1?+kGfnx`E0FJb zo;L$L{TjqS>^ZQ`jv+M#CA~YdeHh8fE@1eQBhpPrtWI?XVT!SWzzJg^{IhZ&7>do56{#m5sK-JXgoHTN$l@vG$YEHOtYNXVD?>< zGfvXBpWfZdxZf8GyPKk%aU@@pz>L=f^!H@-x8iPdP}S-y|wmE*jB zDY_JHY{Dbcg%po99rBfvPk6bV+{}qHxI^vXDR>CHU6aIDr2`^ zrm}Eq*|bU;z459p1H> zXG_AX|2GQaH1UNSH`AYb^?zsmFSZbP{XaSS*f*J-_9!4 zz`ld_yN1!9Hc0qSiod)HU@Kl++5i zZXmzf`eNfdF+{-2mZd91#`lqsn^g{l5IIeav<4)ZVUZQc|n@JNgCA4 z-0nsS)uL9yot-+I&RnBb;$Sdv-sN6gT5>6@f_|YTruSLZP$lO*L`%$pycXu;D2Tq|u{{u4T?Q;> z3=BVNMk)_rL3rKVStp0sQ-M4jQ)i)5~Qd+qTJy2sSLR zPPg@yw?TK9uD{1Sjx1lEEZw3d=P7pqPW{D!w99=L^dB-0(**i+^NauhK+MEK?oJ6ey#EDSj??S_ literal 0 HcmV?d00001 diff --git a/CPLD/LCMXO2-640HC/impl1/impl1.srs b/CPLD/LCMXO2-640HC/impl1/impl1.srs new file mode 100644 index 0000000000000000000000000000000000000000..0afd997d5fafecf22046adb991104fde882cc169 GIT binary patch literal 10256 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 D:/OneDrive/Documents/GitHub/RAM2GS/CPLD/LCMXO2-640HC/impl1/RAM2GS_LCMXO2_640HC_impl1.jed - 08/15/23 04:55:55 - 0x5769 + 08/15/23 23:30:13 + 0x812F FLASH Erase,Program,Verify
    +
    +###########################################################[
    +
    +Copyright (C) 1994-2021 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.
    +Tool: Synplify Pro (R)
    +Build: R-2021.03L-SP1
    +Install: C:\lscc\diamond\3.12\synpbase
    +OS: Windows 6.2
    +
    +Hostname: ZANEPC
    +
    +Implementation : impl1
    +Synopsys Synopsys Netlist Linker, Version comp202103synp2, Build 093R, Built Aug 10 2021 09:15:36, @
    +
    +@N: :  | Running in 64-bit mode 
    +File D:\OneDrive\Documents\GitHub\RAM2GS\CPLD\LCMXO2-640HC\impl1\synwork\RAM2GS_LCMXO2_640HC_impl1_comp.srs changed - recompiling
    +
    +At syn_nfilter Exit (Real Time elapsed 0h:00m:00s; CPU Time elapsed 0h:00m:00s; Memory used current: 90MB peak: 91MB)
    +
    +Process took 0h:00m:01s realtime, 0h:00m:01s cputime
    +
    +Process completed successfully.
    +# Tue Aug 15 22:24:08 2023
    +
    +###########################################################]
    +
    +