├── db ├── dpll.map.logdb ├── dpll.map_bb.logdb ├── dpll.smart_action.txt ├── .cmp.kpt ├── dpll.hif ├── dpll.asm.rdb ├── dpll.cmp.bpm ├── dpll.cmp.cdb ├── dpll.cmp.hdb ├── dpll.cmp.idb ├── dpll.cmp.rdb ├── dpll.lpc.rdb ├── dpll.map.bpm ├── dpll.map.cdb ├── dpll.map.hdb ├── dpll.map.kpt ├── dpll.map.rdb ├── dpll.sta.rdb ├── dpll.map.ammdb ├── dpll.map_bb.cdb ├── dpll.map_bb.hdb ├── dpll.rtlv.hdb ├── dpll.sgate.nvd ├── dpll.vpr.ammdb ├── dpll.(0).cnf.cdb ├── dpll.(0).cnf.hdb ├── dpll.(1).cnf.cdb ├── dpll.(1).cnf.hdb ├── dpll.(10).cnf.cdb ├── dpll.(10).cnf.hdb ├── dpll.(2).cnf.cdb ├── dpll.(2).cnf.hdb ├── dpll.(3).cnf.cdb ├── dpll.(3).cnf.hdb ├── dpll.(4).cnf.cdb ├── dpll.(4).cnf.hdb ├── dpll.(5).cnf.cdb ├── dpll.(5).cnf.hdb ├── dpll.(6).cnf.cdb ├── dpll.(6).cnf.hdb ├── dpll.(7).cnf.cdb ├── dpll.(7).cnf.hdb ├── dpll.(8).cnf.cdb ├── dpll.(8).cnf.hdb ├── dpll.(9).cnf.cdb ├── dpll.(9).cnf.hdb ├── dpll.asm_labs.ddb ├── dpll.pre_map.hdb ├── dpll.routing.rdb ├── dpll.rtlv_sg.cdb ├── dpll.sgate_sm.nvd ├── dpll.cmp_merge.kpt ├── dpll.pti_db_list.ddb ├── dpll.tis_db_list.ddb ├── dpll.rtlv_sg_swap.cdb ├── dpll.sld_design_entry.sci ├── logic_util_heursitic.dat ├── dpll.logic_util_heuristic.dat ├── dpll.sld_design_entry_dsc.sci ├── dpll.tiscmp.fast_1200mv_0c.ddb ├── dpll.tiscmp.slow_1200mv_0c.ddb ├── dpll.tiscmp.slow_1200mv_85c.ddb ├── dpll.root_partition.map.reg_db.cdb ├── dpll.sta_cmp.8_slow_1200mv_85c.tdb ├── dpll.tiscmp.fastest_slow_1200mv_0c.ddb ├── dpll.tiscmp.fastest_slow_1200mv_85c.ddb ├── dpll.db_info ├── dpll.cycloneive_io_sim_cache.31um_ff_1200mv_0c_fast.hsd ├── dpll.cycloneive_io_sim_cache.31um_ss_1200mv_0c_slow.hsd ├── dpll.cycloneive_io_sim_cache.31um_ss_1200mv_85c_slow.hsd ├── dpll.lpc.html ├── add_sub_7pc.tdf ├── dpll.npp.qmsg ├── add_sub_8pc.tdf ├── lpm_divide_jhm.tdf ├── dpll.lpc.txt ├── sign_div_unsign_bkh.tdf ├── dpll.asm.qmsg ├── dpll.eda.qmsg ├── dpll.hier_info ├── alt_u_div_a4f.tdf ├── dpll.cmp.logdb └── dpll.sta.qmsg ├── output_files ├── dpll.sld ├── dpll.done ├── dpll.sof ├── dpll.fit.rpt ├── dpll.jdi ├── dpll.map.smsg ├── dpll.map.summary ├── dpll.fit.summary ├── dpll.fit.smsg ├── dpll.sta.summary ├── dpll.asm.rpt ├── dpll.eda.rpt └── dpll.flow.rpt ├── incremental_db ├── compiled_partitions │ ├── dpll.root_partition.cmp.logdb │ ├── dpll.root_partition.map.hbdb.sig │ ├── dpll.rrp.hdb │ ├── dpll.root_partition.cmp.cdb │ ├── dpll.root_partition.cmp.dfp │ ├── dpll.root_partition.cmp.hdb │ ├── dpll.root_partition.map.cdb │ ├── dpll.root_partition.map.dpi │ ├── dpll.root_partition.map.hdb │ ├── dpll.root_partition.map.kpt │ ├── dpll.root_partition.cmp.ammdb │ ├── dpll.root_partition.cmp.rcfdb │ ├── dpll.db_info │ ├── dpll.root_partition.map.hbdb.cdb │ ├── dpll.root_partition.map.hbdb.hdb │ └── dpll.root_partition.map.hbdb.hb_info └── README ├── simulation └── modelsim │ ├── rtl_work │ ├── _vmake │ ├── dpll │ │ ├── verilog.prw │ │ ├── verilog.psm │ │ ├── _primary.dat │ │ ├── _primary.dbs │ │ └── _primary.vhd │ ├── dpll_vlg_tst │ │ ├── verilog.prw │ │ ├── verilog.psm │ │ ├── _primary.dat │ │ ├── _primary.dbs │ │ └── _primary.vhd │ ├── freqdivider │ │ ├── _primary.dat │ │ ├── _primary.dbs │ │ ├── verilog.prw │ │ ├── verilog.psm │ │ └── _primary.vhd │ ├── phasecomparator │ │ ├── _primary.dat │ │ ├── _primary.dbs │ │ ├── verilog.prw │ │ ├── verilog.psm │ │ └── _primary.vhd │ ├── randomwalkfilter │ │ ├── _primary.dat │ │ ├── _primary.dbs │ │ ├── verilog.prw │ │ ├── verilog.psm │ │ └── _primary.vhd │ ├── variableresetrandomwalkfilter │ │ ├── verilog.prw │ │ ├── verilog.psm │ │ ├── _primary.dat │ │ ├── _primary.dbs │ │ └── _primary.vhd │ └── _info │ ├── vsim.wlf │ ├── dpll.sft │ ├── dpll_run_msim_rtl_verilog.do │ ├── dpll_run_msim_rtl_verilog.do.bak │ ├── dpll_run_msim_rtl_verilog.do.bak1 │ ├── dpll_run_msim_rtl_verilog.do.bak10 │ ├── dpll_run_msim_rtl_verilog.do.bak11 │ ├── dpll_run_msim_rtl_verilog.do.bak2 │ ├── dpll_run_msim_rtl_verilog.do.bak3 │ ├── dpll_run_msim_rtl_verilog.do.bak4 │ ├── dpll_run_msim_rtl_verilog.do.bak5 │ ├── dpll_run_msim_rtl_verilog.do.bak6 │ ├── dpll_run_msim_rtl_verilog.do.bak7 │ ├── dpll_run_msim_rtl_verilog.do.bak8 │ ├── dpll_run_msim_rtl_verilog.do.bak9 │ ├── dpll.vt │ ├── dpll.vt.bak │ └── msim_transcript ├── dpll.qws ├── source ├── phasecomparator.v.bak ├── dpll.v.bak ├── randomwalkfilter.v.bak ├── randomwalkfilter.v ├── freqdivider.v.bak ├── dpll.v ├── freqdivider.v ├── phasecomparator.v ├── variableresetrandomwalkfilter.v.bak └── variableresetrandomwalkfilter.v ├── dpll_nativelink_simulation.rpt ├── dpll.qpf ├── dpll.qsf └── README.md /db/dpll.map.logdb: -------------------------------------------------------------------------------- 1 | v1 2 | -------------------------------------------------------------------------------- /db/dpll.map_bb.logdb: -------------------------------------------------------------------------------- 1 | v1 2 | -------------------------------------------------------------------------------- /db/dpll.smart_action.txt: -------------------------------------------------------------------------------- 1 | DONE 2 | -------------------------------------------------------------------------------- /output_files/dpll.sld: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /output_files/dpll.done: -------------------------------------------------------------------------------- 1 | Wed Sep 22 22:26:47 2021 2 | -------------------------------------------------------------------------------- /incremental_db/compiled_partitions/dpll.root_partition.cmp.logdb: -------------------------------------------------------------------------------- 1 | v1 2 | -------------------------------------------------------------------------------- /simulation/modelsim/rtl_work/_vmake: -------------------------------------------------------------------------------- 1 | m255 2 | K3 3 | cModel Technology 4 | -------------------------------------------------------------------------------- /dpll.qws: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/dpll.qws -------------------------------------------------------------------------------- /db/.cmp.kpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/.cmp.kpt -------------------------------------------------------------------------------- /db/dpll.hif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.hif -------------------------------------------------------------------------------- /db/dpll.asm.rdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.asm.rdb -------------------------------------------------------------------------------- /db/dpll.cmp.bpm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.cmp.bpm -------------------------------------------------------------------------------- /db/dpll.cmp.cdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.cmp.cdb -------------------------------------------------------------------------------- /db/dpll.cmp.hdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.cmp.hdb -------------------------------------------------------------------------------- /db/dpll.cmp.idb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.cmp.idb -------------------------------------------------------------------------------- /db/dpll.cmp.rdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.cmp.rdb -------------------------------------------------------------------------------- /db/dpll.lpc.rdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.lpc.rdb -------------------------------------------------------------------------------- /db/dpll.map.bpm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.map.bpm -------------------------------------------------------------------------------- /db/dpll.map.cdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.map.cdb -------------------------------------------------------------------------------- /db/dpll.map.hdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.map.hdb -------------------------------------------------------------------------------- /db/dpll.map.kpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.map.kpt -------------------------------------------------------------------------------- /db/dpll.map.rdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.map.rdb -------------------------------------------------------------------------------- /db/dpll.sta.rdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.sta.rdb -------------------------------------------------------------------------------- /db/dpll.map.ammdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.map.ammdb -------------------------------------------------------------------------------- /db/dpll.map_bb.cdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.map_bb.cdb -------------------------------------------------------------------------------- /db/dpll.map_bb.hdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.map_bb.hdb -------------------------------------------------------------------------------- /db/dpll.rtlv.hdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.rtlv.hdb -------------------------------------------------------------------------------- /db/dpll.sgate.nvd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.sgate.nvd -------------------------------------------------------------------------------- /db/dpll.vpr.ammdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.vpr.ammdb -------------------------------------------------------------------------------- /incremental_db/compiled_partitions/dpll.root_partition.map.hbdb.sig: -------------------------------------------------------------------------------- 1 | c5eb7f6cdd530884c3b884e0a3668ea4 -------------------------------------------------------------------------------- /db/dpll.(0).cnf.cdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.(0).cnf.cdb -------------------------------------------------------------------------------- /db/dpll.(0).cnf.hdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.(0).cnf.hdb -------------------------------------------------------------------------------- /db/dpll.(1).cnf.cdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.(1).cnf.cdb -------------------------------------------------------------------------------- /db/dpll.(1).cnf.hdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.(1).cnf.hdb -------------------------------------------------------------------------------- /db/dpll.(10).cnf.cdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.(10).cnf.cdb -------------------------------------------------------------------------------- /db/dpll.(10).cnf.hdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.(10).cnf.hdb -------------------------------------------------------------------------------- /db/dpll.(2).cnf.cdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.(2).cnf.cdb -------------------------------------------------------------------------------- /db/dpll.(2).cnf.hdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.(2).cnf.hdb -------------------------------------------------------------------------------- /db/dpll.(3).cnf.cdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.(3).cnf.cdb -------------------------------------------------------------------------------- /db/dpll.(3).cnf.hdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.(3).cnf.hdb -------------------------------------------------------------------------------- /db/dpll.(4).cnf.cdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.(4).cnf.cdb -------------------------------------------------------------------------------- /db/dpll.(4).cnf.hdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.(4).cnf.hdb -------------------------------------------------------------------------------- /db/dpll.(5).cnf.cdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.(5).cnf.cdb -------------------------------------------------------------------------------- /db/dpll.(5).cnf.hdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.(5).cnf.hdb -------------------------------------------------------------------------------- /db/dpll.(6).cnf.cdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.(6).cnf.cdb -------------------------------------------------------------------------------- /db/dpll.(6).cnf.hdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.(6).cnf.hdb -------------------------------------------------------------------------------- /db/dpll.(7).cnf.cdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.(7).cnf.cdb -------------------------------------------------------------------------------- /db/dpll.(7).cnf.hdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.(7).cnf.hdb -------------------------------------------------------------------------------- /db/dpll.(8).cnf.cdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.(8).cnf.cdb -------------------------------------------------------------------------------- /db/dpll.(8).cnf.hdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.(8).cnf.hdb -------------------------------------------------------------------------------- /db/dpll.(9).cnf.cdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.(9).cnf.cdb -------------------------------------------------------------------------------- /db/dpll.(9).cnf.hdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.(9).cnf.hdb -------------------------------------------------------------------------------- /db/dpll.asm_labs.ddb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.asm_labs.ddb -------------------------------------------------------------------------------- /db/dpll.pre_map.hdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.pre_map.hdb -------------------------------------------------------------------------------- /db/dpll.routing.rdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.routing.rdb -------------------------------------------------------------------------------- /db/dpll.rtlv_sg.cdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.rtlv_sg.cdb -------------------------------------------------------------------------------- /db/dpll.sgate_sm.nvd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.sgate_sm.nvd -------------------------------------------------------------------------------- /db/dpll.cmp_merge.kpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.cmp_merge.kpt -------------------------------------------------------------------------------- /db/dpll.pti_db_list.ddb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.pti_db_list.ddb -------------------------------------------------------------------------------- /db/dpll.tis_db_list.ddb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.tis_db_list.ddb -------------------------------------------------------------------------------- /output_files/dpll.sof: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/output_files/dpll.sof -------------------------------------------------------------------------------- /db/dpll.rtlv_sg_swap.cdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.rtlv_sg_swap.cdb -------------------------------------------------------------------------------- /output_files/dpll.fit.rpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/output_files/dpll.fit.rpt -------------------------------------------------------------------------------- /db/dpll.sld_design_entry.sci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.sld_design_entry.sci -------------------------------------------------------------------------------- /db/logic_util_heursitic.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/logic_util_heursitic.dat -------------------------------------------------------------------------------- /simulation/modelsim/vsim.wlf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/simulation/modelsim/vsim.wlf -------------------------------------------------------------------------------- /source/phasecomparator.v.bak: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/source/phasecomparator.v.bak -------------------------------------------------------------------------------- /db/dpll.logic_util_heuristic.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.logic_util_heuristic.dat -------------------------------------------------------------------------------- /db/dpll.sld_design_entry_dsc.sci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.sld_design_entry_dsc.sci -------------------------------------------------------------------------------- /db/dpll.tiscmp.fast_1200mv_0c.ddb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.tiscmp.fast_1200mv_0c.ddb -------------------------------------------------------------------------------- /db/dpll.tiscmp.slow_1200mv_0c.ddb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.tiscmp.slow_1200mv_0c.ddb -------------------------------------------------------------------------------- /db/dpll.tiscmp.slow_1200mv_85c.ddb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.tiscmp.slow_1200mv_85c.ddb -------------------------------------------------------------------------------- /db/dpll.root_partition.map.reg_db.cdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.root_partition.map.reg_db.cdb -------------------------------------------------------------------------------- /db/dpll.sta_cmp.8_slow_1200mv_85c.tdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.sta_cmp.8_slow_1200mv_85c.tdb -------------------------------------------------------------------------------- /db/dpll.tiscmp.fastest_slow_1200mv_0c.ddb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.tiscmp.fastest_slow_1200mv_0c.ddb -------------------------------------------------------------------------------- /db/dpll.tiscmp.fastest_slow_1200mv_85c.ddb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.tiscmp.fastest_slow_1200mv_85c.ddb -------------------------------------------------------------------------------- /simulation/modelsim/rtl_work/dpll/verilog.prw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/simulation/modelsim/rtl_work/dpll/verilog.prw -------------------------------------------------------------------------------- /simulation/modelsim/rtl_work/dpll/verilog.psm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/simulation/modelsim/rtl_work/dpll/verilog.psm -------------------------------------------------------------------------------- /incremental_db/compiled_partitions/dpll.rrp.hdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/incremental_db/compiled_partitions/dpll.rrp.hdb -------------------------------------------------------------------------------- /simulation/modelsim/rtl_work/dpll/_primary.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/simulation/modelsim/rtl_work/dpll/_primary.dat -------------------------------------------------------------------------------- /simulation/modelsim/rtl_work/dpll/_primary.dbs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/simulation/modelsim/rtl_work/dpll/_primary.dbs -------------------------------------------------------------------------------- /db/dpll.db_info: -------------------------------------------------------------------------------- 1 | Quartus_Version = Version 15.0.0 Build 145 04/22/2015 SJ Full Version 2 | Version_Index = 369135872 3 | Creation_Time = Thu Sep 23 12:25:59 2021 4 | -------------------------------------------------------------------------------- /simulation/modelsim/rtl_work/dpll_vlg_tst/verilog.prw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/simulation/modelsim/rtl_work/dpll_vlg_tst/verilog.prw -------------------------------------------------------------------------------- /simulation/modelsim/rtl_work/dpll_vlg_tst/verilog.psm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/simulation/modelsim/rtl_work/dpll_vlg_tst/verilog.psm -------------------------------------------------------------------------------- /simulation/modelsim/rtl_work/freqdivider/_primary.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/simulation/modelsim/rtl_work/freqdivider/_primary.dat -------------------------------------------------------------------------------- /simulation/modelsim/rtl_work/freqdivider/_primary.dbs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/simulation/modelsim/rtl_work/freqdivider/_primary.dbs -------------------------------------------------------------------------------- /simulation/modelsim/rtl_work/freqdivider/verilog.prw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/simulation/modelsim/rtl_work/freqdivider/verilog.prw -------------------------------------------------------------------------------- /simulation/modelsim/rtl_work/freqdivider/verilog.psm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/simulation/modelsim/rtl_work/freqdivider/verilog.psm -------------------------------------------------------------------------------- /simulation/modelsim/rtl_work/dpll_vlg_tst/_primary.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/simulation/modelsim/rtl_work/dpll_vlg_tst/_primary.dat -------------------------------------------------------------------------------- /simulation/modelsim/rtl_work/dpll_vlg_tst/_primary.dbs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/simulation/modelsim/rtl_work/dpll_vlg_tst/_primary.dbs -------------------------------------------------------------------------------- /db/dpll.cycloneive_io_sim_cache.31um_ff_1200mv_0c_fast.hsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.cycloneive_io_sim_cache.31um_ff_1200mv_0c_fast.hsd -------------------------------------------------------------------------------- /db/dpll.cycloneive_io_sim_cache.31um_ss_1200mv_0c_slow.hsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.cycloneive_io_sim_cache.31um_ss_1200mv_0c_slow.hsd -------------------------------------------------------------------------------- /simulation/modelsim/rtl_work/phasecomparator/_primary.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/simulation/modelsim/rtl_work/phasecomparator/_primary.dat -------------------------------------------------------------------------------- /simulation/modelsim/rtl_work/phasecomparator/_primary.dbs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/simulation/modelsim/rtl_work/phasecomparator/_primary.dbs -------------------------------------------------------------------------------- /simulation/modelsim/rtl_work/phasecomparator/verilog.prw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/simulation/modelsim/rtl_work/phasecomparator/verilog.prw -------------------------------------------------------------------------------- /simulation/modelsim/rtl_work/phasecomparator/verilog.psm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/simulation/modelsim/rtl_work/phasecomparator/verilog.psm -------------------------------------------------------------------------------- /simulation/modelsim/rtl_work/randomwalkfilter/_primary.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/simulation/modelsim/rtl_work/randomwalkfilter/_primary.dat -------------------------------------------------------------------------------- /simulation/modelsim/rtl_work/randomwalkfilter/_primary.dbs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/simulation/modelsim/rtl_work/randomwalkfilter/_primary.dbs -------------------------------------------------------------------------------- /simulation/modelsim/rtl_work/randomwalkfilter/verilog.prw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/simulation/modelsim/rtl_work/randomwalkfilter/verilog.prw -------------------------------------------------------------------------------- /simulation/modelsim/rtl_work/randomwalkfilter/verilog.psm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/simulation/modelsim/rtl_work/randomwalkfilter/verilog.psm -------------------------------------------------------------------------------- /db/dpll.cycloneive_io_sim_cache.31um_ss_1200mv_85c_slow.hsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/db/dpll.cycloneive_io_sim_cache.31um_ss_1200mv_85c_slow.hsd -------------------------------------------------------------------------------- /incremental_db/compiled_partitions/dpll.root_partition.cmp.cdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/incremental_db/compiled_partitions/dpll.root_partition.cmp.cdb -------------------------------------------------------------------------------- /incremental_db/compiled_partitions/dpll.root_partition.cmp.dfp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/incremental_db/compiled_partitions/dpll.root_partition.cmp.dfp -------------------------------------------------------------------------------- /incremental_db/compiled_partitions/dpll.root_partition.cmp.hdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/incremental_db/compiled_partitions/dpll.root_partition.cmp.hdb -------------------------------------------------------------------------------- /incremental_db/compiled_partitions/dpll.root_partition.map.cdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/incremental_db/compiled_partitions/dpll.root_partition.map.cdb -------------------------------------------------------------------------------- /incremental_db/compiled_partitions/dpll.root_partition.map.dpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/incremental_db/compiled_partitions/dpll.root_partition.map.dpi -------------------------------------------------------------------------------- /incremental_db/compiled_partitions/dpll.root_partition.map.hdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/incremental_db/compiled_partitions/dpll.root_partition.map.hdb -------------------------------------------------------------------------------- /incremental_db/compiled_partitions/dpll.root_partition.map.kpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/incremental_db/compiled_partitions/dpll.root_partition.map.kpt -------------------------------------------------------------------------------- /incremental_db/compiled_partitions/dpll.root_partition.cmp.ammdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/incremental_db/compiled_partitions/dpll.root_partition.cmp.ammdb -------------------------------------------------------------------------------- /incremental_db/compiled_partitions/dpll.root_partition.cmp.rcfdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/incremental_db/compiled_partitions/dpll.root_partition.cmp.rcfdb -------------------------------------------------------------------------------- /incremental_db/compiled_partitions/dpll.db_info: -------------------------------------------------------------------------------- 1 | Quartus_Version = Version 15.0.0 Build 145 04/22/2015 SJ Full Version 2 | Version_Index = 369135872 3 | Creation_Time = Wed Sep 08 19:31:07 2021 4 | -------------------------------------------------------------------------------- /incremental_db/compiled_partitions/dpll.root_partition.map.hbdb.cdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/incremental_db/compiled_partitions/dpll.root_partition.map.hbdb.cdb -------------------------------------------------------------------------------- /incremental_db/compiled_partitions/dpll.root_partition.map.hbdb.hdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/incremental_db/compiled_partitions/dpll.root_partition.map.hbdb.hdb -------------------------------------------------------------------------------- /simulation/modelsim/rtl_work/variableresetrandomwalkfilter/verilog.prw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/simulation/modelsim/rtl_work/variableresetrandomwalkfilter/verilog.prw -------------------------------------------------------------------------------- /simulation/modelsim/rtl_work/variableresetrandomwalkfilter/verilog.psm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/simulation/modelsim/rtl_work/variableresetrandomwalkfilter/verilog.psm -------------------------------------------------------------------------------- /incremental_db/compiled_partitions/dpll.root_partition.map.hbdb.hb_info: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/incremental_db/compiled_partitions/dpll.root_partition.map.hbdb.hb_info -------------------------------------------------------------------------------- /simulation/modelsim/rtl_work/variableresetrandomwalkfilter/_primary.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/simulation/modelsim/rtl_work/variableresetrandomwalkfilter/_primary.dat -------------------------------------------------------------------------------- /simulation/modelsim/rtl_work/variableresetrandomwalkfilter/_primary.dbs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumengshanhe/ADPLL_base_Verilog/HEAD/simulation/modelsim/rtl_work/variableresetrandomwalkfilter/_primary.dbs -------------------------------------------------------------------------------- /output_files/dpll.jdi: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /output_files/dpll.map.smsg: -------------------------------------------------------------------------------- 1 | Warning (10268): Verilog HDL information at phasecomparator.v(55): always construct contains both blocking and non-blocking assignments 2 | Warning (10262): Verilog HDL Event Control warning at variableresetrandomwalkfilter.v(60): event expression is a constant 3 | -------------------------------------------------------------------------------- /simulation/modelsim/dpll.sft: -------------------------------------------------------------------------------- 1 | set tool_name "ModelSim-Altera (Verilog)" 2 | set corner_file_list { 3 | {{"Slow -8 1.2V 85 Model"} {dpll_8_1200mv_85c_slow.vo dpll_8_1200mv_85c_v_slow.sdo}} 4 | {{"Slow -8 1.2V 0 Model"} {dpll_8_1200mv_0c_slow.vo dpll_8_1200mv_0c_v_slow.sdo}} 5 | {{"Fast -M 1.2V 0 Model"} {dpll_min_1200mv_0c_fast.vo dpll_min_1200mv_0c_v_fast.sdo}} 6 | } 7 | -------------------------------------------------------------------------------- /output_files/dpll.map.summary: -------------------------------------------------------------------------------- 1 | Analysis & Synthesis Status : Successful - Wed Sep 08 19:31:56 2021 2 | Quartus II 64-Bit Version : 15.0.0 Build 145 04/22/2015 SJ Full Version 3 | Revision Name : dpll 4 | Top-level Entity Name : dpll 5 | Family : Cyclone IV E 6 | Total logic elements : 210 7 | Total combinational functions : 196 8 | Dedicated logic registers : 63 9 | Total registers : 63 10 | Total pins : 27 11 | Total virtual pins : 0 12 | Total memory bits : 0 13 | Embedded Multiplier 9-bit elements : 0 14 | Total PLLs : 0 15 | -------------------------------------------------------------------------------- /simulation/modelsim/rtl_work/dpll_vlg_tst/_primary.vhd: -------------------------------------------------------------------------------- 1 | library verilog; 2 | use verilog.vl_types.all; 3 | entity dpll_vlg_tst is 4 | generic( 5 | clk_period : integer := 20; 6 | signal_period : integer := 2000; 7 | delay : integer := 3287 8 | ); 9 | attribute mti_svvh_generic_type : integer; 10 | attribute mti_svvh_generic_type of clk_period : constant is 1; 11 | attribute mti_svvh_generic_type of signal_period : constant is 1; 12 | attribute mti_svvh_generic_type of delay : constant is 1; 13 | end dpll_vlg_tst; 14 | -------------------------------------------------------------------------------- /simulation/modelsim/rtl_work/phasecomparator/_primary.vhd: -------------------------------------------------------------------------------- 1 | library verilog; 2 | use verilog.vl_types.all; 3 | entity phasecomparator is 4 | port( 5 | InputSignal : in vl_logic; 6 | OutputSignal : in vl_logic; 7 | MainClock : in vl_logic; 8 | Lead : out vl_logic; 9 | Lag : out vl_logic; 10 | InputSignalEdge : out vl_logic; 11 | OutputSignalEdge: out vl_logic; 12 | Lock : out vl_logic; 13 | SynchronousSignal: out vl_logic; 14 | PeriodCount : out vl_logic_vector(7 downto 0) 15 | ); 16 | end phasecomparator; 17 | -------------------------------------------------------------------------------- /output_files/dpll.fit.summary: -------------------------------------------------------------------------------- 1 | Fitter Status : Successful - Wed Sep 08 19:32:05 2021 2 | Quartus II 64-Bit Version : 15.0.0 Build 145 04/22/2015 SJ Full Version 3 | Revision Name : dpll 4 | Top-level Entity Name : dpll 5 | Family : Cyclone IV E 6 | Device : EP4CE15F17C8 7 | Timing Models : Final 8 | Total logic elements : 212 / 15,408 ( 1 % ) 9 | Total combinational functions : 197 / 15,408 ( 1 % ) 10 | Dedicated logic registers : 63 / 15,408 ( < 1 % ) 11 | Total registers : 63 12 | Total pins : 27 / 166 ( 16 % ) 13 | Total virtual pins : 0 14 | Total memory bits : 0 / 516,096 ( 0 % ) 15 | Embedded Multiplier 9-bit elements : 0 / 112 ( 0 % ) 16 | Total PLLs : 0 / 4 ( 0 % ) 17 | -------------------------------------------------------------------------------- /incremental_db/README: -------------------------------------------------------------------------------- 1 | This folder contains data for incremental compilation. 2 | 3 | The compiled_partitions sub-folder contains previous compilation results for each partition. 4 | As long as this folder is preserved, incremental compilation results from earlier compiles 5 | can be re-used. To perform a clean compilation from source files for all partitions, both 6 | the db and incremental_db folder should be removed. 7 | 8 | The imported_partitions sub-folder contains the last imported QXP for each imported partition. 9 | As long as this folder is preserved, imported partitions will be automatically re-imported 10 | when the db or incremental_db/compiled_partitions folders are removed. 11 | 12 | -------------------------------------------------------------------------------- /output_files/dpll.fit.smsg: -------------------------------------------------------------------------------- 1 | Extra Info (176273): Performing register packing on registers with non-logic cell location assignments 2 | Extra Info (176274): Completed register packing on registers with non-logic cell location assignments 3 | Extra Info (176236): Started Fast Input/Output/OE register processing 4 | Extra Info (176237): Finished Fast Input/Output/OE register processing 5 | Extra Info (176238): Start inferring scan chains for DSP blocks 6 | Extra Info (176239): Inferring scan chains for DSP blocks is complete 7 | Extra Info (176248): Moving registers into I/O cells, Multiplier Blocks, and RAM blocks to improve timing and density 8 | Extra Info (176249): Finished moving registers into I/O cells, Multiplier Blocks, and RAM blocks 9 | -------------------------------------------------------------------------------- /simulation/modelsim/rtl_work/freqdivider/_primary.vhd: -------------------------------------------------------------------------------- 1 | library verilog; 2 | use verilog.vl_types.all; 3 | entity freqdivider is 4 | generic( 5 | DividerLength : integer := 7 6 | ); 7 | port( 8 | MainClock : in vl_logic; 9 | DividerMax : in vl_logic_vector(7 downto 0); 10 | Positive : in vl_logic; 11 | Negative : in vl_logic; 12 | FrequencyOut : out vl_logic; 13 | DividerCounter : out vl_logic_vector; 14 | DividerMaxValue : out vl_logic_vector(7 downto 0) 15 | ); 16 | attribute mti_svvh_generic_type : integer; 17 | attribute mti_svvh_generic_type of DividerLength : constant is 1; 18 | end freqdivider; 19 | -------------------------------------------------------------------------------- /simulation/modelsim/rtl_work/randomwalkfilter/_primary.vhd: -------------------------------------------------------------------------------- 1 | library verilog; 2 | use verilog.vl_types.all; 3 | entity randomwalkfilter is 4 | generic( 5 | FilterLength : integer := 8; 6 | FilterResetValue: integer := 4; 7 | FilterMaxValue : vl_notype; 8 | FilterMinValue : vl_notype 9 | ); 10 | port( 11 | MainClock : in vl_logic; 12 | Lead : in vl_logic; 13 | Lag : in vl_logic; 14 | Positive : out vl_logic; 15 | Negative : out vl_logic 16 | ); 17 | attribute mti_svvh_generic_type : integer; 18 | attribute mti_svvh_generic_type of FilterLength : constant is 1; 19 | attribute mti_svvh_generic_type of FilterResetValue : constant is 1; 20 | attribute mti_svvh_generic_type of FilterMaxValue : constant is 3; 21 | attribute mti_svvh_generic_type of FilterMinValue : constant is 3; 22 | end randomwalkfilter; 23 | -------------------------------------------------------------------------------- /simulation/modelsim/rtl_work/dpll/_primary.vhd: -------------------------------------------------------------------------------- 1 | library verilog; 2 | use verilog.vl_types.all; 3 | entity dpll is 4 | generic( 5 | DividerMultiple : integer := 5 6 | ); 7 | port( 8 | MainClock : in vl_logic; 9 | SignalIn : in vl_logic; 10 | SignalOut : out vl_logic; 11 | SynchronousSignal: out vl_logic; 12 | Positive : out vl_logic; 13 | Negative : out vl_logic; 14 | Lead : out vl_logic; 15 | Lag : out vl_logic; 16 | InputSignalEdge : out vl_logic; 17 | OutputSignalEdge: out vl_logic; 18 | Lock : out vl_logic; 19 | PeriodCount : out vl_logic_vector(7 downto 0); 20 | DividerMaxValue : out vl_logic_vector(7 downto 0) 21 | ); 22 | attribute mti_svvh_generic_type : integer; 23 | attribute mti_svvh_generic_type of DividerMultiple : constant is 1; 24 | end dpll; 25 | -------------------------------------------------------------------------------- /simulation/modelsim/dpll_run_msim_rtl_verilog.do: -------------------------------------------------------------------------------- 1 | transcript on 2 | if {[file exists rtl_work]} { 3 | vdel -lib rtl_work -all 4 | } 5 | vlib rtl_work 6 | vmap work rtl_work 7 | 8 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/dpll.v} 9 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/freqdivider.v} 10 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/phasecomparator.v} 11 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/randomwalkfilter.v} 12 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/variableresetrandomwalkfilter.v} 13 | 14 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/simulation/modelsim {D:/comber/ADPLL/simulation/modelsim/dpll.vt} 15 | 16 | vsim -t 1ps -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L cycloneive_ver -L rtl_work -L work -voptargs="+acc" dpll_vlg_tst 17 | 18 | add wave * 19 | view structure 20 | view signals 21 | run -all 22 | -------------------------------------------------------------------------------- /simulation/modelsim/dpll_run_msim_rtl_verilog.do.bak: -------------------------------------------------------------------------------- 1 | transcript on 2 | if {[file exists rtl_work]} { 3 | vdel -lib rtl_work -all 4 | } 5 | vlib rtl_work 6 | vmap work rtl_work 7 | 8 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/dpll.v} 9 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/freqdivider.v} 10 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/phasecomparator.v} 11 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/randomwalkfilter.v} 12 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/variableresetrandomwalkfilter.v} 13 | 14 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/simulation/modelsim {D:/comber/ADPLL/simulation/modelsim/dpll.vt} 15 | 16 | vsim -t 1ps -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L cycloneive_ver -L rtl_work -L work -voptargs="+acc" dpll_vlg_tst 17 | 18 | add wave * 19 | view structure 20 | view signals 21 | run -all 22 | -------------------------------------------------------------------------------- /simulation/modelsim/dpll_run_msim_rtl_verilog.do.bak1: -------------------------------------------------------------------------------- 1 | transcript on 2 | if {[file exists rtl_work]} { 3 | vdel -lib rtl_work -all 4 | } 5 | vlib rtl_work 6 | vmap work rtl_work 7 | 8 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/dpll.v} 9 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/freqdivider.v} 10 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/phasecomparator.v} 11 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/randomwalkfilter.v} 12 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/variableresetrandomwalkfilter.v} 13 | 14 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/simulation/modelsim {D:/comber/ADPLL/simulation/modelsim/dpll.vt} 15 | 16 | vsim -t 1ps -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L cycloneive_ver -L rtl_work -L work -voptargs="+acc" dpll_vlg_tst 17 | 18 | add wave * 19 | view structure 20 | view signals 21 | run -all 22 | -------------------------------------------------------------------------------- /simulation/modelsim/dpll_run_msim_rtl_verilog.do.bak10: -------------------------------------------------------------------------------- 1 | transcript on 2 | if {[file exists rtl_work]} { 3 | vdel -lib rtl_work -all 4 | } 5 | vlib rtl_work 6 | vmap work rtl_work 7 | 8 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/dpll.v} 9 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/freqdivider.v} 10 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/phasecomparator.v} 11 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/randomwalkfilter.v} 12 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/variableresetrandomwalkfilter.v} 13 | 14 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/simulation/modelsim {D:/comber/ADPLL/simulation/modelsim/dpll.vt} 15 | 16 | vsim -t 1ps -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L cycloneive_ver -L rtl_work -L work -voptargs="+acc" dpll_vlg_tst 17 | 18 | add wave * 19 | view structure 20 | view signals 21 | run -all 22 | -------------------------------------------------------------------------------- /simulation/modelsim/dpll_run_msim_rtl_verilog.do.bak11: -------------------------------------------------------------------------------- 1 | transcript on 2 | if {[file exists rtl_work]} { 3 | vdel -lib rtl_work -all 4 | } 5 | vlib rtl_work 6 | vmap work rtl_work 7 | 8 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/dpll.v} 9 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/freqdivider.v} 10 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/phasecomparator.v} 11 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/randomwalkfilter.v} 12 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/variableresetrandomwalkfilter.v} 13 | 14 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/simulation/modelsim {D:/comber/ADPLL/simulation/modelsim/dpll.vt} 15 | 16 | vsim -t 1ps -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L cycloneive_ver -L rtl_work -L work -voptargs="+acc" dpll_vlg_tst 17 | 18 | add wave * 19 | view structure 20 | view signals 21 | run -all 22 | -------------------------------------------------------------------------------- /simulation/modelsim/dpll_run_msim_rtl_verilog.do.bak2: -------------------------------------------------------------------------------- 1 | transcript on 2 | if {[file exists rtl_work]} { 3 | vdel -lib rtl_work -all 4 | } 5 | vlib rtl_work 6 | vmap work rtl_work 7 | 8 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/dpll.v} 9 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/freqdivider.v} 10 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/phasecomparator.v} 11 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/randomwalkfilter.v} 12 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/variableresetrandomwalkfilter.v} 13 | 14 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/simulation/modelsim {D:/comber/ADPLL/simulation/modelsim/dpll.vt} 15 | 16 | vsim -t 1ps -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L cycloneive_ver -L rtl_work -L work -voptargs="+acc" dpll_vlg_tst 17 | 18 | add wave * 19 | view structure 20 | view signals 21 | run -all 22 | -------------------------------------------------------------------------------- /simulation/modelsim/dpll_run_msim_rtl_verilog.do.bak3: -------------------------------------------------------------------------------- 1 | transcript on 2 | if {[file exists rtl_work]} { 3 | vdel -lib rtl_work -all 4 | } 5 | vlib rtl_work 6 | vmap work rtl_work 7 | 8 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/dpll.v} 9 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/freqdivider.v} 10 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/phasecomparator.v} 11 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/randomwalkfilter.v} 12 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/variableresetrandomwalkfilter.v} 13 | 14 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/simulation/modelsim {D:/comber/ADPLL/simulation/modelsim/dpll.vt} 15 | 16 | vsim -t 1ps -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L cycloneive_ver -L rtl_work -L work -voptargs="+acc" dpll_vlg_tst 17 | 18 | add wave * 19 | view structure 20 | view signals 21 | run -all 22 | -------------------------------------------------------------------------------- /simulation/modelsim/dpll_run_msim_rtl_verilog.do.bak4: -------------------------------------------------------------------------------- 1 | transcript on 2 | if {[file exists rtl_work]} { 3 | vdel -lib rtl_work -all 4 | } 5 | vlib rtl_work 6 | vmap work rtl_work 7 | 8 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/dpll.v} 9 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/freqdivider.v} 10 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/phasecomparator.v} 11 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/randomwalkfilter.v} 12 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/variableresetrandomwalkfilter.v} 13 | 14 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/simulation/modelsim {D:/comber/ADPLL/simulation/modelsim/dpll.vt} 15 | 16 | vsim -t 1ps -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L cycloneive_ver -L rtl_work -L work -voptargs="+acc" dpll_vlg_tst 17 | 18 | add wave * 19 | view structure 20 | view signals 21 | run -all 22 | -------------------------------------------------------------------------------- /simulation/modelsim/dpll_run_msim_rtl_verilog.do.bak5: -------------------------------------------------------------------------------- 1 | transcript on 2 | if {[file exists rtl_work]} { 3 | vdel -lib rtl_work -all 4 | } 5 | vlib rtl_work 6 | vmap work rtl_work 7 | 8 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/dpll.v} 9 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/freqdivider.v} 10 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/phasecomparator.v} 11 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/randomwalkfilter.v} 12 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/variableresetrandomwalkfilter.v} 13 | 14 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/simulation/modelsim {D:/comber/ADPLL/simulation/modelsim/dpll.vt} 15 | 16 | vsim -t 1ps -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L cycloneive_ver -L rtl_work -L work -voptargs="+acc" dpll_vlg_tst 17 | 18 | add wave * 19 | view structure 20 | view signals 21 | run -all 22 | -------------------------------------------------------------------------------- /simulation/modelsim/dpll_run_msim_rtl_verilog.do.bak6: -------------------------------------------------------------------------------- 1 | transcript on 2 | if {[file exists rtl_work]} { 3 | vdel -lib rtl_work -all 4 | } 5 | vlib rtl_work 6 | vmap work rtl_work 7 | 8 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/dpll.v} 9 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/freqdivider.v} 10 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/phasecomparator.v} 11 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/randomwalkfilter.v} 12 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/variableresetrandomwalkfilter.v} 13 | 14 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/simulation/modelsim {D:/comber/ADPLL/simulation/modelsim/dpll.vt} 15 | 16 | vsim -t 1ps -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L cycloneive_ver -L rtl_work -L work -voptargs="+acc" dpll_vlg_tst 17 | 18 | add wave * 19 | view structure 20 | view signals 21 | run -all 22 | -------------------------------------------------------------------------------- /simulation/modelsim/dpll_run_msim_rtl_verilog.do.bak7: -------------------------------------------------------------------------------- 1 | transcript on 2 | if {[file exists rtl_work]} { 3 | vdel -lib rtl_work -all 4 | } 5 | vlib rtl_work 6 | vmap work rtl_work 7 | 8 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/dpll.v} 9 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/freqdivider.v} 10 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/phasecomparator.v} 11 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/randomwalkfilter.v} 12 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/variableresetrandomwalkfilter.v} 13 | 14 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/simulation/modelsim {D:/comber/ADPLL/simulation/modelsim/dpll.vt} 15 | 16 | vsim -t 1ps -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L cycloneive_ver -L rtl_work -L work -voptargs="+acc" dpll_vlg_tst 17 | 18 | add wave * 19 | view structure 20 | view signals 21 | run -all 22 | -------------------------------------------------------------------------------- /simulation/modelsim/dpll_run_msim_rtl_verilog.do.bak8: -------------------------------------------------------------------------------- 1 | transcript on 2 | if {[file exists rtl_work]} { 3 | vdel -lib rtl_work -all 4 | } 5 | vlib rtl_work 6 | vmap work rtl_work 7 | 8 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/dpll.v} 9 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/freqdivider.v} 10 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/phasecomparator.v} 11 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/randomwalkfilter.v} 12 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/variableresetrandomwalkfilter.v} 13 | 14 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/simulation/modelsim {D:/comber/ADPLL/simulation/modelsim/dpll.vt} 15 | 16 | vsim -t 1ps -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L cycloneive_ver -L rtl_work -L work -voptargs="+acc" dpll_vlg_tst 17 | 18 | add wave * 19 | view structure 20 | view signals 21 | run -all 22 | -------------------------------------------------------------------------------- /simulation/modelsim/dpll_run_msim_rtl_verilog.do.bak9: -------------------------------------------------------------------------------- 1 | transcript on 2 | if {[file exists rtl_work]} { 3 | vdel -lib rtl_work -all 4 | } 5 | vlib rtl_work 6 | vmap work rtl_work 7 | 8 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/dpll.v} 9 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/freqdivider.v} 10 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/phasecomparator.v} 11 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/randomwalkfilter.v} 12 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/variableresetrandomwalkfilter.v} 13 | 14 | vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/simulation/modelsim {D:/comber/ADPLL/simulation/modelsim/dpll.vt} 15 | 16 | vsim -t 1ps -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L cycloneive_ver -L rtl_work -L work -voptargs="+acc" dpll_vlg_tst 17 | 18 | add wave * 19 | view structure 20 | view signals 21 | run -all 22 | -------------------------------------------------------------------------------- /dpll_nativelink_simulation.rpt: -------------------------------------------------------------------------------- 1 | Info: Start Nativelink Simulation process 2 | Info: NativeLink has detected Verilog design -- Verilog simulation models will be used 3 | 4 | ========= EDA Simulation Settings ===================== 5 | 6 | Sim Mode : RTL 7 | Family : cycloneive 8 | Quartus root : d:/application/altera/quartus_15.0/quartus/bin64/ 9 | Quartus sim root : d:/application/altera/quartus_15.0/quartus/eda/sim_lib 10 | Simulation Tool : modelsim-altera 11 | Simulation Language : verilog 12 | Simulation Mode : GUI 13 | Sim Output File : 14 | Sim SDF file : 15 | Sim dir : simulation\modelsim 16 | 17 | ======================================================= 18 | 19 | Info: Starting NativeLink simulation with ModelSim-Altera software 20 | Sourced NativeLink script d:/application/altera/quartus_15.0/quartus/common/tcl/internal/nativelink/modelsim.tcl 21 | Warning: File dpll_run_msim_rtl_verilog.do already exists - backing up current file as dpll_run_msim_rtl_verilog.do.bak11 22 | Info: Spawning ModelSim-Altera Simulation software 23 | -------------------------------------------------------------------------------- /dpll.qpf: -------------------------------------------------------------------------------- 1 | # -------------------------------------------------------------------------- # 2 | # 3 | # Copyright (C) 1991-2013 Altera Corporation 4 | # Your use of Altera Corporation's design tools, logic functions 5 | # and other software and tools, and its AMPP partner logic 6 | # functions, and any output files from any of the foregoing 7 | # (including device programming or simulation files), and any 8 | # associated documentation or information are expressly subject 9 | # to the terms and conditions of the Altera Program License 10 | # Subscription Agreement, Altera MegaCore Function License 11 | # Agreement, or other applicable license agreement, including, 12 | # without limitation, that your use is for the sole purpose of 13 | # programming logic devices manufactured by Altera and sold by 14 | # Altera or its authorized distributors. Please refer to the 15 | # applicable agreement for further details. 16 | # 17 | # -------------------------------------------------------------------------- # 18 | # 19 | # Quartus II 64-Bit 20 | # Version 13.1.0 Build 162 10/23/2013 SJ Full Version 21 | # Date created = 22:10:53 August 26, 2021 22 | # 23 | # -------------------------------------------------------------------------- # 24 | 25 | QUARTUS_VERSION = "13.1" 26 | DATE = "22:10:53 August 26, 2021" 27 | 28 | # Revisions 29 | 30 | PROJECT_REVISION = "dpll" 31 | -------------------------------------------------------------------------------- /source/dpll.v.bak: -------------------------------------------------------------------------------- 1 | /* Top module */ 2 | module dpll(SignalIn, SignalOut, MainClock, 3 | Positive, Negative, Lead, Lag 4 | ); 5 | input SignalIn; // input signal 6 | input MainClock; // reference signal 7 | output SignalOut; // output 8 | output Positive, Negative; // internal DPLL signals 9 | output Lead, Lag; // internal DPLL signals 10 | 11 | // phase comparator 12 | phasecomparator inst_ph_cmp(.MainClock(MainClock), .InputSignal(SignalIn), 13 | .OutputSignal(SignalOut), .Lead(Lead), .Lag(Lag) 14 | ); 15 | /* 16 | // "Zero-Reset Random Walk Filter" 17 | randomwalkfilter inst_zrwf(.MainClock(MainClock), .Lead(Lead), .Lag(Lag), 18 | .Positive(Positive), .Negative(Negative) 19 | ); 20 | */ 21 | 22 | // "Variable-Reset Random Walk Filter" 23 | variableresetrandomwalkfilter inst_zrwf(.MainClock(MainClock), .Lead(Lead), .Lag(Lag), 24 | .Positive(Positive), .Negative(Negative) 25 | ); 26 | 27 | // controlled frequency divider 28 | freqdivider inst_freqdiv(.MainClock(MainClock), .FrequencyOut(SignalOut), 29 | .Positive(Positive), .Negative(Negative) 30 | ); 31 | 32 | endmodule 33 | -------------------------------------------------------------------------------- /simulation/modelsim/rtl_work/variableresetrandomwalkfilter/_primary.vhd: -------------------------------------------------------------------------------- 1 | library verilog; 2 | use verilog.vl_types.all; 3 | entity variableresetrandomwalkfilter is 4 | generic( 5 | N_FilterLength : integer := 8; 6 | N_FilterResetValue: integer := 8; 7 | N_FilterMaxValue: vl_notype; 8 | N_FilterMinValue: vl_notype; 9 | ResetterCounterLength: integer := 4; 10 | ResetterCounterMaxValue: integer := 3; 11 | ResetterCounterMinValue: integer := 13 12 | ); 13 | port( 14 | MainClock : in vl_logic; 15 | Lead : in vl_logic; 16 | Lag : in vl_logic; 17 | Positive : out vl_logic; 18 | Negative : out vl_logic; 19 | N_FilterCounter : out vl_logic_vector; 20 | ResetterValue : out vl_logic_vector; 21 | ResetterCounter : out vl_logic_vector 22 | ); 23 | attribute mti_svvh_generic_type : integer; 24 | attribute mti_svvh_generic_type of N_FilterLength : constant is 1; 25 | attribute mti_svvh_generic_type of N_FilterResetValue : constant is 1; 26 | attribute mti_svvh_generic_type of N_FilterMaxValue : constant is 3; 27 | attribute mti_svvh_generic_type of N_FilterMinValue : constant is 3; 28 | attribute mti_svvh_generic_type of ResetterCounterLength : constant is 1; 29 | attribute mti_svvh_generic_type of ResetterCounterMaxValue : constant is 1; 30 | attribute mti_svvh_generic_type of ResetterCounterMinValue : constant is 1; 31 | end variableresetrandomwalkfilter; 32 | -------------------------------------------------------------------------------- /db/dpll.lpc.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 |
HierarchyInputConstant InputUnused InputFloating InputOutputConstant OutputUnused OutputFloating OutputBidirConstant BidirUnused BidirInput only BidirOutput only Bidir
inst_freqdiv11000900000000
inst_zrwf|inst_M_F3000200000000
inst_zrwf3000200000000
inst_ph_cmp30001400000000
83 | -------------------------------------------------------------------------------- /source/randomwalkfilter.v.bak: -------------------------------------------------------------------------------- 1 | 2 | /* Random Walk Filter with reset value of 0*/ 3 | module randomwalkfilter( 4 | MainClock, 5 | Lead, Lag, 6 | Positive, Negative); 7 | 8 | input MainClock, Lead, Lag; // System Clock and Phase Comparator signals 9 | output Positive, Negative; // "positive shift" and "negative shift" outputs 10 | 11 | /* some parametere are accessible from outside */ 12 | parameter FilterLength = 8; 13 | parameter FilterResetValue = 4; 14 | parameter FilterMaxValue = FilterResetValue; 15 | parameter FilterMinValue = 256 - FilterResetValue; 16 | 17 | /* reversive counter */ 18 | reg [FilterLength-1 : 0] FilterCounter; 19 | 20 | initial begin 21 | FilterCounter <= 0; 22 | end 23 | 24 | /* calculation of output pulses synchrinized with MainClock */ 25 | always @(posedge MainClock) 26 | begin 27 | if((FilterCounter == FilterMaxValue) || (FilterCounter == FilterMinValue)) 28 | FilterCounter <= 0; 29 | else 30 | begin 31 | if(Lead) FilterCounter <= FilterCounter + 1; 32 | if(Lag) FilterCounter <= FilterCounter - 1; 33 | end 34 | end 35 | 36 | /* making "Lead" and "Lag" signals when */ 37 | /* counter reached max or min levels */ 38 | reg Positive, Negative; 39 | always @(posedge MainClock) 40 | begin 41 | Positive <= (FilterCounter == FilterMaxValue); 42 | Negative <= (FilterCounter == FilterMinValue); 43 | end 44 | 45 | endmodule 46 | 47 | 48 | -------------------------------------------------------------------------------- /source/randomwalkfilter.v: -------------------------------------------------------------------------------- 1 | `timescale 1ns / 1ps 2 | 3 | /* Random Walk Filter with reset value of 0*/ 4 | module randomwalkfilter( 5 | MainClock, 6 | Lead, Lag, 7 | Positive, Negative); 8 | 9 | input MainClock, Lead, Lag; // System Clock and Phase Comparator signals 10 | output Positive, Negative; // "positive shift" and "negative shift" outputs 11 | 12 | /* some parametere are accessible from outside */ 13 | parameter FilterLength = 8; 14 | parameter FilterResetValue = 4; 15 | parameter FilterMaxValue = FilterResetValue; 16 | parameter FilterMinValue = 256 - FilterResetValue; 17 | 18 | /* reversive counter */ 19 | reg [FilterLength-1 : 0] FilterCounter; 20 | 21 | initial begin 22 | FilterCounter <= 0; 23 | end 24 | 25 | /* calculation of output pulses synchrinized with MainClock */ 26 | always @(posedge MainClock) 27 | begin 28 | if((FilterCounter == FilterMaxValue) || (FilterCounter == FilterMinValue)) 29 | FilterCounter <= 0; 30 | else 31 | begin 32 | if(Lead) FilterCounter <= FilterCounter + 1; 33 | if(Lag) FilterCounter <= FilterCounter - 1; 34 | end 35 | end 36 | 37 | /* making "Lead" and "Lag" signals when */ 38 | /* counter reached max or min levels */ 39 | reg Positive, Negative; 40 | always @(posedge MainClock) 41 | begin 42 | Positive <= (FilterCounter == FilterMaxValue); 43 | Negative <= (FilterCounter == FilterMinValue); 44 | end 45 | 46 | endmodule 47 | 48 | 49 | -------------------------------------------------------------------------------- /source/freqdivider.v.bak: -------------------------------------------------------------------------------- 1 | /* frequency divider and phase controller */ 2 | 3 | module freqdivider(MainClock, Positive, Negative, FrequencyOut); 4 | input MainClock; // main clock 5 | input Positive, Negative; // signals Positive, Negative are synchronous with MainClock 6 | output FrequencyOut; // output frequency 7 | 8 | /* needed counter length */ 9 | parameter DividerLength = 7; 10 | 11 | /* controlled prescaler, after this prescales the "divider by 2" installed, */ 12 | /* so composite divide coefficient will be equivalent of 96 (in this example) - */ 13 | /* it's necessary for work DPLL on frequency 192kHz with oscillator */ 14 | /* frequency 18432kHz */ 15 | /* additional divider by 2 used for getting output signal with duty factor of 2 */ 16 | 17 | parameter DividerMaxValue = 48; 18 | reg [DividerLength-1 : 0] DividerCounter; 19 | reg FrequencyOut; // registered output 20 | /* Process of freq. division according to signals from Random Deviations Filter: */ 21 | /* if "lag" then counter will incremented by 2 */ 22 | /* if "lead" then counter will not changed */ 23 | /* if there is no phase lead or lag then counter normally incremented by 1 */ 24 | always @(posedge MainClock) 25 | begin 26 | if(DividerCounter >= (DividerMaxValue - 1)) 27 | DividerCounter <= 0; 28 | else if(Negative) DividerCounter <= DividerCounter + 2; 29 | else if(Positive) DividerCounter <= DividerCounter; 30 | else DividerCounter <= DividerCounter + 1; 31 | if(DividerCounter == 0) FrequencyOut <= ~FrequencyOut; // additional divider by 2 - for producing 50% duty factor of the output signal 32 | end 33 | endmodule 34 | -------------------------------------------------------------------------------- /db/add_sub_7pc.tdf: -------------------------------------------------------------------------------- 1 | --lpm_add_sub CARRY_CHAIN="MANUAL" CARRY_CHAIN_LENGTH=48 DEVICE_FAMILY="Cyclone IV E" LPM_DIRECTION="SUB" LPM_WIDTH=1 cout dataa datab result 2 | --VERSION_BEGIN 15.0 cbx_cycloneii 2015:04:22:18:04:07:SJ cbx_lpm_add_sub 2015:04:22:18:04:07:SJ cbx_mgl 2015:04:22:18:06:50:SJ cbx_stratix 2015:04:22:18:04:08:SJ cbx_stratixii 2015:04:22:18:04:08:SJ VERSION_END 3 | 4 | 5 | -- Copyright (C) 1991-2015 Altera Corporation. All rights reserved. 6 | -- Your use of Altera Corporation's design tools, logic functions 7 | -- and other software and tools, and its AMPP partner logic 8 | -- functions, and any output files from any of the foregoing 9 | -- (including device programming or simulation files), and any 10 | -- associated documentation or information are expressly subject 11 | -- to the terms and conditions of the Altera Program License 12 | -- Subscription Agreement, the Altera Quartus II License Agreement, 13 | -- the Altera MegaCore Function License Agreement, or other 14 | -- applicable license agreement, including, without limitation, 15 | -- that your use is for the sole purpose of programming logic 16 | -- devices manufactured by Altera and sold by Altera or its 17 | -- authorized distributors. Please refer to the applicable 18 | -- agreement for further details. 19 | 20 | 21 | 22 | --synthesis_resources = 23 | SUBDESIGN add_sub_7pc 24 | ( 25 | cout : output; 26 | dataa[0..0] : input; 27 | datab[0..0] : input; 28 | result[0..0] : output; 29 | ) 30 | VARIABLE 31 | carry_eqn[0..0] : WIRE; 32 | cin_wire : WIRE; 33 | datab_node[0..0] : WIRE; 34 | sum_eqn[0..0] : WIRE; 35 | 36 | BEGIN 37 | carry_eqn[] = ( ((dataa[0..0] & datab_node[0..0]) # ((dataa[0..0] # datab_node[0..0]) & cin_wire))); 38 | cin_wire = B"1"; 39 | cout = carry_eqn[0..0]; 40 | datab_node[] = (! datab[]); 41 | result[] = sum_eqn[]; 42 | sum_eqn[] = ( ((dataa[0..0] $ datab_node[0..0]) $ cin_wire)); 43 | END; 44 | --VALID FILE 45 | -------------------------------------------------------------------------------- /db/dpll.npp.qmsg: -------------------------------------------------------------------------------- 1 | { "Info" "IQEXE_SEPARATOR" "" "*******************************************************************" { } { } 3 0 "*******************************************************************" 0 0 "Quartus II" 0 -1 1632320806965 ""} 2 | { "Info" "IQEXE_START_BANNER_PRODUCT" "Netlist Viewers Preprocess Quartus II 64-Bit " "Running Quartus II 64-Bit Netlist Viewers Preprocess" { { "Info" "IQEXE_START_BANNER_VERSION" "Version 15.0.0 Build 145 04/22/2015 SJ Full Version " "Version 15.0.0 Build 145 04/22/2015 SJ Full Version" { } { } 0 0 "%1!s!" 0 0 "Quartus II" 0 -1 1632320806971 ""} { "Info" "IQEXE_START_BANNER_TIME" "Wed Sep 22 22:26:46 2021 " "Processing started: Wed Sep 22 22:26:46 2021" { } { } 0 0 "Processing started: %1!s!" 0 0 "Quartus II" 0 -1 1632320806971 ""} } { } 4 0 "Running %2!s! %1!s!" 0 0 "Netlist Viewers Preprocess" 0 -1 1632320806971 ""} 3 | { "Info" "IQEXE_START_BANNER_COMMANDLINE" "quartus_npp dpll -c dpll --netlist_type=sgate " "Command: quartus_npp dpll -c dpll --netlist_type=sgate" { } { } 0 0 "Command: %1!s!" 0 0 "Netlist Viewers Preprocess" 0 -1 1632320806971 ""} 4 | { "Info" "IQEXE_ERROR_COUNT" "Netlist Viewers Preprocess 0 s 0 s Quartus II 64-Bit " "Quartus II 64-Bit Netlist Viewers Preprocess was successful. 0 errors, 0 warnings" { { "Info" "IQEXE_END_PEAK_VSIZE_MEMORY" "4666 " "Peak virtual memory: 4666 megabytes" { } { } 0 0 "Peak virtual memory: %1!s! megabytes" 0 0 "Quartus II" 0 -1 1632320807162 ""} { "Info" "IQEXE_END_BANNER_TIME" "Wed Sep 22 22:26:47 2021 " "Processing ended: Wed Sep 22 22:26:47 2021" { } { } 0 0 "Processing ended: %1!s!" 0 0 "Quartus II" 0 -1 1632320807162 ""} { "Info" "IQEXE_ELAPSED_TIME" "00:00:01 " "Elapsed time: 00:00:01" { } { } 0 0 "Elapsed time: %1!s!" 0 0 "Quartus II" 0 -1 1632320807162 ""} { "Info" "IQEXE_ELAPSED_CPU_TIME" "00:00:00 " "Total CPU time (on all processors): 00:00:00" { } { } 0 0 "Total CPU time (on all processors): %1!s!" 0 0 "Quartus II" 0 -1 1632320807162 ""} } { } 0 0 "%6!s! %1!s! was successful. %2!d! error%3!s!, %4!d! warning%5!s!" 0 0 "Netlist Viewers Preprocess" 0 -1 1632320807162 ""} 5 | -------------------------------------------------------------------------------- /db/add_sub_8pc.tdf: -------------------------------------------------------------------------------- 1 | --lpm_add_sub CARRY_CHAIN="MANUAL" CARRY_CHAIN_LENGTH=48 DEVICE_FAMILY="Cyclone IV E" LPM_DIRECTION="SUB" LPM_WIDTH=2 cout dataa datab result 2 | --VERSION_BEGIN 15.0 cbx_cycloneii 2015:04:22:18:04:07:SJ cbx_lpm_add_sub 2015:04:22:18:04:07:SJ cbx_mgl 2015:04:22:18:06:50:SJ cbx_stratix 2015:04:22:18:04:08:SJ cbx_stratixii 2015:04:22:18:04:08:SJ VERSION_END 3 | 4 | 5 | -- Copyright (C) 1991-2015 Altera Corporation. All rights reserved. 6 | -- Your use of Altera Corporation's design tools, logic functions 7 | -- and other software and tools, and its AMPP partner logic 8 | -- functions, and any output files from any of the foregoing 9 | -- (including device programming or simulation files), and any 10 | -- associated documentation or information are expressly subject 11 | -- to the terms and conditions of the Altera Program License 12 | -- Subscription Agreement, the Altera Quartus II License Agreement, 13 | -- the Altera MegaCore Function License Agreement, or other 14 | -- applicable license agreement, including, without limitation, 15 | -- that your use is for the sole purpose of programming logic 16 | -- devices manufactured by Altera and sold by Altera or its 17 | -- authorized distributors. Please refer to the applicable 18 | -- agreement for further details. 19 | 20 | 21 | 22 | --synthesis_resources = 23 | SUBDESIGN add_sub_8pc 24 | ( 25 | cout : output; 26 | dataa[1..0] : input; 27 | datab[1..0] : input; 28 | result[1..0] : output; 29 | ) 30 | VARIABLE 31 | carry_eqn[1..0] : WIRE; 32 | cin_wire : WIRE; 33 | datab_node[1..0] : WIRE; 34 | sum_eqn[1..0] : WIRE; 35 | 36 | BEGIN 37 | carry_eqn[] = ( ((dataa[1..1] & datab_node[1..1]) # ((dataa[1..1] # datab_node[1..1]) & carry_eqn[0..0])), ((dataa[0..0] & datab_node[0..0]) # ((dataa[0..0] # datab_node[0..0]) & cin_wire))); 38 | cin_wire = B"1"; 39 | cout = carry_eqn[1..1]; 40 | datab_node[] = (! datab[]); 41 | result[] = sum_eqn[]; 42 | sum_eqn[] = ( ((dataa[1..1] $ datab_node[1..1]) $ carry_eqn[0..0]), ((dataa[0..0] $ datab_node[0..0]) $ cin_wire)); 43 | END; 44 | --VALID FILE 45 | -------------------------------------------------------------------------------- /db/lpm_divide_jhm.tdf: -------------------------------------------------------------------------------- 1 | --lpm_divide DEVICE_FAMILY="Cyclone IV E" LPM_DREPRESENTATION="UNSIGNED" LPM_NREPRESENTATION="UNSIGNED" LPM_WIDTHD=4 LPM_WIDTHN=8 OPTIMIZE_FOR_SPEED=5 denom numer quotient CARRY_CHAIN="MANUAL" CARRY_CHAIN_LENGTH=48 IGNORE_CARRY_BUFFERS="OFF" 2 | --VERSION_BEGIN 15.0 cbx_cycloneii 2015:04:22:18:04:07:SJ cbx_lpm_abs 2015:04:22:18:04:07:SJ cbx_lpm_add_sub 2015:04:22:18:04:07:SJ cbx_lpm_divide 2015:04:22:18:04:08:SJ cbx_mgl 2015:04:22:18:06:50:SJ cbx_stratix 2015:04:22:18:04:08:SJ cbx_stratixii 2015:04:22:18:04:08:SJ cbx_util_mgl 2015:04:22:18:04:08:SJ VERSION_END 3 | 4 | 5 | -- Copyright (C) 1991-2015 Altera Corporation. All rights reserved. 6 | -- Your use of Altera Corporation's design tools, logic functions 7 | -- and other software and tools, and its AMPP partner logic 8 | -- functions, and any output files from any of the foregoing 9 | -- (including device programming or simulation files), and any 10 | -- associated documentation or information are expressly subject 11 | -- to the terms and conditions of the Altera Program License 12 | -- Subscription Agreement, the Altera Quartus II License Agreement, 13 | -- the Altera MegaCore Function License Agreement, or other 14 | -- applicable license agreement, including, without limitation, 15 | -- that your use is for the sole purpose of programming logic 16 | -- devices manufactured by Altera and sold by Altera or its 17 | -- authorized distributors. Please refer to the applicable 18 | -- agreement for further details. 19 | 20 | 21 | FUNCTION sign_div_unsign_bkh (denominator[3..0], numerator[7..0]) 22 | RETURNS ( quotient[7..0], remainder[3..0]); 23 | 24 | --synthesis_resources = lut 33 25 | SUBDESIGN lpm_divide_jhm 26 | ( 27 | denom[3..0] : input; 28 | numer[7..0] : input; 29 | quotient[7..0] : output; 30 | remain[3..0] : output; 31 | ) 32 | VARIABLE 33 | divider : sign_div_unsign_bkh; 34 | numer_tmp[7..0] : WIRE; 35 | 36 | BEGIN 37 | divider.denominator[] = denom[]; 38 | divider.numerator[] = numer_tmp[]; 39 | numer_tmp[] = numer[]; 40 | quotient[] = divider.quotient[]; 41 | remain[] = divider.remainder[]; 42 | END; 43 | --VALID FILE 44 | -------------------------------------------------------------------------------- /db/dpll.lpc.txt: -------------------------------------------------------------------------------- 1 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2 | ; Legal Partition Candidates ; 3 | +--------------------+-------+----------------+--------------+----------------+--------+-----------------+---------------+-----------------+-------+----------------+--------------+------------------+-------------------+ 4 | ; Hierarchy ; Input ; Constant Input ; Unused Input ; Floating Input ; Output ; Constant Output ; Unused Output ; Floating Output ; Bidir ; Constant Bidir ; Unused Bidir ; Input only Bidir ; Output only Bidir ; 5 | +--------------------+-------+----------------+--------------+----------------+--------+-----------------+---------------+-----------------+-------+----------------+--------------+------------------+-------------------+ 6 | ; inst_freqdiv ; 11 ; 0 ; 0 ; 0 ; 9 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 7 | ; inst_zrwf|inst_M_F ; 3 ; 0 ; 0 ; 0 ; 2 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 8 | ; inst_zrwf ; 3 ; 0 ; 0 ; 0 ; 2 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 9 | ; inst_ph_cmp ; 3 ; 0 ; 0 ; 0 ; 14 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 10 | +--------------------+-------+----------------+--------------+----------------+--------+-----------------+---------------+-----------------+-------+----------------+--------------+------------------+-------------------+ 11 | -------------------------------------------------------------------------------- /source/dpll.v: -------------------------------------------------------------------------------- 1 | 2 | /* Top module */ 3 | module dpll( 4 | MainClock, 5 | SignalIn, SignalOut, SynchronousSignal, 6 | Positive, Negative, Lead, Lag, 7 | InputSignalEdge, OutputSignalEdge, Lock, PeriodCount,DividerMaxValue 8 | ); 9 | 10 | input SignalIn; // input signal 11 | input MainClock; // reference signal 12 | output SignalOut; // output 13 | output Positive, Negative; // internal DPLL signals 14 | output Lead, Lag; // internal DPLL signals 15 | output InputSignalEdge, OutputSignalEdge; 16 | output Lock; 17 | output SynchronousSignal; 18 | output [7:0] PeriodCount; 19 | output [7:0] DividerMaxValue; 20 | 21 | 22 | parameter DividerMultiple = 5; 23 | 24 | // phase comparator 25 | phasecomparator inst_ph_cmp(.MainClock(MainClock), .InputSignal(SignalIn), 26 | .OutputSignal(SignalOut), .Lead(Lead), .Lag(Lag), 27 | .InputSignalEdge(InputSignalEdge), .OutputSignalEdge(OutputSignalEdge), 28 | .Lock(Lock), .SynchronousSignal(SynchronousSignal), 29 | .PeriodCount(PeriodCount) 30 | ); 31 | /* 32 | // "Zero-Reset Random Walk Filter" 33 | randomwalkfilter inst_zrwf(.MainClock(MainClock), .Lead(Lead), .Lag(Lag), 34 | .Positive(Positive), .Negative(Negative) 35 | ); 36 | */ 37 | 38 | // defparam inst_freqdiv.DividerMaxValue; 39 | 40 | // "Variable-Reset Random Walk Filter" 41 | variableresetrandomwalkfilter inst_zrwf(.MainClock(MainClock), .Lead(Lead), .Lag(Lag), 42 | .Positive(Positive), .Negative(Negative) 43 | ); 44 | 45 | // controlled frequency divider 46 | freqdivider inst_freqdiv(.MainClock(MainClock), .FrequencyOut(SignalOut), .DividerMax(PeriodCount/DividerMultiple), 47 | .Positive(Positive), .Negative(Negative), .DividerMaxValue(DividerMaxValue) 48 | ); 49 | 50 | 51 | 52 | endmodule 53 | -------------------------------------------------------------------------------- /db/sign_div_unsign_bkh.tdf: -------------------------------------------------------------------------------- 1 | --sign_div_unsign DEN_REPRESENTATION="UNSIGNED" DEN_WIDTH=4 LPM_PIPELINE=0 MAXIMIZE_SPEED=5 NUM_REPRESENTATION="UNSIGNED" NUM_WIDTH=8 SKIP_BITS=0 denominator numerator quotient remainder 2 | --VERSION_BEGIN 15.0 cbx_cycloneii 2015:04:22:18:04:07:SJ cbx_lpm_abs 2015:04:22:18:04:07:SJ cbx_lpm_add_sub 2015:04:22:18:04:07:SJ cbx_lpm_divide 2015:04:22:18:04:08:SJ cbx_mgl 2015:04:22:18:06:50:SJ cbx_stratix 2015:04:22:18:04:08:SJ cbx_stratixii 2015:04:22:18:04:08:SJ cbx_util_mgl 2015:04:22:18:04:08:SJ VERSION_END 3 | 4 | 5 | -- Copyright (C) 1991-2015 Altera Corporation. All rights reserved. 6 | -- Your use of Altera Corporation's design tools, logic functions 7 | -- and other software and tools, and its AMPP partner logic 8 | -- functions, and any output files from any of the foregoing 9 | -- (including device programming or simulation files), and any 10 | -- associated documentation or information are expressly subject 11 | -- to the terms and conditions of the Altera Program License 12 | -- Subscription Agreement, the Altera Quartus II License Agreement, 13 | -- the Altera MegaCore Function License Agreement, or other 14 | -- applicable license agreement, including, without limitation, 15 | -- that your use is for the sole purpose of programming logic 16 | -- devices manufactured by Altera and sold by Altera or its 17 | -- authorized distributors. Please refer to the applicable 18 | -- agreement for further details. 19 | 20 | 21 | FUNCTION alt_u_div_a4f (denominator[3..0], numerator[7..0]) 22 | RETURNS ( quotient[7..0], remainder[3..0]); 23 | 24 | --synthesis_resources = lut 33 25 | SUBDESIGN sign_div_unsign_bkh 26 | ( 27 | denominator[3..0] : input; 28 | numerator[7..0] : input; 29 | quotient[7..0] : output; 30 | remainder[3..0] : output; 31 | ) 32 | VARIABLE 33 | divider : alt_u_div_a4f; 34 | norm_num[7..0] : WIRE; 35 | protect_quotient[7..0] : WIRE; 36 | protect_remainder[3..0] : WIRE; 37 | 38 | BEGIN 39 | divider.denominator[] = denominator[]; 40 | divider.numerator[] = norm_num[]; 41 | norm_num[] = numerator[]; 42 | protect_quotient[] = divider.quotient[]; 43 | protect_remainder[] = divider.remainder[]; 44 | quotient[] = protect_quotient[]; 45 | remainder[] = protect_remainder[]; 46 | END; 47 | --VALID FILE 48 | -------------------------------------------------------------------------------- /db/dpll.asm.qmsg: -------------------------------------------------------------------------------- 1 | { "Info" "IQEXE_SEPARATOR" "" "*******************************************************************" { } { } 3 0 "*******************************************************************" 0 0 "Quartus II" 0 -1 1631100728485 ""} 2 | { "Info" "IQEXE_START_BANNER_PRODUCT" "Assembler Quartus II 64-Bit " "Running Quartus II 64-Bit Assembler" { { "Info" "IQEXE_START_BANNER_VERSION" "Version 15.0.0 Build 145 04/22/2015 SJ Full Version " "Version 15.0.0 Build 145 04/22/2015 SJ Full Version" { } { } 0 0 "%1!s!" 0 0 "Quartus II" 0 -1 1631100728500 ""} { "Info" "IQEXE_START_BANNER_TIME" "Wed Sep 08 19:32:08 2021 " "Processing started: Wed Sep 08 19:32:08 2021" { } { } 0 0 "Processing started: %1!s!" 0 0 "Quartus II" 0 -1 1631100728500 ""} } { } 4 0 "Running %2!s! %1!s!" 0 0 "Assembler" 0 -1 1631100728500 ""} 3 | { "Info" "IQEXE_START_BANNER_COMMANDLINE" "quartus_asm --read_settings_files=off --write_settings_files=off dpll -c dpll " "Command: quartus_asm --read_settings_files=off --write_settings_files=off dpll -c dpll" { } { } 0 0 "Command: %1!s!" 0 0 "Assembler" 0 -1 1631100728500 ""} 4 | { "Info" "IASM_ASM_GENERATING_POWER_DATA" "" "Writing out detailed assembly data for power analysis" { } { } 0 115031 "Writing out detailed assembly data for power analysis" 0 0 "Assembler" 0 -1 1631100729325 ""} 5 | { "Info" "IASM_ASM_GENERATING_PROGRAMMING_FILES" "" "Assembler is generating device programming files" { } { } 0 115030 "Assembler is generating device programming files" 0 0 "Assembler" 0 -1 1631100729356 ""} 6 | { "Info" "IQEXE_ERROR_COUNT" "Assembler 0 s 0 s Quartus II 64-Bit " "Quartus II 64-Bit Assembler was successful. 0 errors, 0 warnings" { { "Info" "IQEXE_END_PEAK_VSIZE_MEMORY" "4746 " "Peak virtual memory: 4746 megabytes" { } { } 0 0 "Peak virtual memory: %1!s! megabytes" 0 0 "Quartus II" 0 -1 1631100729575 ""} { "Info" "IQEXE_END_BANNER_TIME" "Wed Sep 08 19:32:09 2021 " "Processing ended: Wed Sep 08 19:32:09 2021" { } { } 0 0 "Processing ended: %1!s!" 0 0 "Quartus II" 0 -1 1631100729575 ""} { "Info" "IQEXE_ELAPSED_TIME" "00:00:01 " "Elapsed time: 00:00:01" { } { } 0 0 "Elapsed time: %1!s!" 0 0 "Quartus II" 0 -1 1631100729575 ""} { "Info" "IQEXE_ELAPSED_CPU_TIME" "00:00:01 " "Total CPU time (on all processors): 00:00:01" { } { } 0 0 "Total CPU time (on all processors): %1!s!" 0 0 "Quartus II" 0 -1 1631100729575 ""} } { } 0 0 "%6!s! %1!s! was successful. %2!d! error%3!s!, %4!d! warning%5!s!" 0 0 "Assembler" 0 -1 1631100729575 ""} 7 | -------------------------------------------------------------------------------- /simulation/modelsim/dpll.vt: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // This file contains a Verilog test bench template that is freely editable to 3 | // suit user's needs .Comments are provided in each section to help the user 4 | // fill out necessary details. 5 | // ***************************************************************************** 6 | // Generated on "08/26/2021 22:23:57" 7 | // Verilog Test Bench template for design : dpll 8 | // Simulation tool : ModelSim-Altera (Verilog) 9 | // 10 | 11 | `timescale 1ns / 1ps 12 | module dpll_vlg_tst(); 13 | //reg 14 | reg MainClock; 15 | reg SignalIn; 16 | // wires 17 | wire SynchronousSignal; 18 | wire SignalOut; 19 | wire Lead; 20 | wire Lag; 21 | wire Positive; 22 | wire Negative; 23 | 24 | wire InputSignalEdge, OutputSignalEdge; 25 | wire Lock; 26 | wire [7:0] PeriodCount; 27 | wire [7:0] DividerMaxValue; 28 | 29 | 30 | // assign statements (if any) 31 | dpll i1 ( 32 | // port map - connection between master ports and signals/registers 33 | .MainClock(MainClock), 34 | .SignalIn(SignalIn), 35 | .SignalOut(SignalOut), 36 | .Lead(Lead), 37 | .Lag(Lag), 38 | .Positive(Positive), 39 | .Negative(Negative), 40 | .InputSignalEdge(InputSignalEdge), 41 | .OutputSignalEdge(OutputSignalEdge), 42 | .Lock(Lock), 43 | .SynchronousSignal(SynchronousSignal), 44 | .PeriodCount(PeriodCount), 45 | .DividerMaxValue(DividerMaxValue) 46 | ); 47 | 48 | /* 系统时钟 */ 49 | parameter clk_period = 20; // 20ns => 50MHz 50 | /* 输入时钟 */ 51 | parameter signal_period = 2000; // 2000ns => 500KHz 52 | /* 输入延时 */ 53 | parameter delay = 3287; // 随机设置 54 | 55 | reg SignalStart; 56 | initial 57 | begin 58 | MainClock <= 1'b1; 59 | SignalIn <= 1'b0; 60 | SignalStart = 1'b1; 61 | $display("Running testbench"); 62 | end 63 | 64 | always 65 | begin 66 | #(clk_period / 2) MainClock <= ~MainClock; 67 | end 68 | 69 | /* 给输入添加延时 */ 70 | always 71 | begin 72 | case(SignalStart) 73 | 1'b1 : #delay SignalStart = 1'b0; 74 | 1'b0 : #(signal_period / 2) SignalIn <= ~SignalIn; 75 | endcase 76 | end 77 | 78 | 79 | endmodule 80 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /simulation/modelsim/dpll.vt.bak: -------------------------------------------------------------------------------- 1 | // Copyright (C) 1991-2013 Altera Corporation 2 | // Your use of Altera Corporation's design tools, logic functions 3 | // and other software and tools, and its AMPP partner logic 4 | // functions, and any output files from any of the foregoing 5 | // (including device programming or simulation files), and any 6 | // associated documentation or information are expressly subject 7 | // to the terms and conditions of the Altera Program License 8 | // Subscription Agreement, Altera MegaCore Function License 9 | // Agreement, or other applicable license agreement, including, 10 | // without limitation, that your use is for the sole purpose of 11 | // programming logic devices manufactured by Altera and sold by 12 | // Altera or its authorized distributors. Please refer to the 13 | // applicable agreement for further details. 14 | 15 | // ***************************************************************************** 16 | // This file contains a Verilog test bench template that is freely editable to 17 | // suit user's needs .Comments are provided in each section to help the user 18 | // fill out necessary details. 19 | // ***************************************************************************** 20 | // Generated on "08/26/2021 22:23:57" 21 | 22 | // Verilog Test Bench template for design : dpll 23 | // 24 | // Simulation tool : ModelSim-Altera (Verilog) 25 | // 26 | 27 | `timescale 1 ns/ 1 ps 28 | module dpll_vlg_tst(); 29 | // constants 30 | // general purpose registers 31 | reg eachvec; 32 | // test vector input registers 33 | reg MainClock; 34 | reg SignalIn; 35 | // wires 36 | wire Lag; 37 | wire Lead; 38 | wire Negative; 39 | wire Positive; 40 | wire SignalOut; 41 | 42 | // assign statements (if any) 43 | dpll i1 ( 44 | // port map - connection between master ports and signals/registers 45 | .Lag(Lag), 46 | .Lead(Lead), 47 | .MainClock(MainClock), 48 | .Negative(Negative), 49 | .Positive(Positive), 50 | .SignalIn(SignalIn), 51 | .SignalOut(SignalOut) 52 | ); 53 | initial 54 | begin 55 | // code that executes only once 56 | // insert code here --> begin 57 | 58 | // --> end 59 | $display("Running testbench"); 60 | end 61 | always 62 | // optional sensitivity list 63 | // @(event1 or event2 or .... eventn) 64 | begin 65 | // code executes for every event on sensitivity list 66 | // insert code here --> begin 67 | 68 | @eachvec; 69 | // --> end 70 | end 71 | endmodule 72 | 73 | -------------------------------------------------------------------------------- /source/freqdivider.v: -------------------------------------------------------------------------------- 1 | `timescale 1ns / 1ps 2 | 3 | /* frequency divider and phase controller */ 4 | 5 | module freqdivider(MainClock, DividerMax, Positive, Negative, FrequencyOut, DividerCounter, DividerMaxValue); 6 | input MainClock; // main clock 7 | input [7:0] DividerMax; 8 | input Positive, Negative; // signals Positive, Negative are synchronous with MainClock 9 | output reg FrequencyOut; // output frequency 10 | output [6:0] DividerCounter; 11 | output [7:0] DividerMaxValue; 12 | 13 | /* needed counter length */ 14 | parameter DividerLength = 7; 15 | 16 | /* controlled prescaler, after this prescales the "divider by 2" installed, */ 17 | /* so composite divide coefficient will be equivalent of 96 (in this example) - */ 18 | /* it's necessary for work DPLL on frequency 192kHz with oscillator */ 19 | /* frequency 18432kHz */ 20 | /* additional divider by 2 used for getting output signal with duty factor of 2 */ 21 | 22 | reg [7:0] DividerMaxValue; 23 | always @(posedge MainClock) 24 | begin 25 | DividerMaxValue <= DividerMax; 26 | end 27 | // parameter DividerMaxValue = 48; 28 | 29 | reg [DividerLength-1 : 0] DividerCounter; 30 | reg overflow; 31 | 32 | initial 33 | begin 34 | FrequencyOut <= 1'b0; 35 | DividerCounter <= 0; 36 | overflow <= 0; 37 | end 38 | 39 | /* Process of freq. division according to signals from Random Deviations Filter: */ 40 | /* if "lag" then counter will incremented by 2 */ 41 | /* if "lead" then counter will not changed */ 42 | /* if there is no phase lead or lag then counter normally incremented by 1 */ 43 | 44 | always @(posedge MainClock) 45 | begin 46 | #0.001; 47 | if(Negative == 1'b0 && Positive == 1'b0 && DividerCounter >= (DividerMaxValue - 1)) 48 | begin 49 | DividerCounter <= 0; 50 | overflow <= 1'b1; 51 | end 52 | else if(Negative == 1'b1) 53 | begin 54 | if(DividerCounter <= (DividerMaxValue - 3)) 55 | DividerCounter <= DividerCounter + 2; 56 | else if(DividerCounter == (DividerMaxValue - 2)) 57 | begin 58 | DividerCounter <= 0; 59 | overflow <= 1'b1; 60 | end 61 | else if(DividerCounter == (DividerMaxValue - 1)) 62 | begin 63 | DividerCounter <= 1; 64 | overflow <= 1'b1; 65 | end 66 | end 67 | else if(Positive == 1'b1) 68 | begin 69 | DividerCounter <= DividerCounter; 70 | overflow <= 1'b0; 71 | end 72 | else 73 | begin 74 | DividerCounter <= DividerCounter + 1; 75 | overflow <= 1'b0; 76 | end 77 | // additional divider by 2 - for producing 50% duty factor of the output signal 78 | end 79 | 80 | always @(posedge overflow) 81 | begin 82 | FrequencyOut <= ~FrequencyOut; 83 | end 84 | 85 | endmodule 86 | -------------------------------------------------------------------------------- /output_files/dpll.sta.summary: -------------------------------------------------------------------------------- 1 | ------------------------------------------------------------ 2 | TimeQuest Timing Analyzer Summary 3 | ------------------------------------------------------------ 4 | 5 | Type : Slow 1200mV 85C Model Setup 'MainClock' 6 | Slack : -13.438 7 | TNS : -174.284 8 | 9 | Type : Slow 1200mV 85C Model Setup 'phasecomparator:inst_ph_cmp|InputSignalEdgeDet[0]' 10 | Slack : -1.393 11 | TNS : -1.393 12 | 13 | Type : Slow 1200mV 85C Model Setup 'freqdivider:inst_freqdiv|overflow' 14 | Slack : -0.405 15 | TNS : -0.405 16 | 17 | Type : Slow 1200mV 85C Model Hold 'phasecomparator:inst_ph_cmp|InputSignalEdgeDet[0]' 18 | Slack : -0.271 19 | TNS : -0.756 20 | 21 | Type : Slow 1200mV 85C Model Hold 'MainClock' 22 | Slack : 0.455 23 | TNS : 0.000 24 | 25 | Type : Slow 1200mV 85C Model Hold 'freqdivider:inst_freqdiv|overflow' 26 | Slack : 0.880 27 | TNS : 0.000 28 | 29 | Type : Slow 1200mV 85C Model Minimum Pulse Width 'MainClock' 30 | Slack : -3.000 31 | TNS : -80.324 32 | 33 | Type : Slow 1200mV 85C Model Minimum Pulse Width 'phasecomparator:inst_ph_cmp|InputSignalEdgeDet[0]' 34 | Slack : -1.487 35 | TNS : -14.870 36 | 37 | Type : Slow 1200mV 85C Model Minimum Pulse Width 'freqdivider:inst_freqdiv|overflow' 38 | Slack : -1.487 39 | TNS : -1.487 40 | 41 | Type : Slow 1200mV 0C Model Setup 'MainClock' 42 | Slack : -12.320 43 | TNS : -158.317 44 | 45 | Type : Slow 1200mV 0C Model Setup 'phasecomparator:inst_ph_cmp|InputSignalEdgeDet[0]' 46 | Slack : -1.100 47 | TNS : -1.100 48 | 49 | Type : Slow 1200mV 0C Model Setup 'freqdivider:inst_freqdiv|overflow' 50 | Slack : -0.293 51 | TNS : -0.293 52 | 53 | Type : Slow 1200mV 0C Model Hold 'phasecomparator:inst_ph_cmp|InputSignalEdgeDet[0]' 54 | Slack : -0.275 55 | TNS : -0.768 56 | 57 | Type : Slow 1200mV 0C Model Hold 'MainClock' 58 | Slack : 0.403 59 | TNS : 0.000 60 | 61 | Type : Slow 1200mV 0C Model Hold 'freqdivider:inst_freqdiv|overflow' 62 | Slack : 0.802 63 | TNS : 0.000 64 | 65 | Type : Slow 1200mV 0C Model Minimum Pulse Width 'MainClock' 66 | Slack : -3.000 67 | TNS : -80.324 68 | 69 | Type : Slow 1200mV 0C Model Minimum Pulse Width 'phasecomparator:inst_ph_cmp|InputSignalEdgeDet[0]' 70 | Slack : -1.487 71 | TNS : -15.027 72 | 73 | Type : Slow 1200mV 0C Model Minimum Pulse Width 'freqdivider:inst_freqdiv|overflow' 74 | Slack : -1.487 75 | TNS : -1.487 76 | 77 | Type : Fast 1200mV 0C Model Setup 'MainClock' 78 | Slack : -5.353 79 | TNS : -49.978 80 | 81 | Type : Fast 1200mV 0C Model Setup 'phasecomparator:inst_ph_cmp|InputSignalEdgeDet[0]' 82 | Slack : -0.183 83 | TNS : -0.183 84 | 85 | Type : Fast 1200mV 0C Model Setup 'freqdivider:inst_freqdiv|overflow' 86 | Slack : 0.429 87 | TNS : 0.000 88 | 89 | Type : Fast 1200mV 0C Model Hold 'MainClock' 90 | Slack : 0.104 91 | TNS : 0.000 92 | 93 | Type : Fast 1200mV 0C Model Hold 'phasecomparator:inst_ph_cmp|InputSignalEdgeDet[0]' 94 | Slack : 0.171 95 | TNS : 0.000 96 | 97 | Type : Fast 1200mV 0C Model Hold 'freqdivider:inst_freqdiv|overflow' 98 | Slack : 0.373 99 | TNS : 0.000 100 | 101 | Type : Fast 1200mV 0C Model Minimum Pulse Width 'MainClock' 102 | Slack : -3.000 103 | TNS : -57.791 104 | 105 | Type : Fast 1200mV 0C Model Minimum Pulse Width 'phasecomparator:inst_ph_cmp|InputSignalEdgeDet[0]' 106 | Slack : -1.000 107 | TNS : -10.000 108 | 109 | Type : Fast 1200mV 0C Model Minimum Pulse Width 'freqdivider:inst_freqdiv|overflow' 110 | Slack : -1.000 111 | TNS : -1.000 112 | 113 | ------------------------------------------------------------ 114 | -------------------------------------------------------------------------------- /simulation/modelsim/rtl_work/_info: -------------------------------------------------------------------------------- 1 | m255 2 | K3 3 | 13 4 | cModel Technology 5 | Z0 dD:\comber\ADPLL\simulation\modelsim 6 | vdpll 7 | I8h;RKLL@H[_BoMzzi4RHC2 8 | VL<5a1^k`;8[g2j`PBkb99R?Vl8GODbL4;0C1 21 | !s85 0 22 | !s108 1632394243.686000 23 | !s107 D:/comber/ADPLL/source/dpll.v| 24 | !s90 -reportprogress|300|-vlog01compat|-work|work|+incdir+D:/comber/ADPLL/source|D:/comber/ADPLL/source/dpll.v| 25 | !s101 -O0 26 | vdpll_vlg_tst 27 | !i10b 1 28 | !s100 @1ZoYHT_9eMn=`@?I`0:e0 29 | IW4849N9@bBmef2?WCgXF?1 30 | V4AgCMk3==QXNJ6zG5N88zJl7?2[1 48 | V9z0Uk6^VAZdVVzmeW=>[g3 49 | R1 50 | w1631101943 51 | 8D:/comber/ADPLL/source/freqdivider.v 52 | FD:/comber/ADPLL/source/freqdivider.v 53 | L0 5 54 | R2 55 | r1 56 | 31 57 | R3 58 | R4 59 | !i10b 1 60 | !s100 [l?9?3 109 | R1 110 | w1631101968 111 | 8D:/comber/ADPLL/source/variableresetrandomwalkfilter.v 112 | FD:/comber/ADPLL/source/variableresetrandomwalkfilter.v 113 | L0 5 114 | R2 115 | r1 116 | 31 117 | R3 118 | R4 119 | !i10b 1 120 | !s100 IVg_1l^[Lfj?nJ=G8kUZT1 121 | !s85 0 122 | !s108 1632394244.088000 123 | !s107 D:/comber/ADPLL/source/variableresetrandomwalkfilter.v| 124 | !s90 -reportprogress|300|-vlog01compat|-work|work|+incdir+D:/comber/ADPLL/source|D:/comber/ADPLL/source/variableresetrandomwalkfilter.v| 125 | !s101 -O0 126 | -------------------------------------------------------------------------------- /source/phasecomparator.v: -------------------------------------------------------------------------------- 1 | `timescale 1ns / 1ps 2 | 3 | /* phase comparator */ 4 | 5 | module phasecomparator(InputSignal, OutputSignal, MainClock, Lead, Lag, InputSignalEdge, OutputSignalEdge, Lock, SynchronousSignal, PeriodCount); 6 | 7 | input MainClock; // System Clock 8 | input InputSignal, OutputSignal; // PLL input(reference) and output(dejittered clock) signals 9 | output SynchronousSignal; 10 | output Lead, Lag; // Lead and Lag signals 11 | output InputSignalEdge, OutputSignalEdge, Lock; 12 | output [7:0] PeriodCount; 13 | 14 | /* D触发器,同步输入信号 */ 15 | reg SynchronousSignal; 16 | always @(posedge MainClock) 17 | begin 18 | SynchronousSignal <= InputSignal; 19 | end 20 | 21 | reg [1:0] InputSignalEdgeDet; // detector of the rising edge 22 | always @(posedge MainClock) 23 | begin 24 | #0.001; 25 | InputSignalEdgeDet <= { InputSignalEdgeDet[0], SynchronousSignal }; 26 | end 27 | 28 | reg [1:0] OutputSignalEdgeDet; // detector of the rising edge 29 | always @(posedge MainClock) 30 | begin 31 | #0.002; 32 | OutputSignalEdgeDet <= { OutputSignalEdgeDet[0], OutputSignal }; 33 | end 34 | 35 | /* this signal checked at rising edge of MainClock. */ 36 | /* It's simple detector of the Input signal rising edge - */ 37 | /* When it detected then we check the level of the output.*/ 38 | /* There is possible to place additional 2 registers for */ 39 | /* output signal for eliminatig the cmp. constant phase error */ 40 | wire InputSignalEdge = (InputSignalEdgeDet == 2'b01); // InputSignal上升沿 41 | wire InputSignalDownEdge = (InputSignalEdgeDet == 2'b10); // InputSignal下降沿 42 | wire OutputSignalEdge = (OutputSignalEdgeDet == 2'b01); // OutputSignal上升沿 43 | 44 | /* 计算输入信号的频率(时钟周期数) */ 45 | reg flag; 46 | reg [7:0] cnt, PeriodCount; 47 | always @(posedge MainClock) 48 | begin 49 | #0.001; 50 | if(flag) 51 | begin 52 | if(SynchronousSignal) 53 | begin 54 | cnt <= cnt + 1; 55 | end 56 | end 57 | end 58 | always @(posedge InputSignalDownEdge) 59 | begin 60 | flag = 1'b0; 61 | PeriodCount <= cnt; 62 | end 63 | 64 | /* "Lead" signal will be generate in case of output==1 during input rising edge*/ 65 | reg Lead, Lag; // outputs "Lead", "Lag" are registered 66 | always @(posedge MainClock) 67 | begin 68 | if(Lock) 69 | begin 70 | Lag <= 1'b0; 71 | Lead <= 1'b0; 72 | end 73 | else 74 | begin 75 | #0.001; 76 | Lag <= ((InputSignalEdge == 1'b1) && (OutputSignal == 1'b0)); 77 | Lead <= ((InputSignalEdge == 1'b1) && (OutputSignal == 1'b1)); 78 | end 79 | end 80 | 81 | reg Lock; 82 | always @(posedge InputSignalEdge) 83 | begin 84 | #0.002; 85 | if(OutputSignalEdge) 86 | Lock <= 1'b1; 87 | else 88 | Lock <= 1'b0; 89 | end 90 | 91 | initial begin 92 | flag <= 1'b1; 93 | Lock <= 1'b0; 94 | cnt <= 8'd0; 95 | PeriodCount <= 8'd0; 96 | OutputSignalEdgeDet <= 2'b00; 97 | InputSignalEdgeDet <= 2'b00; 98 | end 99 | 100 | 101 | endmodule 102 | -------------------------------------------------------------------------------- /output_files/dpll.asm.rpt: -------------------------------------------------------------------------------- 1 | Assembler report for dpll 2 | Wed Sep 08 19:32:09 2021 3 | Quartus II 64-Bit Version 15.0.0 Build 145 04/22/2015 SJ Full Version 4 | 5 | 6 | --------------------- 7 | ; Table of Contents ; 8 | --------------------- 9 | 1. Legal Notice 10 | 2. Assembler Summary 11 | 3. Assembler Settings 12 | 4. Assembler Generated Files 13 | 5. Assembler Device Options: D:/comber/ADPLL/output_files/dpll.sof 14 | 6. Assembler Messages 15 | 16 | 17 | 18 | ---------------- 19 | ; Legal Notice ; 20 | ---------------- 21 | Copyright (C) 1991-2015 Altera Corporation. All rights reserved. 22 | Your use of Altera Corporation's design tools, logic functions 23 | and other software and tools, and its AMPP partner logic 24 | functions, and any output files from any of the foregoing 25 | (including device programming or simulation files), and any 26 | associated documentation or information are expressly subject 27 | to the terms and conditions of the Altera Program License 28 | Subscription Agreement, the Altera Quartus II License Agreement, 29 | the Altera MegaCore Function License Agreement, or other 30 | applicable license agreement, including, without limitation, 31 | that your use is for the sole purpose of programming logic 32 | devices manufactured by Altera and sold by Altera or its 33 | authorized distributors. Please refer to the applicable 34 | agreement for further details. 35 | 36 | 37 | 38 | +---------------------------------------------------------------+ 39 | ; Assembler Summary ; 40 | +-----------------------+---------------------------------------+ 41 | ; Assembler Status ; Successful - Wed Sep 08 19:32:09 2021 ; 42 | ; Revision Name ; dpll ; 43 | ; Top-level Entity Name ; dpll ; 44 | ; Family ; Cyclone IV E ; 45 | ; Device ; EP4CE15F17C8 ; 46 | +-----------------------+---------------------------------------+ 47 | 48 | 49 | +----------------------------------+ 50 | ; Assembler Settings ; 51 | +--------+---------+---------------+ 52 | ; Option ; Setting ; Default Value ; 53 | +--------+---------+---------------+ 54 | 55 | 56 | +---------------------------------------+ 57 | ; Assembler Generated Files ; 58 | +---------------------------------------+ 59 | ; File Name ; 60 | +---------------------------------------+ 61 | ; D:/comber/ADPLL/output_files/dpll.sof ; 62 | +---------------------------------------+ 63 | 64 | 65 | +-----------------------------------------------------------------+ 66 | ; Assembler Device Options: D:/comber/ADPLL/output_files/dpll.sof ; 67 | +----------------+------------------------------------------------+ 68 | ; Option ; Setting ; 69 | +----------------+------------------------------------------------+ 70 | ; Device ; EP4CE15F17C8 ; 71 | ; JTAG usercode ; 0x000F8AED ; 72 | ; Checksum ; 0x000F8AED ; 73 | +----------------+------------------------------------------------+ 74 | 75 | 76 | +--------------------+ 77 | ; Assembler Messages ; 78 | +--------------------+ 79 | Info: ******************************************************************* 80 | Info: Running Quartus II 64-Bit Assembler 81 | Info: Version 15.0.0 Build 145 04/22/2015 SJ Full Version 82 | Info: Processing started: Wed Sep 08 19:32:08 2021 83 | Info: Command: quartus_asm --read_settings_files=off --write_settings_files=off dpll -c dpll 84 | Info (115031): Writing out detailed assembly data for power analysis 85 | Info (115030): Assembler is generating device programming files 86 | Info: Quartus II 64-Bit Assembler was successful. 0 errors, 0 warnings 87 | Info: Peak virtual memory: 4746 megabytes 88 | Info: Processing ended: Wed Sep 08 19:32:09 2021 89 | Info: Elapsed time: 00:00:01 90 | Info: Total CPU time (on all processors): 00:00:01 91 | 92 | 93 | -------------------------------------------------------------------------------- /dpll.qsf: -------------------------------------------------------------------------------- 1 | # -------------------------------------------------------------------------- # 2 | # 3 | # Copyright (C) 1991-2013 Altera Corporation 4 | # Your use of Altera Corporation's design tools, logic functions 5 | # and other software and tools, and its AMPP partner logic 6 | # functions, and any output files from any of the foregoing 7 | # (including device programming or simulation files), and any 8 | # associated documentation or information are expressly subject 9 | # to the terms and conditions of the Altera Program License 10 | # Subscription Agreement, Altera MegaCore Function License 11 | # Agreement, or other applicable license agreement, including, 12 | # without limitation, that your use is for the sole purpose of 13 | # programming logic devices manufactured by Altera and sold by 14 | # Altera or its authorized distributors. Please refer to the 15 | # applicable agreement for further details. 16 | # 17 | # -------------------------------------------------------------------------- # 18 | # 19 | # Quartus II 64-Bit 20 | # Version 13.1.0 Build 162 10/23/2013 SJ Full Version 21 | # Date created = 22:10:53 August 26, 2021 22 | # 23 | # -------------------------------------------------------------------------- # 24 | # 25 | # Notes: 26 | # 27 | # 1) The default values for assignments are stored in the file: 28 | # dpll_assignment_defaults.qdf 29 | # If this file doesn't exist, see file: 30 | # assignment_defaults.qdf 31 | # 32 | # 2) Altera recommends that you do not modify this file. This 33 | # file is updated automatically by the Quartus II software 34 | # and any changes you make may be lost or overwritten. 35 | # 36 | # -------------------------------------------------------------------------- # 37 | 38 | 39 | set_global_assignment -name FAMILY "Cyclone IV E" 40 | set_global_assignment -name DEVICE EP4CE15F17C8 41 | set_global_assignment -name TOP_LEVEL_ENTITY dpll 42 | set_global_assignment -name ORIGINAL_QUARTUS_VERSION 13.1 43 | set_global_assignment -name PROJECT_CREATION_TIME_DATE "22:10:53 AUGUST 26, 2021" 44 | set_global_assignment -name LAST_QUARTUS_VERSION 15.0.0 45 | set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files 46 | set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0 47 | set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85 48 | set_global_assignment -name DEVICE_FILTER_PACKAGE FBGA 49 | set_global_assignment -name DEVICE_FILTER_SPEED_GRADE 8 50 | set_global_assignment -name ERROR_CHECK_FREQUENCY_DIVISOR 1 51 | set_global_assignment -name NOMINAL_CORE_SUPPLY_VOLTAGE 1.2V 52 | set_global_assignment -name EDA_SIMULATION_TOOL "ModelSim-Altera (Verilog)" 53 | set_global_assignment -name EDA_OUTPUT_DATA_FORMAT "VERILOG HDL" -section_id eda_simulation 54 | set_global_assignment -name VERILOG_FILE source/dpll.v 55 | set_global_assignment -name VERILOG_FILE source/phasecomparator.v 56 | set_global_assignment -name VERILOG_FILE source/randomwalkfilter.v 57 | set_global_assignment -name VERILOG_FILE source/variableresetrandomwalkfilter.v 58 | set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "23 MM HEAT SINK WITH 200 LFPM AIRFLOW" 59 | set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)" 60 | set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top 61 | set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top 62 | set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top 63 | set_global_assignment -name EDA_TIME_SCALE "1 ns" -section_id eda_simulation 64 | set_global_assignment -name EDA_TEST_BENCH_ENABLE_STATUS TEST_BENCH_MODE -section_id eda_simulation 65 | set_global_assignment -name EDA_NATIVELINK_SIMULATION_TEST_BENCH dpll -section_id eda_simulation 66 | set_global_assignment -name EDA_TEST_BENCH_NAME dpll -section_id eda_simulation 67 | set_global_assignment -name EDA_DESIGN_INSTANCE_NAME i1 -section_id dpll 68 | set_global_assignment -name EDA_TEST_BENCH_MODULE_NAME dpll_vlg_tst -section_id dpll 69 | set_global_assignment -name EDA_TEST_BENCH_FILE simulation/modelsim/dpll.vt -section_id dpll 70 | set_global_assignment -name VERILOG_FILE source/freqdivider.v 71 | set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top -------------------------------------------------------------------------------- /source/variableresetrandomwalkfilter.v.bak: -------------------------------------------------------------------------------- 1 | 2 | /* random-walk filter with variable reset */ 3 | 4 | module variableresetrandomwalkfilter( 5 | MainClock, 6 | Lead, Lag, 7 | Positive, Negative, 8 | N_FilterCounter, ResetterValue, ResetterCounter); 9 | 10 | input MainClock, Lead, Lag; // System Clock and Phase Comparator signals 11 | output Positive, Negative; // "positive shift" and "negative shift" outputs 12 | output [7 : 0] N_FilterCounter,ResetterValue; 13 | output [3 : 0] ResetterCounter; 14 | 15 | parameter N_FilterLength = 8; 16 | parameter N_FilterResetValue = 8; 17 | parameter N_FilterMaxValue = N_FilterResetValue; 18 | 19 | /* 256=2_PWR_8(counter length). Use this value because unsigned arithmetic */ 20 | parameter N_FilterMinValue = 256 - N_FilterResetValue; 21 | 22 | /* the counter length of reset scheme must be short */ 23 | parameter ResetterCounterLength = 4; 24 | parameter ResetterCounterMaxValue = 3; 25 | 26 | /* 16=2_PWR_4 */ 27 | parameter ResetterCounterMinValue = 16 - 3; 28 | 29 | /* counter "N - RandomWalkFilter" */ 30 | reg [N_FilterLength-1 : 0] N_FilterCounter; 31 | 32 | /* connections of "M - RandomWalkFilter" */ 33 | wire Up, Down; 34 | randomwalkfilter inst_M_F(.MainClock(MainClock), .Lead(Lead), .Lag(Lag), 35 | .Positive(Up), .Negative(Down)); 36 | 37 | defparam inst_M_F.FilterResetValue = 32; // length "M-RWF" = 32 38 | 39 | 40 | /* Reset Scheme. This counter changes on "M-RWF" counter */ 41 | reg [ResetterCounterLength-1 : 0] ResetterCounter; 42 | always @(posedge MainClock) 43 | begin 44 | if(Up) 45 | begin 46 | if((ResetterCounter < ResetterCounterMaxValue) || (ResetterCounter >= ResetterCounterMinValue)) 47 | ResetterCounter <= ResetterCounter + 1; 48 | end 49 | else if(Down) 50 | begin 51 | if((ResetterCounter <= ResetterCounterMaxValue) || (ResetterCounter > ResetterCounterMinValue)) 52 | ResetterCounter <= ResetterCounter - 1; 53 | end 54 | if((ResetterCounter > ResetterCounterMaxValue) && (ResetterCounter < ResetterCounterMinValue)) 55 | ResetterCounter <= 0; 56 | end 57 | 58 | /* Look-Up Table between ResetterCounter value and reset state of "N-RWF" */ 59 | reg [N_FilterLength-1 : 0] ResetterValue; 60 | always @(1) 61 | begin 62 | case(ResetterCounter) 63 | 16 - 3: ResetterValue = 256 - 7; 64 | 16 - 2: ResetterValue = 256 - 6; 65 | 16 - 1: ResetterValue = 256 - 4; 66 | 0: ResetterValue = 0; 67 | 1: ResetterValue = 4; 68 | 2: ResetterValue = 6; 69 | 3: ResetterValue = 7; 70 | default: ResetterValue = 0; 71 | endcase 72 | end 73 | 74 | /* "N-RWF" Filter has different reset states */ 75 | /* in accordance ResetterCounter value */ 76 | always @(posedge MainClock) 77 | begin 78 | if((N_FilterCounter == N_FilterMaxValue) || (N_FilterCounter == N_FilterMinValue)) 79 | N_FilterCounter <= ResetterValue; 80 | else 81 | begin 82 | if(Lead) N_FilterCounter <= N_FilterCounter + 1; 83 | if(Lag) N_FilterCounter <= N_FilterCounter - 1; 84 | end 85 | end 86 | 87 | /* making "Lead" and "Lag" signals when */ 88 | /* counter reached max or min levels */ 89 | reg Positive, Negative; 90 | always @(posedge MainClock) 91 | begin 92 | Positive <= (N_FilterCounter == N_FilterMaxValue); 93 | Negative <= (N_FilterCounter == N_FilterMinValue); 94 | end 95 | 96 | initial begin 97 | N_FilterCounter <= 0; 98 | ResetterCounter <= 0; 99 | ResetterValue <= 0; 100 | end 101 | 102 | 103 | endmodule 104 | -------------------------------------------------------------------------------- /source/variableresetrandomwalkfilter.v: -------------------------------------------------------------------------------- 1 | `timescale 1ns / 1ps 2 | 3 | /* random-walk filter with variable reset */ 4 | 5 | module variableresetrandomwalkfilter( 6 | MainClock, 7 | Lead, Lag, 8 | Positive, Negative, 9 | N_FilterCounter, ResetterValue, ResetterCounter); 10 | 11 | input MainClock, Lead, Lag; // System Clock and Phase Comparator signals 12 | output Positive, Negative; // "positive shift" and "negative shift" outputs 13 | output [7 : 0] N_FilterCounter,ResetterValue; 14 | output [3 : 0] ResetterCounter; 15 | 16 | parameter N_FilterLength = 8; 17 | parameter N_FilterResetValue = 8; 18 | parameter N_FilterMaxValue = N_FilterResetValue; 19 | 20 | /* 256=2_PWR_8(counter length). Use this value because unsigned arithmetic */ 21 | parameter N_FilterMinValue = 256 - N_FilterResetValue; 22 | 23 | /* the counter length of reset scheme must be short */ 24 | parameter ResetterCounterLength = 4; 25 | parameter ResetterCounterMaxValue = 3; 26 | 27 | /* 16=2_PWR_4 */ 28 | parameter ResetterCounterMinValue = 16 - 3; 29 | 30 | /* counter "N - RandomWalkFilter" */ 31 | reg [N_FilterLength-1 : 0] N_FilterCounter; 32 | 33 | /* connections of "M - RandomWalkFilter" */ 34 | wire Up, Down; 35 | randomwalkfilter inst_M_F(.MainClock(MainClock), .Lead(Lead), .Lag(Lag), 36 | .Positive(Up), .Negative(Down)); 37 | 38 | defparam inst_M_F.FilterResetValue = 32; // length "M-RWF" = 32 39 | 40 | 41 | /* Reset Scheme. This counter changes on "M-RWF" counter */ 42 | reg [ResetterCounterLength-1 : 0] ResetterCounter; 43 | always @(posedge MainClock) 44 | begin 45 | if(Up) 46 | begin 47 | if((ResetterCounter < ResetterCounterMaxValue) || (ResetterCounter >= ResetterCounterMinValue)) 48 | ResetterCounter <= ResetterCounter + 1; 49 | end 50 | else if(Down) 51 | begin 52 | if((ResetterCounter <= ResetterCounterMaxValue) || (ResetterCounter > ResetterCounterMinValue)) 53 | ResetterCounter <= ResetterCounter - 1; 54 | end 55 | if((ResetterCounter > ResetterCounterMaxValue) && (ResetterCounter < ResetterCounterMinValue)) 56 | ResetterCounter <= 0; 57 | end 58 | 59 | /* Look-Up Table between ResetterCounter value and reset state of "N-RWF" */ 60 | reg [N_FilterLength-1 : 0] ResetterValue; 61 | always @(1) 62 | begin 63 | case(ResetterCounter) 64 | 16 - 3: ResetterValue = 256 - 7; 65 | 16 - 2: ResetterValue = 256 - 6; 66 | 16 - 1: ResetterValue = 256 - 4; 67 | 0: ResetterValue = 0; 68 | 1: ResetterValue = 4; 69 | 2: ResetterValue = 6; 70 | 3: ResetterValue = 7; 71 | default: ResetterValue = 0; 72 | endcase 73 | end 74 | 75 | /* "N-RWF" Filter has different reset states */ 76 | /* in accordance ResetterCounter value */ 77 | always @(posedge MainClock) 78 | begin 79 | if((N_FilterCounter == N_FilterMaxValue) || (N_FilterCounter == N_FilterMinValue)) 80 | N_FilterCounter <= ResetterValue; 81 | else 82 | begin 83 | if(Lead) N_FilterCounter <= N_FilterCounter + 1; 84 | if(Lag) N_FilterCounter <= N_FilterCounter - 1; 85 | end 86 | end 87 | 88 | /* making "Lead" and "Lag" signals when */ 89 | /* counter reached max or min levels */ 90 | reg Positive, Negative; 91 | always @(posedge MainClock) 92 | begin 93 | Positive <= (N_FilterCounter == N_FilterMaxValue); 94 | Negative <= (N_FilterCounter == N_FilterMinValue); 95 | end 96 | 97 | initial begin 98 | N_FilterCounter <= 0; 99 | ResetterCounter <= 0; 100 | ResetterValue <= 0; 101 | end 102 | 103 | 104 | endmodule 105 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ADPLL_base_Verilog 2 | ## 基于Verilog的全数字锁相环 3 | 4 | --- 5 | 2021年9月23日 from [my blog:lijinbo.top](http://lijinbo.top/) 6 | --- 7 | 8 | # 概述 9 | 10 | 项目的主要目标就是用**Verilog**设计实现一款数字锁相环,基于低频率时钟源,倍频产生高频时钟,并且达到高频时钟输出相位锁定、占空比1:1的预期效果。设计全基于Verilog代码实现,第一阶段实现数字锁相环,达到输出锁定的效果,第二阶段进行倍频的实现。工程基于**QuartusII**平台实现,基于**Modelsim**平台进行行为仿真,验证功能的正确性,观测仿真波形图。 11 | 12 | ![](https://s2.loli.net/2021/12/06/arilVAXkFsG1gh8.png) 13 | 14 | 15 | 16 | # 层次结构 17 | 18 | 工程的结构分为顶层模块**dpll.v**和子模块**Phasecomparator**、**VariableResetRandomWalkFilter**和**Freqdivider**,分别对应PLL原理中的鉴相器**PD**、环路滤波器**LF**和受控振荡器**VCO**。系统在统一的系统时钟下同步工作,参考的架构图如下: 19 | 20 |
21 | 22 | ![设计架构](https://s2.loli.net/2021/12/06/wpVePZIkvgc9U3x.jpg) 23 | 24 |
25 | 26 | # 模块说明 27 | 28 | ## DPLL.v 29 | 30 | ### 模块接口 31 | 32 | ```verilog 33 | module dpll( 34 | input SignalIn; // 输入信号 35 | input MainClock; // 系统时钟 36 | output SignalOut; // 输出信号 37 | output Positive, Negative; // 环路滤波器输出 38 | output Lead, Lag; // 鉴相器输出 39 | ); 40 | ``` 41 | 42 | 43 | 44 | ### 功能描述 45 | 46 | **DPLL**模块是工程的顶层文件,负责把各个子模块组合起来,负责声明整个系统的信号接口。 47 | 48 | ## Phasecomparator.v 49 | 50 | ### 模块接口 51 | 52 | ```verilog 53 | module phasecomparator( 54 | input MainClock, // System Clock 55 | input InputSignal, OutputSignal, // 输入输出信号 56 | output SynchronousSignal, // 同步信号 57 | output Lead, Lag, // 超前、滞后脉冲 58 | output InputSignalEdge, // 输入信号上升沿 59 | output OutputSignalEdge, // 输出信号上升沿 60 | output Lock, // 锁定标志位 61 | output [7:0] PeriodCount // 输入信号周期 62 | ); 63 | ``` 64 | 65 | 66 | 67 | ### 功能描述 68 | 69 | **Phasecomparator**为鉴相器模块,首先通过D触发器,把输入信号同步到系统的时钟域;其二,统计输入信号的周期,用于振荡信号的生成;其三,对输入信号与反馈信号进行相位比较,反馈信号超前于输入信号则置Lead为高电平,反之,反馈信号滞后则置Lag为高电平,这两个信号有效的持续周期都为一个系统时钟周期。 70 | 71 |
72 | 73 | ![鉴相器工作示意图](https://s2.loli.net/2021/12/06/GUCWkRHwEKltxFZ.jpg) 74 | 75 |
76 | 77 | ## VariableResetRandomWalkFilter.v和RandomWalkFilter.v 78 | 79 | ### 模块接口 80 | 81 | ```verilog 82 | module variableresetrandomwalkfilter( 83 | input MainClock, Lead, Lag; // System Clock and Phase Comparator signals 84 | output Positive, Negative; // "positive shift" and "negative shift" outputs 85 | ); 86 | ``` 87 | 88 | ```verilog 89 | module randomwalkfilter( 90 | input MainClock, Lead, Lag; // System Clock and Phase Comparator signals 91 | output Positive, Negative; // "positive shift" and "negative shift" outputs 92 | ); 93 | ``` 94 | 95 | ### 功能描述 96 | 97 | **VariableResetRandomWalkFilter**模块是环路滤波器模块,**RandomWalkFilter**是它的子模块,该子模块实现的是**随机徘徊序列滤波器**,前者在后者基础上增加Reset值可调的功能。随机徘徊序列滤波器的主体是一个可逆计数器。当有超前脉冲输人到UP端时,计数器上行计数,当有滞后脉冲输入到DN端时,计数器下行计数。如果超前脉冲超过滞后的数目到达计数容量N时,就在+N端输出一个提前脉冲,同时使计数器复位。反之,则在-N端输出一个推后脉冲,同时计数器复位。环路锁定前,鉴相器连续输出超前或滞后脉冲,上行计数器或下行计数器到达满状态后输出提前脉冲或推后脉冲,在这两个脉冲作用下环路逐步进入锁定状态。当环路进入锁定状态后,由噪声引起的超前或滞后脉冲是随机的,而且出现概率基本相等,不会有连续很多个超前或滞后脉冲,因而它们的差值达到计数容量N的可能性极小,这样就可以减小噪声对环路的干扰作用。 98 | 99 |
100 | 101 | ![RandomWalkFilter滤波器的结构](https://s2.loli.net/2021/12/06/C7VKpyd3mNFPsrg.jpg) 102 | 103 |
104 | 105 | 106 | 107 | ## Freqdivider.v 108 | 109 | ### 模块接口 110 | 111 | ```verilog 112 | module freqdivider( 113 | input MainClock; 114 | input Positive, Negative; // 控制输出周期 115 | output FrequencyOut; // 倍频输出 116 | ); 117 | ``` 118 | 119 | ### 功能描述 120 | 121 | 主要功能是基于系统时钟进行分频。系统时钟取决于FPGA硬件型号,一般需要较高的系统时钟。基于由上述鉴相器模块计算得到的输入信号的时钟周期数,计算倍频信号的时钟周期数,产生同步振荡信号。由于存在系统延时,一开始产生的振荡信号与输入信号并不同步,由鉴相器处理使其逐渐达到同步锁定状态。 122 | 123 | # 功能仿真 124 | 125 | ## 电路逻辑 126 | 127 | 使用Quartus完成程序设计,对应的RTL电路逻辑如下图所示。 128 | 129 | ![RTL逻辑电路图](https://s2.loli.net/2021/12/06/JWBkolRYv56Op2V.png) 130 | 131 | ## 仿真参数 132 | 133 | 系统时钟设置为50MHz,输入信号频率为500KHz,输入信号具有不确定性,即仿真中添加一个随机时延,此处设置为3287ns。 134 | 135 | ## 仿真效果 136 | 137 | ### 同步性能 138 | 139 | 波形仿真图如图3-1所示,MainClock为系统时钟,SignalIn为输入信号,SignalOut为输出信号,Lead、Lag分别为鉴相器输出的相位领先和滞后信号,Positive、Negative则对应上述两个信号经过环路滤波器后的输出。Lock是输出锁定信号,置高电平时环路锁定。由仿真波形图可以看出,锁定时间为168300ns ,减去开头加入的输入时延3287ns,实际锁定时间为165013ns,即165μs,锁定后输出与输入信号同频同相。 140 | 141 | ![环路锁定](https://s2.loli.net/2021/12/06/jmBtJRqaOgFWsSx.png) 142 | 143 | ### 倍频效果 144 | 145 | 改变顶层文件(dpll.v)里的参数(parameter)DividerMultiple的值,便可以修改锁相环输出倍频的倍数,可以实现奇倍频和偶倍频。如图所示分别为基于500KHz输入信号产生2倍频、5倍频和20倍频的效果图。。 146 | 147 | ![2倍频](https://s2.loli.net/2021/12/06/Ibzl2HNjD1W9xRQ.png) 148 | 149 | ![5倍频](https://s2.loli.net/2021/12/06/xM14OUsGlWbcQ6I.png) 150 | 151 | ![20倍频](https://s2.loli.net/2021/12/06/U5VjaZlAGEFqdS3.png) 152 | 153 | # 总结 154 | 155 | 本设计实现了一款全数字锁相环路,能够基于低频率时钟源,倍频产生高频时钟,并且达到高频时钟输出相位锁定、占空比1:1的预期效果。通过本次设计的锁相环路,可以实现在FPGA平台上,锁定未知的较低频输入信号,产生同频同相的任意倍频(频率低于系统时钟频率)输出信号。本设计完全基于Verilog代码实现,程序简单,完全可以满足简单地实现同步倍频信号的场合要求。 156 | 157 | 158 | 159 |
160 | 161 | - end 162 | -------------------------------------------------------------------------------- /simulation/modelsim/msim_transcript: -------------------------------------------------------------------------------- 1 | # Reading D:/Application/Altera/Quartus_13.1/modelsim_ase/tcl/vsim/pref.tcl 2 | # ** Error: (vish-42) Unsupported ModelSim library format for "E:/Xilinx/Xlib/secureip". (Format: 4) 3 | # ** Error: (vish-42) Unsupported ModelSim library format for "E:/Xilinx/Xlib/simprims_ver". (Format: 4) 4 | # ** Error: (vish-42) Unsupported ModelSim library format for "E:/Xilinx/Xlib/unifast". (Format: 4) 5 | # ** Error: (vish-42) Unsupported ModelSim library format for "E:/Xilinx/Xlib/unifast_ver". (Format: 4) 6 | # ** Error: (vish-42) Unsupported ModelSim library format for "E:/Xilinx/Xlib/unimacro". (Format: 4) 7 | # ** Error: (vish-42) Unsupported ModelSim library format for "E:/Xilinx/Xlib/unimacro_ver". (Format: 4) 8 | # ** Error: (vish-42) Unsupported ModelSim library format for "E:/Xilinx/Xlib/unisim". (Format: 4) 9 | # ** Error: (vish-42) Unsupported ModelSim library format for "E:/Xilinx/Xlib/unisims_ver". (Format: 4) 10 | # ** Error: (vish-42) Unsupported ModelSim library format for "E:/Xilinx/Xlib/xilinx_vip". (Format: 4) 11 | # ** Error: (vish-42) Unsupported ModelSim library format for "E:/Xilinx/Xlib/xpm". (Format: 4) 12 | # do dpll_run_msim_rtl_verilog.do 13 | # if {[file exists rtl_work]} { 14 | # vdel -lib rtl_work -all 15 | # } 16 | # vlib rtl_work 17 | # vmap work rtl_work 18 | # Modifying E:\Xilinx\Xlib\modelsim.ini 19 | # 20 | # vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/dpll.v} 21 | # Model Technology ModelSim ALTERA vlog 10.1d Compiler 2012.11 Nov 2 2012 22 | # -- Compiling module dpll 23 | # 24 | # Top level modules: 25 | # dpll 26 | # vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/freqdivider.v} 27 | # Model Technology ModelSim ALTERA vlog 10.1d Compiler 2012.11 Nov 2 2012 28 | # -- Compiling module freqdivider 29 | # 30 | # Top level modules: 31 | # freqdivider 32 | # vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/phasecomparator.v} 33 | # Model Technology ModelSim ALTERA vlog 10.1d Compiler 2012.11 Nov 2 2012 34 | # -- Compiling module phasecomparator 35 | # 36 | # Top level modules: 37 | # phasecomparator 38 | # vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/randomwalkfilter.v} 39 | # Model Technology ModelSim ALTERA vlog 10.1d Compiler 2012.11 Nov 2 2012 40 | # -- Compiling module randomwalkfilter 41 | # 42 | # Top level modules: 43 | # randomwalkfilter 44 | # vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/source {D:/comber/ADPLL/source/variableresetrandomwalkfilter.v} 45 | # Model Technology ModelSim ALTERA vlog 10.1d Compiler 2012.11 Nov 2 2012 46 | # -- Compiling module variableresetrandomwalkfilter 47 | # 48 | # Top level modules: 49 | # variableresetrandomwalkfilter 50 | # 51 | # vlog -vlog01compat -work work +incdir+D:/comber/ADPLL/simulation/modelsim {D:/comber/ADPLL/simulation/modelsim/dpll.vt} 52 | # Model Technology ModelSim ALTERA vlog 10.1d Compiler 2012.11 Nov 2 2012 53 | # -- Compiling module dpll_vlg_tst 54 | # 55 | # Top level modules: 56 | # dpll_vlg_tst 57 | # 58 | # vsim -t 1ps -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L cycloneive_ver -L rtl_work -L work -voptargs="+acc" dpll_vlg_tst 59 | # vsim -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L cycloneive_ver -L rtl_work -L work -voptargs=\"+acc\" -t 1ps dpll_vlg_tst 60 | # ** Error: (vish-42) Unsupported ModelSim library format for "E:/Xilinx/Xlib/secureip". (Format: 4) 61 | # ** Error: (vish-42) Unsupported ModelSim library format for "E:/Xilinx/Xlib/simprims_ver". (Format: 4) 62 | # ** Error: (vish-42) Unsupported ModelSim library format for "E:/Xilinx/Xlib/unifast". (Format: 4) 63 | # ** Error: (vish-42) Unsupported ModelSim library format for "E:/Xilinx/Xlib/unifast_ver". (Format: 4) 64 | # ** Error: (vish-42) Unsupported ModelSim library format for "E:/Xilinx/Xlib/unimacro". (Format: 4) 65 | # ** Error: (vish-42) Unsupported ModelSim library format for "E:/Xilinx/Xlib/unimacro_ver". (Format: 4) 66 | # ** Error: (vish-42) Unsupported ModelSim library format for "E:/Xilinx/Xlib/unisim". (Format: 4) 67 | # ** Error: (vish-42) Unsupported ModelSim library format for "E:/Xilinx/Xlib/unisims_ver". (Format: 4) 68 | # ** Error: (vish-42) Unsupported ModelSim library format for "E:/Xilinx/Xlib/xilinx_vip". (Format: 4) 69 | # ** Error: (vish-42) Unsupported ModelSim library format for "E:/Xilinx/Xlib/xpm". (Format: 4) 70 | # Loading work.dpll_vlg_tst 71 | # Loading work.dpll 72 | # Loading work.phasecomparator 73 | # Loading work.variableresetrandomwalkfilter 74 | # Loading work.randomwalkfilter 75 | # Loading work.freqdivider 76 | # ** Warning: (vsim-3017) D:/comber/ADPLL/source/dpll.v(43): [TFMPC] - Too few port connections. Expected 8, found 5. 77 | # 78 | # Region: /dpll_vlg_tst/i1/inst_zrwf 79 | # ** Warning: (vsim-3722) D:/comber/ADPLL/source/dpll.v(43): [TFMPC] - Missing connection for port 'N_FilterCounter'. 80 | # 81 | # ** Warning: (vsim-3722) D:/comber/ADPLL/source/dpll.v(43): [TFMPC] - Missing connection for port 'ResetterValue'. 82 | # 83 | # ** Warning: (vsim-3722) D:/comber/ADPLL/source/dpll.v(43): [TFMPC] - Missing connection for port 'ResetterCounter'. 84 | # 85 | # ** Warning: (vsim-3017) D:/comber/ADPLL/source/dpll.v(48): [TFMPC] - Too few port connections. Expected 7, found 6. 86 | # 87 | # Region: /dpll_vlg_tst/i1/inst_freqdiv 88 | # ** Warning: (vsim-3015) D:/comber/ADPLL/source/dpll.v(48): [PCDPC] - Port size (8 or 8) does not match connection size (32) for port 'DividerMax'. The port definition is at: D:/comber/ADPLL/source/freqdivider.v(5). 89 | # 90 | # Region: /dpll_vlg_tst/i1/inst_freqdiv 91 | # ** Warning: (vsim-3722) D:/comber/ADPLL/source/dpll.v(48): [TFMPC] - Missing connection for port 'DividerCounter'. 92 | # 93 | # 94 | # add wave * 95 | # view structure 96 | # .main_pane.structure.interior.cs.body.struct 97 | # view signals 98 | # .main_pane.objects.interior.cs.body.tree 99 | # run -all 100 | # Running testbench 101 | # Break key hit 102 | # Simulation stop requested. 103 | -------------------------------------------------------------------------------- /db/dpll.eda.qmsg: -------------------------------------------------------------------------------- 1 | { "Info" "IQEXE_SEPARATOR" "" "*******************************************************************" { } { } 3 0 "*******************************************************************" 0 0 "Quartus II" 0 -1 1631100736279 ""} 2 | { "Info" "IQEXE_START_BANNER_PRODUCT" "EDA Netlist Writer Quartus II 64-Bit " "Running Quartus II 64-Bit EDA Netlist Writer" { { "Info" "IQEXE_START_BANNER_VERSION" "Version 15.0.0 Build 145 04/22/2015 SJ Full Version " "Version 15.0.0 Build 145 04/22/2015 SJ Full Version" { } { } 0 0 "%1!s!" 0 0 "Quartus II" 0 -1 1631100736279 ""} { "Info" "IQEXE_START_BANNER_TIME" "Wed Sep 08 19:32:16 2021 " "Processing started: Wed Sep 08 19:32:16 2021" { } { } 0 0 "Processing started: %1!s!" 0 0 "Quartus II" 0 -1 1631100736279 ""} } { } 4 0 "Running %2!s! %1!s!" 0 0 "Quartus II" 0 -1 1631100736279 ""} 3 | { "Info" "IQEXE_START_BANNER_COMMANDLINE" "quartus_eda --read_settings_files=off --write_settings_files=off dpll -c dpll " "Command: quartus_eda --read_settings_files=off --write_settings_files=off dpll -c dpll" { } { } 0 0 "Command: %1!s!" 0 0 "Quartus II" 0 -1 1631100736279 ""} 4 | { "Warning" "WVLGO_INVALID_TIMESCALE_SELECTED_FOR_PLL_DESIGN" "" "An incorrect timescale is selected for the Verilog Output (.VO) file of this PLL design. It's required that the timescale should be 1 ps when simulating a PLL design in a third party EDA tool." { } { } 0 202000 "An incorrect timescale is selected for the Verilog Output (.VO) file of this PLL design. It's required that the timescale should be 1 ps when simulating a PLL design in a third party EDA tool." 0 0 "Quartus II" 0 -1 1631100736813 ""} 5 | { "Info" "IWSC_DONE_HDL_GENERATION" "dpll_8_1200mv_85c_slow.vo D:/comber/ADPLL/simulation/modelsim/ simulation " "Generated file dpll_8_1200mv_85c_slow.vo in folder \"D:/comber/ADPLL/simulation/modelsim/\" for EDA simulation tool" { } { } 0 204019 "Generated file %1!s! in folder \"%2!s!\" for EDA %3!s! tool" 0 0 "Quartus II" 0 -1 1631100736844 ""} 6 | { "Warning" "WVLGO_INVALID_TIMESCALE_SELECTED_FOR_PLL_DESIGN" "" "An incorrect timescale is selected for the Verilog Output (.VO) file of this PLL design. It's required that the timescale should be 1 ps when simulating a PLL design in a third party EDA tool." { } { } 0 202000 "An incorrect timescale is selected for the Verilog Output (.VO) file of this PLL design. It's required that the timescale should be 1 ps when simulating a PLL design in a third party EDA tool." 0 0 "Quartus II" 0 -1 1631100736875 ""} 7 | { "Info" "IWSC_DONE_HDL_GENERATION" "dpll_8_1200mv_0c_slow.vo D:/comber/ADPLL/simulation/modelsim/ simulation " "Generated file dpll_8_1200mv_0c_slow.vo in folder \"D:/comber/ADPLL/simulation/modelsim/\" for EDA simulation tool" { } { } 0 204019 "Generated file %1!s! in folder \"%2!s!\" for EDA %3!s! tool" 0 0 "Quartus II" 0 -1 1631100736907 ""} 8 | { "Warning" "WVLGO_INVALID_TIMESCALE_SELECTED_FOR_PLL_DESIGN" "" "An incorrect timescale is selected for the Verilog Output (.VO) file of this PLL design. It's required that the timescale should be 1 ps when simulating a PLL design in a third party EDA tool." { } { } 0 202000 "An incorrect timescale is selected for the Verilog Output (.VO) file of this PLL design. It's required that the timescale should be 1 ps when simulating a PLL design in a third party EDA tool." 0 0 "Quartus II" 0 -1 1631100736922 ""} 9 | { "Info" "IWSC_DONE_HDL_GENERATION" "dpll_min_1200mv_0c_fast.vo D:/comber/ADPLL/simulation/modelsim/ simulation " "Generated file dpll_min_1200mv_0c_fast.vo in folder \"D:/comber/ADPLL/simulation/modelsim/\" for EDA simulation tool" { } { } 0 204019 "Generated file %1!s! in folder \"%2!s!\" for EDA %3!s! tool" 0 0 "Quartus II" 0 -1 1631100736954 ""} 10 | { "Warning" "WVLGO_INVALID_TIMESCALE_SELECTED_FOR_PLL_DESIGN" "" "An incorrect timescale is selected for the Verilog Output (.VO) file of this PLL design. It's required that the timescale should be 1 ps when simulating a PLL design in a third party EDA tool." { } { } 0 202000 "An incorrect timescale is selected for the Verilog Output (.VO) file of this PLL design. It's required that the timescale should be 1 ps when simulating a PLL design in a third party EDA tool." 0 0 "Quartus II" 0 -1 1631100736985 ""} 11 | { "Info" "IWSC_DONE_HDL_GENERATION" "dpll.vo D:/comber/ADPLL/simulation/modelsim/ simulation " "Generated file dpll.vo in folder \"D:/comber/ADPLL/simulation/modelsim/\" for EDA simulation tool" { } { } 0 204019 "Generated file %1!s! in folder \"%2!s!\" for EDA %3!s! tool" 0 0 "Quartus II" 0 -1 1631100737000 ""} 12 | { "Info" "IWSC_DONE_HDL_GENERATION" "dpll_8_1200mv_85c_v_slow.sdo D:/comber/ADPLL/simulation/modelsim/ simulation " "Generated file dpll_8_1200mv_85c_v_slow.sdo in folder \"D:/comber/ADPLL/simulation/modelsim/\" for EDA simulation tool" { } { } 0 204019 "Generated file %1!s! in folder \"%2!s!\" for EDA %3!s! tool" 0 0 "Quartus II" 0 -1 1631100737032 ""} 13 | { "Info" "IWSC_DONE_HDL_GENERATION" "dpll_8_1200mv_0c_v_slow.sdo D:/comber/ADPLL/simulation/modelsim/ simulation " "Generated file dpll_8_1200mv_0c_v_slow.sdo in folder \"D:/comber/ADPLL/simulation/modelsim/\" for EDA simulation tool" { } { } 0 204019 "Generated file %1!s! in folder \"%2!s!\" for EDA %3!s! tool" 0 0 "Quartus II" 0 -1 1631100737079 ""} 14 | { "Info" "IWSC_DONE_HDL_GENERATION" "dpll_min_1200mv_0c_v_fast.sdo D:/comber/ADPLL/simulation/modelsim/ simulation " "Generated file dpll_min_1200mv_0c_v_fast.sdo in folder \"D:/comber/ADPLL/simulation/modelsim/\" for EDA simulation tool" { } { } 0 204019 "Generated file %1!s! in folder \"%2!s!\" for EDA %3!s! tool" 0 0 "Quartus II" 0 -1 1631100737110 ""} 15 | { "Info" "IWSC_DONE_HDL_GENERATION" "dpll_v.sdo D:/comber/ADPLL/simulation/modelsim/ simulation " "Generated file dpll_v.sdo in folder \"D:/comber/ADPLL/simulation/modelsim/\" for EDA simulation tool" { } { } 0 204019 "Generated file %1!s! in folder \"%2!s!\" for EDA %3!s! tool" 0 0 "Quartus II" 0 -1 1631100737141 ""} 16 | { "Info" "IQEXE_ERROR_COUNT" "EDA Netlist Writer 0 s 4 s Quartus II 64-Bit " "Quartus II 64-Bit EDA Netlist Writer was successful. 0 errors, 4 warnings" { { "Info" "IQEXE_END_PEAK_VSIZE_MEMORY" "4722 " "Peak virtual memory: 4722 megabytes" { } { } 0 0 "Peak virtual memory: %1!s! megabytes" 0 0 "Quartus II" 0 -1 1631100737188 ""} { "Info" "IQEXE_END_BANNER_TIME" "Wed Sep 08 19:32:17 2021 " "Processing ended: Wed Sep 08 19:32:17 2021" { } { } 0 0 "Processing ended: %1!s!" 0 0 "Quartus II" 0 -1 1631100737188 ""} { "Info" "IQEXE_ELAPSED_TIME" "00:00:01 " "Elapsed time: 00:00:01" { } { } 0 0 "Elapsed time: %1!s!" 0 0 "Quartus II" 0 -1 1631100737188 ""} { "Info" "IQEXE_ELAPSED_CPU_TIME" "00:00:01 " "Total CPU time (on all processors): 00:00:01" { } { } 0 0 "Total CPU time (on all processors): %1!s!" 0 0 "Quartus II" 0 -1 1631100737188 ""} } { } 0 0 "%6!s! %1!s! was successful. %2!d! error%3!s!, %4!d! warning%5!s!" 0 0 "Quartus II" 0 -1 1631100737188 ""} 17 | -------------------------------------------------------------------------------- /output_files/dpll.eda.rpt: -------------------------------------------------------------------------------- 1 | EDA Netlist Writer report for dpll 2 | Wed Sep 08 19:32:17 2021 3 | Quartus II 64-Bit Version 15.0.0 Build 145 04/22/2015 SJ Full Version 4 | 5 | 6 | --------------------- 7 | ; Table of Contents ; 8 | --------------------- 9 | 1. Legal Notice 10 | 2. EDA Netlist Writer Summary 11 | 3. Simulation Settings 12 | 4. Simulation Generated Files 13 | 5. EDA Netlist Writer Messages 14 | 15 | 16 | 17 | ---------------- 18 | ; Legal Notice ; 19 | ---------------- 20 | Copyright (C) 1991-2015 Altera Corporation. All rights reserved. 21 | Your use of Altera Corporation's design tools, logic functions 22 | and other software and tools, and its AMPP partner logic 23 | functions, and any output files from any of the foregoing 24 | (including device programming or simulation files), and any 25 | associated documentation or information are expressly subject 26 | to the terms and conditions of the Altera Program License 27 | Subscription Agreement, the Altera Quartus II License Agreement, 28 | the Altera MegaCore Function License Agreement, or other 29 | applicable license agreement, including, without limitation, 30 | that your use is for the sole purpose of programming logic 31 | devices manufactured by Altera and sold by Altera or its 32 | authorized distributors. Please refer to the applicable 33 | agreement for further details. 34 | 35 | 36 | 37 | +-------------------------------------------------------------------+ 38 | ; EDA Netlist Writer Summary ; 39 | +---------------------------+---------------------------------------+ 40 | ; EDA Netlist Writer Status ; Successful - Wed Sep 08 19:32:17 2021 ; 41 | ; Revision Name ; dpll ; 42 | ; Top-level Entity Name ; dpll ; 43 | ; Family ; Cyclone IV E ; 44 | ; Simulation Files Creation ; Successful ; 45 | +---------------------------+---------------------------------------+ 46 | 47 | 48 | +-------------------------------------------------------------------------------------------------------------------------------+ 49 | ; Simulation Settings ; 50 | +---------------------------------------------------------------------------------------------------+---------------------------+ 51 | ; Option ; Setting ; 52 | +---------------------------------------------------------------------------------------------------+---------------------------+ 53 | ; Tool Name ; ModelSim-Altera (Verilog) ; 54 | ; Generate netlist for functional simulation only ; Off ; 55 | ; Time scale ; 1 ns ; 56 | ; Truncate long hierarchy paths ; Off ; 57 | ; Map illegal HDL characters ; Off ; 58 | ; Flatten buses into individual nodes ; Off ; 59 | ; Maintain hierarchy ; Off ; 60 | ; Bring out device-wide set/reset signals as ports ; Off ; 61 | ; Enable glitch filtering ; Off ; 62 | ; Do not write top level VHDL entity ; Off ; 63 | ; Disable detection of setup and hold time violations in the input registers of bi-directional pins ; Off ; 64 | ; Architecture name in VHDL output netlist ; structure ; 65 | ; Generate third-party EDA tool command script for RTL functional simulation ; Off ; 66 | ; Generate third-party EDA tool command script for gate-level simulation ; Off ; 67 | +---------------------------------------------------------------------------------------------------+---------------------------+ 68 | 69 | 70 | +-------------------------------------------------------------------+ 71 | ; Simulation Generated Files ; 72 | +-------------------------------------------------------------------+ 73 | ; Generated Files ; 74 | +-------------------------------------------------------------------+ 75 | ; D:/comber/ADPLL/simulation/modelsim/dpll_8_1200mv_85c_slow.vo ; 76 | ; D:/comber/ADPLL/simulation/modelsim/dpll_8_1200mv_0c_slow.vo ; 77 | ; D:/comber/ADPLL/simulation/modelsim/dpll_min_1200mv_0c_fast.vo ; 78 | ; D:/comber/ADPLL/simulation/modelsim/dpll.vo ; 79 | ; D:/comber/ADPLL/simulation/modelsim/dpll_8_1200mv_85c_v_slow.sdo ; 80 | ; D:/comber/ADPLL/simulation/modelsim/dpll_8_1200mv_0c_v_slow.sdo ; 81 | ; D:/comber/ADPLL/simulation/modelsim/dpll_min_1200mv_0c_v_fast.sdo ; 82 | ; D:/comber/ADPLL/simulation/modelsim/dpll_v.sdo ; 83 | +-------------------------------------------------------------------+ 84 | 85 | 86 | +-----------------------------+ 87 | ; EDA Netlist Writer Messages ; 88 | +-----------------------------+ 89 | Info: ******************************************************************* 90 | Info: Running Quartus II 64-Bit EDA Netlist Writer 91 | Info: Version 15.0.0 Build 145 04/22/2015 SJ Full Version 92 | Info: Processing started: Wed Sep 08 19:32:16 2021 93 | Info: Command: quartus_eda --read_settings_files=off --write_settings_files=off dpll -c dpll 94 | Warning (202000): An incorrect timescale is selected for the Verilog Output (.VO) file of this PLL design. It's required that the timescale should be 1 ps when simulating a PLL design in a third party EDA tool. 95 | Info (204019): Generated file dpll_8_1200mv_85c_slow.vo in folder "D:/comber/ADPLL/simulation/modelsim/" for EDA simulation tool 96 | Warning (202000): An incorrect timescale is selected for the Verilog Output (.VO) file of this PLL design. It's required that the timescale should be 1 ps when simulating a PLL design in a third party EDA tool. 97 | Info (204019): Generated file dpll_8_1200mv_0c_slow.vo in folder "D:/comber/ADPLL/simulation/modelsim/" for EDA simulation tool 98 | Warning (202000): An incorrect timescale is selected for the Verilog Output (.VO) file of this PLL design. It's required that the timescale should be 1 ps when simulating a PLL design in a third party EDA tool. 99 | Info (204019): Generated file dpll_min_1200mv_0c_fast.vo in folder "D:/comber/ADPLL/simulation/modelsim/" for EDA simulation tool 100 | Warning (202000): An incorrect timescale is selected for the Verilog Output (.VO) file of this PLL design. It's required that the timescale should be 1 ps when simulating a PLL design in a third party EDA tool. 101 | Info (204019): Generated file dpll.vo in folder "D:/comber/ADPLL/simulation/modelsim/" for EDA simulation tool 102 | Info (204019): Generated file dpll_8_1200mv_85c_v_slow.sdo in folder "D:/comber/ADPLL/simulation/modelsim/" for EDA simulation tool 103 | Info (204019): Generated file dpll_8_1200mv_0c_v_slow.sdo in folder "D:/comber/ADPLL/simulation/modelsim/" for EDA simulation tool 104 | Info (204019): Generated file dpll_min_1200mv_0c_v_fast.sdo in folder "D:/comber/ADPLL/simulation/modelsim/" for EDA simulation tool 105 | Info (204019): Generated file dpll_v.sdo in folder "D:/comber/ADPLL/simulation/modelsim/" for EDA simulation tool 106 | Info: Quartus II 64-Bit EDA Netlist Writer was successful. 0 errors, 4 warnings 107 | Info: Peak virtual memory: 4722 megabytes 108 | Info: Processing ended: Wed Sep 08 19:32:17 2021 109 | Info: Elapsed time: 00:00:01 110 | Info: Total CPU time (on all processors): 00:00:01 111 | 112 | 113 | -------------------------------------------------------------------------------- /db/dpll.hier_info: -------------------------------------------------------------------------------- 1 | |dpll 2 | MainClock => MainClock.IN3 3 | SignalIn => SignalIn.IN1 4 | SignalOut <= SignalOut.DB_MAX_OUTPUT_PORT_TYPE 5 | SynchronousSignal <= phasecomparator:inst_ph_cmp.SynchronousSignal 6 | Positive <= Positive.DB_MAX_OUTPUT_PORT_TYPE 7 | Negative <= Negative.DB_MAX_OUTPUT_PORT_TYPE 8 | Lead <= Lead.DB_MAX_OUTPUT_PORT_TYPE 9 | Lag <= Lag.DB_MAX_OUTPUT_PORT_TYPE 10 | InputSignalEdge <= phasecomparator:inst_ph_cmp.InputSignalEdge 11 | OutputSignalEdge <= phasecomparator:inst_ph_cmp.OutputSignalEdge 12 | Lock <= phasecomparator:inst_ph_cmp.Lock 13 | PeriodCount[0] <= phasecomparator:inst_ph_cmp.PeriodCount 14 | PeriodCount[1] <= phasecomparator:inst_ph_cmp.PeriodCount 15 | PeriodCount[2] <= phasecomparator:inst_ph_cmp.PeriodCount 16 | PeriodCount[3] <= phasecomparator:inst_ph_cmp.PeriodCount 17 | PeriodCount[4] <= phasecomparator:inst_ph_cmp.PeriodCount 18 | PeriodCount[5] <= phasecomparator:inst_ph_cmp.PeriodCount 19 | PeriodCount[6] <= phasecomparator:inst_ph_cmp.PeriodCount 20 | PeriodCount[7] <= phasecomparator:inst_ph_cmp.PeriodCount 21 | DividerMaxValue[0] <= freqdivider:inst_freqdiv.DividerMaxValue 22 | DividerMaxValue[1] <= freqdivider:inst_freqdiv.DividerMaxValue 23 | DividerMaxValue[2] <= freqdivider:inst_freqdiv.DividerMaxValue 24 | DividerMaxValue[3] <= freqdivider:inst_freqdiv.DividerMaxValue 25 | DividerMaxValue[4] <= freqdivider:inst_freqdiv.DividerMaxValue 26 | DividerMaxValue[5] <= freqdivider:inst_freqdiv.DividerMaxValue 27 | DividerMaxValue[6] <= freqdivider:inst_freqdiv.DividerMaxValue 28 | DividerMaxValue[7] <= freqdivider:inst_freqdiv.DividerMaxValue 29 | 30 | 31 | |dpll|phasecomparator:inst_ph_cmp 32 | InputSignal => SynchronousSignal~reg0.DATAIN 33 | OutputSignal => Lead.IN1 34 | OutputSignal => OutputSignalEdgeDet[0].DATAIN 35 | OutputSignal => Lag.IN1 36 | MainClock => Lead~reg0.CLK 37 | MainClock => Lag~reg0.CLK 38 | MainClock => cnt[0].CLK 39 | MainClock => cnt[1].CLK 40 | MainClock => cnt[2].CLK 41 | MainClock => cnt[3].CLK 42 | MainClock => cnt[4].CLK 43 | MainClock => cnt[5].CLK 44 | MainClock => cnt[6].CLK 45 | MainClock => cnt[7].CLK 46 | MainClock => OutputSignalEdgeDet[0].CLK 47 | MainClock => OutputSignalEdgeDet[1].CLK 48 | MainClock => InputSignalEdgeDet[0].CLK 49 | MainClock => InputSignalEdgeDet[1].CLK 50 | MainClock => SynchronousSignal~reg0.CLK 51 | Lead <= Lead~reg0.DB_MAX_OUTPUT_PORT_TYPE 52 | Lag <= Lag~reg0.DB_MAX_OUTPUT_PORT_TYPE 53 | InputSignalEdge <= Equal0.DB_MAX_OUTPUT_PORT_TYPE 54 | OutputSignalEdge <= Equal1.DB_MAX_OUTPUT_PORT_TYPE 55 | Lock <= Lock~reg0.DB_MAX_OUTPUT_PORT_TYPE 56 | SynchronousSignal <= SynchronousSignal~reg0.DB_MAX_OUTPUT_PORT_TYPE 57 | PeriodCount[0] <= PeriodCount[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE 58 | PeriodCount[1] <= PeriodCount[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE 59 | PeriodCount[2] <= PeriodCount[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE 60 | PeriodCount[3] <= PeriodCount[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE 61 | PeriodCount[4] <= PeriodCount[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE 62 | PeriodCount[5] <= PeriodCount[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE 63 | PeriodCount[6] <= PeriodCount[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE 64 | PeriodCount[7] <= PeriodCount[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE 65 | 66 | 67 | |dpll|variableresetrandomwalkfilter:inst_zrwf 68 | MainClock => MainClock.IN1 69 | Lead => Lead.IN1 70 | Lag => Lag.IN1 71 | Positive <= Positive~reg0.DB_MAX_OUTPUT_PORT_TYPE 72 | Negative <= Negative~reg0.DB_MAX_OUTPUT_PORT_TYPE 73 | N_FilterCounter[0] <= N_FilterCounter[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE 74 | N_FilterCounter[1] <= N_FilterCounter[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE 75 | N_FilterCounter[2] <= N_FilterCounter[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE 76 | N_FilterCounter[3] <= N_FilterCounter[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE 77 | N_FilterCounter[4] <= N_FilterCounter[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE 78 | N_FilterCounter[5] <= N_FilterCounter[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE 79 | N_FilterCounter[6] <= N_FilterCounter[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE 80 | N_FilterCounter[7] <= N_FilterCounter[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE 81 | ResetterValue[0] <= ResetterValue.DB_MAX_OUTPUT_PORT_TYPE 82 | ResetterValue[1] <= WideOr2.DB_MAX_OUTPUT_PORT_TYPE 83 | ResetterValue[2] <= WideOr1.DB_MAX_OUTPUT_PORT_TYPE 84 | ResetterValue[3] <= WideOr0.DB_MAX_OUTPUT_PORT_TYPE 85 | ResetterValue[4] <= WideOr0.DB_MAX_OUTPUT_PORT_TYPE 86 | ResetterValue[5] <= WideOr0.DB_MAX_OUTPUT_PORT_TYPE 87 | ResetterValue[6] <= WideOr0.DB_MAX_OUTPUT_PORT_TYPE 88 | ResetterValue[7] <= WideOr0.DB_MAX_OUTPUT_PORT_TYPE 89 | ResetterCounter[0] <= ResetterCounter[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE 90 | ResetterCounter[1] <= ResetterCounter[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE 91 | ResetterCounter[2] <= ResetterCounter[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE 92 | ResetterCounter[3] <= ResetterCounter[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE 93 | 94 | 95 | |dpll|variableresetrandomwalkfilter:inst_zrwf|randomwalkfilter:inst_M_F 96 | MainClock => Negative~reg0.CLK 97 | MainClock => Positive~reg0.CLK 98 | MainClock => FilterCounter[0].CLK 99 | MainClock => FilterCounter[1].CLK 100 | MainClock => FilterCounter[2].CLK 101 | MainClock => FilterCounter[3].CLK 102 | MainClock => FilterCounter[4].CLK 103 | MainClock => FilterCounter[5].CLK 104 | MainClock => FilterCounter[6].CLK 105 | MainClock => FilterCounter[7].CLK 106 | Lead => FilterCounter.OUTPUTSELECT 107 | Lead => FilterCounter.OUTPUTSELECT 108 | Lead => FilterCounter.OUTPUTSELECT 109 | Lead => FilterCounter.OUTPUTSELECT 110 | Lead => FilterCounter.OUTPUTSELECT 111 | Lead => FilterCounter.OUTPUTSELECT 112 | Lead => FilterCounter.OUTPUTSELECT 113 | Lead => FilterCounter.OUTPUTSELECT 114 | Lag => FilterCounter.OUTPUTSELECT 115 | Lag => FilterCounter.OUTPUTSELECT 116 | Lag => FilterCounter.OUTPUTSELECT 117 | Lag => FilterCounter.OUTPUTSELECT 118 | Lag => FilterCounter.OUTPUTSELECT 119 | Lag => FilterCounter.OUTPUTSELECT 120 | Lag => FilterCounter.OUTPUTSELECT 121 | Lag => FilterCounter.OUTPUTSELECT 122 | Positive <= Positive~reg0.DB_MAX_OUTPUT_PORT_TYPE 123 | Negative <= Negative~reg0.DB_MAX_OUTPUT_PORT_TYPE 124 | 125 | 126 | |dpll|freqdivider:inst_freqdiv 127 | MainClock => overflow.CLK 128 | MainClock => DividerCounter[0]~reg0.CLK 129 | MainClock => DividerCounter[1]~reg0.CLK 130 | MainClock => DividerCounter[2]~reg0.CLK 131 | MainClock => DividerCounter[3]~reg0.CLK 132 | MainClock => DividerCounter[4]~reg0.CLK 133 | MainClock => DividerCounter[5]~reg0.CLK 134 | MainClock => DividerCounter[6]~reg0.CLK 135 | MainClock => DividerMaxValue[0]~reg0.CLK 136 | MainClock => DividerMaxValue[1]~reg0.CLK 137 | MainClock => DividerMaxValue[2]~reg0.CLK 138 | MainClock => DividerMaxValue[3]~reg0.CLK 139 | MainClock => DividerMaxValue[4]~reg0.CLK 140 | MainClock => DividerMaxValue[5]~reg0.CLK 141 | MainClock => DividerMaxValue[6]~reg0.CLK 142 | MainClock => DividerMaxValue[7]~reg0.CLK 143 | DividerMax[0] => DividerMaxValue[0]~reg0.DATAIN 144 | DividerMax[1] => DividerMaxValue[1]~reg0.DATAIN 145 | DividerMax[2] => DividerMaxValue[2]~reg0.DATAIN 146 | DividerMax[3] => DividerMaxValue[3]~reg0.DATAIN 147 | DividerMax[4] => DividerMaxValue[4]~reg0.DATAIN 148 | DividerMax[5] => DividerMaxValue[5]~reg0.DATAIN 149 | DividerMax[6] => DividerMaxValue[6]~reg0.DATAIN 150 | DividerMax[7] => DividerMaxValue[7]~reg0.DATAIN 151 | Positive => DividerCounter.OUTPUTSELECT 152 | Positive => DividerCounter.OUTPUTSELECT 153 | Positive => DividerCounter.OUTPUTSELECT 154 | Positive => DividerCounter.OUTPUTSELECT 155 | Positive => DividerCounter.OUTPUTSELECT 156 | Positive => DividerCounter.OUTPUTSELECT 157 | Positive => DividerCounter.OUTPUTSELECT 158 | Positive => always1.IN0 159 | Negative => DividerCounter.OUTPUTSELECT 160 | Negative => DividerCounter.OUTPUTSELECT 161 | Negative => DividerCounter.OUTPUTSELECT 162 | Negative => DividerCounter.OUTPUTSELECT 163 | Negative => DividerCounter.OUTPUTSELECT 164 | Negative => DividerCounter.OUTPUTSELECT 165 | Negative => DividerCounter.OUTPUTSELECT 166 | Negative => overflow.OUTPUTSELECT 167 | Negative => always1.IN1 168 | FrequencyOut <= FrequencyOut~reg0.DB_MAX_OUTPUT_PORT_TYPE 169 | DividerCounter[0] <= DividerCounter[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE 170 | DividerCounter[1] <= DividerCounter[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE 171 | DividerCounter[2] <= DividerCounter[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE 172 | DividerCounter[3] <= DividerCounter[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE 173 | DividerCounter[4] <= DividerCounter[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE 174 | DividerCounter[5] <= DividerCounter[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE 175 | DividerCounter[6] <= DividerCounter[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE 176 | DividerMaxValue[0] <= DividerMaxValue[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE 177 | DividerMaxValue[1] <= DividerMaxValue[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE 178 | DividerMaxValue[2] <= DividerMaxValue[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE 179 | DividerMaxValue[3] <= DividerMaxValue[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE 180 | DividerMaxValue[4] <= DividerMaxValue[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE 181 | DividerMaxValue[5] <= DividerMaxValue[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE 182 | DividerMaxValue[6] <= DividerMaxValue[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE 183 | DividerMaxValue[7] <= DividerMaxValue[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE 184 | 185 | 186 | -------------------------------------------------------------------------------- /output_files/dpll.flow.rpt: -------------------------------------------------------------------------------- 1 | Flow report for dpll 2 | Wed Sep 08 19:32:17 2021 3 | Quartus II 64-Bit Version 15.0.0 Build 145 04/22/2015 SJ Full Version 4 | 5 | 6 | --------------------- 7 | ; Table of Contents ; 8 | --------------------- 9 | 1. Legal Notice 10 | 2. Flow Summary 11 | 3. Flow Settings 12 | 4. Flow Non-Default Global Settings 13 | 5. Flow Elapsed Time 14 | 6. Flow OS Summary 15 | 7. Flow Log 16 | 8. Flow Messages 17 | 9. Flow Suppressed Messages 18 | 19 | 20 | 21 | ---------------- 22 | ; Legal Notice ; 23 | ---------------- 24 | Copyright (C) 1991-2015 Altera Corporation. All rights reserved. 25 | Your use of Altera Corporation's design tools, logic functions 26 | and other software and tools, and its AMPP partner logic 27 | functions, and any output files from any of the foregoing 28 | (including device programming or simulation files), and any 29 | associated documentation or information are expressly subject 30 | to the terms and conditions of the Altera Program License 31 | Subscription Agreement, the Altera Quartus II License Agreement, 32 | the Altera MegaCore Function License Agreement, or other 33 | applicable license agreement, including, without limitation, 34 | that your use is for the sole purpose of programming logic 35 | devices manufactured by Altera and sold by Altera or its 36 | authorized distributors. Please refer to the applicable 37 | agreement for further details. 38 | 39 | 40 | 41 | +----------------------------------------------------------------------------------+ 42 | ; Flow Summary ; 43 | +------------------------------------+---------------------------------------------+ 44 | ; Flow Status ; Successful - Wed Sep 08 19:32:17 2021 ; 45 | ; Quartus II 64-Bit Version ; 15.0.0 Build 145 04/22/2015 SJ Full Version ; 46 | ; Revision Name ; dpll ; 47 | ; Top-level Entity Name ; dpll ; 48 | ; Family ; Cyclone IV E ; 49 | ; Device ; EP4CE15F17C8 ; 50 | ; Timing Models ; Final ; 51 | ; Total logic elements ; 212 / 15,408 ( 1 % ) ; 52 | ; Total combinational functions ; 197 / 15,408 ( 1 % ) ; 53 | ; Dedicated logic registers ; 63 / 15,408 ( < 1 % ) ; 54 | ; Total registers ; 63 ; 55 | ; Total pins ; 27 / 166 ( 16 % ) ; 56 | ; Total virtual pins ; 0 ; 57 | ; Total memory bits ; 0 / 516,096 ( 0 % ) ; 58 | ; Embedded Multiplier 9-bit elements ; 0 / 112 ( 0 % ) ; 59 | ; Total PLLs ; 0 / 4 ( 0 % ) ; 60 | +------------------------------------+---------------------------------------------+ 61 | 62 | 63 | +-----------------------------------------+ 64 | ; Flow Settings ; 65 | +-------------------+---------------------+ 66 | ; Option ; Setting ; 67 | +-------------------+---------------------+ 68 | ; Start date & time ; 09/08/2021 19:31:46 ; 69 | ; Main task ; Compilation ; 70 | ; Revision Name ; dpll ; 71 | +-------------------+---------------------+ 72 | 73 | 74 | +-----------------------------------------------------------------------------------------------------------------------------+ 75 | ; Flow Non-Default Global Settings ; 76 | +--------------------------------------+---------------------------------------+---------------+-------------+----------------+ 77 | ; Assignment Name ; Value ; Default Value ; Entity Name ; Section Id ; 78 | +--------------------------------------+---------------------------------------+---------------+-------------+----------------+ 79 | ; COMPILER_SIGNATURE_ID ; 255543656947206.163110070635764 ; -- ; -- ; -- ; 80 | ; EDA_DESIGN_INSTANCE_NAME ; i1 ; -- ; -- ; -- ; 81 | ; EDA_NATIVELINK_SIMULATION_TEST_BENCH ; dpll ; -- ; -- ; eda_simulation ; 82 | ; EDA_OUTPUT_DATA_FORMAT ; Verilog Hdl ; -- ; -- ; eda_simulation ; 83 | ; EDA_SIMULATION_TOOL ; ModelSim-Altera (Verilog) ; ; -- ; -- ; 84 | ; EDA_TEST_BENCH_ENABLE_STATUS ; TEST_BENCH_MODE ; -- ; -- ; eda_simulation ; 85 | ; EDA_TEST_BENCH_FILE ; simulation/modelsim/dpll.vt ; -- ; -- ; -- ; 86 | ; EDA_TEST_BENCH_MODULE_NAME ; dpll_vlg_tst ; -- ; -- ; -- ; 87 | ; EDA_TEST_BENCH_NAME ; dpll ; -- ; -- ; eda_simulation ; 88 | ; EDA_TIME_SCALE ; 1 ns ; -- ; -- ; eda_simulation ; 89 | ; MAX_CORE_JUNCTION_TEMP ; 85 ; -- ; -- ; -- ; 90 | ; MIN_CORE_JUNCTION_TEMP ; 0 ; -- ; -- ; -- ; 91 | ; NOMINAL_CORE_SUPPLY_VOLTAGE ; 1.2V ; -- ; -- ; -- ; 92 | ; PARTITION_COLOR ; 16764057 ; -- ; -- ; Top ; 93 | ; PARTITION_FITTER_PRESERVATION_LEVEL ; PLACEMENT_AND_ROUTING ; -- ; -- ; Top ; 94 | ; PARTITION_NETLIST_TYPE ; SOURCE ; -- ; -- ; Top ; 95 | ; POWER_BOARD_THERMAL_MODEL ; None (CONSERVATIVE) ; -- ; -- ; -- ; 96 | ; POWER_PRESET_COOLING_SOLUTION ; 23 MM HEAT SINK WITH 200 LFPM AIRFLOW ; -- ; -- ; -- ; 97 | ; PROJECT_OUTPUT_DIRECTORY ; output_files ; -- ; -- ; -- ; 98 | +--------------------------------------+---------------------------------------+---------------+-------------+----------------+ 99 | 100 | 101 | +-------------------------------------------------------------------------------------------------------------------------------+ 102 | ; Flow Elapsed Time ; 103 | +---------------------------+--------------+-------------------------+---------------------+------------------------------------+ 104 | ; Module Name ; Elapsed Time ; Average Processors Used ; Peak Virtual Memory ; Total CPU Time (on all processors) ; 105 | +---------------------------+--------------+-------------------------+---------------------+------------------------------------+ 106 | ; Analysis & Synthesis ; 00:00:10 ; 1.0 ; 4859 MB ; 00:00:25 ; 107 | ; Fitter ; 00:00:07 ; 2.3 ; 5777 MB ; 00:00:09 ; 108 | ; Assembler ; 00:00:01 ; 1.0 ; 4746 MB ; 00:00:01 ; 109 | ; TimeQuest Timing Analyzer ; 00:00:02 ; 1.0 ; 4885 MB ; 00:00:02 ; 110 | ; EDA Netlist Writer ; 00:00:01 ; 1.0 ; 4714 MB ; 00:00:01 ; 111 | ; Total ; 00:00:21 ; -- ; -- ; 00:00:38 ; 112 | +---------------------------+--------------+-------------------------+---------------------+------------------------------------+ 113 | 114 | 115 | +----------------------------------------------------------------------------------------+ 116 | ; Flow OS Summary ; 117 | +---------------------------+------------------+-----------+------------+----------------+ 118 | ; Module Name ; Machine Hostname ; OS Name ; OS Version ; Processor type ; 119 | +---------------------------+------------------+-----------+------------+----------------+ 120 | ; Analysis & Synthesis ; THE-LEGION ; Windows 7 ; 6.2 ; x86_64 ; 121 | ; Fitter ; THE-LEGION ; Windows 7 ; 6.2 ; x86_64 ; 122 | ; Assembler ; THE-LEGION ; Windows 7 ; 6.2 ; x86_64 ; 123 | ; TimeQuest Timing Analyzer ; THE-LEGION ; Windows 7 ; 6.2 ; x86_64 ; 124 | ; EDA Netlist Writer ; THE-LEGION ; Windows 7 ; 6.2 ; x86_64 ; 125 | +---------------------------+------------------+-----------+------------+----------------+ 126 | 127 | 128 | ------------ 129 | ; Flow Log ; 130 | ------------ 131 | quartus_map --read_settings_files=on --write_settings_files=off dpll -c dpll 132 | quartus_fit --read_settings_files=off --write_settings_files=off dpll -c dpll 133 | quartus_asm --read_settings_files=off --write_settings_files=off dpll -c dpll 134 | quartus_sta dpll -c dpll 135 | quartus_eda --read_settings_files=off --write_settings_files=off dpll -c dpll 136 | 137 | 138 | 139 | -------------------------------------------------------------------------------- /db/alt_u_div_a4f.tdf: -------------------------------------------------------------------------------- 1 | --alt_u_div DEVICE_FAMILY="Cyclone IV E" LPM_PIPELINE=0 MAXIMIZE_SPEED=5 SKIP_BITS=0 WIDTH_D=4 WIDTH_N=8 WIDTH_Q=8 WIDTH_R=4 denominator numerator quotient remainder 2 | --VERSION_BEGIN 15.0 cbx_cycloneii 2015:04:22:18:04:07:SJ cbx_lpm_abs 2015:04:22:18:04:07:SJ cbx_lpm_add_sub 2015:04:22:18:04:07:SJ cbx_lpm_divide 2015:04:22:18:04:08:SJ cbx_mgl 2015:04:22:18:06:50:SJ cbx_stratix 2015:04:22:18:04:08:SJ cbx_stratixii 2015:04:22:18:04:08:SJ cbx_util_mgl 2015:04:22:18:04:08:SJ VERSION_END 3 | 4 | 5 | -- Copyright (C) 1991-2015 Altera Corporation. All rights reserved. 6 | -- Your use of Altera Corporation's design tools, logic functions 7 | -- and other software and tools, and its AMPP partner logic 8 | -- functions, and any output files from any of the foregoing 9 | -- (including device programming or simulation files), and any 10 | -- associated documentation or information are expressly subject 11 | -- to the terms and conditions of the Altera Program License 12 | -- Subscription Agreement, the Altera Quartus II License Agreement, 13 | -- the Altera MegaCore Function License Agreement, or other 14 | -- applicable license agreement, including, without limitation, 15 | -- that your use is for the sole purpose of programming logic 16 | -- devices manufactured by Altera and sold by Altera or its 17 | -- authorized distributors. Please refer to the applicable 18 | -- agreement for further details. 19 | 20 | 21 | FUNCTION add_sub_7pc (dataa[0..0], datab[0..0]) 22 | RETURNS ( cout, result[0..0]); 23 | FUNCTION add_sub_8pc (dataa[1..0], datab[1..0]) 24 | RETURNS ( cout, result[1..0]); 25 | 26 | --synthesis_resources = lut 33 27 | SUBDESIGN alt_u_div_a4f 28 | ( 29 | denominator[3..0] : input; 30 | numerator[7..0] : input; 31 | quotient[7..0] : output; 32 | remainder[3..0] : output; 33 | ) 34 | VARIABLE 35 | add_sub_0 : add_sub_7pc; 36 | add_sub_1 : add_sub_8pc; 37 | add_sub_2_result_int[3..0] : WIRE; 38 | add_sub_2_cout : WIRE; 39 | add_sub_2_dataa[2..0] : WIRE; 40 | add_sub_2_datab[2..0] : WIRE; 41 | add_sub_2_result[2..0] : WIRE; 42 | add_sub_3_result_int[4..0] : WIRE; 43 | add_sub_3_cout : WIRE; 44 | add_sub_3_dataa[3..0] : WIRE; 45 | add_sub_3_datab[3..0] : WIRE; 46 | add_sub_3_result[3..0] : WIRE; 47 | add_sub_4_result_int[5..0] : WIRE; 48 | add_sub_4_cout : WIRE; 49 | add_sub_4_dataa[4..0] : WIRE; 50 | add_sub_4_datab[4..0] : WIRE; 51 | add_sub_4_result[4..0] : WIRE; 52 | add_sub_5_result_int[5..0] : WIRE; 53 | add_sub_5_cout : WIRE; 54 | add_sub_5_dataa[4..0] : WIRE; 55 | add_sub_5_datab[4..0] : WIRE; 56 | add_sub_5_result[4..0] : WIRE; 57 | add_sub_6_result_int[5..0] : WIRE; 58 | add_sub_6_cout : WIRE; 59 | add_sub_6_dataa[4..0] : WIRE; 60 | add_sub_6_datab[4..0] : WIRE; 61 | add_sub_6_result[4..0] : WIRE; 62 | add_sub_7_result_int[5..0] : WIRE; 63 | add_sub_7_cout : WIRE; 64 | add_sub_7_dataa[4..0] : WIRE; 65 | add_sub_7_datab[4..0] : WIRE; 66 | add_sub_7_result[4..0] : WIRE; 67 | DenominatorIn[44..0] : WIRE; 68 | DenominatorIn_tmp[44..0] : WIRE; 69 | gnd_wire : WIRE; 70 | nose[71..0] : WIRE; 71 | NumeratorIn[71..0] : WIRE; 72 | NumeratorIn_tmp[71..0] : WIRE; 73 | prestg[39..0] : WIRE; 74 | quotient_tmp[7..0] : WIRE; 75 | sel[35..0] : WIRE; 76 | selnose[71..0] : WIRE; 77 | StageIn[44..0] : WIRE; 78 | StageIn_tmp[44..0] : WIRE; 79 | StageOut[39..0] : WIRE; 80 | 81 | BEGIN 82 | add_sub_0.dataa[0..0] = NumeratorIn[7..7]; 83 | add_sub_0.datab[0..0] = DenominatorIn[0..0]; 84 | add_sub_1.dataa[] = ( StageIn[5..5], NumeratorIn[14..14]); 85 | add_sub_1.datab[1..0] = DenominatorIn[6..5]; 86 | add_sub_2_result_int[] = (0, add_sub_2_dataa[]) - (0, add_sub_2_datab[]); 87 | add_sub_2_result[] = add_sub_2_result_int[2..0]; 88 | add_sub_2_cout = !add_sub_2_result_int[3]; 89 | add_sub_2_dataa[] = ( StageIn[11..10], NumeratorIn[21..21]); 90 | add_sub_2_datab[] = DenominatorIn[12..10]; 91 | add_sub_3_result_int[] = (0, add_sub_3_dataa[]) - (0, add_sub_3_datab[]); 92 | add_sub_3_result[] = add_sub_3_result_int[3..0]; 93 | add_sub_3_cout = !add_sub_3_result_int[4]; 94 | add_sub_3_dataa[] = ( StageIn[17..15], NumeratorIn[28..28]); 95 | add_sub_3_datab[] = DenominatorIn[18..15]; 96 | add_sub_4_result_int[] = (0, add_sub_4_dataa[]) - (0, add_sub_4_datab[]); 97 | add_sub_4_result[] = add_sub_4_result_int[4..0]; 98 | add_sub_4_cout = !add_sub_4_result_int[5]; 99 | add_sub_4_dataa[] = ( StageIn[23..20], NumeratorIn[35..35]); 100 | add_sub_4_datab[] = DenominatorIn[24..20]; 101 | add_sub_5_result_int[] = (0, add_sub_5_dataa[]) - (0, add_sub_5_datab[]); 102 | add_sub_5_result[] = add_sub_5_result_int[4..0]; 103 | add_sub_5_cout = !add_sub_5_result_int[5]; 104 | add_sub_5_dataa[] = ( StageIn[28..25], NumeratorIn[42..42]); 105 | add_sub_5_datab[] = DenominatorIn[29..25]; 106 | add_sub_6_result_int[] = (0, add_sub_6_dataa[]) - (0, add_sub_6_datab[]); 107 | add_sub_6_result[] = add_sub_6_result_int[4..0]; 108 | add_sub_6_cout = !add_sub_6_result_int[5]; 109 | add_sub_6_dataa[] = ( StageIn[33..30], NumeratorIn[49..49]); 110 | add_sub_6_datab[] = DenominatorIn[34..30]; 111 | add_sub_7_result_int[] = (0, add_sub_7_dataa[]) - (0, add_sub_7_datab[]); 112 | add_sub_7_result[] = add_sub_7_result_int[4..0]; 113 | add_sub_7_cout = !add_sub_7_result_int[5]; 114 | add_sub_7_dataa[] = ( StageIn[38..35], NumeratorIn[56..56]); 115 | add_sub_7_datab[] = DenominatorIn[39..35]; 116 | DenominatorIn[] = DenominatorIn_tmp[]; 117 | DenominatorIn_tmp[] = ( DenominatorIn[39..0], ( gnd_wire, denominator[])); 118 | gnd_wire = B"0"; 119 | nose[] = ( B"00000000", add_sub_7_cout, B"00000000", add_sub_6_cout, B"00000000", add_sub_5_cout, B"00000000", add_sub_4_cout, B"00000000", add_sub_3_cout, B"00000000", add_sub_2_cout, B"00000000", add_sub_1.cout, B"00000000", add_sub_0.cout); 120 | NumeratorIn[] = NumeratorIn_tmp[]; 121 | NumeratorIn_tmp[] = ( NumeratorIn[63..0], numerator[]); 122 | prestg[] = ( add_sub_7_result[], add_sub_6_result[], add_sub_5_result[], add_sub_4_result[], GND, add_sub_3_result[], B"00", add_sub_2_result[], B"000", add_sub_1.result[], B"0000", add_sub_0.result[]); 123 | quotient[] = quotient_tmp[]; 124 | quotient_tmp[] = ( (! selnose[0..0]), (! selnose[9..9]), (! selnose[18..18]), (! selnose[27..27]), (! selnose[36..36]), (! selnose[45..45]), (! selnose[54..54]), (! selnose[63..63])); 125 | remainder[3..0] = StageIn[43..40]; 126 | sel[] = ( gnd_wire, (sel[35..35] # DenominatorIn[43..43]), (sel[34..34] # DenominatorIn[42..42]), (sel[33..33] # DenominatorIn[41..41]), gnd_wire, (sel[31..31] # DenominatorIn[38..38]), (sel[30..30] # DenominatorIn[37..37]), (sel[29..29] # DenominatorIn[36..36]), gnd_wire, (sel[27..27] # DenominatorIn[33..33]), (sel[26..26] # DenominatorIn[32..32]), (sel[25..25] # DenominatorIn[31..31]), gnd_wire, (sel[23..23] # DenominatorIn[28..28]), (sel[22..22] # DenominatorIn[27..27]), (sel[21..21] # DenominatorIn[26..26]), gnd_wire, (sel[19..19] # DenominatorIn[23..23]), (sel[18..18] # DenominatorIn[22..22]), (sel[17..17] # DenominatorIn[21..21]), gnd_wire, (sel[15..15] # DenominatorIn[18..18]), (sel[14..14] # DenominatorIn[17..17]), (sel[13..13] # DenominatorIn[16..16]), gnd_wire, (sel[11..11] # DenominatorIn[13..13]), (sel[10..10] # DenominatorIn[12..12]), (sel[9..9] # DenominatorIn[11..11]), gnd_wire, (sel[7..7] # DenominatorIn[8..8]), (sel[6..6] # DenominatorIn[7..7]), (sel[5..5] # DenominatorIn[6..6]), gnd_wire, (sel[3..3] # DenominatorIn[3..3]), (sel[2..2] # DenominatorIn[2..2]), (sel[1..1] # DenominatorIn[1..1])); 127 | selnose[] = ( (! nose[71..71]), (! nose[70..70]), (! nose[69..69]), (! nose[68..68]), ((! nose[67..67]) # sel[35..35]), ((! nose[66..66]) # sel[34..34]), ((! nose[65..65]) # sel[33..33]), ((! nose[64..64]) # sel[32..32]), (! nose[63..63]), (! nose[62..62]), (! nose[61..61]), (! nose[60..60]), ((! nose[59..59]) # sel[31..31]), ((! nose[58..58]) # sel[30..30]), ((! nose[57..57]) # sel[29..29]), ((! nose[56..56]) # sel[28..28]), (! nose[55..55]), (! nose[54..54]), (! nose[53..53]), (! nose[52..52]), ((! nose[51..51]) # sel[27..27]), ((! nose[50..50]) # sel[26..26]), ((! nose[49..49]) # sel[25..25]), ((! nose[48..48]) # sel[24..24]), (! nose[47..47]), (! nose[46..46]), (! nose[45..45]), (! nose[44..44]), ((! nose[43..43]) # sel[23..23]), ((! nose[42..42]) # sel[22..22]), ((! nose[41..41]) # sel[21..21]), ((! nose[40..40]) # sel[20..20]), (! nose[39..39]), (! nose[38..38]), (! nose[37..37]), (! nose[36..36]), ((! nose[35..35]) # sel[19..19]), ((! nose[34..34]) # sel[18..18]), ((! nose[33..33]) # sel[17..17]), ((! nose[32..32]) # sel[16..16]), (! nose[31..31]), (! nose[30..30]), (! nose[29..29]), (! nose[28..28]), ((! nose[27..27]) # sel[15..15]), ((! nose[26..26]) # sel[14..14]), ((! nose[25..25]) # sel[13..13]), ((! nose[24..24]) # sel[12..12]), (! nose[23..23]), (! nose[22..22]), (! nose[21..21]), (! nose[20..20]), ((! nose[19..19]) # sel[11..11]), ((! nose[18..18]) # sel[10..10]), ((! nose[17..17]) # sel[9..9]), ((! nose[16..16]) # sel[8..8]), (! nose[15..15]), (! nose[14..14]), (! nose[13..13]), (! nose[12..12]), ((! nose[11..11]) # sel[7..7]), ((! nose[10..10]) # sel[6..6]), ((! nose[9..9]) # sel[5..5]), ((! nose[8..8]) # sel[4..4]), (! nose[7..7]), (! nose[6..6]), (! nose[5..5]), (! nose[4..4]), ((! nose[3..3]) # sel[3..3]), ((! nose[2..2]) # sel[2..2]), ((! nose[1..1]) # sel[1..1]), ((! nose[0..0]) # sel[0..0])); 128 | StageIn[] = StageIn_tmp[]; 129 | StageIn_tmp[] = ( StageOut[39..0], B"00000"); 130 | StageOut[] = ( ((( StageIn[38..35], NumeratorIn[56..56]) & selnose[63..63]) # (prestg[39..35] & (! selnose[63..63]))), ((( StageIn[33..30], NumeratorIn[49..49]) & selnose[54..54]) # (prestg[34..30] & (! selnose[54..54]))), ((( StageIn[28..25], NumeratorIn[42..42]) & selnose[45..45]) # (prestg[29..25] & (! selnose[45..45]))), ((( StageIn[23..20], NumeratorIn[35..35]) & selnose[36..36]) # (prestg[24..20] & (! selnose[36..36]))), ((( StageIn[18..15], NumeratorIn[28..28]) & selnose[27..27]) # (prestg[19..15] & (! selnose[27..27]))), ((( StageIn[13..10], NumeratorIn[21..21]) & selnose[18..18]) # (prestg[14..10] & (! selnose[18..18]))), ((( StageIn[8..5], NumeratorIn[14..14]) & selnose[9..9]) # (prestg[9..5] & (! selnose[9..9]))), ((( StageIn[3..0], NumeratorIn[7..7]) & selnose[0..0]) # (prestg[4..0] & (! selnose[0..0])))); 131 | END; 132 | --VALID FILE 133 | -------------------------------------------------------------------------------- /db/dpll.cmp.logdb: -------------------------------------------------------------------------------- 1 | v1 2 | IO_RULES,NUM_PINS_NOT_EXCEED_LOC_AVAILABLE,INAPPLICABLE,IO_000001,Capacity Checks,Number of pins in an I/O bank should not exceed the number of locations available.,Critical,No Location assignments found.,,I/O,, 3 | IO_RULES,NUM_CLKS_NOT_EXCEED_CLKS_AVAILABLE,INAPPLICABLE,IO_000002,Capacity Checks,Number of clocks in an I/O bank should not exceed the number of clocks available.,Critical,No Global Signal assignments found.,,I/O,, 4 | IO_RULES,NUM_VREF_NOT_EXCEED_LOC_AVAILABLE,INAPPLICABLE,IO_000003,Capacity Checks,Number of pins in a Vrefgroup should not exceed the number of locations available.,Critical,No Location assignments found.,,I/O,, 5 | IO_RULES,IO_BANK_SUPPORT_VCCIO,INAPPLICABLE,IO_000004,Voltage Compatibility Checks,The I/O bank should support the requested VCCIO.,Critical,No IOBANK_VCCIO assignments found.,,I/O,, 6 | IO_RULES,IO_BANK_NOT_HAVE_COMPETING_VREF,INAPPLICABLE,IO_000005,Voltage Compatibility Checks,The I/O bank should not have competing VREF values.,Critical,No VREF I/O Standard assignments found.,,I/O,, 7 | IO_RULES,IO_BANK_NOT_HAVE_COMPETING_VCCIO,PASS,IO_000006,Voltage Compatibility Checks,The I/O bank should not have competing VCCIO values.,Critical,0 such failures found.,,I/O,, 8 | IO_RULES,CHECK_UNAVAILABLE_LOC,INAPPLICABLE,IO_000007,Valid Location Checks,Checks for unavailable locations.,Critical,No Location assignments found.,,I/O,, 9 | IO_RULES,CHECK_RESERVED_LOC,INAPPLICABLE,IO_000008,Valid Location Checks,Checks for reserved locations.,Critical,No reserved LogicLock region found.,,I/O,, 10 | IO_RULES,LOC_SUPPORT_IO_STD,PASS,IO_000009,I/O Properties Checks for One I/O,The location should support the requested I/O standard.,Critical,0 such failures found.,,I/O,, 11 | IO_RULES,LOC_SUPPORT_IO_DIR,PASS,IO_000010,I/O Properties Checks for One I/O,The location should support the requested I/O direction.,Critical,0 such failures found.,,I/O,, 12 | IO_RULES,LOC_SUPPORT_CURRENT_STRENGTH,INAPPLICABLE,IO_000011,I/O Properties Checks for One I/O,The location should support the requested Current Strength.,Critical,No Current Strength assignments found.,,I/O,, 13 | IO_RULES,LOC_SUPPORT_OCT_VALUE,PASS,IO_000012,I/O Properties Checks for One I/O,The location should support the requested On Chip Termination value.,Critical,0 such failures found.,,I/O,, 14 | IO_RULES,LOC_SUPPORT_BUS_HOLD_VALUE,INAPPLICABLE,IO_000013,I/O Properties Checks for One I/O,The location should support the requested Bus Hold value.,Critical,No Enable Bus-Hold Circuitry assignments found.,,I/O,, 15 | IO_RULES,LOC_SUPPORT_WEAK_PULL_UP_VALUE,INAPPLICABLE,IO_000014,I/O Properties Checks for One I/O,The location should support the requested Weak Pull Up value.,Critical,No Weak Pull-Up Resistor assignments found.,,I/O,, 16 | IO_RULES,LOC_SUPPORT_PCI_CLAMP_DIODE,PASS,IO_000015,I/O Properties Checks for One I/O,The location should support the requested PCI Clamp Diode.,Critical,0 such failures found.,,I/O,, 17 | IO_RULES,IO_STD_SUPPORT_CURRENT_STRENGTH,INAPPLICABLE,IO_000018,I/O Properties Checks for One I/O,The I/O standard should support the requested Current Strength.,Critical,No Current Strength assignments found.,,I/O,, 18 | IO_RULES,IO_STD_SUPPORT_OCT_VALUE,PASS,IO_000019,I/O Properties Checks for One I/O,The I/O standard should support the requested On Chip Termination value.,Critical,0 such failures found.,,I/O,, 19 | IO_RULES,IO_STD_SUPPORT_PCI_CLAMP_DIODE,PASS,IO_000020,I/O Properties Checks for One I/O,The I/O standard should support the requested PCI Clamp Diode.,Critical,0 such failures found.,,I/O,, 20 | IO_RULES,IO_STD_SUPPORT_WEAK_PULL_UP_VALUE,INAPPLICABLE,IO_000021,I/O Properties Checks for One I/O,The I/O standard should support the requested Weak Pull Up value.,Critical,No Weak Pull-Up Resistor assignments found.,,I/O,, 21 | IO_RULES,IO_STD_SUPPORT_BUS_HOLD_VALUE,INAPPLICABLE,IO_000022,I/O Properties Checks for One I/O,The I/O standard should support the requested Bus Hold value.,Critical,No Enable Bus-Hold Circuitry assignments found.,,I/O,, 22 | IO_RULES,IO_STD_SUPPORT_OPEN_DRAIN_VALUE,INAPPLICABLE,IO_000023,I/O Properties Checks for One I/O,The I/O standard should support the Open Drain value.,Critical,No open drain assignments found.,,I/O,, 23 | IO_RULES,IO_DIR_SUPPORT_OCT_VALUE,PASS,IO_000024,I/O Properties Checks for One I/O,The I/O direction should support the On Chip Termination value.,Critical,0 such failures found.,,I/O,, 24 | IO_RULES,OCT_AND_CURRENT_STRENGTH_NOT_USED_SIMULTANEOUSLY,INAPPLICABLE,IO_000026,I/O Properties Checks for One I/O,On Chip Termination and Current Strength should not be used at the same time.,Critical,No Current Strength assignments found.,,I/O,, 25 | IO_RULES,WEAK_PULL_UP_AND_BUS_HOLD_NOT_USED_SIMULTANEOUSLY,INAPPLICABLE,IO_000027,I/O Properties Checks for One I/O,Weak Pull Up and Bus Hold should not be used at the same time.,Critical,No Enable Bus-Hold Circuitry or Weak Pull-Up Resistor assignments found.,,I/O,, 26 | IO_RULES,IO_STD_SUPPORTS_SLEW_RATE,INAPPLICABLE,IO_000045,I/O Properties Checks for One I/O,The I/O standard should support the requested Slew Rate value.,Critical,No Slew Rate assignments found.,,I/O,, 27 | IO_RULES,LOC_SUPPORTS_SLEW_RATE,INAPPLICABLE,IO_000046,I/O Properties Checks for One I/O,The location should support the requested Slew Rate value.,Critical,No Slew Rate assignments found.,,I/O,, 28 | IO_RULES,OCT_SUPPORTS_SLEW_RATE,INAPPLICABLE,IO_000047,I/O Properties Checks for One I/O,On Chip Termination and Slew Rate should not be used at the same time.,Critical,No Slew Rate assignments found.,,I/O,, 29 | IO_RULES,CURRENT_DENSITY_FOR_CONSECUTIVE_IO_NOT_EXCEED_CURRENT_VALUE,PASS,IO_000033,Electromigration Checks,Current density for consecutive I/Os should not exceed 240mA for row I/Os and 240mA for column I/Os.,Critical,0 such failures found.,,I/O,, 30 | IO_RULES,SINGLE_ENDED_OUTPUTS_LAB_ROWS_FROM_DIFF_IO,INAPPLICABLE,IO_000034,SI Related Distance Checks,Single-ended outputs should be 5 LAB row(s) away from a differential I/O.,High,No Differential I/O Standard assignments found.,,I/O,, 31 | IO_RULES,MAX_20_OUTPUTS_ALLOWED_IN_VREFGROUP,INAPPLICABLE,IO_000042,SI Related SSO Limit Checks,No more than 20 outputs are allowed in a VREF group when VREF is being read from.,High,No VREF I/O Standard assignments found.,,I/O,, 32 | IO_RULES,DEV_IO_RULE_OCT_DISCLAIMER,,,,,,,,,, 33 | IO_RULES_MATRIX,Pin/Rules,IO_000001;IO_000002;IO_000003;IO_000004;IO_000005;IO_000006;IO_000007;IO_000008;IO_000009;IO_000010;IO_000011;IO_000012;IO_000013;IO_000014;IO_000015;IO_000018;IO_000019;IO_000020;IO_000021;IO_000022;IO_000023;IO_000024;IO_000026;IO_000027;IO_000045;IO_000046;IO_000047;IO_000033;IO_000034;IO_000042, 34 | IO_RULES_MATRIX,Total Pass,0;0;0;0;0;27;0;0;27;27;0;25;0;0;2;0;25;2;0;0;0;25;0;0;0;0;0;27;0;0, 35 | IO_RULES_MATRIX,Total Unchecked,0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0, 36 | IO_RULES_MATRIX,Total Inapplicable,27;27;27;27;27;0;27;27;0;0;27;2;27;27;25;27;2;25;27;27;27;2;27;27;27;27;27;0;27;27, 37 | IO_RULES_MATRIX,Total Fail,0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0, 38 | IO_RULES_MATRIX,SignalOut,Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, 39 | IO_RULES_MATRIX,SynchronousSignal,Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, 40 | IO_RULES_MATRIX,Positive,Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, 41 | IO_RULES_MATRIX,Negative,Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, 42 | IO_RULES_MATRIX,Lead,Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, 43 | IO_RULES_MATRIX,Lag,Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, 44 | IO_RULES_MATRIX,InputSignalEdge,Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, 45 | IO_RULES_MATRIX,OutputSignalEdge,Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, 46 | IO_RULES_MATRIX,Lock,Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, 47 | IO_RULES_MATRIX,PeriodCount[0],Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, 48 | IO_RULES_MATRIX,PeriodCount[1],Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, 49 | IO_RULES_MATRIX,PeriodCount[2],Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, 50 | IO_RULES_MATRIX,PeriodCount[3],Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, 51 | IO_RULES_MATRIX,PeriodCount[4],Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, 52 | IO_RULES_MATRIX,PeriodCount[5],Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, 53 | IO_RULES_MATRIX,PeriodCount[6],Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, 54 | IO_RULES_MATRIX,PeriodCount[7],Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, 55 | IO_RULES_MATRIX,DividerMaxValue[0],Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, 56 | IO_RULES_MATRIX,DividerMaxValue[1],Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, 57 | IO_RULES_MATRIX,DividerMaxValue[2],Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, 58 | IO_RULES_MATRIX,DividerMaxValue[3],Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, 59 | IO_RULES_MATRIX,DividerMaxValue[4],Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, 60 | IO_RULES_MATRIX,DividerMaxValue[5],Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, 61 | IO_RULES_MATRIX,DividerMaxValue[6],Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, 62 | IO_RULES_MATRIX,DividerMaxValue[7],Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, 63 | IO_RULES_MATRIX,SignalIn,Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, 64 | IO_RULES_MATRIX,MainClock,Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Inapplicable;Pass;Inapplicable;Inapplicable, 65 | IO_RULES_SUMMARY,Total I/O Rules,30, 66 | IO_RULES_SUMMARY,Number of I/O Rules Passed,9, 67 | IO_RULES_SUMMARY,Number of I/O Rules Failed,0, 68 | IO_RULES_SUMMARY,Number of I/O Rules Unchecked,0, 69 | IO_RULES_SUMMARY,Number of I/O Rules Inapplicable,21, 70 | -------------------------------------------------------------------------------- /db/dpll.sta.qmsg: -------------------------------------------------------------------------------- 1 | { "Info" "IQEXE_SEPARATOR" "" "*******************************************************************" { } { } 3 0 "*******************************************************************" 0 0 "Quartus II" 0 -1 1631100731983 ""} 2 | { "Info" "IQEXE_START_BANNER_PRODUCT" "TimeQuest Timing Analyzer Quartus II 64-Bit " "Running Quartus II 64-Bit TimeQuest Timing Analyzer" { { "Info" "IQEXE_START_BANNER_VERSION" "Version 15.0.0 Build 145 04/22/2015 SJ Full Version " "Version 15.0.0 Build 145 04/22/2015 SJ Full Version" { } { } 0 0 "%1!s!" 0 0 "Quartus II" 0 -1 1631100731983 ""} { "Info" "IQEXE_START_BANNER_TIME" "Wed Sep 08 19:32:11 2021 " "Processing started: Wed Sep 08 19:32:11 2021" { } { } 0 0 "Processing started: %1!s!" 0 0 "Quartus II" 0 -1 1631100731983 ""} } { } 4 0 "Running %2!s! %1!s!" 0 0 "Quartus II" 0 -1 1631100731983 ""} 3 | { "Info" "IQEXE_START_BANNER_COMMANDLINE" "quartus_sta dpll -c dpll " "Command: quartus_sta dpll -c dpll" { } { } 0 0 "Command: %1!s!" 0 0 "Quartus II" 0 -1 1631100731983 ""} 4 | { "Info" "0" "" "qsta_default_script.tcl version: #11" { } { } 0 0 "qsta_default_script.tcl version: #11" 0 0 "Quartus II" 0 0 1631100732139 ""} 5 | { "Info" "IQCU_PARALLEL_AUTODETECT_MULTIPLE_PROCESSORS_MORE_LOGICAL" "6 6 12 " "Parallel Compilation has detected 12 hyper-threaded processors. However, the extra hyper-threaded processors will not be used by default. Parallel Compilation will use 6 of the 6 physical processors detected instead." { } { } 0 11104 "Parallel Compilation has detected %3!i! hyper-threaded processors. However, the extra hyper-threaded processors will not be used by default. Parallel Compilation will use %1!i! of the %2!i! physical processors detected instead." 0 0 "Quartus II" 0 -1 1631100732296 ""} 6 | { "Info" "ICUT_CUT_USING_OPERATING_CONDITION" "Low junction temperature 0 degrees C " "Low junction temperature is 0 degrees C" { } { } 0 21077 "%1!s! is %2!s!" 0 0 "Quartus II" 0 -1 1631100732343 ""} 7 | { "Info" "ICUT_CUT_USING_OPERATING_CONDITION" "High junction temperature 85 degrees C " "High junction temperature is 85 degrees C" { } { } 0 21077 "%1!s! is %2!s!" 0 0 "Quartus II" 0 -1 1631100732343 ""} 8 | { "Critical Warning" "WSTA_SDC_NOT_FOUND" "dpll.sdc " "Synopsys Design Constraints File file not found: 'dpll.sdc'. A Synopsys Design Constraints File is required by the TimeQuest Timing Analyzer to get proper timing constraints. Without it, the Compiler will not properly optimize the design." { } { } 1 332012 "Synopsys Design Constraints File file not found: '%1!s!'. A Synopsys Design Constraints File is required by the TimeQuest Timing Analyzer to get proper timing constraints. Without it, the Compiler will not properly optimize the design." 0 0 "Quartus II" 0 -1 1631100732562 ""} 9 | { "Info" "ISTA_NO_CLOCK_FOUND_DERIVING" "base clocks \"derive_clocks -period 1.0\" " "No user constrained base clocks found in the design. Calling \"derive_clocks -period 1.0\"" { } { } 0 332142 "No user constrained %1!s! found in the design. Calling %2!s!" 0 0 "Quartus II" 0 -1 1631100732562 ""} 10 | { "Info" "ISTA_DERIVE_CLOCKS_INFO" "Deriving Clocks " "Deriving Clocks" { { "Info" "ISTA_DERIVE_CLOCKS_INFO" "create_clock -period 1.000 -name MainClock MainClock " "create_clock -period 1.000 -name MainClock MainClock" { } { } 0 332105 "%1!s!" 0 0 "Quartus II" 0 -1 1631100732562 ""} { "Info" "ISTA_DERIVE_CLOCKS_INFO" "create_clock -period 1.000 -name phasecomparator:inst_ph_cmp\|InputSignalEdgeDet\[0\] phasecomparator:inst_ph_cmp\|InputSignalEdgeDet\[0\] " "create_clock -period 1.000 -name phasecomparator:inst_ph_cmp\|InputSignalEdgeDet\[0\] phasecomparator:inst_ph_cmp\|InputSignalEdgeDet\[0\]" { } { } 0 332105 "%1!s!" 0 0 "Quartus II" 0 -1 1631100732562 ""} { "Info" "ISTA_DERIVE_CLOCKS_INFO" "create_clock -period 1.000 -name freqdivider:inst_freqdiv\|overflow freqdivider:inst_freqdiv\|overflow " "create_clock -period 1.000 -name freqdivider:inst_freqdiv\|overflow freqdivider:inst_freqdiv\|overflow" { } { } 0 332105 "%1!s!" 0 0 "Quartus II" 0 -1 1631100732562 ""} } { } 0 332105 "%1!s!" 0 0 "Quartus II" 0 -1 1631100732562 ""} 11 | { "Info" "ISTA_NO_CLOCK_UNCERTAINTY_FOUND_DERIVING" "\"derive_clock_uncertainty\" " "No user constrained clock uncertainty found in the design. Calling \"derive_clock_uncertainty\"" { } { } 0 332143 "No user constrained clock uncertainty found in the design. Calling %1!s!" 0 0 "Quartus II" 0 -1 1631100732625 ""} 12 | { "Info" "ISTA_DERIVE_CLOCK_UNCERTAINTY_INFO" "Deriving Clock Uncertainty. Please refer to report_sdc in TimeQuest to see clock uncertainties. " "Deriving Clock Uncertainty. Please refer to report_sdc in TimeQuest to see clock uncertainties." { } { } 0 332123 "%1!s!" 0 0 "Quartus II" 0 -1 1631100732625 ""} 13 | { "Info" "0" "" "Found TIMEQUEST_REPORT_SCRIPT_INCLUDE_DEFAULT_ANALYSIS = ON" { } { } 0 0 "Found TIMEQUEST_REPORT_SCRIPT_INCLUDE_DEFAULT_ANALYSIS = ON" 0 0 "Quartus II" 0 0 1631100732625 ""} 14 | { "Info" "0" "" "Analyzing Slow 1200mV 85C Model" { } { } 0 0 "Analyzing Slow 1200mV 85C Model" 0 0 "Quartus II" 0 0 1631100732640 ""} 15 | { "Critical Warning" "WSTA_TIMING_NOT_MET" "" "Timing requirements not met" { { "Info" "ISTA_TIMING_NOT_MET_USE_ADA" "" "For recommendations on closing timing, run Report Timing Closure Recommendations in the TimeQuest Timing Analyzer." { } { } 0 11105 "For recommendations on closing timing, run Report Timing Closure Recommendations in the TimeQuest Timing Analyzer." 0 0 "Quartus II" 0 -1 1631100732656 ""} } { } 1 332148 "Timing requirements not met" 0 0 "Quartus II" 0 -1 1631100732656 ""} 16 | { "Info" "ISTA_WORST_CASE_SLACK" "setup -13.438 " "Worst-case setup slack is -13.438" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100732656 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= =================== ===================== " "========= =================== =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100732656 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " -13.438 -174.284 MainClock " " -13.438 -174.284 MainClock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100732656 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " -1.393 -1.393 phasecomparator:inst_ph_cmp\|InputSignalEdgeDet\[0\] " " -1.393 -1.393 phasecomparator:inst_ph_cmp\|InputSignalEdgeDet\[0\] " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100732656 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " -0.405 -0.405 freqdivider:inst_freqdiv\|overflow " " -0.405 -0.405 freqdivider:inst_freqdiv\|overflow " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100732656 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1631100732656 ""} 17 | { "Info" "ISTA_WORST_CASE_SLACK" "hold -0.271 " "Worst-case hold slack is -0.271" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100732656 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= =================== ===================== " "========= =================== =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100732656 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " -0.271 -0.756 phasecomparator:inst_ph_cmp\|InputSignalEdgeDet\[0\] " " -0.271 -0.756 phasecomparator:inst_ph_cmp\|InputSignalEdgeDet\[0\] " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100732656 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 0.455 0.000 MainClock " " 0.455 0.000 MainClock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100732656 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 0.880 0.000 freqdivider:inst_freqdiv\|overflow " " 0.880 0.000 freqdivider:inst_freqdiv\|overflow " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100732656 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1631100732656 ""} 18 | { "Info" "ISTA_NO_PATHS_TO_REPORT" "Recovery " "No Recovery paths to report" { } { } 0 332140 "No %1!s! paths to report" 0 0 "Quartus II" 0 -1 1631100732656 ""} 19 | { "Info" "ISTA_NO_PATHS_TO_REPORT" "Removal " "No Removal paths to report" { } { } 0 332140 "No %1!s! paths to report" 0 0 "Quartus II" 0 -1 1631100732673 ""} 20 | { "Info" "ISTA_WORST_CASE_SLACK" "minimum pulse width -3.000 " "Worst-case minimum pulse width slack is -3.000" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100732673 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= =================== ===================== " "========= =================== =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100732673 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " -3.000 -80.324 MainClock " " -3.000 -80.324 MainClock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100732673 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " -1.487 -14.870 phasecomparator:inst_ph_cmp\|InputSignalEdgeDet\[0\] " " -1.487 -14.870 phasecomparator:inst_ph_cmp\|InputSignalEdgeDet\[0\] " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100732673 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " -1.487 -1.487 freqdivider:inst_freqdiv\|overflow " " -1.487 -1.487 freqdivider:inst_freqdiv\|overflow " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100732673 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1631100732673 ""} 21 | { "Info" "0" "" "Analyzing Slow 1200mV 0C Model" { } { } 0 0 "Analyzing Slow 1200mV 0C Model" 0 0 "Quartus II" 0 0 1631100732750 ""} 22 | { "Info" "ITAPI_TAPI_STARTED" "" "Started post-fitting delay annotation" { } { } 0 334003 "Started post-fitting delay annotation" 0 0 "Quartus II" 0 -1 1631100732766 ""} 23 | { "Info" "ITAPI_TAPI_COMPLETED" "" "Delay annotation completed successfully" { } { } 0 334004 "Delay annotation completed successfully" 0 0 "Quartus II" 0 -1 1631100733007 ""} 24 | { "Info" "ISTA_DERIVE_CLOCK_UNCERTAINTY_INFO" "Deriving Clock Uncertainty. Please refer to report_sdc in TimeQuest to see clock uncertainties. " "Deriving Clock Uncertainty. Please refer to report_sdc in TimeQuest to see clock uncertainties." { } { } 0 332123 "%1!s!" 0 0 "Quartus II" 0 -1 1631100733063 ""} 25 | { "Critical Warning" "WSTA_TIMING_NOT_MET" "" "Timing requirements not met" { { "Info" "ISTA_TIMING_NOT_MET_USE_ADA" "" "For recommendations on closing timing, run Report Timing Closure Recommendations in the TimeQuest Timing Analyzer." { } { } 0 11105 "For recommendations on closing timing, run Report Timing Closure Recommendations in the TimeQuest Timing Analyzer." 0 0 "Quartus II" 0 -1 1631100733079 ""} } { } 1 332148 "Timing requirements not met" 0 0 "Quartus II" 0 -1 1631100733079 ""} 26 | { "Info" "ISTA_WORST_CASE_SLACK" "setup -12.320 " "Worst-case setup slack is -12.320" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100733079 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= =================== ===================== " "========= =================== =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100733079 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " -12.320 -158.317 MainClock " " -12.320 -158.317 MainClock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100733079 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " -1.100 -1.100 phasecomparator:inst_ph_cmp\|InputSignalEdgeDet\[0\] " " -1.100 -1.100 phasecomparator:inst_ph_cmp\|InputSignalEdgeDet\[0\] " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100733079 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " -0.293 -0.293 freqdivider:inst_freqdiv\|overflow " " -0.293 -0.293 freqdivider:inst_freqdiv\|overflow " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100733079 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1631100733079 ""} 27 | { "Info" "ISTA_WORST_CASE_SLACK" "hold -0.275 " "Worst-case hold slack is -0.275" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100733079 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= =================== ===================== " "========= =================== =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100733079 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " -0.275 -0.768 phasecomparator:inst_ph_cmp\|InputSignalEdgeDet\[0\] " " -0.275 -0.768 phasecomparator:inst_ph_cmp\|InputSignalEdgeDet\[0\] " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100733079 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 0.403 0.000 MainClock " " 0.403 0.000 MainClock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100733079 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 0.802 0.000 freqdivider:inst_freqdiv\|overflow " " 0.802 0.000 freqdivider:inst_freqdiv\|overflow " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100733079 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1631100733079 ""} 28 | { "Info" "ISTA_NO_PATHS_TO_REPORT" "Recovery " "No Recovery paths to report" { } { } 0 332140 "No %1!s! paths to report" 0 0 "Quartus II" 0 -1 1631100733094 ""} 29 | { "Info" "ISTA_NO_PATHS_TO_REPORT" "Removal " "No Removal paths to report" { } { } 0 332140 "No %1!s! paths to report" 0 0 "Quartus II" 0 -1 1631100733094 ""} 30 | { "Info" "ISTA_WORST_CASE_SLACK" "minimum pulse width -3.000 " "Worst-case minimum pulse width slack is -3.000" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100733094 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= =================== ===================== " "========= =================== =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100733094 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " -3.000 -80.324 MainClock " " -3.000 -80.324 MainClock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100733094 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " -1.487 -15.027 phasecomparator:inst_ph_cmp\|InputSignalEdgeDet\[0\] " " -1.487 -15.027 phasecomparator:inst_ph_cmp\|InputSignalEdgeDet\[0\] " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100733094 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " -1.487 -1.487 freqdivider:inst_freqdiv\|overflow " " -1.487 -1.487 freqdivider:inst_freqdiv\|overflow " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100733094 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1631100733094 ""} 31 | { "Info" "0" "" "Analyzing Fast 1200mV 0C Model" { } { } 0 0 "Analyzing Fast 1200mV 0C Model" 0 0 "Quartus II" 0 0 1631100733189 ""} 32 | { "Info" "ISTA_DERIVE_CLOCK_UNCERTAINTY_INFO" "Deriving Clock Uncertainty. Please refer to report_sdc in TimeQuest to see clock uncertainties. " "Deriving Clock Uncertainty. Please refer to report_sdc in TimeQuest to see clock uncertainties." { } { } 0 332123 "%1!s!" 0 0 "Quartus II" 0 -1 1631100733392 ""} 33 | { "Critical Warning" "WSTA_TIMING_NOT_MET" "" "Timing requirements not met" { { "Info" "ISTA_TIMING_NOT_MET_USE_ADA" "" "For recommendations on closing timing, run Report Timing Closure Recommendations in the TimeQuest Timing Analyzer." { } { } 0 11105 "For recommendations on closing timing, run Report Timing Closure Recommendations in the TimeQuest Timing Analyzer." 0 0 "Quartus II" 0 -1 1631100733392 ""} } { } 1 332148 "Timing requirements not met" 0 0 "Quartus II" 0 -1 1631100733392 ""} 34 | { "Info" "ISTA_WORST_CASE_SLACK" "setup -5.353 " "Worst-case setup slack is -5.353" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100733408 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= =================== ===================== " "========= =================== =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100733408 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " -5.353 -49.978 MainClock " " -5.353 -49.978 MainClock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100733408 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " -0.183 -0.183 phasecomparator:inst_ph_cmp\|InputSignalEdgeDet\[0\] " " -0.183 -0.183 phasecomparator:inst_ph_cmp\|InputSignalEdgeDet\[0\] " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100733408 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 0.429 0.000 freqdivider:inst_freqdiv\|overflow " " 0.429 0.000 freqdivider:inst_freqdiv\|overflow " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100733408 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1631100733408 ""} 35 | { "Info" "ISTA_WORST_CASE_SLACK" "hold 0.104 " "Worst-case hold slack is 0.104" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100733408 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= =================== ===================== " "========= =================== =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100733408 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 0.104 0.000 MainClock " " 0.104 0.000 MainClock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100733408 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 0.171 0.000 phasecomparator:inst_ph_cmp\|InputSignalEdgeDet\[0\] " " 0.171 0.000 phasecomparator:inst_ph_cmp\|InputSignalEdgeDet\[0\] " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100733408 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 0.373 0.000 freqdivider:inst_freqdiv\|overflow " " 0.373 0.000 freqdivider:inst_freqdiv\|overflow " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100733408 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1631100733408 ""} 36 | { "Info" "ISTA_NO_PATHS_TO_REPORT" "Recovery " "No Recovery paths to report" { } { } 0 332140 "No %1!s! paths to report" 0 0 "Quartus II" 0 -1 1631100733408 ""} 37 | { "Info" "ISTA_NO_PATHS_TO_REPORT" "Removal " "No Removal paths to report" { } { } 0 332140 "No %1!s! paths to report" 0 0 "Quartus II" 0 -1 1631100733424 ""} 38 | { "Info" "ISTA_WORST_CASE_SLACK" "minimum pulse width -3.000 " "Worst-case minimum pulse width slack is -3.000" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100733424 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= =================== ===================== " "========= =================== =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100733424 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " -3.000 -57.791 MainClock " " -3.000 -57.791 MainClock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100733424 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " -1.000 -10.000 phasecomparator:inst_ph_cmp\|InputSignalEdgeDet\[0\] " " -1.000 -10.000 phasecomparator:inst_ph_cmp\|InputSignalEdgeDet\[0\] " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100733424 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " -1.000 -1.000 freqdivider:inst_freqdiv\|overflow " " -1.000 -1.000 freqdivider:inst_freqdiv\|overflow " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1631100733424 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1631100733424 ""} 39 | { "Info" "ISTA_UCP_NOT_CONSTRAINED" "setup " "Design is not fully constrained for setup requirements" { } { } 0 332102 "Design is not fully constrained for %1!s! requirements" 0 0 "Quartus II" 0 -1 1631100733925 ""} 40 | { "Info" "ISTA_UCP_NOT_CONSTRAINED" "hold " "Design is not fully constrained for hold requirements" { } { } 0 332102 "Design is not fully constrained for %1!s! requirements" 0 0 "Quartus II" 0 -1 1631100733925 ""} 41 | { "Info" "IQEXE_ERROR_COUNT" "TimeQuest Timing Analyzer 0 s 4 s Quartus II 64-Bit " "Quartus II 64-Bit TimeQuest Timing Analyzer was successful. 0 errors, 4 warnings" { { "Info" "IQEXE_END_PEAK_VSIZE_MEMORY" "4885 " "Peak virtual memory: 4885 megabytes" { } { } 0 0 "Peak virtual memory: %1!s! megabytes" 0 0 "Quartus II" 0 -1 1631100734019 ""} { "Info" "IQEXE_END_BANNER_TIME" "Wed Sep 08 19:32:14 2021 " "Processing ended: Wed Sep 08 19:32:14 2021" { } { } 0 0 "Processing ended: %1!s!" 0 0 "Quartus II" 0 -1 1631100734019 ""} { "Info" "IQEXE_ELAPSED_TIME" "00:00:03 " "Elapsed time: 00:00:03" { } { } 0 0 "Elapsed time: %1!s!" 0 0 "Quartus II" 0 -1 1631100734019 ""} { "Info" "IQEXE_ELAPSED_CPU_TIME" "00:00:03 " "Total CPU time (on all processors): 00:00:03" { } { } 0 0 "Total CPU time (on all processors): %1!s!" 0 0 "Quartus II" 0 -1 1631100734019 ""} } { } 0 0 "%6!s! %1!s! was successful. %2!d! error%3!s!, %4!d! warning%5!s!" 0 0 "Quartus II" 0 -1 1631100734019 ""} 42 | --------------------------------------------------------------------------------