From b77f4b8f6cd48452bbd56e84bba62f34066413f0 Mon Sep 17 00:00:00 2001
From: Joao Vitor MENEGON XAVIER <j23meneg@fl-tp-br-634.imta.fr>
Date: Wed, 5 Mar 2025 10:02:06 +0100
Subject: [PATCH] 5 mars

---
 docs/compte-rendu.md                          |    2 +
 docs/img/FSM.png                              |  Bin 117251 -> 132225 bytes
 proj/AudioProc.cache/sim/ssm.db               |   11 +
 proj/AudioProc.cache/wt/project.wpc           |    3 +
 proj/AudioProc.cache/wt/xsim.wdf              |    4 +
 proj/AudioProc.hw/AudioProc.lpr               |    7 +
 proj/AudioProc.ip_user_files/README.txt       |    1 +
 .../ip/clk_wiz_0/clk_wiz_0.vho                |  100 +
 .../ipstatic/mmcm_pll_drp_func_7s_mmcm.vh     |  680 ++++
 .../ipstatic/mmcm_pll_drp_func_7s_pll.vh      |  542 +++
 .../ipstatic/mmcm_pll_drp_func_us_mmcm.vh     |  680 ++++
 .../ipstatic/mmcm_pll_drp_func_us_pll.vh      |  555 +++
 .../mmcm_pll_drp_func_us_plus_mmcm.vh         |  886 +++++
 .../ipstatic/mmcm_pll_drp_func_us_plus_pll.vh |  561 +++
 .../clk_wiz_0/activehdl/README.txt            |   50 +
 .../clk_wiz_0/activehdl/clk_wiz_0.sh          |  258 ++
 .../clk_wiz_0/activehdl/clk_wiz_0.udo         |    0
 .../clk_wiz_0/activehdl/compile.do            |   18 +
 .../clk_wiz_0/activehdl/file_info.txt         |    3 +
 .../sim_scripts/clk_wiz_0/activehdl/glbl.v    |   84 +
 .../clk_wiz_0/activehdl/simulate.do           |   14 +
 .../sim_scripts/clk_wiz_0/modelsim/README.txt |   50 +
 .../clk_wiz_0/modelsim/clk_wiz_0.sh           |  287 ++
 .../clk_wiz_0/modelsim/clk_wiz_0.udo          |    0
 .../sim_scripts/clk_wiz_0/modelsim/compile.do |   15 +
 .../clk_wiz_0/modelsim/file_info.txt          |    3 +
 .../sim_scripts/clk_wiz_0/modelsim/glbl.v     |   84 +
 .../clk_wiz_0/modelsim/simulate.do            |   19 +
 .../sim_scripts/clk_wiz_0/modelsim/wave.do    |    2 +
 .../sim_scripts/clk_wiz_0/questa/README.txt   |   50 +
 .../sim_scripts/clk_wiz_0/questa/clk_wiz_0.sh |  297 ++
 .../clk_wiz_0/questa/clk_wiz_0.udo            |    0
 .../sim_scripts/clk_wiz_0/questa/compile.do   |   15 +
 .../sim_scripts/clk_wiz_0/questa/elaborate.do |    1 +
 .../clk_wiz_0/questa/file_info.txt            |    3 +
 .../sim_scripts/clk_wiz_0/questa/glbl.v       |   84 +
 .../sim_scripts/clk_wiz_0/questa/simulate.do  |   19 +
 .../sim_scripts/clk_wiz_0/questa/wave.do      |    2 +
 .../sim_scripts/clk_wiz_0/riviera/README.txt  |   50 +
 .../clk_wiz_0/riviera/clk_wiz_0.sh            |  264 ++
 .../clk_wiz_0/riviera/clk_wiz_0.udo           |    0
 .../sim_scripts/clk_wiz_0/riviera/compile.do  |   18 +
 .../clk_wiz_0/riviera/file_info.txt           |    3 +
 .../sim_scripts/clk_wiz_0/riviera/glbl.v      |   84 +
 .../sim_scripts/clk_wiz_0/riviera/simulate.do |   14 +
 .../sim_scripts/clk_wiz_0/vcs/README.txt      |   50 +
 .../sim_scripts/clk_wiz_0/vcs/clk_wiz_0.sh    |  337 ++
 .../sim_scripts/clk_wiz_0/vcs/file_info.txt   |    3 +
 .../sim_scripts/clk_wiz_0/vcs/glbl.v          |   84 +
 .../sim_scripts/clk_wiz_0/vcs/simulate.do     |    2 +
 .../sim_scripts/clk_wiz_0/xcelium/README.txt  |   50 +
 .../clk_wiz_0/xcelium/clk_wiz_0.sh            |  343 ++
 .../clk_wiz_0/xcelium/file_info.txt           |    3 +
 .../sim_scripts/clk_wiz_0/xcelium/glbl.v      |   84 +
 .../sim_scripts/clk_wiz_0/xcelium/hdl.var     |    0
 .../sim_scripts/clk_wiz_0/xcelium/simulate.do |    7 +
 .../sim_scripts/clk_wiz_0/xsim/README.txt     |   50 +
 .../sim_scripts/clk_wiz_0/xsim/clk_wiz_0.sh   |  330 ++
 .../sim_scripts/clk_wiz_0/xsim/cmd.tcl        |   12 +
 .../sim_scripts/clk_wiz_0/xsim/file_info.txt  |    3 +
 .../sim_scripts/clk_wiz_0/xsim/glbl.v         |   84 +
 .../sim_scripts/clk_wiz_0/xsim/vlog.prj       |    8 +
 .../sim_1/behav/xsim/compile.log              |    6 +
 .../AudioProc.sim/sim_1/behav/xsim/compile.sh |   28 +
 .../sim_1/behav/xsim/elaborate.log            |   49 +
 .../sim_1/behav/xsim/elaborate.sh             |   22 +
 proj/AudioProc.sim/sim_1/behav/xsim/glbl.v    |   84 +
 .../sim_1/behav/xsim/simulate.log             |    1 +
 .../sim_1/behav/xsim/simulate.sh              |   22 +
 .../sim_1/behav/xsim/tb_firUnit.tcl           |   11 +
 .../sim_1/behav/xsim/tb_firUnit_behav.wdb     |  Bin 0 -> 94714 bytes
 .../sim_1/behav/xsim/tb_firUnit_vhdl.prj      |    8 +
 .../sim_1/behav/xsim/tb_firUnit_vlog.prj      |    9 +
 proj/AudioProc.sim/sim_1/behav/xsim/xelab.pb  |  Bin 0 -> 5756 bytes
 .../tb_firUnit_behav/Compile_Options.txt      |    1 +
 .../tb_firUnit_behav/TempBreakPointFile.txt   |    1 +
 .../tb_firUnit_behav/obj/xsim_0.lnx64.o       |  Bin 0 -> 278848 bytes
 .../xsim.dir/tb_firUnit_behav/obj/xsim_1.c    |  572 +++
 .../tb_firUnit_behav/obj/xsim_1.lnx64.o       |  Bin 0 -> 36368 bytes
 .../xsim/xsim.dir/tb_firUnit_behav/xsim.dbg   |  Bin 0 -> 51520 bytes
 .../xsim/xsim.dir/tb_firUnit_behav/xsim.mem   |  Bin 0 -> 68207 bytes
 .../xsim/xsim.dir/tb_firUnit_behav/xsim.reloc |  Bin 0 -> 116468 bytes
 .../xsim/xsim.dir/tb_firUnit_behav/xsim.rlx   |   12 +
 .../xsim/xsim.dir/tb_firUnit_behav/xsim.rtti  |  Bin 0 -> 633 bytes
 .../xsim.dir/tb_firUnit_behav/xsim.svtype     |  Bin 0 -> 78 bytes
 .../xsim/xsim.dir/tb_firUnit_behav/xsim.type  |  Bin 0 -> 7552 bytes
 .../xsim/xsim.dir/tb_firUnit_behav/xsim.xdbg  |  Bin 0 -> 23272 bytes
 .../tb_firUnit_behav/xsimSettings.ini         |   50 +
 .../xsim.dir/tb_firUnit_behav/xsimcrash.log   |    0
 .../xsim/xsim.dir/tb_firUnit_behav/xsimk      |  Bin 0 -> 245872 bytes
 .../xsim.dir/tb_firUnit_behav/xsimkernel.log  |    7 +
 .../xsim.dir/xil_defaultlib/controlunit.vdb   |  Bin 0 -> 8568 bytes
 .../xsim/xsim.dir/xil_defaultlib/firunit.vdb  |  Bin 0 -> 10248 bytes
 .../xsim/xsim.dir/xil_defaultlib/glbl.sdb     |  Bin 0 -> 5635 bytes
 .../xil_defaultlib/operative@unit.sdb         |  Bin 0 -> 172617 bytes
 .../xsim.dir/xil_defaultlib/tb_firunit.vdb    |  Bin 0 -> 7426 bytes
 .../xil_defaultlib/xil_defaultlib.rlx         |    9 +
 proj/AudioProc.sim/sim_1/behav/xsim/xsim.ini  |  490 +++
 .../sim_1/behav/xsim/xsim.ini.bak             |  490 +++
 proj/AudioProc.sim/sim_1/behav/xsim/xvhdl.log |    6 +
 proj/AudioProc.sim/sim_1/behav/xsim/xvhdl.pb  |  Bin 0 -> 789 bytes
 proj/AudioProc.sim/sim_1/behav/xsim/xvlog.log |    0
 proj/AudioProc.sim/sim_1/behav/xsim/xvlog.pb  |    4 +
 proj/AudioProc.xpr                            |  322 ++
 proj/ip_upgrade.log                           |   27 +
 proj/tb_firUnit_behav.wcfg                    |   60 +
 src/hdl/controlUnit.vhd                       |   50 +-
 src/ip/clk_wiz_0/clk_wiz_0.dcp                |  Bin 12528 -> 0 bytes
 src/ip/clk_wiz_0/clk_wiz_0.v                  |   52 +-
 src/ip/clk_wiz_0/clk_wiz_0.vho                |   49 +-
 src/ip/clk_wiz_0/clk_wiz_0.xci                | 1253 +++---
 src/ip/clk_wiz_0/clk_wiz_0.xdc                |   34 +-
 src/ip/clk_wiz_0/clk_wiz_0.xml                | 3432 +++++++++--------
 src/ip/clk_wiz_0/clk_wiz_0_clk_wiz.v          |   65 +-
 src/ip/clk_wiz_0/clk_wiz_0_ooc.xdc            |   31 +-
 src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.v      |  278 --
 src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.vhdl   |  218 --
 src/ip/clk_wiz_0/clk_wiz_0_stub.v             |   24 -
 src/ip/clk_wiz_0/clk_wiz_0_stub.vhdl          |   33 -
 .../clk_wiz_0/doc/clk_wiz_v5_2_changelog.txt  |  115 -
 .../clk_wiz_0/doc/clk_wiz_v6_0_changelog.txt  |  323 ++
 src/ip/clk_wiz_0/mmcm_pll_drp_func_7s_mmcm.vh |  680 ++++
 src/ip/clk_wiz_0/mmcm_pll_drp_func_7s_pll.vh  |  542 +++
 src/ip/clk_wiz_0/mmcm_pll_drp_func_us_mmcm.vh |  680 ++++
 src/ip/clk_wiz_0/mmcm_pll_drp_func_us_pll.vh  |  555 +++
 .../mmcm_pll_drp_func_us_plus_mmcm.vh         |  886 +++++
 .../mmcm_pll_drp_func_us_plus_pll.vh          |  561 +++
 127 files changed, 16562 insertions(+), 2863 deletions(-)
 create mode 100644 proj/AudioProc.cache/sim/ssm.db
 create mode 100644 proj/AudioProc.cache/wt/project.wpc
 create mode 100644 proj/AudioProc.cache/wt/xsim.wdf
 create mode 100644 proj/AudioProc.hw/AudioProc.lpr
 create mode 100644 proj/AudioProc.ip_user_files/README.txt
 create mode 100755 proj/AudioProc.ip_user_files/ip/clk_wiz_0/clk_wiz_0.vho
 create mode 100755 proj/AudioProc.ip_user_files/ipstatic/mmcm_pll_drp_func_7s_mmcm.vh
 create mode 100755 proj/AudioProc.ip_user_files/ipstatic/mmcm_pll_drp_func_7s_pll.vh
 create mode 100755 proj/AudioProc.ip_user_files/ipstatic/mmcm_pll_drp_func_us_mmcm.vh
 create mode 100755 proj/AudioProc.ip_user_files/ipstatic/mmcm_pll_drp_func_us_pll.vh
 create mode 100755 proj/AudioProc.ip_user_files/ipstatic/mmcm_pll_drp_func_us_plus_mmcm.vh
 create mode 100755 proj/AudioProc.ip_user_files/ipstatic/mmcm_pll_drp_func_us_plus_pll.vh
 create mode 100644 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/activehdl/README.txt
 create mode 100755 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/activehdl/clk_wiz_0.sh
 create mode 100644 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/activehdl/clk_wiz_0.udo
 create mode 100644 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/activehdl/compile.do
 create mode 100644 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/activehdl/file_info.txt
 create mode 100755 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/activehdl/glbl.v
 create mode 100644 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/activehdl/simulate.do
 create mode 100644 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/modelsim/README.txt
 create mode 100755 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/modelsim/clk_wiz_0.sh
 create mode 100644 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/modelsim/clk_wiz_0.udo
 create mode 100644 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/modelsim/compile.do
 create mode 100644 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/modelsim/file_info.txt
 create mode 100755 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/modelsim/glbl.v
 create mode 100644 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/modelsim/simulate.do
 create mode 100644 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/modelsim/wave.do
 create mode 100644 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/README.txt
 create mode 100755 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/clk_wiz_0.sh
 create mode 100644 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/clk_wiz_0.udo
 create mode 100644 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/compile.do
 create mode 100644 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/elaborate.do
 create mode 100644 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/file_info.txt
 create mode 100755 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/glbl.v
 create mode 100644 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/simulate.do
 create mode 100644 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/wave.do
 create mode 100644 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/riviera/README.txt
 create mode 100755 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/riviera/clk_wiz_0.sh
 create mode 100644 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/riviera/clk_wiz_0.udo
 create mode 100644 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/riviera/compile.do
 create mode 100644 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/riviera/file_info.txt
 create mode 100755 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/riviera/glbl.v
 create mode 100644 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/riviera/simulate.do
 create mode 100644 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/vcs/README.txt
 create mode 100755 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/vcs/clk_wiz_0.sh
 create mode 100644 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/vcs/file_info.txt
 create mode 100755 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/vcs/glbl.v
 create mode 100644 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/vcs/simulate.do
 create mode 100644 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xcelium/README.txt
 create mode 100755 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xcelium/clk_wiz_0.sh
 create mode 100644 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xcelium/file_info.txt
 create mode 100755 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xcelium/glbl.v
 create mode 100644 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xcelium/hdl.var
 create mode 100644 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xcelium/simulate.do
 create mode 100644 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xsim/README.txt
 create mode 100755 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xsim/clk_wiz_0.sh
 create mode 100644 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xsim/cmd.tcl
 create mode 100644 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xsim/file_info.txt
 create mode 100755 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xsim/glbl.v
 create mode 100644 proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xsim/vlog.prj
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/compile.log
 create mode 100755 proj/AudioProc.sim/sim_1/behav/xsim/compile.sh
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/elaborate.log
 create mode 100755 proj/AudioProc.sim/sim_1/behav/xsim/elaborate.sh
 create mode 100755 proj/AudioProc.sim/sim_1/behav/xsim/glbl.v
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/simulate.log
 create mode 100755 proj/AudioProc.sim/sim_1/behav/xsim/simulate.sh
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/tb_firUnit.tcl
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/tb_firUnit_behav.wdb
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/tb_firUnit_vhdl.prj
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/tb_firUnit_vlog.prj
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/xelab.pb
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/Compile_Options.txt
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/TempBreakPointFile.txt
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_0.lnx64.o
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_1.c
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_1.lnx64.o
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.dbg
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.mem
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.reloc
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.rlx
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.rtti
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.svtype
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.type
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.xdbg
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimSettings.ini
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimcrash.log
 create mode 100755 proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimk
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimkernel.log
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/controlunit.vdb
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/firunit.vdb
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/glbl.sdb
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/operative@unit.sdb
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/tb_firunit.vdb
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/xil_defaultlib.rlx
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/xsim.ini
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/xsim.ini.bak
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/xvhdl.log
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/xvhdl.pb
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/xvlog.log
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/xvlog.pb
 create mode 100644 proj/AudioProc.xpr
 create mode 100644 proj/ip_upgrade.log
 create mode 100644 proj/tb_firUnit_behav.wcfg
 delete mode 100644 src/ip/clk_wiz_0/clk_wiz_0.dcp
 delete mode 100644 src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.v
 delete mode 100644 src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.vhdl
 delete mode 100644 src/ip/clk_wiz_0/clk_wiz_0_stub.v
 delete mode 100644 src/ip/clk_wiz_0/clk_wiz_0_stub.vhdl
 delete mode 100644 src/ip/clk_wiz_0/doc/clk_wiz_v5_2_changelog.txt
 create mode 100755 src/ip/clk_wiz_0/doc/clk_wiz_v6_0_changelog.txt
 create mode 100755 src/ip/clk_wiz_0/mmcm_pll_drp_func_7s_mmcm.vh
 create mode 100755 src/ip/clk_wiz_0/mmcm_pll_drp_func_7s_pll.vh
 create mode 100755 src/ip/clk_wiz_0/mmcm_pll_drp_func_us_mmcm.vh
 create mode 100755 src/ip/clk_wiz_0/mmcm_pll_drp_func_us_pll.vh
 create mode 100755 src/ip/clk_wiz_0/mmcm_pll_drp_func_us_plus_mmcm.vh
 create mode 100755 src/ip/clk_wiz_0/mmcm_pll_drp_func_us_plus_pll.vh

diff --git a/docs/compte-rendu.md b/docs/compte-rendu.md
index cd056f6..dc0585a 100644
--- a/docs/compte-rendu.md
+++ b/docs/compte-rendu.md
@@ -9,6 +9,8 @@
 
 ### Question filtre 1 : Combien de processus sont utilisés et de quelles natures sont-ils ? Comment les différenciez-vous ?
 
+Um total de dois processos foram utilizados. O primeiro é um processo sequencial (sincrono), pois trabalha com um sinal de relogio; o segundo é combinacional (assincrono), pois indepente do sinal de relogio.
+
 
 ### Question filtre 2 : La simulation vous permet-elle de valider votre description VHDL ? Justifiez.
 
diff --git a/docs/img/FSM.png b/docs/img/FSM.png
index 7f6db881fff5cdfb9351c0348dfec49ff082516d..6209a6edf52add08fccc178789f76dbbfafdffcc 100644
GIT binary patch
delta 108020
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
VYg8%2!@$76;OXk;vd$@?2>{kQ#$x~g

delta 95955
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%0Aa-tQ=@`ZDwN!IB>}6NHMYuP?ml
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
J);T3K0RRDDNsa&j

diff --git a/proj/AudioProc.cache/sim/ssm.db b/proj/AudioProc.cache/sim/ssm.db
new file mode 100644
index 0000000..450ac85
--- /dev/null
+++ b/proj/AudioProc.cache/sim/ssm.db
@@ -0,0 +1,11 @@
+################################################################################
+#                            DONOT REMOVE THIS FILE
+# Unified simulation database file for selected simulation model for IP
+#
+# File: ssm.db (Wed Feb 26 12:13:26 2025)
+#
+# This file is generated by the unified simulation automation and contains the
+# selected simulation model information for the IP/BD instances.
+#                            DONOT REMOVE THIS FILE
+################################################################################
+clk_wiz_0,rtl
diff --git a/proj/AudioProc.cache/wt/project.wpc b/proj/AudioProc.cache/wt/project.wpc
new file mode 100644
index 0000000..6888ede
--- /dev/null
+++ b/proj/AudioProc.cache/wt/project.wpc
@@ -0,0 +1,3 @@
+version:1
+6d6f64655f636f756e7465727c4755494d6f6465:2
+eof:
diff --git a/proj/AudioProc.cache/wt/xsim.wdf b/proj/AudioProc.cache/wt/xsim.wdf
new file mode 100644
index 0000000..50afb2c
--- /dev/null
+++ b/proj/AudioProc.cache/wt/xsim.wdf
@@ -0,0 +1,4 @@
+version:1
+7873696d:7873696d5c636f6d6d616e645f6c696e655f6f7074696f6e73:2d73696d5f6d6f6465:64656661756c743a3a6265686176696f72616c:00:00
+7873696d:7873696d5c636f6d6d616e645f6c696e655f6f7074696f6e73:2d73696d5f74797065:64656661756c743a3a:00:00
+eof:241934075
diff --git a/proj/AudioProc.hw/AudioProc.lpr b/proj/AudioProc.hw/AudioProc.lpr
new file mode 100644
index 0000000..afc0a86
--- /dev/null
+++ b/proj/AudioProc.hw/AudioProc.lpr
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Product Version: Vivado v2024.1 (64-bit)                                     -->
+<!--                                                                              -->
+<!-- Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.                        -->
+<!-- Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.        -->
+
+<labtools version="1" minor="0"/>
diff --git a/proj/AudioProc.ip_user_files/README.txt b/proj/AudioProc.ip_user_files/README.txt
new file mode 100644
index 0000000..023052c
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/README.txt
@@ -0,0 +1 @@
+The files in this directory structure are automatically generated and managed by Vivado. Editing these files is not recommended.
diff --git a/proj/AudioProc.ip_user_files/ip/clk_wiz_0/clk_wiz_0.vho b/proj/AudioProc.ip_user_files/ip/clk_wiz_0/clk_wiz_0.vho
new file mode 100755
index 0000000..b02ca8e
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/ip/clk_wiz_0/clk_wiz_0.vho
@@ -0,0 +1,100 @@
+
+-- (c) Copyright 2017-2018, 2023 Advanced Micro Devices, Inc. All rights reserved.
+--
+-- This file contains confidential and proprietary information
+-- of AMD and is protected under U.S. and international copyright
+-- and other intellectual property laws.
+--
+-- DISCLAIMER
+-- This disclaimer is not a license and does not grant any
+-- rights to the materials distributed herewith. Except as
+-- otherwise provided in a valid license issued to you by
+-- AMD, and to the maximum extent permitted by applicable
+-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
+-- WITH ALL FAULTS, AND AMD HEREBY DISCLAIMS ALL WARRANTIES
+-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
+-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
+-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
+-- (2) AMD shall not be liable (whether in contract or tort,
+-- including negligence, or under any other theory of
+-- liability) for any loss or damage of any kind or nature
+-- related to, arising under or in connection with these
+-- materials, including for any direct, or any indirect,
+-- special, incidental, or consequential loss or damage
+-- (including loss of data, profits, goodwill, or any type of
+-- loss or damage suffered as a result of any action brought
+-- by a third party) even if such damage or loss was
+-- reasonably foreseeable or AMD had been advised of the
+-- possibility of the same.
+--
+-- CRITICAL APPLICATIONS
+-- AMD products are not designed or intended to be fail-
+-- safe, or for use in any application requiring fail-safe
+-- performance, such as life-support or safety devices or
+-- systems, Class III medical devices, nuclear facilities,
+-- applications related to the deployment of airbags, or any
+-- other applications that could lead to death, personal
+-- injury, or severe property or environmental damage
+-- (individually and collectively, "Critical
+-- Applications"). Customer assumes the sole risk and
+-- liability of any use of AMD products in Critical
+-- Applications, subject only to applicable laws and
+-- regulations governing limitations on product liability.
+--
+-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
+-- PART OF THIS FILE AT ALL TIMES.
+------------------------------------------------------------------------------
+-- User entered comments
+------------------------------------------------------------------------------
+-- None
+--
+------------------------------------------------------------------------------
+--  Output     Output      Phase    Duty Cycle   Pk-to-Pk     Phase
+--   Clock     Freq (MHz)  (degrees)    (%)     Jitter (ps)  Error (ps)
+------------------------------------------------------------------------------
+-- clk_out1__100.00000______0.000______50.0______151.366____132.063
+-- clk_out2__200.00000______0.000______50.0______132.221____132.063
+-- clk_out3__12.00000______0.000______50.0______231.952____132.063
+-- clk_out4__50.00000______0.000______50.0______174.353____132.063
+--
+------------------------------------------------------------------------------
+-- Input Clock   Freq (MHz)    Input Jitter (UI)
+------------------------------------------------------------------------------
+-- __primary_________100.000____________0.010
+
+
+-- The following code must appear in the VHDL architecture header:
+------------- Begin Cut here for COMPONENT Declaration ------ COMP_TAG
+component clk_wiz_0
+port
+ (-- Clock in ports
+  -- Clock out ports
+  clk_out1          : out    std_logic;
+  clk_out2          : out    std_logic;
+  clk_out3          : out    std_logic;
+  clk_out4          : out    std_logic;
+  -- Status and control signals
+  reset             : in     std_logic;
+  locked            : out    std_logic;
+  clk_in1           : in     std_logic
+ );
+end component;
+
+-- COMP_TAG_END ------ End COMPONENT Declaration ------------
+-- The following code must appear in the VHDL architecture
+-- body. Substitute your own instance name and net names.
+------------- Begin Cut here for INSTANTIATION Template ----- INST_TAG
+your_instance_name : clk_wiz_0
+   port map ( 
+  -- Clock out ports  
+   clk_out1 => clk_out1,
+   clk_out2 => clk_out2,
+   clk_out3 => clk_out3,
+   clk_out4 => clk_out4,
+  -- Status and control signals                
+   reset => reset,
+   locked => locked,
+   -- Clock in ports
+   clk_in1 => clk_in1
+ );
+-- INST_TAG_END ------ End INSTANTIATION Template ------------
diff --git a/proj/AudioProc.ip_user_files/ipstatic/mmcm_pll_drp_func_7s_mmcm.vh b/proj/AudioProc.ip_user_files/ipstatic/mmcm_pll_drp_func_7s_mmcm.vh
new file mode 100755
index 0000000..6c4981a
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/ipstatic/mmcm_pll_drp_func_7s_mmcm.vh
@@ -0,0 +1,680 @@
+// (c) Copyright 2009-2010, 2023 Advanced Micro Devices, Inc. All rights reserved.
+//
+// This file contains confidential and proprietary information
+// of AMD and is protected under U.S. and international copyright
+// and other intellectual property laws.
+//
+// DISCLAIMER
+// This disclaimer is not a license and does not grant any
+// rights to the materials distributed herewith. Except as
+// otherwise provided in a valid license issued to you by
+// AMD, and to the maximum extent permitted by applicable
+// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
+// WITH ALL FAULTS, AND AMD HEREBY DISCLAIMS ALL WARRANTIES
+// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
+// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
+// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
+// (2) AMD shall not be liable (whether in contract or tort,
+// including negligence, or under any other theory of
+// liability) for any loss or damage of any kind or nature
+// related to, arising under or in connection with these
+// materials, including for any direct, or any indirect,
+// special, incidental, or consequential loss or damage
+// (including loss of data, profits, goodwill, or any type of
+// loss or damage suffered as a result of any action brought
+// by a third party) even if such damage or loss was
+// reasonably foreseeable or AMD had been advised of the
+// possibility of the same.
+//
+// CRITICAL APPLICATIONS
+// AMD products are not designed or intended to be fail-
+// safe, or for use in any application requiring fail-safe
+// performance, such as life-support or safety devices or
+// systems, Class III medical devices, nuclear facilities,
+// applications related to the deployment of airbags, or any
+// other applications that could lead to death, personal
+// injury, or severe property or environmental damage
+// (individually and collectively, "Critical
+// Applications"). Customer assumes the sole risk and
+// liability of any use of AMD products in Critical
+// Applications, subject only to applicable laws and
+// regulations governing limitations on product liability.
+//
+// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
+// PART OF THIS FILE AT ALL TIMES.
+////////////////////////////////////////////////////////////
+// 
+///////////////////////////////////////////////////////////////////////////////
+
+// These are user functions that should not be modified.  Changes to the defines
+// or code within the functions may alter the accuracy of the calculations.
+
+// Define debug to provide extra messages durring elaboration
+//`define DEBUG 1
+
+// FRAC_PRECISION describes the width of the fractional portion of the fixed
+//    point numbers.  These should not be modified, they are for development 
+//    only
+`define FRAC_PRECISION  10
+// FIXED_WIDTH describes the total size for fixed point calculations(int+frac).
+// Warning: L.50 and below will not calculate properly with FIXED_WIDTHs 
+//    greater than 32
+`define FIXED_WIDTH     32 
+
+// This function takes a fixed point number and rounds it to the nearest
+//    fractional precision bit.
+function [`FIXED_WIDTH:1] round_frac
+   (
+      // Input is (FIXED_WIDTH-FRAC_PRECISION).FRAC_PRECISION fixed point number
+      input [`FIXED_WIDTH:1] decimal,  
+
+      // This describes the precision of the fraction, for example a value
+      //    of 1 would modify the fractional so that instead of being a .16
+      //    fractional, it would be a .1 (rounded to the nearest 0.5 in turn)
+      input [`FIXED_WIDTH:1] precision 
+   );
+
+   begin
+   
+   `ifdef DEBUG
+      $display("round_frac - decimal: %h, precision: %h", decimal, precision);
+   `endif
+      // If the fractional precision bit is high then round up
+      if( decimal[(`FRAC_PRECISION-precision)] == 1'b1) begin
+         round_frac = decimal + (1'b1 << (`FRAC_PRECISION-precision));
+      end else begin
+         round_frac = decimal;
+      end
+   `ifdef DEBUG
+      $display("round_frac: %h", round_frac);
+   `endif
+   end
+endfunction
+
+// This function calculates high_time, low_time, w_edge, and no_count
+//    of a non-fractional counter based on the divide and duty cycle
+//
+// NOTE: high_time and low_time are returned as integers between 0 and 63 
+//    inclusive.  64 should equal 6'b000000 (in other words it is okay to 
+//    ignore the overflow)
+function [13:0] mmcm_pll_divider
+   (
+      input [7:0] divide,        // Max divide is 128
+      input [31:0] duty_cycle    // Duty cycle is multiplied by 100,000
+   );
+
+   reg [`FIXED_WIDTH:1]    duty_cycle_fix;
+   
+   // High/Low time is initially calculated with a wider integer to prevent a
+   // calculation error when it overflows to 64.
+   reg [6:0]               high_time;
+   reg [6:0]               low_time;
+   reg                     w_edge;
+   reg                     no_count;
+
+   reg [`FIXED_WIDTH:1]    temp;
+
+   begin
+      // Duty Cycle must be between 0 and 1,000
+      if(duty_cycle <=0 || duty_cycle >= 100000) begin
+`ifndef SYNTHESIS
+         $display("ERROR: duty_cycle: %d is invalid", duty_cycle);
+   `endif
+         $finish;
+      end
+
+      // Convert to FIXED_WIDTH-FRAC_PRECISION.FRAC_PRECISION fixed point
+      duty_cycle_fix = (duty_cycle << `FRAC_PRECISION) / 100_000;
+      
+   `ifdef DEBUG
+      $display("duty_cycle_fix: %h", duty_cycle_fix);
+   `endif
+
+      // If the divide is 1 nothing needs to be set except the no_count bit.
+      //    Other values are dummies
+      if(divide == 7'h01) begin
+         high_time   = 7'h01;
+         w_edge      = 1'b0;
+         low_time    = 7'h01;
+         no_count    = 1'b1;
+      end else begin
+         temp = round_frac(duty_cycle_fix*divide, 1);
+
+         // comes from above round_frac
+         high_time   = temp[`FRAC_PRECISION+7:`FRAC_PRECISION+1]; 
+         // If the duty cycle * divide rounded is .5 or greater then this bit
+         //    is set.
+         w_edge      = temp[`FRAC_PRECISION]; // comes from round_frac
+         
+         // If the high time comes out to 0, it needs to be set to at least 1
+         // and w_edge set to 0
+         if(high_time == 7'h00) begin
+            high_time   = 7'h01;
+            w_edge      = 1'b0;
+         end
+
+         if(high_time == divide) begin
+            high_time   = divide - 1;
+            w_edge      = 1'b1;
+         end
+         
+         // Calculate low_time based on the divide setting and set no_count to
+         //    0 as it is only used when divide is 1.
+         low_time    = divide - high_time; 
+         no_count    = 1'b0;
+      end
+
+      // Set the return value.
+      mmcm_pll_divider = {w_edge,no_count,high_time[5:0],low_time[5:0]};
+   end
+endfunction
+
+// This function calculates mx, delay_time, and phase_mux 
+//  of a non-fractional counter based on the divide and phase
+//
+// NOTE: The only valid value for the MX bits is 2'b00 to ensure the coarse mux
+//    is used.
+function [10:0] mmcm_pll_phase
+   (
+      // divide must be an integer (use fractional if not)
+      //  assumed that divide already checked to be valid
+      input [7:0] divide, // Max divide is 128
+
+      // Phase is given in degrees (-360,000 to 360,000)
+      input signed [31:0] phase
+   );
+
+   reg [`FIXED_WIDTH:1] phase_in_cycles;
+   reg [`FIXED_WIDTH:1] phase_fixed;
+   reg [1:0]            mx;
+   reg [5:0]            delay_time;
+   reg [2:0]            phase_mux;
+
+   reg [`FIXED_WIDTH:1] temp;
+
+   begin
+`ifdef DEBUG
+      $display("mmcm_pll_phase-divide:%d,phase:%d",
+         divide, phase);
+`endif
+   
+      if ((phase < -360000) || (phase > 360000)) begin
+`ifndef SYNTHESIS
+      $display("ERROR: phase of $phase is not between -360000 and 360000");
+	`endif
+         $finish;
+      end
+
+      // If phase is less than 0, convert it to a positive phase shift
+      // Convert to (FIXED_WIDTH-FRAC_PRECISION).FRAC_PRECISION fixed point
+      if(phase < 0) begin
+         phase_fixed = ( (phase + 360000) << `FRAC_PRECISION ) / 1000;
+      end else begin
+         phase_fixed = ( phase << `FRAC_PRECISION ) / 1000;
+      end
+
+      // Put phase in terms of decimal number of vco clock cycles
+      phase_in_cycles = ( phase_fixed * divide ) / 360;
+
+`ifdef DEBUG
+      $display("phase_in_cycles: %h", phase_in_cycles);
+`endif  
+      
+
+	 temp  =  round_frac(phase_in_cycles, 3);
+
+	 // set mx to 2'b00 that the phase mux from the VCO is enabled
+	 mx    			=  2'b00; 
+	 phase_mux      =  temp[`FRAC_PRECISION:`FRAC_PRECISION-2];
+	 delay_time     =  temp[`FRAC_PRECISION+6:`FRAC_PRECISION+1];
+      
+   `ifdef DEBUG
+      $display("temp: %h", temp);
+   `endif
+
+      // Setup the return value
+      mmcm_pll_phase={mx, phase_mux, delay_time};
+   end
+endfunction
+
+// This function takes the divide value and outputs the necessary lock values
+function [39:0] mmcm_pll_lock_lookup
+   (
+      input [6:0] divide // Max divide is 64
+   );
+   
+   reg [2559:0]   lookup;
+   
+   begin
+      lookup = {
+         // This table is composed of:
+         // LockRefDly_LockFBDly_LockCnt_LockSatHigh_UnlockCnt
+         40'b00110_00110_1111101000_1111101001_0000000001,
+         40'b00110_00110_1111101000_1111101001_0000000001,
+         40'b01000_01000_1111101000_1111101001_0000000001,
+         40'b01011_01011_1111101000_1111101001_0000000001,
+         40'b01110_01110_1111101000_1111101001_0000000001,
+         40'b10001_10001_1111101000_1111101001_0000000001,
+         40'b10011_10011_1111101000_1111101001_0000000001,
+         40'b10110_10110_1111101000_1111101001_0000000001,
+         40'b11001_11001_1111101000_1111101001_0000000001,
+         40'b11100_11100_1111101000_1111101001_0000000001,
+         40'b11111_11111_1110000100_1111101001_0000000001,
+         40'b11111_11111_1100111001_1111101001_0000000001,
+         40'b11111_11111_1011101110_1111101001_0000000001,
+         40'b11111_11111_1010111100_1111101001_0000000001,
+         40'b11111_11111_1010001010_1111101001_0000000001,
+         40'b11111_11111_1001110001_1111101001_0000000001,
+         40'b11111_11111_1000111111_1111101001_0000000001,
+         40'b11111_11111_1000100110_1111101001_0000000001,
+         40'b11111_11111_1000001101_1111101001_0000000001,
+         40'b11111_11111_0111110100_1111101001_0000000001,
+         40'b11111_11111_0111011011_1111101001_0000000001,
+         40'b11111_11111_0111000010_1111101001_0000000001,
+         40'b11111_11111_0110101001_1111101001_0000000001,
+         40'b11111_11111_0110010000_1111101001_0000000001,
+         40'b11111_11111_0110010000_1111101001_0000000001,
+         40'b11111_11111_0101110111_1111101001_0000000001,
+         40'b11111_11111_0101011110_1111101001_0000000001,
+         40'b11111_11111_0101011110_1111101001_0000000001,
+         40'b11111_11111_0101000101_1111101001_0000000001,
+         40'b11111_11111_0101000101_1111101001_0000000001,
+         40'b11111_11111_0100101100_1111101001_0000000001,
+         40'b11111_11111_0100101100_1111101001_0000000001,
+         40'b11111_11111_0100101100_1111101001_0000000001,
+         40'b11111_11111_0100010011_1111101001_0000000001,
+         40'b11111_11111_0100010011_1111101001_0000000001,
+         40'b11111_11111_0100010011_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001
+      };
+      
+      // Set lookup_entry with the explicit bits from lookup with a part select
+      mmcm_pll_lock_lookup = lookup[ ((64-divide)*40) +: 40];
+   `ifdef DEBUG
+      $display("lock_lookup: %b", mmcm_pll_lock_lookup);
+   `endif
+   end
+endfunction
+
+// This function takes the divide value and the bandwidth setting of the MMCM
+//  and outputs the digital filter settings necessary.
+function [9:0] mmcm_pll_filter_lookup
+   (
+      input [6:0] divide, // Max divide is 64
+      input [8*9:0] BANDWIDTH
+   );
+   
+   reg [639:0] lookup_low;
+   reg [639:0] lookup_high;
+   
+   reg [9:0] lookup_entry;
+   
+   begin
+      lookup_low = {
+         // CP_RES_LFHF
+         10'b0010_1111_00,
+         10'b0010_1111_00,
+         10'b0010_1111_00,
+         10'b0010_1111_00,
+         10'b0010_0111_00,
+         10'b0010_1011_00,
+         10'b0010_1101_00,
+         10'b0010_0011_00,
+         10'b0010_0101_00,
+         10'b0010_0101_00,
+         10'b0010_1001_00,
+         10'b0010_1110_00,
+         10'b0010_1110_00,
+         10'b0010_1110_00,
+         10'b0010_1110_00,
+         10'b0010_0001_00,
+         10'b0010_0001_00,
+         10'b0010_0001_00,
+         10'b0010_0110_00,
+         10'b0010_0110_00,
+         10'b0010_0110_00,
+         10'b0010_0110_00,
+         10'b0010_0110_00,
+         10'b0010_0110_00,
+         10'b0010_0110_00,
+         10'b0010_1010_00,
+         10'b0010_1010_00,
+         10'b0010_1010_00,
+         10'b0010_1010_00,
+         10'b0010_1010_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00
+      };
+      
+      lookup_high = {
+         // CP_RES_LFHF
+         10'b0010_1111_00,
+         10'b0100_1111_00,
+         10'b0101_1011_00,
+         10'b0111_0111_00,
+         10'b1101_0111_00,
+         10'b1110_1011_00,
+         10'b1110_1101_00,
+         10'b1111_0011_00,
+         10'b1110_0101_00,
+         10'b1111_0101_00,
+         10'b1111_1001_00,
+         10'b1101_0001_00,
+         10'b1111_1001_00,
+         10'b1111_1001_00,
+         10'b1111_1001_00,
+         10'b1111_1001_00,
+         10'b1111_0101_00,
+         10'b1111_0101_00,
+         10'b1100_0001_00,
+         10'b1100_0001_00,
+         10'b1100_0001_00,
+         10'b0101_1100_00,
+         10'b0101_1100_00,
+         10'b0101_1100_00,
+         10'b0101_1100_00,
+         10'b0011_0100_00,
+         10'b0011_0100_00,
+         10'b0011_0100_00,
+         10'b0011_0100_00,
+         10'b0011_0100_00,
+         10'b0011_0100_00,
+         10'b0011_0100_00,
+         10'b0011_0100_00,
+         10'b0011_0100_00,
+         10'b0011_0100_00,
+         10'b0011_0100_00,
+         10'b0011_0100_00,
+         10'b0011_0100_00,
+         10'b0011_0100_00,
+         10'b0011_0100_00,
+         10'b0011_0100_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0111_0001_00,
+         10'b0111_0001_00,
+         10'b0100_1100_00,
+         10'b0100_1100_00,
+         10'b0100_1100_00,
+         10'b0100_1100_00,
+         10'b0110_0001_00,
+         10'b0110_0001_00,
+         10'b0101_0110_00,
+         10'b0101_0110_00,
+         10'b0101_0110_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0100_1010_00,
+         10'b0011_1100_00,
+         10'b0011_1100_00
+      };
+      
+      // Set lookup_entry with the explicit bits from lookup with a part select
+      if(BANDWIDTH == "LOW") begin
+         // Low Bandwidth
+         mmcm_pll_filter_lookup = lookup_low[ ((64-divide)*10) +: 10];
+      end else begin
+         // High or optimized bandwidth
+         mmcm_pll_filter_lookup = lookup_high[ ((64-divide)*10) +: 10];
+      end
+      
+   `ifdef DEBUG
+      $display("filter_lookup: %b", mmcm_pll_filter_lookup);
+   `endif
+   end
+endfunction
+
+// This function takes in the divide, phase, and duty cycle
+// setting to calculate the upper and lower counter registers.
+function [37:0] mmcm_pll_count_calc
+   (
+      input [7:0] divide, // Max divide is 128
+      input signed [31:0] phase,
+      input [31:0] duty_cycle // Multiplied by 100,000
+   );
+   
+   reg [13:0] div_calc;
+   reg [16:0] phase_calc;
+   
+   begin
+   `ifdef DEBUG
+      $display("mmcm_pll_count_calc- divide:%h, phase:%d, duty_cycle:%d",
+         divide, phase, duty_cycle);
+   `endif
+   
+      // w_edge[13], no_count[12], high_time[11:6], low_time[5:0]
+      div_calc = mmcm_pll_divider(divide, duty_cycle);
+      // mx[10:9], pm[8:6], dt[5:0]
+      phase_calc = mmcm_pll_phase(divide, phase);
+
+      // Return value is the upper and lower address of counter
+      //    Upper address is:
+      //       RESERVED    [31:26]
+      //       MX          [25:24]
+      //       EDGE        [23]
+      //       NOCOUNT     [22]
+      //       DELAY_TIME  [21:16]
+      //    Lower Address is:
+      //       PHASE_MUX   [15:13]
+      //       RESERVED    [12]
+      //       HIGH_TIME   [11:6]
+      //       LOW_TIME    [5:0]
+      
+   `ifdef DEBUG
+      $display("div:%d dc:%d phase:%d ht:%d lt:%d ed:%d nc:%d mx:%d dt:%d pm:%d",
+         divide, duty_cycle, phase, div_calc[11:6], div_calc[5:0], 
+         div_calc[13], div_calc[12], 
+         phase_calc[16:15], phase_calc[5:0], phase_calc[14:12]);
+   `endif
+      
+      mmcm_pll_count_calc =
+         {
+            // Upper Address
+            6'h00, phase_calc[10:9], div_calc[13:12], phase_calc[5:0], 
+            // Lower Address
+            phase_calc[8:6], 1'b0, div_calc[11:0]
+         };
+   end
+endfunction
+
+
+// This function takes in the divide, phase, and duty cycle
+// setting to calculate the upper and lower counter registers.
+// for fractional multiply/divide functions.
+//
+// 
+function [37:0] mmcm_frac_count_calc
+   (
+      input [7:0] divide, // Max divide is 128
+      input signed [31:0] phase,
+      input [31:0] duty_cycle, // Multiplied by 1,000
+      input [9:0] frac // Multiplied by 1000
+   );
+   
+	//Required for fractional divide calculations
+			  reg	[7:0]			lt_frac;
+			  reg	[7:0]			ht_frac;
+			
+			  reg	/*[7:0]*/			wf_fall_frac;
+			  reg	/*[7:0]*/			wf_rise_frac;
+
+			  reg [31:0] a;
+			  reg	[7:0]			pm_rise_frac_filtered ;
+			  reg	[7:0]			pm_fall_frac_filtered ;	
+			  reg [7:0]			clkout0_divide_int;
+			  reg [2:0]			clkout0_divide_frac;
+			  reg	[7:0]			even_part_high;
+			  reg	[7:0]			even_part_low;
+
+			  reg	[7:0]			odd;
+			  reg	[7:0]			odd_and_frac;
+
+			  reg	[7:0]			pm_fall;
+			  reg	[7:0]			pm_rise;
+			  reg	[7:0]			dt;
+			  reg	[7:0]			dt_int; 
+			  reg [63:0]		dt_calc;
+
+			  reg	[7:0]			pm_rise_frac; 
+			  reg	[7:0]			pm_fall_frac;
+	 
+			  reg [31:0] a_per_in_octets;
+			  reg [31:0] a_phase_in_cycles;
+
+				parameter precision = 0.125;
+
+			  reg [31:0] phase_fixed; // changed to 31:0 from 32:1 jt 5/2/11
+			  reg [31: 0] phase_pos;
+			  reg [31: 0] phase_vco;
+			  reg [31:0] temp;// changed to 31:0 from 32:1 jt 5/2/11
+			  reg [13:0] div_calc;
+			  reg [16:0] phase_calc;
+
+   begin
+	`ifdef DEBUG
+			$display("mmcm_frac_count_calc- divide:%h, phase:%d, duty_cycle:%d",
+				divide, phase, duty_cycle);
+	`endif
+   
+   //convert phase to fixed
+   if ((phase < -360000) || (phase > 360000)) begin
+`ifndef SYNTHESIS
+      $display("ERROR: phase of $phase is not between -360000 and 360000");
+	`endif
+      $finish;
+   end
+
+
+      // Return value is
+      //    Transfer data
+      //       RESERVED     [37:36]
+      //       FRAC_TIME    [35:33]
+      //       FRAC_WF_FALL [32]
+      //    Upper address is:
+      //       RESERVED     [31:26]
+      //       MX           [25:24]
+      //       EDGE         [23]
+      //       NOCOUNT      [22]
+      //       DELAY_TIME   [21:16]
+      //    Lower Address is:
+      //       PHASE_MUX    [15:13]
+      //       RESERVED     [12]
+      //       HIGH_TIME    [11:6]
+      //       LOW_TIME     [5:0]
+      
+      
+
+	clkout0_divide_frac = frac / 125;
+	clkout0_divide_int = divide;
+
+	even_part_high = clkout0_divide_int >> 1;//$rtoi(clkout0_divide_int / 2);
+	even_part_low = even_part_high;
+									
+	odd = clkout0_divide_int - even_part_high - even_part_low;
+	odd_and_frac = (8*odd) + clkout0_divide_frac;
+
+	lt_frac = even_part_high - (odd_and_frac <= 9);//IF(odd_and_frac>9,even_part_high, even_part_high - 1)
+	ht_frac = even_part_low  - (odd_and_frac <= 8);//IF(odd_and_frac>8,even_part_low, even_part_low- 1)
+
+	pm_fall =  {odd[6:0],2'b00} + {6'h00, clkout0_divide_frac[2:1]}; // using >> instead of clkout0_divide_frac / 2 
+	pm_rise = 0; //0
+    
+	wf_fall_frac = ((odd_and_frac >=2) && (odd_and_frac <=9)) || ((clkout0_divide_frac == 1) && (clkout0_divide_int == 2));//CRS610807
+	wf_rise_frac = (odd_and_frac >=1) && (odd_and_frac <=8);//IF(odd_and_frac>=1,IF(odd_and_frac <= 8,1,0),0)
+
+
+
+	//Calculate phase in fractional cycles
+	a_per_in_octets		= (8 * divide) + (frac / 125) ;
+	a_phase_in_cycles	= (phase+10) * a_per_in_octets / 360000 ;//Adding 1 due to rounding errors
+	pm_rise_frac		= (a_phase_in_cycles[7:0] ==8'h00)?8'h00:a_phase_in_cycles[7:0] - {a_phase_in_cycles[7:3],3'b000};
+
+	dt_calc 	= ((phase+10) * a_per_in_octets / 8 )/360000 ;//TRUNC(phase* divide / 360); //or_simply (a_per_in_octets / 8)
+	dt 	= dt_calc[7:0];
+
+	pm_rise_frac_filtered = (pm_rise_frac >=8) ? (pm_rise_frac ) - 8: pm_rise_frac ;				//((phase_fixed * (divide + frac / 1000)) / 360) - {pm_rise_frac[7:3],3'b000};//$rtoi(clkout0_phase * clkout0_divide / 45);//a;
+
+	dt_int			= dt + (& pm_rise_frac[7:4]); //IF(pm_rise_overwriting>7,dt+1,dt)
+	pm_fall_frac		= pm_fall + pm_rise_frac;
+	pm_fall_frac_filtered	= pm_fall + pm_rise_frac - {pm_fall_frac[7:3], 3'b000};
+
+	div_calc	= mmcm_pll_divider(divide, duty_cycle); //Use to determine edge[7], no count[6]
+	phase_calc	= mmcm_pll_phase(divide, phase);// returns{mx[1:0], phase_mux[2:0], delay_time[5:0]}
+		
+      mmcm_frac_count_calc[37:0] =
+         {		2'b00, pm_fall_frac_filtered[2:0], wf_fall_frac,
+			1'b0, clkout0_divide_frac[2:0], 1'b1, wf_rise_frac, phase_calc[10:9], div_calc[13:12], dt[5:0], 
+			pm_rise_frac_filtered[2], pm_rise_frac_filtered[1], pm_rise_frac_filtered[0], 1'b0, ht_frac[5:0], lt_frac[5:0]
+		} ;
+
+   `ifdef DEBUG
+      $display("-%d.%d p%d>>  :DADDR_9_15 frac30to28.frac_en.wf_r_frac.dt:%b%d%d_%b:DADDR_7_13 pm_f_frac_filtered_29to27.wf_f_frac_26:%b%d:DADDR_8_14.pm_r_frac_filt_15to13.ht_frac.lt_frac:%b%b%b:", divide, frac, phase, clkout0_divide_frac, 1, wf_rise_frac, dt, pm_fall_frac_filtered, wf_fall_frac, pm_rise_frac_filtered, ht_frac, lt_frac);
+   `endif
+
+   end
+endfunction
+
diff --git a/proj/AudioProc.ip_user_files/ipstatic/mmcm_pll_drp_func_7s_pll.vh b/proj/AudioProc.ip_user_files/ipstatic/mmcm_pll_drp_func_7s_pll.vh
new file mode 100755
index 0000000..b662a3e
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/ipstatic/mmcm_pll_drp_func_7s_pll.vh
@@ -0,0 +1,542 @@
+// (c) Copyright 2009-2010, 2023 Advanced Micro Devices, Inc. All rights reserved.
+//
+// This file contains confidential and proprietary information
+// of AMD and is protected under U.S. and international copyright
+// and other intellectual property laws.
+//
+// DISCLAIMER
+// This disclaimer is not a license and does not grant any
+// rights to the materials distributed herewith. Except as
+// otherwise provided in a valid license issued to you by
+// AMD, and to the maximum extent permitted by applicable
+// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
+// WITH ALL FAULTS, AND AMD HEREBY DISCLAIMS ALL WARRANTIES
+// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
+// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
+// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
+// (2) AMD shall not be liable (whether in contract or tort,
+// including negligence, or under any other theory of
+// liability) for any loss or damage of any kind or nature
+// related to, arising under or in connection with these
+// materials, including for any direct, or any indirect,
+// special, incidental, or consequential loss or damage
+// (including loss of data, profits, goodwill, or any type of
+// loss or damage suffered as a result of any action brought
+// by a third party) even if such damage or loss was
+// reasonably foreseeable or AMD had been advised of the
+// possibility of the same.
+//
+// CRITICAL APPLICATIONS
+// AMD products are not designed or intended to be fail-
+// safe, or for use in any application requiring fail-safe
+// performance, such as life-support or safety devices or
+// systems, Class III medical devices, nuclear facilities,
+// applications related to the deployment of airbags, or any
+// other applications that could lead to death, personal
+// injury, or severe property or environmental damage
+// (individually and collectively, "Critical
+// Applications"). Customer assumes the sole risk and
+// liability of any use of AMD products in Critical
+// Applications, subject only to applicable laws and
+// regulations governing limitations on product liability.
+//
+// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
+// PART OF THIS FILE AT ALL TIMES.
+////////////////////////////////////////////////////////////
+// 
+///////////////////////////////////////////////////////////////////////////////
+
+// These are user functions that should not be modified.  Changes to the defines
+// or code within the functions may alter the accuracy of the calculations.
+
+// Define debug to provide extra messages durring elaboration
+//`define DEBUG 1
+
+// FRAC_PRECISION describes the width of the fractional portion of the fixed
+//    point numbers.  These should not be modified, they are for development 
+//    only
+`define FRAC_PRECISION  10
+// FIXED_WIDTH describes the total size for fixed point calculations(int+frac).
+// Warning: L.50 and below will not calculate properly with FIXED_WIDTHs 
+//    greater than 32
+`define FIXED_WIDTH     32 
+
+// This function takes a fixed point number and rounds it to the nearest
+//    fractional precision bit.
+function [`FIXED_WIDTH:1] round_frac
+   (
+      // Input is (FIXED_WIDTH-FRAC_PRECISION).FRAC_PRECISION fixed point number
+      input [`FIXED_WIDTH:1] decimal,  
+
+      // This describes the precision of the fraction, for example a value
+      //    of 1 would modify the fractional so that instead of being a .16
+      //    fractional, it would be a .1 (rounded to the nearest 0.5 in turn)
+      input [`FIXED_WIDTH:1] precision 
+   );
+
+   begin
+   
+`ifdef DEBUG
+      $display("round_frac - decimal: %h, precision: %h", decimal, precision);
+`endif
+      // If the fractional precision bit is high then round up
+      if( decimal[(`FRAC_PRECISION-precision)] == 1'b1) begin
+         round_frac = decimal + (1'b1 << (`FRAC_PRECISION-precision));
+      end else begin
+         round_frac = decimal;
+      end
+`ifdef DEBUG
+      $display("round_frac: %h", round_frac);
+`endif
+   end
+endfunction
+
+// This function calculates high_time, low_time, w_edge, and no_count
+//    of a non-fractional counter based on the divide and duty cycle
+//
+// NOTE: high_time and low_time are returned as integers between 0 and 63 
+//    inclusive.  64 should equal 6'b000000 (in other words it is okay to 
+//    ignore the overflow)
+function [13:0] mmcm_pll_divider
+   (
+      input [7:0] divide,        // Max divide is 128
+      input [31:0] duty_cycle    // Duty cycle is multiplied by 100,000
+   );
+
+   reg [`FIXED_WIDTH:1]    duty_cycle_fix;
+   
+   // High/Low time is initially calculated with a wider integer to prevent a
+   // calculation error when it overflows to 64.
+   reg [6:0]               high_time;
+   reg [6:0]               low_time;
+   reg                     w_edge;
+   reg                     no_count;
+
+   reg [`FIXED_WIDTH:1]    temp;
+
+   begin
+      // Duty Cycle must be between 0 and 1,000
+      if(duty_cycle <=0 || duty_cycle >= 100000) begin
+`ifndef SYNTHESIS
+         $display("ERROR: duty_cycle: %d is invalid", duty_cycle);
+   `endif
+         $finish;
+      end
+
+      // Convert to FIXED_WIDTH-FRAC_PRECISION.FRAC_PRECISION fixed point
+      duty_cycle_fix = (duty_cycle << `FRAC_PRECISION) / 100_000;
+      
+`ifdef DEBUG
+      $display("duty_cycle_fix: %h", duty_cycle_fix);
+`endif
+
+      // If the divide is 1 nothing needs to be set except the no_count bit.
+      //    Other values are dummies
+      if(divide == 7'h01) begin
+         high_time   = 7'h01;
+         w_edge      = 1'b0;
+         low_time    = 7'h01;
+         no_count    = 1'b1;
+      end else begin
+         temp = round_frac(duty_cycle_fix*divide, 1);
+
+         // comes from above round_frac
+         high_time   = temp[`FRAC_PRECISION+7:`FRAC_PRECISION+1]; 
+         // If the duty cycle * divide rounded is .5 or greater then this bit
+         //    is set.
+         w_edge      = temp[`FRAC_PRECISION]; // comes from round_frac
+         
+         // If the high time comes out to 0, it needs to be set to at least 1
+         // and w_edge set to 0
+         if(high_time == 7'h00) begin
+            high_time   = 7'h01;
+            w_edge      = 1'b0;
+         end
+
+         if(high_time == divide) begin
+            high_time   = divide - 1;
+            w_edge      = 1'b1;
+         end
+         
+         // Calculate low_time based on the divide setting and set no_count to
+         //    0 as it is only used when divide is 1.
+         low_time    = divide - high_time; 
+         no_count    = 1'b0;
+      end
+
+      // Set the return value.
+      mmcm_pll_divider = {w_edge,no_count,high_time[5:0],low_time[5:0]};
+   end
+endfunction
+
+// This function calculates mx, delay_time, and phase_mux 
+//  of a non-fractional counter based on the divide and phase
+//
+// NOTE: The only valid value for the MX bits is 2'b00 to ensure the coarse mux
+//    is used.
+function [10:0] mmcm_pll_phase
+   (
+      // divide must be an integer (use fractional if not)
+      //  assumed that divide already checked to be valid
+      input [7:0] divide, // Max divide is 128
+
+      // Phase is given in degrees (-360,000 to 360,000)
+      input signed [31:0] phase
+   );
+
+   reg [`FIXED_WIDTH:1] phase_in_cycles;
+   reg [`FIXED_WIDTH:1] phase_fixed;
+   reg [1:0]            mx;
+   reg [5:0]            delay_time;
+   reg [2:0]            phase_mux;
+
+   reg [`FIXED_WIDTH:1] temp;
+
+   begin
+`ifdef DEBUG
+      $display("mmcm_pll_phase-divide:%d,phase:%d",
+         divide, phase);
+`endif
+   
+      if ((phase < -360000) || (phase > 360000)) begin
+`ifndef SYNTHESIS
+      $display("ERROR: phase of $phase is not between -360000 and 360000");
+	`endif
+         $finish;
+      end
+
+      // If phase is less than 0, convert it to a positive phase shift
+      // Convert to (FIXED_WIDTH-FRAC_PRECISION).FRAC_PRECISION fixed point
+      if(phase < 0) begin
+         phase_fixed = ( (phase + 360000) << `FRAC_PRECISION ) / 1000;
+      end else begin
+         phase_fixed = ( phase << `FRAC_PRECISION ) / 1000;
+      end
+
+      // Put phase in terms of decimal number of vco clock cycles
+      phase_in_cycles = ( phase_fixed * divide ) / 360;
+
+`ifdef DEBUG
+      $display("phase_in_cycles: %h", phase_in_cycles);
+`endif  
+      
+
+	 temp  =  round_frac(phase_in_cycles, 3);
+
+	 // set mx to 2'b00 that the phase mux from the VCO is enabled
+	 mx    			=  2'b00; 
+	 phase_mux      =  temp[`FRAC_PRECISION:`FRAC_PRECISION-2];
+	 delay_time     =  temp[`FRAC_PRECISION+6:`FRAC_PRECISION+1];
+      
+`ifdef DEBUG
+      $display("temp: %h", temp);
+`endif
+
+      // Setup the return value
+      mmcm_pll_phase={mx, phase_mux, delay_time};
+   end
+endfunction
+
+// This function takes the divide value and outputs the necessary lock values
+function [39:0] mmcm_pll_lock_lookup
+   (
+      input [6:0] divide // Max divide is 64
+   );
+   
+   reg [2559:0]   lookup;
+   
+   begin
+      lookup = {
+         // This table is composed of:
+         // LockRefDly_LockFBDly_LockCnt_LockSatHigh_UnlockCnt
+         40'b00110_00110_1111101000_1111101001_0000000001,
+         40'b00110_00110_1111101000_1111101001_0000000001,
+         40'b01000_01000_1111101000_1111101001_0000000001,
+         40'b01011_01011_1111101000_1111101001_0000000001,
+         40'b01110_01110_1111101000_1111101001_0000000001,
+         40'b10001_10001_1111101000_1111101001_0000000001,
+         40'b10011_10011_1111101000_1111101001_0000000001,
+         40'b10110_10110_1111101000_1111101001_0000000001,
+         40'b11001_11001_1111101000_1111101001_0000000001,
+         40'b11100_11100_1111101000_1111101001_0000000001,
+         40'b11111_11111_1110000100_1111101001_0000000001,
+         40'b11111_11111_1100111001_1111101001_0000000001,
+         40'b11111_11111_1011101110_1111101001_0000000001,
+         40'b11111_11111_1010111100_1111101001_0000000001,
+         40'b11111_11111_1010001010_1111101001_0000000001,
+         40'b11111_11111_1001110001_1111101001_0000000001,
+         40'b11111_11111_1000111111_1111101001_0000000001,
+         40'b11111_11111_1000100110_1111101001_0000000001,
+         40'b11111_11111_1000001101_1111101001_0000000001,
+         40'b11111_11111_0111110100_1111101001_0000000001,
+         40'b11111_11111_0111011011_1111101001_0000000001,
+         40'b11111_11111_0111000010_1111101001_0000000001,
+         40'b11111_11111_0110101001_1111101001_0000000001,
+         40'b11111_11111_0110010000_1111101001_0000000001,
+         40'b11111_11111_0110010000_1111101001_0000000001,
+         40'b11111_11111_0101110111_1111101001_0000000001,
+         40'b11111_11111_0101011110_1111101001_0000000001,
+         40'b11111_11111_0101011110_1111101001_0000000001,
+         40'b11111_11111_0101000101_1111101001_0000000001,
+         40'b11111_11111_0101000101_1111101001_0000000001,
+         40'b11111_11111_0100101100_1111101001_0000000001,
+         40'b11111_11111_0100101100_1111101001_0000000001,
+         40'b11111_11111_0100101100_1111101001_0000000001,
+         40'b11111_11111_0100010011_1111101001_0000000001,
+         40'b11111_11111_0100010011_1111101001_0000000001,
+         40'b11111_11111_0100010011_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001
+      };
+      
+      // Set lookup_entry with the explicit bits from lookup with a part select
+      mmcm_pll_lock_lookup = lookup[ ((64-divide)*40) +: 40];
+   `ifdef DEBUG
+      $display("lock_lookup: %b", mmcm_pll_lock_lookup);
+   `endif
+   end
+endfunction
+
+// This function takes the divide value and the bandwidth setting of the PLL
+//  and outputs the digital filter settings necessary.
+function [9:0] mmcm_pll_filter_lookup
+   (
+      input [6:0] divide, // Max divide is 64
+      input [8*9:0] BANDWIDTH
+   );
+   
+   reg [639:0] lookup_low;
+   reg [639:0] lookup_high;
+   
+   reg [9:0] lookup_entry;
+   
+   begin
+      lookup_low = {
+         // CP_RES_LFHF
+         10'b0010_1111_00,
+         10'b0010_1111_00,
+         10'b0010_0111_00,
+         10'b0010_1101_00,
+         10'b0010_0101_00,
+         10'b0010_0101_00,
+         10'b0010_1001_00,
+         10'b0010_1110_00,
+         10'b0010_1110_00,
+         10'b0010_0001_00,
+         10'b0010_0001_00,
+         10'b0010_0110_00,
+         10'b0010_0110_00,
+         10'b0010_0110_00,
+         10'b0010_0110_00,
+         10'b0010_1010_00,
+         10'b0010_1010_00,
+         10'b0010_1010_00,
+         10'b0010_1010_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0011_1100_00,
+         10'b0011_1100_00,
+         10'b0011_1100_00,
+         10'b0011_1100_00,
+         10'b0011_1100_00,
+         10'b0011_1100_00,
+         10'b0011_1100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00
+      };
+      
+      lookup_high = {
+         // CP_RES_LFHF
+         10'b0011_0111_00,
+         10'b0011_0111_00,
+         10'b0101_1111_00,
+         10'b0111_1111_00,
+         10'b0111_1011_00,
+         10'b1101_0111_00,
+         10'b1110_1011_00,
+         10'b1110_1101_00,
+         10'b1111_1101_00,
+         10'b1111_0111_00,
+         10'b1111_1011_00,
+         10'b1111_1101_00,
+         10'b1111_0011_00,
+         10'b1110_0101_00,
+         10'b1111_0101_00,
+         10'b1111_0101_00,
+         10'b1111_0101_00,
+         10'b1111_0101_00,
+         10'b0111_0110_00,
+         10'b0111_0110_00,
+         10'b0111_0110_00,
+         10'b0111_0110_00,
+         10'b0101_1100_00,
+         10'b0101_1100_00,
+         10'b0101_1100_00,
+         10'b1100_0001_00,
+         10'b1100_0001_00,
+         10'b1100_0001_00,
+         10'b1100_0001_00,
+         10'b1100_0001_00,
+         10'b1100_0001_00,
+         10'b1100_0001_00,
+         10'b1100_0001_00,
+         10'b0100_0010_00,
+         10'b0100_0010_00,
+         10'b0100_0010_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0011_0100_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0100_1100_00,
+         10'b0100_1100_00,
+         10'b0100_1100_00,
+         10'b0100_1100_00,
+         10'b0100_1100_00,
+         10'b0100_1100_00,
+         10'b0100_1100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00
+      };
+      
+      // Set lookup_entry with the explicit bits from lookup with a part select
+      if(BANDWIDTH == "LOW") begin
+         // Low Bandwidth
+         mmcm_pll_filter_lookup = lookup_low[ ((64-divide)*10) +: 10];
+      end else begin
+         // High or optimized bandwidth
+         mmcm_pll_filter_lookup = lookup_high[ ((64-divide)*10) +: 10];
+      end
+      
+   `ifdef DEBUG
+      $display("filter_lookup: %b", mmcm_pll_filter_lookup);
+   `endif
+   end
+endfunction
+
+// This function takes in the divide, phase, and duty cycle
+// setting to calculate the upper and lower counter registers.
+function [37:0] mmcm_pll_count_calc
+   (
+      input [7:0] divide, // Max divide is 128
+      input signed [31:0] phase,
+      input [31:0] duty_cycle // Multiplied by 100,000
+   );
+   
+   reg [13:0] div_calc;
+   reg [16:0] phase_calc;
+   
+   begin
+   `ifdef DEBUG
+      $display("mmcm_pll_count_calc- divide:%h, phase:%d, duty_cycle:%d",
+         divide, phase, duty_cycle);
+`endif
+   
+      // w_edge[13], no_count[12], high_time[11:6], low_time[5:0]
+      div_calc = mmcm_pll_divider(divide, duty_cycle);
+      // mx[10:9], pm[8:6], dt[5:0]
+      phase_calc = mmcm_pll_phase(divide, phase);
+
+      // Return value is the upper and lower address of counter
+      //    Upper address is:
+      //       RESERVED    [31:26]
+      //       MX          [25:24]
+      //       EDGE        [23]
+      //       NOCOUNT     [22]
+      //       DELAY_TIME  [21:16]
+      //    Lower Address is:
+      //       PHASE_MUX   [15:13]
+      //       RESERVED    [12]
+      //       HIGH_TIME   [11:6]
+      //       LOW_TIME    [5:0]
+      
+`ifdef DEBUG
+      $display("div:%d dc:%d phase:%d ht:%d lt:%d ed:%d nc:%d mx:%d dt:%d pm:%d",
+         divide, duty_cycle, phase, div_calc[11:6], div_calc[5:0], 
+         div_calc[13], div_calc[12], 
+         phase_calc[16:15], phase_calc[5:0], phase_calc[14:12]);
+`endif
+      
+      mmcm_pll_count_calc =
+         {
+            // Upper Address
+            6'h00, phase_calc[10:9], div_calc[13:12], phase_calc[5:0], 
+            // Lower Address
+            phase_calc[8:6], 1'b0, div_calc[11:0]
+         };
+   end
+endfunction
diff --git a/proj/AudioProc.ip_user_files/ipstatic/mmcm_pll_drp_func_us_mmcm.vh b/proj/AudioProc.ip_user_files/ipstatic/mmcm_pll_drp_func_us_mmcm.vh
new file mode 100755
index 0000000..154c81f
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/ipstatic/mmcm_pll_drp_func_us_mmcm.vh
@@ -0,0 +1,680 @@
+// (c) Copyright 2009-2010, 2023 Advanced Micro Devices, Inc. All rights reserved.
+//
+// This file contains confidential and proprietary information
+// of AMD and is protected under U.S. and international copyright
+// and other intellectual property laws.
+//
+// DISCLAIMER
+// This disclaimer is not a license and does not grant any
+// rights to the materials distributed herewith. Except as
+// otherwise provided in a valid license issued to you by
+// AMD, and to the maximum extent permitted by applicable
+// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
+// WITH ALL FAULTS, AND AMD HEREBY DISCLAIMS ALL WARRANTIES
+// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
+// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
+// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
+// (2) AMD shall not be liable (whether in contract or tort,
+// including negligence, or under any other theory of
+// liability) for any loss or damage of any kind or nature
+// related to, arising under or in connection with these
+// materials, including for any direct, or any indirect,
+// special, incidental, or consequential loss or damage
+// (including loss of data, profits, goodwill, or any type of
+// loss or damage suffered as a result of any action brought
+// by a third party) even if such damage or loss was
+// reasonably foreseeable or AMD had been advised of the
+// possibility of the same.
+//
+// CRITICAL APPLICATIONS
+// AMD products are not designed or intended to be fail-
+// safe, or for use in any application requiring fail-safe
+// performance, such as life-support or safety devices or
+// systems, Class III medical devices, nuclear facilities,
+// applications related to the deployment of airbags, or any
+// other applications that could lead to death, personal
+// injury, or severe property or environmental damage
+// (individually and collectively, "Critical
+// Applications"). Customer assumes the sole risk and
+// liability of any use of AMD products in Critical
+// Applications, subject only to applicable laws and
+// regulations governing limitations on product liability.
+//
+// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
+// PART OF THIS FILE AT ALL TIMES.
+////////////////////////////////////////////////////////////
+// 
+///////////////////////////////////////////////////////////////////////////////
+
+// These are user functions that should not be modified.  Changes to the defines
+// or code within the functions may alter the accuracy of the calculations.
+
+// Define debug to provide extra messages durring elaboration
+//`define DEBUG 1
+
+// FRAC_PRECISION describes the width of the fractional portion of the fixed
+//    point numbers.  These should not be modified, they are for development 
+//    only
+`define FRAC_PRECISION  10
+// FIXED_WIDTH describes the total size for fixed point calculations(int+frac).
+// Warning: L.50 and below will not calculate properly with FIXED_WIDTHs 
+//    greater than 32
+`define FIXED_WIDTH     32 
+
+// This function takes a fixed point number and rounds it to the nearest
+//    fractional precision bit.
+function [`FIXED_WIDTH:1] round_frac
+   (
+      // Input is (FIXED_WIDTH-FRAC_PRECISION).FRAC_PRECISION fixed point number
+      input [`FIXED_WIDTH:1] decimal,  
+
+      // This describes the precision of the fraction, for example a value
+      //    of 1 would modify the fractional so that instead of being a .16
+      //    fractional, it would be a .1 (rounded to the nearest 0.5 in turn)
+      input [`FIXED_WIDTH:1] precision 
+   );
+
+   begin
+   
+   `ifdef DEBUG
+      $display("round_frac - decimal: %h, precision: %h", decimal, precision);
+   `endif
+      // If the fractional precision bit is high then round up
+      if( decimal[(`FRAC_PRECISION-precision)] == 1'b1) begin
+         round_frac = decimal + (1'b1 << (`FRAC_PRECISION-precision));
+      end else begin
+         round_frac = decimal;
+      end
+   `ifdef DEBUG
+      $display("round_frac: %h", round_frac);
+   `endif
+   end
+endfunction
+
+// This function calculates high_time, low_time, w_edge, and no_count
+//    of a non-fractional counter based on the divide and duty cycle
+//
+// NOTE: high_time and low_time are returned as integers between 0 and 63 
+//    inclusive.  64 should equal 6'b000000 (in other words it is okay to 
+//    ignore the overflow)
+function [13:0] mmcm_pll_divider
+   (
+      input [7:0] divide,        // Max divide is 128
+      input [31:0] duty_cycle    // Duty cycle is multiplied by 100,000
+   );
+
+   reg [`FIXED_WIDTH:1]    duty_cycle_fix;
+   
+   // High/Low time is initially calculated with a wider integer to prevent a
+   // calculation error when it overflows to 64.
+   reg [6:0]               high_time;
+   reg [6:0]               low_time;
+   reg                     w_edge;
+   reg                     no_count;
+
+   reg [`FIXED_WIDTH:1]    temp;
+
+   begin
+      // Duty Cycle must be between 0 and 1,000
+      if(duty_cycle <=0 || duty_cycle >= 100000) begin
+`ifndef SYNTHESIS
+         $display("ERROR: duty_cycle: %d is invalid", duty_cycle);
+   `endif
+         $finish;
+      end
+
+      // Convert to FIXED_WIDTH-FRAC_PRECISION.FRAC_PRECISION fixed point
+      duty_cycle_fix = (duty_cycle << `FRAC_PRECISION) / 100_000;
+      
+   `ifdef DEBUG
+      $display("duty_cycle_fix: %h", duty_cycle_fix);
+   `endif
+
+      // If the divide is 1 nothing needs to be set except the no_count bit.
+      //    Other values are dummies
+      if(divide == 7'h01) begin
+         high_time   = 7'h01;
+         w_edge      = 1'b0;
+         low_time    = 7'h01;
+         no_count    = 1'b1;
+      end else begin
+         temp = round_frac(duty_cycle_fix*divide, 1);
+
+         // comes from above round_frac
+         high_time   = temp[`FRAC_PRECISION+7:`FRAC_PRECISION+1]; 
+         // If the duty cycle * divide rounded is .5 or greater then this bit
+         //    is set.
+         w_edge      = temp[`FRAC_PRECISION]; // comes from round_frac
+         
+         // If the high time comes out to 0, it needs to be set to at least 1
+         // and w_edge set to 0
+         if(high_time == 7'h00) begin
+            high_time   = 7'h01;
+            w_edge      = 1'b0;
+         end
+
+         if(high_time == divide) begin
+            high_time   = divide - 1;
+            w_edge      = 1'b1;
+         end
+         
+         // Calculate low_time based on the divide setting and set no_count to
+         //    0 as it is only used when divide is 1.
+         low_time    = divide - high_time; 
+         no_count    = 1'b0;
+      end
+
+      // Set the return value.
+      mmcm_pll_divider = {w_edge,no_count,high_time[5:0],low_time[5:0]};
+   end
+endfunction
+
+// This function calculates mx, delay_time, and phase_mux 
+//  of a non-fractional counter based on the divide and phase
+//
+// NOTE: The only valid value for the MX bits is 2'b00 to ensure the coarse mux
+//    is used.
+function [10:0] mmcm_pll_phase
+   (
+      // divide must be an integer (use fractional if not)
+      //  assumed that divide already checked to be valid
+      input [7:0] divide, // Max divide is 128
+
+      // Phase is given in degrees (-360,000 to 360,000)
+      input signed [31:0] phase
+   );
+
+   reg [`FIXED_WIDTH:1] phase_in_cycles;
+   reg [`FIXED_WIDTH:1] phase_fixed;
+   reg [1:0]            mx;
+   reg [5:0]            delay_time;
+   reg [2:0]            phase_mux;
+
+   reg [`FIXED_WIDTH:1] temp;
+
+   begin
+`ifdef DEBUG
+      $display("mmcm_pll_phase-divide:%d,phase:%d",
+         divide, phase);
+`endif
+   
+      if ((phase < -360000) || (phase > 360000)) begin
+`ifndef SYNTHESIS
+      $display("ERROR: phase of $phase is not between -360000 and 360000");
+	`endif
+         $finish;
+      end
+
+      // If phase is less than 0, convert it to a positive phase shift
+      // Convert to (FIXED_WIDTH-FRAC_PRECISION).FRAC_PRECISION fixed point
+      if(phase < 0) begin
+         phase_fixed = ( (phase + 360000) << `FRAC_PRECISION ) / 1000;
+      end else begin
+         phase_fixed = ( phase << `FRAC_PRECISION ) / 1000;
+      end
+
+      // Put phase in terms of decimal number of vco clock cycles
+      phase_in_cycles = ( phase_fixed * divide ) / 360;
+
+`ifdef DEBUG
+      $display("phase_in_cycles: %h", phase_in_cycles);
+`endif  
+      
+
+	 temp  =  round_frac(phase_in_cycles, 3);
+
+	 // set mx to 2'b00 that the phase mux from the VCO is enabled
+	 mx    			=  2'b00; 
+	 phase_mux      =  temp[`FRAC_PRECISION:`FRAC_PRECISION-2];
+	 delay_time     =  temp[`FRAC_PRECISION+6:`FRAC_PRECISION+1];
+      
+   `ifdef DEBUG
+      $display("temp: %h", temp);
+   `endif
+
+      // Setup the return value
+      mmcm_pll_phase={mx, phase_mux, delay_time};
+   end
+endfunction
+
+// This function takes the divide value and outputs the necessary lock values
+function [39:0] mmcm_pll_lock_lookup
+   (
+      input [6:0] divide // Max divide is 64
+   );
+   
+   reg [2559:0]   lookup;
+   
+   begin
+      lookup = {
+         // This table is composed of:
+         // LockRefDly_LockFBDly_LockCnt_LockSatHigh_UnlockCnt
+         40'b00110_00110_1111101000_1111101001_0000000001,
+         40'b00110_00110_1111101000_1111101001_0000000001,
+         40'b01000_01000_1111101000_1111101001_0000000001,
+         40'b01011_01011_1111101000_1111101001_0000000001,
+         40'b01110_01110_1111101000_1111101001_0000000001,
+         40'b10001_10001_1111101000_1111101001_0000000001,
+         40'b10011_10011_1111101000_1111101001_0000000001,
+         40'b10110_10110_1111101000_1111101001_0000000001,
+         40'b11001_11001_1111101000_1111101001_0000000001,
+         40'b11100_11100_1111101000_1111101001_0000000001,
+         40'b11111_11111_1110000100_1111101001_0000000001,
+         40'b11111_11111_1100111001_1111101001_0000000001,
+         40'b11111_11111_1011101110_1111101001_0000000001,
+         40'b11111_11111_1010111100_1111101001_0000000001,
+         40'b11111_11111_1010001010_1111101001_0000000001,
+         40'b11111_11111_1001110001_1111101001_0000000001,
+         40'b11111_11111_1000111111_1111101001_0000000001,
+         40'b11111_11111_1000100110_1111101001_0000000001,
+         40'b11111_11111_1000001101_1111101001_0000000001,
+         40'b11111_11111_0111110100_1111101001_0000000001,
+         40'b11111_11111_0111011011_1111101001_0000000001,
+         40'b11111_11111_0111000010_1111101001_0000000001,
+         40'b11111_11111_0110101001_1111101001_0000000001,
+         40'b11111_11111_0110010000_1111101001_0000000001,
+         40'b11111_11111_0110010000_1111101001_0000000001,
+         40'b11111_11111_0101110111_1111101001_0000000001,
+         40'b11111_11111_0101011110_1111101001_0000000001,
+         40'b11111_11111_0101011110_1111101001_0000000001,
+         40'b11111_11111_0101000101_1111101001_0000000001,
+         40'b11111_11111_0101000101_1111101001_0000000001,
+         40'b11111_11111_0100101100_1111101001_0000000001,
+         40'b11111_11111_0100101100_1111101001_0000000001,
+         40'b11111_11111_0100101100_1111101001_0000000001,
+         40'b11111_11111_0100010011_1111101001_0000000001,
+         40'b11111_11111_0100010011_1111101001_0000000001,
+         40'b11111_11111_0100010011_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001
+      };
+      
+      // Set lookup_entry with the explicit bits from lookup with a part select
+      mmcm_pll_lock_lookup = lookup[ ((64-divide)*40) +: 40];
+   `ifdef DEBUG
+      $display("lock_lookup: %b", mmcm_pll_lock_lookup);
+   `endif
+   end
+endfunction
+
+// This function takes the divide value and the bandwidth setting of the MMCM
+//  and outputs the digital filter settings necessary.
+function [9:0] mmcm_pll_filter_lookup
+   (
+      input [6:0] divide, // Max divide is 64
+      input [8*9:0] BANDWIDTH
+   );
+   
+   reg [639:0] lookup_low;
+   reg [639:0] lookup_high;
+   
+   reg [9:0] lookup_entry;
+   
+   begin
+      lookup_low = {
+         // CP_RES_LFHF
+         10'b0010_1111_11,
+         10'b0010_1111_11,
+         10'b0010_1111_11,
+         10'b0010_1111_11,
+         10'b0010_1111_11,
+         10'b0010_1111_11,
+         10'b0010_0111_11,
+         10'b0010_0111_11,
+         10'b0010_0111_11,
+         10'b0010_1101_11,
+         10'b0010_1101_11,
+         10'b0010_1101_11,
+         10'b0010_0011_11,
+         10'b0010_0101_11,
+         10'b0010_0101_11,
+         10'b0010_0101_11,
+         10'b0010_1001_11,
+         10'b0010_1001_11,
+         10'b0010_1110_11,
+         10'b0010_1110_11,
+         10'b0010_1110_11,
+         10'b0010_1110_11,
+         10'b0010_1110_11,
+         10'b0010_1110_11,
+         10'b0010_0001_11,
+         10'b0010_0001_11,
+         10'b0010_0001_11,
+         10'b0010_0001_11,
+         10'b0010_0001_11,
+         10'b0010_0110_11,
+         10'b0010_0110_11,
+         10'b0010_0110_11,
+         10'b0010_0110_11,
+         10'b0010_0110_11,
+         10'b0010_0110_11,
+         10'b0010_0110_11,
+         10'b0010_0110_11,
+         10'b0010_0110_11,
+         10'b0010_0110_11,
+         10'b0010_1010_11,
+         10'b0010_1010_11,
+         10'b0010_1010_11,
+         10'b0010_1010_11,
+         10'b0010_1010_11,
+         10'b0010_1010_11,
+         10'b0010_1010_11,
+         10'b0010_1010_11,
+         10'b0010_1100_11,
+         10'b0010_1100_11,
+         10'b0010_1100_11,
+         10'b0010_1100_11,
+         10'b0010_1100_11,
+         10'b0010_1100_11,
+         10'b0010_1100_11,
+         10'b0010_1100_11,
+         10'b0010_1100_11,
+         10'b0010_1100_11,
+         10'b0010_1100_11,
+         10'b0010_1100_11,
+         10'b0010_1100_11,
+         10'b0010_1100_11,
+         10'b0010_1100_11,
+         10'b0010_1100_11,
+         10'b0010_1100_11
+      };
+      
+      lookup_high = {
+         // CP_RES_LFHF
+         10'b0010_1111_11,
+         10'b0010_1111_11,
+         10'b0010_1011_11,
+         10'b0011_1111_11,
+         10'b0100_1111_11,
+         10'b0100_1111_11,
+         10'b0101_1111_11,
+         10'b0110_1111_11,
+         10'b0111_1111_11,
+         10'b0111_1111_11,
+         10'b1100_1111_11,
+         10'b1101_1111_11,
+         10'b1110_1111_11,
+         10'b1111_1111_11,
+         10'b1111_1111_11,
+         10'b1110_0111_11,
+         10'b1110_1011_11,
+         10'b1111_0111_11,
+         10'b1111_1011_11,
+         10'b1111_1011_11,
+         10'b1110_1101_11,
+         10'b1111_1101_11,
+         10'b1111_1101_11,
+         10'b1111_0011_11,
+         10'b1111_0011_11,
+         10'b1111_0011_11,
+         10'b1110_0101_11,
+         10'b1110_0101_11,
+         10'b1110_0101_11,
+         10'b1111_0101_11,
+         10'b1111_0101_11,
+         10'b1111_0101_11,
+         10'b1111_1001_11,
+         10'b1111_1001_11,
+         10'b1111_1001_11,
+         10'b1111_1001_11,
+         10'b1111_1001_11,
+         10'b1110_1110_11,
+         10'b1110_1110_11,
+         10'b1110_1110_11,
+         10'b1110_1110_11,
+         10'b1111_1110_11,
+         10'b1111_1110_11,
+         10'b1111_1110_11,
+         10'b1111_1110_11,
+         10'b1111_1110_11,
+         10'b1111_1110_11,
+         10'b1111_1110_11,
+         10'b1110_0001_11,
+         10'b1110_0001_11,
+         10'b1110_0001_11,
+         10'b1110_0001_11,
+         10'b1110_0001_11,
+         10'b1100_0110_11,
+         10'b1100_0110_11,
+         10'b1100_0110_11,
+         10'b1100_0110_11,
+         10'b1100_0110_11,
+         10'b1100_0110_11,
+         10'b1100_0110_11,
+         10'b1100_1010_11,
+         10'b1100_1010_11,
+         10'b1100_1010_11,
+         10'b1100_1010_11
+      };
+      
+      // Set lookup_entry with the explicit bits from lookup with a part select
+      if(BANDWIDTH == "LOW") begin
+         // Low Bandwidth
+         mmcm_pll_filter_lookup = lookup_low[ ((64-divide)*10) +: 10];
+      end else begin
+         // High or optimized bandwidth
+         mmcm_pll_filter_lookup = lookup_high[ ((64-divide)*10) +: 10];
+      end
+      
+   `ifdef DEBUG
+      $display("filter_lookup: %b", mmcm_pll_filter_lookup);
+   `endif
+   end
+endfunction
+
+// This function takes in the divide, phase, and duty cycle
+// setting to calculate the upper and lower counter registers.
+function [37:0] mmcm_pll_count_calc
+   (
+      input [7:0] divide, // Max divide is 128
+      input signed [31:0] phase,
+      input [31:0] duty_cycle // Multiplied by 100,000
+   );
+   
+   reg [13:0] div_calc;
+   reg [16:0] phase_calc;
+   
+   begin
+   `ifdef DEBUG
+      $display("mmcm_pll_count_calc- divide:%h, phase:%d, duty_cycle:%d",
+         divide, phase, duty_cycle);
+   `endif
+   
+      // w_edge[13], no_count[12], high_time[11:6], low_time[5:0]
+      div_calc = mmcm_pll_divider(divide, duty_cycle);
+      // mx[10:9], pm[8:6], dt[5:0]
+      phase_calc = mmcm_pll_phase(divide, phase);
+
+      // Return value is the upper and lower address of counter
+      //    Upper address is:
+      //       RESERVED    [31:26]
+      //       MX          [25:24]
+      //       EDGE        [23]
+      //       NOCOUNT     [22]
+      //       DELAY_TIME  [21:16]
+      //    Lower Address is:
+      //       PHASE_MUX   [15:13]
+      //       RESERVED    [12]
+      //       HIGH_TIME   [11:6]
+      //       LOW_TIME    [5:0]
+      
+   `ifdef DEBUG
+      $display("div:%d dc:%d phase:%d ht:%d lt:%d ed:%d nc:%d mx:%d dt:%d pm:%d",
+         divide, duty_cycle, phase, div_calc[11:6], div_calc[5:0], 
+         div_calc[13], div_calc[12], 
+         phase_calc[16:15], phase_calc[5:0], phase_calc[14:12]);
+   `endif
+      
+      mmcm_pll_count_calc =
+         {
+            // Upper Address
+            6'h00, phase_calc[10:9], div_calc[13:12], phase_calc[5:0], 
+            // Lower Address
+            phase_calc[8:6], 1'b0, div_calc[11:0]
+         };
+   end
+endfunction
+
+
+// This function takes in the divide, phase, and duty cycle
+// setting to calculate the upper and lower counter registers.
+// for fractional multiply/divide functions.
+//
+// 
+function [37:0] mmcm_frac_count_calc
+   (
+      input [7:0] divide, // Max divide is 128
+      input signed [31:0] phase,
+      input [31:0] duty_cycle, // Multiplied by 1,000
+      input [9:0] frac // Multiplied by 1000
+   );
+   
+	//Required for fractional divide calculations
+			  reg	[7:0]			lt_frac;
+			  reg	[7:0]			ht_frac;
+			
+			  reg	/*[7:0]*/			wf_fall_frac;
+			  reg	/*[7:0]*/			wf_rise_frac;
+
+			  reg [31:0] a;
+			  reg	[7:0]			pm_rise_frac_filtered ;
+			  reg	[7:0]			pm_fall_frac_filtered ;	
+			  reg [7:0]			clkout0_divide_int;
+			  reg [2:0]			clkout0_divide_frac;
+			  reg	[7:0]			even_part_high;
+			  reg	[7:0]			even_part_low;
+
+			  reg	[7:0]			odd;
+			  reg	[7:0]			odd_and_frac;
+
+			  reg	[7:0]			pm_fall;
+			  reg	[7:0]			pm_rise;
+			  reg	[7:0]			dt;
+			  reg	[7:0]			dt_int; 
+			  reg [63:0]		dt_calc;
+
+			  reg	[7:0]			pm_rise_frac; 
+			  reg	[7:0]			pm_fall_frac;
+	 
+			  reg [31:0] a_per_in_octets;
+			  reg [31:0] a_phase_in_cycles;
+
+				parameter precision = 0.125;
+
+			  reg [31:0] phase_fixed; // changed to 31:0 from 32:1 jt 5/2/11
+			  reg [31: 0] phase_pos;
+			  reg [31: 0] phase_vco;
+			  reg [31:0] temp;// changed to 31:0 from 32:1 jt 5/2/11
+			  reg [13:0] div_calc;
+			  reg [16:0] phase_calc;
+
+   begin
+	`ifdef DEBUG
+			$display("mmcm_frac_count_calc- divide:%h, phase:%d, duty_cycle:%d",
+				divide, phase, duty_cycle);
+	`endif
+   
+   //convert phase to fixed
+   if ((phase < -360000) || (phase > 360000)) begin
+`ifndef SYNTHESIS
+      $display("ERROR: phase of $phase is not between -360000 and 360000");
+	`endif
+      $finish;
+   end
+
+
+      // Return value is
+      //    Transfer data
+      //       RESERVED     [37:36]
+      //       FRAC_TIME    [35:33]
+      //       FRAC_WF_FALL [32]
+      //    Upper address is:
+      //       RESERVED     [31:26]
+      //       MX           [25:24]
+      //       EDGE         [23]
+      //       NOCOUNT      [22]
+      //       DELAY_TIME   [21:16]
+      //    Lower Address is:
+      //       PHASE_MUX    [15:13]
+      //       RESERVED     [12]
+      //       HIGH_TIME    [11:6]
+      //       LOW_TIME     [5:0]
+      
+      
+
+	clkout0_divide_frac = frac / 125;
+	clkout0_divide_int = divide;
+
+	even_part_high = clkout0_divide_int >> 1;//$rtoi(clkout0_divide_int / 2);
+	even_part_low = even_part_high;
+									
+	odd = clkout0_divide_int - even_part_high - even_part_low;
+	odd_and_frac = (8*odd) + clkout0_divide_frac;
+
+	lt_frac = even_part_high - (odd_and_frac <= 9);//IF(odd_and_frac>9,even_part_high, even_part_high - 1)
+	ht_frac = even_part_low  - (odd_and_frac <= 8);//IF(odd_and_frac>8,even_part_low, even_part_low- 1)
+
+	pm_fall =  {odd[6:0],2'b00} + {6'h00, clkout0_divide_frac[2:1]}; // using >> instead of clkout0_divide_frac / 2 
+	pm_rise = 0; //0
+    
+	wf_fall_frac = ((odd_and_frac >=2) && (odd_and_frac <=9)) || ((clkout0_divide_frac == 1) && (clkout0_divide_int == 2));//CRS610807
+	wf_rise_frac = (odd_and_frac >=1) && (odd_and_frac <=8);//IF(odd_and_frac>=1,IF(odd_and_frac <= 8,1,0),0)
+
+
+
+	//Calculate phase in fractional cycles
+	a_per_in_octets		= (8 * divide) + (frac / 125) ;
+	a_phase_in_cycles	= (phase+10) * a_per_in_octets / 360000 ;//Adding 1 due to rounding errors
+	pm_rise_frac		= (a_phase_in_cycles[7:0] ==8'h00)?8'h00:a_phase_in_cycles[7:0] - {a_phase_in_cycles[7:3],3'b000};
+
+	dt_calc 	= ((phase+10) * a_per_in_octets / 8 )/360000 ;//TRUNC(phase* divide / 360); //or_simply (a_per_in_octets / 8)
+	dt 	= dt_calc[7:0];
+
+	pm_rise_frac_filtered = (pm_rise_frac >=8) ? (pm_rise_frac ) - 8: pm_rise_frac ;				//((phase_fixed * (divide + frac / 1000)) / 360) - {pm_rise_frac[7:3],3'b000};//$rtoi(clkout0_phase * clkout0_divide / 45);//a;
+
+	dt_int			= dt + (& pm_rise_frac[7:4]); //IF(pm_rise_overwriting>7,dt+1,dt)
+	pm_fall_frac		= pm_fall + pm_rise_frac;
+	pm_fall_frac_filtered	= pm_fall + pm_rise_frac - {pm_fall_frac[7:3], 3'b000};
+
+	div_calc	= mmcm_pll_divider(divide, duty_cycle); //Use to determine edge[7], no count[6]
+	phase_calc	= mmcm_pll_phase(divide, phase);// returns{mx[1:0], phase_mux[2:0], delay_time[5:0]}
+		
+      mmcm_frac_count_calc[37:0] =
+         {		2'b00, pm_fall_frac_filtered[2:0], wf_fall_frac,
+			1'b0, clkout0_divide_frac[2:0], 1'b1, wf_rise_frac, phase_calc[10:9], div_calc[13:12], dt[5:0], 
+			pm_rise_frac_filtered[2], pm_rise_frac_filtered[1], pm_rise_frac_filtered[0], 1'b0, ht_frac[5:0], lt_frac[5:0]
+		} ;
+
+   `ifdef DEBUG
+      $display("-%d.%d p%d>>  :DADDR_9_15 frac30to28.frac_en.wf_r_frac.dt:%b%d%d_%b:DADDR_7_13 pm_f_frac_filtered_29to27.wf_f_frac_26:%b%d:DADDR_8_14.pm_r_frac_filt_15to13.ht_frac.lt_frac:%b%b%b:", divide, frac, phase, clkout0_divide_frac, 1, wf_rise_frac, dt, pm_fall_frac_filtered, wf_fall_frac, pm_rise_frac_filtered, ht_frac, lt_frac);
+   `endif
+
+   end
+endfunction
+
diff --git a/proj/AudioProc.ip_user_files/ipstatic/mmcm_pll_drp_func_us_pll.vh b/proj/AudioProc.ip_user_files/ipstatic/mmcm_pll_drp_func_us_pll.vh
new file mode 100755
index 0000000..ff369d1
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/ipstatic/mmcm_pll_drp_func_us_pll.vh
@@ -0,0 +1,555 @@
+///////////////////////////////////////////////////////////////////////////////
+//    
+//    Company:          AMD
+//    Engineer:         Jim Tatsukawa
+//    Date:             6/15/2015
+//    Design Name:      PLLE3 DRP
+//    Module Name:      plle3_drp_func.h
+//    Version:          1.10
+//    Target Devices:   UltraScale Architecture
+//    Tool versions:    2015.1
+//    Description:      This header provides the functions necessary to  
+//                      calculate the DRP register values for the V6 PLL.
+//                      
+//	Revision Notes:	8/11 - PLLE3 updated for PLLE3 file 4564419
+//	Revision Notes:	6/15 - pll_filter_lookup fixed for max M of 19
+//                         PM_Rise bits have been removed for PLLE3
+// 
+// (c) Copyright 2009-2010, 2023 Advanced Micro Devices, Inc. All rights reserved.
+//
+// This file contains confidential and proprietary information
+// of AMD and is protected under U.S. and international copyright
+// and other intellectual property laws.
+//
+// DISCLAIMER
+// This disclaimer is not a license and does not grant any
+// rights to the materials distributed herewith. Except as
+// otherwise provided in a valid license issued to you by
+// AMD, and to the maximum extent permitted by applicable
+// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
+// WITH ALL FAULTS, AND AMD HEREBY DISCLAIMS ALL WARRANTIES
+// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
+// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
+// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
+// (2) AMD shall not be liable (whether in contract or tort,
+// including negligence, or under any other theory of
+// liability) for any loss or damage of any kind or nature
+// related to, arising under or in connection with these
+// materials, including for any direct, or any indirect,
+// special, incidental, or consequential loss or damage
+// (including loss of data, profits, goodwill, or any type of
+// loss or damage suffered as a result of any action brought
+// by a third party) even if such damage or loss was
+// reasonably foreseeable or AMD had been advised of the
+// possibility of the same.
+//
+// CRITICAL APPLICATIONS
+// AMD products are not designed or intended to be fail-
+// safe, or for use in any application requiring fail-safe
+// performance, such as life-support or safety devices or
+// systems, Class III medical devices, nuclear facilities,
+// applications related to the deployment of airbags, or any
+// other applications that could lead to death, personal
+// injury, or severe property or environmental damage
+// (individually and collectively, "Critical
+// Applications"). Customer assumes the sole risk and
+// liability of any use of AMD products in Critical
+// Applications, subject only to applicable laws and
+// regulations governing limitations on product liability.
+//
+// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
+// PART OF THIS FILE AT ALL TIMES.
+////////////////////////////////////////////////////////////
+// 
+///////////////////////////////////////////////////////////////////////////////
+
+// These are user functions that should not be modified.  Changes to the defines
+// or code within the functions may alter the accuracy of the calculations.
+
+// Define debug to provide extra messages durring elaboration
+//`define DEBUG 1
+
+// FRAC_PRECISION describes the width of the fractional portion of the fixed
+//    point numbers.  These should not be modified, they are for development 
+//    only
+`define FRAC_PRECISION  10
+// FIXED_WIDTH describes the total size for fixed point calculations(int+frac).
+// Warning: L.50 and below will not calculate properly with FIXED_WIDTHs 
+//    greater than 32
+`define FIXED_WIDTH     32 
+
+// This function takes a fixed point number and rounds it to the nearest
+//    fractional precision bit.
+function [`FIXED_WIDTH:1] round_frac
+   (
+      // Input is (FIXED_WIDTH-FRAC_PRECISION).FRAC_PRECISION fixed point number
+      input [`FIXED_WIDTH:1] decimal,  
+
+      // This describes the precision of the fraction, for example a value
+      //    of 1 would modify the fractional so that instead of being a .16
+      //    fractional, it would be a .1 (rounded to the nearest 0.5 in turn)
+      input [`FIXED_WIDTH:1] precision 
+   );
+
+   begin
+   
+   `ifdef DEBUG
+      $display("round_frac - decimal: %h, precision: %h", decimal, precision);
+   `endif
+      // If the fractional precision bit is high then round up
+      if( decimal[(`FRAC_PRECISION-precision)] == 1'b1) begin
+         round_frac = decimal + (1'b1 << (`FRAC_PRECISION-precision));
+      end else begin
+         round_frac = decimal;
+      end
+   `ifdef DEBUG
+      $display("round_frac: %h", round_frac);
+   `endif
+   end
+endfunction
+
+// This function calculates high_time, low_time, w_edge, and no_count
+//    of a non-fractional counter based on the divide and duty cycle
+//
+// NOTE: high_time and low_time are returned as integers between 0 and 63 
+//    inclusive.  64 should equal 6'b000000 (in other words it is okay to 
+//    ignore the overflow)
+function [13:0] mmcm_pll_divider
+   (
+      input [7:0] divide,        // Max divide is 128
+      input [31:0] duty_cycle    // Duty cycle is multiplied by 100,000
+   );
+
+   reg [`FIXED_WIDTH:1]    duty_cycle_fix;
+   
+   // High/Low time is initially calculated with a wider integer to prevent a
+   // calculation error when it overflows to 64.
+   reg [6:0]               high_time;
+   reg [6:0]               low_time;
+   reg                     w_edge;
+   reg                     no_count;
+
+   reg [`FIXED_WIDTH:1]    temp;
+
+   begin
+      // Duty Cycle must be between 0 and 1,000
+      if(duty_cycle <=0 || duty_cycle >= 100000) begin
+`ifndef SYNTHESIS
+         $display("ERROR: duty_cycle: %d is invalid", duty_cycle);
+   `endif
+         $finish;
+      end
+
+      // Convert to FIXED_WIDTH-FRAC_PRECISION.FRAC_PRECISION fixed point
+      duty_cycle_fix = (duty_cycle << `FRAC_PRECISION) / 100_000;
+      
+   `ifdef DEBUG
+      $display("duty_cycle_fix: %h", duty_cycle_fix);
+   `endif
+
+      // If the divide is 1 nothing needs to be set except the no_count bit.
+      //    Other values are dummies
+      if(divide == 7'h01) begin
+         high_time   = 7'h01;
+         w_edge      = 1'b0;
+         low_time    = 7'h01;
+         no_count    = 1'b1;
+      end else begin
+         temp = round_frac(duty_cycle_fix*divide, 1);
+
+         // comes from above round_frac
+         high_time   = temp[`FRAC_PRECISION+7:`FRAC_PRECISION+1]; 
+         // If the duty cycle * divide rounded is .5 or greater then this bit
+         //    is set.
+         w_edge      = temp[`FRAC_PRECISION]; // comes from round_frac
+         
+         // If the high time comes out to 0, it needs to be set to at least 1
+         // and w_edge set to 0
+         if(high_time == 7'h00) begin
+            high_time   = 7'h01;
+            w_edge      = 1'b0;
+         end
+
+         if(high_time == divide) begin
+            high_time   = divide - 1;
+            w_edge      = 1'b1;
+         end
+         
+         // Calculate low_time based on the divide setting and set no_count to
+         //    0 as it is only used when divide is 1.
+         low_time    = divide - high_time; 
+         no_count    = 1'b0;
+      end
+
+      // Set the return value.
+      mmcm_pll_divider = {w_edge,no_count,high_time[5:0],low_time[5:0]};
+   end
+endfunction
+
+// This function calculates mx, delay_time, and phase_mux 
+//  of a non-fractional counter based on the divide and phase
+//
+// NOTE: The only valid value for the MX bits is 2'b00 to ensure the coarse mux
+//    is used.
+function [10:0] mmcm_pll_phase
+   (
+      // divide must be an integer (use fractional if not)
+      //  assumed that divide already checked to be valid
+      input [7:0] divide, // Max divide is 128
+
+      // Phase is given in degrees (-360,000 to 360,000)
+      input signed [31:0] phase
+   );
+
+   reg [`FIXED_WIDTH:1] phase_in_cycles;
+   reg [`FIXED_WIDTH:1] phase_fixed;
+   reg [1:0]            mx;
+   reg [5:0]            delay_time;
+   reg [2:0]            phase_mux;
+
+   reg [`FIXED_WIDTH:1] temp;
+
+   begin
+`ifdef DEBUG
+      $display("mmcm_pll_phase-divide:%d,phase:%d",
+         divide, phase);
+`endif
+   
+      if ((phase < -360000) || (phase > 360000)) begin
+`ifndef SYNTHESIS
+      $display("ERROR: phase of $phase is not between -360000 and 360000");
+	`endif
+         $finish;
+      end
+
+      // If phase is less than 0, convert it to a positive phase shift
+      // Convert to (FIXED_WIDTH-FRAC_PRECISION).FRAC_PRECISION fixed point
+      if(phase < 0) begin
+         phase_fixed = ( (phase + 360000) << `FRAC_PRECISION ) / 1000;
+      end else begin
+         phase_fixed = ( phase << `FRAC_PRECISION ) / 1000;
+      end
+
+      // Put phase in terms of decimal number of vco clock cycles
+      phase_in_cycles = ( phase_fixed * divide ) / 360;
+
+`ifdef DEBUG
+      $display("phase_in_cycles: %h", phase_in_cycles);
+`endif  
+      
+
+	 temp  =  round_frac(phase_in_cycles, 3);
+
+	 // set mx to 2'b00 that the phase mux from the VCO is enabled
+	 mx    			=  2'b00; 
+	 phase_mux      =  temp[`FRAC_PRECISION:`FRAC_PRECISION-2];
+	 delay_time     =  temp[`FRAC_PRECISION+6:`FRAC_PRECISION+1];
+      
+   `ifdef DEBUG
+      $display("temp: %h", temp);
+   `endif
+
+      // Setup the return value
+      mmcm_pll_phase={mx, phase_mux, delay_time};
+   end
+endfunction
+
+// This function takes the divide value and outputs the necessary lock values
+function [39:0] mmcm_pll_lock_lookup
+   (
+      input [6:0] divide // Max divide is 64
+   );
+   
+   reg [759:0]   lookup;
+   
+   begin
+      lookup = {
+         // This table is composed of:
+         // LockRefDly_LockFBDly_LockCnt_LockSatHigh_UnlockCnt
+         40'b00110_00110_1111101000_1111101001_0000000001, //1  
+         40'b00110_00110_1111101000_1111101001_0000000001, //2
+         40'b01000_01000_1111101000_1111101001_0000000001, //3
+         40'b01011_01011_1111101000_1111101001_0000000001, //4
+         40'b01110_01110_1111101000_1111101001_0000000001, //5
+         40'b10001_10001_1111101000_1111101001_0000000001, //6
+         40'b10011_10011_1111101000_1111101001_0000000001, //7
+         40'b10110_10110_1111101000_1111101001_0000000001, //8
+         40'b11001_11001_1111101000_1111101001_0000000001, //9
+         40'b11100_11100_1111101000_1111101001_0000000001, //10
+         40'b11111_11111_1110000100_1111101001_0000000001, //11
+         40'b11111_11111_1100111001_1111101001_0000000001, //12
+         40'b11111_11111_1011101110_1111101001_0000000001, //13
+         40'b11111_11111_1010111100_1111101001_0000000001, //14
+         40'b11111_11111_1010001010_1111101001_0000000001, //15
+         40'b11111_11111_1001110001_1111101001_0000000001, //16
+         40'b11111_11111_1000111111_1111101001_0000000001, //17
+         40'b11111_11111_1000100110_1111101001_0000000001, //18
+         40'b11111_11111_1000001101_1111101001_0000000001 //19
+         
+      };
+      
+      // Set lookup_entry with the explicit bits from lookup with a part select
+      mmcm_pll_lock_lookup = lookup[ ((19-divide)*40) +: 40];
+   `ifdef DEBUG
+      $display("lock_lookup: %b", mmcm_pll_lock_lookup);
+   `endif
+   end
+endfunction
+
+// This function takes the divide value and the bandwidth setting of the PLL
+//  and outputs the digital filter settings necessary. Removing bandwidth setting for PLLE3.
+function [9:0] mmcm_pll_filter_lookup
+   (
+      input [6:0] divide // Max divide is 19
+   );
+   
+   reg [639:0] lookup;
+   reg [9:0] lookup_entry;
+   
+   begin
+
+      lookup = {
+         // CP_RES_LFHF
+         10'b0010_1111_01, //1
+         10'b0010_0011_11, //2
+         10'b0011_0011_11, //3
+         10'b0010_0001_11, //4
+         10'b0010_0110_11, //5
+         10'b0010_1010_11, //6
+         10'b0010_1010_11, //7
+         10'b0011_0110_11, //8
+         10'b0010_1100_11, //9
+         10'b0010_1100_11, //10
+         10'b0010_1100_11, //11
+         10'b0010_0010_11, //12
+         10'b0011_1100_11, //13
+         10'b0011_1100_11, //14
+         10'b0011_1100_11, //15
+         10'b0011_1100_11, //16
+         10'b0011_0010_11, //17
+         10'b0011_0010_11, //18
+         10'b0011_0010_11 //19
+      };
+      
+         mmcm_pll_filter_lookup = lookup [ ((19-divide)*10) +: 10];
+      
+   `ifdef DEBUG
+      $display("filter_lookup: %b", mmcm_pll_filter_lookup);
+   `endif
+   end
+endfunction
+
+// This function set the CLKOUTPHY divide settings to match
+// the desired CLKOUTPHY_MODE setting. To create VCO_X2, then
+// the CLKOUTPHY will be set to 2'b00 since the VCO is internally
+// doubled and 2'b00 will represent divide by 1. Similarly "VCO" // will need to divide the doubled clock VCO clock frequency by // 2 therefore 2'b01 will match a divide by 2.And VCO_HALF will // need to divide the doubled VCO by 4, therefore 2'b10
+function [9:0] mmcm_pll_clkoutphy_calc
+   (
+      input [8*9:0] CLKOUTPHY_MODE
+   );
+
+      if(CLKOUTPHY_MODE == "VCO_X2") begin
+         mmcm_pll_clkoutphy_calc= 2'b00;
+      end else if(CLKOUTPHY_MODE == "VCO") begin
+         mmcm_pll_clkoutphy_calc= 2'b01;
+      end else if(CLKOUTPHY_MODE == "CLKIN") begin
+         mmcm_pll_clkoutphy_calc= 2'b11;
+      end else begin // Assume "VCO_HALF"
+         mmcm_pll_clkoutphy_calc= 2'b10;
+      end
+      
+endfunction
+
+
+// This function takes in the divide, phase, and duty cycle
+// setting to calculate the upper and lower counter registers.
+function [37:0] mmcm_pll_count_calc
+   (
+      input [7:0] divide, // Max divide is 128
+      input signed [31:0] phase,
+      input [31:0] duty_cycle // Multiplied by 100,000
+   );
+   
+   reg [13:0] div_calc;
+   reg [16:0] phase_calc;
+   
+   begin
+   `ifdef DEBUG
+      $display("mmcm_pll_count_calc- divide:%h, phase:%d, duty_cycle:%d",
+         divide, phase, duty_cycle);
+   `endif
+   
+      // w_edge[13], no_count[12], high_time[11:6], low_time[5:0]
+      div_calc = mmcm_pll_divider(divide, duty_cycle);
+      // mx[10:9], pm[8:6], dt[5:0]
+      phase_calc = mmcm_pll_phase(divide, phase);
+
+      // Return value is the upper and lower address of counter
+      //    Upper address is:
+      //       RESERVED    [31:26]
+      //       MX          [25:24]
+      //       EDGE        [23]
+      //       NOCOUNT     [22]
+      //       DELAY_TIME  [21:16]
+      //    Lower Address is:
+      //       PHASE_MUX   [15:13]
+      //       RESERVED    [12]
+      //       HIGH_TIME   [11:6]
+      //       LOW_TIME    [5:0]
+      
+   `ifdef DEBUG
+      $display("div:%d dc:%d phase:%d ht:%d lt:%d ed:%d nc:%d mx:%d dt:%d pm:%d",
+         divide, duty_cycle, phase, div_calc[11:6], div_calc[5:0], 
+         div_calc[13], div_calc[12], 
+         phase_calc[16:15], phase_calc[5:0], 3'b000);//Removed PM_Rise bits
+   `endif
+      
+      mmcm_pll_count_calc =
+         {
+            // Upper Address
+            6'h00, phase_calc[10:9], div_calc[13:12], phase_calc[5:0], 
+            // Lower Address
+            phase_calc[8:6], 1'b0, div_calc[11:0]
+         };
+   end
+endfunction
+
+
+// This function takes in the divide, phase, and duty cycle
+// setting to calculate the upper and lower counter registers.
+// for fractional multiply/divide functions.
+//
+// 
+function [37:0] mmcm_pll_frac_count_calc
+   (
+      input [7:0] divide, // Max divide is 128
+      input signed [31:0] phase,
+      input [31:0] duty_cycle, // Multiplied by 1,000
+      input [9:0] frac // Multiplied by 1000
+   );
+   
+	//Required for fractional divide calculations
+			  reg	[7:0]			lt_frac;
+			  reg	[7:0]			ht_frac;
+			
+			  reg	/*[7:0]*/			wf_fall_frac;
+			  reg	/*[7:0]*/			wf_rise_frac;
+
+			  reg [31:0] a;
+			  reg	[7:0]			pm_rise_frac_filtered ;
+			  reg	[7:0]			pm_fall_frac_filtered ;	
+			  reg [7:0]			clkout0_divide_int;
+			  reg [2:0]			clkout0_divide_frac;
+			  reg	[7:0]			even_part_high;
+			  reg	[7:0]			even_part_low;
+
+			  reg	[7:0]			odd;
+			  reg	[7:0]			odd_and_frac;
+
+			  reg	[7:0]			pm_fall;
+			  reg	[7:0]			pm_rise;
+			  reg	[7:0]			dt;
+			  reg	[7:0]			dt_int; 
+			  reg [63:0]		dt_calc;
+
+			  reg	[7:0]			pm_rise_frac; 
+			  reg	[7:0]			pm_fall_frac;
+	 
+			  reg [31:0] a_per_in_octets;
+			  reg [31:0] a_phase_in_cycles;
+
+				parameter precision = 0.125;
+
+			  reg [31:0] phase_fixed; // changed to 31:0 from 32:1 jt 5/2/11
+			  reg [31: 0] phase_pos;
+			  reg [31: 0] phase_vco;
+			  reg [31:0] temp;// changed to 31:0 from 32:1 jt 5/2/11
+			  reg [13:0] div_calc;
+			  reg [16:0] phase_calc;
+
+   begin
+	`ifdef DEBUG
+			$display("mmcm_pll_frac_count_calc- divide:%h, phase:%d, duty_cycle:%d",
+				divide, phase, duty_cycle);
+	`endif
+   
+   //convert phase to fixed
+   if ((phase < -360000) || (phase > 360000)) begin
+`ifndef SYNTHESIS
+      $display("ERROR: phase of $phase is not between -360000 and 360000");
+	`endif
+      $finish;
+   end
+
+
+      // Return value is
+      //    Transfer data
+      //       RESERVED     [37:36]
+      //       FRAC_TIME    [35:33]
+      //       FRAC_WF_FALL [32]
+      //    Upper address is:
+      //       RESERVED     [31:26]
+      //       MX           [25:24]
+      //       EDGE         [23]
+      //       NOCOUNT      [22]
+      //       DELAY_TIME   [21:16]
+      //    Lower Address is:
+      //       PHASE_MUX    [15:13]
+      //       RESERVED     [12]
+      //       HIGH_TIME    [11:6]
+      //       LOW_TIME     [5:0]
+      
+      
+
+	clkout0_divide_frac = frac / 125;
+	clkout0_divide_int = divide;
+
+	even_part_high = clkout0_divide_int >> 1;//$rtoi(clkout0_divide_int / 2);
+	even_part_low = even_part_high;
+									
+	odd = clkout0_divide_int - even_part_high - even_part_low;
+	odd_and_frac = (8*odd) + clkout0_divide_frac;
+
+	lt_frac = even_part_high - (odd_and_frac <= 9);//IF(odd_and_frac>9,even_part_high, even_part_high - 1)
+	ht_frac = even_part_low  - (odd_and_frac <= 8);//IF(odd_and_frac>8,even_part_low, even_part_low- 1)
+
+	pm_fall =  {odd[6:0],2'b00} + {6'h00, clkout0_divide_frac[2:1]}; // using >> instead of clkout0_divide_frac / 2 
+	pm_rise = 0; //0
+    
+	wf_fall_frac = (odd_and_frac >=2) && (odd_and_frac <=9);//IF(odd_and_frac>=2,IF(odd_and_frac <= 9,1,0),0)
+	wf_rise_frac = (odd_and_frac >=1) && (odd_and_frac <=8);//IF(odd_and_frac>=1,IF(odd_and_frac <= 8,1,0),0)
+
+
+
+	//Calculate phase in fractional cycles
+	a_per_in_octets		= (8 * divide) + (frac / 125) ;
+	a_phase_in_cycles	= (phase+10) * a_per_in_octets / 360000 ;//Adding 1 due to rounding errors
+	pm_rise_frac		= (a_phase_in_cycles[7:0] ==8'h00)?8'h00:a_phase_in_cycles[7:0] - {a_phase_in_cycles[7:3],3'b000};
+
+	dt_calc 	= ((phase+10) * a_per_in_octets / 8 )/360000 ;//TRUNC(phase* divide / 360); //or_simply (a_per_in_octets / 8)
+	dt 	= dt_calc[7:0];
+
+	pm_rise_frac_filtered = (pm_rise_frac >=8) ? (pm_rise_frac ) - 8: pm_rise_frac ;				//((phase_fixed * (divide + frac / 1000)) / 360) - {pm_rise_frac[7:3],3'b000};//$rtoi(clkout0_phase * clkout0_divide / 45);//a;
+
+	dt_int			= dt + (& pm_rise_frac[7:4]); //IF(pm_rise_overwriting>7,dt+1,dt)
+	pm_fall_frac		= pm_fall + pm_rise_frac;
+	pm_fall_frac_filtered	= pm_fall + pm_rise_frac - {pm_fall_frac[7:3], 3'b000};
+
+	div_calc	= mmcm_pll_divider(divide, duty_cycle); //Use to determine edge[7], no count[6]
+	phase_calc	= mmcm_pll_phase(divide, phase);// returns{mx[1:0], phase_mux[2:0], delay_time[5:0]}
+		
+      mmcm_pll_frac_count_calc[37:0] =
+         {		2'b00, pm_fall_frac_filtered[2:0], wf_fall_frac,
+			1'b0, clkout0_divide_frac[2:0], 1'b1, wf_rise_frac, phase_calc[10:9], div_calc[13:12], dt[5:0], 
+			3'b000, 1'b0, ht_frac[5:0], lt_frac[5:0] //Removed PM_Rise bits
+//			pm_rise_frac_filtered[2], pm_rise_frac_filtered[1], pm_rise_frac_filtered[0], 1'b0, ht_frac[5:0], lt_frac[5:0]
+		} ;
+
+   `ifdef DEBUG
+      $display("-%d.%d p%d>>  :DADDR_9_15 frac30to28.frac_en.wf_r_frac.dt:%b%d%d_%b:DADDR_7_13 pm_f_frac_filtered_29to27.wf_f_frac_26:%b%d:DADDR_8_14.pm_r_frac_filt_15to13.ht_frac.lt_frac:%b%b%b:", divide, frac, phase, clkout0_divide_frac, 1, wf_rise_frac, dt, pm_fall_frac_filtered, wf_fall_frac, 3'b000, ht_frac, lt_frac);
+   `endif
+
+   end
+endfunction
+
+
diff --git a/proj/AudioProc.ip_user_files/ipstatic/mmcm_pll_drp_func_us_plus_mmcm.vh b/proj/AudioProc.ip_user_files/ipstatic/mmcm_pll_drp_func_us_plus_mmcm.vh
new file mode 100755
index 0000000..fd26211
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/ipstatic/mmcm_pll_drp_func_us_plus_mmcm.vh
@@ -0,0 +1,886 @@
+///////////////////////////////////////////////////////////////////////////////
+//    
+//    Company:          AMD
+//    Engineer:         Jim Tatsukawa. Updated by Ralf Krueger
+//    Date:             7/30/2014
+//    Design Name:      MMCME4 DRP
+//    Module Name:      mmcme4_drp_func.h
+//    Version:          1.31
+//    Target Devices:   UltraScale Plus Architecture
+//    Tool versions:    2017.1
+//    Description:      This header provides the functions necessary to  
+//                      calculate the DRP register values for UltraScal+ MMCM.
+//                      
+//	Revision Notes:	3/22 - Updating lookup_low/lookup_high (CR)
+//				4/13 - Fractional divide function in mmcm_frac_count_calc function
+//              2/28/17 - Updated for Ultrascale Plus
+// 
+// (c) Copyright 2009-2017, 2023 Advanced Micro Devices, Inc. All rights reserved.
+//
+// This file contains confidential and proprietary information
+// of AMD and is protected under U.S. and international copyright
+// and other intellectual property laws.
+//
+// DISCLAIMER
+// This disclaimer is not a license and does not grant any
+// rights to the materials distributed herewith. Except as
+// otherwise provided in a valid license issued to you by
+// AMD, and to the maximum extent permitted by applicable
+// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
+// WITH ALL FAULTS, AND AMD HEREBY DISCLAIMS ALL WARRANTIES
+// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
+// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
+// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
+// (2) AMD shall not be liable (whether in contract or tort,
+// including negligence, or under any other theory of
+// liability) for any loss or damage of any kind or nature
+// related to, arising under or in connection with these
+// materials, including for any direct, or any indirect,
+// special, incidental, or consequential loss or damage
+// (including loss of data, profits, goodwill, or any type of
+// loss or damage suffered as a result of any action brought
+// by a third party) even if such damage or loss was
+// reasonably foreseeable or AMD had been advised of the
+// possibility of the same.
+//
+// CRITICAL APPLICATIONS
+// AMD products are not designed or intended to be fail-
+// safe, or for use in any application requiring fail-safe
+// performance, such as life-support or safety devices or
+// systems, Class III medical devices, nuclear facilities,
+// applications related to the deployment of airbags, or any
+// other applications that could lead to death, personal
+// injury, or severe property or environmental damage
+// (individually and collectively, "Critical
+// Applications"). Customer assumes the sole risk and
+// liability of any use of AMD products in Critical
+// Applications, subject only to applicable laws and
+// regulations governing limitations on product liability.
+//
+// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
+// PART OF THIS FILE AT ALL TIMES.
+////////////////////////////////////////////////////////////
+// 
+///////////////////////////////////////////////////////////////////////////////
+
+// These are user functions that should not be modified.  Changes to the defines
+// or code within the functions may alter the accuracy of the calculations.
+
+// Define debug to provide extra messages during elaboration
+//`define DEBUG 1
+
+// FRAC_PRECISION describes the width of the fractional portion of the fixed
+// point numbers.  These should not be modified, they are for development only
+`define FRAC_PRECISION  10
+// FIXED_WIDTH describes the total size for fixed point calculations(int+frac).
+// Warning: L.50 and below will not calculate properly with FIXED_WIDTHs 
+// greater than 32
+`define FIXED_WIDTH     32 
+
+// This function takes a fixed point number and rounds it to the nearest
+// fractional precision bit.
+function [`FIXED_WIDTH:1] round_frac
+   (
+      // Input is (FIXED_WIDTH-FRAC_PRECISION).FRAC_PRECISION fixed point number
+      input [`FIXED_WIDTH:1] decimal,  
+
+      // This describes the precision of the fraction, for example a value
+      // of 1 would modify the fractional so that instead of being a .16
+      // fractional, it would be a .1 (rounded to the nearest 0.5 in turn)
+      input [`FIXED_WIDTH:1] precision 
+   );
+
+   begin
+   
+   `ifdef DEBUG
+      $display("round_frac - decimal: %h, precision: %h", decimal, precision);
+   `endif
+      // If the fractional precision bit is high then round up
+      if( decimal[(`FRAC_PRECISION-precision)] == 1'b1) begin
+         round_frac = decimal + (1'b1 << (`FRAC_PRECISION-precision));
+      end else begin
+         round_frac = decimal;
+      end
+   `ifdef DEBUG
+      $display("round_frac: %h", round_frac);
+   `endif
+   end
+endfunction
+
+// This function calculates high_time, low_time, w_edge, and no_count
+//    of a non-fractional counter based on the divide and duty cycle
+//
+// NOTE: high_time and low_time are returned as integers between 0 and 63 
+//    inclusive.  64 should equal 6'b000000 (in other words it is okay to 
+//    ignore the overflow)
+function [13:0] mmcm_pll_divider
+   (
+      input [7:0] divide,        // Max divide is 128
+      input [31:0] duty_cycle    // Duty cycle is multiplied by 100,000
+   );
+
+   reg [`FIXED_WIDTH:1]    duty_cycle_fix;
+   
+   // High/Low time is initially calculated with a wider integer to prevent a
+   // calculation error when it overflows to 64.
+   reg [6:0]               high_time;
+   reg [6:0]               low_time;
+   reg                     w_edge;
+   reg                     no_count;
+
+   reg [`FIXED_WIDTH:1]    temp;
+
+   begin
+      // Duty Cycle must be between 0 and 1,000
+      if(duty_cycle <=0 || duty_cycle >= 100000) begin
+`ifndef SYNTHESIS
+         $display("ERROR: duty_cycle: %d is invalid", duty_cycle);
+   `endif
+         $finish;
+      end
+
+      // Convert to FIXED_WIDTH-FRAC_PRECISION.FRAC_PRECISION fixed point
+      duty_cycle_fix = (duty_cycle << `FRAC_PRECISION) / 100_000;
+      
+   `ifdef DEBUG
+      $display("duty_cycle_fix: %h", duty_cycle_fix);
+   `endif
+
+      // If the divide is 1 nothing needs to be set except the no_count bit.
+      //    Other values are dummies
+      if(divide == 7'h01) begin
+         high_time   = 7'h01;
+         w_edge      = 1'b0;
+         low_time    = 7'h01;
+         no_count    = 1'b1;
+      end else begin
+         temp = round_frac(duty_cycle_fix*divide, 1);
+
+         // comes from above round_frac
+         high_time   = temp[`FRAC_PRECISION+7:`FRAC_PRECISION+1]; 
+         // If the duty cycle * divide rounded is .5 or greater then this bit
+         //    is set.
+         w_edge      = temp[`FRAC_PRECISION]; // comes from round_frac
+         
+         // If the high time comes out to 0, it needs to be set to at least 1
+         // and w_edge set to 0
+         if(high_time == 7'h00) begin
+            high_time   = 7'h01;
+            w_edge      = 1'b0;
+         end
+
+         if(high_time == divide) begin
+            high_time   = divide - 1;
+            w_edge      = 1'b1;
+         end
+         
+         // Calculate low_time based on the divide setting and set no_count to
+         //    0 as it is only used when divide is 1.
+         low_time    = divide - high_time; 
+         no_count    = 1'b0;
+      end
+
+      // Set the return value.
+      mmcm_pll_divider = {w_edge,no_count,high_time[5:0],low_time[5:0]};
+   end
+endfunction
+
+// This function calculates mx, delay_time, and phase_mux 
+// of a non-fractional counter based on the divide and phase
+//
+// NOTE: The only valid value for the MX bits is 2'b00 to ensure the coarse mux
+//       is used.
+function [10:0] mmcm_pll_phase
+   (
+      // divide must be an integer (use fractional if not)
+      // assumed that divide already checked to be valid
+      input [7:0] divide, // Max divide is 128
+
+      // Phase is given in degrees (-360,000 to 360,000)
+      input signed [31:0] phase
+   );
+
+   reg [`FIXED_WIDTH:1] phase_in_cycles;
+   reg [`FIXED_WIDTH:1] phase_fixed;
+   reg [1:0]            mx;
+   reg [5:0]            delay_time;
+   reg [2:0]            phase_mux;
+
+   reg [`FIXED_WIDTH:1] temp;
+
+   begin
+`ifdef DEBUG
+      $display("mmcm_phase-divide:%d,phase:%d", divide, phase);
+`endif
+   
+      if ((phase < -360000) || (phase > 360000)) begin
+`ifndef SYNTHESIS
+      $display("ERROR: phase of $phase is not between -360000 and 360000");
+	`endif
+         $finish;
+      end
+
+      // If phase is less than 0, convert it to a positive phase shift
+      // Convert to (FIXED_WIDTH-FRAC_PRECISION).FRAC_PRECISION fixed point
+      if(phase < 0) begin
+         phase_fixed = ( (phase + 360000) << `FRAC_PRECISION ) / 1000;
+      end else begin
+         phase_fixed = ( phase << `FRAC_PRECISION ) / 1000;
+      end
+
+      // Put phase in terms of decimal number of vco clock cycles
+      phase_in_cycles = ( phase_fixed * divide ) / 360;
+
+`ifdef DEBUG
+      $display("phase_in_cycles: %h", phase_in_cycles);
+`endif  
+      
+	 temp  =  round_frac(phase_in_cycles, 3);
+
+	 // set mx to 2'b00 that the phase mux from the VCO is enabled
+	 mx    			=  2'b00; 
+	 phase_mux      =  temp[`FRAC_PRECISION:`FRAC_PRECISION-2];
+	 delay_time     =  temp[`FRAC_PRECISION+6:`FRAC_PRECISION+1];
+      
+   `ifdef DEBUG
+      $display("temp: %h", temp);
+   `endif
+
+      // Setup the return value
+      mmcm_pll_phase={mx, phase_mux, delay_time};
+   end
+endfunction
+
+// This function takes the divide value and outputs the necessary lock values
+function [39:0] mmcm_pll_lock_lookup
+   (
+      input [7:0] divide // Max M divide is 128 in UltrascalePlus
+   );
+   
+   reg [5119:0]   lookup;
+   
+   begin
+      lookup = {
+         // This table is composed of:
+         // LockRefDly_LockFBDly_LockCnt_LockSatHigh_UnlockCnt
+         40'b00110_00110_1111101000_1111101001_0000000001,      // M=1 (not allowed)
+         40'b00110_00110_1111101000_1111101001_0000000001,      // M=2
+         40'b01000_01000_1111101000_1111101001_0000000001,      // M=3
+         40'b01011_01011_1111101000_1111101001_0000000001,      // M=4
+         40'b01110_01110_1111101000_1111101001_0000000001,      // M=5
+         40'b10001_10001_1111101000_1111101001_0000000001,      // M=6
+         40'b10011_10011_1111101000_1111101001_0000000001,      // M=7
+         40'b10110_10110_1111101000_1111101001_0000000001,
+         40'b11001_11001_1111101000_1111101001_0000000001,
+         40'b11100_11100_1111101000_1111101001_0000000001,
+         40'b11111_11111_1110000100_1111101001_0000000001,
+         40'b11111_11111_1100111001_1111101001_0000000001,
+         40'b11111_11111_1011101110_1111101001_0000000001,
+         40'b11111_11111_1010111100_1111101001_0000000001,
+         40'b11111_11111_1010001010_1111101001_0000000001,
+         40'b11111_11111_1001110001_1111101001_0000000001,
+         40'b11111_11111_1000111111_1111101001_0000000001,
+         40'b11111_11111_1000100110_1111101001_0000000001,
+         40'b11111_11111_1000001101_1111101001_0000000001,
+         40'b11111_11111_0111110100_1111101001_0000000001,
+         40'b11111_11111_0111011011_1111101001_0000000001,
+         40'b11111_11111_0111000010_1111101001_0000000001,
+         40'b11111_11111_0110101001_1111101001_0000000001,
+         40'b11111_11111_0110010000_1111101001_0000000001,
+         40'b11111_11111_0110010000_1111101001_0000000001,
+         40'b11111_11111_0101110111_1111101001_0000000001,
+         40'b11111_11111_0101011110_1111101001_0000000001,
+         40'b11111_11111_0101011110_1111101001_0000000001,
+         40'b11111_11111_0101000101_1111101001_0000000001,
+         40'b11111_11111_0101000101_1111101001_0000000001,
+         40'b11111_11111_0100101100_1111101001_0000000001,
+         40'b11111_11111_0100101100_1111101001_0000000001,
+         40'b11111_11111_0100101100_1111101001_0000000001,
+         40'b11111_11111_0100010011_1111101001_0000000001,
+         40'b11111_11111_0100010011_1111101001_0000000001,
+         40'b11111_11111_0100010011_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,                                                                    
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,                                                                    
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,      // M=127
+         40'b11111_11111_0011111010_1111101001_0000000001       // M=128
+      };
+      
+      // Set lookup_entry with the explicit bits from lookup with a part select
+      mmcm_pll_lock_lookup = lookup[ ((128-divide)*40) +: 40];
+   `ifdef DEBUG
+      $display("lock_lookup: %b", mmcm_pll_lock_lookup);
+   `endif
+   end
+endfunction
+
+// This function takes the divide value and the bandwidth setting of the MMCM
+//  and outputs the digital filter settings necessary.
+function [9:0] mmcm_pll_filter_lookup
+   (
+      input [7:0] divide, //  input [7:0] divide // Max M divide is 128 in UltraScalePlus
+      input [8*9:0] BANDWIDTH
+   );
+   
+   reg [1279:0] lookup_low;
+   reg [1279:0] lookup_high;
+   
+   reg [9:0] lookup_entry;
+   
+   begin
+      lookup_low = {
+         // CP_RES_LFHF
+       	10'b0011_1111_11,    // M=1 - not legal
+       	10'b0011_1111_11,    // M=2
+       	10'b0011_1101_11,    // M=3
+       	10'b0011_0101_11,    // M=4
+       	10'b0011_1001_11,    // M=5
+       	10'b0011_1110_11,    // M=6
+       	10'b0011_1110_11,    // M=7
+       	10'b0011_0001_11,
+       	10'b0011_0110_11,
+       	10'b0011_0110_11,
+       	10'b0011_0110_11,
+       	10'b0011_1010_11,
+       	10'b0011_1010_11,
+       	10'b0011_1010_11,
+       	10'b0100_0110_11,
+       	10'b0011_1100_11,
+       	10'b1110_0110_11,
+       	10'b1111_0110_11,
+       	10'b1110_1010_11,
+       	10'b1110_1010_11,
+       	10'b1111_1010_11,
+       	10'b1111_1010_11,
+       	10'b1111_1010_11,
+       	10'b1111_1010_11,
+       	10'b1111_1010_11,
+       	10'b1101_1100_11,
+       	10'b1101_1100_11,
+       	10'b1101_1100_11,
+       	10'b1110_1100_11,
+       	10'b1110_1100_11,
+       	10'b1110_1100_11,
+       	10'b1111_1100_11,
+       	10'b1111_1100_11,
+       	10'b1111_1100_11,
+       	10'b1111_1100_11,
+       	10'b1111_1100_11,
+       	10'b1111_1100_11,
+       	10'b1110_0010_11,
+       	10'b1110_0010_11,
+       	10'b1110_0010_11,
+       	10'b1110_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1100_0100_11,
+       	10'b1100_0100_11,
+       	10'b1100_0100_11,
+       	10'b1100_0100_11,
+       	10'b1100_0100_11,
+       	10'b1100_0100_11,
+       	10'b1100_0100_11,
+       	10'b1100_0100_11,
+       	10'b1101_0100_11,
+       	10'b1101_0100_11,
+       	10'b1101_0100_11,
+       	10'b1101_0100_11,
+       	10'b1101_0100_11,
+       	10'b1101_0100_11,
+       	10'b1101_0100_11,
+       	10'b1110_0100_11,
+       	10'b1110_0100_11,
+       	10'b1110_0100_11,
+       	10'b1110_0100_11,
+       	10'b1110_0100_11,
+       	10'b1110_0100_11,
+       	10'b1110_0100_11,
+       	10'b1110_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1101_1000_11,
+       	10'b1101_1000_11,
+       	10'b1101_1000_11,
+       	10'b1101_1000_11,
+       	10'b1101_1000_11,
+       	10'b1101_1000_11,
+       	10'b1101_1000_11,
+       	10'b1101_1000_11, // M=127
+       	10'b1101_1000_11  // M=128
+};										
+      
+      lookup_high = {
+         // CP_RES_LFHF
+       10'b0111_1111_11,    // M=1 - not legal
+       10'b0111_1111_11,    // M=2
+       10'b1110_1111_11,    // M=3
+       10'b1111_1111_11,    // M=4
+       10'b1111_1011_11,    // M=5
+       10'b1111_1101_11,    // M=6
+       10'b1111_0011_11,    // M=7
+       10'b1110_0101_11,
+       10'b1111_1001_11,
+       10'b1111_1001_11,
+       10'b1110_1110_11,
+       10'b1111_1110_11,
+       10'b1111_0001_11,
+       10'b1111_0001_11,
+       10'b1111_0001_11,
+       10'b1110_0110_11,
+       10'b1110_0110_11,
+       10'b1111_0110_11,
+       10'b1110_1010_11,
+       10'b1110_1010_11,
+       10'b1111_1010_11,
+       10'b1111_1010_11,
+       10'b1111_1010_11,
+       10'b1111_1010_11,
+       10'b1111_1010_11,
+       10'b1101_1100_11,
+       10'b1101_1100_11,
+       10'b1101_1100_11,
+       10'b1110_1100_11,
+       10'b1110_1100_11,
+       10'b1110_1100_11,
+       10'b1111_1100_11,
+       10'b1111_1100_11,
+       10'b1111_1100_11,
+       10'b1111_1100_11,
+       10'b1111_1100_11,
+       10'b1111_1100_11,
+       10'b1110_0010_11,
+       10'b1110_0010_11,
+       10'b1110_0010_11,
+       10'b1110_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1100_0100_11,
+       10'b1100_0100_11,
+       10'b1100_0100_11,
+       10'b1100_0100_11,
+       10'b1100_0100_11,
+       10'b1100_0100_11,
+       10'b1100_0100_11,
+       10'b1100_0100_11,
+       10'b1101_0100_11,
+       10'b1101_0100_11,
+       10'b1101_0100_11,
+       10'b1101_0100_11,
+       10'b1101_0100_11,
+       10'b1101_0100_11,
+       10'b1101_0100_11,
+       10'b1110_0100_11,
+       10'b1110_0100_11,
+       10'b1110_0100_11,
+       10'b1110_0100_11,
+       10'b1110_0100_11,
+       10'b1110_0100_11,
+       10'b1110_0100_11,
+       10'b1110_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1101_1000_11,
+       10'b1101_1000_11,
+       10'b1101_1000_11,
+       10'b1101_1000_11,
+       10'b1101_1000_11,
+       10'b1101_1000_11,
+       10'b1101_1000_11,
+       10'b1101_1000_11,
+       10'b1101_1000_11     // M=128
+};
+      
+      // Set lookup_entry with the explicit bits from lookup with a part select
+      if(BANDWIDTH == "LOW") begin
+         // Low Bandwidth
+         mmcm_pll_filter_lookup = lookup_low[ ((128-divide)*10) +: 10];
+      end else begin
+         // High or optimized bandwidth
+         mmcm_pll_filter_lookup = lookup_high[ ((128-divide)*10) +: 10];
+      end
+      
+   `ifdef DEBUG
+      $display("filter_lookup: %b", mmcm_pll_filter_lookup);
+   `endif
+   end
+endfunction
+
+// This function takes in the divide, phase, and duty cycle
+// setting to calculate the upper and lower counter registers.
+function [37:0] mmcm_pll_count_calc
+   (
+      input [7:0] divide, // Max divide is 128
+      input signed [31:0] phase,
+      input [31:0] duty_cycle // Multiplied by 100,000
+   );
+   
+   reg [13:0] div_calc;
+   reg [16:0] phase_calc;
+   
+   begin
+   `ifdef DEBUG
+      $display("mmcm_pll_count_calc- divide:%h, phase:%d, duty_cycle:%d",
+         divide, phase, duty_cycle);
+   `endif
+   
+      // w_edge[13], no_count[12], high_time[11:6], low_time[5:0]
+      div_calc = mmcm_pll_divider(divide, duty_cycle);
+      // mx[10:9], pm[8:6], dt[5:0]
+      phase_calc = mmcm_pll_phase(divide, phase);
+
+      // Return value is the upper and lower address of counter
+      //    Upper address is:
+      //       RESERVED    [31:26]
+      //       MX          [25:24]
+      //       EDGE        [23]
+      //       NOCOUNT     [22]
+      //       DELAY_TIME  [21:16]
+      //    Lower Address is:
+      //       PHASE_MUX   [15:13]
+      //       RESERVED    [12]
+      //       HIGH_TIME   [11:6]
+      //       LOW_TIME    [5:0]
+      
+   `ifdef DEBUG
+      $display("div:%d dc:%d phase:%d ht:%d lt:%d ed:%d nc:%d mx:%d dt:%d pm:%d",
+         divide, duty_cycle, phase, div_calc[11:6], div_calc[5:0], 
+         div_calc[13], div_calc[12], 
+         phase_calc[16:15], phase_calc[5:0], phase_calc[14:12]);
+   `endif
+      
+      mmcm_pll_count_calc =
+         {
+            // Upper Address
+            6'h00, phase_calc[10:9], div_calc[13:12], phase_calc[5:0], 
+            // Lower Address
+            phase_calc[8:6], 1'b0, div_calc[11:0]
+         };
+   end
+endfunction
+
+
+// This function takes in the divide, phase, and duty cycle
+// setting to calculate the upper and lower counter registers.
+// for fractional multiply/divide functions.
+//
+// 
+function [37:0] mmcm_frac_count_calc
+   (
+      input [7:0] divide, // Max divide is 128
+      input signed [31:0] phase,
+      input [31:0] duty_cycle, // Multiplied by 100,000. Not programmable in fractional
+      input [9:0] frac // Multiplied by 1000
+   );
+   
+	//Required for fractional divide calculations
+			  reg	[7:0]			lt_frac;
+			  reg	[7:0]			ht_frac;
+			
+			  reg	/*[7:0]*/			wf_fall_frac;
+			  reg	/*[7:0]*/			wf_rise_frac;
+
+			  reg [31:0] a;
+			  reg	[7:0]			pm_rise_frac_filtered ;
+			  reg	[7:0]			pm_fall_frac_filtered ;	
+			  reg [7:0]			clkout0_divide_int;
+			  reg [2:0]			clkout0_divide_frac;
+			  reg	[7:0]			even_part_high;
+			  reg	[7:0]			even_part_low;
+
+			  reg	[7:0]			odd;
+			  reg	[7:0]			odd_and_frac;
+
+			  reg	[7:0]			pm_fall;
+			  reg	[7:0]			pm_rise;
+			  reg	[7:0]			dt;
+			  reg	[7:0]			dt_int; 
+			  reg [63:0]		dt_calc;
+
+			  reg	[7:0]			pm_rise_frac; 
+			  reg	[7:0]			pm_fall_frac;
+	 
+			  reg [31:0] a_per_in_octets;
+			  reg [31:0] a_phase_in_cycles;
+
+				parameter precision = 0.125;
+
+			  reg [31:0] phase_fixed; // changed to 31:0 from 32:1 jt 5/2/11
+			  reg [31: 0] phase_pos;
+			  reg [31: 0] phase_vco;
+			  reg [31:0] temp;// changed to 31:0 from 32:1 jt 5/2/11
+			  reg [13:0] div_calc;
+			  reg [16:0] phase_calc;
+
+   begin
+	`ifdef DEBUG
+			$display("mmcm_frac_count_calc- divide:%h, phase:%d, duty_cycle:%d",
+				divide, phase, duty_cycle);
+	`endif
+   
+   //convert phase to fixed
+   if ((phase < -360000) || (phase > 360000)) begin
+`ifndef SYNTHESIS
+      $display("ERROR: phase of $phase is not between -360000 and 360000");
+	`endif
+      $finish;
+   end
+
+
+      // Return value is
+      //    Transfer data
+      //       RESERVED     [37:36]
+      //       FRAC_TIME    [35:33]
+      //       FRAC_WF_FALL [32]
+      //    Upper address is:
+      //       RESERVED     [31:26]
+      //       MX           [25:24]
+      //       EDGE         [23]
+      //       NOCOUNT      [22]
+      //       DELAY_TIME   [21:16]
+      //    Lower Address is:
+      //       PHASE_MUX    [15:13]
+      //       RESERVED     [12]
+      //       HIGH_TIME    [11:6]
+      //       LOW_TIME     [5:0]
+      
+      
+
+	clkout0_divide_frac = frac / 125;
+	clkout0_divide_int = divide;
+
+	even_part_high = clkout0_divide_int >> 1;//$rtoi(clkout0_divide_int / 2);
+	even_part_low = even_part_high;
+									
+	odd = clkout0_divide_int - even_part_high - even_part_low;
+	odd_and_frac = (8*odd) + clkout0_divide_frac;
+
+	lt_frac = even_part_high - (odd_and_frac <= 9);//IF(odd_and_frac>9,even_part_high, even_part_high - 1)
+	ht_frac = even_part_low  - (odd_and_frac <= 8);//IF(odd_and_frac>8,even_part_low, even_part_low- 1)
+
+	pm_fall =  {odd[6:0],2'b00} + {6'h00, clkout0_divide_frac[2:1]}; // using >> instead of clkout0_divide_frac / 2 
+	pm_rise = 0; //0
+    
+	wf_fall_frac = ((odd_and_frac >=2) && (odd_and_frac <=9)) || (clkout0_divide_int == 2 && clkout0_divide_frac == 1);   //IF(odd_and_frac>=2,IF(odd_and_frac <= 9,1,0),0)
+	wf_rise_frac = (odd_and_frac >=1) && (odd_and_frac <=8);    //IF(odd_and_frac>=1,IF(odd_and_frac <= 8,1,0),0)
+
+
+
+	//Calculate phase in fractional cycles
+	a_per_in_octets		= (8 * divide) + (frac / 125) ;
+	a_phase_in_cycles	= (phase+10) * a_per_in_octets / 360000 ;//Adding 1 due to rounding errors
+	pm_rise_frac		= (a_phase_in_cycles[7:0] ==8'h00)?8'h00:a_phase_in_cycles[7:0] - {a_phase_in_cycles[7:3],3'b000};
+
+	dt_calc 	= ((phase+10) * a_per_in_octets / 8 )/360000 ;//TRUNC(phase* divide / 360); //or_simply (a_per_in_octets / 8)
+	dt 	= dt_calc[7:0];
+
+	pm_rise_frac_filtered = (pm_rise_frac >=8) ? (pm_rise_frac ) - 8: pm_rise_frac ;				//((phase_fixed * (divide + frac / 1000)) / 360) - {pm_rise_frac[7:3],3'b000};//$rtoi(clkout0_phase * clkout0_divide / 45);//a;
+
+	dt_int			= dt + (& pm_rise_frac[7:4]); //IF(pm_rise_overwriting>7,dt+1,dt)
+	pm_fall_frac		= pm_fall + pm_rise_frac;
+	pm_fall_frac_filtered	= pm_fall + pm_rise_frac - {pm_fall_frac[7:3], 3'b000};
+
+	div_calc	= mmcm_pll_divider(divide, duty_cycle); //Use to determine edge[7], no count[6]
+	phase_calc	= mmcm_pll_phase(divide, phase);// returns{mx[1:0], phase_mux[2:0], delay_time[5:0]}
+		
+      mmcm_frac_count_calc[37:0] =
+         {		2'b00, pm_fall_frac_filtered[2:0], wf_fall_frac,
+			1'b0, clkout0_divide_frac[2:0], 1'b1, wf_rise_frac, phase_calc[10:9], 2'b00, dt[5:0], 
+			pm_rise_frac_filtered[2], pm_rise_frac_filtered[1], pm_rise_frac_filtered[0], 1'b0, ht_frac[5:0], lt_frac[5:0]
+		} ;
+
+   `ifdef DEBUG
+      $display("-%d.%d p%d>>  :DADDR_9_15 frac30to28.frac_en.wf_r_frac.dt:%b%d%d_%b:DADDR_7_13 pm_f_frac_filtered_29to27.wf_f_frac_26:%b%d:DADDR_8_14.pm_r_frac_filt_15to13.ht_frac.lt_frac:%b%b%b:", divide, frac, phase, clkout0_divide_frac, 1, wf_rise_frac, dt, pm_fall_frac_filtered, wf_fall_frac, pm_rise_frac_filtered, ht_frac, lt_frac);
+   `endif
+
+   end
+endfunction
+
diff --git a/proj/AudioProc.ip_user_files/ipstatic/mmcm_pll_drp_func_us_plus_pll.vh b/proj/AudioProc.ip_user_files/ipstatic/mmcm_pll_drp_func_us_plus_pll.vh
new file mode 100755
index 0000000..0899943
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/ipstatic/mmcm_pll_drp_func_us_plus_pll.vh
@@ -0,0 +1,561 @@
+///////////////////////////////////////////////////////////////////////////////
+//    
+//    Company:          AMD
+//    Engineer:         Jim Tatsukawa, Ralf Krueger, updated for Ultrascale+ 
+//    Date:             6/15/2015
+//    Design Name:      PLLE4 DRP
+//    Module Name:      plle4_drp_func.h
+//    Version:          2.0
+//    Target Devices:   UltraScale+ Architecture
+//    Tool versions:    2017.1
+//    Description:      This header provides the functions necessary to  
+//                      calculate the DRP register values for the V6 PLL.
+//                      
+//	Revision Notes:	8/11 - PLLE3 updated for PLLE3 file 4564419
+//	Revision Notes:	6/15 - pll_filter_lookup fixed for max M of 19
+//                           M_Rise bits have been removed for PLLE3
+//	Revision Notes:	2/28/17 - pll_filter_lookup and CPRES updated for 
+//                           Ultrascale+ and for max M of 21
+// 
+// (c) Copyright 2009-2017, 2023 Advanced Micro Devices, Inc. All rights reserved.
+//
+// This file contains confidential and proprietary information
+// of AMD and is protected under U.S. and international copyright
+// and other intellectual property laws.
+//
+// DISCLAIMER
+// This disclaimer is not a license and does not grant any
+// rights to the materials distributed herewith. Except as
+// otherwise provided in a valid license issued to you by
+// AMD, and to the maximum extent permitted by applicable
+// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
+// WITH ALL FAULTS, AND AMD HEREBY DISCLAIMS ALL WARRANTIES
+// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
+// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
+// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
+// (2) AMD shall not be liable (whether in contract or tort,
+// including negligence, or under any other theory of
+// liability) for any loss or damage of any kind or nature
+// related to, arising under or in connection with these
+// materials, including for any direct, or any indirect,
+// special, incidental, or consequential loss or damage
+// (including loss of data, profits, goodwill, or any type of
+// loss or damage suffered as a result of any action brought
+// by a third party) even if such damage or loss was
+// reasonably foreseeable or AMD had been advised of the
+// possibility of the same.
+//
+// CRITICAL APPLICATIONS
+// AMD products are not designed or intended to be fail-
+// safe, or for use in any application requiring fail-safe
+// performance, such as life-support or safety devices or
+// systems, Class III medical devices, nuclear facilities,
+// applications related to the deployment of airbags, or any
+// other applications that could lead to death, personal
+// injury, or severe property or environmental damage
+// (individually and collectively, "Critical
+// Applications"). Customer assumes the sole risk and
+// liability of any use of AMD products in Critical
+// Applications, subject only to applicable laws and
+// regulations governing limitations on product liability.
+//
+// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
+// PART OF THIS FILE AT ALL TIMES.
+////////////////////////////////////////////////////////////
+// 
+///////////////////////////////////////////////////////////////////////////////
+
+// These are user functions that should not be modified.  Changes to the defines
+// or code within the functions may alter the accuracy of the calculations.
+
+// Define debug to provide extra messages durring elaboration
+//`define DEBUG 1
+
+// FRAC_PRECISION describes the width of the fractional portion of the fixed
+//    point numbers.  These should not be modified, they are for development 
+//    only
+`define FRAC_PRECISION  10
+// FIXED_WIDTH describes the total size for fixed point calculations(int+frac).
+// Warning: L.50 and below will not calculate properly with FIXED_WIDTHs 
+//    greater than 32
+`define FIXED_WIDTH     32 
+
+// This function takes a fixed point number and rounds it to the nearest
+//    fractional precision bit.
+function [`FIXED_WIDTH:1] round_frac
+   (
+      // Input is (FIXED_WIDTH-FRAC_PRECISION).FRAC_PRECISION fixed point number
+      input [`FIXED_WIDTH:1] decimal,  
+
+      // This describes the precision of the fraction, for example a value
+      //    of 1 would modify the fractional so that instead of being a .16
+      //    fractional, it would be a .1 (rounded to the nearest 0.5 in turn)
+      input [`FIXED_WIDTH:1] precision 
+   );
+
+   begin
+   
+   `ifdef DEBUG
+      $display("round_frac - decimal: %h, precision: %h", decimal, precision);
+   `endif
+      // If the fractional precision bit is high then round up
+      if( decimal[(`FRAC_PRECISION-precision)] == 1'b1) begin
+         round_frac = decimal + (1'b1 << (`FRAC_PRECISION-precision));
+      end else begin
+         round_frac = decimal;
+      end
+   `ifdef DEBUG
+      $display("round_frac: %h", round_frac);
+   `endif
+   end
+endfunction
+
+// This function calculates high_time, low_time, w_edge, and no_count
+//    of a non-fractional counter based on the divide and duty cycle
+//
+// NOTE: high_time and low_time are returned as integers between 0 and 63 
+//    inclusive.  64 should equal 6'b000000 (in other words it is okay to 
+//    ignore the overflow)
+function [13:0] mmcm_pll_divider
+   (
+      input [7:0] divide,        // Max divide is 128
+      input [31:0] duty_cycle    // Duty cycle is multiplied by 100,000
+   );
+
+   reg [`FIXED_WIDTH:1]    duty_cycle_fix;
+   
+   // High/Low time is initially calculated with a wider integer to prevent a
+   // calculation error when it overflows to 64.
+   reg [6:0]               high_time;
+   reg [6:0]               low_time;
+   reg                     w_edge;
+   reg                     no_count;
+
+   reg [`FIXED_WIDTH:1]    temp;
+
+   begin
+      // Duty Cycle must be between 0 and 1,000
+      if(duty_cycle <=0 || duty_cycle >= 100000) begin
+`ifndef SYNTHESIS
+         $display("ERROR: duty_cycle: %d is invalid", duty_cycle);
+   `endif
+         $finish;
+      end
+
+      // Convert to FIXED_WIDTH-FRAC_PRECISION.FRAC_PRECISION fixed point
+      duty_cycle_fix = (duty_cycle << `FRAC_PRECISION) / 100_000;
+      
+   `ifdef DEBUG
+      $display("duty_cycle_fix: %h", duty_cycle_fix);
+   `endif
+
+      // If the divide is 1 nothing needs to be set except the no_count bit.
+      //    Other values are dummies
+      if(divide == 7'h01) begin
+         high_time   = 7'h01;
+         w_edge      = 1'b0;
+         low_time    = 7'h01;
+         no_count    = 1'b1;
+      end else begin
+         temp = round_frac(duty_cycle_fix*divide, 1);
+
+         // comes from above round_frac
+         high_time   = temp[`FRAC_PRECISION+7:`FRAC_PRECISION+1]; 
+         // If the duty cycle * divide rounded is .5 or greater then this bit
+         //    is set.
+         w_edge      = temp[`FRAC_PRECISION]; // comes from round_frac
+         
+         // If the high time comes out to 0, it needs to be set to at least 1
+         // and w_edge set to 0
+         if(high_time == 7'h00) begin
+            high_time   = 7'h01;
+            w_edge      = 1'b0;
+         end
+
+         if(high_time == divide) begin
+            high_time   = divide - 1;
+            w_edge      = 1'b1;
+         end
+         
+         // Calculate low_time based on the divide setting and set no_count to
+         //    0 as it is only used when divide is 1.
+         low_time    = divide - high_time; 
+         no_count    = 1'b0;
+      end
+
+      // Set the return value.
+      mmcm_pll_divider = {w_edge,no_count,high_time[5:0],low_time[5:0]};
+   end
+endfunction
+
+// This function calculates mx, delay_time, and phase_mux 
+//  of a non-fractional counter based on the divide and phase
+//
+// NOTE: The only valid value for the MX bits is 2'b00 to ensure the coarse mux
+//    is used.
+function [10:0] mmcm_pll_phase
+   (
+      // divide must be an integer (use fractional if not)
+      //  assumed that divide already checked to be valid
+      input [7:0] divide, // Max divide is 128
+
+      // Phase is given in degrees (-360,000 to 360,000)
+      input signed [31:0] phase
+   );
+
+   reg [`FIXED_WIDTH:1] phase_in_cycles;
+   reg [`FIXED_WIDTH:1] phase_fixed;
+   reg [1:0]            mx;
+   reg [5:0]            delay_time;
+   reg [2:0]            phase_mux;
+
+   reg [`FIXED_WIDTH:1] temp;
+
+   begin
+`ifdef DEBUG
+      $display("pll_phase-divide:%d,phase:%d",
+         divide, phase);
+`endif
+   
+      if ((phase < -360000) || (phase > 360000)) begin
+`ifndef SYNTHESIS
+         $display("ERROR: phase of $phase is not between -360000 and 360000");
+`endif
+         $finish;
+      end
+
+      // If phase is less than 0, convert it to a positive phase shift
+      // Convert to (FIXED_WIDTH-FRAC_PRECISION).FRAC_PRECISION fixed point
+      if(phase < 0) begin
+         phase_fixed = ( (phase + 360000) << `FRAC_PRECISION ) / 1000;
+      end else begin
+         phase_fixed = ( phase << `FRAC_PRECISION ) / 1000;
+      end
+
+      // Put phase in terms of decimal number of vco clock cycles
+      phase_in_cycles = ( phase_fixed * divide ) / 360;
+
+`ifdef DEBUG
+      $display("phase_in_cycles: %h", phase_in_cycles);
+`endif  
+      
+
+	 temp  =  round_frac(phase_in_cycles, 3);
+
+	 // set mx to 2'b00 that the phase mux from the VCO is enabled
+	 mx    			=  2'b00; 
+	 phase_mux      =  temp[`FRAC_PRECISION:`FRAC_PRECISION-2];
+	 delay_time     =  temp[`FRAC_PRECISION+6:`FRAC_PRECISION+1];
+      
+   `ifdef DEBUG
+      $display("temp: %h", temp);
+   `endif
+
+      // Setup the return value
+      mmcm_pll_phase={mx, phase_mux, delay_time};
+   end
+endfunction
+
+// This function takes the divide value and outputs the necessary lock values
+function [39:0] mmcm_pll_lock_lookup
+   (
+      input [6:0] divide // Max divide is 21
+   );
+   
+   reg [839:0]   lookup;
+   
+   begin
+      lookup = {
+         // This table is composed of:
+         // LockRefDly_LockFBDly_LockCnt_LockSatHigh_UnlockCnt
+         40'b00110_00110_1111101000_1111101001_0000000001, //1 illegal in Ultrascale+
+         40'b00110_00110_1111101000_1111101001_0000000001, //2
+         40'b01000_01000_1111101000_1111101001_0000000001, //3
+         40'b01011_01011_1111101000_1111101001_0000000001, //4
+         40'b01110_01110_1111101000_1111101001_0000000001, //5
+         40'b10001_10001_1111101000_1111101001_0000000001, //6
+         40'b10011_10011_1111101000_1111101001_0000000001, //7
+         40'b10110_10110_1111101000_1111101001_0000000001, //8
+         40'b11001_11001_1111101000_1111101001_0000000001, //9
+         40'b11100_11100_1111101000_1111101001_0000000001, //10
+         40'b11111_11111_1110000100_1111101001_0000000001, //11
+         40'b11111_11111_1100111001_1111101001_0000000001, //12
+         40'b11111_11111_1011101110_1111101001_0000000001, //13
+         40'b11111_11111_1010111100_1111101001_0000000001, //14
+         40'b11111_11111_1010001010_1111101001_0000000001, //15
+         40'b11111_11111_1001110001_1111101001_0000000001, //16
+         40'b11111_11111_1000111111_1111101001_0000000001, //17
+         40'b11111_11111_1000100110_1111101001_0000000001, //18
+         40'b11111_11111_1000001101_1111101001_0000000001, //19
+         40'b11111_11111_0111110100_1111101001_0000000001, //20
+         40'b11111_11111_0111011011_1111101001_0000000001  //21
+      };
+      
+      // Set lookup_entry with the explicit bits from lookup with a part select
+      mmcm_pll_lock_lookup = lookup[ ((21-divide)*40) +: 40];
+   `ifdef DEBUG
+      $display("lock_lookup: %b", pll_lock_lookup);
+   `endif
+   end
+endfunction
+
+// This function takes the divide value and the bandwidth setting of the PLL
+//  and outputs the digital filter settings necessary. Removing bandwidth setting for PLLE3.
+function [9:0] mmcm_pll_filter_lookup
+   (
+      input [6:0] divide // Max divide is 21
+   );
+   
+   reg [209:0] lookup;
+   reg [9:0] lookup_entry;
+   
+   begin
+
+      lookup = {
+         // CP_RES_LFHF
+         10'b0011_0111_11, //1  not legal in Ultrascale+
+         10'b0011_0111_11, //2
+         10'b0011_0011_11, //3
+         10'b0011_1001_11, //4
+         10'b0011_0001_11, //5
+         10'b0100_1110_11, //6
+         10'b0011_0110_11, //7
+         10'b0011_1010_11, //8
+         10'b0111_1001_11, //9
+         10'b0111_1001_11, //10
+         10'b0101_0110_11, //11
+         10'b1100_0101_11, //12
+         10'b0101_1010_11, //13
+         10'b0110_0110_11, //14
+         10'b0110_1010_11, //15
+         10'b0111_0110_11, //16
+         10'b1111_0101_11, //17
+         10'b1100_0110_11, //18
+         10'b1110_0001_11, //19
+         10'b1101_0110_11, //20
+         10'b1111_0001_11  //21
+      };
+      
+         mmcm_pll_filter_lookup = lookup [ ((21-divide)*10) +: 10];
+      
+   `ifdef DEBUG
+      $display("filter_lookup: %b", pll_filter_lookup);
+   `endif
+   end
+endfunction
+
+// This function set the CLKOUTPHY divide settings to match
+// the desired CLKOUTPHY_MODE setting. To create VCO_X2, then
+// the CLKOUTPHY will be set to 2'b00 since the VCO is internally
+// doubled and 2'b00 will represent divide by 1. Similarly "VCO" 
+// will need to divide the doubled clock VCO clock frequency by 
+// 2 therefore 2'b01 will match a divide by 2.And VCO_HALF will 
+// need to divide the doubled VCO by 4, therefore 2'b10
+function [9:0] mmcm_pll_clkoutphy_calc
+   (
+      input [8*9:0] CLKOUTPHY_MODE
+   );
+
+      if(CLKOUTPHY_MODE == "VCO_X2") begin
+         mmcm_pll_clkoutphy_calc= 2'b00;
+      end else if(CLKOUTPHY_MODE == "VCO") begin
+         mmcm_pll_clkoutphy_calc= 2'b01;
+      end else if(CLKOUTPHY_MODE == "CLKIN") begin
+         mmcm_pll_clkoutphy_calc= 2'b11;
+      end else begin // Assume "VCO_HALF"
+         mmcm_pll_clkoutphy_calc= 2'b10;
+      end
+      
+endfunction
+
+
+// This function takes in the divide, phase, and duty cycle
+// setting to calculate the upper and lower counter registers.
+function [37:0] mmcm_pll_count_calc
+   (
+      input [7:0] divide, // Max divide is 128
+      input signed [31:0] phase,
+      input [31:0] duty_cycle // Multiplied by 100,000
+   );
+   
+   reg [13:0] div_calc;
+   reg [16:0] phase_calc;
+   
+   begin
+   `ifdef DEBUG
+      $display("pll_count_calc- divide:%h, phase:%d, duty_cycle:%d",
+         divide, phase, duty_cycle);
+   `endif
+   
+      // w_edge[13], no_count[12], high_time[11:6], low_time[5:0]
+      div_calc = mmcm_pll_divider(divide, duty_cycle);
+      // mx[10:9], pm[8:6], dt[5:0]
+      phase_calc = mmcm_pll_phase(divide, phase);
+
+      // Return value is the upper and lower address of counter
+      //    Upper address is:
+      //       RESERVED    [31:26]
+      //       MX          [25:24]
+      //       EDGE        [23]
+      //       NOCOUNT     [22]
+      //       DELAY_TIME  [21:16]
+      //    Lower Address is:
+      //       PHASE_MUX   [15:13]
+      //       RESERVED    [12]
+      //       HIGH_TIME   [11:6]
+      //       LOW_TIME    [5:0]
+      
+   `ifdef DEBUG
+      $display("div:%d dc:%d phase:%d ht:%d lt:%d ed:%d nc:%d mx:%d dt:%d pm:%d",
+         divide, duty_cycle, phase, div_calc[11:6], div_calc[5:0], 
+         div_calc[13], div_calc[12], 
+         phase_calc[16:15], phase_calc[5:0], 3'b000); //Removed PM_Rise bits
+   `endif
+      
+      mmcm_pll_count_calc =
+         {
+            // Upper Address
+            6'h00, phase_calc[10:9], div_calc[13:12], phase_calc[5:0], 
+            // Lower Address
+            phase_calc[8:6], 1'b0, div_calc[11:0]
+         };
+   end
+endfunction
+
+
+// This function takes in the divide, phase, and duty cycle
+// setting to calculate the upper and lower counter registers.
+// for fractional multiply/divide functions.
+//
+// 
+function [37:0] mmcm_pll_frac_count_calc
+   (
+      input [7:0] divide, // Max divide is 128
+      input signed [31:0] phase,
+      input [31:0] duty_cycle, // Multiplied by 1,000
+      input [9:0] frac // Multiplied by 1000
+   );
+   
+	//Required for fractional divide calculations
+			  reg	[7:0]			lt_frac;
+			  reg	[7:0]			ht_frac;
+			
+			  reg	/*[7:0]*/			wf_fall_frac;
+			  reg	/*[7:0]*/			wf_rise_frac;
+
+			  reg [31:0] a;
+			  reg	[7:0]			pm_rise_frac_filtered ;
+			  reg	[7:0]			pm_fall_frac_filtered ;	
+			  reg [7:0]			clkout0_divide_int;
+			  reg [2:0]			clkout0_divide_frac;
+			  reg	[7:0]			even_part_high;
+			  reg	[7:0]			even_part_low;
+
+			  reg	[7:0]			odd;
+			  reg	[7:0]			odd_and_frac;
+
+			  reg	[7:0]			pm_fall;
+			  reg	[7:0]			pm_rise;
+			  reg	[7:0]			dt;
+			  reg	[7:0]			dt_int; 
+			  reg [63:0]		dt_calc;
+
+			  reg	[7:0]			pm_rise_frac; 
+			  reg	[7:0]			pm_fall_frac;
+	 
+			  reg [31:0] a_per_in_octets;
+			  reg [31:0] a_phase_in_cycles;
+
+				parameter precision = 0.125;
+
+			  reg [31:0] phase_fixed; // changed to 31:0 from 32:1 jt 5/2/11
+			  reg [31: 0] phase_pos;
+			  reg [31: 0] phase_vco;
+			  reg [31:0] temp;// changed to 31:0 from 32:1 jt 5/2/11
+			  reg [13:0] div_calc;
+			  reg [16:0] phase_calc;
+
+   begin
+	`ifdef DEBUG
+			$display("pll_frac_count_calc- divide:%h, phase:%d, duty_cycle:%d",
+				divide, phase, duty_cycle);
+	`endif
+   
+   //convert phase to fixed
+   if ((phase < -360000) || (phase > 360000)) begin
+`ifndef SYNTHESIS
+      $display("ERROR: phase of $phase is not between -360000 and 360000");
+	`endif
+      $finish;
+   end
+
+
+      // Return value is
+      //    Transfer data
+      //       RESERVED     [37:36]
+      //       FRAC_TIME    [35:33]
+      //       FRAC_WF_FALL [32]
+      //    Upper address is:
+      //       RESERVED     [31:26]
+      //       MX           [25:24]
+      //       EDGE         [23]
+      //       NOCOUNT      [22]
+      //       DELAY_TIME   [21:16]
+      //    Lower Address is:
+      //       PHASE_MUX    [15:13]
+      //       RESERVED     [12]
+      //       HIGH_TIME    [11:6]
+      //       LOW_TIME     [5:0]
+      
+      
+
+	clkout0_divide_frac = frac / 125;
+	clkout0_divide_int = divide;
+
+	even_part_high = clkout0_divide_int >> 1;//$rtoi(clkout0_divide_int / 2);
+	even_part_low = even_part_high;
+									
+	odd = clkout0_divide_int - even_part_high - even_part_low;
+	odd_and_frac = (8*odd) + clkout0_divide_frac;
+
+	lt_frac = even_part_high - (odd_and_frac <= 9);//IF(odd_and_frac>9,even_part_high, even_part_high - 1)
+	ht_frac = even_part_low  - (odd_and_frac <= 8);//IF(odd_and_frac>8,even_part_low, even_part_low- 1)
+
+	pm_fall =  {odd[6:0],2'b00} + {6'h00, clkout0_divide_frac[2:1]}; // using >> instead of clkout0_divide_frac / 2 
+	pm_rise = 0; //0
+    
+	wf_fall_frac = (odd_and_frac >=2) && (odd_and_frac <=9);//IF(odd_and_frac>=2,IF(odd_and_frac <= 9,1,0),0)
+	wf_rise_frac = (odd_and_frac >=1) && (odd_and_frac <=8);//IF(odd_and_frac>=1,IF(odd_and_frac <= 8,1,0),0)
+
+
+
+	//Calculate phase in fractional cycles
+	a_per_in_octets		= (8 * divide) + (frac / 125) ;
+	a_phase_in_cycles	= (phase+10) * a_per_in_octets / 360000 ;//Adding 1 due to rounding errors
+	pm_rise_frac		= (a_phase_in_cycles[7:0] ==8'h00)?8'h00:a_phase_in_cycles[7:0] - {a_phase_in_cycles[7:3],3'b000};
+
+	dt_calc 	= ((phase+10) * a_per_in_octets / 8 )/360000 ;//TRUNC(phase* divide / 360); //or_simply (a_per_in_octets / 8)
+	dt 	= dt_calc[7:0];
+
+	pm_rise_frac_filtered = (pm_rise_frac >=8) ? (pm_rise_frac ) - 8: pm_rise_frac ;				//((phase_fixed * (divide + frac / 1000)) / 360) - {pm_rise_frac[7:3],3'b000};//$rtoi(clkout0_phase * clkout0_divide / 45);//a;
+
+	dt_int			= dt + (& pm_rise_frac[7:4]); //IF(pm_rise_overwriting>7,dt+1,dt)
+	pm_fall_frac		= pm_fall + pm_rise_frac;
+	pm_fall_frac_filtered	= pm_fall + pm_rise_frac - {pm_fall_frac[7:3], 3'b000};
+
+	div_calc	= mmcm_pll_divider(divide, duty_cycle); //Use to determine edge[7], no count[6]
+	phase_calc	= mmcm_pll_phase(divide, phase);// returns{mx[1:0], phase_mux[2:0], delay_time[5:0]}
+		
+      mmcm_pll_frac_count_calc[37:0] =
+         {		2'b00, pm_fall_frac_filtered[2:0], wf_fall_frac,
+			1'b0, clkout0_divide_frac[2:0], 1'b1, wf_rise_frac, phase_calc[10:9], div_calc[13:12], dt[5:0], 
+			3'b000, 1'b0, ht_frac[5:0], lt_frac[5:0] //Removed PM_Rise bits
+		} ;
+
+   `ifdef DEBUG
+      $display("-%d.%d p%d>>  :DADDR_9_15 frac30to28.frac_en.wf_r_frac.dt:%b%d%d_%b:DADDR_7_13 pm_f_frac_filtered_29to27.wf_f_frac_26:%b%d:DADDR_8_14.pm_r_frac_filt_15to13.ht_frac.lt_frac:%b%b%b:", divide, frac, phase, clkout0_divide_frac, 1, wf_rise_frac, dt, pm_fall_frac_filtered, wf_fall_frac, 3'b000, ht_frac, lt_frac);
+   `endif
+
+   end
+endfunction
+
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/activehdl/README.txt b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/activehdl/README.txt
new file mode 100644
index 0000000..9e170f5
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/activehdl/README.txt
@@ -0,0 +1,50 @@
+################################################################################
+# Vivado (TM) v2024.1 (64-bit)
+#
+# README.txt: Please read the sections below to understand the steps required to
+#             run the exported script and how to fetch design source file details
+#             from the file_info.txt file.
+#
+# Generated by export_simulation on Wed Feb 26 12:12:47 CET 2025
+#
+################################################################################
+
+1. Steps to run the generated simulation script
+
+From the shell prompt in the current directory, issue the following command:-
+
+./clk_wiz_0.sh
+
+This command will launch the 'compile', 'elaborate' and 'simulate' functions
+implemented in the script file for the 3-step flow. These functions are called
+from the main 'run' function in the script file.
+
+The 'run' function first calls the 'check_args' function, the purpose of which
+is to verify the generated script arguments and print error if incorrect switch
+is specified. The 'run' function then calls the 'setup' function, the purpose of
+which is to specify custom or initialization commands. The function also executes
+following sub-functions:-
+'reset_run' if -reset_run switch is specified.
+'reset_log' if -reset_log switch is specified.
+
+The purpose of 'reset_run' function' is to delete the simulator generated design
+data from the previous run and the purpose of 'reset_log' function' is to delete
+the simulator generated log files.
+
+The 'run' function then calls the 'init_lib' function, the purpose of which is to
+create design library mappings and directories. This function is called before the
+'compile' step. By default, if '-step' switch is specified with the script then the
+script will execute that specfic step, else it will execute all steps applicable
+for the target simulator.
+
+For more information on the script, please type './clk_wiz_0.sh -help'
+
+2. Design source file information
+
+export_simulation generates a 'file_info.txt' file that contains design file information
+based on the compile order when export_simulation was executed from Vivado. The file
+contains information about the file name, type, library it is compiled into, whether
+it is part of the IP, associated library, file path information in a comma separated
+format. This file can be parsed to extract the required information for generating a
+custom script or can be read from verification test infra.
+
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/activehdl/clk_wiz_0.sh b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/activehdl/clk_wiz_0.sh
new file mode 100755
index 0000000..c0a8e7b
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/activehdl/clk_wiz_0.sh
@@ -0,0 +1,258 @@
+#!/usr/bin/env bash
+#**********************************************************************************************************
+# Vivado (TM) v2024.1 (64-bit)
+#
+# Script generated by Vivado on Wed Feb 26 12:12:47 CET 2025
+# SW Build 5076996 on Wed May 22 18:36:09 MDT 2024
+#
+# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+# Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved. 
+#
+# Filename     : clk_wiz_0.sh
+# Simulator    : Aldec Active-HDL Simulator
+# Description  : Simulation script generated by export_simulation Tcl command
+# Purpose      : Run 'compile', 'elaborate', 'simulate' steps for compiling, elaborating and simulating the
+#                design. The script will copy the library mapping file from the compiled library directory,
+#                create design library directories and library mappings in the mapping file.
+#
+# Usage        : clk_wiz_0.sh
+#                clk_wiz_0.sh [-lib_map_path] [-step] [-keep_index] [-noclean_files]*
+#                clk_wiz_0.sh [-reset_run]
+#                clk_wiz_0.sh [-reset_log]
+#                clk_wiz_0.sh [-help]
+#
+#               * The -noclean_files switch is deprecated and will not peform any function (by default, the
+#                 simulator generated files will not be removed unless -reset_run switch is used)
+#
+# Prerequisite : Before running export_simulation, you must first compile the AMD simulation library
+#                using the 'compile_simlib' Tcl command (for more information, run 'compile_simlib -help'
+#                command in the Vivado Tcl shell). After compiling the library, specify the -lib_map_path
+#                switch with the directory path where the library is created while generating the script
+#                with export_simulation.
+#
+#                Alternatively, you can set the library path by setting the following project property:-
+#
+#                 set_property compxlib.<simulator>_compiled_library_dir <path> [current_project]
+#
+#                You can also point to the simulation library by either setting the 'lib_map_path' global
+#                variable in this script or specify it with the '-lib_map_path' switch while executing this
+#                script (type 'clk_wiz_0.sh -help' for more information).
+#
+#                Note: For pure RTL based designs, the -lib_map_path switch can be specified later with the
+#                generated script, but if design is targetted for system simulation containing SystemC/C++/C
+#                sources, then the library path MUST be specified upfront when calling export_simulation.
+#
+#                For more information, refer 'Vivado Design Suite User Guide:Logic simulation (UG900)'
+#
+#**********************************************************************************************************
+
+# script info
+echo -e "clk_wiz_0.sh - Script generated by export_simulation (Vivado v2024.1 (64-bit)-id)\n"
+
+# main steps
+run()
+{
+  check_args $*
+  setup
+  if [[ ($b_step == 1) ]]; then
+    case $step in
+      "compile" )
+       init_lib
+       compile
+      ;;
+      "simulate" )
+       simulate
+      ;;
+      * )
+        echo -e "ERROR: Invalid or missing step '$step' (type \"./clk_wiz_0.sh -help\" for more information)\n"
+        exit 1
+      esac
+  else
+    init_lib
+    compile
+    simulate
+  fi
+}
+
+# RUN_STEP: <compile>
+compile()
+{
+  runvsimsa -do "do {compile.do}" 2>&1 | tee -a compile.log
+}
+
+# RUN_STEP: <simulate>
+simulate()
+{
+  runvsimsa -l simulate.log -do "do {simulate.do}"
+}
+
+# STEP: setup
+setup()
+{
+  # delete previous files for a clean rerun
+  if [[ ($b_reset_run == 1) ]]; then
+    reset_run
+    echo -e "INFO: Simulation run files deleted.\n"
+    exit 0
+  fi
+
+ # delete previous log files
+  if [[ ($b_reset_log == 1) ]]; then
+    reset_log
+    echo -e "INFO: Simulation run log files deleted.\n"
+    exit 0
+  fi
+
+  # add any setup/initialization commands here:-
+
+  # <user specific commands>
+
+}
+
+# simulator index file/library directory processing
+init_lib()
+{
+  if [[ ($b_keep_index == 1) ]]; then
+    # keep previous design library mappings
+    true
+  else
+    # map simulator index file
+    map_setup_file
+  fi
+}
+
+# map library.cfg file
+map_setup_file()
+{
+  file="library.cfg"
+  if [[ ($lib_map_path != "") ]]; then
+    src_file="$lib_map_path/$file"
+    if [[ -e $src_file ]]; then
+      vmap -link $lib_map_path
+    fi
+  fi
+}
+
+# delete generated data from the previous run
+reset_run()
+{
+  files_to_remove=(compile.log elaboration.log simulate.log dataset.asdb work activehdl)
+  for (( i=0; i<${#files_to_remove[*]}; i++ )); do
+    file="${files_to_remove[i]}"
+    if [[ -e $file ]]; then
+      rm -rf $file
+    fi
+  done
+}
+
+# delete generated log files from the previous run
+reset_log()
+{
+  files_to_remove=(compile.log elaboration.log simulate.log dataset.asdb)
+  for (( i=0; i<${#files_to_remove[*]}; i++ )); do
+    file="${files_to_remove[i]}"
+    if [[ -e $file ]]; then
+      rm -rf $file
+    fi
+  done
+}
+
+# check switch argument value
+check_arg_value()
+{
+  if [[ ($1 == "-step") && (($2 != "compile") && ($2 != "simulate")) ]];then
+    echo -e "ERROR: Invalid or missing step '$2' (type \"./top.sh -help\" for more information)\n"
+    exit 1
+  fi
+
+  if [[ ($1 == "-lib_map_path") && ($2 == "") ]];then
+    echo -e "ERROR: Simulation library directory path not specified (type \"./clk_wiz_0.sh -help\" for more information)\n"
+    exit 1
+  fi
+}
+
+# check command line arguments
+check_args()
+{
+  arg_count=$#
+  if [[ ("$#" == 1) && (("$1" == "-help") || ("$1" == "-h")) ]]; then
+    usage
+  fi
+  while [[ "$#" -gt 0 ]]; do
+    case $1 in
+      -step)          check_arg_value $1 $2;step=$2;         b_step=1;         shift;;
+      -lib_map_path)  check_arg_value $1 $2;lib_map_path=$2; b_lib_map_path=1; shift;;
+      -gen_bypass)    b_gen_bypass=1    ;;
+      -reset_run)     b_reset_run=1     ;;
+      -reset_log)     b_reset_log=1     ;;
+      -keep_index)    b_keep_index=1    ;;
+      -noclean_files) b_noclean_files=1 ;;
+      -help|-h)       ;;
+      *) echo -e "ERROR: Invalid option specified '$1' (type "./top.sh -help" for more information)\n"; exit 1 ;;
+    esac
+     shift
+  done
+
+  # -reset_run is not applicable with other switches
+  if [[ ("$arg_count" -gt 1) && ($b_reset_run == 1) ]]; then
+    echo -e "ERROR: -reset_run switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n"
+    exit 1
+  fi
+
+  # -reset_log is not applicable with other switches
+  if [[ ("$arg_count" -gt 1) && ($b_reset_log == 1) ]]; then
+    echo -e "ERROR: -reset_log switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n"
+    exit 1
+  fi
+
+  # -keep_index is not applicable with other switches
+  if [[ ("$arg_count" -gt 1) && ($b_keep_index == 1) ]]; then
+    echo -e "ERROR: -keep_index switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n"
+    exit 1
+  fi
+
+  # -noclean_files is not applicable with other switches
+  if [[ ("$arg_count" -gt 1) && ($b_noclean_files == 1) ]]; then
+    echo -e "ERROR: -noclean_files switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n"
+    exit 1
+  fi
+}
+
+# script usage
+usage()
+{
+  msg="Usage: clk_wiz_0.sh [-help]\n\
+Usage: clk_wiz_0.sh [-step]\n\
+Usage: clk_wiz_0.sh [-lib_map_path]\n\
+Usage: clk_wiz_0.sh [-reset_run]\n\
+Usage: clk_wiz_0.sh [-reset_log]\n\
+Usage: clk_wiz_0.sh [-keep_index]\n\
+Usage: clk_wiz_0.sh [-noclean_files]\n\n\
+[-help] -- Print help information for this script\n\n\
+[-step <name>] -- Execute specified step (compile, simulate)\n\n\
+[-lib_map_path <path>] -- Compiled simulation library directory path. The simulation library is compiled\n\
+using the compile_simlib tcl command. Please see 'compile_simlib -help' for more information.\n\n\
+[-reset_run] -- Delete simulator generated data files from the previous run and recreate simulator setup\n\
+file/library mappings for a clean run. This switch will not execute steps defined in the script.\n\n\
+NOTE: To keep simulator index file settings from the previous run, use the -keep_index switch\n\
+NOTE: To regenerate simulator index file but keep the simulator generated files, use the -noclean_files switch\n\n\
+[-reset_log] -- Delete simulator generated log files from the previous run\n\n\
+[-keep_index] -- Keep simulator index file settings from the previous run\n\n\
+[-noclean_files] -- Reset previous run, but do not remove simulator generated files from the previous run\n"
+  echo -e $msg
+  exit 0
+}
+
+# initialize globals
+step=""
+lib_map_path=""
+b_step=0
+b_lib_map_path=0
+b_gen_bypass=0
+b_reset_run=0
+b_reset_log=0
+b_keep_index=0
+b_noclean_files=0
+
+# launch script
+run $*
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/activehdl/clk_wiz_0.udo b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/activehdl/clk_wiz_0.udo
new file mode 100644
index 0000000..e69de29
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/activehdl/compile.do b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/activehdl/compile.do
new file mode 100644
index 0000000..20dd108
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/activehdl/compile.do
@@ -0,0 +1,18 @@
+transcript off
+onbreak {quit -force}
+onerror {quit -force}
+transcript on
+
+vlib work
+vlib activehdl/xil_defaultlib
+
+vmap xil_defaultlib activehdl/xil_defaultlib
+
+vlog -work xil_defaultlib  -v2k5 "+incdir+../../../ipstatic" -l xil_defaultlib \
+"../../../../../src/ip/clk_wiz_0/clk_wiz_0_clk_wiz.v" \
+"../../../../../src/ip/clk_wiz_0/clk_wiz_0.v" \
+
+
+vlog -work xil_defaultlib \
+"glbl.v"
+
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/activehdl/file_info.txt b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/activehdl/file_info.txt
new file mode 100644
index 0000000..a75fafc
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/activehdl/file_info.txt
@@ -0,0 +1,3 @@
+clk_wiz_0_clk_wiz.v,verilog,xil_defaultlib,../../../../../src/ip/clk_wiz_0/clk_wiz_0_clk_wiz.v,incdir="../../../ipstatic"incdir="../../../ipstatic"
+clk_wiz_0.v,verilog,xil_defaultlib,../../../../../src/ip/clk_wiz_0/clk_wiz_0.v,incdir="../../../ipstatic"incdir="../../../ipstatic"
+glbl.v,Verilog,xil_defaultlib,glbl.v
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/activehdl/glbl.v b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/activehdl/glbl.v
new file mode 100755
index 0000000..ed3b249
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/activehdl/glbl.v
@@ -0,0 +1,84 @@
+// $Header: /devl/xcs/repo/env/Databases/CAEInterfaces/verunilibs/data/glbl.v,v 1.14 2010/10/28 20:44:00 fphillip Exp $
+`ifndef GLBL
+`define GLBL
+`timescale  1 ps / 1 ps
+
+module glbl ();
+
+    parameter ROC_WIDTH = 100000;
+    parameter TOC_WIDTH = 0;
+    parameter GRES_WIDTH = 10000;
+    parameter GRES_START = 10000;
+
+//--------   STARTUP Globals --------------
+    wire GSR;
+    wire GTS;
+    wire GWE;
+    wire PRLD;
+    wire GRESTORE;
+    tri1 p_up_tmp;
+    tri (weak1, strong0) PLL_LOCKG = p_up_tmp;
+
+    wire PROGB_GLBL;
+    wire CCLKO_GLBL;
+    wire FCSBO_GLBL;
+    wire [3:0] DO_GLBL;
+    wire [3:0] DI_GLBL;
+   
+    reg GSR_int;
+    reg GTS_int;
+    reg PRLD_int;
+    reg GRESTORE_int;
+
+//--------   JTAG Globals --------------
+    wire JTAG_TDO_GLBL;
+    wire JTAG_TCK_GLBL;
+    wire JTAG_TDI_GLBL;
+    wire JTAG_TMS_GLBL;
+    wire JTAG_TRST_GLBL;
+
+    reg JTAG_CAPTURE_GLBL;
+    reg JTAG_RESET_GLBL;
+    reg JTAG_SHIFT_GLBL;
+    reg JTAG_UPDATE_GLBL;
+    reg JTAG_RUNTEST_GLBL;
+
+    reg JTAG_SEL1_GLBL = 0;
+    reg JTAG_SEL2_GLBL = 0 ;
+    reg JTAG_SEL3_GLBL = 0;
+    reg JTAG_SEL4_GLBL = 0;
+
+    reg JTAG_USER_TDO1_GLBL = 1'bz;
+    reg JTAG_USER_TDO2_GLBL = 1'bz;
+    reg JTAG_USER_TDO3_GLBL = 1'bz;
+    reg JTAG_USER_TDO4_GLBL = 1'bz;
+
+    assign (strong1, weak0) GSR = GSR_int;
+    assign (strong1, weak0) GTS = GTS_int;
+    assign (weak1, weak0) PRLD = PRLD_int;
+    assign (strong1, weak0) GRESTORE = GRESTORE_int;
+
+    initial begin
+	GSR_int = 1'b1;
+	PRLD_int = 1'b1;
+	#(ROC_WIDTH)
+	GSR_int = 1'b0;
+	PRLD_int = 1'b0;
+    end
+
+    initial begin
+	GTS_int = 1'b1;
+	#(TOC_WIDTH)
+	GTS_int = 1'b0;
+    end
+
+    initial begin 
+	GRESTORE_int = 1'b0;
+	#(GRES_START);
+	GRESTORE_int = 1'b1;
+	#(GRES_WIDTH);
+	GRESTORE_int = 1'b0;
+    end
+
+endmodule
+`endif
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/activehdl/simulate.do b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/activehdl/simulate.do
new file mode 100644
index 0000000..f4d078c
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/activehdl/simulate.do
@@ -0,0 +1,14 @@
+transcript off
+onbreak {quit -force}
+onerror {quit -force}
+transcript on
+
+asim +access +r +m+clk_wiz_0  -L xil_defaultlib -L unisims_ver -L unimacro_ver -L secureip -O2 xil_defaultlib.clk_wiz_0 xil_defaultlib.glbl
+
+do {clk_wiz_0.udo}
+
+run
+
+endsim
+
+quit -force
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/modelsim/README.txt b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/modelsim/README.txt
new file mode 100644
index 0000000..9e170f5
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/modelsim/README.txt
@@ -0,0 +1,50 @@
+################################################################################
+# Vivado (TM) v2024.1 (64-bit)
+#
+# README.txt: Please read the sections below to understand the steps required to
+#             run the exported script and how to fetch design source file details
+#             from the file_info.txt file.
+#
+# Generated by export_simulation on Wed Feb 26 12:12:47 CET 2025
+#
+################################################################################
+
+1. Steps to run the generated simulation script
+
+From the shell prompt in the current directory, issue the following command:-
+
+./clk_wiz_0.sh
+
+This command will launch the 'compile', 'elaborate' and 'simulate' functions
+implemented in the script file for the 3-step flow. These functions are called
+from the main 'run' function in the script file.
+
+The 'run' function first calls the 'check_args' function, the purpose of which
+is to verify the generated script arguments and print error if incorrect switch
+is specified. The 'run' function then calls the 'setup' function, the purpose of
+which is to specify custom or initialization commands. The function also executes
+following sub-functions:-
+'reset_run' if -reset_run switch is specified.
+'reset_log' if -reset_log switch is specified.
+
+The purpose of 'reset_run' function' is to delete the simulator generated design
+data from the previous run and the purpose of 'reset_log' function' is to delete
+the simulator generated log files.
+
+The 'run' function then calls the 'init_lib' function, the purpose of which is to
+create design library mappings and directories. This function is called before the
+'compile' step. By default, if '-step' switch is specified with the script then the
+script will execute that specfic step, else it will execute all steps applicable
+for the target simulator.
+
+For more information on the script, please type './clk_wiz_0.sh -help'
+
+2. Design source file information
+
+export_simulation generates a 'file_info.txt' file that contains design file information
+based on the compile order when export_simulation was executed from Vivado. The file
+contains information about the file name, type, library it is compiled into, whether
+it is part of the IP, associated library, file path information in a comma separated
+format. This file can be parsed to extract the required information for generating a
+custom script or can be read from verification test infra.
+
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/modelsim/clk_wiz_0.sh b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/modelsim/clk_wiz_0.sh
new file mode 100755
index 0000000..08cb026
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/modelsim/clk_wiz_0.sh
@@ -0,0 +1,287 @@
+#!/usr/bin/env bash
+#**********************************************************************************************************
+# Vivado (TM) v2024.1 (64-bit)
+#
+# Script generated by Vivado on Wed Feb 26 12:12:47 CET 2025
+# SW Build 5076996 on Wed May 22 18:36:09 MDT 2024
+#
+# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+# Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved. 
+#
+# Filename     : clk_wiz_0.sh
+# Simulator    : Siemens ModelSim Simulator
+# Description  : Simulation script generated by export_simulation Tcl command
+# Purpose      : Run 'compile', 'elaborate', 'simulate' steps for compiling, elaborating and simulating the
+#                design. The script will copy the library mapping file from the compiled library directory,
+#                create design library directories and library mappings in the mapping file.
+#
+# Usage        : clk_wiz_0.sh
+#                clk_wiz_0.sh [-lib_map_path] [-step] [-keep_index] [-noclean_files]*
+#                clk_wiz_0.sh [-reset_run]
+#                clk_wiz_0.sh [-reset_log]
+#                clk_wiz_0.sh [-help]
+#
+#               * The -noclean_files switch is deprecated and will not peform any function (by default, the
+#                 simulator generated files will not be removed unless -reset_run switch is used)
+#
+# Prerequisite : Before running export_simulation, you must first compile the AMD simulation library
+#                using the 'compile_simlib' Tcl command (for more information, run 'compile_simlib -help'
+#                command in the Vivado Tcl shell). After compiling the library, specify the -lib_map_path
+#                switch with the directory path where the library is created while generating the script
+#                with export_simulation.
+#
+#                Alternatively, you can set the library path by setting the following project property:-
+#
+#                 set_property compxlib.<simulator>_compiled_library_dir <path> [current_project]
+#
+#                You can also point to the simulation library by either setting the 'lib_map_path' global
+#                variable in this script or specify it with the '-lib_map_path' switch while executing this
+#                script (type 'clk_wiz_0.sh -help' for more information).
+#
+#                Note: For pure RTL based designs, the -lib_map_path switch can be specified later with the
+#                generated script, but if design is targetted for system simulation containing SystemC/C++/C
+#                sources, then the library path MUST be specified upfront when calling export_simulation.
+#
+#                For more information, refer 'Vivado Design Suite User Guide:Logic simulation (UG900)'
+#
+#**********************************************************************************************************
+
+# catch pipeline exit status
+set -Eeuo pipefail
+
+# script info
+echo -e "clk_wiz_0.sh - Script generated by export_simulation (Vivado v2024.1 (64-bit)-id)\n"
+
+# main steps
+run()
+{
+  check_args $*
+  setup
+  if [[ ($b_step == 1) ]]; then
+    case $step in
+      "compile" )
+       init_lib
+       compile
+      ;;
+      "simulate" )
+       simulate
+      ;;
+      * )
+        echo -e "ERROR: Invalid or missing step '$step' (type \"./clk_wiz_0.sh -help\" for more information)\n"
+        exit 1
+      esac
+  else
+    init_lib
+    compile
+    simulate
+  fi
+}
+
+# RUN_STEP: <compile>
+compile()
+{
+  source compile.do 2>&1 | tee -a compile.log
+}
+
+# RUN_STEP: <simulate>
+simulate()
+{
+  vsim  -c -do "do {simulate.do}" -l simulate.log
+}
+
+# STEP: setup
+setup()
+{
+  # delete previous files for a clean rerun
+  if [[ ($b_reset_run == 1) ]]; then
+    reset_run
+    echo -e "INFO: Simulation run files deleted.\n"
+    exit 0
+  fi
+
+ # delete previous log files
+  if [[ ($b_reset_log == 1) ]]; then
+    reset_log
+    echo -e "INFO: Simulation run log files deleted.\n"
+    exit 0
+  fi
+
+  # add any setup/initialization commands here:-
+
+  # <user specific commands>
+
+}
+
+# simulator index file/library directory processing
+init_lib()
+{
+  if [[ ($b_keep_index == 1) ]]; then
+    # keep previous simulator index file
+    true
+  else
+    # copy simulator index file to current directory
+    copy_setup_file
+  fi
+
+  if [[ ($lib_map_path != "") ]]; then
+    ref_lib_dir=$lib_map_path
+  fi
+
+  if [[ ($b_keep_index == 1) ]]; then
+    # do not recreate design library directories
+    true
+  else
+    # create design library directories
+    create_lib_dir
+  fi
+}
+
+# copy modelsim.ini file
+copy_setup_file()
+{
+  file="modelsim.ini"
+  if [[ ($lib_map_path != "") && !(-e $lib_map_path) ]]; then
+    echo -e "ERROR: Compiled simulation library directory path not specified or does not exist (type "./top.sh -help" for more information)\n"
+  fi
+
+  if [[ ($lib_map_path != "") ]]; then
+    src_file="$lib_map_path/$file"
+    if [[ -e $src_file ]]; then
+      cp $src_file .
+    fi
+  fi
+}
+
+# create design library directory
+create_lib_dir()
+{
+  lib_dir="modelsim_lib"
+  if [[ -e $lib_dir ]]; then
+    rm -rf $lib_dir
+  fi
+  mkdir $lib_dir
+}
+
+# delete generated data from the previous run
+reset_run()
+{
+  files_to_remove=(compile.log elaborate.log simulate.log vsim.wlf modelsim_lib)
+  for (( i=0; i<${#files_to_remove[*]}; i++ )); do
+    file="${files_to_remove[i]}"
+    if [[ -e $file ]]; then
+      rm -rf $file
+    fi
+  done
+}
+
+# delete generated log files from the previous run
+reset_log()
+{
+  files_to_remove=(compile.log elaborate.log simulate.log)
+  for (( i=0; i<${#files_to_remove[*]}; i++ )); do
+    file="${files_to_remove[i]}"
+    if [[ -e $file ]]; then
+      rm -rf $file
+    fi
+  done
+}
+
+# check switch argument value
+check_arg_value()
+{
+  if [[ ($1 == "-step") && (($2 != "compile") && ($2 != "simulate")) ]];then
+    echo -e "ERROR: Invalid or missing step '$2' (type \"./top.sh -help\" for more information)\n"
+    exit 1
+  fi
+
+  if [[ ($1 == "-lib_map_path") && ($2 == "") ]];then
+    echo -e "ERROR: Simulation library directory path not specified (type \"./clk_wiz_0.sh -help\" for more information)\n"
+    exit 1
+  fi
+}
+
+# check command line arguments
+check_args()
+{
+  arg_count=$#
+  if [[ ("$#" == 1) && (("$1" == "-help") || ("$1" == "-h")) ]]; then
+    usage
+  fi
+  while [[ "$#" -gt 0 ]]; do
+    case $1 in
+      -step)          check_arg_value $1 $2;step=$2;         b_step=1;         shift;;
+      -lib_map_path)  check_arg_value $1 $2;lib_map_path=$2; b_lib_map_path=1; shift;;
+      -gen_bypass)    b_gen_bypass=1    ;;
+      -reset_run)     b_reset_run=1     ;;
+      -reset_log)     b_reset_log=1     ;;
+      -keep_index)    b_keep_index=1    ;;
+      -noclean_files) b_noclean_files=1 ;;
+      -help|-h)       ;;
+      *) echo -e "ERROR: Invalid option specified '$1' (type "./top.sh -help" for more information)\n"; exit 1 ;;
+    esac
+     shift
+  done
+
+  # -reset_run is not applicable with other switches
+  if [[ ("$arg_count" -gt 1) && ($b_reset_run == 1) ]]; then
+    echo -e "ERROR: -reset_run switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n"
+    exit 1
+  fi
+
+  # -reset_log is not applicable with other switches
+  if [[ ("$arg_count" -gt 1) && ($b_reset_log == 1) ]]; then
+    echo -e "ERROR: -reset_log switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n"
+    exit 1
+  fi
+
+  # -keep_index is not applicable with other switches
+  if [[ ("$arg_count" -gt 1) && ($b_keep_index == 1) ]]; then
+    echo -e "ERROR: -keep_index switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n"
+    exit 1
+  fi
+
+  # -noclean_files is not applicable with other switches
+  if [[ ("$arg_count" -gt 1) && ($b_noclean_files == 1) ]]; then
+    echo -e "ERROR: -noclean_files switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n"
+    exit 1
+  fi
+}
+
+# script usage
+usage()
+{
+  msg="Usage: clk_wiz_0.sh [-help]\n\
+Usage: clk_wiz_0.sh [-step]\n\
+Usage: clk_wiz_0.sh [-lib_map_path]\n\
+Usage: clk_wiz_0.sh [-reset_run]\n\
+Usage: clk_wiz_0.sh [-reset_log]\n\
+Usage: clk_wiz_0.sh [-keep_index]\n\
+Usage: clk_wiz_0.sh [-noclean_files]\n\n\
+[-help] -- Print help information for this script\n\n\
+[-step <name>] -- Execute specified step (compile, simulate)\n\n\
+[-lib_map_path <path>] -- Compiled simulation library directory path. The simulation library is compiled\n\
+using the compile_simlib tcl command. Please see 'compile_simlib -help' for more information.\n\n\
+[-reset_run] -- Delete simulator generated data files from the previous run and recreate simulator setup\n\
+file/library mappings for a clean run. This switch will not execute steps defined in the script.\n\n\
+NOTE: To keep simulator index file settings from the previous run, use the -keep_index switch\n\
+NOTE: To regenerate simulator index file but keep the simulator generated files, use the -noclean_files switch\n\n\
+[-reset_log] -- Delete simulator generated log files from the previous run\n\n\
+[-keep_index] -- Keep simulator index file settings from the previous run\n\n\
+[-noclean_files] -- Reset previous run, but do not remove simulator generated files from the previous run\n"
+  echo -e $msg
+  exit 0
+}
+
+# initialize globals
+step=""
+lib_map_path=""
+b_step=0
+b_lib_map_path=0
+b_gen_bypass=0
+b_reset_run=0
+b_reset_log=0
+b_keep_index=0
+b_noclean_files=0
+
+# launch script
+run $*
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/modelsim/clk_wiz_0.udo b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/modelsim/clk_wiz_0.udo
new file mode 100644
index 0000000..e69de29
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/modelsim/compile.do b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/modelsim/compile.do
new file mode 100644
index 0000000..59e8d23
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/modelsim/compile.do
@@ -0,0 +1,15 @@
+vlib modelsim_lib/work
+vlib modelsim_lib/msim
+
+vlib modelsim_lib/msim/xil_defaultlib
+
+vmap xil_defaultlib modelsim_lib/msim/xil_defaultlib
+
+vlog -work xil_defaultlib -64 -incr -mfcu  "+incdir+../../../ipstatic" \
+"../../../../../src/ip/clk_wiz_0/clk_wiz_0_clk_wiz.v" \
+"../../../../../src/ip/clk_wiz_0/clk_wiz_0.v" \
+
+
+vlog -work xil_defaultlib \
+"glbl.v"
+
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/modelsim/file_info.txt b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/modelsim/file_info.txt
new file mode 100644
index 0000000..a75fafc
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/modelsim/file_info.txt
@@ -0,0 +1,3 @@
+clk_wiz_0_clk_wiz.v,verilog,xil_defaultlib,../../../../../src/ip/clk_wiz_0/clk_wiz_0_clk_wiz.v,incdir="../../../ipstatic"incdir="../../../ipstatic"
+clk_wiz_0.v,verilog,xil_defaultlib,../../../../../src/ip/clk_wiz_0/clk_wiz_0.v,incdir="../../../ipstatic"incdir="../../../ipstatic"
+glbl.v,Verilog,xil_defaultlib,glbl.v
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/modelsim/glbl.v b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/modelsim/glbl.v
new file mode 100755
index 0000000..ed3b249
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/modelsim/glbl.v
@@ -0,0 +1,84 @@
+// $Header: /devl/xcs/repo/env/Databases/CAEInterfaces/verunilibs/data/glbl.v,v 1.14 2010/10/28 20:44:00 fphillip Exp $
+`ifndef GLBL
+`define GLBL
+`timescale  1 ps / 1 ps
+
+module glbl ();
+
+    parameter ROC_WIDTH = 100000;
+    parameter TOC_WIDTH = 0;
+    parameter GRES_WIDTH = 10000;
+    parameter GRES_START = 10000;
+
+//--------   STARTUP Globals --------------
+    wire GSR;
+    wire GTS;
+    wire GWE;
+    wire PRLD;
+    wire GRESTORE;
+    tri1 p_up_tmp;
+    tri (weak1, strong0) PLL_LOCKG = p_up_tmp;
+
+    wire PROGB_GLBL;
+    wire CCLKO_GLBL;
+    wire FCSBO_GLBL;
+    wire [3:0] DO_GLBL;
+    wire [3:0] DI_GLBL;
+   
+    reg GSR_int;
+    reg GTS_int;
+    reg PRLD_int;
+    reg GRESTORE_int;
+
+//--------   JTAG Globals --------------
+    wire JTAG_TDO_GLBL;
+    wire JTAG_TCK_GLBL;
+    wire JTAG_TDI_GLBL;
+    wire JTAG_TMS_GLBL;
+    wire JTAG_TRST_GLBL;
+
+    reg JTAG_CAPTURE_GLBL;
+    reg JTAG_RESET_GLBL;
+    reg JTAG_SHIFT_GLBL;
+    reg JTAG_UPDATE_GLBL;
+    reg JTAG_RUNTEST_GLBL;
+
+    reg JTAG_SEL1_GLBL = 0;
+    reg JTAG_SEL2_GLBL = 0 ;
+    reg JTAG_SEL3_GLBL = 0;
+    reg JTAG_SEL4_GLBL = 0;
+
+    reg JTAG_USER_TDO1_GLBL = 1'bz;
+    reg JTAG_USER_TDO2_GLBL = 1'bz;
+    reg JTAG_USER_TDO3_GLBL = 1'bz;
+    reg JTAG_USER_TDO4_GLBL = 1'bz;
+
+    assign (strong1, weak0) GSR = GSR_int;
+    assign (strong1, weak0) GTS = GTS_int;
+    assign (weak1, weak0) PRLD = PRLD_int;
+    assign (strong1, weak0) GRESTORE = GRESTORE_int;
+
+    initial begin
+	GSR_int = 1'b1;
+	PRLD_int = 1'b1;
+	#(ROC_WIDTH)
+	GSR_int = 1'b0;
+	PRLD_int = 1'b0;
+    end
+
+    initial begin
+	GTS_int = 1'b1;
+	#(TOC_WIDTH)
+	GTS_int = 1'b0;
+    end
+
+    initial begin 
+	GRESTORE_int = 1'b0;
+	#(GRES_START);
+	GRESTORE_int = 1'b1;
+	#(GRES_WIDTH);
+	GRESTORE_int = 1'b0;
+    end
+
+endmodule
+`endif
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/modelsim/simulate.do b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/modelsim/simulate.do
new file mode 100644
index 0000000..d25b53f
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/modelsim/simulate.do
@@ -0,0 +1,19 @@
+onbreak {quit -f}
+onerror {quit -f}
+
+vsim -voptargs="+acc"  -L xil_defaultlib -L unisims_ver -L unimacro_ver -L secureip -lib xil_defaultlib xil_defaultlib.clk_wiz_0 xil_defaultlib.glbl
+
+set NumericStdNoWarnings 1
+set StdArithNoWarnings 1
+
+do {wave.do}
+
+view wave
+view structure
+view signals
+
+do {clk_wiz_0.udo}
+
+run 1000ns
+
+quit -force
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/modelsim/wave.do b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/modelsim/wave.do
new file mode 100644
index 0000000..70157b0
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/modelsim/wave.do
@@ -0,0 +1,2 @@
+add wave *
+add wave /glbl/GSR
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/README.txt b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/README.txt
new file mode 100644
index 0000000..9e170f5
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/README.txt
@@ -0,0 +1,50 @@
+################################################################################
+# Vivado (TM) v2024.1 (64-bit)
+#
+# README.txt: Please read the sections below to understand the steps required to
+#             run the exported script and how to fetch design source file details
+#             from the file_info.txt file.
+#
+# Generated by export_simulation on Wed Feb 26 12:12:47 CET 2025
+#
+################################################################################
+
+1. Steps to run the generated simulation script
+
+From the shell prompt in the current directory, issue the following command:-
+
+./clk_wiz_0.sh
+
+This command will launch the 'compile', 'elaborate' and 'simulate' functions
+implemented in the script file for the 3-step flow. These functions are called
+from the main 'run' function in the script file.
+
+The 'run' function first calls the 'check_args' function, the purpose of which
+is to verify the generated script arguments and print error if incorrect switch
+is specified. The 'run' function then calls the 'setup' function, the purpose of
+which is to specify custom or initialization commands. The function also executes
+following sub-functions:-
+'reset_run' if -reset_run switch is specified.
+'reset_log' if -reset_log switch is specified.
+
+The purpose of 'reset_run' function' is to delete the simulator generated design
+data from the previous run and the purpose of 'reset_log' function' is to delete
+the simulator generated log files.
+
+The 'run' function then calls the 'init_lib' function, the purpose of which is to
+create design library mappings and directories. This function is called before the
+'compile' step. By default, if '-step' switch is specified with the script then the
+script will execute that specfic step, else it will execute all steps applicable
+for the target simulator.
+
+For more information on the script, please type './clk_wiz_0.sh -help'
+
+2. Design source file information
+
+export_simulation generates a 'file_info.txt' file that contains design file information
+based on the compile order when export_simulation was executed from Vivado. The file
+contains information about the file name, type, library it is compiled into, whether
+it is part of the IP, associated library, file path information in a comma separated
+format. This file can be parsed to extract the required information for generating a
+custom script or can be read from verification test infra.
+
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/clk_wiz_0.sh b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/clk_wiz_0.sh
new file mode 100755
index 0000000..cc5e856
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/clk_wiz_0.sh
@@ -0,0 +1,297 @@
+#!/usr/bin/env bash
+#**********************************************************************************************************
+# Vivado (TM) v2024.1 (64-bit)
+#
+# Script generated by Vivado on Wed Feb 26 12:12:47 CET 2025
+# SW Build 5076996 on Wed May 22 18:36:09 MDT 2024
+#
+# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+# Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved. 
+#
+# Filename     : clk_wiz_0.sh
+# Simulator    : Siemens Questa Advanced Simulator
+# Description  : Simulation script generated by export_simulation Tcl command
+# Purpose      : Run 'compile', 'elaborate', 'simulate' steps for compiling, elaborating and simulating the
+#                design. The script will copy the library mapping file from the compiled library directory,
+#                create design library directories and library mappings in the mapping file.
+#
+# Usage        : clk_wiz_0.sh
+#                clk_wiz_0.sh [-lib_map_path] [-step] [-keep_index] [-noclean_files]*
+#                clk_wiz_0.sh [-reset_run]
+#                clk_wiz_0.sh [-reset_log]
+#                clk_wiz_0.sh [-help]
+#
+#               * The -noclean_files switch is deprecated and will not peform any function (by default, the
+#                 simulator generated files will not be removed unless -reset_run switch is used)
+#
+# Prerequisite : Before running export_simulation, you must first compile the AMD simulation library
+#                using the 'compile_simlib' Tcl command (for more information, run 'compile_simlib -help'
+#                command in the Vivado Tcl shell). After compiling the library, specify the -lib_map_path
+#                switch with the directory path where the library is created while generating the script
+#                with export_simulation.
+#
+#                Alternatively, you can set the library path by setting the following project property:-
+#
+#                 set_property compxlib.<simulator>_compiled_library_dir <path> [current_project]
+#
+#                You can also point to the simulation library by either setting the 'lib_map_path' global
+#                variable in this script or specify it with the '-lib_map_path' switch while executing this
+#                script (type 'clk_wiz_0.sh -help' for more information).
+#
+#                Note: For pure RTL based designs, the -lib_map_path switch can be specified later with the
+#                generated script, but if design is targetted for system simulation containing SystemC/C++/C
+#                sources, then the library path MUST be specified upfront when calling export_simulation.
+#
+#                For more information, refer 'Vivado Design Suite User Guide:Logic simulation (UG900)'
+#
+#**********************************************************************************************************
+
+# catch pipeline exit status
+set -Eeuo pipefail
+
+# script info
+echo -e "clk_wiz_0.sh - Script generated by export_simulation (Vivado v2024.1 (64-bit)-id)\n"
+
+# main steps
+run()
+{
+  check_args $*
+  setup
+  if [[ ($b_step == 1) ]]; then
+    case $step in
+      "compile" )
+       init_lib
+       compile
+      ;;
+      "elaborate" )
+       elaborate
+      ;;
+      "simulate" )
+       simulate
+      ;;
+      * )
+        echo -e "ERROR: Invalid or missing step '$step' (type \"./clk_wiz_0.sh -help\" for more information)\n"
+        exit 1
+      esac
+  else
+    init_lib
+    compile
+    elaborate
+    simulate
+  fi
+}
+
+# RUN_STEP: <compile>
+compile()
+{
+  source compile.do 2>&1 | tee -a compile.log
+}
+
+# RUN_STEP: <elaborate>
+elaborate()
+{
+  source elaborate.do 2>&1 | tee  elaborate.log
+}
+
+# RUN_STEP: <simulate>
+simulate()
+{
+  vsim -64  -c -do "do {simulate.do}" -l simulate.log
+}
+
+# STEP: setup
+setup()
+{
+  # delete previous files for a clean rerun
+  if [[ ($b_reset_run == 1) ]]; then
+    reset_run
+    echo -e "INFO: Simulation run files deleted.\n"
+    exit 0
+  fi
+
+ # delete previous log files
+  if [[ ($b_reset_log == 1) ]]; then
+    reset_log
+    echo -e "INFO: Simulation run log files deleted.\n"
+    exit 0
+  fi
+
+  # add any setup/initialization commands here:-
+
+  # <user specific commands>
+
+}
+
+# simulator index file/library directory processing
+init_lib()
+{
+  if [[ ($b_keep_index == 1) ]]; then
+    # keep previous simulator index file
+    true
+  else
+    # copy simulator index file to current directory
+    copy_setup_file
+  fi
+
+  if [[ ($lib_map_path != "") ]]; then
+    ref_lib_dir=$lib_map_path
+  fi
+
+  if [[ ($b_keep_index == 1) ]]; then
+    # do not recreate design library directories
+    true
+  else
+    # create design library directories
+    create_lib_dir
+  fi
+}
+
+# copy modelsim.ini file
+copy_setup_file()
+{
+  file="modelsim.ini"
+  if [[ ($lib_map_path != "") && !(-e $lib_map_path) ]]; then
+    echo -e "ERROR: Compiled simulation library directory path not specified or does not exist (type "./top.sh -help" for more information)\n"
+  fi
+
+  if [[ ($lib_map_path != "") ]]; then
+    src_file="$lib_map_path/$file"
+    if [[ -e $src_file ]]; then
+      cp $src_file .
+    fi
+  fi
+}
+
+# create design library directory
+create_lib_dir()
+{
+  lib_dir="questa_lib"
+  if [[ -e $lib_dir ]]; then
+    rm -rf $lib_dir
+  fi
+  mkdir $lib_dir
+}
+
+# delete generated data from the previous run
+reset_run()
+{
+  files_to_remove=(compile.log elaborate.log simulate.log vsim.wlf questa_lib)
+  for (( i=0; i<${#files_to_remove[*]}; i++ )); do
+    file="${files_to_remove[i]}"
+    if [[ -e $file ]]; then
+      rm -rf $file
+    fi
+  done
+}
+
+# delete generated log files from the previous run
+reset_log()
+{
+  files_to_remove=(compile.log elaborate.log simulate.log)
+  for (( i=0; i<${#files_to_remove[*]}; i++ )); do
+    file="${files_to_remove[i]}"
+    if [[ -e $file ]]; then
+      rm -rf $file
+    fi
+  done
+}
+
+# check switch argument value
+check_arg_value()
+{
+  if [[ ($1 == "-step") && (($2 != "compile") && ($2 != "elaborate") && ($2 != "simulate")) ]];then
+    echo -e "ERROR: Invalid or missing step '$2' (type \"./top.sh -help\" for more information)\n"
+    exit 1
+  fi
+
+  if [[ ($1 == "-lib_map_path") && ($2 == "") ]];then
+    echo -e "ERROR: Simulation library directory path not specified (type \"./clk_wiz_0.sh -help\" for more information)\n"
+    exit 1
+  fi
+}
+
+# check command line arguments
+check_args()
+{
+  arg_count=$#
+  if [[ ("$#" == 1) && (("$1" == "-help") || ("$1" == "-h")) ]]; then
+    usage
+  fi
+  while [[ "$#" -gt 0 ]]; do
+    case $1 in
+      -step)          check_arg_value $1 $2;step=$2;         b_step=1;         shift;;
+      -lib_map_path)  check_arg_value $1 $2;lib_map_path=$2; b_lib_map_path=1; shift;;
+      -gen_bypass)    b_gen_bypass=1    ;;
+      -reset_run)     b_reset_run=1     ;;
+      -reset_log)     b_reset_log=1     ;;
+      -keep_index)    b_keep_index=1    ;;
+      -noclean_files) b_noclean_files=1 ;;
+      -help|-h)       ;;
+      *) echo -e "ERROR: Invalid option specified '$1' (type "./top.sh -help" for more information)\n"; exit 1 ;;
+    esac
+     shift
+  done
+
+  # -reset_run is not applicable with other switches
+  if [[ ("$arg_count" -gt 1) && ($b_reset_run == 1) ]]; then
+    echo -e "ERROR: -reset_run switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n"
+    exit 1
+  fi
+
+  # -reset_log is not applicable with other switches
+  if [[ ("$arg_count" -gt 1) && ($b_reset_log == 1) ]]; then
+    echo -e "ERROR: -reset_log switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n"
+    exit 1
+  fi
+
+  # -keep_index is not applicable with other switches
+  if [[ ("$arg_count" -gt 1) && ($b_keep_index == 1) ]]; then
+    echo -e "ERROR: -keep_index switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n"
+    exit 1
+  fi
+
+  # -noclean_files is not applicable with other switches
+  if [[ ("$arg_count" -gt 1) && ($b_noclean_files == 1) ]]; then
+    echo -e "ERROR: -noclean_files switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n"
+    exit 1
+  fi
+}
+
+# script usage
+usage()
+{
+  msg="Usage: clk_wiz_0.sh [-help]\n\
+Usage: clk_wiz_0.sh [-step]\n\
+Usage: clk_wiz_0.sh [-lib_map_path]\n\
+Usage: clk_wiz_0.sh [-reset_run]\n\
+Usage: clk_wiz_0.sh [-reset_log]\n\
+Usage: clk_wiz_0.sh [-keep_index]\n\
+Usage: clk_wiz_0.sh [-noclean_files]\n\n\
+[-help] -- Print help information for this script\n\n\
+[-step <name>] -- Execute specified step (compile, elaborate, simulate)\n\n\
+[-lib_map_path <path>] -- Compiled simulation library directory path. The simulation library is compiled\n\
+using the compile_simlib tcl command. Please see 'compile_simlib -help' for more information.\n\n\
+[-reset_run] -- Delete simulator generated data files from the previous run and recreate simulator setup\n\
+file/library mappings for a clean run. This switch will not execute steps defined in the script.\n\n\
+NOTE: To keep simulator index file settings from the previous run, use the -keep_index switch\n\
+NOTE: To regenerate simulator index file but keep the simulator generated files, use the -noclean_files switch\n\n\
+[-reset_log] -- Delete simulator generated log files from the previous run\n\n\
+[-keep_index] -- Keep simulator index file settings from the previous run\n\n\
+[-noclean_files] -- Reset previous run, but do not remove simulator generated files from the previous run\n"
+  echo -e $msg
+  exit 0
+}
+
+# initialize globals
+step=""
+lib_map_path=""
+b_step=0
+b_lib_map_path=0
+b_gen_bypass=0
+b_reset_run=0
+b_reset_log=0
+b_keep_index=0
+b_noclean_files=0
+
+# launch script
+run $*
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/clk_wiz_0.udo b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/clk_wiz_0.udo
new file mode 100644
index 0000000..e69de29
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/compile.do b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/compile.do
new file mode 100644
index 0000000..79ee207
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/compile.do
@@ -0,0 +1,15 @@
+vlib questa_lib/work
+vlib questa_lib/msim
+
+vlib questa_lib/msim/xil_defaultlib
+
+vmap xil_defaultlib questa_lib/msim/xil_defaultlib
+
+vlog -work xil_defaultlib -64 -incr -mfcu  "+incdir+../../../ipstatic" \
+"../../../../../src/ip/clk_wiz_0/clk_wiz_0_clk_wiz.v" \
+"../../../../../src/ip/clk_wiz_0/clk_wiz_0.v" \
+
+
+vlog -work xil_defaultlib \
+"glbl.v"
+
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/elaborate.do b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/elaborate.do
new file mode 100644
index 0000000..c30c9f4
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/elaborate.do
@@ -0,0 +1 @@
+vopt -64 -l elaborate.log +acc=npr -suppress 10016  -L xil_defaultlib -L unisims_ver -L unimacro_ver -L secureip -work xil_defaultlib xil_defaultlib.clk_wiz_0 xil_defaultlib.glbl -o clk_wiz_0_opt
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/file_info.txt b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/file_info.txt
new file mode 100644
index 0000000..a75fafc
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/file_info.txt
@@ -0,0 +1,3 @@
+clk_wiz_0_clk_wiz.v,verilog,xil_defaultlib,../../../../../src/ip/clk_wiz_0/clk_wiz_0_clk_wiz.v,incdir="../../../ipstatic"incdir="../../../ipstatic"
+clk_wiz_0.v,verilog,xil_defaultlib,../../../../../src/ip/clk_wiz_0/clk_wiz_0.v,incdir="../../../ipstatic"incdir="../../../ipstatic"
+glbl.v,Verilog,xil_defaultlib,glbl.v
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/glbl.v b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/glbl.v
new file mode 100755
index 0000000..ed3b249
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/glbl.v
@@ -0,0 +1,84 @@
+// $Header: /devl/xcs/repo/env/Databases/CAEInterfaces/verunilibs/data/glbl.v,v 1.14 2010/10/28 20:44:00 fphillip Exp $
+`ifndef GLBL
+`define GLBL
+`timescale  1 ps / 1 ps
+
+module glbl ();
+
+    parameter ROC_WIDTH = 100000;
+    parameter TOC_WIDTH = 0;
+    parameter GRES_WIDTH = 10000;
+    parameter GRES_START = 10000;
+
+//--------   STARTUP Globals --------------
+    wire GSR;
+    wire GTS;
+    wire GWE;
+    wire PRLD;
+    wire GRESTORE;
+    tri1 p_up_tmp;
+    tri (weak1, strong0) PLL_LOCKG = p_up_tmp;
+
+    wire PROGB_GLBL;
+    wire CCLKO_GLBL;
+    wire FCSBO_GLBL;
+    wire [3:0] DO_GLBL;
+    wire [3:0] DI_GLBL;
+   
+    reg GSR_int;
+    reg GTS_int;
+    reg PRLD_int;
+    reg GRESTORE_int;
+
+//--------   JTAG Globals --------------
+    wire JTAG_TDO_GLBL;
+    wire JTAG_TCK_GLBL;
+    wire JTAG_TDI_GLBL;
+    wire JTAG_TMS_GLBL;
+    wire JTAG_TRST_GLBL;
+
+    reg JTAG_CAPTURE_GLBL;
+    reg JTAG_RESET_GLBL;
+    reg JTAG_SHIFT_GLBL;
+    reg JTAG_UPDATE_GLBL;
+    reg JTAG_RUNTEST_GLBL;
+
+    reg JTAG_SEL1_GLBL = 0;
+    reg JTAG_SEL2_GLBL = 0 ;
+    reg JTAG_SEL3_GLBL = 0;
+    reg JTAG_SEL4_GLBL = 0;
+
+    reg JTAG_USER_TDO1_GLBL = 1'bz;
+    reg JTAG_USER_TDO2_GLBL = 1'bz;
+    reg JTAG_USER_TDO3_GLBL = 1'bz;
+    reg JTAG_USER_TDO4_GLBL = 1'bz;
+
+    assign (strong1, weak0) GSR = GSR_int;
+    assign (strong1, weak0) GTS = GTS_int;
+    assign (weak1, weak0) PRLD = PRLD_int;
+    assign (strong1, weak0) GRESTORE = GRESTORE_int;
+
+    initial begin
+	GSR_int = 1'b1;
+	PRLD_int = 1'b1;
+	#(ROC_WIDTH)
+	GSR_int = 1'b0;
+	PRLD_int = 1'b0;
+    end
+
+    initial begin
+	GTS_int = 1'b1;
+	#(TOC_WIDTH)
+	GTS_int = 1'b0;
+    end
+
+    initial begin 
+	GRESTORE_int = 1'b0;
+	#(GRES_START);
+	GRESTORE_int = 1'b1;
+	#(GRES_WIDTH);
+	GRESTORE_int = 1'b0;
+    end
+
+endmodule
+`endif
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/simulate.do b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/simulate.do
new file mode 100644
index 0000000..81ab20f
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/simulate.do
@@ -0,0 +1,19 @@
+onbreak {quit -f}
+onerror {quit -f}
+
+vsim  -lib xil_defaultlib clk_wiz_0_opt
+
+set NumericStdNoWarnings 1
+set StdArithNoWarnings 1
+
+do {wave.do}
+
+view wave
+view structure
+view signals
+
+do {clk_wiz_0.udo}
+
+run 1000ns
+
+quit -force
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/wave.do b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/wave.do
new file mode 100644
index 0000000..70157b0
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/wave.do
@@ -0,0 +1,2 @@
+add wave *
+add wave /glbl/GSR
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/riviera/README.txt b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/riviera/README.txt
new file mode 100644
index 0000000..9e170f5
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/riviera/README.txt
@@ -0,0 +1,50 @@
+################################################################################
+# Vivado (TM) v2024.1 (64-bit)
+#
+# README.txt: Please read the sections below to understand the steps required to
+#             run the exported script and how to fetch design source file details
+#             from the file_info.txt file.
+#
+# Generated by export_simulation on Wed Feb 26 12:12:47 CET 2025
+#
+################################################################################
+
+1. Steps to run the generated simulation script
+
+From the shell prompt in the current directory, issue the following command:-
+
+./clk_wiz_0.sh
+
+This command will launch the 'compile', 'elaborate' and 'simulate' functions
+implemented in the script file for the 3-step flow. These functions are called
+from the main 'run' function in the script file.
+
+The 'run' function first calls the 'check_args' function, the purpose of which
+is to verify the generated script arguments and print error if incorrect switch
+is specified. The 'run' function then calls the 'setup' function, the purpose of
+which is to specify custom or initialization commands. The function also executes
+following sub-functions:-
+'reset_run' if -reset_run switch is specified.
+'reset_log' if -reset_log switch is specified.
+
+The purpose of 'reset_run' function' is to delete the simulator generated design
+data from the previous run and the purpose of 'reset_log' function' is to delete
+the simulator generated log files.
+
+The 'run' function then calls the 'init_lib' function, the purpose of which is to
+create design library mappings and directories. This function is called before the
+'compile' step. By default, if '-step' switch is specified with the script then the
+script will execute that specfic step, else it will execute all steps applicable
+for the target simulator.
+
+For more information on the script, please type './clk_wiz_0.sh -help'
+
+2. Design source file information
+
+export_simulation generates a 'file_info.txt' file that contains design file information
+based on the compile order when export_simulation was executed from Vivado. The file
+contains information about the file name, type, library it is compiled into, whether
+it is part of the IP, associated library, file path information in a comma separated
+format. This file can be parsed to extract the required information for generating a
+custom script or can be read from verification test infra.
+
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/riviera/clk_wiz_0.sh b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/riviera/clk_wiz_0.sh
new file mode 100755
index 0000000..b0e1770
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/riviera/clk_wiz_0.sh
@@ -0,0 +1,264 @@
+#!/usr/bin/env bash
+#**********************************************************************************************************
+# Vivado (TM) v2024.1 (64-bit)
+#
+# Script generated by Vivado on Wed Feb 26 12:12:47 CET 2025
+# SW Build 5076996 on Wed May 22 18:36:09 MDT 2024
+#
+# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+# Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved. 
+#
+# Filename     : clk_wiz_0.sh
+# Simulator    : Aldec Riviera-PRO Simulator
+# Description  : Simulation script generated by export_simulation Tcl command
+# Purpose      : Run 'compile', 'elaborate', 'simulate' steps for compiling, elaborating and simulating the
+#                design. The script will copy the library mapping file from the compiled library directory,
+#                create design library directories and library mappings in the mapping file.
+#
+# Usage        : clk_wiz_0.sh
+#                clk_wiz_0.sh [-lib_map_path] [-step] [-keep_index] [-noclean_files]*
+#                clk_wiz_0.sh [-reset_run]
+#                clk_wiz_0.sh [-reset_log]
+#                clk_wiz_0.sh [-help]
+#
+#               * The -noclean_files switch is deprecated and will not peform any function (by default, the
+#                 simulator generated files will not be removed unless -reset_run switch is used)
+#
+# Prerequisite : Before running export_simulation, you must first compile the AMD simulation library
+#                using the 'compile_simlib' Tcl command (for more information, run 'compile_simlib -help'
+#                command in the Vivado Tcl shell). After compiling the library, specify the -lib_map_path
+#                switch with the directory path where the library is created while generating the script
+#                with export_simulation.
+#
+#                Alternatively, you can set the library path by setting the following project property:-
+#
+#                 set_property compxlib.<simulator>_compiled_library_dir <path> [current_project]
+#
+#                You can also point to the simulation library by either setting the 'lib_map_path' global
+#                variable in this script or specify it with the '-lib_map_path' switch while executing this
+#                script (type 'clk_wiz_0.sh -help' for more information).
+#
+#                Note: For pure RTL based designs, the -lib_map_path switch can be specified later with the
+#                generated script, but if design is targetted for system simulation containing SystemC/C++/C
+#                sources, then the library path MUST be specified upfront when calling export_simulation.
+#
+#                For more information, refer 'Vivado Design Suite User Guide:Logic simulation (UG900)'
+#
+#**********************************************************************************************************
+
+# catch pipeline exit status
+set -Eeuo pipefail
+
+# script info
+echo -e "clk_wiz_0.sh - Script generated by export_simulation (Vivado v2024.1 (64-bit)-id)\n"
+
+# main steps
+run()
+{
+  check_args $*
+  setup
+  if [[ ($b_step == 1) ]]; then
+    case $step in
+      "compile" )
+       init_lib
+       compile
+      ;;
+      "simulate" )
+       simulate
+      ;;
+      * )
+        echo -e "ERROR: Invalid or missing step '$step' (type \"./clk_wiz_0.sh -help\" for more information)\n"
+        exit 1
+      esac
+  else
+    init_lib
+    compile
+    simulate
+  fi
+}
+
+# RUN_STEP: <compile>
+compile()
+{
+  runvsimsa -do "do {compile.do}" 2>&1 | tee -a compile.log
+}
+
+# RUN_STEP: <simulate>
+simulate()
+{
+  runvsimsa -l simulate.log -do "do {simulate.do}"
+}
+
+# STEP: setup
+setup()
+{
+  # delete previous files for a clean rerun
+  if [[ ($b_reset_run == 1) ]]; then
+    reset_run
+    echo -e "INFO: Simulation run files deleted.\n"
+    exit 0
+  fi
+
+ # delete previous log files
+  if [[ ($b_reset_log == 1) ]]; then
+    reset_log
+    echo -e "INFO: Simulation run log files deleted.\n"
+    exit 0
+  fi
+
+  # add any setup/initialization commands here:-
+
+  # <user specific commands>
+
+}
+
+# simulator index file/library directory processing
+init_lib()
+{
+  if [[ ($b_keep_index == 1) ]]; then
+    # keep previous design library mappings
+    true
+  else
+    # map simulator index file
+    map_setup_file
+  fi
+}
+
+# map library.cfg file
+map_setup_file()
+{
+  file="library.cfg"
+  if [[ ($lib_map_path != "") && !(-e $lib_map_path) ]]; then
+    echo -e "ERROR: Compiled simulation library directory path not specified or does not exist (type "./top.sh -help" for more information)\n"
+  fi
+  if [[ ($lib_map_path != "") ]]; then
+    src_file="$lib_map_path/$file"
+    if [[ -e $src_file ]]; then
+      vmap -link $lib_map_path
+    fi
+  fi
+}
+
+# delete generated data from the previous run
+reset_run()
+{
+  files_to_remove=(compile.log elaboration.log simulate.log dataset.asdb work riviera)
+  for (( i=0; i<${#files_to_remove[*]}; i++ )); do
+    file="${files_to_remove[i]}"
+    if [[ -e $file ]]; then
+      rm -rf $file
+    fi
+  done
+}
+
+# delete generated log files from the previous run
+reset_log()
+{
+  files_to_remove=(compile.log elaboration.log simulate.log dataset.asdb)
+  for (( i=0; i<${#files_to_remove[*]}; i++ )); do
+    file="${files_to_remove[i]}"
+    if [[ -e $file ]]; then
+      rm -rf $file
+    fi
+  done
+}
+
+# check switch argument value
+check_arg_value()
+{
+  if [[ ($1 == "-step") && (($2 != "compile") && ($2 != "simulate")) ]];then
+    echo -e "ERROR: Invalid or missing step '$2' (type \"./top.sh -help\" for more information)\n"
+    exit 1
+  fi
+
+  if [[ ($1 == "-lib_map_path") && ($2 == "") ]];then
+    echo -e "ERROR: Simulation library directory path not specified (type \"./clk_wiz_0.sh -help\" for more information)\n"
+    exit 1
+  fi
+}
+
+# check command line arguments
+check_args()
+{
+  arg_count=$#
+  if [[ ("$#" == 1) && (("$1" == "-help") || ("$1" == "-h")) ]]; then
+    usage
+  fi
+  while [[ "$#" -gt 0 ]]; do
+    case $1 in
+      -step)          check_arg_value $1 $2;step=$2;         b_step=1;         shift;;
+      -lib_map_path)  check_arg_value $1 $2;lib_map_path=$2; b_lib_map_path=1; shift;;
+      -gen_bypass)    b_gen_bypass=1    ;;
+      -reset_run)     b_reset_run=1     ;;
+      -reset_log)     b_reset_log=1     ;;
+      -keep_index)    b_keep_index=1    ;;
+      -noclean_files) b_noclean_files=1 ;;
+      -help|-h)       ;;
+      *) echo -e "ERROR: Invalid option specified '$1' (type "./top.sh -help" for more information)\n"; exit 1 ;;
+    esac
+     shift
+  done
+
+  # -reset_run is not applicable with other switches
+  if [[ ("$arg_count" -gt 1) && ($b_reset_run == 1) ]]; then
+    echo -e "ERROR: -reset_run switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n"
+    exit 1
+  fi
+
+  # -reset_log is not applicable with other switches
+  if [[ ("$arg_count" -gt 1) && ($b_reset_log == 1) ]]; then
+    echo -e "ERROR: -reset_log switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n"
+    exit 1
+  fi
+
+  # -keep_index is not applicable with other switches
+  if [[ ("$arg_count" -gt 1) && ($b_keep_index == 1) ]]; then
+    echo -e "ERROR: -keep_index switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n"
+    exit 1
+  fi
+
+  # -noclean_files is not applicable with other switches
+  if [[ ("$arg_count" -gt 1) && ($b_noclean_files == 1) ]]; then
+    echo -e "ERROR: -noclean_files switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n"
+    exit 1
+  fi
+}
+
+# script usage
+usage()
+{
+  msg="Usage: clk_wiz_0.sh [-help]\n\
+Usage: clk_wiz_0.sh [-step]\n\
+Usage: clk_wiz_0.sh [-lib_map_path]\n\
+Usage: clk_wiz_0.sh [-reset_run]\n\
+Usage: clk_wiz_0.sh [-reset_log]\n\
+Usage: clk_wiz_0.sh [-keep_index]\n\
+Usage: clk_wiz_0.sh [-noclean_files]\n\n\
+[-help] -- Print help information for this script\n\n\
+[-step <name>] -- Execute specified step (compile, simulate)\n\n\
+[-lib_map_path <path>] -- Compiled simulation library directory path. The simulation library is compiled\n\
+using the compile_simlib tcl command. Please see 'compile_simlib -help' for more information.\n\n\
+[-reset_run] -- Delete simulator generated data files from the previous run and recreate simulator setup\n\
+file/library mappings for a clean run. This switch will not execute steps defined in the script.\n\n\
+NOTE: To keep simulator index file settings from the previous run, use the -keep_index switch\n\
+NOTE: To regenerate simulator index file but keep the simulator generated files, use the -noclean_files switch\n\n\
+[-reset_log] -- Delete simulator generated log files from the previous run\n\n\
+[-keep_index] -- Keep simulator index file settings from the previous run\n\n\
+[-noclean_files] -- Reset previous run, but do not remove simulator generated files from the previous run\n"
+  echo -e $msg
+  exit 0
+}
+
+# initialize globals
+step=""
+lib_map_path=""
+b_step=0
+b_lib_map_path=0
+b_gen_bypass=0
+b_reset_run=0
+b_reset_log=0
+b_keep_index=0
+b_noclean_files=0
+
+# launch script
+run $*
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/riviera/clk_wiz_0.udo b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/riviera/clk_wiz_0.udo
new file mode 100644
index 0000000..e69de29
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/riviera/compile.do b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/riviera/compile.do
new file mode 100644
index 0000000..25d9ce9
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/riviera/compile.do
@@ -0,0 +1,18 @@
+transcript off
+onbreak {quit -force}
+onerror {quit -force}
+transcript on
+
+vlib work
+vlib riviera/xil_defaultlib
+
+vmap xil_defaultlib riviera/xil_defaultlib
+
+vlog -work xil_defaultlib  -incr -v2k5 "+incdir+../../../ipstatic" -l xil_defaultlib \
+"../../../../../src/ip/clk_wiz_0/clk_wiz_0_clk_wiz.v" \
+"../../../../../src/ip/clk_wiz_0/clk_wiz_0.v" \
+
+
+vlog -work xil_defaultlib \
+"glbl.v"
+
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/riviera/file_info.txt b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/riviera/file_info.txt
new file mode 100644
index 0000000..a75fafc
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/riviera/file_info.txt
@@ -0,0 +1,3 @@
+clk_wiz_0_clk_wiz.v,verilog,xil_defaultlib,../../../../../src/ip/clk_wiz_0/clk_wiz_0_clk_wiz.v,incdir="../../../ipstatic"incdir="../../../ipstatic"
+clk_wiz_0.v,verilog,xil_defaultlib,../../../../../src/ip/clk_wiz_0/clk_wiz_0.v,incdir="../../../ipstatic"incdir="../../../ipstatic"
+glbl.v,Verilog,xil_defaultlib,glbl.v
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/riviera/glbl.v b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/riviera/glbl.v
new file mode 100755
index 0000000..ed3b249
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/riviera/glbl.v
@@ -0,0 +1,84 @@
+// $Header: /devl/xcs/repo/env/Databases/CAEInterfaces/verunilibs/data/glbl.v,v 1.14 2010/10/28 20:44:00 fphillip Exp $
+`ifndef GLBL
+`define GLBL
+`timescale  1 ps / 1 ps
+
+module glbl ();
+
+    parameter ROC_WIDTH = 100000;
+    parameter TOC_WIDTH = 0;
+    parameter GRES_WIDTH = 10000;
+    parameter GRES_START = 10000;
+
+//--------   STARTUP Globals --------------
+    wire GSR;
+    wire GTS;
+    wire GWE;
+    wire PRLD;
+    wire GRESTORE;
+    tri1 p_up_tmp;
+    tri (weak1, strong0) PLL_LOCKG = p_up_tmp;
+
+    wire PROGB_GLBL;
+    wire CCLKO_GLBL;
+    wire FCSBO_GLBL;
+    wire [3:0] DO_GLBL;
+    wire [3:0] DI_GLBL;
+   
+    reg GSR_int;
+    reg GTS_int;
+    reg PRLD_int;
+    reg GRESTORE_int;
+
+//--------   JTAG Globals --------------
+    wire JTAG_TDO_GLBL;
+    wire JTAG_TCK_GLBL;
+    wire JTAG_TDI_GLBL;
+    wire JTAG_TMS_GLBL;
+    wire JTAG_TRST_GLBL;
+
+    reg JTAG_CAPTURE_GLBL;
+    reg JTAG_RESET_GLBL;
+    reg JTAG_SHIFT_GLBL;
+    reg JTAG_UPDATE_GLBL;
+    reg JTAG_RUNTEST_GLBL;
+
+    reg JTAG_SEL1_GLBL = 0;
+    reg JTAG_SEL2_GLBL = 0 ;
+    reg JTAG_SEL3_GLBL = 0;
+    reg JTAG_SEL4_GLBL = 0;
+
+    reg JTAG_USER_TDO1_GLBL = 1'bz;
+    reg JTAG_USER_TDO2_GLBL = 1'bz;
+    reg JTAG_USER_TDO3_GLBL = 1'bz;
+    reg JTAG_USER_TDO4_GLBL = 1'bz;
+
+    assign (strong1, weak0) GSR = GSR_int;
+    assign (strong1, weak0) GTS = GTS_int;
+    assign (weak1, weak0) PRLD = PRLD_int;
+    assign (strong1, weak0) GRESTORE = GRESTORE_int;
+
+    initial begin
+	GSR_int = 1'b1;
+	PRLD_int = 1'b1;
+	#(ROC_WIDTH)
+	GSR_int = 1'b0;
+	PRLD_int = 1'b0;
+    end
+
+    initial begin
+	GTS_int = 1'b1;
+	#(TOC_WIDTH)
+	GTS_int = 1'b0;
+    end
+
+    initial begin 
+	GRESTORE_int = 1'b0;
+	#(GRES_START);
+	GRESTORE_int = 1'b1;
+	#(GRES_WIDTH);
+	GRESTORE_int = 1'b0;
+    end
+
+endmodule
+`endif
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/riviera/simulate.do b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/riviera/simulate.do
new file mode 100644
index 0000000..5dfa2cc
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/riviera/simulate.do
@@ -0,0 +1,14 @@
+transcript off
+onbreak {quit -force}
+onerror {quit -force}
+transcript on
+
+asim +access +r +m+clk_wiz_0  -L xil_defaultlib -L unisims_ver -L unimacro_ver -L secureip -O5 xil_defaultlib.clk_wiz_0 xil_defaultlib.glbl
+
+do {clk_wiz_0.udo}
+
+run 1000ns
+
+endsim
+
+quit -force
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/vcs/README.txt b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/vcs/README.txt
new file mode 100644
index 0000000..9e170f5
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/vcs/README.txt
@@ -0,0 +1,50 @@
+################################################################################
+# Vivado (TM) v2024.1 (64-bit)
+#
+# README.txt: Please read the sections below to understand the steps required to
+#             run the exported script and how to fetch design source file details
+#             from the file_info.txt file.
+#
+# Generated by export_simulation on Wed Feb 26 12:12:47 CET 2025
+#
+################################################################################
+
+1. Steps to run the generated simulation script
+
+From the shell prompt in the current directory, issue the following command:-
+
+./clk_wiz_0.sh
+
+This command will launch the 'compile', 'elaborate' and 'simulate' functions
+implemented in the script file for the 3-step flow. These functions are called
+from the main 'run' function in the script file.
+
+The 'run' function first calls the 'check_args' function, the purpose of which
+is to verify the generated script arguments and print error if incorrect switch
+is specified. The 'run' function then calls the 'setup' function, the purpose of
+which is to specify custom or initialization commands. The function also executes
+following sub-functions:-
+'reset_run' if -reset_run switch is specified.
+'reset_log' if -reset_log switch is specified.
+
+The purpose of 'reset_run' function' is to delete the simulator generated design
+data from the previous run and the purpose of 'reset_log' function' is to delete
+the simulator generated log files.
+
+The 'run' function then calls the 'init_lib' function, the purpose of which is to
+create design library mappings and directories. This function is called before the
+'compile' step. By default, if '-step' switch is specified with the script then the
+script will execute that specfic step, else it will execute all steps applicable
+for the target simulator.
+
+For more information on the script, please type './clk_wiz_0.sh -help'
+
+2. Design source file information
+
+export_simulation generates a 'file_info.txt' file that contains design file information
+based on the compile order when export_simulation was executed from Vivado. The file
+contains information about the file name, type, library it is compiled into, whether
+it is part of the IP, associated library, file path information in a comma separated
+format. This file can be parsed to extract the required information for generating a
+custom script or can be read from verification test infra.
+
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/vcs/clk_wiz_0.sh b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/vcs/clk_wiz_0.sh
new file mode 100755
index 0000000..b578bb1
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/vcs/clk_wiz_0.sh
@@ -0,0 +1,337 @@
+#!/usr/bin/env bash
+#**********************************************************************************************************
+# Vivado (TM) v2024.1 (64-bit)
+#
+# Script generated by Vivado on Wed Feb 26 12:12:47 CET 2025
+# SW Build 5076996 on Wed May 22 18:36:09 MDT 2024
+#
+# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+# Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved. 
+#
+# Filename     : clk_wiz_0.sh
+# Simulator    : Synopsys Verilog Compiler Simulator
+# Description  : Simulation script generated by export_simulation Tcl command
+# Purpose      : Run 'compile', 'elaborate', 'simulate' steps for compiling, elaborating and simulating the
+#                design. The script will copy the library mapping file from the compiled library directory,
+#                create design library directories and library mappings in the mapping file.
+#
+# Usage        : clk_wiz_0.sh
+#                clk_wiz_0.sh [-lib_map_path] [-step] [-keep_index] [-noclean_files]*
+#                clk_wiz_0.sh [-reset_run]
+#                clk_wiz_0.sh [-reset_log]
+#                clk_wiz_0.sh [-help]
+#
+#               * The -noclean_files switch is deprecated and will not peform any function (by default, the
+#                 simulator generated files will not be removed unless -reset_run switch is used)
+#
+# Prerequisite : Before running export_simulation, you must first compile the AMD simulation library
+#                using the 'compile_simlib' Tcl command (for more information, run 'compile_simlib -help'
+#                command in the Vivado Tcl shell). After compiling the library, specify the -lib_map_path
+#                switch with the directory path where the library is created while generating the script
+#                with export_simulation.
+#
+#                Alternatively, you can set the library path by setting the following project property:-
+#
+#                 set_property compxlib.<simulator>_compiled_library_dir <path> [current_project]
+#
+#                You can also point to the simulation library by either setting the 'lib_map_path' global
+#                variable in this script or specify it with the '-lib_map_path' switch while executing this
+#                script (type 'clk_wiz_0.sh -help' for more information).
+#
+#                Note: For pure RTL based designs, the -lib_map_path switch can be specified later with the
+#                generated script, but if design is targetted for system simulation containing SystemC/C++/C
+#                sources, then the library path MUST be specified upfront when calling export_simulation.
+#
+#                For more information, refer 'Vivado Design Suite User Guide:Logic simulation (UG900)'
+#
+#**********************************************************************************************************
+
+# catch pipeline exit status
+set -Eeuo pipefail
+
+# set vhdlan compile options
+vhdlan_opts="-full64 -l .tmp_log"
+
+# set vlogan compile options
+vlogan_opts="-full64 -l .tmp_log"
+
+# set vcs elaboration options
+vcs_elab_opts="-full64 -debug_acc+pp+dmptf -t ps -licqueue -l elaborate.log"
+
+# set vcs simulation options
+vcs_sim_opts="-ucli -licqueue -l simulate.log "
+
+# set design libraries
+design_libs=(xil_defaultlib)
+
+# simulation root library directory
+sim_lib_dir="vcs_lib"
+
+# script info
+echo -e "clk_wiz_0.sh - Script generated by export_simulation (Vivado v2024.1 (64-bit)-id)\n"
+
+# main steps
+run()
+{
+  check_args $*
+  setup
+  if [[ ($b_step == 1) ]]; then
+    case $step in
+      "compile" )
+       init_lib
+       compile
+      ;;
+      "elaborate" )
+       elaborate
+      ;;
+      "simulate" )
+       simulate
+      ;;
+      * )
+        echo -e "ERROR: Invalid or missing step '$step' (type \"./clk_wiz_0.sh -help\" for more information)\n"
+        exit 1
+      esac
+  else
+    init_lib
+    compile
+    elaborate
+    simulate
+  fi
+}
+
+# RUN_STEP: <compile>
+compile()
+{
+  vlogan -work xil_defaultlib $vlogan_opts +v2k +incdir+"../../../ipstatic" \
+  "../../../../../src/ip/clk_wiz_0/clk_wiz_0_clk_wiz.v" \
+  "../../../../../src/ip/clk_wiz_0/clk_wiz_0.v" \
+  2>&1 | tee compile.log; cat .tmp_log > vlogan.log 2>/dev/null
+
+  vlogan -work xil_defaultlib $vlogan_opts +v2k \
+  glbl.v \
+  2>&1 | tee -a compile.log; cat .tmp_log >> vlogan.log 2>/dev/null
+}
+
+# RUN_STEP: <elaborate>
+elaborate()
+{
+  vcs $vcs_elab_opts xil_defaultlib.clk_wiz_0 xil_defaultlib.glbl -o clk_wiz_0_simv
+}
+
+# RUN_STEP: <simulate>
+simulate()
+{
+  ./clk_wiz_0_simv $vcs_sim_opts -do simulate.do
+}
+
+# STEP: setup
+setup()
+{
+  # delete previous files for a clean rerun
+  if [[ ($b_reset_run == 1) ]]; then
+    reset_run
+    echo -e "INFO: Simulation run files deleted.\n"
+    exit 0
+  fi
+
+ # delete previous log files
+  if [[ ($b_reset_log == 1) ]]; then
+    reset_log
+    echo -e "INFO: Simulation run log files deleted.\n"
+    exit 0
+  fi
+
+  # add any setup/initialization commands here:-
+
+  # <user specific commands>
+
+}
+
+# simulator index file/library directory processing
+init_lib()
+{
+  if [[ ($b_keep_index == 1) ]]; then
+    # keep previous design library mappings
+    true
+  else
+    # define design library mappings
+    create_lib_mappings
+  fi
+
+  if [[ ($b_keep_index == 1) ]]; then
+    # do not recreate design library directories
+    true
+  else
+    # create design library directories
+    create_lib_dir
+  fi
+}
+
+# define design library mappings
+create_lib_mappings()
+{
+  file="synopsys_sim.setup"
+  if [[ -e $file ]]; then
+    if [[ ($lib_map_path == "") ]]; then
+      return
+    else
+      rm -rf $file
+    fi
+  fi
+
+  touch $file
+
+  if [[ ($lib_map_path != "") && !(-e $lib_map_path) ]]; then
+    echo -e "ERROR: Compiled simulation library directory path not specified or does not exist (type "./top.sh -help" for more information)\n"
+  fi
+
+  for (( i=0; i<${#design_libs[*]}; i++ )); do
+    lib="${design_libs[i]}"
+    mapping="$lib:$sim_lib_dir/$lib"
+    echo $mapping >> $file
+  done
+
+  if [[ ($lib_map_path != "") ]]; then
+    incl_ref="OTHERS=$lib_map_path/synopsys_sim.setup"
+    echo $incl_ref >> $file
+  fi
+}
+
+# create design library directory
+create_lib_dir()
+{
+  if [[ -e $sim_lib_dir ]]; then
+    rm -rf $sim_lib_dir
+  fi
+  for (( i=0; i<${#design_libs[*]}; i++ )); do
+    lib="${design_libs[i]}"
+    lib_dir="$sim_lib_dir/$lib"
+    if [[ ! -e $lib_dir ]]; then
+      mkdir -p $lib_dir
+    fi
+  done
+}
+
+# delete generated data from the previous run
+reset_run()
+{
+  files_to_remove=(ucli.key clk_wiz_0_simv vlogan.log vhdlan.log compile.log elaborate.log simulate.log .tmp_log .vlogansetup.env .vlogansetup.args .vcs_lib_lock scirocco_command.log lib_sc.so 64 AN.DB csrc clk_wiz_0_simv.daidir vcs_lib c.obj)
+  for (( i=0; i<${#files_to_remove[*]}; i++ )); do
+    file="${files_to_remove[i]}"
+    if [[ -e $file ]]; then
+      rm -rf $file
+    fi
+  done
+}
+
+# delete generated log files from the previous run
+reset_log()
+{
+  files_to_remove=(vlogan.log vhdlan.log compile.log elaborate.log simulate.log .tmp_log)
+  for (( i=0; i<${#files_to_remove[*]}; i++ )); do
+    file="${files_to_remove[i]}"
+    if [[ -e $file ]]; then
+      rm -rf $file
+    fi
+  done
+}
+
+# check switch argument value
+check_arg_value()
+{
+  if [[ ($1 == "-step") && (($2 != "compile") && ($2 != "elaborate") && ($2 != "simulate")) ]];then
+    echo -e "ERROR: Invalid or missing step '$2' (type \"./top.sh -help\" for more information)\n"
+    exit 1
+  fi
+
+  if [[ ($1 == "-lib_map_path") && ($2 == "") ]];then
+    echo -e "ERROR: Simulation library directory path not specified (type \"./clk_wiz_0.sh -help\" for more information)\n"
+    exit 1
+  fi
+}
+
+# check command line arguments
+check_args()
+{
+  arg_count=$#
+  if [[ ("$#" == 1) && (("$1" == "-help") || ("$1" == "-h")) ]]; then
+    usage
+  fi
+  while [[ "$#" -gt 0 ]]; do
+    case $1 in
+      -step)          check_arg_value $1 $2;step=$2;         b_step=1;         shift;;
+      -lib_map_path)  check_arg_value $1 $2;lib_map_path=$2; b_lib_map_path=1; shift;;
+      -gen_bypass)    b_gen_bypass=1    ;;
+      -reset_run)     b_reset_run=1     ;;
+      -reset_log)     b_reset_log=1     ;;
+      -keep_index)    b_keep_index=1    ;;
+      -noclean_files) b_noclean_files=1 ;;
+      -help|-h)       ;;
+      *) echo -e "ERROR: Invalid option specified '$1' (type "./top.sh -help" for more information)\n"; exit 1 ;;
+    esac
+     shift
+  done
+
+  # -reset_run is not applicable with other switches
+  if [[ ("$arg_count" -gt 1) && ($b_reset_run == 1) ]]; then
+    echo -e "ERROR: -reset_run switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n"
+    exit 1
+  fi
+
+  # -reset_log is not applicable with other switches
+  if [[ ("$arg_count" -gt 1) && ($b_reset_log == 1) ]]; then
+    echo -e "ERROR: -reset_log switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n"
+    exit 1
+  fi
+
+  # -keep_index is not applicable with other switches
+  if [[ ("$arg_count" -gt 1) && ($b_keep_index == 1) ]]; then
+    echo -e "ERROR: -keep_index switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n"
+    exit 1
+  fi
+
+  # -noclean_files is not applicable with other switches
+  if [[ ("$arg_count" -gt 1) && ($b_noclean_files == 1) ]]; then
+    echo -e "ERROR: -noclean_files switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n"
+    exit 1
+  fi
+}
+
+# script usage
+usage()
+{
+  msg="Usage: clk_wiz_0.sh [-help]\n\
+Usage: clk_wiz_0.sh [-step]\n\
+Usage: clk_wiz_0.sh [-lib_map_path]\n\
+Usage: clk_wiz_0.sh [-reset_run]\n\
+Usage: clk_wiz_0.sh [-reset_log]\n\
+Usage: clk_wiz_0.sh [-keep_index]\n\
+Usage: clk_wiz_0.sh [-noclean_files]\n\n\
+[-help] -- Print help information for this script\n\n\
+[-step <name>] -- Execute specified step (compile, elaborate, simulate)\n\n\
+[-lib_map_path <path>] -- Compiled simulation library directory path. The simulation library is compiled\n\
+using the compile_simlib tcl command. Please see 'compile_simlib -help' for more information.\n\n\
+[-reset_run] -- Delete simulator generated data files from the previous run and recreate simulator setup\n\
+file/library mappings for a clean run. This switch will not execute steps defined in the script.\n\n\
+NOTE: To keep simulator index file settings from the previous run, use the -keep_index switch\n\
+NOTE: To regenerate simulator index file but keep the simulator generated files, use the -noclean_files switch\n\n\
+[-reset_log] -- Delete simulator generated log files from the previous run\n\n\
+[-keep_index] -- Keep simulator index file settings from the previous run\n\n\
+[-noclean_files] -- Reset previous run, but do not remove simulator generated files from the previous run\n"
+  echo -e $msg
+  exit 0
+}
+
+# initialize globals
+step=""
+lib_map_path=""
+b_step=0
+b_lib_map_path=0
+b_gen_bypass=0
+b_reset_run=0
+b_reset_log=0
+b_keep_index=0
+b_noclean_files=0
+
+# launch script
+run $*
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/vcs/file_info.txt b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/vcs/file_info.txt
new file mode 100644
index 0000000..a75fafc
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/vcs/file_info.txt
@@ -0,0 +1,3 @@
+clk_wiz_0_clk_wiz.v,verilog,xil_defaultlib,../../../../../src/ip/clk_wiz_0/clk_wiz_0_clk_wiz.v,incdir="../../../ipstatic"incdir="../../../ipstatic"
+clk_wiz_0.v,verilog,xil_defaultlib,../../../../../src/ip/clk_wiz_0/clk_wiz_0.v,incdir="../../../ipstatic"incdir="../../../ipstatic"
+glbl.v,Verilog,xil_defaultlib,glbl.v
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/vcs/glbl.v b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/vcs/glbl.v
new file mode 100755
index 0000000..ed3b249
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/vcs/glbl.v
@@ -0,0 +1,84 @@
+// $Header: /devl/xcs/repo/env/Databases/CAEInterfaces/verunilibs/data/glbl.v,v 1.14 2010/10/28 20:44:00 fphillip Exp $
+`ifndef GLBL
+`define GLBL
+`timescale  1 ps / 1 ps
+
+module glbl ();
+
+    parameter ROC_WIDTH = 100000;
+    parameter TOC_WIDTH = 0;
+    parameter GRES_WIDTH = 10000;
+    parameter GRES_START = 10000;
+
+//--------   STARTUP Globals --------------
+    wire GSR;
+    wire GTS;
+    wire GWE;
+    wire PRLD;
+    wire GRESTORE;
+    tri1 p_up_tmp;
+    tri (weak1, strong0) PLL_LOCKG = p_up_tmp;
+
+    wire PROGB_GLBL;
+    wire CCLKO_GLBL;
+    wire FCSBO_GLBL;
+    wire [3:0] DO_GLBL;
+    wire [3:0] DI_GLBL;
+   
+    reg GSR_int;
+    reg GTS_int;
+    reg PRLD_int;
+    reg GRESTORE_int;
+
+//--------   JTAG Globals --------------
+    wire JTAG_TDO_GLBL;
+    wire JTAG_TCK_GLBL;
+    wire JTAG_TDI_GLBL;
+    wire JTAG_TMS_GLBL;
+    wire JTAG_TRST_GLBL;
+
+    reg JTAG_CAPTURE_GLBL;
+    reg JTAG_RESET_GLBL;
+    reg JTAG_SHIFT_GLBL;
+    reg JTAG_UPDATE_GLBL;
+    reg JTAG_RUNTEST_GLBL;
+
+    reg JTAG_SEL1_GLBL = 0;
+    reg JTAG_SEL2_GLBL = 0 ;
+    reg JTAG_SEL3_GLBL = 0;
+    reg JTAG_SEL4_GLBL = 0;
+
+    reg JTAG_USER_TDO1_GLBL = 1'bz;
+    reg JTAG_USER_TDO2_GLBL = 1'bz;
+    reg JTAG_USER_TDO3_GLBL = 1'bz;
+    reg JTAG_USER_TDO4_GLBL = 1'bz;
+
+    assign (strong1, weak0) GSR = GSR_int;
+    assign (strong1, weak0) GTS = GTS_int;
+    assign (weak1, weak0) PRLD = PRLD_int;
+    assign (strong1, weak0) GRESTORE = GRESTORE_int;
+
+    initial begin
+	GSR_int = 1'b1;
+	PRLD_int = 1'b1;
+	#(ROC_WIDTH)
+	GSR_int = 1'b0;
+	PRLD_int = 1'b0;
+    end
+
+    initial begin
+	GTS_int = 1'b1;
+	#(TOC_WIDTH)
+	GTS_int = 1'b0;
+    end
+
+    initial begin 
+	GRESTORE_int = 1'b0;
+	#(GRES_START);
+	GRESTORE_int = 1'b1;
+	#(GRES_WIDTH);
+	GRESTORE_int = 1'b0;
+    end
+
+endmodule
+`endif
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/vcs/simulate.do b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/vcs/simulate.do
new file mode 100644
index 0000000..b77c6f1
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/vcs/simulate.do
@@ -0,0 +1,2 @@
+run 1000ns
+quit
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xcelium/README.txt b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xcelium/README.txt
new file mode 100644
index 0000000..9e170f5
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xcelium/README.txt
@@ -0,0 +1,50 @@
+################################################################################
+# Vivado (TM) v2024.1 (64-bit)
+#
+# README.txt: Please read the sections below to understand the steps required to
+#             run the exported script and how to fetch design source file details
+#             from the file_info.txt file.
+#
+# Generated by export_simulation on Wed Feb 26 12:12:47 CET 2025
+#
+################################################################################
+
+1. Steps to run the generated simulation script
+
+From the shell prompt in the current directory, issue the following command:-
+
+./clk_wiz_0.sh
+
+This command will launch the 'compile', 'elaborate' and 'simulate' functions
+implemented in the script file for the 3-step flow. These functions are called
+from the main 'run' function in the script file.
+
+The 'run' function first calls the 'check_args' function, the purpose of which
+is to verify the generated script arguments and print error if incorrect switch
+is specified. The 'run' function then calls the 'setup' function, the purpose of
+which is to specify custom or initialization commands. The function also executes
+following sub-functions:-
+'reset_run' if -reset_run switch is specified.
+'reset_log' if -reset_log switch is specified.
+
+The purpose of 'reset_run' function' is to delete the simulator generated design
+data from the previous run and the purpose of 'reset_log' function' is to delete
+the simulator generated log files.
+
+The 'run' function then calls the 'init_lib' function, the purpose of which is to
+create design library mappings and directories. This function is called before the
+'compile' step. By default, if '-step' switch is specified with the script then the
+script will execute that specfic step, else it will execute all steps applicable
+for the target simulator.
+
+For more information on the script, please type './clk_wiz_0.sh -help'
+
+2. Design source file information
+
+export_simulation generates a 'file_info.txt' file that contains design file information
+based on the compile order when export_simulation was executed from Vivado. The file
+contains information about the file name, type, library it is compiled into, whether
+it is part of the IP, associated library, file path information in a comma separated
+format. This file can be parsed to extract the required information for generating a
+custom script or can be read from verification test infra.
+
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xcelium/clk_wiz_0.sh b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xcelium/clk_wiz_0.sh
new file mode 100755
index 0000000..028351f
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xcelium/clk_wiz_0.sh
@@ -0,0 +1,343 @@
+#!/usr/bin/env bash
+#**********************************************************************************************************
+# Vivado (TM) v2024.1 (64-bit)
+#
+# Script generated by Vivado on Wed Feb 26 12:12:47 CET 2025
+# SW Build 5076996 on Wed May 22 18:36:09 MDT 2024
+#
+# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+# Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved. 
+#
+# Filename     : clk_wiz_0.sh
+# Simulator    : Cadence Xcelium Parallel Simulator
+# Description  : Simulation script generated by export_simulation Tcl command
+# Purpose      : Run 'compile', 'elaborate', 'simulate' steps for compiling, elaborating and simulating the
+#                design. The script will copy the library mapping file from the compiled library directory,
+#                create design library directories and library mappings in the mapping file.
+#
+# Usage        : clk_wiz_0.sh
+#                clk_wiz_0.sh [-lib_map_path] [-step] [-keep_index] [-noclean_files]*
+#                clk_wiz_0.sh [-reset_run]
+#                clk_wiz_0.sh [-reset_log]
+#                clk_wiz_0.sh [-help]
+#
+#               * The -noclean_files switch is deprecated and will not peform any function (by default, the
+#                 simulator generated files will not be removed unless -reset_run switch is used)
+#
+# Prerequisite : Before running export_simulation, you must first compile the AMD simulation library
+#                using the 'compile_simlib' Tcl command (for more information, run 'compile_simlib -help'
+#                command in the Vivado Tcl shell). After compiling the library, specify the -lib_map_path
+#                switch with the directory path where the library is created while generating the script
+#                with export_simulation.
+#
+#                Alternatively, you can set the library path by setting the following project property:-
+#
+#                 set_property compxlib.<simulator>_compiled_library_dir <path> [current_project]
+#
+#                You can also point to the simulation library by either setting the 'lib_map_path' global
+#                variable in this script or specify it with the '-lib_map_path' switch while executing this
+#                script (type 'clk_wiz_0.sh -help' for more information).
+#
+#                Note: For pure RTL based designs, the -lib_map_path switch can be specified later with the
+#                generated script, but if design is targetted for system simulation containing SystemC/C++/C
+#                sources, then the library path MUST be specified upfront when calling export_simulation.
+#
+#                For more information, refer 'Vivado Design Suite User Guide:Logic simulation (UG900)'
+#
+#**********************************************************************************************************
+
+# catch pipeline exit status
+set -Eeuo pipefail
+
+# set xmvhdl compile options
+xmvhdl_opts="-64bit -messages -relax -logfile .tmp_log -update"
+
+# set xmvlog compile options
+xmvlog_opts="-64bit -messages -logfile .tmp_log -update"
+
+# set xmelab elaboration options
+xmelab_opts="-64bit -relax -access +rwc -namemap_mixgen -messages -logfile elaborate.log"
+
+# set xmsim simulation options
+xmsim_opts="-64bit -logfile simulate.log"
+
+# set design libraries for elaboration
+design_libs_elab="-libname xil_defaultlib -libname unisims_ver -libname unimacro_ver -libname secureip"
+
+# set design libraries
+design_libs=(simprims_ver xil_defaultlib)
+
+# simulation root library directory
+sim_lib_dir="xcelium_lib"
+
+# script info
+echo -e "clk_wiz_0.sh - Script generated by export_simulation (Vivado v2024.1 (64-bit)-id)\n"
+
+# main steps
+run()
+{
+  check_args $*
+  setup
+  if [[ ($b_step == 1) ]]; then
+    case $step in
+      "compile" )
+       init_lib
+       compile
+      ;;
+      "elaborate" )
+       elaborate
+      ;;
+      "simulate" )
+       simulate
+      ;;
+      * )
+        echo -e "ERROR: Invalid or missing step '$step' (type \"./clk_wiz_0.sh -help\" for more information)\n"
+        exit 1
+      esac
+  else
+    init_lib
+    compile
+    elaborate
+    simulate
+  fi
+}
+
+# RUN_STEP: <compile>
+compile()
+{
+  xmvlog -work xil_defaultlib $xmvlog_opts +incdir+"../../../ipstatic" \
+  "../../../../../src/ip/clk_wiz_0/clk_wiz_0_clk_wiz.v" \
+  "../../../../../src/ip/clk_wiz_0/clk_wiz_0.v" \
+  2>&1 | tee compile.log; cat .tmp_log > xmvlog.log 2>/dev/null
+
+  xmvlog -work xil_defaultlib $xmvlog_opts \
+  glbl.v \
+  2>&1 | tee -a compile.log; cat .tmp_log >> xmvlog.log 2>/dev/null
+}
+
+# RUN_STEP: <elaborate>
+elaborate()
+{
+  xmelab $xmelab_opts $design_libs_elab xil_defaultlib.clk_wiz_0 xil_defaultlib.glbl
+}
+
+# RUN_STEP: <simulate>
+simulate()
+{
+  xmsim $xmsim_opts xil_defaultlib.clk_wiz_0 -input simulate.do
+}
+
+# STEP: setup
+setup()
+{
+  # delete previous files for a clean rerun
+  if [[ ($b_reset_run == 1) ]]; then
+    reset_run
+    echo -e "INFO: Simulation run files deleted.\n"
+    exit 0
+  fi
+
+ # delete previous log files
+  if [[ ($b_reset_log == 1) ]]; then
+    reset_log
+    echo -e "INFO: Simulation run log files deleted.\n"
+    exit 0
+  fi
+
+  # add any setup/initialization commands here:-
+
+  # <user specific commands>
+
+}
+
+# simulator index file/library directory processing
+init_lib()
+{
+  if [[ ($b_keep_index == 1) ]]; then
+    # keep previous design library mappings
+    true
+  else
+    # define design library mappings
+    create_lib_mappings
+  fi
+
+  if [[ ($b_keep_index == 1) ]]; then
+    # do not recreate design library directories
+    true
+  else
+    # create design library directories
+    create_lib_dir
+  fi
+}
+
+# define design library mappings
+create_lib_mappings()
+{
+  file="hdl.var"
+  touch $file
+
+  file="cds.lib"
+  if [[ -e $file ]]; then
+    if [[ ($lib_map_path == "") ]]; then
+      return
+    else
+      rm -rf $file
+    fi
+  fi
+
+  touch $file
+
+  if [[ ($lib_map_path != "") && !(-e $lib_map_path) ]]; then
+    echo -e "ERROR: Compiled simulation library directory path not specified or does not exist (type "./top.sh -help" for more information)\n"
+  fi
+
+  if [[ ($lib_map_path != "") ]]; then
+    incl_ref="INCLUDE $lib_map_path/cds.lib"
+    echo $incl_ref >> $file
+  fi
+
+  for (( i=0; i<${#design_libs[*]}; i++ )); do
+    lib="${design_libs[i]}"
+    mapping="DEFINE $lib $sim_lib_dir/$lib"
+    echo $mapping >> $file
+  done
+}
+
+# create design library directory
+create_lib_dir()
+{
+  if [[ -e $sim_lib_dir ]]; then
+    rm -rf $sim_lib_dir
+  fi
+  for (( i=0; i<${#design_libs[*]}; i++ )); do
+    lib="${design_libs[i]}"
+    lib_dir="$sim_lib_dir/$lib"
+    if [[ ! -e $lib_dir ]]; then
+      mkdir -p $lib_dir
+    fi
+  done
+}
+
+# delete generated data from the previous run
+reset_run()
+{
+  files_to_remove=(xmvlog.log xmvhdl.log xmsc.log compile.log elaborate.log simulate.log diag_report.log xsc_report.log clk_wiz_0_sc.so .tmp_log xcelium_lib waves.shm c.obj)
+  for (( i=0; i<${#files_to_remove[*]}; i++ )); do
+    file="${files_to_remove[i]}"
+    if [[ -e $file ]]; then
+      rm -rf $file
+    fi
+  done
+}
+
+# delete generated log files from the previous run
+reset_log()
+{
+  files_to_remove=(xmvlog.log xmvhdl.log xmsc.log compile.log elaborate.log simulate.log diag_report.log xsc_report.log .tmp_log)
+  for (( i=0; i<${#files_to_remove[*]}; i++ )); do
+    file="${files_to_remove[i]}"
+    if [[ -e $file ]]; then
+      rm -rf $file
+    fi
+  done
+}
+
+# check switch argument value
+check_arg_value()
+{
+  if [[ ($1 == "-step") && (($2 != "compile") && ($2 != "elaborate") && ($2 != "simulate")) ]];then
+    echo -e "ERROR: Invalid or missing step '$2' (type \"./top.sh -help\" for more information)\n"
+    exit 1
+  fi
+
+  if [[ ($1 == "-lib_map_path") && ($2 == "") ]];then
+    echo -e "ERROR: Simulation library directory path not specified (type \"./clk_wiz_0.sh -help\" for more information)\n"
+    exit 1
+  fi
+}
+
+# check command line arguments
+check_args()
+{
+  arg_count=$#
+  if [[ ("$#" == 1) && (("$1" == "-help") || ("$1" == "-h")) ]]; then
+    usage
+  fi
+  while [[ "$#" -gt 0 ]]; do
+    case $1 in
+      -step)          check_arg_value $1 $2;step=$2;         b_step=1;         shift;;
+      -lib_map_path)  check_arg_value $1 $2;lib_map_path=$2; b_lib_map_path=1; shift;;
+      -gen_bypass)    b_gen_bypass=1    ;;
+      -reset_run)     b_reset_run=1     ;;
+      -reset_log)     b_reset_log=1     ;;
+      -keep_index)    b_keep_index=1    ;;
+      -noclean_files) b_noclean_files=1 ;;
+      -help|-h)       ;;
+      *) echo -e "ERROR: Invalid option specified '$1' (type "./top.sh -help" for more information)\n"; exit 1 ;;
+    esac
+     shift
+  done
+
+  # -reset_run is not applicable with other switches
+  if [[ ("$arg_count" -gt 1) && ($b_reset_run == 1) ]]; then
+    echo -e "ERROR: -reset_run switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n"
+    exit 1
+  fi
+
+  # -reset_log is not applicable with other switches
+  if [[ ("$arg_count" -gt 1) && ($b_reset_log == 1) ]]; then
+    echo -e "ERROR: -reset_log switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n"
+    exit 1
+  fi
+
+  # -keep_index is not applicable with other switches
+  if [[ ("$arg_count" -gt 1) && ($b_keep_index == 1) ]]; then
+    echo -e "ERROR: -keep_index switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n"
+    exit 1
+  fi
+
+  # -noclean_files is not applicable with other switches
+  if [[ ("$arg_count" -gt 1) && ($b_noclean_files == 1) ]]; then
+    echo -e "ERROR: -noclean_files switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n"
+    exit 1
+  fi
+}
+
+# script usage
+usage()
+{
+  msg="Usage: clk_wiz_0.sh [-help]\n\
+Usage: clk_wiz_0.sh [-step]\n\
+Usage: clk_wiz_0.sh [-lib_map_path]\n\
+Usage: clk_wiz_0.sh [-reset_run]\n\
+Usage: clk_wiz_0.sh [-reset_log]\n\
+Usage: clk_wiz_0.sh [-keep_index]\n\
+Usage: clk_wiz_0.sh [-noclean_files]\n\n\
+[-help] -- Print help information for this script\n\n\
+[-step <name>] -- Execute specified step (simulate)\n\n\
+[-lib_map_path <path>] -- Compiled simulation library directory path. The simulation library is compiled\n\
+using the compile_simlib tcl command. Please see 'compile_simlib -help' for more information.\n\n\
+[-reset_run] -- Delete simulator generated data files from the previous run and recreate simulator setup\n\
+file/library mappings for a clean run. This switch will not execute steps defined in the script.\n\n\
+NOTE: To keep simulator index file settings from the previous run, use the -keep_index switch\n\
+NOTE: To regenerate simulator index file but keep the simulator generated files, use the -noclean_files switch\n\n\
+[-reset_log] -- Delete simulator generated log files from the previous run\n\n\
+[-keep_index] -- Keep simulator index file settings from the previous run\n\n\
+[-noclean_files] -- Reset previous run, but do not remove simulator generated files from the previous run\n"
+  echo -e $msg
+  exit 0
+}
+
+# initialize globals
+step=""
+lib_map_path=""
+b_step=0
+b_lib_map_path=0
+b_gen_bypass=0
+b_reset_run=0
+b_reset_log=0
+b_keep_index=0
+b_noclean_files=0
+
+# launch script
+run $*
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xcelium/file_info.txt b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xcelium/file_info.txt
new file mode 100644
index 0000000..a75fafc
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xcelium/file_info.txt
@@ -0,0 +1,3 @@
+clk_wiz_0_clk_wiz.v,verilog,xil_defaultlib,../../../../../src/ip/clk_wiz_0/clk_wiz_0_clk_wiz.v,incdir="../../../ipstatic"incdir="../../../ipstatic"
+clk_wiz_0.v,verilog,xil_defaultlib,../../../../../src/ip/clk_wiz_0/clk_wiz_0.v,incdir="../../../ipstatic"incdir="../../../ipstatic"
+glbl.v,Verilog,xil_defaultlib,glbl.v
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xcelium/glbl.v b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xcelium/glbl.v
new file mode 100755
index 0000000..ed3b249
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xcelium/glbl.v
@@ -0,0 +1,84 @@
+// $Header: /devl/xcs/repo/env/Databases/CAEInterfaces/verunilibs/data/glbl.v,v 1.14 2010/10/28 20:44:00 fphillip Exp $
+`ifndef GLBL
+`define GLBL
+`timescale  1 ps / 1 ps
+
+module glbl ();
+
+    parameter ROC_WIDTH = 100000;
+    parameter TOC_WIDTH = 0;
+    parameter GRES_WIDTH = 10000;
+    parameter GRES_START = 10000;
+
+//--------   STARTUP Globals --------------
+    wire GSR;
+    wire GTS;
+    wire GWE;
+    wire PRLD;
+    wire GRESTORE;
+    tri1 p_up_tmp;
+    tri (weak1, strong0) PLL_LOCKG = p_up_tmp;
+
+    wire PROGB_GLBL;
+    wire CCLKO_GLBL;
+    wire FCSBO_GLBL;
+    wire [3:0] DO_GLBL;
+    wire [3:0] DI_GLBL;
+   
+    reg GSR_int;
+    reg GTS_int;
+    reg PRLD_int;
+    reg GRESTORE_int;
+
+//--------   JTAG Globals --------------
+    wire JTAG_TDO_GLBL;
+    wire JTAG_TCK_GLBL;
+    wire JTAG_TDI_GLBL;
+    wire JTAG_TMS_GLBL;
+    wire JTAG_TRST_GLBL;
+
+    reg JTAG_CAPTURE_GLBL;
+    reg JTAG_RESET_GLBL;
+    reg JTAG_SHIFT_GLBL;
+    reg JTAG_UPDATE_GLBL;
+    reg JTAG_RUNTEST_GLBL;
+
+    reg JTAG_SEL1_GLBL = 0;
+    reg JTAG_SEL2_GLBL = 0 ;
+    reg JTAG_SEL3_GLBL = 0;
+    reg JTAG_SEL4_GLBL = 0;
+
+    reg JTAG_USER_TDO1_GLBL = 1'bz;
+    reg JTAG_USER_TDO2_GLBL = 1'bz;
+    reg JTAG_USER_TDO3_GLBL = 1'bz;
+    reg JTAG_USER_TDO4_GLBL = 1'bz;
+
+    assign (strong1, weak0) GSR = GSR_int;
+    assign (strong1, weak0) GTS = GTS_int;
+    assign (weak1, weak0) PRLD = PRLD_int;
+    assign (strong1, weak0) GRESTORE = GRESTORE_int;
+
+    initial begin
+	GSR_int = 1'b1;
+	PRLD_int = 1'b1;
+	#(ROC_WIDTH)
+	GSR_int = 1'b0;
+	PRLD_int = 1'b0;
+    end
+
+    initial begin
+	GTS_int = 1'b1;
+	#(TOC_WIDTH)
+	GTS_int = 1'b0;
+    end
+
+    initial begin 
+	GRESTORE_int = 1'b0;
+	#(GRES_START);
+	GRESTORE_int = 1'b1;
+	#(GRES_WIDTH);
+	GRESTORE_int = 1'b0;
+    end
+
+endmodule
+`endif
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xcelium/hdl.var b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xcelium/hdl.var
new file mode 100644
index 0000000..e69de29
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xcelium/simulate.do b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xcelium/simulate.do
new file mode 100644
index 0000000..baf3d48
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xcelium/simulate.do
@@ -0,0 +1,7 @@
+set pack_assert_off {numeric_std std_logic_arith}
+
+database -open waves -into waves.shm -default
+catch {probe -create -shm -all -variables -depth 1} msg
+
+run 1000ns
+exit
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xsim/README.txt b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xsim/README.txt
new file mode 100644
index 0000000..9e170f5
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xsim/README.txt
@@ -0,0 +1,50 @@
+################################################################################
+# Vivado (TM) v2024.1 (64-bit)
+#
+# README.txt: Please read the sections below to understand the steps required to
+#             run the exported script and how to fetch design source file details
+#             from the file_info.txt file.
+#
+# Generated by export_simulation on Wed Feb 26 12:12:47 CET 2025
+#
+################################################################################
+
+1. Steps to run the generated simulation script
+
+From the shell prompt in the current directory, issue the following command:-
+
+./clk_wiz_0.sh
+
+This command will launch the 'compile', 'elaborate' and 'simulate' functions
+implemented in the script file for the 3-step flow. These functions are called
+from the main 'run' function in the script file.
+
+The 'run' function first calls the 'check_args' function, the purpose of which
+is to verify the generated script arguments and print error if incorrect switch
+is specified. The 'run' function then calls the 'setup' function, the purpose of
+which is to specify custom or initialization commands. The function also executes
+following sub-functions:-
+'reset_run' if -reset_run switch is specified.
+'reset_log' if -reset_log switch is specified.
+
+The purpose of 'reset_run' function' is to delete the simulator generated design
+data from the previous run and the purpose of 'reset_log' function' is to delete
+the simulator generated log files.
+
+The 'run' function then calls the 'init_lib' function, the purpose of which is to
+create design library mappings and directories. This function is called before the
+'compile' step. By default, if '-step' switch is specified with the script then the
+script will execute that specfic step, else it will execute all steps applicable
+for the target simulator.
+
+For more information on the script, please type './clk_wiz_0.sh -help'
+
+2. Design source file information
+
+export_simulation generates a 'file_info.txt' file that contains design file information
+based on the compile order when export_simulation was executed from Vivado. The file
+contains information about the file name, type, library it is compiled into, whether
+it is part of the IP, associated library, file path information in a comma separated
+format. This file can be parsed to extract the required information for generating a
+custom script or can be read from verification test infra.
+
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xsim/clk_wiz_0.sh b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xsim/clk_wiz_0.sh
new file mode 100755
index 0000000..10fec31
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xsim/clk_wiz_0.sh
@@ -0,0 +1,330 @@
+#!/usr/bin/env bash
+#**********************************************************************************************************
+# Vivado (TM) v2024.1 (64-bit)
+#
+# Script generated by Vivado on Wed Feb 26 12:12:47 CET 2025
+# SW Build 5076996 on Wed May 22 18:36:09 MDT 2024
+#
+# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+# Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved. 
+#
+# Filename     : clk_wiz_0.sh
+# Simulator    : AMD Vivado Simulator
+# Description  : Simulation script generated by export_simulation Tcl command
+# Purpose      : Run 'compile', 'elaborate', 'simulate' steps for compiling, elaborating and simulating the
+#                design. The script will copy the library mapping file from the compiled library directory,
+#                create design library directories and library mappings in the mapping file.
+#
+# Usage        : clk_wiz_0.sh
+#                clk_wiz_0.sh [-lib_map_path] [-step] [-keep_index] [-noclean_files]*
+#                clk_wiz_0.sh [-reset_run]
+#                clk_wiz_0.sh [-reset_log]
+#                clk_wiz_0.sh [-help]
+#
+#               * The -noclean_files switch is deprecated and will not peform any function (by default, the
+#                 simulator generated files will not be removed unless -reset_run switch is used)
+#
+#**********************************************************************************************************
+
+# catch pipeline exit status
+set -Eeuo pipefail
+
+# set xvlog options
+xvlog_opts="--incr --relax "
+
+# script info
+echo -e "clk_wiz_0.sh - Script generated by export_simulation (Vivado v2024.1 (64-bit)-id)\n"
+
+# main steps
+run()
+{
+  check_args $*
+  setup
+  if [[ ($b_step == 1) ]]; then
+    case $step in
+      "compile" )
+       init_lib
+       compile
+      ;;
+      "elaborate" )
+       elaborate
+      ;;
+      "simulate" )
+       simulate
+      ;;
+      * )
+        echo -e "ERROR: Invalid or missing step '$step' (type \"./clk_wiz_0.sh -help\" for more information)\n"
+        exit 1
+      esac
+  else
+    init_lib
+    compile
+    elaborate
+    simulate
+  fi
+}
+
+# RUN_STEP: <compile>
+compile()
+{
+  xvlog $xvlog_opts -prj vlog.prj 2>&1 | tee compile.log
+}
+
+# RUN_STEP: <elaborate>
+elaborate()
+{
+  xelab --incr --debug typical --relax --mt 8  -L xil_defaultlib -L unisims_ver -L unimacro_ver -L secureip -L xpm --snapshot clk_wiz_0 xil_defaultlib.clk_wiz_0 xil_defaultlib.glbl -log elaborate.log
+}
+
+# RUN_STEP: <simulate>
+simulate()
+{
+  xsim clk_wiz_0 -key {Behavioral:sim_1:Functional:clk_wiz_0} -tclbatch cmd.tcl -log simulate.log
+}
+
+# STEP: setup
+setup()
+{
+  # delete previous files for a clean rerun
+  if [[ ($b_reset_run == 1) ]]; then
+    reset_run
+    echo -e "INFO: Simulation run files deleted.\n"
+    exit 0
+  fi
+
+ # delete previous log files
+  if [[ ($b_reset_log == 1) ]]; then
+    reset_log
+    echo -e "INFO: Simulation run log files deleted.\n"
+    exit 0
+  fi
+
+  # add any setup/initialization commands here:-
+
+  # <user specific commands>
+
+}
+
+# simulator index file/library directory processing
+init_lib()
+{
+  if [[ ($b_keep_index == 1) ]]; then
+    # keep previous simulator index file
+    true
+  else
+    # copy simulator index file to current directory
+    copy_setup_file
+  fi
+
+  if [[ ($lib_map_path != "") ]]; then
+    ref_lib_dir=$lib_map_path
+  fi
+}
+
+# copy xsim.ini file
+copy_setup_file()
+{
+  file="xsim.ini"
+
+  if [[ ($lib_map_path == "") ]]; then
+    lib_map_path="/opt/img/Vivado2024.1/Vivado/2024.1/data/xsim"
+  fi
+
+  if [[ ($lib_map_path != "") ]]; then
+    src_file="$lib_map_path/$file"
+    if [[ -e $src_file ]]; then
+      cp $src_file .
+    fi
+
+    # map local design libraries to xsim.ini
+    map_local_libs
+  fi
+}
+
+# map local design libraries
+map_local_libs()
+{
+  updated_mappings=()
+  local_mappings=()
+
+  # local design libraries
+  local_libs=(xil_defaultlib)
+
+  if [[ 0 == ${#local_libs[@]} ]]; then
+    return
+  fi
+
+  file="xsim.ini"
+  file_backup="xsim.ini.bak"
+
+  if [[ -e $file ]]; then
+    rm -f $file_backup
+
+    # create a backup copy of the xsim.ini file
+    cp $file $file_backup
+
+    # read libraries from backup file and search in local library collection
+    while read -r line
+    do
+      IN=$line
+
+      # split mapping entry with '=' delimiter to fetch library name and mapping
+      read lib_name mapping <<<$(IFS="="; echo $IN)
+
+      # if local library found, then construct the local mapping and add to local mapping collection
+      if `echo ${local_libs[@]} | grep -wq $lib_name` ; then
+        line="$lib_name=xsim.dir/$lib_name"
+        local_mappings+=("$lib_name")
+      fi
+
+      # add to updated library mapping collection
+      updated_mappings+=("$line")
+    done < "$file_backup"
+
+    # append local libraries not found originally from xsim.ini
+    for (( i=0; i<${#local_libs[*]}; i++ )); do
+      lib_name="${local_libs[i]}"
+      if `echo ${local_mappings[@]} | grep -wvq $lib_name` ; then
+        line="$lib_name=xsim.dir/$lib_name"
+        updated_mappings+=("$line")
+      fi
+    done
+
+    # write updated mappings in xsim.ini
+    rm -f $file
+    for (( i=0; i<${#updated_mappings[*]}; i++ )); do
+      lib_name="${updated_mappings[i]}"
+      echo $lib_name >> $file
+    done
+  else
+    for (( i=0; i<${#local_libs[*]}; i++ )); do
+      lib_name="${local_libs[i]}"
+      mapping="$lib_name=xsim.dir/$lib_name"
+      echo $mapping >> $file
+    done
+  fi
+}
+
+# delete generated data from the previous run
+reset_run()
+{
+  files_to_remove=(xelab.pb xsim.jou xvhdl.log xvlog.log compile.log elaborate.log simulate.log xelab.log xsim.log run.log xvhdl.pb xvlog.pb clk_wiz_0.wdb xsim.dir libdpi.so)
+  for (( i=0; i<${#files_to_remove[*]}; i++ )); do
+    file="${files_to_remove[i]}"
+    if [[ -e $file ]]; then
+      rm -rf $file
+    fi
+  done
+}
+
+# delete generated log files from the previous run
+reset_log()
+{
+  files_to_remove=(xvhdl.log xvlog.log compile.log elaborate.log simulate.log xelab.log xsim.log run.log)
+  for (( i=0; i<${#files_to_remove[*]}; i++ )); do
+    file="${files_to_remove[i]}"
+    if [[ -e $file ]]; then
+      rm -rf $file
+    fi
+  done
+}
+
+# check switch argument value
+check_arg_value()
+{
+  if [[ ($1 == "-step") && (($2 != "compile") && ($2 != "elaborate") && ($2 != "simulate")) ]];then
+    echo -e "ERROR: Invalid or missing step '$2' (type \"./top.sh -help\" for more information)\n"
+    exit 1
+  fi
+
+  if [[ ($1 == "-lib_map_path") && ($2 == "") ]];then
+    echo -e "ERROR: Simulation library directory path not specified (type \"./clk_wiz_0.sh -help\" for more information)\n"
+    exit 1
+  fi
+}
+
+# check command line arguments
+check_args()
+{
+  arg_count=$#
+  if [[ ("$#" == 1) && (("$1" == "-help") || ("$1" == "-h")) ]]; then
+    usage
+  fi
+  while [[ "$#" -gt 0 ]]; do
+    case $1 in
+      -step)          check_arg_value $1 $2;step=$2;         b_step=1;         shift;;
+      -lib_map_path)  check_arg_value $1 $2;lib_map_path=$2; b_lib_map_path=1; shift;;
+      -gen_bypass)    b_gen_bypass=1    ;;
+      -reset_run)     b_reset_run=1     ;;
+      -reset_log)     b_reset_log=1     ;;
+      -keep_index)    b_keep_index=1    ;;
+      -noclean_files) b_noclean_files=1 ;;
+      -help|-h)       ;;
+      *) echo -e "ERROR: Invalid option specified '$1' (type "./top.sh -help" for more information)\n"; exit 1 ;;
+    esac
+     shift
+  done
+
+  # -reset_run is not applicable with other switches
+  if [[ ("$arg_count" -gt 1) && ($b_reset_run == 1) ]]; then
+    echo -e "ERROR: -reset_run switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n"
+    exit 1
+  fi
+
+  # -reset_log is not applicable with other switches
+  if [[ ("$arg_count" -gt 1) && ($b_reset_log == 1) ]]; then
+    echo -e "ERROR: -reset_log switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n"
+    exit 1
+  fi
+
+  # -keep_index is not applicable with other switches
+  if [[ ("$arg_count" -gt 1) && ($b_keep_index == 1) ]]; then
+    echo -e "ERROR: -keep_index switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n"
+    exit 1
+  fi
+
+  # -noclean_files is not applicable with other switches
+  if [[ ("$arg_count" -gt 1) && ($b_noclean_files == 1) ]]; then
+    echo -e "ERROR: -noclean_files switch is not applicable with other switches (type \"./top.sh -help\" for more information)\n"
+    exit 1
+  fi
+}
+
+# script usage
+usage()
+{
+  msg="Usage: clk_wiz_0.sh [-help]\n\
+Usage: clk_wiz_0.sh [-step]\n\
+Usage: clk_wiz_0.sh [-lib_map_path]\n\
+Usage: clk_wiz_0.sh [-reset_run]\n\
+Usage: clk_wiz_0.sh [-reset_log]\n\
+Usage: clk_wiz_0.sh [-keep_index]\n\
+Usage: clk_wiz_0.sh [-noclean_files]\n\n\
+[-help] -- Print help information for this script\n\n\
+[-step <name>] -- Execute specified step (compile, elaborate, simulate)\n\n\
+[-lib_map_path <path>] -- Compiled simulation library directory path. The simulation library is compiled\n\
+using the compile_simlib tcl command. Please see 'compile_simlib -help' for more information.\n\n\
+[-reset_run] -- Delete simulator generated data files from the previous run and recreate simulator setup\n\
+file/library mappings for a clean run. This switch will not execute steps defined in the script.\n\n\
+NOTE: To keep simulator index file settings from the previous run, use the -keep_index switch\n\
+NOTE: To regenerate simulator index file but keep the simulator generated files, use the -noclean_files switch\n\n\
+[-reset_log] -- Delete simulator generated log files from the previous run\n\n\
+[-keep_index] -- Keep simulator index file settings from the previous run\n\n\
+[-noclean_files] -- Reset previous run, but do not remove simulator generated files from the previous run\n"
+  echo -e $msg
+  exit 0
+}
+
+# initialize globals
+step=""
+lib_map_path=""
+b_step=0
+b_lib_map_path=0
+b_gen_bypass=0
+b_reset_run=0
+b_reset_log=0
+b_keep_index=0
+b_noclean_files=0
+
+# launch script
+run $*
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xsim/cmd.tcl b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xsim/cmd.tcl
new file mode 100644
index 0000000..6ac0dc8
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xsim/cmd.tcl
@@ -0,0 +1,12 @@
+set curr_wave [current_wave_config]
+if { [string length $curr_wave] == 0 } {
+  if { [llength [get_objects]] > 0} {
+    add_wave /
+    set_property needs_save false [current_wave_config]
+  } else {
+     send_msg_id Add_Wave-1 WARNING "No top level signals found. Simulator will start without a wave window. If you want to open a wave window go to 'File->New Waveform Configuration' or type 'create_wave_config' in the TCL console."
+  }
+}
+
+run 1000ns
+quit
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xsim/file_info.txt b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xsim/file_info.txt
new file mode 100644
index 0000000..a75fafc
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xsim/file_info.txt
@@ -0,0 +1,3 @@
+clk_wiz_0_clk_wiz.v,verilog,xil_defaultlib,../../../../../src/ip/clk_wiz_0/clk_wiz_0_clk_wiz.v,incdir="../../../ipstatic"incdir="../../../ipstatic"
+clk_wiz_0.v,verilog,xil_defaultlib,../../../../../src/ip/clk_wiz_0/clk_wiz_0.v,incdir="../../../ipstatic"incdir="../../../ipstatic"
+glbl.v,Verilog,xil_defaultlib,glbl.v
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xsim/glbl.v b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xsim/glbl.v
new file mode 100755
index 0000000..ed3b249
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xsim/glbl.v
@@ -0,0 +1,84 @@
+// $Header: /devl/xcs/repo/env/Databases/CAEInterfaces/verunilibs/data/glbl.v,v 1.14 2010/10/28 20:44:00 fphillip Exp $
+`ifndef GLBL
+`define GLBL
+`timescale  1 ps / 1 ps
+
+module glbl ();
+
+    parameter ROC_WIDTH = 100000;
+    parameter TOC_WIDTH = 0;
+    parameter GRES_WIDTH = 10000;
+    parameter GRES_START = 10000;
+
+//--------   STARTUP Globals --------------
+    wire GSR;
+    wire GTS;
+    wire GWE;
+    wire PRLD;
+    wire GRESTORE;
+    tri1 p_up_tmp;
+    tri (weak1, strong0) PLL_LOCKG = p_up_tmp;
+
+    wire PROGB_GLBL;
+    wire CCLKO_GLBL;
+    wire FCSBO_GLBL;
+    wire [3:0] DO_GLBL;
+    wire [3:0] DI_GLBL;
+   
+    reg GSR_int;
+    reg GTS_int;
+    reg PRLD_int;
+    reg GRESTORE_int;
+
+//--------   JTAG Globals --------------
+    wire JTAG_TDO_GLBL;
+    wire JTAG_TCK_GLBL;
+    wire JTAG_TDI_GLBL;
+    wire JTAG_TMS_GLBL;
+    wire JTAG_TRST_GLBL;
+
+    reg JTAG_CAPTURE_GLBL;
+    reg JTAG_RESET_GLBL;
+    reg JTAG_SHIFT_GLBL;
+    reg JTAG_UPDATE_GLBL;
+    reg JTAG_RUNTEST_GLBL;
+
+    reg JTAG_SEL1_GLBL = 0;
+    reg JTAG_SEL2_GLBL = 0 ;
+    reg JTAG_SEL3_GLBL = 0;
+    reg JTAG_SEL4_GLBL = 0;
+
+    reg JTAG_USER_TDO1_GLBL = 1'bz;
+    reg JTAG_USER_TDO2_GLBL = 1'bz;
+    reg JTAG_USER_TDO3_GLBL = 1'bz;
+    reg JTAG_USER_TDO4_GLBL = 1'bz;
+
+    assign (strong1, weak0) GSR = GSR_int;
+    assign (strong1, weak0) GTS = GTS_int;
+    assign (weak1, weak0) PRLD = PRLD_int;
+    assign (strong1, weak0) GRESTORE = GRESTORE_int;
+
+    initial begin
+	GSR_int = 1'b1;
+	PRLD_int = 1'b1;
+	#(ROC_WIDTH)
+	GSR_int = 1'b0;
+	PRLD_int = 1'b0;
+    end
+
+    initial begin
+	GTS_int = 1'b1;
+	#(TOC_WIDTH)
+	GTS_int = 1'b0;
+    end
+
+    initial begin 
+	GRESTORE_int = 1'b0;
+	#(GRES_START);
+	GRESTORE_int = 1'b1;
+	#(GRES_WIDTH);
+	GRESTORE_int = 1'b0;
+    end
+
+endmodule
+`endif
diff --git a/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xsim/vlog.prj b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xsim/vlog.prj
new file mode 100644
index 0000000..52f6000
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xsim/vlog.prj
@@ -0,0 +1,8 @@
+verilog xil_defaultlib --include "../../../ipstatic" \
+"../../../../../src/ip/clk_wiz_0/clk_wiz_0_clk_wiz.v" \
+"../../../../../src/ip/clk_wiz_0/clk_wiz_0.v" \
+
+verilog xil_defaultlib "glbl.v"
+
+# Do not sort compile order
+nosort
diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/compile.log b/proj/AudioProc.sim/sim_1/behav/xsim/compile.log
new file mode 100644
index 0000000..8969597
--- /dev/null
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/compile.log
@@ -0,0 +1,6 @@
+INFO: [VRFC 10-163] Analyzing VHDL file "/homes/j23meneg/MEDCON/tp-filtre-etudiant-j23meneg/src/hdl/controlUnit.vhd" into library xil_defaultlib
+INFO: [VRFC 10-3107] analyzing entity 'controlUnit'
+INFO: [VRFC 10-163] Analyzing VHDL file "/homes/j23meneg/MEDCON/tp-filtre-etudiant-j23meneg/src/hdl/firUnit.vhd" into library xil_defaultlib
+INFO: [VRFC 10-3107] analyzing entity 'firUnit'
+INFO: [VRFC 10-163] Analyzing VHDL file "/homes/j23meneg/MEDCON/tp-filtre-etudiant-j23meneg/src/hdl/tb_firUnit.vhd" into library xil_defaultlib
+INFO: [VRFC 10-3107] analyzing entity 'tb_firUnit'
diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/compile.sh b/proj/AudioProc.sim/sim_1/behav/xsim/compile.sh
new file mode 100755
index 0000000..27476f9
--- /dev/null
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/compile.sh
@@ -0,0 +1,28 @@
+#!/usr/bin/env bash
+# ****************************************************************************
+# Vivado (TM) v2024.1 (64-bit)
+#
+# Filename    : compile.sh
+# Simulator   : AMD Vivado Simulator
+# Description : Script for compiling the simulation design source files
+#
+# Generated by Vivado on Wed Feb 26 12:23:43 CET 2025
+# SW Build 5076996 on Wed May 22 18:36:09 MDT 2024
+#
+# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+# Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
+#
+# usage: compile.sh
+#
+# ****************************************************************************
+set -Eeuo pipefail
+# compile Verilog/System Verilog design sources
+echo "xvlog --incr --relax -prj tb_firUnit_vlog.prj"
+xvlog --incr --relax -prj tb_firUnit_vlog.prj 2>&1 | tee compile.log
+
+# compile VHDL design sources
+echo "xvhdl --incr --relax -prj tb_firUnit_vhdl.prj"
+xvhdl --incr --relax -prj tb_firUnit_vhdl.prj 2>&1 | tee -a compile.log
+
+echo "Waiting for jobs to finish..."
+echo "No pending jobs, compilation finished."
diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/elaborate.log b/proj/AudioProc.sim/sim_1/behav/xsim/elaborate.log
new file mode 100644
index 0000000..690fd0d
--- /dev/null
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/elaborate.log
@@ -0,0 +1,49 @@
+Vivado Simulator v2024.1
+Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
+Running: /opt/img/Vivado2024.1/Vivado/2024.1/bin/unwrapped/lnx64.o/xelab --incr --debug typical --relax --mt 8 -L xil_defaultlib -L unisims_ver -L unimacro_ver -L secureip -L xpm --snapshot tb_firUnit_behav xil_defaultlib.tb_firUnit xil_defaultlib.glbl -log elaborate.log 
+Using 8 slave threads.
+Starting static elaboration
+Pass Through NonSizing Optimizer
+WARNING: [VRFC 10-3091] actual bit length 3 differs from formal bit length 4 for port 'CO' [/homes/j23meneg/MEDCON/tp-filtre-etudiant-j23meneg/src/hdl/processingUnitIP.v:1322]
+WARNING: [VRFC 10-3091] actual bit length 2 differs from formal bit length 4 for port 'O' [/homes/j23meneg/MEDCON/tp-filtre-etudiant-j23meneg/src/hdl/processingUnitIP.v:1325]
+WARNING: [VRFC 10-3091] actual bit length 2 differs from formal bit length 4 for port 'CO' [/homes/j23meneg/MEDCON/tp-filtre-etudiant-j23meneg/src/hdl/processingUnitIP.v:1329]
+WARNING: [VRFC 10-3091] actual bit length 3 differs from formal bit length 4 for port 'O' [/homes/j23meneg/MEDCON/tp-filtre-etudiant-j23meneg/src/hdl/processingUnitIP.v:1332]
+WARNING: [VRFC 10-3091] actual bit length 3 differs from formal bit length 4 for port 'CO' [/homes/j23meneg/MEDCON/tp-filtre-etudiant-j23meneg/src/hdl/processingUnitIP.v:1386]
+WARNING: [VRFC 10-3091] actual bit length 2 differs from formal bit length 4 for port 'CO' [/homes/j23meneg/MEDCON/tp-filtre-etudiant-j23meneg/src/hdl/processingUnitIP.v:1403]
+WARNING: [VRFC 10-3091] actual bit length 3 differs from formal bit length 4 for port 'O' [/homes/j23meneg/MEDCON/tp-filtre-etudiant-j23meneg/src/hdl/processingUnitIP.v:1406]
+WARNING: [VRFC 10-3091] actual bit length 2 differs from formal bit length 4 for port 'CO' [/homes/j23meneg/MEDCON/tp-filtre-etudiant-j23meneg/src/hdl/processingUnitIP.v:3161]
+WARNING: [VRFC 10-3091] actual bit length 3 differs from formal bit length 4 for port 'O' [/homes/j23meneg/MEDCON/tp-filtre-etudiant-j23meneg/src/hdl/processingUnitIP.v:3164]
+Completed static elaboration
+Starting simulation data flow analysis
+Completed simulation data flow analysis
+Time Resolution for simulation is 1ps
+Compiling package std.standard
+Compiling package std.textio
+Compiling package ieee.std_logic_1164
+Compiling package ieee.numeric_std
+Compiling package vl.vl_types
+Compiling module xil_defaultlib.glbl
+Compiling architecture archi_operativeunit of entity xil_defaultlib.controlUnit [controlunit_default]
+Compiling module unisims_ver.GND
+Compiling module unisims_ver.BUFG
+Compiling module unisims_ver.IBUF
+Compiling module unisims_ver.OBUF
+Compiling module unisims_ver.x_lut3_mux8
+Compiling module unisims_ver.LUT3
+Compiling module unisims_ver.x_lut2_mux4
+Compiling module unisims_ver.LUT2
+Compiling module unisims_ver.LUT4
+Compiling module unisims_ver.LUT5
+Compiling module unisims_ver.LUT6
+Compiling module unisims_ver.FDCE_default
+Compiling module unisims_ver.CARRY4
+Compiling module unisims_ver.MUXF8
+Compiling module unisims_ver.MUXF7
+Compiling module unisims_ver.x_lut1_mux2
+Compiling module unisims_ver.LUT1(INIT=2'b01)
+Compiling module unisims_ver.VCC
+Compiling module xil_defaultlib.operativeUnit
+Compiling architecture archi_firunit of entity xil_defaultlib.firUnit [firunit_default]
+Compiling architecture archi_tb_firunit of entity xil_defaultlib.tb_firunit
+Built simulation snapshot tb_firUnit_behav
diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/elaborate.sh b/proj/AudioProc.sim/sim_1/behav/xsim/elaborate.sh
new file mode 100755
index 0000000..45f7c8b
--- /dev/null
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/elaborate.sh
@@ -0,0 +1,22 @@
+#!/usr/bin/env bash
+# ****************************************************************************
+# Vivado (TM) v2024.1 (64-bit)
+#
+# Filename    : elaborate.sh
+# Simulator   : AMD Vivado Simulator
+# Description : Script for elaborating the compiled design
+#
+# Generated by Vivado on Wed Feb 26 12:23:47 CET 2025
+# SW Build 5076996 on Wed May 22 18:36:09 MDT 2024
+#
+# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+# Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
+#
+# usage: elaborate.sh
+#
+# ****************************************************************************
+set -Eeuo pipefail
+# elaborate design
+echo "xelab --incr --debug typical --relax --mt 8 -L xil_defaultlib -L unisims_ver -L unimacro_ver -L secureip -L xpm --snapshot tb_firUnit_behav xil_defaultlib.tb_firUnit xil_defaultlib.glbl -log elaborate.log"
+xelab --incr --debug typical --relax --mt 8 -L xil_defaultlib -L unisims_ver -L unimacro_ver -L secureip -L xpm --snapshot tb_firUnit_behav xil_defaultlib.tb_firUnit xil_defaultlib.glbl -log elaborate.log
+
diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/glbl.v b/proj/AudioProc.sim/sim_1/behav/xsim/glbl.v
new file mode 100755
index 0000000..ed3b249
--- /dev/null
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/glbl.v
@@ -0,0 +1,84 @@
+// $Header: /devl/xcs/repo/env/Databases/CAEInterfaces/verunilibs/data/glbl.v,v 1.14 2010/10/28 20:44:00 fphillip Exp $
+`ifndef GLBL
+`define GLBL
+`timescale  1 ps / 1 ps
+
+module glbl ();
+
+    parameter ROC_WIDTH = 100000;
+    parameter TOC_WIDTH = 0;
+    parameter GRES_WIDTH = 10000;
+    parameter GRES_START = 10000;
+
+//--------   STARTUP Globals --------------
+    wire GSR;
+    wire GTS;
+    wire GWE;
+    wire PRLD;
+    wire GRESTORE;
+    tri1 p_up_tmp;
+    tri (weak1, strong0) PLL_LOCKG = p_up_tmp;
+
+    wire PROGB_GLBL;
+    wire CCLKO_GLBL;
+    wire FCSBO_GLBL;
+    wire [3:0] DO_GLBL;
+    wire [3:0] DI_GLBL;
+   
+    reg GSR_int;
+    reg GTS_int;
+    reg PRLD_int;
+    reg GRESTORE_int;
+
+//--------   JTAG Globals --------------
+    wire JTAG_TDO_GLBL;
+    wire JTAG_TCK_GLBL;
+    wire JTAG_TDI_GLBL;
+    wire JTAG_TMS_GLBL;
+    wire JTAG_TRST_GLBL;
+
+    reg JTAG_CAPTURE_GLBL;
+    reg JTAG_RESET_GLBL;
+    reg JTAG_SHIFT_GLBL;
+    reg JTAG_UPDATE_GLBL;
+    reg JTAG_RUNTEST_GLBL;
+
+    reg JTAG_SEL1_GLBL = 0;
+    reg JTAG_SEL2_GLBL = 0 ;
+    reg JTAG_SEL3_GLBL = 0;
+    reg JTAG_SEL4_GLBL = 0;
+
+    reg JTAG_USER_TDO1_GLBL = 1'bz;
+    reg JTAG_USER_TDO2_GLBL = 1'bz;
+    reg JTAG_USER_TDO3_GLBL = 1'bz;
+    reg JTAG_USER_TDO4_GLBL = 1'bz;
+
+    assign (strong1, weak0) GSR = GSR_int;
+    assign (strong1, weak0) GTS = GTS_int;
+    assign (weak1, weak0) PRLD = PRLD_int;
+    assign (strong1, weak0) GRESTORE = GRESTORE_int;
+
+    initial begin
+	GSR_int = 1'b1;
+	PRLD_int = 1'b1;
+	#(ROC_WIDTH)
+	GSR_int = 1'b0;
+	PRLD_int = 1'b0;
+    end
+
+    initial begin
+	GTS_int = 1'b1;
+	#(TOC_WIDTH)
+	GTS_int = 1'b0;
+    end
+
+    initial begin 
+	GRESTORE_int = 1'b0;
+	#(GRES_START);
+	GRESTORE_int = 1'b1;
+	#(GRES_WIDTH);
+	GRESTORE_int = 1'b0;
+    end
+
+endmodule
+`endif
diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/simulate.log b/proj/AudioProc.sim/sim_1/behav/xsim/simulate.log
new file mode 100644
index 0000000..3a14ee6
--- /dev/null
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/simulate.log
@@ -0,0 +1 @@
+Time resolution is 1 ps
diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/simulate.sh b/proj/AudioProc.sim/sim_1/behav/xsim/simulate.sh
new file mode 100755
index 0000000..6c50e68
--- /dev/null
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/simulate.sh
@@ -0,0 +1,22 @@
+#!/usr/bin/env bash
+# ****************************************************************************
+# Vivado (TM) v2024.1 (64-bit)
+#
+# Filename    : simulate.sh
+# Simulator   : AMD Vivado Simulator
+# Description : Script for simulating the design by launching the simulator
+#
+# Generated by Vivado on Wed Feb 26 12:23:52 CET 2025
+# SW Build 5076996 on Wed May 22 18:36:09 MDT 2024
+#
+# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+# Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
+#
+# usage: simulate.sh
+#
+# ****************************************************************************
+set -Eeuo pipefail
+# simulate design
+echo "xsim tb_firUnit_behav -key {Behavioral:sim_1:Functional:tb_firUnit} -tclbatch tb_firUnit.tcl -view /homes/j23meneg/MEDCON/tp-filtre-etudiant-j23meneg/proj/tb_firUnit_behav.wcfg -log simulate.log"
+xsim tb_firUnit_behav -key {Behavioral:sim_1:Functional:tb_firUnit} -tclbatch tb_firUnit.tcl -view /homes/j23meneg/MEDCON/tp-filtre-etudiant-j23meneg/proj/tb_firUnit_behav.wcfg -log simulate.log
+
diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/tb_firUnit.tcl b/proj/AudioProc.sim/sim_1/behav/xsim/tb_firUnit.tcl
new file mode 100644
index 0000000..1094e45
--- /dev/null
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/tb_firUnit.tcl
@@ -0,0 +1,11 @@
+set curr_wave [current_wave_config]
+if { [string length $curr_wave] == 0 } {
+  if { [llength [get_objects]] > 0} {
+    add_wave /
+    set_property needs_save false [current_wave_config]
+  } else {
+     send_msg_id Add_Wave-1 WARNING "No top level signals found. Simulator will start without a wave window. If you want to open a wave window go to 'File->New Waveform Configuration' or type 'create_wave_config' in the TCL console."
+  }
+}
+
+run 1000ns
diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/tb_firUnit_behav.wdb b/proj/AudioProc.sim/sim_1/behav/xsim/tb_firUnit_behav.wdb
new file mode 100644
index 0000000000000000000000000000000000000000..43c0761443e318472d3138078770c8732150fd82
GIT binary patch
literal 94714
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
BFj@cr

literal 0
HcmV?d00001

diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/tb_firUnit_vhdl.prj b/proj/AudioProc.sim/sim_1/behav/xsim/tb_firUnit_vhdl.prj
new file mode 100644
index 0000000..f516430
--- /dev/null
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/tb_firUnit_vhdl.prj
@@ -0,0 +1,8 @@
+# compile vhdl design source files
+vhdl xil_defaultlib  \
+"../../../../../src/hdl/controlUnit.vhd" \
+"../../../../../src/hdl/firUnit.vhd" \
+"../../../../../src/hdl/tb_firUnit.vhd" \
+
+# Do not sort compile order
+nosort
diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/tb_firUnit_vlog.prj b/proj/AudioProc.sim/sim_1/behav/xsim/tb_firUnit_vlog.prj
new file mode 100644
index 0000000..79956e6
--- /dev/null
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/tb_firUnit_vlog.prj
@@ -0,0 +1,9 @@
+# compile verilog/system verilog design source files
+verilog xil_defaultlib  --include "../../../../AudioProc.ip_user_files/ipstatic" \
+"../../../../../src/hdl/processingUnitIP.v" \
+
+# compile glbl module
+verilog xil_defaultlib "glbl.v"
+
+# Do not sort compile order
+nosort
diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xelab.pb b/proj/AudioProc.sim/sim_1/behav/xsim/xelab.pb
new file mode 100644
index 0000000000000000000000000000000000000000..a803de98e9eb2ecdff8118ab99dcf226ccd92fb0
GIT binary patch
literal 5756
zcmd<`=3-MVR!}YG5@3;HHZe5N;w;Y0EzL<R$uBYz;t~kUEK5wuR|tlSadNSj85tOv
z=ov<_n;7dFTbi3^Fch#<uuNcN5Mbh(#mL1BHVoOETCQs6{DR7&%=C;B1w%^<GhHJC
zBO`@~%$&@;3LOQ{yktEE$DAC6AdrG$g`m{p)S|M~6g@74E|3P0E)xaEl(NLU<kS=e
z-^}Eqd<B=(vdrYvVmziGJ8wS|7f(=WUS4Kix)sdR#>U3Tj_qRNYG=~VFDTK^%uUya
z_#fh7C`TX4OUlgCFU>12N-QWyP0`QEt1vUs%h#_+%}GpB(ACY%OD<B-)lErFDos}?
zsVvA$PRvoz)h$ZRNvu%N)y*wYuu#zTQK-nwiBCyQODxSP$;nItiInDL7H8%b$CsrR
zLAkk!$wm1vesOAYX;Ers0Z6W*AXh<Gw>U4cpg1GHM4==pJ}t8-G%vFxJ}EULu?)>{
zJ%l{EOnOdIj)HDZe!2q4_4!4KC8>HK9wdrQOe~SZ(1}Ytv^X;_T|u>2p*Sb8ELEW-
zqbM~o1(Jk}&CQWRlbMUr0&0q-F{&vt!6k`BB_M-}OA<>mli_w}=I4P^qp^t*l2K4o
zOf8U2apzJDNGvW^2+1hQFHO%-@XOB&&a48N>0eNinVVUaS_C%A%)%7iC=*j-l$3jq
zk;^49xui5PM<FS*L?I_NFTErK<j0iEw6xTsVuiG#{9J{!{Gwb86>0fJ3I+K^B?{`Q
z#p(iVQY=Ph7KU2f6~&pkWvNA(X_?7J%v_AdAi~6mg^S7A-zbpFS3e^^H?>$l%g8u4
zH7_+?-`CZ}+22pUq(C<<GpD2|RX4SyG$k`JuS6HFq_`+qKO-eazn~~TIkgxR382{a
z4A3hRU^L?3Vlgx}G7@02V02)NVmCC<H8!v`%wQ;Bt6+m<&bzesq7lT4%v_8#^r0yp
zAJRM$p+2N>BwFI}BF!TanoemNiN^SnDa|7h>O<N_qJ<frNTj(J>5)!N42<!3aX6$?
z6NBL%iN=OzhQm7&jSbCA@c7V~OV&9*w;(6ABsE0=M?=KO0=ZcXX^0qGnjtqte7V#S
z%^65zIWs>`AtkXSQ6ViSzg!_PFEOXGI1}1PGBHGNju@MmqBKYRxHOR5MbJbeb4v^p
zjV(=)ofyQW8j_it3Tj^G=aiO!oCj*SK%4s@ZYI1VU~FQ7WSkKz7qekOF~s90W(LTn
zdUNrD+zD#RgIa{()|RmavSW<IxI_vPld}`kQx%F!QuK;T67y0Li&7xQnHr!t(vz@p
zB3weq#+9U2lw{^(H7tm*VX|D(FvBuaQ&aVdOH$%<^3yYu;|&eXOt6~jPuNr`E(sJ<
z^Gb75i!zhri%YQk+KaG}qFll-Bg=C1%5vgMDhpDfQGynRfn36fD9O!FDa}b$P%Q@c
z?+lQe!Jvpi?SJTjIs#k}Ut5}@wAUvw5_V%OS9D@gaz<uJYH~?wQK|x%6Q5s@T9jCl
zS(aLwmsz5apQezSSCUy$iQWfE&d)0;%Fh8cXceNN9FPuJ_b3+PEHuCR66;qXE&-&T
zm7cqw3wD3{5o@3@mmso%PN8n@)HTu5Db$U+Ci>$vF_c(eOL0jc`??}Nr?kX4KDV^O
zg1S!i2@NsEZX!iaH3B)+1iQiH#=K8xh!NFIq`n(XsqRKI>?Vd0o0g=xB$3mSn~Sq6
zEVE-bIe=J`MY)8LO?Gw+3W~%LqW;91DZ(X$Y^HB$gd2`DPl=J{*nLh>qBjI3dK^hK
zidgT<bIBrm-zPN0P{Y&DGsM<NJ;}gO6T7p?EuF)hov|B8igVGbHh47zs$sC3-a<qj
z=g;K}uGUcNxU|e7P+f()c7qPgDMUk6!V)_6TCIX`UF*!{h{YX{AwK+0L8!r6qlR<I
zI+bSTlqeuI4B<nJ;Gtb9W+QV8<mRCemjJ|2P|!lg9w9~>TbdxZ75TWhT=P;Cf>M+7
Ii&6v_0a=NP)c^nh

literal 0
HcmV?d00001

diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/Compile_Options.txt b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/Compile_Options.txt
new file mode 100644
index 0000000..2965ab3
--- /dev/null
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/Compile_Options.txt
@@ -0,0 +1 @@
+--incr --debug "typical" --relax --mt "8" -L "xil_defaultlib" -L "unisims_ver" -L "unimacro_ver" -L "secureip" -L "xpm" --snapshot "tb_firUnit_behav" "xil_defaultlib.tb_firUnit" "xil_defaultlib.glbl" -log "elaborate.log" 
diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/TempBreakPointFile.txt b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/TempBreakPointFile.txt
new file mode 100644
index 0000000..fdbc612
--- /dev/null
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/TempBreakPointFile.txt
@@ -0,0 +1 @@
+Breakpoint File Version 1.0
diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_0.lnx64.o b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_0.lnx64.o
new file mode 100644
index 0000000000000000000000000000000000000000..45aa83ae18f493d04e05735798c6fa2368749685
GIT binary patch
literal 278848
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
QBmg~s0OW2^8bQ|&0L$fOn*aa+

literal 0
HcmV?d00001

diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_1.c b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_1.c
new file mode 100644
index 0000000..f2b4752
--- /dev/null
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_1.c
@@ -0,0 +1,572 @@
+/**********************************************************************/
+/*   ____  ____                                                       */
+/*  /   /\/   /                                                       */
+/* /___/  \  /                                                        */
+/* \   \   \/                                                         */
+/*  \   \        Copyright (c) 2003-2020 Xilinx, Inc.                 */
+/*  /   /        All Right Reserved.                                  */
+/* /---/   /\                                                         */
+/* \   \  /  \                                                        */
+/*  \___\/\___\                                                       */
+/**********************************************************************/
+
+#if defined(_WIN32)
+ #include "stdio.h"
+ #define IKI_DLLESPEC __declspec(dllimport)
+#else
+ #define IKI_DLLESPEC
+#endif
+#include "iki.h"
+#include <string.h>
+#include <math.h>
+#ifdef __GNUC__
+#include <stdlib.h>
+#else
+#include <malloc.h>
+#define alloca _alloca
+#endif
+/**********************************************************************/
+/*   ____  ____                                                       */
+/*  /   /\/   /                                                       */
+/* /___/  \  /                                                        */
+/* \   \   \/                                                         */
+/*  \   \        Copyright (c) 2003-2020 Xilinx, Inc.                 */
+/*  /   /        All Right Reserved.                                  */
+/* /---/   /\                                                         */
+/* \   \  /  \                                                        */
+/*  \___\/\___\                                                       */
+/**********************************************************************/
+
+#if defined(_WIN32)
+ #include "stdio.h"
+ #define IKI_DLLESPEC __declspec(dllimport)
+#else
+ #define IKI_DLLESPEC
+#endif
+#include "iki.h"
+#include <string.h>
+#include <math.h>
+#ifdef __GNUC__
+#include <stdlib.h>
+#else
+#include <malloc.h>
+#define alloca _alloca
+#endif
+typedef void (*funcp)(char *, char *);
+extern int main(int, char**);
+IKI_DLLESPEC extern void execute_2(char*, char *);
+IKI_DLLESPEC extern void execute_3(char*, char *);
+IKI_DLLESPEC extern void execute_4(char*, char *);
+IKI_DLLESPEC extern void execute_5(char*, char *);
+IKI_DLLESPEC extern void execute_6(char*, char *);
+IKI_DLLESPEC extern void execute_7(char*, char *);
+IKI_DLLESPEC extern void execute_8(char*, char *);
+IKI_DLLESPEC extern void execute_9(char*, char *);
+IKI_DLLESPEC extern void execute_10(char*, char *);
+IKI_DLLESPEC extern void execute_11(char*, char *);
+IKI_DLLESPEC extern void execute_21(char*, char *);
+IKI_DLLESPEC extern void execute_22(char*, char *);
+IKI_DLLESPEC extern void execute_23(char*, char *);
+IKI_DLLESPEC extern void execute_24(char*, char *);
+IKI_DLLESPEC extern void execute_27(char*, char *);
+IKI_DLLESPEC extern void execute_28(char*, char *);
+IKI_DLLESPEC extern void execute_29(char*, char *);
+IKI_DLLESPEC extern void execute_30(char*, char *);
+IKI_DLLESPEC extern void execute_31(char*, char *);
+IKI_DLLESPEC extern void execute_32(char*, char *);
+IKI_DLLESPEC extern void execute_33(char*, char *);
+IKI_DLLESPEC extern void execute_34(char*, char *);
+IKI_DLLESPEC extern void execute_35(char*, char *);
+IKI_DLLESPEC extern void execute_2776(char*, char *);
+IKI_DLLESPEC extern void execute_2777(char*, char *);
+IKI_DLLESPEC extern void execute_2778(char*, char *);
+IKI_DLLESPEC extern void execute_2779(char*, char *);
+IKI_DLLESPEC extern void execute_2780(char*, char *);
+IKI_DLLESPEC extern void execute_2781(char*, char *);
+IKI_DLLESPEC extern void execute_2782(char*, char *);
+IKI_DLLESPEC extern void execute_2783(char*, char *);
+IKI_DLLESPEC extern void vlog_const_rhs_process_execute_0_fast_no_reg_no_agg(char*, char*, char*);
+IKI_DLLESPEC extern void execute_1389(char*, char *);
+IKI_DLLESPEC extern void execute_40(char*, char *);
+IKI_DLLESPEC extern void execute_1390(char*, char *);
+IKI_DLLESPEC extern void execute_72(char*, char *);
+IKI_DLLESPEC extern void execute_1406(char*, char *);
+IKI_DLLESPEC extern void execute_1407(char*, char *);
+IKI_DLLESPEC extern void execute_1408(char*, char *);
+IKI_DLLESPEC extern void execute_91(char*, char *);
+IKI_DLLESPEC extern void execute_1434(char*, char *);
+IKI_DLLESPEC extern void execute_1435(char*, char *);
+IKI_DLLESPEC extern void execute_1436(char*, char *);
+IKI_DLLESPEC extern void execute_1437(char*, char *);
+IKI_DLLESPEC extern void execute_1438(char*, char *);
+IKI_DLLESPEC extern void execute_1439(char*, char *);
+IKI_DLLESPEC extern void execute_1440(char*, char *);
+IKI_DLLESPEC extern void execute_1441(char*, char *);
+IKI_DLLESPEC extern void execute_1433(char*, char *);
+IKI_DLLESPEC extern void execute_94(char*, char *);
+IKI_DLLESPEC extern void execute_1443(char*, char *);
+IKI_DLLESPEC extern void execute_1444(char*, char *);
+IKI_DLLESPEC extern void execute_1445(char*, char *);
+IKI_DLLESPEC extern void execute_1446(char*, char *);
+IKI_DLLESPEC extern void execute_1442(char*, char *);
+IKI_DLLESPEC extern void execute_100(char*, char *);
+IKI_DLLESPEC extern void execute_101(char*, char *);
+IKI_DLLESPEC extern void vlog_simple_process_execute_0_fast_no_reg_no_agg(char*, char*, char*);
+IKI_DLLESPEC extern void execute_105(char*, char *);
+IKI_DLLESPEC extern void execute_106(char*, char *);
+IKI_DLLESPEC extern void execute_109(char*, char *);
+IKI_DLLESPEC extern void execute_110(char*, char *);
+IKI_DLLESPEC extern void execute_442(char*, char *);
+IKI_DLLESPEC extern void execute_443(char*, char *);
+IKI_DLLESPEC extern void execute_444(char*, char *);
+IKI_DLLESPEC extern void execute_1705(char*, char *);
+IKI_DLLESPEC extern void execute_1706(char*, char *);
+IKI_DLLESPEC extern void execute_1707(char*, char *);
+IKI_DLLESPEC extern void execute_1708(char*, char *);
+IKI_DLLESPEC extern void execute_1725(char*, char *);
+IKI_DLLESPEC extern void execute_1726(char*, char *);
+IKI_DLLESPEC extern void execute_1727(char*, char *);
+IKI_DLLESPEC extern void execute_1730(char*, char *);
+IKI_DLLESPEC extern void execute_1731(char*, char *);
+IKI_DLLESPEC extern void execute_1732(char*, char *);
+IKI_DLLESPEC extern void execute_1733(char*, char *);
+IKI_DLLESPEC extern void execute_483(char*, char *);
+IKI_DLLESPEC extern void execute_491(char*, char *);
+IKI_DLLESPEC extern void execute_1062(char*, char *);
+IKI_DLLESPEC extern void execute_2412(char*, char *);
+IKI_DLLESPEC extern void execute_2413(char*, char *);
+IKI_DLLESPEC extern void execute_2411(char*, char *);
+IKI_DLLESPEC extern void vlog_transfunc_eventcallback(char*, char*, unsigned, unsigned, unsigned, char *);
+IKI_DLLESPEC extern void transaction_34(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_35(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_36(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_38(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void vhdl_transfunc_eventcallback(char*, char*, unsigned, unsigned, unsigned, char *);
+IKI_DLLESPEC extern void transaction_40(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_41(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_42(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_43(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_44(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_45(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_46(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_49(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_50(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_51(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_52(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_53(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_54(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_55(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_56(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_57(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_58(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_59(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_60(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_61(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_72(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_75(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_77(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_78(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_79(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_80(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_81(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_82(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_83(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_84(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_85(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_86(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_87(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_88(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_89(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_90(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_91(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_92(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_93(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_94(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_95(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_96(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_97(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_98(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_99(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_100(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_101(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_102(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_103(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_116(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_117(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_118(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_119(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_120(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_121(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_122(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_123(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_124(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_125(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_126(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_127(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_128(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_129(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_130(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_131(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_132(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_133(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_134(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_152(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_153(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_154(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_155(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_156(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_157(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_158(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_159(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_160(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_161(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_162(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_163(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_164(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_165(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_166(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_167(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_168(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_169(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_170(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_171(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_172(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_173(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_174(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_175(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_176(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_177(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_178(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_179(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_180(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_181(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_182(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_183(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_184(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_185(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_186(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_187(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_188(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_189(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_190(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_191(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_192(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_212(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_213(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_214(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_238(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_239(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_240(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_241(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_242(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_243(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_244(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_245(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_247(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_248(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_249(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_250(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_251(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_252(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_253(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_258(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_264(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_275(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_277(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_278(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_279(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_280(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_281(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_282(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_283(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_284(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_285(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_286(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_287(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_288(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_289(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_290(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_291(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_292(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_293(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_294(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_295(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_296(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_297(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_298(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_299(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_300(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_301(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_302(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_303(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_304(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_305(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_306(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_307(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_308(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_309(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_310(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_311(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_312(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_313(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_314(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_315(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_316(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_317(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_318(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_319(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_320(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_321(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_322(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_323(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_337(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_338(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_339(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_340(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_341(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_342(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_343(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_344(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_345(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_346(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_347(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_348(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_349(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_350(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_351(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_352(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_354(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_355(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_362(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1030(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1036(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1042(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1048(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1054(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1116(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1122(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1128(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1226(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1232(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1238(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1244(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1250(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1256(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1262(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1268(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1274(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1280(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1286(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1292(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1298(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1304(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1310(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1316(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1322(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1328(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1334(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1340(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1346(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1352(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1358(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1364(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1370(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1376(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1382(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1388(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1394(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1400(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1406(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1412(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1418(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1424(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1430(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1436(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1442(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1448(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1454(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1460(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1466(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1472(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1478(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1484(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1490(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1496(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1502(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1508(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1514(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1520(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1526(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1532(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1538(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1544(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1550(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1556(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1562(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1568(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1574(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1580(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1586(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1592(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1598(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1604(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1610(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1616(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1622(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1628(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1634(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1640(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1646(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1652(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1658(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1664(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1670(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1676(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1682(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1688(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1694(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1700(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1706(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1712(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1718(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1724(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1730(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1736(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1742(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1748(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1754(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1760(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1766(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1772(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1778(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1784(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1790(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1796(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1802(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1808(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1814(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1820(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1826(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1832(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1838(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1844(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1850(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1856(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1862(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1868(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1874(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1880(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1886(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1892(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1898(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1904(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1910(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1916(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1922(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1928(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1934(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1940(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1946(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1952(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1958(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1964(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1970(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1976(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1982(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1988(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_1994(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_2000(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_2006(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_2012(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_2500(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_2548(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_2554(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_2560(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_2574(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_2580(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_2586(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_2592(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_2598(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_2604(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_2620(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_2626(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_2632(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_2638(char*, char*, unsigned, unsigned, unsigned);
+IKI_DLLESPEC extern void transaction_2654(char*, char*, unsigned, unsigned, unsigned);
+funcp funcTab[439] = {(funcp)execute_2, (funcp)execute_3, (funcp)execute_4, (funcp)execute_5, (funcp)execute_6, (funcp)execute_7, (funcp)execute_8, (funcp)execute_9, (funcp)execute_10, (funcp)execute_11, (funcp)execute_21, (funcp)execute_22, (funcp)execute_23, (funcp)execute_24, (funcp)execute_27, (funcp)execute_28, (funcp)execute_29, (funcp)execute_30, (funcp)execute_31, (funcp)execute_32, (funcp)execute_33, (funcp)execute_34, (funcp)execute_35, (funcp)execute_2776, (funcp)execute_2777, (funcp)execute_2778, (funcp)execute_2779, (funcp)execute_2780, (funcp)execute_2781, (funcp)execute_2782, (funcp)execute_2783, (funcp)vlog_const_rhs_process_execute_0_fast_no_reg_no_agg, (funcp)execute_1389, (funcp)execute_40, (funcp)execute_1390, (funcp)execute_72, (funcp)execute_1406, (funcp)execute_1407, (funcp)execute_1408, (funcp)execute_91, (funcp)execute_1434, (funcp)execute_1435, (funcp)execute_1436, (funcp)execute_1437, (funcp)execute_1438, (funcp)execute_1439, (funcp)execute_1440, (funcp)execute_1441, (funcp)execute_1433, (funcp)execute_94, (funcp)execute_1443, (funcp)execute_1444, (funcp)execute_1445, (funcp)execute_1446, (funcp)execute_1442, (funcp)execute_100, (funcp)execute_101, (funcp)vlog_simple_process_execute_0_fast_no_reg_no_agg, (funcp)execute_105, (funcp)execute_106, (funcp)execute_109, (funcp)execute_110, (funcp)execute_442, (funcp)execute_443, (funcp)execute_444, (funcp)execute_1705, (funcp)execute_1706, (funcp)execute_1707, (funcp)execute_1708, (funcp)execute_1725, (funcp)execute_1726, (funcp)execute_1727, (funcp)execute_1730, (funcp)execute_1731, (funcp)execute_1732, (funcp)execute_1733, (funcp)execute_483, (funcp)execute_491, (funcp)execute_1062, (funcp)execute_2412, (funcp)execute_2413, (funcp)execute_2411, (funcp)vlog_transfunc_eventcallback, (funcp)transaction_34, (funcp)transaction_35, (funcp)transaction_36, (funcp)transaction_38, (funcp)vhdl_transfunc_eventcallback, (funcp)transaction_40, (funcp)transaction_41, (funcp)transaction_42, (funcp)transaction_43, (funcp)transaction_44, (funcp)transaction_45, (funcp)transaction_46, (funcp)transaction_49, (funcp)transaction_50, (funcp)transaction_51, (funcp)transaction_52, (funcp)transaction_53, (funcp)transaction_54, (funcp)transaction_55, (funcp)transaction_56, (funcp)transaction_57, (funcp)transaction_58, (funcp)transaction_59, (funcp)transaction_60, (funcp)transaction_61, (funcp)transaction_72, (funcp)transaction_75, (funcp)transaction_77, (funcp)transaction_78, (funcp)transaction_79, (funcp)transaction_80, (funcp)transaction_81, (funcp)transaction_82, (funcp)transaction_83, (funcp)transaction_84, (funcp)transaction_85, (funcp)transaction_86, (funcp)transaction_87, (funcp)transaction_88, (funcp)transaction_89, (funcp)transaction_90, (funcp)transaction_91, (funcp)transaction_92, (funcp)transaction_93, (funcp)transaction_94, (funcp)transaction_95, (funcp)transaction_96, (funcp)transaction_97, (funcp)transaction_98, (funcp)transaction_99, (funcp)transaction_100, (funcp)transaction_101, (funcp)transaction_102, (funcp)transaction_103, (funcp)transaction_116, (funcp)transaction_117, (funcp)transaction_118, (funcp)transaction_119, (funcp)transaction_120, (funcp)transaction_121, (funcp)transaction_122, (funcp)transaction_123, (funcp)transaction_124, (funcp)transaction_125, (funcp)transaction_126, (funcp)transaction_127, (funcp)transaction_128, (funcp)transaction_129, (funcp)transaction_130, (funcp)transaction_131, (funcp)transaction_132, (funcp)transaction_133, (funcp)transaction_134, (funcp)transaction_152, (funcp)transaction_153, (funcp)transaction_154, (funcp)transaction_155, (funcp)transaction_156, (funcp)transaction_157, (funcp)transaction_158, (funcp)transaction_159, (funcp)transaction_160, (funcp)transaction_161, (funcp)transaction_162, (funcp)transaction_163, (funcp)transaction_164, (funcp)transaction_165, (funcp)transaction_166, (funcp)transaction_167, (funcp)transaction_168, (funcp)transaction_169, (funcp)transaction_170, (funcp)transaction_171, (funcp)transaction_172, (funcp)transaction_173, (funcp)transaction_174, (funcp)transaction_175, (funcp)transaction_176, (funcp)transaction_177, (funcp)transaction_178, (funcp)transaction_179, (funcp)transaction_180, (funcp)transaction_181, (funcp)transaction_182, (funcp)transaction_183, (funcp)transaction_184, (funcp)transaction_185, (funcp)transaction_186, (funcp)transaction_187, (funcp)transaction_188, (funcp)transaction_189, (funcp)transaction_190, (funcp)transaction_191, (funcp)transaction_192, (funcp)transaction_212, (funcp)transaction_213, (funcp)transaction_214, (funcp)transaction_238, (funcp)transaction_239, (funcp)transaction_240, (funcp)transaction_241, (funcp)transaction_242, (funcp)transaction_243, (funcp)transaction_244, (funcp)transaction_245, (funcp)transaction_247, (funcp)transaction_248, (funcp)transaction_249, (funcp)transaction_250, (funcp)transaction_251, (funcp)transaction_252, (funcp)transaction_253, (funcp)transaction_258, (funcp)transaction_264, (funcp)transaction_275, (funcp)transaction_277, (funcp)transaction_278, (funcp)transaction_279, (funcp)transaction_280, (funcp)transaction_281, (funcp)transaction_282, (funcp)transaction_283, (funcp)transaction_284, (funcp)transaction_285, (funcp)transaction_286, (funcp)transaction_287, (funcp)transaction_288, (funcp)transaction_289, (funcp)transaction_290, (funcp)transaction_291, (funcp)transaction_292, (funcp)transaction_293, (funcp)transaction_294, (funcp)transaction_295, (funcp)transaction_296, (funcp)transaction_297, (funcp)transaction_298, (funcp)transaction_299, (funcp)transaction_300, (funcp)transaction_301, (funcp)transaction_302, (funcp)transaction_303, (funcp)transaction_304, (funcp)transaction_305, (funcp)transaction_306, (funcp)transaction_307, (funcp)transaction_308, (funcp)transaction_309, (funcp)transaction_310, (funcp)transaction_311, (funcp)transaction_312, (funcp)transaction_313, (funcp)transaction_314, (funcp)transaction_315, (funcp)transaction_316, (funcp)transaction_317, (funcp)transaction_318, (funcp)transaction_319, (funcp)transaction_320, (funcp)transaction_321, (funcp)transaction_322, (funcp)transaction_323, (funcp)transaction_337, (funcp)transaction_338, (funcp)transaction_339, (funcp)transaction_340, (funcp)transaction_341, (funcp)transaction_342, (funcp)transaction_343, (funcp)transaction_344, (funcp)transaction_345, (funcp)transaction_346, (funcp)transaction_347, (funcp)transaction_348, (funcp)transaction_349, (funcp)transaction_350, (funcp)transaction_351, (funcp)transaction_352, (funcp)transaction_354, (funcp)transaction_355, (funcp)transaction_362, (funcp)transaction_1030, (funcp)transaction_1036, (funcp)transaction_1042, (funcp)transaction_1048, (funcp)transaction_1054, (funcp)transaction_1116, (funcp)transaction_1122, (funcp)transaction_1128, (funcp)transaction_1226, (funcp)transaction_1232, (funcp)transaction_1238, (funcp)transaction_1244, (funcp)transaction_1250, (funcp)transaction_1256, (funcp)transaction_1262, (funcp)transaction_1268, (funcp)transaction_1274, (funcp)transaction_1280, (funcp)transaction_1286, (funcp)transaction_1292, (funcp)transaction_1298, (funcp)transaction_1304, (funcp)transaction_1310, (funcp)transaction_1316, (funcp)transaction_1322, (funcp)transaction_1328, (funcp)transaction_1334, (funcp)transaction_1340, (funcp)transaction_1346, (funcp)transaction_1352, (funcp)transaction_1358, (funcp)transaction_1364, (funcp)transaction_1370, (funcp)transaction_1376, (funcp)transaction_1382, (funcp)transaction_1388, (funcp)transaction_1394, (funcp)transaction_1400, (funcp)transaction_1406, (funcp)transaction_1412, (funcp)transaction_1418, (funcp)transaction_1424, (funcp)transaction_1430, (funcp)transaction_1436, (funcp)transaction_1442, (funcp)transaction_1448, (funcp)transaction_1454, (funcp)transaction_1460, (funcp)transaction_1466, (funcp)transaction_1472, (funcp)transaction_1478, (funcp)transaction_1484, (funcp)transaction_1490, (funcp)transaction_1496, (funcp)transaction_1502, (funcp)transaction_1508, (funcp)transaction_1514, (funcp)transaction_1520, (funcp)transaction_1526, (funcp)transaction_1532, (funcp)transaction_1538, (funcp)transaction_1544, (funcp)transaction_1550, (funcp)transaction_1556, (funcp)transaction_1562, (funcp)transaction_1568, (funcp)transaction_1574, (funcp)transaction_1580, (funcp)transaction_1586, (funcp)transaction_1592, (funcp)transaction_1598, (funcp)transaction_1604, (funcp)transaction_1610, (funcp)transaction_1616, (funcp)transaction_1622, (funcp)transaction_1628, (funcp)transaction_1634, (funcp)transaction_1640, (funcp)transaction_1646, (funcp)transaction_1652, (funcp)transaction_1658, (funcp)transaction_1664, (funcp)transaction_1670, (funcp)transaction_1676, (funcp)transaction_1682, (funcp)transaction_1688, (funcp)transaction_1694, (funcp)transaction_1700, (funcp)transaction_1706, (funcp)transaction_1712, (funcp)transaction_1718, (funcp)transaction_1724, (funcp)transaction_1730, (funcp)transaction_1736, (funcp)transaction_1742, (funcp)transaction_1748, (funcp)transaction_1754, (funcp)transaction_1760, (funcp)transaction_1766, (funcp)transaction_1772, (funcp)transaction_1778, (funcp)transaction_1784, (funcp)transaction_1790, (funcp)transaction_1796, (funcp)transaction_1802, (funcp)transaction_1808, (funcp)transaction_1814, (funcp)transaction_1820, (funcp)transaction_1826, (funcp)transaction_1832, (funcp)transaction_1838, (funcp)transaction_1844, (funcp)transaction_1850, (funcp)transaction_1856, (funcp)transaction_1862, (funcp)transaction_1868, (funcp)transaction_1874, (funcp)transaction_1880, (funcp)transaction_1886, (funcp)transaction_1892, (funcp)transaction_1898, (funcp)transaction_1904, (funcp)transaction_1910, (funcp)transaction_1916, (funcp)transaction_1922, (funcp)transaction_1928, (funcp)transaction_1934, (funcp)transaction_1940, (funcp)transaction_1946, (funcp)transaction_1952, (funcp)transaction_1958, (funcp)transaction_1964, (funcp)transaction_1970, (funcp)transaction_1976, (funcp)transaction_1982, (funcp)transaction_1988, (funcp)transaction_1994, (funcp)transaction_2000, (funcp)transaction_2006, (funcp)transaction_2012, (funcp)transaction_2500, (funcp)transaction_2548, (funcp)transaction_2554, (funcp)transaction_2560, (funcp)transaction_2574, (funcp)transaction_2580, (funcp)transaction_2586, (funcp)transaction_2592, (funcp)transaction_2598, (funcp)transaction_2604, (funcp)transaction_2620, (funcp)transaction_2626, (funcp)transaction_2632, (funcp)transaction_2638, (funcp)transaction_2654};
+const int NumRelocateId= 439;
+
+void relocate(char *dp)
+{
+	iki_relocate(dp, "xsim.dir/tb_firUnit_behav/xsim.reloc",  (void **)funcTab, 439);
+	iki_vhdl_file_variable_register(dp + 561640);
+	iki_vhdl_file_variable_register(dp + 561696);
+
+
+	/*Populate the transaction function pointer field in the whole net structure */
+}
+
+void sensitize(char *dp)
+{
+	iki_sensitize(dp, "xsim.dir/tb_firUnit_behav/xsim.reloc");
+}
+
+	// Initialize Verilog nets in mixed simulation, for the cases when the value at time 0 should be propagated from the mixed language Vhdl net
+
+void wrapper_func_0(char *dp)
+
+{
+
+	iki_vlog_schedule_transaction_signal_fast_vhdl_value_time_0(dp + 566968, dp + 571112, 0, 0, 0, 0, 1, 1);
+
+	iki_vlog_schedule_transaction_signal_fast_vhdl_value_time_0(dp + 567024, dp + 572064, 0, 0, 0, 0, 1, 1);
+
+	iki_vlog_schedule_transaction_signal_fast_vhdl_value_time_0(dp + 567080, dp + 571616, 0, 7, 0, 7, 8, 1);
+
+	iki_vlog_schedule_transaction_signal_fast_vhdl_value_time_0(dp + 568344, dp + 571728, 0, 0, 0, 0, 1, 1);
+
+	iki_vlog_schedule_transaction_signal_fast_vhdl_value_time_0(dp + 568400, dp + 571392, 0, 0, 0, 0, 1, 1);
+
+	iki_vlog_schedule_transaction_signal_fast_vhdl_value_time_0(dp + 568456, dp + 571280, 0, 0, 0, 0, 1, 1);
+
+	iki_vlog_schedule_transaction_signal_fast_vhdl_value_time_0(dp + 568512, dp + 571504, 0, 0, 0, 0, 1, 1);
+
+	iki_vlog_schedule_transaction_signal_fast_vhdl_value_time_0(dp + 568568, dp + 571840, 0, 0, 0, 0, 1, 1);
+
+	iki_vlog_schedule_transaction_signal_fast_vhdl_value_time_0(dp + 568624, dp + 571952, 0, 0, 0, 0, 1, 1);
+
+}
+
+void simulate(char *dp)
+{
+		iki_schedule_processes_at_time_zero(dp, "xsim.dir/tb_firUnit_behav/xsim.reloc");
+	wrapper_func_0(dp);
+
+	iki_execute_processes();
+
+	// Schedule resolution functions for the multiply driven Verilog nets that have strength
+	// Schedule transaction functions for the singly driven Verilog nets that have strength
+
+}
+#include "iki_bridge.h"
+void relocate(char *);
+
+void sensitize(char *);
+
+void simulate(char *);
+
+extern SYSTEMCLIB_IMP_DLLSPEC void local_register_implicit_channel(int, char*);
+extern SYSTEMCLIB_IMP_DLLSPEC int xsim_argc_copy ;
+extern SYSTEMCLIB_IMP_DLLSPEC char** xsim_argv_copy ;
+
+int main(int argc, char **argv)
+{
+    iki_heap_initialize("ms", "isimmm", 0, 2147483648) ;
+    iki_set_xsimdir_location_if_remapped(argc, argv)  ;
+    iki_set_sv_type_file_path_name("xsim.dir/tb_firUnit_behav/xsim.svtype");
+    iki_set_crvs_dump_file_path_name("xsim.dir/tb_firUnit_behav/xsim.crvsdump");
+    void* design_handle = iki_create_design("xsim.dir/tb_firUnit_behav/xsim.mem", (void *)relocate, (void *)sensitize, (void *)simulate, (void*)0, 0, isimBridge_getWdbWriter(), 0, argc, argv);
+     iki_set_rc_trial_count(100);
+    (void) design_handle;
+    return iki_simulate_design();
+}
diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_1.lnx64.o b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_1.lnx64.o
new file mode 100644
index 0000000000000000000000000000000000000000..86bf929c9b2fd3364d69c7656a92eb3a93adc147
GIT binary patch
literal 36368
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
F2LRYTm1Y0{

literal 0
HcmV?d00001

diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.dbg b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.dbg
new file mode 100644
index 0000000000000000000000000000000000000000..e61916012747cf27bdd8d5d6191bb1a2a77d5f7f
GIT binary patch
literal 51520
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
JuCEe@J^<%fKd}G+

literal 0
HcmV?d00001

diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.mem b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.mem
new file mode 100644
index 0000000000000000000000000000000000000000..f70991fade975e0b50d73f072716aa2132801676
GIT binary patch
literal 68207
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

literal 0
HcmV?d00001

diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.reloc b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.reloc
new file mode 100644
index 0000000000000000000000000000000000000000..319a188acc6b6247f32d5c84b8a9ea5a7380b202
GIT binary patch
literal 116468
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
H>S;CrydB!x

literal 0
HcmV?d00001

diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.rlx b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.rlx
new file mode 100644
index 0000000..d741599
--- /dev/null
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.rlx
@@ -0,0 +1,12 @@
+
+{ 
+    crc :  10053442714840703673  , 
+    ccp_crc :  0  , 
+    cmdline : " --incr --debug typical --relax --mt 8 -L xil_defaultlib -L unisims_ver -L unimacro_ver -L secureip -L xpm --snapshot tb_firUnit_behav xil_defaultlib.tb_firUnit xil_defaultlib.glbl" , 
+    buildDate : "May 22 2024" , 
+    buildTime : "18:54:44" , 
+    linkCmd : "/usr/bin/gcc -Wa,-W  -O -fPIC  -m64  -Wl,--no-as-needed  -Wl,--unresolved-symbols=ignore-all  -o \"xsim.dir/tb_firUnit_behav/xsimk\"   \"xsim.dir/tb_firUnit_behav/obj/xsim_0.lnx64.o\" \"xsim.dir/tb_firUnit_behav/obj/xsim_1.lnx64.o\" -L\"/opt/img/Vivado2024.1/Vivado/2024.1/lib/lnx64.o\" -lrdi_simulator_kernel    -L/opt/img/Vivado2024.1/Vivado/2024.1/lib/lnx64.o/../../tps/lnx64/gcc-9.3.0/bin/../lib64 -Wl,--disable-new-dtags -Wl,-rpath=/opt/img/Vivado2024.1/Vivado/2024.1/lib/lnx64.o/../../tps/lnx64/gcc-9.3.0/bin/../lib64 -lrdi_simbridge_kernel" , 
+    aggregate_nets : 
+    [ 
+    ] 
+} 
\ No newline at end of file
diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.rtti b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.rtti
new file mode 100644
index 0000000000000000000000000000000000000000..405d1122e815b13e5604b5c536bf5312533c7537
GIT binary patch
literal 633
zcma#Z%*o8FQ1A@S%vA`93~*I&^Yn35FfcG=U~oV2b6+|q0|SF069a=50|Nsy1H*!x
z{PfIZ237_LU}RumU}0cjFkmobh+>EU3o0`(faDhxCnx447R6`gm4LVmj0_A7|NsB5
z2Wc^6U|<knU|0YWWMF1k0M-YRfMKuz0|Udq|NsBb{r~^J1yn<3UP)?tY7y8#Z2IJ(
z8vjG}c|lzr9O4r1<L~b2%)rFJ0LIJ=3=AN@sfVgFs7I(Xs2iv=s2i#?s7I+YsE4aF
zsQaihsC%e0sOzeOUFnTvQYd9cDL@0r&oLx4$k7Mv9FV(Vq2mbkEZouYVXn?0{y|`c
zj0_9Fz6XUA8v_H_Z6M7c3=6GTs9Qtgi%SwqQo;H_{szSw2!}g*hQtRu`Ud#8G6aYC
z2e~o?1o=C=1_yikxySqX`v)-ihlT`%hA@B?y85}m6oV|)0NKRAzz_tbOQG~KD18q~
TYk(9pFfbHD>B&&~3X}!_Pc>`|

literal 0
HcmV?d00001

diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.svtype b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.svtype
new file mode 100644
index 0000000000000000000000000000000000000000..57a1c98a5f6d4cad2df1f5c52fb8d6f99ce7db99
GIT binary patch
literal 78
zcmcCwfB+^21_nk328RFt|NjTk42&!c3=GU5Q4kj<%*d#~z`!6666S$uWKf3EAPNAb
CB?z+s

literal 0
HcmV?d00001

diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.type b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.type
new file mode 100644
index 0000000000000000000000000000000000000000..b6c17a51f0760d7896f3e40ea46dbc6815759bd4
GIT binary patch
literal 7552
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
E0NInpCjbBd

literal 0
HcmV?d00001

diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.xdbg b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.xdbg
new file mode 100644
index 0000000000000000000000000000000000000000..856343384d65338b1a24df88fe724ff26b9e29ab
GIT binary patch
literal 23272
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
z%0D=YT|VIuME{CY*yTS!<vT85mv1->(LdoTc6os#5cwImu*)xi$|u~%E^lxYqTk^u
zcKHKP`58a3%Lg2T=(qTXUH$=7{suGl^<4$WA^JCb!LFa-1Vny<G<N+Hpz<>mu*)l)
zgy>(Oid}vKRDOjPc6o<W5d9nUvCCh8%4djUmrpni(O+PTUH$`9zQPH+e8U-t{swpK
z@&ace@*O_d<rhHZCj?@bH#i5;KO+pg`~j%^f@tjW0p}t5S0rGUe*l%=kcwTt-~vSd
zjx6l*3>P8t9+ueUCqU&ZDzM8dT!QEiD8Vkj0V>Z?i(TH~GDLqx4|e$rP<f8o*yR(h
zK=dD2j9vZ%RK8*jcKL>@5d9pxvC9iwgUHV~iCumHR9@o-c6o#A5d9AxV3$7tm7nnv
zyL`Y6i2i_2*ySHU<vD(1moK;p(LaL|Ha?A7KQY{b$ZJSom!ANY-=T(GUg0)GzlSMy
z`3+Ec20QHX4tF5>cer7fzW|jl@W(E{p%|iHBLcg;LkUEFM;dnd3s8BFQta{xr4ao$
znz74&fXZh~g2_YFqql!v%s|LPR(heXuTHp$kcX}0KyE)xcz}?HjP#@GKkytO4;hI=
zmDl)zkcae?QRO54BjmBQ&pOy(`(GgY7tsB;gBKx>t$p@F1R;;DeI_A;kjK_OYtTW+
zV{4ynFh<B@Yo9%^LdZjADpCC};DnHe%mkv!R|G-i(bw0&_CF{rf`lJT9@K^f#UCzt
zP#EKrhlMXL{h%-g=`UhnU;xek7c9hXKQ4Kg{kY^|_T!RAw?ASve*4ko(d|c<N4Fnc
z9^HQA_4^>b=<*Y`;CCOoJi7bP<w15Jhd;VJy8RC}<F_AO9^HO)d35_>^2q!5K<-=c
z6;d9}I0&&HUEbjvL|)(scKHWT`Ho}Q<r}_3^fR2qF0b$dB42SDyZiyD{D-sH<r98F
z^k-baF3<1_BLCnLR32@8KqR!V`~jQ4$04u41j+U2>rY~!`Y#ZW|3N@rff-^xtb9OE
z9|5YU<qNF*faO1QdGz#wE{~o*(B;wXU!a2Desp<s`_bjm?MIhKx8K7Xzy0X)==P(_
zquY-zk8b}AFZ}kS%cI+mE{|?MOrDV;2<!gL8S#+x0g?xq4bu->f1r_vkO!p=bom>F
z2zij-(B&7DA>^^uzYR4Ad2IFXg~yOq3&?%g>feM<2zhMvufR8mJS_dg+y|@QkoR|i
z<Uklye!=9C*AIfi2ZXW7GcpFj_g{jtE^K|-4CwkXkh#bhWDYvt6j=at<|!7w2^KMA
zA&|Ld$O1UbfyE^(%wTO3WWF&G=9m+q#)1enAa^4x!^VfDA7nRz^dR%WoAyA0P>jtS
GkQ4y7^#$ty

literal 0
HcmV?d00001

diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimSettings.ini b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimSettings.ini
new file mode 100644
index 0000000..5f049d3
--- /dev/null
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimSettings.ini
@@ -0,0 +1,50 @@
+[General]
+ARRAY_DISPLAY_LIMIT=1024
+RADIX=hex
+TIME_UNIT=ns
+TRACE_LIMIT=65536
+VHDL_ENTITY_SCOPE_FILTER=true
+VHDL_PACKAGE_SCOPE_FILTER=false
+VHDL_BLOCK_SCOPE_FILTER=true
+VHDL_PROCESS_SCOPE_FILTER=false
+VHDL_PROCEDURE_SCOPE_FILTER=false
+VERILOG_MODULE_SCOPE_FILTER=true
+VERILOG_PACKAGE_SCOPE_FILTER=false
+VERILOG_BLOCK_SCOPE_FILTER=false
+VERILOG_TASK_SCOPE_FILTER=false
+VERILOG_PROCESS_SCOPE_FILTER=false
+INPUT_OBJECT_FILTER=true
+OUTPUT_OBJECT_FILTER=true
+INOUT_OBJECT_FILTER=true
+INTERNAL_OBJECT_FILTER=true
+CONSTANT_OBJECT_FILTER=true
+VARIABLE_OBJECT_FILTER=true
+INPUT_PROTOINST_FILTER=true
+OUTPUT_PROTOINST_FILTER=true
+INOUT_PROTOINST_FILTER=true
+INTERNAL_PROTOINST_FILTER=true
+CONSTANT_PROTOINST_FILTER=true
+VARIABLE_PROTOINST_FILTER=true
+SCOPE_NAME_COLUMN_WIDTH=117
+SCOPE_DESIGN_UNIT_COLUMN_WIDTH=162
+SCOPE_BLOCK_TYPE_COLUMN_WIDTH=103
+OBJECT_NAME_COLUMN_WIDTH=183
+OBJECT_VALUE_COLUMN_WIDTH=49
+OBJECT_DATA_TYPE_COLUMN_WIDTH=75
+PROCESS_NAME_COLUMN_WIDTH=75
+PROCESS_TYPE_COLUMN_WIDTH=75
+FRAME_INDEX_COLUMN_WIDTH=75
+FRAME_NAME_COLUMN_WIDTH=75
+FRAME_FILE_NAME_COLUMN_WIDTH=75
+FRAME_LINE_NUM_COLUMN_WIDTH=75
+LOCAL_NAME_COLUMN_WIDTH=75
+LOCAL_VALUE_COLUMN_WIDTH=75
+LOCAL_DATA_TYPE_COLUMN_WIDTH=0
+PROTO_NAME_COLUMN_WIDTH=0
+PROTO_VALUE_COLUMN_WIDTH=0
+INPUT_LOCAL_FILTER=1
+OUTPUT_LOCAL_FILTER=1
+INOUT_LOCAL_FILTER=1
+INTERNAL_LOCAL_FILTER=1
+CONSTANT_LOCAL_FILTER=1
+VARIABLE_LOCAL_FILTER=1
diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimcrash.log b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimcrash.log
new file mode 100644
index 0000000..e69de29
diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimk b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimk
new file mode 100755
index 0000000000000000000000000000000000000000..46ae9050f79d9729623b307bd72622325cf237f6
GIT binary patch
literal 245872
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

literal 0
HcmV?d00001

diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimkernel.log b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimkernel.log
new file mode 100644
index 0000000..6dcda36
--- /dev/null
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimkernel.log
@@ -0,0 +1,7 @@
+Running: xsim.dir/tb_firUnit_behav/xsimk -simmode gui -wdb tb_firUnit_behav.wdb -simrunnum 0 -socket 45333
+Design successfully loaded
+Design Loading Memory Usage: 21704 KB (Peak: 21712 KB)
+Design Loading CPU Usage: 30 ms
+Simulation completed
+Simulation Memory Usage: 103960 KB (Peak: 160972 KB)
+Simulation CPU Usage: 180 ms
diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/controlunit.vdb b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/controlunit.vdb
new file mode 100644
index 0000000000000000000000000000000000000000..48c54abb716744ad85987502e6a582b80c7dc323
GIT binary patch
literal 8568
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

literal 0
HcmV?d00001

diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/firunit.vdb b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/firunit.vdb
new file mode 100644
index 0000000000000000000000000000000000000000..15451a9f5bd947d440cff6dbb94c3b14e3249350
GIT binary patch
literal 10248
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
S070<Of(D`xnREcH0R#Z*20Uv3

literal 0
HcmV?d00001

diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/glbl.sdb b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/glbl.sdb
new file mode 100644
index 0000000000000000000000000000000000000000..949b56b44538c80c8dd70af79cc2e47a534f205c
GIT binary patch
literal 5635
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
V83O}+EEjF?7L<oU*a0;B3jn;YP_zI5

literal 0
HcmV?d00001

diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/operative@unit.sdb b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/operative@unit.sdb
new file mode 100644
index 0000000000000000000000000000000000000000..c02de1ac750fe2b2a73641b47a3bac2cc30a64a4
GIT binary patch
literal 172617
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
V^!D^}@N)%CVuFMj9E5V@nE}q&W?}#U

literal 0
HcmV?d00001

diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/tb_firunit.vdb b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/tb_firunit.vdb
new file mode 100644
index 0000000000000000000000000000000000000000..988b29a53a7bb466d60534485de0cf5e7e4fd964
GIT binary patch
literal 7426
zcmWg2k!R*+U|7Jwz`)?}q)MKd<M7XY=^!2>gMtEs!~1<_b~&UoY~W(xb9VL1^2>De
z_VjY_b4}yQa`n$lcJ+2}&eE$;4{x8py3rwufq~&a6gYS?FfcTCui{(W(r2-#rOUQy
zF>iZwH*e#jg}j{|eH}fDN^Lxg`x;uBS1j(}=~%S5y`_t%e=)C|te~)j3|tBC!j7Ka
zZeHq|Cd0tMzytClg99T2!v+>6Mh0sp=H|r<IlPh`z5E@sGFI5Aw&#0AoPr3mCAem#
zd1lEua~J+Uo}dZ}m9=u#Oe~(Bp00eWRxe!W;Nj|$;OF3#mGOAldxpb{6(2A&LR2}t
z-?vtd37LZ=4q-wK;%;8N(6+H<QAf{;zGcf)F7Tx4orWl2#-*PGOTg}c7-!9d7M1La
zTl!WkYUxt`xW~0siS+<PEdz^#KLZ1U1T?Hb!2`k!3@E}ZKFJ9wU;<qN6gc1zVqkDs
z$iTn=3v{G}17hxkq#*_d2POsqP@Fh0f@o%kAZ7uE{|-x8K_n}K0K<O<24;r<W&s9=
z#jFAh4$KS!3=X@v1Q;MBt3y4KV;PtnwsQ$EIPBmOU|>X*VRYCD(qttG^%n!99-IlX
zo`Hb@L%^Ydfq?;C71(cJ0&F5yHE4+gjmrS`qbRz;|Nk>EFjz?;+y`gE+=ngzwi{g#
z>@+Zea38uF<TQuOW&nq~D7tcp%U}`7z^Dgj!d!+f0CpL=ASfAuFeHvZVT-N;o)6&+
z1_w|Y5JguAauFk}#A5g_3lB6!c^DIt$C;>{iNJY;7G{DChGYg#aH*#N^$0ANf@n~I
z$^h{gBu_hB03~WRhdc%b1|^t=*2doUM%xy42rc5!&J4;eEzAN8OiYXn1`J@;$}rW7
zI~H~<vTb39&^T19Kvna0wD<QkEL^;zzpur%1;R6g@I)MDW3xvUs#D0z)z2~8(=W-_
zF(WH8$=}t%6)dzHEVKh6G!?sB)u3hwfYoMrc_w>i`MG*KBtQgqzy&s-xPckwS9Pd<
z(dL%+hE)(RG<PiO0M$LVy<kx*u&5ziR2Ic0Ad|pJ-Qgl6yf1@FnJXaTDu}oSBCdmo
z8z6ayN(Kf7So|?KTmnfzG)loDiGhL90c?mJBLf3Cw;*J|HZgEEwsiKk+cqy=h+sh+
z1(9c9V32}EBFHqbYv86KWFV>$W*}JTrokc^WE$98Ak#Pzq7ak7jzt#~NKVM|@XSWk
zhZq9jm|=8CW?*1I*X&S>MUWk08-s&BD1fl3fGS`Bn+zs6U_uNGQm}Lf@(eh7K%N1+
z9U%izjtCG03q5FHDG+2DIG#fo85lSbq7ak7#-j^jgan2F*zJ&@LDvip8gxO-pg~sw
zaSj8Hpn+uvkY_;Y)dA!gu-g$b5EBpqf?%Nq4ZILGfR(%gh!&!QtD8r%BS-*R-9rQz
z7{KKgxEgmj&n3X1p#{yM96lZiejW}U8BoTI9T4jrK&6+%Z3YGg4Q-gxEYA$jWROw_
z1B+4}s8T*ixdAC-JTf3$Xpu8x2RQf{kZjO}Y7<5(E+A!G<3g|)w6K7P2^wNJQ4eZ>
zAh=Lj2rpC`7eYi3#f+dKvh629{?mtQ7DFm9;RT#W23QzcXu^e2{SGq5+z)CDr-CiC
znFnD(st^Vpn7qSRP>IFh(8<8S026~mJ_Cb;F(U(m9)>8W=0+C;HwD22xbX!}P3USs
zH5jP938NVt)`IM2lL>&j6>cxc26RDabq1@}S{yclidAeXp=k%6h&(bJ-h(WX3B+a(
zx*)V7gjI+w4x3>1psVD7Bs`A{IK$xs*q$J4_Mi(wDo@m^6vlJd46_qm7bNXMYfxBH
zhI1W0g6$8+W<R<hxc0?TA)^X8Y=OB1T|YP{Kr2&7PJrePG%<%yU^j(ea}&BCq&~-}
z;E@Czw!++lt{0NEFf$vnh{I>FTSBq91zix_EP(n2o`WHc1q@M#Z7^4%n*z?R&>)3p
zS7<KA6n6LmavvmHFo23@Q08O;_mCV`gRFQ5mIslL?hUNWWncpL&R|?nD;tENeKVLa
zIDdi(1_q?ob2v0Oz&$W<&V^}!Wk^tm4ch5PVluEh+ypslJ_7>-tN>?V1m`udDR42U
zF^D<@!Ge^X7U)WuIr%w3*dYSc@dH@^EA|-}!I=zf0bGor1q==#Ghp=r10y)2aKiae
z{a{1U1u?2?3;}Qv4ynJ<HG}JKbV1De8(js|J*f3J*bA__iGdNEufQ&bi$S#^LKne;
zhBLZSP#A+SBAj7$7Xu?Wvv9)sP{YACq6=aK35Ebt7@=zhhY`9UW*DKXfVu}u7{O{#
z21amx0=pP42GxcL83YRwMhvVDix?OfjG>tVG(HBZWRUn^BXCtR42-5QrHl^Es0M*G
ziovA8JQ9s}xF7=3v4dHFK^MauP$L;#kQHhRI1tb!nKJyDGW;D5F@gqQz`iy?^EDD5
zY!JMrgEPRnk%58H6sDBf0>%RCU|?VXB`^?%Br;H#psT>5MS+u<Q-RYV668~K<=_;9
zE+`DO4(wBONhF_wBL!U^ivy4fAYF9jSRG(Vqyrcjz(H+}7Su?5utB8NuMCW)FasdT
z4#oqU#lXNIhAsdOCv-uQEJaR?=mvp92wgA*>KLq6BSjH3gsjj)2#F6ih?uqz1EVQS
z8@Iz8&;T34P_Q9f&5NL*8HouluD~h98cjXe5OhJV=7kWjs2Pa~HbfU)EjVP*1t&6s
z9RnE&K$k=c8L*RVusI1`5Xm!0Oo)@v)q<UbE*Qy#<Ro-SbSK$ja}v5B$Q=t8En2t;
z6iQ$k#Dq8rT`ky2=z^J`atc)bfeK`FNpvUKVRI6?Ak0Y%5l&jTs2SoUbhTh7p$i%c
zB83vVB)XIAu{jA{kgFLKLW>qIS_n#z3m1U`Y9Z7~=xV`ELKpmr>?CwabSF7ra}v5B
zC`~U~xNy-zkdwePhzSWLbhTh7p$i@qLJB2xNpvSUVsjF@AjC<aoD0rz;2?uV9J*St
zlh6e_q4fp0EJBw=cajq}C!q_1(h|r)kcb1b7QrG8T`ky2=z@Wux*e9h(IwHH<c!Tp
z=z^e70vAl6<PBylgePxwwO}Wq3rdP2MI5>$x|3Y6ISE}5oV*u;5)mYMLzs}Xgsv9s
eBy_=t$WB6+L~;@XgTpsaZwcZ76w(1S`w0Mi2VWTg

literal 0
HcmV?d00001

diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/xil_defaultlib.rlx b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/xil_defaultlib.rlx
new file mode 100644
index 0000000..ca1ef8f
--- /dev/null
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/xil_defaultlib.rlx
@@ -0,0 +1,9 @@
+0.7
+2020.2
+May 22 2024
+18:54:44
+/homes/j23meneg/MEDCON/tp-filtre-etudiant-j23meneg/proj/AudioProc.sim/sim_1/behav/xsim/glbl.v,1708598507,verilog,,,,glbl,,,,,,,,
+/homes/j23meneg/MEDCON/tp-filtre-etudiant-j23meneg/src/hdl/controlUnit.vhd,1740569012,vhdl,/homes/j23meneg/MEDCON/tp-filtre-etudiant-j23meneg/src/hdl/firUnit.vhd,,,controlunit,,,,,,,,
+/homes/j23meneg/MEDCON/tp-filtre-etudiant-j23meneg/src/hdl/firUnit.vhd,1740562757,vhdl,/homes/j23meneg/MEDCON/tp-filtre-etudiant-j23meneg/src/hdl/tb_firUnit.vhd,,,firunit,,,,,,,,
+/homes/j23meneg/MEDCON/tp-filtre-etudiant-j23meneg/src/hdl/processingUnitIP.v,1740562757,verilog,/homes/j23meneg/MEDCON/tp-filtre-etudiant-j23meneg/src/hdl/firUnit.vhd,,,\operativeUnit\,,,../../../../AudioProc.ip_user_files/ipstatic,,,,,
+/homes/j23meneg/MEDCON/tp-filtre-etudiant-j23meneg/src/hdl/tb_firUnit.vhd,1740562757,vhdl,,,,tb_firunit,,,,,,,,
diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.ini b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.ini
new file mode 100644
index 0000000..65c1bae
--- /dev/null
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.ini
@@ -0,0 +1,490 @@
+std=$RDI_DATADIR/xsim/vhdl/std
+ieee=$RDI_DATADIR/xsim/vhdl/ieee
+ieee_proposed=$RDI_DATADIR/xsim/vhdl/ieee_proposed
+vl=$RDI_DATADIR/xsim/vhdl/vl
+synopsys=$RDI_DATADIR/xsim/vhdl/synopsys
+uvm=$RDI_DATADIR/xsim/system_verilog/uvm
+secureip=$RDI_DATADIR/xsim/verilog/secureip
+unisim=$RDI_DATADIR/xsim/vhdl/unisim
+unimacro=$RDI_DATADIR/xsim/vhdl/unimacro
+unifast=$RDI_DATADIR/xsim/vhdl/unifast
+unisims_ver=$RDI_DATADIR/xsim/verilog/unisims_ver
+unimacro_ver=$RDI_DATADIR/xsim/verilog/unimacro_ver
+unifast_ver=$RDI_DATADIR/xsim/verilog/unifast_ver
+simprims_ver=$RDI_DATADIR/xsim/verilog/simprims_ver
+axi_epu_v1_0_4=$RDI_DATADIR/xsim/ip/axi_epu_v1_0_4
+xlconcat_v2_1_6=$RDI_DATADIR/xsim/ip/xlconcat_v2_1_6
+emb_fifo_gen_v1_0_5=$RDI_DATADIR/xsim/ip/emb_fifo_gen_v1_0_5
+mipi_csi2_tx_ctrl_v1_0_6=$RDI_DATADIR/xsim/ip/mipi_csi2_tx_ctrl_v1_0_6
+c_mux_bit_v12_0_9=$RDI_DATADIR/xsim/ip/c_mux_bit_v12_0_9
+smartconnect_v1_0=$RDI_DATADIR/xsim/ip/smartconnect_v1_0
+v_smpte_uhdsdi_tx_v1_0_4=$RDI_DATADIR/xsim/ip/v_smpte_uhdsdi_tx_v1_0_4
+cam_v3_0_0=$RDI_DATADIR/xsim/ip/cam_v3_0_0
+microblaze_v11_0_13=$RDI_DATADIR/xsim/ip/microblaze_v11_0_13
+axi_fifo_mm_s_v4_3_3=$RDI_DATADIR/xsim/ip/axi_fifo_mm_s_v4_3_3
+v_hdmi_rx1_v1_0_9=$RDI_DATADIR/xsim/ip/v_hdmi_rx1_v1_0_9
+video_frame_crc_v1_0_6=$RDI_DATADIR/xsim/ip/video_frame_crc_v1_0_6
+hdcp22_cipher_dp_v1_0_2=$RDI_DATADIR/xsim/ip/hdcp22_cipher_dp_v1_0_2
+generic_baseblocks_v2_1_2=$RDI_DATADIR/xsim/ip/generic_baseblocks_v2_1_2
+axis_clock_converter_v1_1_32=$RDI_DATADIR/xsim/ip/axis_clock_converter_v1_1_32
+psx_vip_v1_0_4=$RDI_DATADIR/xsim/ip/psx_vip_v1_0_4
+g975_efec_i4_v1_0_22=$RDI_DATADIR/xsim/ip/g975_efec_i4_v1_0_22
+axi_lite_ipif_v3_0_4=$RDI_DATADIR/xsim/ip/axi_lite_ipif_v3_0_4
+axis_dbg_stub_v1_0_1=$RDI_DATADIR/xsim/ip/axis_dbg_stub_v1_0_1
+ethernet_1_10_25g_v2_7_15=$RDI_DATADIR/xsim/ip/ethernet_1_10_25g_v2_7_15
+an_lt_v1_0_12=$RDI_DATADIR/xsim/ip/an_lt_v1_0_12
+hdmi_gt_controller_v1_0_13=$RDI_DATADIR/xsim/ip/hdmi_gt_controller_v1_0_13
+axi_cdma_v4_1_31=$RDI_DATADIR/xsim/ip/axi_cdma_v4_1_31
+xilinx_vip=$RDI_DATADIR/xsim/ip/xilinx_vip
+videoaxi4s_bridge_v1_0_7=$RDI_DATADIR/xsim/ip/videoaxi4s_bridge_v1_0_7
+mdm_riscv_v1_0_2=$RDI_DATADIR/xsim/ip/mdm_riscv_v1_0_2
+axi_uartlite_v2_0_35=$RDI_DATADIR/xsim/ip/axi_uartlite_v2_0_35
+axi_perf_mon_v5_0_33=$RDI_DATADIR/xsim/ip/axi_perf_mon_v5_0_33
+axi_master_burst_v2_0_9=$RDI_DATADIR/xsim/ip/axi_master_burst_v2_0_9
+aie_ps_v1_0=$RDI_DATADIR/xsim/ip/aie_ps_v1_0
+ibert_lib_v1_0_11=$RDI_DATADIR/xsim/ip/ibert_lib_v1_0_11
+axi_datamover_v5_1_33=$RDI_DATADIR/xsim/ip/axi_datamover_v5_1_33
+noc_nps4_v1_0_0=$RDI_DATADIR/xsim/ip/noc_nps4_v1_0_0
+xbip_dsp48_addsub_v3_0_9=$RDI_DATADIR/xsim/ip/xbip_dsp48_addsub_v3_0_9
+v_axi4s_vid_out_v4_0_18=$RDI_DATADIR/xsim/ip/v_axi4s_vid_out_v4_0_18
+axi_chip2chip_v5_0_22=$RDI_DATADIR/xsim/ip/axi_chip2chip_v5_0_22
+gtwizard_ultrascale_v1_7_18=$RDI_DATADIR/xsim/ip/gtwizard_ultrascale_v1_7_18
+axi_infrastructure_v1_1_0=$RDI_DATADIR/xsim/ip/axi_infrastructure_v1_1_0
+switch_core_top_v1_0_16=$RDI_DATADIR/xsim/ip/switch_core_top_v1_0_16
+vitis_net_p4_v2_1_0=$RDI_DATADIR/xsim/ip/vitis_net_p4_v2_1_0
+axi_sideband_util_v1_0_15=$RDI_DATADIR/xsim/ip/axi_sideband_util_v1_0_15
+axis_infrastructure_v1_1_1=$RDI_DATADIR/xsim/ip/axis_infrastructure_v1_1_1
+dist_mem_gen_v8_0_15=$RDI_DATADIR/xsim/ip/dist_mem_gen_v8_0_15
+shell_utils_addr_remap_v1_0_10=$RDI_DATADIR/xsim/ip/shell_utils_addr_remap_v1_0_10
+xbip_addsub_v3_0_9=$RDI_DATADIR/xsim/ip/xbip_addsub_v3_0_9
+dds_compiler_v6_0_25=$RDI_DATADIR/xsim/ip/dds_compiler_v6_0_25
+bscan_axi_v1_0_2=$RDI_DATADIR/xsim/ip/bscan_axi_v1_0_2
+fifo_generator_v13_2_10=$RDI_DATADIR/xsim/ip/fifo_generator_v13_2_10
+dprx_fec_8b10b_v1_0_3=$RDI_DATADIR/xsim/ip/dprx_fec_8b10b_v1_0_3
+pcie_axi4lite_tap_v1_0_2=$RDI_DATADIR/xsim/ip/pcie_axi4lite_tap_v1_0_2
+av_pat_gen_v2_0_2=$RDI_DATADIR/xsim/ip/av_pat_gen_v2_0_2
+polar_v1_1_4=$RDI_DATADIR/xsim/ip/polar_v1_1_4
+v_tpg_v8_2_5=$RDI_DATADIR/xsim/ip/v_tpg_v8_2_5
+tcc_encoder_3gpplte_v4_0_19=$RDI_DATADIR/xsim/ip/tcc_encoder_3gpplte_v4_0_19
+axis_accelerator_adapter_v2_1_18=$RDI_DATADIR/xsim/ip/axis_accelerator_adapter_v2_1_18
+mem_pl_v1_0_2=$RDI_DATADIR/xsim/ip/mem_pl_v1_0_2
+perf_axi_tg_v1_0_13=$RDI_DATADIR/xsim/ip/perf_axi_tg_v1_0_13
+trace_hub_v1_1_0=$RDI_DATADIR/xsim/ip/trace_hub_v1_1_0
+axi_pcie_v2_9_11=$RDI_DATADIR/xsim/ip/axi_pcie_v2_9_11
+axi_emc_v3_0_31=$RDI_DATADIR/xsim/ip/axi_emc_v3_0_31
+tsn_endpoint_ethernet_mac_block_v1_0_16=$RDI_DATADIR/xsim/ip/tsn_endpoint_ethernet_mac_block_v1_0_16
+soft_ecc_proxy_v1_1_1=$RDI_DATADIR/xsim/ip/soft_ecc_proxy_v1_1_1
+axi_apb_bridge_v3_0_20=$RDI_DATADIR/xsim/ip/axi_apb_bridge_v3_0_20
+axis_broadcaster_v1_1_30=$RDI_DATADIR/xsim/ip/axis_broadcaster_v1_1_30
+axis_dwidth_converter_sc_v1_1=$RDI_DATADIR/xsim/ip/axis_dwidth_converter_sc_v1_1
+vid_edid_v1_0_2=$RDI_DATADIR/xsim/ip/vid_edid_v1_0_2
+noc_nidb_v1_0_0=$RDI_DATADIR/xsim/ip/noc_nidb_v1_0_0
+v_vid_in_axi4s_v5_0_4=$RDI_DATADIR/xsim/ip/v_vid_in_axi4s_v5_0_4
+v_dual_splitter_v1_0_11=$RDI_DATADIR/xsim/ip/v_dual_splitter_v1_0_11
+axis_ila_txns_cntr_v1_0_0=$RDI_DATADIR/xsim/ip/axis_ila_txns_cntr_v1_0_0
+pl_fileio_v1_0_0=$RDI_DATADIR/xsim/ip/pl_fileio_v1_0_0
+msm_cpp=$RDI_DATADIR/xsim/ip/msm_cpp
+debug_tcp_server_v1=$RDI_DATADIR/xsim/ip/debug_tcp_server_v1
+v_frmbuf_wr_v2_5_2=$RDI_DATADIR/xsim/ip/v_frmbuf_wr_v2_5_2
+v_smpte_uhdsdi_rx_v1_0_3=$RDI_DATADIR/xsim/ip/v_smpte_uhdsdi_rx_v1_0_3
+mpegtsmux_v1_1_9=$RDI_DATADIR/xsim/ip/mpegtsmux_v1_1_9
+noc_nps_v1_0_1=$RDI_DATADIR/xsim/ip/noc_nps_v1_0_1
+v_multi_scaler_v1_2_6=$RDI_DATADIR/xsim/ip/v_multi_scaler_v1_2_6
+x5io_wizard_v1_0_4=$RDI_DATADIR/xsim/ip/x5io_wizard_v1_0_4
+axi_remapper_rx_v1_0_2=$RDI_DATADIR/xsim/ip/axi_remapper_rx_v1_0_2
+emu_perf_common_v1_0=$RDI_DATADIR/xsim/ip/emu_perf_common_v1_0
+sem_ultra_v3_1_26=$RDI_DATADIR/xsim/ip/sem_ultra_v3_1_26
+axi_utils_v2_0_9=$RDI_DATADIR/xsim/ip/axi_utils_v2_0_9
+v_tc_v6_2_8=$RDI_DATADIR/xsim/ip/v_tc_v6_2_8
+ieee802d3_clause74_fec_v1_0_18=$RDI_DATADIR/xsim/ip/ieee802d3_clause74_fec_v1_0_18
+jesd204c_v4_2_14=$RDI_DATADIR/xsim/ip/jesd204c_v4_2_14
+xtlm=$RDI_DATADIR/xsim/ip/xtlm
+hdmi_acr_ctrl_v1_0_3=$RDI_DATADIR/xsim/ip/hdmi_acr_ctrl_v1_0_3
+icap_arb_v1_0_2=$RDI_DATADIR/xsim/ip/icap_arb_v1_0_2
+nvme_tc_v3_0_6=$RDI_DATADIR/xsim/ip/nvme_tc_v3_0_6
+axi4svideo_bridge_v1_0_18=$RDI_DATADIR/xsim/ip/axi4svideo_bridge_v1_0_18
+jtag_axi=$RDI_DATADIR/xsim/ip/jtag_axi
+axi_intc_v4_1_19=$RDI_DATADIR/xsim/ip/axi_intc_v4_1_19
+v_demosaic_v1_1_11=$RDI_DATADIR/xsim/ip/v_demosaic_v1_1_11
+pcie_jtag_v1_0_1=$RDI_DATADIR/xsim/ip/pcie_jtag_v1_0_1
+xlslice_v1_0_4=$RDI_DATADIR/xsim/ip/xlslice_v1_0_4
+axi_vfifo_ctrl_v2_0_34=$RDI_DATADIR/xsim/ip/axi_vfifo_ctrl_v2_0_34
+gmii_to_rgmii_v4_1_14=$RDI_DATADIR/xsim/ip/gmii_to_rgmii_v4_1_14
+util_reduced_logic_v2_0_6=$RDI_DATADIR/xsim/ip/util_reduced_logic_v2_0_6
+nvmeha_v1_0_12=$RDI_DATADIR/xsim/ip/nvmeha_v1_0_12
+axi_c2c_v1_0_9=$RDI_DATADIR/xsim/ip/axi_c2c_v1_0_9
+ft_prach_v1_2_2=$RDI_DATADIR/xsim/ip/ft_prach_v1_2_2
+v_smpte_uhdsdi_v1_0_11=$RDI_DATADIR/xsim/ip/v_smpte_uhdsdi_v1_0_11
+axi_pmon_v1_0_1=$RDI_DATADIR/xsim/ip/axi_pmon_v1_0_1
+gtwizard_ultrascale_v1_6_16=$RDI_DATADIR/xsim/ip/gtwizard_ultrascale_v1_6_16
+gigantic_mux=$RDI_DATADIR/xsim/ip/gigantic_mux
+displayport_v7_0_24=$RDI_DATADIR/xsim/ip/displayport_v7_0_24
+msm_adapters=$RDI_DATADIR/xsim/ip/msm_adapters
+v_frmbuf_wr_v2_2_10=$RDI_DATADIR/xsim/ip/v_frmbuf_wr_v2_2_10
+fast_adapter_v1_0_8=$RDI_DATADIR/xsim/ip/fast_adapter_v1_0_8
+rst_vip_v1_0_6=$RDI_DATADIR/xsim/ip/rst_vip_v1_0_6
+v_hdmi_phy1_v1_0_12=$RDI_DATADIR/xsim/ip/v_hdmi_phy1_v1_0_12
+pcie_qdma_mailbox_v1_0_5=$RDI_DATADIR/xsim/ip/pcie_qdma_mailbox_v1_0_5
+pr_decoupler_v1_0_11=$RDI_DATADIR/xsim/ip/pr_decoupler_v1_0_11
+v_hdmi_tx1_v1_0_8=$RDI_DATADIR/xsim/ip/v_hdmi_tx1_v1_0_8
+processing_system7_v5_5_6=$RDI_DATADIR/xsim/ip/processing_system7_v5_5_6
+axis_cap_ctrl_v1_0_1=$RDI_DATADIR/xsim/ip/axis_cap_ctrl_v1_0_1
+common_rpc_v1=$RDI_DATADIR/xsim/ip/common_rpc_v1
+xtlm_ipc_v1_0=$RDI_DATADIR/xsim/ip/xtlm_ipc_v1_0
+v_tpg_v8_1_10=$RDI_DATADIR/xsim/ip/v_tpg_v8_1_10
+v_hcresampler_v1_1_11=$RDI_DATADIR/xsim/ip/v_hcresampler_v1_1_11
+axi_interface_monitor_v1_1_0=$RDI_DATADIR/xsim/ip/axi_interface_monitor_v1_1_0
+axi_intc_v4_1=$RDI_DATADIR/xsim/ip/axi_intc_v4_1
+mammoth_transcode_v1_0_2=$RDI_DATADIR/xsim/ip/mammoth_transcode_v1_0_2
+axi_timebase_wdt_v3_0_23=$RDI_DATADIR/xsim/ip/axi_timebase_wdt_v3_0_23
+floating_point_v7_0_23=$RDI_DATADIR/xsim/ip/floating_point_v7_0_23
+displayport_v9_0_9=$RDI_DATADIR/xsim/ip/displayport_v9_0_9
+noc_hbm_v1_0_0=$RDI_DATADIR/xsim/ip/noc_hbm_v1_0_0
+versal_cips_ps_vip_v1_0_9=$RDI_DATADIR/xsim/ip/versal_cips_ps_vip_v1_0_9
+amm_axi_bridge_v1_0_17=$RDI_DATADIR/xsim/ip/amm_axi_bridge_v1_0_17
+v_vid_gt_bridge_v2_0_5=$RDI_DATADIR/xsim/ip/v_vid_gt_bridge_v2_0_5
+v_gamma_lut_v1_1_11=$RDI_DATADIR/xsim/ip/v_gamma_lut_v1_1_11
+rld3_pl_v1_0_14=$RDI_DATADIR/xsim/ip/rld3_pl_v1_0_14
+l_ethernet_v3_3_10=$RDI_DATADIR/xsim/ip/l_ethernet_v3_3_10
+ernic_v4_0_3=$RDI_DATADIR/xsim/ip/ernic_v4_0_3
+fec_5g_common_v1_1_4=$RDI_DATADIR/xsim/ip/fec_5g_common_v1_1_4
+sim_qdma_sc_v1_0=$RDI_DATADIR/xsim/ip/sim_qdma_sc_v1_0
+dfx_bitstream_monitor_v1_0_5=$RDI_DATADIR/xsim/ip/dfx_bitstream_monitor_v1_0_5
+axi_mmu_v2_1_29=$RDI_DATADIR/xsim/ip/axi_mmu_v2_1_29
+v_sdi_rx_vid_bridge_v2_0_2=$RDI_DATADIR/xsim/ip/v_sdi_rx_vid_bridge_v2_0_2
+v_csc_v1_1_11=$RDI_DATADIR/xsim/ip/v_csc_v1_1_11
+usxgmii_v1_2_17=$RDI_DATADIR/xsim/ip/usxgmii_v1_2_17
+trace_s2mm_v2_0_1=$RDI_DATADIR/xsim/ip/trace_s2mm_v2_0_1
+ieee802d3_rs_fec_v2_0_22=$RDI_DATADIR/xsim/ip/ieee802d3_rs_fec_v2_0_22
+v_hdmi_tx_v3_0_4=$RDI_DATADIR/xsim/ip/v_hdmi_tx_v3_0_4
+ldpc_5gnr_v1_0_3=$RDI_DATADIR/xsim/ip/ldpc_5gnr_v1_0_3
+rama_v1_1_17_lib=$RDI_DATADIR/xsim/ip/rama_v1_1_17_lib
+rs_decoder_v9_0_22=$RDI_DATADIR/xsim/ip/rs_decoder_v9_0_22
+ieee802d3_400g_rs_fec_v3_0_2=$RDI_DATADIR/xsim/ip/ieee802d3_400g_rs_fec_v3_0_2
+xscl=$RDI_DATADIR/xsim/ip/xscl
+iomodule_v3_1_10=$RDI_DATADIR/xsim/ip/iomodule_v3_1_10
+axis_mem_v1_0_2=$RDI_DATADIR/xsim/ip/axis_mem_v1_0_2
+axi_tft_v2_0_28=$RDI_DATADIR/xsim/ip/axi_tft_v2_0_28
+fc32_rs_fec_v1_0_27=$RDI_DATADIR/xsim/ip/fc32_rs_fec_v1_0_27
+axi_remapper_tx_v1_0_2=$RDI_DATADIR/xsim/ip/axi_remapper_tx_v1_0_2
+dfx_axi_shutdown_manager_v1_0_3=$RDI_DATADIR/xsim/ip/dfx_axi_shutdown_manager_v1_0_3
+util_vector_logic_v2_0_4=$RDI_DATADIR/xsim/ip/util_vector_logic_v2_0_4
+axis_ila_intf_v1_0_2=$RDI_DATADIR/xsim/ip/axis_ila_intf_v1_0_2
+axi_amm_bridge_v1_0_21=$RDI_DATADIR/xsim/ip/axi_amm_bridge_v1_0_21
+xpm_cdc_gen_v1_0_4=$RDI_DATADIR/xsim/ip/xpm_cdc_gen_v1_0_4
+c_accum_v12_0_18=$RDI_DATADIR/xsim/ip/c_accum_v12_0_18
+cmac_v2_6_15=$RDI_DATADIR/xsim/ip/cmac_v2_6_15
+axi_firewall_v1_2_6=$RDI_DATADIR/xsim/ip/axi_firewall_v1_2_6
+dft_v4_2_8=$RDI_DATADIR/xsim/ip/dft_v4_2_8
+ernic_v3_1_5=$RDI_DATADIR/xsim/ip/ernic_v3_1_5
+xsdbs_v1_0_4=$RDI_DATADIR/xsim/ip/xsdbs_v1_0_4
+stm_v1_0=$RDI_DATADIR/xsim/ip/stm_v1_0
+axi_timer_v2_0_33=$RDI_DATADIR/xsim/ip/axi_timer_v2_0_33
+lmb_v10_v3_0_14=$RDI_DATADIR/xsim/ip/lmb_v10_v3_0_14
+v_deinterlacer_v5_1_4=$RDI_DATADIR/xsim/ip/v_deinterlacer_v5_1_4
+axis_data_fifo_v1_1_32=$RDI_DATADIR/xsim/ip/axis_data_fifo_v1_1_32
+hw_trace=$RDI_DATADIR/xsim/ip/hw_trace
+sim_xdma_sc_v1=$RDI_DATADIR/xsim/ip/sim_xdma_sc_v1
+axi_vip_v1_1_17=$RDI_DATADIR/xsim/ip/axi_vip_v1_1_17
+mipi_dphy_v4_3_11=$RDI_DATADIR/xsim/ip/mipi_dphy_v4_3_11
+ieee802d3_50g_rs_fec_v2_0_17=$RDI_DATADIR/xsim/ip/ieee802d3_50g_rs_fec_v2_0_17
+xdfe_equalizer_v1_0_9=$RDI_DATADIR/xsim/ip/xdfe_equalizer_v1_0_9
+flexo_100g_rs_fec_v1_0_28=$RDI_DATADIR/xsim/ip/flexo_100g_rs_fec_v1_0_28
+v_uhdsdi_audio_v2_0_8=$RDI_DATADIR/xsim/ip/v_uhdsdi_audio_v2_0_8
+v_tc_v6_1_14=$RDI_DATADIR/xsim/ip/v_tc_v6_1_14
+ddr4_pl_phy_v1_0_2=$RDI_DATADIR/xsim/ip/ddr4_pl_phy_v1_0_2
+sem_v4_1_15=$RDI_DATADIR/xsim/ip/sem_v4_1_15
+c_shift_ram_v12_0_17=$RDI_DATADIR/xsim/ip/c_shift_ram_v12_0_17
+lib_pkg_v1_0_4=$RDI_DATADIR/xsim/ip/lib_pkg_v1_0_4
+bs_switch_v1_0_4=$RDI_DATADIR/xsim/ip/bs_switch_v1_0_4
+shell_utils_msp432_bsl_crc_gen_v1_0_2=$RDI_DATADIR/xsim/ip/shell_utils_msp432_bsl_crc_gen_v1_0_2
+axis_dbg_sync_v1_0_1=$RDI_DATADIR/xsim/ip/axis_dbg_sync_v1_0_1
+high_speed_selectio_wiz_v3_6_9=$RDI_DATADIR/xsim/ip/high_speed_selectio_wiz_v3_6_9
+emc_common_v3_0_7=$RDI_DATADIR/xsim/ip/emc_common_v3_0_7
+fir_compiler_v7_2_22=$RDI_DATADIR/xsim/ip/fir_compiler_v7_2_22
+microblaze_mcs_v2_3_7=$RDI_DATADIR/xsim/ip/microblaze_mcs_v2_3_7
+oran_radio_if_v3_2_0=$RDI_DATADIR/xsim/ip/oran_radio_if_v3_2_0
+i2s_transmitter_v1_0_8=$RDI_DATADIR/xsim/ip/i2s_transmitter_v1_0_8
+floating_point_v7_1_18=$RDI_DATADIR/xsim/ip/floating_point_v7_1_18
+sim_trig_v1_0_12=$RDI_DATADIR/xsim/ip/sim_trig_v1_0_12
+hbm2e_pl_v1_0_1=$RDI_DATADIR/xsim/ip/hbm2e_pl_v1_0_1
+axis_protocol_checker_v2_0_15=$RDI_DATADIR/xsim/ip/axis_protocol_checker_v2_0_15
+vitis_deadlock_detector_v1_0_2=$RDI_DATADIR/xsim/ip/vitis_deadlock_detector_v1_0_2
+axi_msg_v1_0_11=$RDI_DATADIR/xsim/ip/axi_msg_v1_0_11
+c_compare_v12_0_9=$RDI_DATADIR/xsim/ip/c_compare_v12_0_9
+c_mux_bus_v12_0_9=$RDI_DATADIR/xsim/ip/c_mux_bus_v12_0_9
+xsdbm_v3_0_2=$RDI_DATADIR/xsim/ip/xsdbm_v3_0_2
+rld3_pl_phy_v1_0_2=$RDI_DATADIR/xsim/ip/rld3_pl_phy_v1_0_2
+mpram_v1_0_4=$RDI_DATADIR/xsim/ip/mpram_v1_0_4
+oddr_v1_0_4=$RDI_DATADIR/xsim/ip/oddr_v1_0_4
+bs_mux_v1_0_1=$RDI_DATADIR/xsim/ip/bs_mux_v1_0_1
+ptp_1588_timer_syncer_v2_0_6=$RDI_DATADIR/xsim/ip/ptp_1588_timer_syncer_v2_0_6
+dfx_controller_v1_0_7=$RDI_DATADIR/xsim/ip/dfx_controller_v1_0_7
+noc_ncrb_v1_0_0=$RDI_DATADIR/xsim/ip/noc_ncrb_v1_0_0
+rs_toolbox_v9_0_13=$RDI_DATADIR/xsim/ip/rs_toolbox_v9_0_13
+pc_cfr_v8_0_2=$RDI_DATADIR/xsim/ip/pc_cfr_v8_0_2
+multi_channel_25g_rs_fec_v1_0_26=$RDI_DATADIR/xsim/ip/multi_channel_25g_rs_fec_v1_0_26
+lmb_bram_if_cntlr_v4_0_24=$RDI_DATADIR/xsim/ip/lmb_bram_if_cntlr_v4_0_24
+hdcp_keymngmt_blk_v1_0_2=$RDI_DATADIR/xsim/ip/hdcp_keymngmt_blk_v1_0_2
+axi_lite_ipif_v3_0=$RDI_DATADIR/xsim/ip/axi_lite_ipif_v3_0
+compact_gt_v1_0_17=$RDI_DATADIR/xsim/ip/compact_gt_v1_0_17
+v_vcresampler_v1_1_11=$RDI_DATADIR/xsim/ip/v_vcresampler_v1_1_11
+mipi_dsi2_rx_ctrl_v1_0_0=$RDI_DATADIR/xsim/ip/mipi_dsi2_rx_ctrl_v1_0_0
+axi_quad_spi_v3_2_30=$RDI_DATADIR/xsim/ip/axi_quad_spi_v3_2_30
+div_gen_v5_1_22=$RDI_DATADIR/xsim/ip/div_gen_v5_1_22
+v_frmbuf_rd_v2_2_10=$RDI_DATADIR/xsim/ip/v_frmbuf_rd_v2_2_10
+can_v5_1_3=$RDI_DATADIR/xsim/ip/can_v5_1_3
+axi_pcie3_v3_0_30=$RDI_DATADIR/xsim/ip/axi_pcie3_v3_0_30
+emb_mem_gen_v1_0_9=$RDI_DATADIR/xsim/ip/emb_mem_gen_v1_0_9
+noc2_xbr2x4_v1_0_0=$RDI_DATADIR/xsim/ip/noc2_xbr2x4_v1_0_0
+xbip_counter_v3_0_9=$RDI_DATADIR/xsim/ip/xbip_counter_v3_0_9
+axi_jtag_v1_0_2=$RDI_DATADIR/xsim/ip/axi_jtag_v1_0_2
+tmr_manager_v1_0_12=$RDI_DATADIR/xsim/ip/tmr_manager_v1_0_12
+noc_nmu_sim_v1_0_0=$RDI_DATADIR/xsim/ip/noc_nmu_sim_v1_0_0
+mipi_csi2_rx_ctrl_v1_0_10=$RDI_DATADIR/xsim/ip/mipi_csi2_rx_ctrl_v1_0_10
+axi_bram_ctrl_v4_0_15=$RDI_DATADIR/xsim/ip/axi_bram_ctrl_v4_0_15
+axi_gpio_v2_0_33=$RDI_DATADIR/xsim/ip/axi_gpio_v2_0_33
+rs_encoder_v9_0_21=$RDI_DATADIR/xsim/ip/rs_encoder_v9_0_21
+rwd_tlmmodel_v1=$RDI_DATADIR/xsim/ip/rwd_tlmmodel_v1
+axi_bram_ctrl_v4_1_10=$RDI_DATADIR/xsim/ip/axi_bram_ctrl_v4_1_10
+uram_rd_back_v1_0_4=$RDI_DATADIR/xsim/ip/uram_rd_back_v1_0_4
+lib_fifo_v1_0_19=$RDI_DATADIR/xsim/ip/lib_fifo_v1_0_19
+canfd_v3_0_10=$RDI_DATADIR/xsim/ip/canfd_v3_0_10
+hdcp22_rng_v1_0_3=$RDI_DATADIR/xsim/ip/hdcp22_rng_v1_0_3
+xfft_v9_1_12=$RDI_DATADIR/xsim/ip/xfft_v9_1_12
+axi_memory_init_v1_0_12=$RDI_DATADIR/xsim/ip/axi_memory_init_v1_0_12
+common_cpp_v1_0=$RDI_DATADIR/xsim/ip/common_cpp_v1_0
+ai_pl_trig=$RDI_DATADIR/xsim/ip/ai_pl_trig
+c_reg_fd_v12_0_9=$RDI_DATADIR/xsim/ip/c_reg_fd_v12_0_9
+axi_mm2s_mapper_v1_1_30=$RDI_DATADIR/xsim/ip/axi_mm2s_mapper_v1_1_30
+ldpc_v2_0_15=$RDI_DATADIR/xsim/ip/ldpc_v2_0_15
+sim_cpu_v1_0=$RDI_DATADIR/xsim/ip/sim_cpu_v1_0
+axi_data_fifo_v2_1_30=$RDI_DATADIR/xsim/ip/axi_data_fifo_v2_1_30
+g709_fec_v2_4_10=$RDI_DATADIR/xsim/ip/g709_fec_v2_4_10
+axi_mcdma_v1_1_12=$RDI_DATADIR/xsim/ip/axi_mcdma_v1_1_12
+axi_lmb_bridge_v1_0_3=$RDI_DATADIR/xsim/ip/axi_lmb_bridge_v1_0_3
+lte_fft_v2_1_10=$RDI_DATADIR/xsim/ip/lte_fft_v2_1_10
+axi_interconnect_v1_7_23=$RDI_DATADIR/xsim/ip/axi_interconnect_v1_7_23
+axi_dwidth_converter_v2_1_31=$RDI_DATADIR/xsim/ip/axi_dwidth_converter_v2_1_31
+axi_usb2_device_v5_0_32=$RDI_DATADIR/xsim/ip/axi_usb2_device_v5_0_32
+axi_hwicap_v3_0_35=$RDI_DATADIR/xsim/ip/axi_hwicap_v3_0_35
+ldpc_5gnr_lite_v1_0_2=$RDI_DATADIR/xsim/ip/ldpc_5gnr_lite_v1_0_2
+fifo_generator_v13_1_5=$RDI_DATADIR/xsim/ip/fifo_generator_v13_1_5
+axi_protocol_checker_v2_0_17=$RDI_DATADIR/xsim/ip/axi_protocol_checker_v2_0_17
+c_counter_binary_v12_0_19=$RDI_DATADIR/xsim/ip/c_counter_binary_v12_0_19
+axis_ila_pp_v1_0_2=$RDI_DATADIR/xsim/ip/axis_ila_pp_v1_0_2
+mem_tg_v1_0_13=$RDI_DATADIR/xsim/ip/mem_tg_v1_0_13
+xbip_utils_v3_0_13=$RDI_DATADIR/xsim/ip/xbip_utils_v3_0_13
+aie_xtlm_v1_0_0=$RDI_DATADIR/xsim/ip/aie_xtlm_v1_0_0
+xtlm_ap_ctrl_v1_0=$RDI_DATADIR/xsim/ip/xtlm_ap_ctrl_v1_0
+v_vid_in_axi4s_v4_0_11=$RDI_DATADIR/xsim/ip/v_vid_in_axi4s_v4_0_11
+cmac_usplus_v3_1_17=$RDI_DATADIR/xsim/ip/cmac_usplus_v3_1_17
+xdfe_common_v1_0_3=$RDI_DATADIR/xsim/ip/xdfe_common_v1_0_3
+viterbi_v9_1_17=$RDI_DATADIR/xsim/ip/viterbi_v9_1_17
+xdfe_nr_prach_v2_0_3=$RDI_DATADIR/xsim/ip/xdfe_nr_prach_v2_0_3
+v_smpte_sdi_v3_0_11=$RDI_DATADIR/xsim/ip/v_smpte_sdi_v3_0_11
+mdm_v3_2=$RDI_DATADIR/xsim/ip/mdm_v3_2
+clk_vip_v1_0_4=$RDI_DATADIR/xsim/ip/clk_vip_v1_0_4
+mdm_v3_2_26=$RDI_DATADIR/xsim/ip/mdm_v3_2_26
+xtlm_trace_model_v1_0=$RDI_DATADIR/xsim/ip/xtlm_trace_model_v1_0
+xbip_dsp48_multadd_v3_0_9=$RDI_DATADIR/xsim/ip/xbip_dsp48_multadd_v3_0_9
+noc2_nsu_v1_0_1=$RDI_DATADIR/xsim/ip/noc2_nsu_v1_0_1
+timer_sync_1588_v1_2_5=$RDI_DATADIR/xsim/ip/timer_sync_1588_v1_2_5
+axis_ila_ct_v1_0_1=$RDI_DATADIR/xsim/ip/axis_ila_ct_v1_0_1
+dcmac_v2_4_0=$RDI_DATADIR/xsim/ip/dcmac_v2_4_0
+v_dp_axi4s_vid_out_v1_0_8=$RDI_DATADIR/xsim/ip/v_dp_axi4s_vid_out_v1_0_8
+xbip_dsp48_acc_v3_0_9=$RDI_DATADIR/xsim/ip/xbip_dsp48_acc_v3_0_9
+noc2_xbr4x2_v1_0_0=$RDI_DATADIR/xsim/ip/noc2_xbr4x2_v1_0_0
+sd_fec_v1_1_14=$RDI_DATADIR/xsim/ip/sd_fec_v1_1_14
+xbip_accum_v3_0_9=$RDI_DATADIR/xsim/ip/xbip_accum_v3_0_9
+displayport_v8_1_9=$RDI_DATADIR/xsim/ip/displayport_v8_1_9
+ilknf_v1_3_4=$RDI_DATADIR/xsim/ip/ilknf_v1_3_4
+v_letterbox_v1_1_11=$RDI_DATADIR/xsim/ip/v_letterbox_v1_1_11
+iomodule_v3_0=$RDI_DATADIR/xsim/ip/iomodule_v3_0
+dbg_intf=$RDI_DATADIR/xsim/ip/dbg_intf
+cpm5_v1_0_16=$RDI_DATADIR/xsim/ip/cpm5_v1_0_16
+ieee802d3_25g_rs_fec_v1_0_30=$RDI_DATADIR/xsim/ip/ieee802d3_25g_rs_fec_v1_0_30
+jesd204_v7_2_20=$RDI_DATADIR/xsim/ip/jesd204_v7_2_20
+clk_gen_sim_v1_0_4=$RDI_DATADIR/xsim/ip/clk_gen_sim_v1_0_4
+g709_rs_decoder_v2_2_14=$RDI_DATADIR/xsim/ip/g709_rs_decoder_v2_2_14
+cpri_v8_11_20=$RDI_DATADIR/xsim/ip/cpri_v8_11_20
+ieee802d3_200g_rs_fec_v2_0_11=$RDI_DATADIR/xsim/ip/ieee802d3_200g_rs_fec_v2_0_11
+v_warp_init_v1_1_4=$RDI_DATADIR/xsim/ip/v_warp_init_v1_1_4
+v_hscaler_v1_1_11=$RDI_DATADIR/xsim/ip/v_hscaler_v1_1_11
+spdif_v2_0_29=$RDI_DATADIR/xsim/ip/spdif_v2_0_29
+func_emu_util_v1_0=$RDI_DATADIR/xsim/ip/func_emu_util_v1_0
+axi_uart16550_v2_0_33=$RDI_DATADIR/xsim/ip/axi_uart16550_v2_0_33
+axi_clock_converter_v2_1_30=$RDI_DATADIR/xsim/ip/axi_clock_converter_v2_1_30
+dprx_v1_0_4=$RDI_DATADIR/xsim/ip/dprx_v1_0_4
+mrmac_v2_3_0=$RDI_DATADIR/xsim/ip/mrmac_v2_3_0
+cic_compiler_v4_0_19=$RDI_DATADIR/xsim/ip/cic_compiler_v4_0_19
+c_gate_bit_v12_0_9=$RDI_DATADIR/xsim/ip/c_gate_bit_v12_0_9
+noc_sc_v1_0_0_legacy=$RDI_DATADIR/xsim/ip/noc_sc_v1_0_0_legacy
+ten_gig_eth_pcs_pma_v6_0_27=$RDI_DATADIR/xsim/ip/ten_gig_eth_pcs_pma_v6_0_27
+xdfe_cc_filter_v1_1_4=$RDI_DATADIR/xsim/ip/xdfe_cc_filter_v1_1_4
+axi_crossbar_v2_1_32=$RDI_DATADIR/xsim/ip/axi_crossbar_v2_1_32
+axis_itct_v1_0_1=$RDI_DATADIR/xsim/ip/axis_itct_v1_0_1
+xbip_pipe_v3_0_9=$RDI_DATADIR/xsim/ip/xbip_pipe_v3_0_9
+tsn_temac_v1_0_11=$RDI_DATADIR/xsim/ip/tsn_temac_v1_0_11
+lib_srl_fifo_v1_0_4=$RDI_DATADIR/xsim/ip/lib_srl_fifo_v1_0_4
+ecc_v2_0_16=$RDI_DATADIR/xsim/ip/ecc_v2_0_16
+mutex_v2_1_13=$RDI_DATADIR/xsim/ip/mutex_v2_1_13
+lmb_bram_if_cntlr_v4_0=$RDI_DATADIR/xsim/ip/lmb_bram_if_cntlr_v4_0
+ahblite_axi_bridge_v3_0_26=$RDI_DATADIR/xsim/ip/ahblite_axi_bridge_v3_0_26
+tmr_inject_v1_0_6=$RDI_DATADIR/xsim/ip/tmr_inject_v1_0_6
+qdriv_pl_phy_v1_0_2=$RDI_DATADIR/xsim/ip/qdriv_pl_phy_v1_0_2
+tcc_decoder_3gppmm_v2_0_27=$RDI_DATADIR/xsim/ip/tcc_decoder_3gppmm_v2_0_27
+ai_noc=$RDI_DATADIR/xsim/ip/ai_noc
+util_idelay_ctrl_v1_0_4=$RDI_DATADIR/xsim/ip/util_idelay_ctrl_v1_0_4
+noc2_nps_v1_0_0=$RDI_DATADIR/xsim/ip/noc2_nps_v1_0_0
+etrnic_v1_1_8=$RDI_DATADIR/xsim/ip/etrnic_v1_1_8
+axi_ahblite_bridge_v3_0_28=$RDI_DATADIR/xsim/ip/axi_ahblite_bridge_v3_0_28
+ieee802d3_50g_rs_fec_v1_0_24=$RDI_DATADIR/xsim/ip/ieee802d3_50g_rs_fec_v1_0_24
+noc_hbm_nmu_sim_v1_0_0=$RDI_DATADIR/xsim/ip/noc_hbm_nmu_sim_v1_0_0
+noc_npp_rptr_v1_0_0=$RDI_DATADIR/xsim/ip/noc_npp_rptr_v1_0_0
+dfx_decoupler_v1_0_9=$RDI_DATADIR/xsim/ip/dfx_decoupler_v1_0_9
+dsp_macro_v1_0_6=$RDI_DATADIR/xsim/ip/dsp_macro_v1_0_6
+cpm5n_v1_0_8=$RDI_DATADIR/xsim/ip/cpm5n_v1_0_8
+axi_dma_v7_1_32=$RDI_DATADIR/xsim/ip/axi_dma_v7_1_32
+sim_ipc_multi_intf_v1_0=$RDI_DATADIR/xsim/ip/sim_ipc_multi_intf_v1_0
+hdcp_v1_0_5=$RDI_DATADIR/xsim/ip/hdcp_v1_0_5
+axi_epc_v2_0_34=$RDI_DATADIR/xsim/ip/axi_epc_v2_0_34
+tmr_comparator_v1_0_7=$RDI_DATADIR/xsim/ip/tmr_comparator_v1_0_7
+v_warp_filter_v1_1_4=$RDI_DATADIR/xsim/ip/v_warp_filter_v1_1_4
+ai_pl=$RDI_DATADIR/xsim/ip/ai_pl
+xdfe_nlf_v1_1_1=$RDI_DATADIR/xsim/ip/xdfe_nlf_v1_1_1
+v_scenechange_v1_1_6=$RDI_DATADIR/xsim/ip/v_scenechange_v1_1_6
+vfb_v1_0_25=$RDI_DATADIR/xsim/ip/vfb_v1_0_25
+axis_interconnect_v1_1_23=$RDI_DATADIR/xsim/ip/axis_interconnect_v1_1_23
+xlconstant_v1_1_9=$RDI_DATADIR/xsim/ip/xlconstant_v1_1_9
+adc_dac_if_phy_v1_0_0=$RDI_DATADIR/xsim/ip/adc_dac_if_phy_v1_0_0
+mult_gen_v12_0_21=$RDI_DATADIR/xsim/ip/mult_gen_v12_0_21
+i2s_receiver_v1_0_8=$RDI_DATADIR/xsim/ip/i2s_receiver_v1_0_8
+qdriv_pl_v1_0_13=$RDI_DATADIR/xsim/ip/qdriv_pl_v1_0_13
+xbip_dsp48_wrapper_v3_0_6=$RDI_DATADIR/xsim/ip/xbip_dsp48_wrapper_v3_0_6
+lut_buffer_v2_0_1=$RDI_DATADIR/xsim/ip/lut_buffer_v2_0_1
+vid_phy_controller_v2_2_18=$RDI_DATADIR/xsim/ip/vid_phy_controller_v2_2_18
+advanced_io_wizard_phy_v1_0_3=$RDI_DATADIR/xsim/ip/advanced_io_wizard_phy_v1_0_3
+uhdsdi_gt_v2_1_4=$RDI_DATADIR/xsim/ip/uhdsdi_gt_v2_1_4
+axi_dbg_hub=$RDI_DATADIR/xsim/ip/axi_dbg_hub
+anlt_subcore_ip_v1_0_2=$RDI_DATADIR/xsim/ip/anlt_subcore_ip_v1_0_2
+xxv_ethernet_v4_1_10=$RDI_DATADIR/xsim/ip/xxv_ethernet_v4_1_10
+cdcam_v1_1_0=$RDI_DATADIR/xsim/ip/cdcam_v1_1_0
+pci32_v5_0_13=$RDI_DATADIR/xsim/ip/pci32_v5_0_13
+v_mix_v5_2_9=$RDI_DATADIR/xsim/ip/v_mix_v5_2_9
+pci64_v5_0_12=$RDI_DATADIR/xsim/ip/pci64_v5_0_12
+in_system_ibert_v1_0_22=$RDI_DATADIR/xsim/ip/in_system_ibert_v1_0_22
+proc_sys_reset_v5_0_15=$RDI_DATADIR/xsim/ip/proc_sys_reset_v5_0_15
+axis_dwidth_converter_v1_1_30=$RDI_DATADIR/xsim/ip/axis_dwidth_converter_v1_1_30
+sim_ddr_v1_0=$RDI_DATADIR/xsim/ip/sim_ddr_v1_0
+sim_qdma_cpp_v1_0=$RDI_DATADIR/xsim/ip/sim_qdma_cpp_v1_0
+axi_traffic_gen_v3_0_17=$RDI_DATADIR/xsim/ip/axi_traffic_gen_v3_0_17
+v_hdmi_rx_v3_0_4=$RDI_DATADIR/xsim/ip/v_hdmi_rx_v3_0_4
+xdfe_resampler_v1_0_9=$RDI_DATADIR/xsim/ip/xdfe_resampler_v1_0_9
+zynq_ultra_ps_e_v3_3_12=$RDI_DATADIR/xsim/ip/zynq_ultra_ps_e_v3_3_12
+axi_i3c_v1_0_0=$RDI_DATADIR/xsim/ip/axi_i3c_v1_0_0
+g709_rs_encoder_v2_2_12=$RDI_DATADIR/xsim/ip/g709_rs_encoder_v2_2_12
+xpm=$RDI_DATADIR/xsim/ip/xpm
+dptx_v1_0_4=$RDI_DATADIR/xsim/ip/dptx_v1_0_4
+v_axi4s_remap_v1_1_10=$RDI_DATADIR/xsim/ip/v_axi4s_remap_v1_1_10
+tri_mode_ethernet_mac_v9_0_32=$RDI_DATADIR/xsim/ip/tri_mode_ethernet_mac_v9_0_32
+xbip_bram18k_v3_0_9=$RDI_DATADIR/xsim/ip/xbip_bram18k_v3_0_9
+shell_utils_build_info_v2_0_0=$RDI_DATADIR/xsim/ip/shell_utils_build_info_v2_0_0
+cordic_v6_0_22=$RDI_DATADIR/xsim/ip/cordic_v6_0_22
+sim_xdma_cpp_v1=$RDI_DATADIR/xsim/ip/sim_xdma_cpp_v1
+axi_hbicap_v1_0_7=$RDI_DATADIR/xsim/ip/axi_hbicap_v1_0_7
+zynq_ultra_ps_e_vip_v1_0_17=$RDI_DATADIR/xsim/ip/zynq_ultra_ps_e_vip_v1_0_17
+gtwizard_ultrascale_v1_5_4=$RDI_DATADIR/xsim/ip/gtwizard_ultrascale_v1_5_4
+remote_port_c_v4=$RDI_DATADIR/xsim/ip/remote_port_c_v4
+axi_vdma_v6_3_19=$RDI_DATADIR/xsim/ip/axi_vdma_v6_3_19
+x5io_wizard_phy_v1_0_1=$RDI_DATADIR/xsim/ip/x5io_wizard_phy_v1_0_1
+tcc_encoder_3gpp_v5_0_22=$RDI_DATADIR/xsim/ip/tcc_encoder_3gpp_v5_0_22
+axis_combiner_v1_1_29=$RDI_DATADIR/xsim/ip/axis_combiner_v1_1_29
+microblaze_v9_5_5=$RDI_DATADIR/xsim/ip/microblaze_v9_5_5
+advanced_io_wizard_v1_0_13=$RDI_DATADIR/xsim/ip/advanced_io_wizard_v1_0_13
+lib_cdc_v1_0_3=$RDI_DATADIR/xsim/ip/lib_cdc_v1_0_3
+axis_ila_adv_trig_v1_0_1=$RDI_DATADIR/xsim/ip/axis_ila_adv_trig_v1_0_1
+qdma_v5_0_9=$RDI_DATADIR/xsim/ip/qdma_v5_0_9
+ddr4_pl_v1_0_14=$RDI_DATADIR/xsim/ip/ddr4_pl_v1_0_14
+noc_mc_ddr5_phy_v1_0_1=$RDI_DATADIR/xsim/ip/noc_mc_ddr5_phy_v1_0_1
+xtlm_simple_interconnect_v1_0=$RDI_DATADIR/xsim/ip/xtlm_simple_interconnect_v1_0
+axi_sg_v4_1_18=$RDI_DATADIR/xsim/ip/axi_sg_v4_1_18
+xdfe_cc_mixer_v2_0_4=$RDI_DATADIR/xsim/ip/xdfe_cc_mixer_v2_0_4
+processing_system7_vip_v1_0_19=$RDI_DATADIR/xsim/ip/processing_system7_vip_v1_0_19
+mipi_dsi_tx_ctrl_v1_0_9=$RDI_DATADIR/xsim/ip/mipi_dsi_tx_ctrl_v1_0_9
+microblaze_riscv_v1_0_2=$RDI_DATADIR/xsim/ip/microblaze_riscv_v1_0_2
+cpm4_v1_0_16=$RDI_DATADIR/xsim/ip/cpm4_v1_0_16
+xbip_multadd_v3_0_20=$RDI_DATADIR/xsim/ip/xbip_multadd_v3_0_20
+axis_data_fifo_v2_0_13=$RDI_DATADIR/xsim/ip/axis_data_fifo_v2_0_13
+ltlib_v1_0_2=$RDI_DATADIR/xsim/ip/ltlib_v1_0_2
+axis_switch_sc_v1_1=$RDI_DATADIR/xsim/ip/axis_switch_sc_v1_1
+sim_clk_gen_v1_0_4=$RDI_DATADIR/xsim/ip/sim_clk_gen_v1_0_4
+xdfe_fft_v1_0_7=$RDI_DATADIR/xsim/ip/xdfe_fft_v1_0_7
+hsdp_trace_v2_0_2=$RDI_DATADIR/xsim/ip/hsdp_trace_v2_0_2
+blk_mem_gen_v8_4_8=$RDI_DATADIR/xsim/ip/blk_mem_gen_v8_4_8
+cam_blk_lib_v1_1_0=$RDI_DATADIR/xsim/ip/cam_blk_lib_v1_1_0
+tmr_voter_v1_0_6=$RDI_DATADIR/xsim/ip/tmr_voter_v1_0_6
+util_ff_v1_0_3=$RDI_DATADIR/xsim/ip/util_ff_v1_0_3
+interrupt_control_v3_1_5=$RDI_DATADIR/xsim/ip/interrupt_control_v3_1_5
+xdfe_ofdm_v2_1_0=$RDI_DATADIR/xsim/ip/xdfe_ofdm_v2_1_0
+audio_clock_recovery_unit_v1_0_4=$RDI_DATADIR/xsim/ip/audio_clock_recovery_unit_v1_0_4
+ten_gig_eth_mac_v15_1_12=$RDI_DATADIR/xsim/ip/ten_gig_eth_mac_v15_1_12
+axi_protocol_converter_v2_1_31=$RDI_DATADIR/xsim/ip/axi_protocol_converter_v2_1_31
+xbip_dsp48_mult_v3_0_9=$RDI_DATADIR/xsim/ip/xbip_dsp48_mult_v3_0_9
+tmr_sem_v1_0_26=$RDI_DATADIR/xsim/ip/tmr_sem_v1_0_26
+v_frmbuf_rd_v2_4_3=$RDI_DATADIR/xsim/ip/v_frmbuf_rd_v2_4_3
+cmpy_v6_0_24=$RDI_DATADIR/xsim/ip/cmpy_v6_0_24
+ta_dma_v1_0_15=$RDI_DATADIR/xsim/ip/ta_dma_v1_0_15
+v_tpg_v8_0_14=$RDI_DATADIR/xsim/ip/v_tpg_v8_0_14
+axi_tlm_ext_v1_0=$RDI_DATADIR/xsim/ip/axi_tlm_ext_v1_0
+axi_iic_v2_1_7=$RDI_DATADIR/xsim/ip/axi_iic_v2_1_7
+c_addsub_v12_0_18=$RDI_DATADIR/xsim/ip/c_addsub_v12_0_18
+audio_tpg_v1_0_2=$RDI_DATADIR/xsim/ip/audio_tpg_v1_0_2
+axi_tg_sc_v1_0=$RDI_DATADIR/xsim/ip/axi_tg_sc_v1_0
+v_vid_sdi_tx_bridge_v2_0_2=$RDI_DATADIR/xsim/ip/v_vid_sdi_tx_bridge_v2_0_2
+noc_nsu_sim_v1_0_0=$RDI_DATADIR/xsim/ip/noc_nsu_sim_v1_0_0
+axi_register_slice_v2_1_31=$RDI_DATADIR/xsim/ip/axi_register_slice_v2_1_31
+axis_switch_v1_1_31=$RDI_DATADIR/xsim/ip/axis_switch_v1_1_31
+axi_stream_monitor_v1_1_1=$RDI_DATADIR/xsim/ip/axi_stream_monitor_v1_1_1
+v_uhdsdi_vidgen_v1_0_3=$RDI_DATADIR/xsim/ip/v_uhdsdi_vidgen_v1_0_3
+bscan_jtag=$RDI_DATADIR/xsim/ip/bscan_jtag
+audio_formatter_v1_0_13=$RDI_DATADIR/xsim/ip/audio_formatter_v1_0_13
+axis_vio_v1_0_11=$RDI_DATADIR/xsim/ip/axis_vio_v1_0_11
+interlaken_v2_4_17=$RDI_DATADIR/xsim/ip/interlaken_v2_4_17
+axis_register_slice_v1_1_31=$RDI_DATADIR/xsim/ip/axis_register_slice_v1_1_31
+remote_port_sc_v4=$RDI_DATADIR/xsim/ip/remote_port_sc_v4
+hdcp22_cipher_v1_0_5=$RDI_DATADIR/xsim/ip/hdcp22_cipher_v1_0_5
+picxo_fracxo_v2_0_2=$RDI_DATADIR/xsim/ip/picxo_fracxo_v2_0_2
+xdma_v4_1_29=$RDI_DATADIR/xsim/ip/xdma_v4_1_29
+accelerator_monitor_v1_1_0=$RDI_DATADIR/xsim/ip/accelerator_monitor_v1_1_0
+noc_nps6_v1_0_0=$RDI_DATADIR/xsim/ip/noc_nps6_v1_0_0
+roe_framer_v3_0_8=$RDI_DATADIR/xsim/ip/roe_framer_v3_0_8
+g975_efec_i7_v2_0_23=$RDI_DATADIR/xsim/ip/g975_efec_i7_v2_0_23
+quadsgmii_v3_5_18=$RDI_DATADIR/xsim/ip/quadsgmii_v3_5_18
+axi_ethernet_buffer_v2_0_25=$RDI_DATADIR/xsim/ip/axi_ethernet_buffer_v2_0_25
+fit_timer_v2_0_12=$RDI_DATADIR/xsim/ip/fit_timer_v2_0_12
+bsip_v1_1_1=$RDI_DATADIR/xsim/ip/bsip_v1_1_1
+lmb_v10_v3_0=$RDI_DATADIR/xsim/ip/lmb_v10_v3_0
+mailbox_v2_1_17=$RDI_DATADIR/xsim/ip/mailbox_v2_1_17
+v_vscaler_v1_1_11=$RDI_DATADIR/xsim/ip/v_vscaler_v1_1_11
+fifo_generator_v13_0_7=$RDI_DATADIR/xsim/ip/fifo_generator_v13_0_7
+av_pat_gen_v1_0_2=$RDI_DATADIR/xsim/ip/av_pat_gen_v1_0_2
+v_frmbuf_rd_v2_5_2=$RDI_DATADIR/xsim/ip/v_frmbuf_rd_v2_5_2
+mipi_rx_phy_v1_0_0=$RDI_DATADIR/xsim/ip/mipi_rx_phy_v1_0_0
+gig_ethernet_pcs_pma_v16_2_18=$RDI_DATADIR/xsim/ip/gig_ethernet_pcs_pma_v16_2_18
+noc2_nmu_v1_0_1=$RDI_DATADIR/xsim/ip/noc2_nmu_v1_0_1
+ats_switch_v1_0_10=$RDI_DATADIR/xsim/ip/ats_switch_v1_0_10
+axi_ethernetlite_v3_0_30=$RDI_DATADIR/xsim/ip/axi_ethernetlite_v3_0_30
+axis_mu_v1_0_1=$RDI_DATADIR/xsim/ip/axis_mu_v1_0_1
+vby1hs_v1_0_5=$RDI_DATADIR/xsim/ip/vby1hs_v1_0_5
+noc_sc_v1_0_0=$RDI_DATADIR/xsim/ip/noc_sc_v1_0_0
+convolution_v9_0_20=$RDI_DATADIR/xsim/ip/convolution_v9_0_20
+axi4stream_vip_v1_1_17=$RDI_DATADIR/xsim/ip/axi4stream_vip_v1_1_17
+axis_subset_converter_v1_1_31=$RDI_DATADIR/xsim/ip/axis_subset_converter_v1_1_31
+srio_gen2_v4_1_19=$RDI_DATADIR/xsim/ip/srio_gen2_v4_1_19
+lib_bmg_v1_0_17=$RDI_DATADIR/xsim/ip/lib_bmg_v1_0_17
+system_cache_v5_0_11=$RDI_DATADIR/xsim/ip/system_cache_v5_0_11
+dp_videoaxi4s_bridge_v1_0_3=$RDI_DATADIR/xsim/ip/dp_videoaxi4s_bridge_v1_0_3
+sid_v8_0_21=$RDI_DATADIR/xsim/ip/sid_v8_0_21
+blk_mem_gen_v8_3_7=$RDI_DATADIR/xsim/ip/blk_mem_gen_v8_3_7
+noc2_sc_v1_0_0=$RDI_DATADIR/xsim/ip/noc2_sc_v1_0_0
diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.ini.bak b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.ini.bak
new file mode 100644
index 0000000..65c1bae
--- /dev/null
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.ini.bak
@@ -0,0 +1,490 @@
+std=$RDI_DATADIR/xsim/vhdl/std
+ieee=$RDI_DATADIR/xsim/vhdl/ieee
+ieee_proposed=$RDI_DATADIR/xsim/vhdl/ieee_proposed
+vl=$RDI_DATADIR/xsim/vhdl/vl
+synopsys=$RDI_DATADIR/xsim/vhdl/synopsys
+uvm=$RDI_DATADIR/xsim/system_verilog/uvm
+secureip=$RDI_DATADIR/xsim/verilog/secureip
+unisim=$RDI_DATADIR/xsim/vhdl/unisim
+unimacro=$RDI_DATADIR/xsim/vhdl/unimacro
+unifast=$RDI_DATADIR/xsim/vhdl/unifast
+unisims_ver=$RDI_DATADIR/xsim/verilog/unisims_ver
+unimacro_ver=$RDI_DATADIR/xsim/verilog/unimacro_ver
+unifast_ver=$RDI_DATADIR/xsim/verilog/unifast_ver
+simprims_ver=$RDI_DATADIR/xsim/verilog/simprims_ver
+axi_epu_v1_0_4=$RDI_DATADIR/xsim/ip/axi_epu_v1_0_4
+xlconcat_v2_1_6=$RDI_DATADIR/xsim/ip/xlconcat_v2_1_6
+emb_fifo_gen_v1_0_5=$RDI_DATADIR/xsim/ip/emb_fifo_gen_v1_0_5
+mipi_csi2_tx_ctrl_v1_0_6=$RDI_DATADIR/xsim/ip/mipi_csi2_tx_ctrl_v1_0_6
+c_mux_bit_v12_0_9=$RDI_DATADIR/xsim/ip/c_mux_bit_v12_0_9
+smartconnect_v1_0=$RDI_DATADIR/xsim/ip/smartconnect_v1_0
+v_smpte_uhdsdi_tx_v1_0_4=$RDI_DATADIR/xsim/ip/v_smpte_uhdsdi_tx_v1_0_4
+cam_v3_0_0=$RDI_DATADIR/xsim/ip/cam_v3_0_0
+microblaze_v11_0_13=$RDI_DATADIR/xsim/ip/microblaze_v11_0_13
+axi_fifo_mm_s_v4_3_3=$RDI_DATADIR/xsim/ip/axi_fifo_mm_s_v4_3_3
+v_hdmi_rx1_v1_0_9=$RDI_DATADIR/xsim/ip/v_hdmi_rx1_v1_0_9
+video_frame_crc_v1_0_6=$RDI_DATADIR/xsim/ip/video_frame_crc_v1_0_6
+hdcp22_cipher_dp_v1_0_2=$RDI_DATADIR/xsim/ip/hdcp22_cipher_dp_v1_0_2
+generic_baseblocks_v2_1_2=$RDI_DATADIR/xsim/ip/generic_baseblocks_v2_1_2
+axis_clock_converter_v1_1_32=$RDI_DATADIR/xsim/ip/axis_clock_converter_v1_1_32
+psx_vip_v1_0_4=$RDI_DATADIR/xsim/ip/psx_vip_v1_0_4
+g975_efec_i4_v1_0_22=$RDI_DATADIR/xsim/ip/g975_efec_i4_v1_0_22
+axi_lite_ipif_v3_0_4=$RDI_DATADIR/xsim/ip/axi_lite_ipif_v3_0_4
+axis_dbg_stub_v1_0_1=$RDI_DATADIR/xsim/ip/axis_dbg_stub_v1_0_1
+ethernet_1_10_25g_v2_7_15=$RDI_DATADIR/xsim/ip/ethernet_1_10_25g_v2_7_15
+an_lt_v1_0_12=$RDI_DATADIR/xsim/ip/an_lt_v1_0_12
+hdmi_gt_controller_v1_0_13=$RDI_DATADIR/xsim/ip/hdmi_gt_controller_v1_0_13
+axi_cdma_v4_1_31=$RDI_DATADIR/xsim/ip/axi_cdma_v4_1_31
+xilinx_vip=$RDI_DATADIR/xsim/ip/xilinx_vip
+videoaxi4s_bridge_v1_0_7=$RDI_DATADIR/xsim/ip/videoaxi4s_bridge_v1_0_7
+mdm_riscv_v1_0_2=$RDI_DATADIR/xsim/ip/mdm_riscv_v1_0_2
+axi_uartlite_v2_0_35=$RDI_DATADIR/xsim/ip/axi_uartlite_v2_0_35
+axi_perf_mon_v5_0_33=$RDI_DATADIR/xsim/ip/axi_perf_mon_v5_0_33
+axi_master_burst_v2_0_9=$RDI_DATADIR/xsim/ip/axi_master_burst_v2_0_9
+aie_ps_v1_0=$RDI_DATADIR/xsim/ip/aie_ps_v1_0
+ibert_lib_v1_0_11=$RDI_DATADIR/xsim/ip/ibert_lib_v1_0_11
+axi_datamover_v5_1_33=$RDI_DATADIR/xsim/ip/axi_datamover_v5_1_33
+noc_nps4_v1_0_0=$RDI_DATADIR/xsim/ip/noc_nps4_v1_0_0
+xbip_dsp48_addsub_v3_0_9=$RDI_DATADIR/xsim/ip/xbip_dsp48_addsub_v3_0_9
+v_axi4s_vid_out_v4_0_18=$RDI_DATADIR/xsim/ip/v_axi4s_vid_out_v4_0_18
+axi_chip2chip_v5_0_22=$RDI_DATADIR/xsim/ip/axi_chip2chip_v5_0_22
+gtwizard_ultrascale_v1_7_18=$RDI_DATADIR/xsim/ip/gtwizard_ultrascale_v1_7_18
+axi_infrastructure_v1_1_0=$RDI_DATADIR/xsim/ip/axi_infrastructure_v1_1_0
+switch_core_top_v1_0_16=$RDI_DATADIR/xsim/ip/switch_core_top_v1_0_16
+vitis_net_p4_v2_1_0=$RDI_DATADIR/xsim/ip/vitis_net_p4_v2_1_0
+axi_sideband_util_v1_0_15=$RDI_DATADIR/xsim/ip/axi_sideband_util_v1_0_15
+axis_infrastructure_v1_1_1=$RDI_DATADIR/xsim/ip/axis_infrastructure_v1_1_1
+dist_mem_gen_v8_0_15=$RDI_DATADIR/xsim/ip/dist_mem_gen_v8_0_15
+shell_utils_addr_remap_v1_0_10=$RDI_DATADIR/xsim/ip/shell_utils_addr_remap_v1_0_10
+xbip_addsub_v3_0_9=$RDI_DATADIR/xsim/ip/xbip_addsub_v3_0_9
+dds_compiler_v6_0_25=$RDI_DATADIR/xsim/ip/dds_compiler_v6_0_25
+bscan_axi_v1_0_2=$RDI_DATADIR/xsim/ip/bscan_axi_v1_0_2
+fifo_generator_v13_2_10=$RDI_DATADIR/xsim/ip/fifo_generator_v13_2_10
+dprx_fec_8b10b_v1_0_3=$RDI_DATADIR/xsim/ip/dprx_fec_8b10b_v1_0_3
+pcie_axi4lite_tap_v1_0_2=$RDI_DATADIR/xsim/ip/pcie_axi4lite_tap_v1_0_2
+av_pat_gen_v2_0_2=$RDI_DATADIR/xsim/ip/av_pat_gen_v2_0_2
+polar_v1_1_4=$RDI_DATADIR/xsim/ip/polar_v1_1_4
+v_tpg_v8_2_5=$RDI_DATADIR/xsim/ip/v_tpg_v8_2_5
+tcc_encoder_3gpplte_v4_0_19=$RDI_DATADIR/xsim/ip/tcc_encoder_3gpplte_v4_0_19
+axis_accelerator_adapter_v2_1_18=$RDI_DATADIR/xsim/ip/axis_accelerator_adapter_v2_1_18
+mem_pl_v1_0_2=$RDI_DATADIR/xsim/ip/mem_pl_v1_0_2
+perf_axi_tg_v1_0_13=$RDI_DATADIR/xsim/ip/perf_axi_tg_v1_0_13
+trace_hub_v1_1_0=$RDI_DATADIR/xsim/ip/trace_hub_v1_1_0
+axi_pcie_v2_9_11=$RDI_DATADIR/xsim/ip/axi_pcie_v2_9_11
+axi_emc_v3_0_31=$RDI_DATADIR/xsim/ip/axi_emc_v3_0_31
+tsn_endpoint_ethernet_mac_block_v1_0_16=$RDI_DATADIR/xsim/ip/tsn_endpoint_ethernet_mac_block_v1_0_16
+soft_ecc_proxy_v1_1_1=$RDI_DATADIR/xsim/ip/soft_ecc_proxy_v1_1_1
+axi_apb_bridge_v3_0_20=$RDI_DATADIR/xsim/ip/axi_apb_bridge_v3_0_20
+axis_broadcaster_v1_1_30=$RDI_DATADIR/xsim/ip/axis_broadcaster_v1_1_30
+axis_dwidth_converter_sc_v1_1=$RDI_DATADIR/xsim/ip/axis_dwidth_converter_sc_v1_1
+vid_edid_v1_0_2=$RDI_DATADIR/xsim/ip/vid_edid_v1_0_2
+noc_nidb_v1_0_0=$RDI_DATADIR/xsim/ip/noc_nidb_v1_0_0
+v_vid_in_axi4s_v5_0_4=$RDI_DATADIR/xsim/ip/v_vid_in_axi4s_v5_0_4
+v_dual_splitter_v1_0_11=$RDI_DATADIR/xsim/ip/v_dual_splitter_v1_0_11
+axis_ila_txns_cntr_v1_0_0=$RDI_DATADIR/xsim/ip/axis_ila_txns_cntr_v1_0_0
+pl_fileio_v1_0_0=$RDI_DATADIR/xsim/ip/pl_fileio_v1_0_0
+msm_cpp=$RDI_DATADIR/xsim/ip/msm_cpp
+debug_tcp_server_v1=$RDI_DATADIR/xsim/ip/debug_tcp_server_v1
+v_frmbuf_wr_v2_5_2=$RDI_DATADIR/xsim/ip/v_frmbuf_wr_v2_5_2
+v_smpte_uhdsdi_rx_v1_0_3=$RDI_DATADIR/xsim/ip/v_smpte_uhdsdi_rx_v1_0_3
+mpegtsmux_v1_1_9=$RDI_DATADIR/xsim/ip/mpegtsmux_v1_1_9
+noc_nps_v1_0_1=$RDI_DATADIR/xsim/ip/noc_nps_v1_0_1
+v_multi_scaler_v1_2_6=$RDI_DATADIR/xsim/ip/v_multi_scaler_v1_2_6
+x5io_wizard_v1_0_4=$RDI_DATADIR/xsim/ip/x5io_wizard_v1_0_4
+axi_remapper_rx_v1_0_2=$RDI_DATADIR/xsim/ip/axi_remapper_rx_v1_0_2
+emu_perf_common_v1_0=$RDI_DATADIR/xsim/ip/emu_perf_common_v1_0
+sem_ultra_v3_1_26=$RDI_DATADIR/xsim/ip/sem_ultra_v3_1_26
+axi_utils_v2_0_9=$RDI_DATADIR/xsim/ip/axi_utils_v2_0_9
+v_tc_v6_2_8=$RDI_DATADIR/xsim/ip/v_tc_v6_2_8
+ieee802d3_clause74_fec_v1_0_18=$RDI_DATADIR/xsim/ip/ieee802d3_clause74_fec_v1_0_18
+jesd204c_v4_2_14=$RDI_DATADIR/xsim/ip/jesd204c_v4_2_14
+xtlm=$RDI_DATADIR/xsim/ip/xtlm
+hdmi_acr_ctrl_v1_0_3=$RDI_DATADIR/xsim/ip/hdmi_acr_ctrl_v1_0_3
+icap_arb_v1_0_2=$RDI_DATADIR/xsim/ip/icap_arb_v1_0_2
+nvme_tc_v3_0_6=$RDI_DATADIR/xsim/ip/nvme_tc_v3_0_6
+axi4svideo_bridge_v1_0_18=$RDI_DATADIR/xsim/ip/axi4svideo_bridge_v1_0_18
+jtag_axi=$RDI_DATADIR/xsim/ip/jtag_axi
+axi_intc_v4_1_19=$RDI_DATADIR/xsim/ip/axi_intc_v4_1_19
+v_demosaic_v1_1_11=$RDI_DATADIR/xsim/ip/v_demosaic_v1_1_11
+pcie_jtag_v1_0_1=$RDI_DATADIR/xsim/ip/pcie_jtag_v1_0_1
+xlslice_v1_0_4=$RDI_DATADIR/xsim/ip/xlslice_v1_0_4
+axi_vfifo_ctrl_v2_0_34=$RDI_DATADIR/xsim/ip/axi_vfifo_ctrl_v2_0_34
+gmii_to_rgmii_v4_1_14=$RDI_DATADIR/xsim/ip/gmii_to_rgmii_v4_1_14
+util_reduced_logic_v2_0_6=$RDI_DATADIR/xsim/ip/util_reduced_logic_v2_0_6
+nvmeha_v1_0_12=$RDI_DATADIR/xsim/ip/nvmeha_v1_0_12
+axi_c2c_v1_0_9=$RDI_DATADIR/xsim/ip/axi_c2c_v1_0_9
+ft_prach_v1_2_2=$RDI_DATADIR/xsim/ip/ft_prach_v1_2_2
+v_smpte_uhdsdi_v1_0_11=$RDI_DATADIR/xsim/ip/v_smpte_uhdsdi_v1_0_11
+axi_pmon_v1_0_1=$RDI_DATADIR/xsim/ip/axi_pmon_v1_0_1
+gtwizard_ultrascale_v1_6_16=$RDI_DATADIR/xsim/ip/gtwizard_ultrascale_v1_6_16
+gigantic_mux=$RDI_DATADIR/xsim/ip/gigantic_mux
+displayport_v7_0_24=$RDI_DATADIR/xsim/ip/displayport_v7_0_24
+msm_adapters=$RDI_DATADIR/xsim/ip/msm_adapters
+v_frmbuf_wr_v2_2_10=$RDI_DATADIR/xsim/ip/v_frmbuf_wr_v2_2_10
+fast_adapter_v1_0_8=$RDI_DATADIR/xsim/ip/fast_adapter_v1_0_8
+rst_vip_v1_0_6=$RDI_DATADIR/xsim/ip/rst_vip_v1_0_6
+v_hdmi_phy1_v1_0_12=$RDI_DATADIR/xsim/ip/v_hdmi_phy1_v1_0_12
+pcie_qdma_mailbox_v1_0_5=$RDI_DATADIR/xsim/ip/pcie_qdma_mailbox_v1_0_5
+pr_decoupler_v1_0_11=$RDI_DATADIR/xsim/ip/pr_decoupler_v1_0_11
+v_hdmi_tx1_v1_0_8=$RDI_DATADIR/xsim/ip/v_hdmi_tx1_v1_0_8
+processing_system7_v5_5_6=$RDI_DATADIR/xsim/ip/processing_system7_v5_5_6
+axis_cap_ctrl_v1_0_1=$RDI_DATADIR/xsim/ip/axis_cap_ctrl_v1_0_1
+common_rpc_v1=$RDI_DATADIR/xsim/ip/common_rpc_v1
+xtlm_ipc_v1_0=$RDI_DATADIR/xsim/ip/xtlm_ipc_v1_0
+v_tpg_v8_1_10=$RDI_DATADIR/xsim/ip/v_tpg_v8_1_10
+v_hcresampler_v1_1_11=$RDI_DATADIR/xsim/ip/v_hcresampler_v1_1_11
+axi_interface_monitor_v1_1_0=$RDI_DATADIR/xsim/ip/axi_interface_monitor_v1_1_0
+axi_intc_v4_1=$RDI_DATADIR/xsim/ip/axi_intc_v4_1
+mammoth_transcode_v1_0_2=$RDI_DATADIR/xsim/ip/mammoth_transcode_v1_0_2
+axi_timebase_wdt_v3_0_23=$RDI_DATADIR/xsim/ip/axi_timebase_wdt_v3_0_23
+floating_point_v7_0_23=$RDI_DATADIR/xsim/ip/floating_point_v7_0_23
+displayport_v9_0_9=$RDI_DATADIR/xsim/ip/displayport_v9_0_9
+noc_hbm_v1_0_0=$RDI_DATADIR/xsim/ip/noc_hbm_v1_0_0
+versal_cips_ps_vip_v1_0_9=$RDI_DATADIR/xsim/ip/versal_cips_ps_vip_v1_0_9
+amm_axi_bridge_v1_0_17=$RDI_DATADIR/xsim/ip/amm_axi_bridge_v1_0_17
+v_vid_gt_bridge_v2_0_5=$RDI_DATADIR/xsim/ip/v_vid_gt_bridge_v2_0_5
+v_gamma_lut_v1_1_11=$RDI_DATADIR/xsim/ip/v_gamma_lut_v1_1_11
+rld3_pl_v1_0_14=$RDI_DATADIR/xsim/ip/rld3_pl_v1_0_14
+l_ethernet_v3_3_10=$RDI_DATADIR/xsim/ip/l_ethernet_v3_3_10
+ernic_v4_0_3=$RDI_DATADIR/xsim/ip/ernic_v4_0_3
+fec_5g_common_v1_1_4=$RDI_DATADIR/xsim/ip/fec_5g_common_v1_1_4
+sim_qdma_sc_v1_0=$RDI_DATADIR/xsim/ip/sim_qdma_sc_v1_0
+dfx_bitstream_monitor_v1_0_5=$RDI_DATADIR/xsim/ip/dfx_bitstream_monitor_v1_0_5
+axi_mmu_v2_1_29=$RDI_DATADIR/xsim/ip/axi_mmu_v2_1_29
+v_sdi_rx_vid_bridge_v2_0_2=$RDI_DATADIR/xsim/ip/v_sdi_rx_vid_bridge_v2_0_2
+v_csc_v1_1_11=$RDI_DATADIR/xsim/ip/v_csc_v1_1_11
+usxgmii_v1_2_17=$RDI_DATADIR/xsim/ip/usxgmii_v1_2_17
+trace_s2mm_v2_0_1=$RDI_DATADIR/xsim/ip/trace_s2mm_v2_0_1
+ieee802d3_rs_fec_v2_0_22=$RDI_DATADIR/xsim/ip/ieee802d3_rs_fec_v2_0_22
+v_hdmi_tx_v3_0_4=$RDI_DATADIR/xsim/ip/v_hdmi_tx_v3_0_4
+ldpc_5gnr_v1_0_3=$RDI_DATADIR/xsim/ip/ldpc_5gnr_v1_0_3
+rama_v1_1_17_lib=$RDI_DATADIR/xsim/ip/rama_v1_1_17_lib
+rs_decoder_v9_0_22=$RDI_DATADIR/xsim/ip/rs_decoder_v9_0_22
+ieee802d3_400g_rs_fec_v3_0_2=$RDI_DATADIR/xsim/ip/ieee802d3_400g_rs_fec_v3_0_2
+xscl=$RDI_DATADIR/xsim/ip/xscl
+iomodule_v3_1_10=$RDI_DATADIR/xsim/ip/iomodule_v3_1_10
+axis_mem_v1_0_2=$RDI_DATADIR/xsim/ip/axis_mem_v1_0_2
+axi_tft_v2_0_28=$RDI_DATADIR/xsim/ip/axi_tft_v2_0_28
+fc32_rs_fec_v1_0_27=$RDI_DATADIR/xsim/ip/fc32_rs_fec_v1_0_27
+axi_remapper_tx_v1_0_2=$RDI_DATADIR/xsim/ip/axi_remapper_tx_v1_0_2
+dfx_axi_shutdown_manager_v1_0_3=$RDI_DATADIR/xsim/ip/dfx_axi_shutdown_manager_v1_0_3
+util_vector_logic_v2_0_4=$RDI_DATADIR/xsim/ip/util_vector_logic_v2_0_4
+axis_ila_intf_v1_0_2=$RDI_DATADIR/xsim/ip/axis_ila_intf_v1_0_2
+axi_amm_bridge_v1_0_21=$RDI_DATADIR/xsim/ip/axi_amm_bridge_v1_0_21
+xpm_cdc_gen_v1_0_4=$RDI_DATADIR/xsim/ip/xpm_cdc_gen_v1_0_4
+c_accum_v12_0_18=$RDI_DATADIR/xsim/ip/c_accum_v12_0_18
+cmac_v2_6_15=$RDI_DATADIR/xsim/ip/cmac_v2_6_15
+axi_firewall_v1_2_6=$RDI_DATADIR/xsim/ip/axi_firewall_v1_2_6
+dft_v4_2_8=$RDI_DATADIR/xsim/ip/dft_v4_2_8
+ernic_v3_1_5=$RDI_DATADIR/xsim/ip/ernic_v3_1_5
+xsdbs_v1_0_4=$RDI_DATADIR/xsim/ip/xsdbs_v1_0_4
+stm_v1_0=$RDI_DATADIR/xsim/ip/stm_v1_0
+axi_timer_v2_0_33=$RDI_DATADIR/xsim/ip/axi_timer_v2_0_33
+lmb_v10_v3_0_14=$RDI_DATADIR/xsim/ip/lmb_v10_v3_0_14
+v_deinterlacer_v5_1_4=$RDI_DATADIR/xsim/ip/v_deinterlacer_v5_1_4
+axis_data_fifo_v1_1_32=$RDI_DATADIR/xsim/ip/axis_data_fifo_v1_1_32
+hw_trace=$RDI_DATADIR/xsim/ip/hw_trace
+sim_xdma_sc_v1=$RDI_DATADIR/xsim/ip/sim_xdma_sc_v1
+axi_vip_v1_1_17=$RDI_DATADIR/xsim/ip/axi_vip_v1_1_17
+mipi_dphy_v4_3_11=$RDI_DATADIR/xsim/ip/mipi_dphy_v4_3_11
+ieee802d3_50g_rs_fec_v2_0_17=$RDI_DATADIR/xsim/ip/ieee802d3_50g_rs_fec_v2_0_17
+xdfe_equalizer_v1_0_9=$RDI_DATADIR/xsim/ip/xdfe_equalizer_v1_0_9
+flexo_100g_rs_fec_v1_0_28=$RDI_DATADIR/xsim/ip/flexo_100g_rs_fec_v1_0_28
+v_uhdsdi_audio_v2_0_8=$RDI_DATADIR/xsim/ip/v_uhdsdi_audio_v2_0_8
+v_tc_v6_1_14=$RDI_DATADIR/xsim/ip/v_tc_v6_1_14
+ddr4_pl_phy_v1_0_2=$RDI_DATADIR/xsim/ip/ddr4_pl_phy_v1_0_2
+sem_v4_1_15=$RDI_DATADIR/xsim/ip/sem_v4_1_15
+c_shift_ram_v12_0_17=$RDI_DATADIR/xsim/ip/c_shift_ram_v12_0_17
+lib_pkg_v1_0_4=$RDI_DATADIR/xsim/ip/lib_pkg_v1_0_4
+bs_switch_v1_0_4=$RDI_DATADIR/xsim/ip/bs_switch_v1_0_4
+shell_utils_msp432_bsl_crc_gen_v1_0_2=$RDI_DATADIR/xsim/ip/shell_utils_msp432_bsl_crc_gen_v1_0_2
+axis_dbg_sync_v1_0_1=$RDI_DATADIR/xsim/ip/axis_dbg_sync_v1_0_1
+high_speed_selectio_wiz_v3_6_9=$RDI_DATADIR/xsim/ip/high_speed_selectio_wiz_v3_6_9
+emc_common_v3_0_7=$RDI_DATADIR/xsim/ip/emc_common_v3_0_7
+fir_compiler_v7_2_22=$RDI_DATADIR/xsim/ip/fir_compiler_v7_2_22
+microblaze_mcs_v2_3_7=$RDI_DATADIR/xsim/ip/microblaze_mcs_v2_3_7
+oran_radio_if_v3_2_0=$RDI_DATADIR/xsim/ip/oran_radio_if_v3_2_0
+i2s_transmitter_v1_0_8=$RDI_DATADIR/xsim/ip/i2s_transmitter_v1_0_8
+floating_point_v7_1_18=$RDI_DATADIR/xsim/ip/floating_point_v7_1_18
+sim_trig_v1_0_12=$RDI_DATADIR/xsim/ip/sim_trig_v1_0_12
+hbm2e_pl_v1_0_1=$RDI_DATADIR/xsim/ip/hbm2e_pl_v1_0_1
+axis_protocol_checker_v2_0_15=$RDI_DATADIR/xsim/ip/axis_protocol_checker_v2_0_15
+vitis_deadlock_detector_v1_0_2=$RDI_DATADIR/xsim/ip/vitis_deadlock_detector_v1_0_2
+axi_msg_v1_0_11=$RDI_DATADIR/xsim/ip/axi_msg_v1_0_11
+c_compare_v12_0_9=$RDI_DATADIR/xsim/ip/c_compare_v12_0_9
+c_mux_bus_v12_0_9=$RDI_DATADIR/xsim/ip/c_mux_bus_v12_0_9
+xsdbm_v3_0_2=$RDI_DATADIR/xsim/ip/xsdbm_v3_0_2
+rld3_pl_phy_v1_0_2=$RDI_DATADIR/xsim/ip/rld3_pl_phy_v1_0_2
+mpram_v1_0_4=$RDI_DATADIR/xsim/ip/mpram_v1_0_4
+oddr_v1_0_4=$RDI_DATADIR/xsim/ip/oddr_v1_0_4
+bs_mux_v1_0_1=$RDI_DATADIR/xsim/ip/bs_mux_v1_0_1
+ptp_1588_timer_syncer_v2_0_6=$RDI_DATADIR/xsim/ip/ptp_1588_timer_syncer_v2_0_6
+dfx_controller_v1_0_7=$RDI_DATADIR/xsim/ip/dfx_controller_v1_0_7
+noc_ncrb_v1_0_0=$RDI_DATADIR/xsim/ip/noc_ncrb_v1_0_0
+rs_toolbox_v9_0_13=$RDI_DATADIR/xsim/ip/rs_toolbox_v9_0_13
+pc_cfr_v8_0_2=$RDI_DATADIR/xsim/ip/pc_cfr_v8_0_2
+multi_channel_25g_rs_fec_v1_0_26=$RDI_DATADIR/xsim/ip/multi_channel_25g_rs_fec_v1_0_26
+lmb_bram_if_cntlr_v4_0_24=$RDI_DATADIR/xsim/ip/lmb_bram_if_cntlr_v4_0_24
+hdcp_keymngmt_blk_v1_0_2=$RDI_DATADIR/xsim/ip/hdcp_keymngmt_blk_v1_0_2
+axi_lite_ipif_v3_0=$RDI_DATADIR/xsim/ip/axi_lite_ipif_v3_0
+compact_gt_v1_0_17=$RDI_DATADIR/xsim/ip/compact_gt_v1_0_17
+v_vcresampler_v1_1_11=$RDI_DATADIR/xsim/ip/v_vcresampler_v1_1_11
+mipi_dsi2_rx_ctrl_v1_0_0=$RDI_DATADIR/xsim/ip/mipi_dsi2_rx_ctrl_v1_0_0
+axi_quad_spi_v3_2_30=$RDI_DATADIR/xsim/ip/axi_quad_spi_v3_2_30
+div_gen_v5_1_22=$RDI_DATADIR/xsim/ip/div_gen_v5_1_22
+v_frmbuf_rd_v2_2_10=$RDI_DATADIR/xsim/ip/v_frmbuf_rd_v2_2_10
+can_v5_1_3=$RDI_DATADIR/xsim/ip/can_v5_1_3
+axi_pcie3_v3_0_30=$RDI_DATADIR/xsim/ip/axi_pcie3_v3_0_30
+emb_mem_gen_v1_0_9=$RDI_DATADIR/xsim/ip/emb_mem_gen_v1_0_9
+noc2_xbr2x4_v1_0_0=$RDI_DATADIR/xsim/ip/noc2_xbr2x4_v1_0_0
+xbip_counter_v3_0_9=$RDI_DATADIR/xsim/ip/xbip_counter_v3_0_9
+axi_jtag_v1_0_2=$RDI_DATADIR/xsim/ip/axi_jtag_v1_0_2
+tmr_manager_v1_0_12=$RDI_DATADIR/xsim/ip/tmr_manager_v1_0_12
+noc_nmu_sim_v1_0_0=$RDI_DATADIR/xsim/ip/noc_nmu_sim_v1_0_0
+mipi_csi2_rx_ctrl_v1_0_10=$RDI_DATADIR/xsim/ip/mipi_csi2_rx_ctrl_v1_0_10
+axi_bram_ctrl_v4_0_15=$RDI_DATADIR/xsim/ip/axi_bram_ctrl_v4_0_15
+axi_gpio_v2_0_33=$RDI_DATADIR/xsim/ip/axi_gpio_v2_0_33
+rs_encoder_v9_0_21=$RDI_DATADIR/xsim/ip/rs_encoder_v9_0_21
+rwd_tlmmodel_v1=$RDI_DATADIR/xsim/ip/rwd_tlmmodel_v1
+axi_bram_ctrl_v4_1_10=$RDI_DATADIR/xsim/ip/axi_bram_ctrl_v4_1_10
+uram_rd_back_v1_0_4=$RDI_DATADIR/xsim/ip/uram_rd_back_v1_0_4
+lib_fifo_v1_0_19=$RDI_DATADIR/xsim/ip/lib_fifo_v1_0_19
+canfd_v3_0_10=$RDI_DATADIR/xsim/ip/canfd_v3_0_10
+hdcp22_rng_v1_0_3=$RDI_DATADIR/xsim/ip/hdcp22_rng_v1_0_3
+xfft_v9_1_12=$RDI_DATADIR/xsim/ip/xfft_v9_1_12
+axi_memory_init_v1_0_12=$RDI_DATADIR/xsim/ip/axi_memory_init_v1_0_12
+common_cpp_v1_0=$RDI_DATADIR/xsim/ip/common_cpp_v1_0
+ai_pl_trig=$RDI_DATADIR/xsim/ip/ai_pl_trig
+c_reg_fd_v12_0_9=$RDI_DATADIR/xsim/ip/c_reg_fd_v12_0_9
+axi_mm2s_mapper_v1_1_30=$RDI_DATADIR/xsim/ip/axi_mm2s_mapper_v1_1_30
+ldpc_v2_0_15=$RDI_DATADIR/xsim/ip/ldpc_v2_0_15
+sim_cpu_v1_0=$RDI_DATADIR/xsim/ip/sim_cpu_v1_0
+axi_data_fifo_v2_1_30=$RDI_DATADIR/xsim/ip/axi_data_fifo_v2_1_30
+g709_fec_v2_4_10=$RDI_DATADIR/xsim/ip/g709_fec_v2_4_10
+axi_mcdma_v1_1_12=$RDI_DATADIR/xsim/ip/axi_mcdma_v1_1_12
+axi_lmb_bridge_v1_0_3=$RDI_DATADIR/xsim/ip/axi_lmb_bridge_v1_0_3
+lte_fft_v2_1_10=$RDI_DATADIR/xsim/ip/lte_fft_v2_1_10
+axi_interconnect_v1_7_23=$RDI_DATADIR/xsim/ip/axi_interconnect_v1_7_23
+axi_dwidth_converter_v2_1_31=$RDI_DATADIR/xsim/ip/axi_dwidth_converter_v2_1_31
+axi_usb2_device_v5_0_32=$RDI_DATADIR/xsim/ip/axi_usb2_device_v5_0_32
+axi_hwicap_v3_0_35=$RDI_DATADIR/xsim/ip/axi_hwicap_v3_0_35
+ldpc_5gnr_lite_v1_0_2=$RDI_DATADIR/xsim/ip/ldpc_5gnr_lite_v1_0_2
+fifo_generator_v13_1_5=$RDI_DATADIR/xsim/ip/fifo_generator_v13_1_5
+axi_protocol_checker_v2_0_17=$RDI_DATADIR/xsim/ip/axi_protocol_checker_v2_0_17
+c_counter_binary_v12_0_19=$RDI_DATADIR/xsim/ip/c_counter_binary_v12_0_19
+axis_ila_pp_v1_0_2=$RDI_DATADIR/xsim/ip/axis_ila_pp_v1_0_2
+mem_tg_v1_0_13=$RDI_DATADIR/xsim/ip/mem_tg_v1_0_13
+xbip_utils_v3_0_13=$RDI_DATADIR/xsim/ip/xbip_utils_v3_0_13
+aie_xtlm_v1_0_0=$RDI_DATADIR/xsim/ip/aie_xtlm_v1_0_0
+xtlm_ap_ctrl_v1_0=$RDI_DATADIR/xsim/ip/xtlm_ap_ctrl_v1_0
+v_vid_in_axi4s_v4_0_11=$RDI_DATADIR/xsim/ip/v_vid_in_axi4s_v4_0_11
+cmac_usplus_v3_1_17=$RDI_DATADIR/xsim/ip/cmac_usplus_v3_1_17
+xdfe_common_v1_0_3=$RDI_DATADIR/xsim/ip/xdfe_common_v1_0_3
+viterbi_v9_1_17=$RDI_DATADIR/xsim/ip/viterbi_v9_1_17
+xdfe_nr_prach_v2_0_3=$RDI_DATADIR/xsim/ip/xdfe_nr_prach_v2_0_3
+v_smpte_sdi_v3_0_11=$RDI_DATADIR/xsim/ip/v_smpte_sdi_v3_0_11
+mdm_v3_2=$RDI_DATADIR/xsim/ip/mdm_v3_2
+clk_vip_v1_0_4=$RDI_DATADIR/xsim/ip/clk_vip_v1_0_4
+mdm_v3_2_26=$RDI_DATADIR/xsim/ip/mdm_v3_2_26
+xtlm_trace_model_v1_0=$RDI_DATADIR/xsim/ip/xtlm_trace_model_v1_0
+xbip_dsp48_multadd_v3_0_9=$RDI_DATADIR/xsim/ip/xbip_dsp48_multadd_v3_0_9
+noc2_nsu_v1_0_1=$RDI_DATADIR/xsim/ip/noc2_nsu_v1_0_1
+timer_sync_1588_v1_2_5=$RDI_DATADIR/xsim/ip/timer_sync_1588_v1_2_5
+axis_ila_ct_v1_0_1=$RDI_DATADIR/xsim/ip/axis_ila_ct_v1_0_1
+dcmac_v2_4_0=$RDI_DATADIR/xsim/ip/dcmac_v2_4_0
+v_dp_axi4s_vid_out_v1_0_8=$RDI_DATADIR/xsim/ip/v_dp_axi4s_vid_out_v1_0_8
+xbip_dsp48_acc_v3_0_9=$RDI_DATADIR/xsim/ip/xbip_dsp48_acc_v3_0_9
+noc2_xbr4x2_v1_0_0=$RDI_DATADIR/xsim/ip/noc2_xbr4x2_v1_0_0
+sd_fec_v1_1_14=$RDI_DATADIR/xsim/ip/sd_fec_v1_1_14
+xbip_accum_v3_0_9=$RDI_DATADIR/xsim/ip/xbip_accum_v3_0_9
+displayport_v8_1_9=$RDI_DATADIR/xsim/ip/displayport_v8_1_9
+ilknf_v1_3_4=$RDI_DATADIR/xsim/ip/ilknf_v1_3_4
+v_letterbox_v1_1_11=$RDI_DATADIR/xsim/ip/v_letterbox_v1_1_11
+iomodule_v3_0=$RDI_DATADIR/xsim/ip/iomodule_v3_0
+dbg_intf=$RDI_DATADIR/xsim/ip/dbg_intf
+cpm5_v1_0_16=$RDI_DATADIR/xsim/ip/cpm5_v1_0_16
+ieee802d3_25g_rs_fec_v1_0_30=$RDI_DATADIR/xsim/ip/ieee802d3_25g_rs_fec_v1_0_30
+jesd204_v7_2_20=$RDI_DATADIR/xsim/ip/jesd204_v7_2_20
+clk_gen_sim_v1_0_4=$RDI_DATADIR/xsim/ip/clk_gen_sim_v1_0_4
+g709_rs_decoder_v2_2_14=$RDI_DATADIR/xsim/ip/g709_rs_decoder_v2_2_14
+cpri_v8_11_20=$RDI_DATADIR/xsim/ip/cpri_v8_11_20
+ieee802d3_200g_rs_fec_v2_0_11=$RDI_DATADIR/xsim/ip/ieee802d3_200g_rs_fec_v2_0_11
+v_warp_init_v1_1_4=$RDI_DATADIR/xsim/ip/v_warp_init_v1_1_4
+v_hscaler_v1_1_11=$RDI_DATADIR/xsim/ip/v_hscaler_v1_1_11
+spdif_v2_0_29=$RDI_DATADIR/xsim/ip/spdif_v2_0_29
+func_emu_util_v1_0=$RDI_DATADIR/xsim/ip/func_emu_util_v1_0
+axi_uart16550_v2_0_33=$RDI_DATADIR/xsim/ip/axi_uart16550_v2_0_33
+axi_clock_converter_v2_1_30=$RDI_DATADIR/xsim/ip/axi_clock_converter_v2_1_30
+dprx_v1_0_4=$RDI_DATADIR/xsim/ip/dprx_v1_0_4
+mrmac_v2_3_0=$RDI_DATADIR/xsim/ip/mrmac_v2_3_0
+cic_compiler_v4_0_19=$RDI_DATADIR/xsim/ip/cic_compiler_v4_0_19
+c_gate_bit_v12_0_9=$RDI_DATADIR/xsim/ip/c_gate_bit_v12_0_9
+noc_sc_v1_0_0_legacy=$RDI_DATADIR/xsim/ip/noc_sc_v1_0_0_legacy
+ten_gig_eth_pcs_pma_v6_0_27=$RDI_DATADIR/xsim/ip/ten_gig_eth_pcs_pma_v6_0_27
+xdfe_cc_filter_v1_1_4=$RDI_DATADIR/xsim/ip/xdfe_cc_filter_v1_1_4
+axi_crossbar_v2_1_32=$RDI_DATADIR/xsim/ip/axi_crossbar_v2_1_32
+axis_itct_v1_0_1=$RDI_DATADIR/xsim/ip/axis_itct_v1_0_1
+xbip_pipe_v3_0_9=$RDI_DATADIR/xsim/ip/xbip_pipe_v3_0_9
+tsn_temac_v1_0_11=$RDI_DATADIR/xsim/ip/tsn_temac_v1_0_11
+lib_srl_fifo_v1_0_4=$RDI_DATADIR/xsim/ip/lib_srl_fifo_v1_0_4
+ecc_v2_0_16=$RDI_DATADIR/xsim/ip/ecc_v2_0_16
+mutex_v2_1_13=$RDI_DATADIR/xsim/ip/mutex_v2_1_13
+lmb_bram_if_cntlr_v4_0=$RDI_DATADIR/xsim/ip/lmb_bram_if_cntlr_v4_0
+ahblite_axi_bridge_v3_0_26=$RDI_DATADIR/xsim/ip/ahblite_axi_bridge_v3_0_26
+tmr_inject_v1_0_6=$RDI_DATADIR/xsim/ip/tmr_inject_v1_0_6
+qdriv_pl_phy_v1_0_2=$RDI_DATADIR/xsim/ip/qdriv_pl_phy_v1_0_2
+tcc_decoder_3gppmm_v2_0_27=$RDI_DATADIR/xsim/ip/tcc_decoder_3gppmm_v2_0_27
+ai_noc=$RDI_DATADIR/xsim/ip/ai_noc
+util_idelay_ctrl_v1_0_4=$RDI_DATADIR/xsim/ip/util_idelay_ctrl_v1_0_4
+noc2_nps_v1_0_0=$RDI_DATADIR/xsim/ip/noc2_nps_v1_0_0
+etrnic_v1_1_8=$RDI_DATADIR/xsim/ip/etrnic_v1_1_8
+axi_ahblite_bridge_v3_0_28=$RDI_DATADIR/xsim/ip/axi_ahblite_bridge_v3_0_28
+ieee802d3_50g_rs_fec_v1_0_24=$RDI_DATADIR/xsim/ip/ieee802d3_50g_rs_fec_v1_0_24
+noc_hbm_nmu_sim_v1_0_0=$RDI_DATADIR/xsim/ip/noc_hbm_nmu_sim_v1_0_0
+noc_npp_rptr_v1_0_0=$RDI_DATADIR/xsim/ip/noc_npp_rptr_v1_0_0
+dfx_decoupler_v1_0_9=$RDI_DATADIR/xsim/ip/dfx_decoupler_v1_0_9
+dsp_macro_v1_0_6=$RDI_DATADIR/xsim/ip/dsp_macro_v1_0_6
+cpm5n_v1_0_8=$RDI_DATADIR/xsim/ip/cpm5n_v1_0_8
+axi_dma_v7_1_32=$RDI_DATADIR/xsim/ip/axi_dma_v7_1_32
+sim_ipc_multi_intf_v1_0=$RDI_DATADIR/xsim/ip/sim_ipc_multi_intf_v1_0
+hdcp_v1_0_5=$RDI_DATADIR/xsim/ip/hdcp_v1_0_5
+axi_epc_v2_0_34=$RDI_DATADIR/xsim/ip/axi_epc_v2_0_34
+tmr_comparator_v1_0_7=$RDI_DATADIR/xsim/ip/tmr_comparator_v1_0_7
+v_warp_filter_v1_1_4=$RDI_DATADIR/xsim/ip/v_warp_filter_v1_1_4
+ai_pl=$RDI_DATADIR/xsim/ip/ai_pl
+xdfe_nlf_v1_1_1=$RDI_DATADIR/xsim/ip/xdfe_nlf_v1_1_1
+v_scenechange_v1_1_6=$RDI_DATADIR/xsim/ip/v_scenechange_v1_1_6
+vfb_v1_0_25=$RDI_DATADIR/xsim/ip/vfb_v1_0_25
+axis_interconnect_v1_1_23=$RDI_DATADIR/xsim/ip/axis_interconnect_v1_1_23
+xlconstant_v1_1_9=$RDI_DATADIR/xsim/ip/xlconstant_v1_1_9
+adc_dac_if_phy_v1_0_0=$RDI_DATADIR/xsim/ip/adc_dac_if_phy_v1_0_0
+mult_gen_v12_0_21=$RDI_DATADIR/xsim/ip/mult_gen_v12_0_21
+i2s_receiver_v1_0_8=$RDI_DATADIR/xsim/ip/i2s_receiver_v1_0_8
+qdriv_pl_v1_0_13=$RDI_DATADIR/xsim/ip/qdriv_pl_v1_0_13
+xbip_dsp48_wrapper_v3_0_6=$RDI_DATADIR/xsim/ip/xbip_dsp48_wrapper_v3_0_6
+lut_buffer_v2_0_1=$RDI_DATADIR/xsim/ip/lut_buffer_v2_0_1
+vid_phy_controller_v2_2_18=$RDI_DATADIR/xsim/ip/vid_phy_controller_v2_2_18
+advanced_io_wizard_phy_v1_0_3=$RDI_DATADIR/xsim/ip/advanced_io_wizard_phy_v1_0_3
+uhdsdi_gt_v2_1_4=$RDI_DATADIR/xsim/ip/uhdsdi_gt_v2_1_4
+axi_dbg_hub=$RDI_DATADIR/xsim/ip/axi_dbg_hub
+anlt_subcore_ip_v1_0_2=$RDI_DATADIR/xsim/ip/anlt_subcore_ip_v1_0_2
+xxv_ethernet_v4_1_10=$RDI_DATADIR/xsim/ip/xxv_ethernet_v4_1_10
+cdcam_v1_1_0=$RDI_DATADIR/xsim/ip/cdcam_v1_1_0
+pci32_v5_0_13=$RDI_DATADIR/xsim/ip/pci32_v5_0_13
+v_mix_v5_2_9=$RDI_DATADIR/xsim/ip/v_mix_v5_2_9
+pci64_v5_0_12=$RDI_DATADIR/xsim/ip/pci64_v5_0_12
+in_system_ibert_v1_0_22=$RDI_DATADIR/xsim/ip/in_system_ibert_v1_0_22
+proc_sys_reset_v5_0_15=$RDI_DATADIR/xsim/ip/proc_sys_reset_v5_0_15
+axis_dwidth_converter_v1_1_30=$RDI_DATADIR/xsim/ip/axis_dwidth_converter_v1_1_30
+sim_ddr_v1_0=$RDI_DATADIR/xsim/ip/sim_ddr_v1_0
+sim_qdma_cpp_v1_0=$RDI_DATADIR/xsim/ip/sim_qdma_cpp_v1_0
+axi_traffic_gen_v3_0_17=$RDI_DATADIR/xsim/ip/axi_traffic_gen_v3_0_17
+v_hdmi_rx_v3_0_4=$RDI_DATADIR/xsim/ip/v_hdmi_rx_v3_0_4
+xdfe_resampler_v1_0_9=$RDI_DATADIR/xsim/ip/xdfe_resampler_v1_0_9
+zynq_ultra_ps_e_v3_3_12=$RDI_DATADIR/xsim/ip/zynq_ultra_ps_e_v3_3_12
+axi_i3c_v1_0_0=$RDI_DATADIR/xsim/ip/axi_i3c_v1_0_0
+g709_rs_encoder_v2_2_12=$RDI_DATADIR/xsim/ip/g709_rs_encoder_v2_2_12
+xpm=$RDI_DATADIR/xsim/ip/xpm
+dptx_v1_0_4=$RDI_DATADIR/xsim/ip/dptx_v1_0_4
+v_axi4s_remap_v1_1_10=$RDI_DATADIR/xsim/ip/v_axi4s_remap_v1_1_10
+tri_mode_ethernet_mac_v9_0_32=$RDI_DATADIR/xsim/ip/tri_mode_ethernet_mac_v9_0_32
+xbip_bram18k_v3_0_9=$RDI_DATADIR/xsim/ip/xbip_bram18k_v3_0_9
+shell_utils_build_info_v2_0_0=$RDI_DATADIR/xsim/ip/shell_utils_build_info_v2_0_0
+cordic_v6_0_22=$RDI_DATADIR/xsim/ip/cordic_v6_0_22
+sim_xdma_cpp_v1=$RDI_DATADIR/xsim/ip/sim_xdma_cpp_v1
+axi_hbicap_v1_0_7=$RDI_DATADIR/xsim/ip/axi_hbicap_v1_0_7
+zynq_ultra_ps_e_vip_v1_0_17=$RDI_DATADIR/xsim/ip/zynq_ultra_ps_e_vip_v1_0_17
+gtwizard_ultrascale_v1_5_4=$RDI_DATADIR/xsim/ip/gtwizard_ultrascale_v1_5_4
+remote_port_c_v4=$RDI_DATADIR/xsim/ip/remote_port_c_v4
+axi_vdma_v6_3_19=$RDI_DATADIR/xsim/ip/axi_vdma_v6_3_19
+x5io_wizard_phy_v1_0_1=$RDI_DATADIR/xsim/ip/x5io_wizard_phy_v1_0_1
+tcc_encoder_3gpp_v5_0_22=$RDI_DATADIR/xsim/ip/tcc_encoder_3gpp_v5_0_22
+axis_combiner_v1_1_29=$RDI_DATADIR/xsim/ip/axis_combiner_v1_1_29
+microblaze_v9_5_5=$RDI_DATADIR/xsim/ip/microblaze_v9_5_5
+advanced_io_wizard_v1_0_13=$RDI_DATADIR/xsim/ip/advanced_io_wizard_v1_0_13
+lib_cdc_v1_0_3=$RDI_DATADIR/xsim/ip/lib_cdc_v1_0_3
+axis_ila_adv_trig_v1_0_1=$RDI_DATADIR/xsim/ip/axis_ila_adv_trig_v1_0_1
+qdma_v5_0_9=$RDI_DATADIR/xsim/ip/qdma_v5_0_9
+ddr4_pl_v1_0_14=$RDI_DATADIR/xsim/ip/ddr4_pl_v1_0_14
+noc_mc_ddr5_phy_v1_0_1=$RDI_DATADIR/xsim/ip/noc_mc_ddr5_phy_v1_0_1
+xtlm_simple_interconnect_v1_0=$RDI_DATADIR/xsim/ip/xtlm_simple_interconnect_v1_0
+axi_sg_v4_1_18=$RDI_DATADIR/xsim/ip/axi_sg_v4_1_18
+xdfe_cc_mixer_v2_0_4=$RDI_DATADIR/xsim/ip/xdfe_cc_mixer_v2_0_4
+processing_system7_vip_v1_0_19=$RDI_DATADIR/xsim/ip/processing_system7_vip_v1_0_19
+mipi_dsi_tx_ctrl_v1_0_9=$RDI_DATADIR/xsim/ip/mipi_dsi_tx_ctrl_v1_0_9
+microblaze_riscv_v1_0_2=$RDI_DATADIR/xsim/ip/microblaze_riscv_v1_0_2
+cpm4_v1_0_16=$RDI_DATADIR/xsim/ip/cpm4_v1_0_16
+xbip_multadd_v3_0_20=$RDI_DATADIR/xsim/ip/xbip_multadd_v3_0_20
+axis_data_fifo_v2_0_13=$RDI_DATADIR/xsim/ip/axis_data_fifo_v2_0_13
+ltlib_v1_0_2=$RDI_DATADIR/xsim/ip/ltlib_v1_0_2
+axis_switch_sc_v1_1=$RDI_DATADIR/xsim/ip/axis_switch_sc_v1_1
+sim_clk_gen_v1_0_4=$RDI_DATADIR/xsim/ip/sim_clk_gen_v1_0_4
+xdfe_fft_v1_0_7=$RDI_DATADIR/xsim/ip/xdfe_fft_v1_0_7
+hsdp_trace_v2_0_2=$RDI_DATADIR/xsim/ip/hsdp_trace_v2_0_2
+blk_mem_gen_v8_4_8=$RDI_DATADIR/xsim/ip/blk_mem_gen_v8_4_8
+cam_blk_lib_v1_1_0=$RDI_DATADIR/xsim/ip/cam_blk_lib_v1_1_0
+tmr_voter_v1_0_6=$RDI_DATADIR/xsim/ip/tmr_voter_v1_0_6
+util_ff_v1_0_3=$RDI_DATADIR/xsim/ip/util_ff_v1_0_3
+interrupt_control_v3_1_5=$RDI_DATADIR/xsim/ip/interrupt_control_v3_1_5
+xdfe_ofdm_v2_1_0=$RDI_DATADIR/xsim/ip/xdfe_ofdm_v2_1_0
+audio_clock_recovery_unit_v1_0_4=$RDI_DATADIR/xsim/ip/audio_clock_recovery_unit_v1_0_4
+ten_gig_eth_mac_v15_1_12=$RDI_DATADIR/xsim/ip/ten_gig_eth_mac_v15_1_12
+axi_protocol_converter_v2_1_31=$RDI_DATADIR/xsim/ip/axi_protocol_converter_v2_1_31
+xbip_dsp48_mult_v3_0_9=$RDI_DATADIR/xsim/ip/xbip_dsp48_mult_v3_0_9
+tmr_sem_v1_0_26=$RDI_DATADIR/xsim/ip/tmr_sem_v1_0_26
+v_frmbuf_rd_v2_4_3=$RDI_DATADIR/xsim/ip/v_frmbuf_rd_v2_4_3
+cmpy_v6_0_24=$RDI_DATADIR/xsim/ip/cmpy_v6_0_24
+ta_dma_v1_0_15=$RDI_DATADIR/xsim/ip/ta_dma_v1_0_15
+v_tpg_v8_0_14=$RDI_DATADIR/xsim/ip/v_tpg_v8_0_14
+axi_tlm_ext_v1_0=$RDI_DATADIR/xsim/ip/axi_tlm_ext_v1_0
+axi_iic_v2_1_7=$RDI_DATADIR/xsim/ip/axi_iic_v2_1_7
+c_addsub_v12_0_18=$RDI_DATADIR/xsim/ip/c_addsub_v12_0_18
+audio_tpg_v1_0_2=$RDI_DATADIR/xsim/ip/audio_tpg_v1_0_2
+axi_tg_sc_v1_0=$RDI_DATADIR/xsim/ip/axi_tg_sc_v1_0
+v_vid_sdi_tx_bridge_v2_0_2=$RDI_DATADIR/xsim/ip/v_vid_sdi_tx_bridge_v2_0_2
+noc_nsu_sim_v1_0_0=$RDI_DATADIR/xsim/ip/noc_nsu_sim_v1_0_0
+axi_register_slice_v2_1_31=$RDI_DATADIR/xsim/ip/axi_register_slice_v2_1_31
+axis_switch_v1_1_31=$RDI_DATADIR/xsim/ip/axis_switch_v1_1_31
+axi_stream_monitor_v1_1_1=$RDI_DATADIR/xsim/ip/axi_stream_monitor_v1_1_1
+v_uhdsdi_vidgen_v1_0_3=$RDI_DATADIR/xsim/ip/v_uhdsdi_vidgen_v1_0_3
+bscan_jtag=$RDI_DATADIR/xsim/ip/bscan_jtag
+audio_formatter_v1_0_13=$RDI_DATADIR/xsim/ip/audio_formatter_v1_0_13
+axis_vio_v1_0_11=$RDI_DATADIR/xsim/ip/axis_vio_v1_0_11
+interlaken_v2_4_17=$RDI_DATADIR/xsim/ip/interlaken_v2_4_17
+axis_register_slice_v1_1_31=$RDI_DATADIR/xsim/ip/axis_register_slice_v1_1_31
+remote_port_sc_v4=$RDI_DATADIR/xsim/ip/remote_port_sc_v4
+hdcp22_cipher_v1_0_5=$RDI_DATADIR/xsim/ip/hdcp22_cipher_v1_0_5
+picxo_fracxo_v2_0_2=$RDI_DATADIR/xsim/ip/picxo_fracxo_v2_0_2
+xdma_v4_1_29=$RDI_DATADIR/xsim/ip/xdma_v4_1_29
+accelerator_monitor_v1_1_0=$RDI_DATADIR/xsim/ip/accelerator_monitor_v1_1_0
+noc_nps6_v1_0_0=$RDI_DATADIR/xsim/ip/noc_nps6_v1_0_0
+roe_framer_v3_0_8=$RDI_DATADIR/xsim/ip/roe_framer_v3_0_8
+g975_efec_i7_v2_0_23=$RDI_DATADIR/xsim/ip/g975_efec_i7_v2_0_23
+quadsgmii_v3_5_18=$RDI_DATADIR/xsim/ip/quadsgmii_v3_5_18
+axi_ethernet_buffer_v2_0_25=$RDI_DATADIR/xsim/ip/axi_ethernet_buffer_v2_0_25
+fit_timer_v2_0_12=$RDI_DATADIR/xsim/ip/fit_timer_v2_0_12
+bsip_v1_1_1=$RDI_DATADIR/xsim/ip/bsip_v1_1_1
+lmb_v10_v3_0=$RDI_DATADIR/xsim/ip/lmb_v10_v3_0
+mailbox_v2_1_17=$RDI_DATADIR/xsim/ip/mailbox_v2_1_17
+v_vscaler_v1_1_11=$RDI_DATADIR/xsim/ip/v_vscaler_v1_1_11
+fifo_generator_v13_0_7=$RDI_DATADIR/xsim/ip/fifo_generator_v13_0_7
+av_pat_gen_v1_0_2=$RDI_DATADIR/xsim/ip/av_pat_gen_v1_0_2
+v_frmbuf_rd_v2_5_2=$RDI_DATADIR/xsim/ip/v_frmbuf_rd_v2_5_2
+mipi_rx_phy_v1_0_0=$RDI_DATADIR/xsim/ip/mipi_rx_phy_v1_0_0
+gig_ethernet_pcs_pma_v16_2_18=$RDI_DATADIR/xsim/ip/gig_ethernet_pcs_pma_v16_2_18
+noc2_nmu_v1_0_1=$RDI_DATADIR/xsim/ip/noc2_nmu_v1_0_1
+ats_switch_v1_0_10=$RDI_DATADIR/xsim/ip/ats_switch_v1_0_10
+axi_ethernetlite_v3_0_30=$RDI_DATADIR/xsim/ip/axi_ethernetlite_v3_0_30
+axis_mu_v1_0_1=$RDI_DATADIR/xsim/ip/axis_mu_v1_0_1
+vby1hs_v1_0_5=$RDI_DATADIR/xsim/ip/vby1hs_v1_0_5
+noc_sc_v1_0_0=$RDI_DATADIR/xsim/ip/noc_sc_v1_0_0
+convolution_v9_0_20=$RDI_DATADIR/xsim/ip/convolution_v9_0_20
+axi4stream_vip_v1_1_17=$RDI_DATADIR/xsim/ip/axi4stream_vip_v1_1_17
+axis_subset_converter_v1_1_31=$RDI_DATADIR/xsim/ip/axis_subset_converter_v1_1_31
+srio_gen2_v4_1_19=$RDI_DATADIR/xsim/ip/srio_gen2_v4_1_19
+lib_bmg_v1_0_17=$RDI_DATADIR/xsim/ip/lib_bmg_v1_0_17
+system_cache_v5_0_11=$RDI_DATADIR/xsim/ip/system_cache_v5_0_11
+dp_videoaxi4s_bridge_v1_0_3=$RDI_DATADIR/xsim/ip/dp_videoaxi4s_bridge_v1_0_3
+sid_v8_0_21=$RDI_DATADIR/xsim/ip/sid_v8_0_21
+blk_mem_gen_v8_3_7=$RDI_DATADIR/xsim/ip/blk_mem_gen_v8_3_7
+noc2_sc_v1_0_0=$RDI_DATADIR/xsim/ip/noc2_sc_v1_0_0
diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xvhdl.log b/proj/AudioProc.sim/sim_1/behav/xsim/xvhdl.log
new file mode 100644
index 0000000..8969597
--- /dev/null
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/xvhdl.log
@@ -0,0 +1,6 @@
+INFO: [VRFC 10-163] Analyzing VHDL file "/homes/j23meneg/MEDCON/tp-filtre-etudiant-j23meneg/src/hdl/controlUnit.vhd" into library xil_defaultlib
+INFO: [VRFC 10-3107] analyzing entity 'controlUnit'
+INFO: [VRFC 10-163] Analyzing VHDL file "/homes/j23meneg/MEDCON/tp-filtre-etudiant-j23meneg/src/hdl/firUnit.vhd" into library xil_defaultlib
+INFO: [VRFC 10-3107] analyzing entity 'firUnit'
+INFO: [VRFC 10-163] Analyzing VHDL file "/homes/j23meneg/MEDCON/tp-filtre-etudiant-j23meneg/src/hdl/tb_firUnit.vhd" into library xil_defaultlib
+INFO: [VRFC 10-3107] analyzing entity 'tb_firUnit'
diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xvhdl.pb b/proj/AudioProc.sim/sim_1/behav/xsim/xvhdl.pb
new file mode 100644
index 0000000000000000000000000000000000000000..ebdc7dbc21a66ff374a08ece254a12a7179d2bd6
GIT binary patch
literal 789
zcmd;D&&Z|Wn3tGSS(TZWt`O$o;-iq3nUkuZq*|<`keOGKuaJ|ORFqg$si0acz$(RT
zXlAU%T~VBwTb5dsnU<Ms<iq8qpOK%NTCAUCWSpCtmzu8c>+0g{@26i<pqrMNQ&N<w
zn_5zul9`xSq6=42T$HSzk&>gIoS#=xl%Ertmsz4$mXTs4z{OXQnG>IqnwD6aQ<9UJ
z6vbv}plfJmoWW4QTERMjkwJio%a=<u5$@#Fypqh4N(FV*Vs!ylDHbC$OLJ5Q@^Wz_
z*%HNWXrOCsXkd<P;A%<(!Gp_<f<Q>iEFvucJV^=wPA+z+4Ol(Dj#AHib9qwW`I4k~
ksOyMN06rx7pNESJVF}hC;N#+Q%}Y@TN=?o$N)ccL07ReeO8@`>

literal 0
HcmV?d00001

diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xvlog.log b/proj/AudioProc.sim/sim_1/behav/xsim/xvlog.log
new file mode 100644
index 0000000..e69de29
diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xvlog.pb b/proj/AudioProc.sim/sim_1/behav/xsim/xvlog.pb
new file mode 100644
index 0000000..b155e40
--- /dev/null
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/xvlog.pb
@@ -0,0 +1,4 @@
+
+
+
+End Record
\ No newline at end of file
diff --git a/proj/AudioProc.xpr b/proj/AudioProc.xpr
new file mode 100644
index 0000000..9079871
--- /dev/null
+++ b/proj/AudioProc.xpr
@@ -0,0 +1,322 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Product Version: Vivado v2024.1 (64-bit)                              -->
+<!--                                                                         -->
+<!-- Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.                   -->
+<!-- Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.   -->
+
+<Project Product="Vivado" Version="7" Minor="67" Path="/homes/j23meneg/MEDCON/tp-filtre-etudiant-j23meneg/proj/AudioProc.xpr">
+  <DefaultLaunch Dir="$PRUNDIR"/>
+  <Configuration>
+    <Option Name="Id" Val="1826229ec62c4c04a4c2273c38d8af2f"/>
+    <Option Name="Part" Val="xc7a200tsbg484-1"/>
+    <Option Name="CompiledLibDir" Val="$PCACHEDIR/compile_simlib"/>
+    <Option Name="CompiledLibDirXSim" Val=""/>
+    <Option Name="CompiledLibDirModelSim" Val="$PCACHEDIR/compile_simlib/modelsim"/>
+    <Option Name="CompiledLibDirQuesta" Val="$PCACHEDIR/compile_simlib/questa"/>
+    <Option Name="CompiledLibDirXcelium" Val="$PCACHEDIR/compile_simlib/xcelium"/>
+    <Option Name="CompiledLibDirVCS" Val="$PCACHEDIR/compile_simlib/vcs"/>
+    <Option Name="CompiledLibDirRiviera" Val="$PCACHEDIR/compile_simlib/riviera"/>
+    <Option Name="CompiledLibDirActivehdl" Val="$PCACHEDIR/compile_simlib/activehdl"/>
+    <Option Name="SimulatorInstallDirModelSim" Val=""/>
+    <Option Name="SimulatorInstallDirQuesta" Val=""/>
+    <Option Name="SimulatorInstallDirXcelium" Val=""/>
+    <Option Name="SimulatorInstallDirVCS" Val=""/>
+    <Option Name="SimulatorInstallDirRiviera" Val=""/>
+    <Option Name="SimulatorInstallDirActiveHdl" Val=""/>
+    <Option Name="SimulatorGccInstallDirModelSim" Val=""/>
+    <Option Name="SimulatorGccInstallDirQuesta" Val=""/>
+    <Option Name="SimulatorGccInstallDirXcelium" Val=""/>
+    <Option Name="SimulatorGccInstallDirVCS" Val=""/>
+    <Option Name="SimulatorGccInstallDirRiviera" Val=""/>
+    <Option Name="SimulatorGccInstallDirActiveHdl" Val=""/>
+    <Option Name="SimulatorVersionXsim" Val="2024.1"/>
+    <Option Name="SimulatorVersionModelSim" Val="2023.2"/>
+    <Option Name="SimulatorVersionQuesta" Val="2023.2"/>
+    <Option Name="SimulatorVersionXcelium" Val="23.03.002"/>
+    <Option Name="SimulatorVersionVCS" Val="U-2023.03-1"/>
+    <Option Name="SimulatorVersionRiviera" Val="2023.04"/>
+    <Option Name="SimulatorVersionActiveHdl" Val="14.1"/>
+    <Option Name="SimulatorGccVersionXsim" Val="9.3.0"/>
+    <Option Name="SimulatorGccVersionModelSim" Val="7.4.0"/>
+    <Option Name="SimulatorGccVersionQuesta" Val="7.4.0"/>
+    <Option Name="SimulatorGccVersionXcelium" Val="9.3.0"/>
+    <Option Name="SimulatorGccVersionVCS" Val="9.2.0"/>
+    <Option Name="SimulatorGccVersionRiviera" Val="9.3.0"/>
+    <Option Name="SimulatorGccVersionActiveHdl" Val="9.3.0"/>
+    <Option Name="TargetLanguage" Val="VHDL"/>
+    <Option Name="BoardPart" Val=""/>
+    <Option Name="ActiveSimSet" Val="sim_1"/>
+    <Option Name="DefaultLib" Val="xil_defaultlib"/>
+    <Option Name="ProjectType" Val="Default"/>
+    <Option Name="IPRepoPath" Val="$PPRDIR/../repo"/>
+    <Option Name="IPOutputRepo" Val="$PCACHEDIR/ip"/>
+    <Option Name="IPDefaultOutputPath" Val="$PGENDIR/sources_1"/>
+    <Option Name="IPCachePermission" Val="read"/>
+    <Option Name="IPCachePermission" Val="write"/>
+    <Option Name="EnableCoreContainer" Val="FALSE"/>
+    <Option Name="EnableResourceEstimation" Val="FALSE"/>
+    <Option Name="SimCompileState" Val="TRUE"/>
+    <Option Name="CreateRefXciForCoreContainers" Val="FALSE"/>
+    <Option Name="IPUserFilesDir" Val="$PIPUSERFILESDIR"/>
+    <Option Name="IPStaticSourceDir" Val="$PIPUSERFILESDIR/ipstatic"/>
+    <Option Name="EnableBDX" Val="FALSE"/>
+    <Option Name="WTXSimLaunchSim" Val="7"/>
+    <Option Name="WTModelSimLaunchSim" Val="0"/>
+    <Option Name="WTQuestaLaunchSim" Val="0"/>
+    <Option Name="WTIesLaunchSim" Val="0"/>
+    <Option Name="WTVcsLaunchSim" Val="0"/>
+    <Option Name="WTRivieraLaunchSim" Val="0"/>
+    <Option Name="WTActivehdlLaunchSim" Val="0"/>
+    <Option Name="WTXSimExportSim" Val="1"/>
+    <Option Name="WTModelSimExportSim" Val="1"/>
+    <Option Name="WTQuestaExportSim" Val="1"/>
+    <Option Name="WTIesExportSim" Val="0"/>
+    <Option Name="WTVcsExportSim" Val="1"/>
+    <Option Name="WTRivieraExportSim" Val="1"/>
+    <Option Name="WTActivehdlExportSim" Val="1"/>
+    <Option Name="GenerateIPUpgradeLog" Val="TRUE"/>
+    <Option Name="XSimRadix" Val="hex"/>
+    <Option Name="XSimTimeUnit" Val="ns"/>
+    <Option Name="XSimArrayDisplayLimit" Val="1024"/>
+    <Option Name="XSimTraceLimit" Val="65536"/>
+    <Option Name="SimTypes" Val="rtl"/>
+    <Option Name="SimTypes" Val="bfm"/>
+    <Option Name="SimTypes" Val="tlm"/>
+    <Option Name="SimTypes" Val="tlm_dpi"/>
+    <Option Name="MEMEnableMemoryMapGeneration" Val="TRUE"/>
+    <Option Name="DcpsUptoDate" Val="TRUE"/>
+    <Option Name="ClassicSocBoot" Val="FALSE"/>
+    <Option Name="LocalIPRepoLeafDirName" Val="ip_repo"/>
+  </Configuration>
+  <FileSets Version="1" Minor="32">
+    <FileSet Name="sources_1" Type="DesignSrcs" RelSrcDir="$PSRCDIR/sources_1" RelGenDir="$PGENDIR/sources_1">
+      <Filter Type="Srcs"/>
+      <File Path="$PPRDIR/../src/hdl/processingUnitIP.v">
+        <FileInfo>
+          <Attr Name="UsedIn" Val="synthesis"/>
+          <Attr Name="UsedIn" Val="implementation"/>
+          <Attr Name="UsedIn" Val="simulation"/>
+        </FileInfo>
+      </File>
+      <File Path="$PPRDIR/../src/ip/clk_wiz_0/clk_wiz_0.xci">
+        <FileInfo>
+          <Attr Name="AutoDisabled" Val="1"/>
+          <Attr Name="UsedIn" Val="synthesis"/>
+          <Attr Name="UsedIn" Val="implementation"/>
+          <Attr Name="UsedIn" Val="simulation"/>
+        </FileInfo>
+      </File>
+      <File Path="$PPRDIR/../src/hdl/audio_init.v">
+        <FileInfo>
+          <Attr Name="AutoDisabled" Val="1"/>
+          <Attr Name="UsedIn" Val="synthesis"/>
+          <Attr Name="UsedIn" Val="implementation"/>
+          <Attr Name="UsedIn" Val="simulation"/>
+        </FileInfo>
+      </File>
+      <File Path="$PPRDIR/../src/hdl/debounce.v">
+        <FileInfo>
+          <Attr Name="AutoDisabled" Val="1"/>
+          <Attr Name="UsedIn" Val="synthesis"/>
+          <Attr Name="UsedIn" Val="implementation"/>
+          <Attr Name="UsedIn" Val="simulation"/>
+        </FileInfo>
+      </File>
+      <File Path="$PPRDIR/../src/hdl/TWICtl.vhd">
+        <FileInfo>
+          <Attr Name="AutoDisabled" Val="1"/>
+          <Attr Name="UsedIn" Val="synthesis"/>
+          <Attr Name="UsedIn" Val="simulation"/>
+        </FileInfo>
+      </File>
+      <File Path="$PPRDIR/../src/hdl/controlUnit.vhd">
+        <FileInfo>
+          <Attr Name="AutoDisabled" Val="1"/>
+          <Attr Name="UsedIn" Val="synthesis"/>
+          <Attr Name="UsedIn" Val="simulation"/>
+        </FileInfo>
+      </File>
+      <File Path="$PPRDIR/../src/hdl/operativeUnit.vhd">
+        <FileInfo>
+          <Attr Name="UserDisabled" Val="1"/>
+          <Attr Name="AutoDisabled" Val="1"/>
+          <Attr Name="UsedIn" Val="synthesis"/>
+          <Attr Name="UsedIn" Val="simulation"/>
+        </FileInfo>
+      </File>
+      <File Path="$PPRDIR/../src/hdl/firUnit.vhd">
+        <FileInfo>
+          <Attr Name="AutoDisabled" Val="1"/>
+          <Attr Name="UsedIn" Val="synthesis"/>
+          <Attr Name="UsedIn" Val="simulation"/>
+        </FileInfo>
+      </File>
+      <File Path="$PPRDIR/../src/hdl/fir.vhd">
+        <FileInfo>
+          <Attr Name="AutoDisabled" Val="1"/>
+          <Attr Name="UsedIn" Val="synthesis"/>
+          <Attr Name="UsedIn" Val="simulation"/>
+        </FileInfo>
+      </File>
+      <File Path="$PPRDIR/../src/hdl/i2s_ctl.vhd">
+        <FileInfo>
+          <Attr Name="AutoDisabled" Val="1"/>
+          <Attr Name="UsedIn" Val="synthesis"/>
+          <Attr Name="UsedIn" Val="simulation"/>
+        </FileInfo>
+      </File>
+      <File Path="$PPRDIR/../src/hdl/audioProc.v">
+        <FileInfo>
+          <Attr Name="AutoDisabled" Val="1"/>
+          <Attr Name="UsedIn" Val="synthesis"/>
+          <Attr Name="UsedIn" Val="implementation"/>
+          <Attr Name="UsedIn" Val="simulation"/>
+        </FileInfo>
+      </File>
+      <File Path="$PPRDIR/../src/hdl/tb_firUnit.vhd">
+        <FileInfo>
+          <Attr Name="AutoDisabled" Val="1"/>
+          <Attr Name="UsedIn" Val="synthesis"/>
+          <Attr Name="UsedIn" Val="simulation"/>
+        </FileInfo>
+      </File>
+      <Config>
+        <Option Name="DesignMode" Val="RTL"/>
+        <Option Name="TopModule" Val="operativeUnit"/>
+        <Option Name="TopLib" Val="xil_defaultlib"/>
+        <Option Name="TopRTLFile" Val="$PPRDIR/../src/hdl/processingUnitIP.v"/>
+      </Config>
+    </FileSet>
+    <FileSet Name="constrs_1" Type="Constrs" RelSrcDir="$PSRCDIR/constrs_1" RelGenDir="$PGENDIR/constrs_1">
+      <Filter Type="Constrs"/>
+      <File Path="$PPRDIR/../src/constraints/NexysVideo_Master.xdc">
+        <FileInfo>
+          <Attr Name="UsedIn" Val="synthesis"/>
+          <Attr Name="UsedIn" Val="implementation"/>
+        </FileInfo>
+      </File>
+      <Config>
+        <Option Name="ConstrsType" Val="XDC"/>
+      </Config>
+    </FileSet>
+    <FileSet Name="sim_1" Type="SimulationSrcs" RelSrcDir="$PSRCDIR/sim_1" RelGenDir="$PGENDIR/sim_1">
+      <File Path="$PPRDIR/tb_firUnit_behav.wcfg">
+        <FileInfo>
+          <Attr Name="UsedIn" Val="simulation"/>
+        </FileInfo>
+      </File>
+      <Config>
+        <Option Name="DesignMode" Val="RTL"/>
+        <Option Name="TopModule" Val="tb_firUnit"/>
+        <Option Name="TopLib" Val="xil_defaultlib"/>
+        <Option Name="TransportPathDelay" Val="0"/>
+        <Option Name="TransportIntDelay" Val="0"/>
+        <Option Name="SelectedSimModel" Val="rtl"/>
+        <Option Name="PamDesignTestbench" Val=""/>
+        <Option Name="PamDutBypassFile" Val="xil_dut_bypass"/>
+        <Option Name="PamSignalDriverFile" Val="xil_bypass_driver"/>
+        <Option Name="PamPseudoTop" Val="pseudo_tb"/>
+        <Option Name="SrcSet" Val="sources_1"/>
+        <Option Name="XSimWcfgFile" Val="$PPRDIR/tb_firUnit_behav.wcfg"/>
+      </Config>
+    </FileSet>
+    <FileSet Name="utils_1" Type="Utils" RelSrcDir="$PSRCDIR/utils_1" RelGenDir="$PGENDIR/utils_1">
+      <Filter Type="Utils"/>
+      <Config>
+        <Option Name="TopAutoSet" Val="TRUE"/>
+      </Config>
+    </FileSet>
+  </FileSets>
+  <Simulators>
+    <Simulator Name="XSim">
+      <Option Name="Description" Val="Vivado Simulator"/>
+      <Option Name="CompiledLib" Val="0"/>
+    </Simulator>
+    <Simulator Name="ModelSim">
+      <Option Name="Description" Val="ModelSim Simulator"/>
+    </Simulator>
+    <Simulator Name="Questa">
+      <Option Name="Description" Val="Questa Advanced Simulator"/>
+    </Simulator>
+    <Simulator Name="Xcelium">
+      <Option Name="Description" Val="Xcelium Parallel Simulator"/>
+    </Simulator>
+    <Simulator Name="VCS">
+      <Option Name="Description" Val="Verilog Compiler Simulator (VCS)"/>
+    </Simulator>
+    <Simulator Name="Riviera">
+      <Option Name="Description" Val="Riviera-PRO Simulator"/>
+    </Simulator>
+  </Simulators>
+  <Runs Version="1" Minor="22">
+    <Run Id="synth_1" Type="Ft3:Synth" SrcSet="sources_1" Part="xc7a200tsbg484-1" ConstrsSet="constrs_1" Description="Higher performance designs, resource sharing is turned off, the global fanout guide is set to a lower number, FSM extraction forced to one-hot, LUT combining is disabled, equivalent registers are preserved, SRL are inferred  with a larger threshold" AutoIncrementalCheckpoint="true" WriteIncrSynthDcp="false" State="current" IncludeInArchive="true" IsChild="false" AutoIncrementalDir="$PSRCDIR/utils_1/imports/synth_1" AutoRQSDir="$PSRCDIR/utils_1/imports/synth_1" ParallelReportGen="true">
+      <Strategy Version="1" Minor="2">
+        <StratHandle Name="Flow_PerfOptimized_High" Flow="Vivado Synthesis 2014">
+          <Desc>Higher performance designs, resource sharing is turned off, the global fanout guide is set to a lower number, FSM extraction forced to one-hot, LUT combining is disabled, equivalent registers are preserved, SRL are inferred  with a larger threshold</Desc>
+        </StratHandle>
+        <Step Id="synth_design">
+          <Option Id="FsmExtraction">1</Option>
+          <Option Id="KeepEquivalentRegisters">1</Option>
+          <Option Id="NoCombineLuts">1</Option>
+          <Option Id="RepFanoutThreshold">400</Option>
+          <Option Id="ResourceSharing">2</Option>
+          <Option Id="ShregMinSize">5</Option>
+        </Step>
+      </Strategy>
+      <ReportStrategy Name="Vivado Synthesis Default Reports" Flow="Vivado Synthesis 2017"/>
+      <Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/>
+      <RQSFiles/>
+    </Run>
+    <Run Id="impl_1" Type="Ft2:EntireDesign" Part="xc7a200tsbg484-1" ConstrsSet="constrs_1" Description="Vivado Implementation Defaults" AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" State="current" SynthRun="synth_1" IncludeInArchive="true" IsChild="false" GenFullBitstream="true" AutoIncrementalDir="$PSRCDIR/utils_1/imports/impl_1" AutoRQSDir="$PSRCDIR/utils_1/imports/impl_1" ParallelReportGen="true">
+      <Strategy Version="1" Minor="2">
+        <StratHandle Name="Vivado Implementation Defaults" Flow="Vivado Implementation 2014">
+          <Desc>Vivado Implementation Defaults</Desc>
+        </StratHandle>
+        <Step Id="init_design"/>
+        <Step Id="opt_design"/>
+        <Step Id="power_opt_design"/>
+        <Step Id="place_design"/>
+        <Step Id="post_place_power_opt_design"/>
+        <Step Id="phys_opt_design"/>
+        <Step Id="route_design"/>
+        <Step Id="post_route_phys_opt_design"/>
+        <Step Id="write_bitstream">
+          <Option Id="BinFile">1</Option>
+        </Step>
+      </Strategy>
+      <ReportStrategy Name="Vivado Implementation Default Reports" Flow="Vivado Implementation 2017"/>
+      <Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/>
+      <RQSFiles/>
+    </Run>
+  </Runs>
+  <Board/>
+  <DashboardSummary Version="1" Minor="0">
+    <Dashboards>
+      <Dashboard Name="default_dashboard">
+        <Gadgets>
+          <Gadget Name="drc_1" Type="drc" Version="1" Row="2" Column="0">
+            <GadgetParam Name="REPORTS" Type="string_list" Value="impl_1#impl_1_route_report_drc_0 "/>
+          </Gadget>
+          <Gadget Name="methodology_1" Type="methodology" Version="1" Row="2" Column="1">
+            <GadgetParam Name="REPORTS" Type="string_list" Value="impl_1#impl_1_route_report_methodology_0 "/>
+          </Gadget>
+          <Gadget Name="power_1" Type="power" Version="1" Row="1" Column="0">
+            <GadgetParam Name="REPORTS" Type="string_list" Value="impl_1#impl_1_route_report_power_0 "/>
+          </Gadget>
+          <Gadget Name="timing_1" Type="timing" Version="1" Row="0" Column="1">
+            <GadgetParam Name="REPORTS" Type="string_list" Value="impl_1#impl_1_route_report_timing_summary_0 "/>
+          </Gadget>
+          <Gadget Name="utilization_1" Type="utilization" Version="1" Row="0" Column="0">
+            <GadgetParam Name="REPORTS" Type="string_list" Value="synth_1#synth_1_synth_report_utilization_0 "/>
+            <GadgetParam Name="RUN.STEP" Type="string" Value="synth_design"/>
+            <GadgetParam Name="RUN.TYPE" Type="string" Value="synthesis"/>
+          </Gadget>
+          <Gadget Name="utilization_2" Type="utilization" Version="1" Row="1" Column="1">
+            <GadgetParam Name="REPORTS" Type="string_list" Value="impl_1#impl_1_place_report_utilization_0 "/>
+          </Gadget>
+        </Gadgets>
+      </Dashboard>
+      <CurrentDashboard>default_dashboard</CurrentDashboard>
+    </Dashboards>
+  </DashboardSummary>
+</Project>
diff --git a/proj/ip_upgrade.log b/proj/ip_upgrade.log
new file mode 100644
index 0000000..0991554
--- /dev/null
+++ b/proj/ip_upgrade.log
@@ -0,0 +1,27 @@
+Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
+---------------------------------------------------------------------------------------------------------------------------------------------
+| Tool Version : Vivado v.2024.1 (lin64) Build 5076996 Wed May 22 18:36:09 MDT 2024
+| Date         : Wed Feb 26 12:12:35 2025
+| Host         : fl-tp-br-669 running 64-bit Ubuntu 24.04.1 LTS
+| Command      : upgrade_ip
+| Device       : xc7a200tsbg484-1
+---------------------------------------------------------------------------------------------------------------------------------------------
+
+Upgrade Log for IP 'clk_wiz_0'
+
+1. Summary
+----------
+
+CAUTION (success, with warnings) in the upgrade of clk_wiz_0 from xilinx.com:ip:clk_wiz:5.2 to xilinx.com:ip:clk_wiz:6.0 (Rev. 14)
+
+After upgrade, an IP may have parameter and port differences compared to the original customization. Please review the parameters within the IP customization GUI to ensure proper functionality. Also, please review the updated IP instantiation template to ensure proper connectivity, and update your design if required.
+
+2. Connection Warnings
+----------------------
+
+Detected external port differences while upgrading 'clk_wiz_0'. These changes may impact your design.
+
+
+-Upgraded port order differs after port 'reset'
+
+
diff --git a/proj/tb_firUnit_behav.wcfg b/proj/tb_firUnit_behav.wcfg
new file mode 100644
index 0000000..dc82ba5
--- /dev/null
+++ b/proj/tb_firUnit_behav.wcfg
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wave_config>
+   <wave_state>
+   </wave_state>
+   <db_ref_list>
+      <db_ref path="tb_firUnit_behav.wdb" id="1">
+         <top_modules>
+            <top_module name="glbl" />
+            <top_module name="tb_firUnit" />
+         </top_modules>
+      </db_ref>
+   </db_ref_list>
+   <zoom_setting>
+      <ZoomStartTime time="8,222.820 ns"></ZoomStartTime>
+      <ZoomEndTime time="9,522.821 ns"></ZoomEndTime>
+      <Cursor1Time time="766.530 ns"></Cursor1Time>
+   </zoom_setting>
+   <column_width_setting>
+      <NameColumnWidth column_width="175"></NameColumnWidth>
+      <ValueColumnWidth column_width="134"></ValueColumnWidth>
+   </column_width_setting>
+   <WVObjectSize size="9" />
+   <wvobject type="logic" fp_name="/tb_firUnit/SC_clock">
+      <obj_property name="ElementShortName">SC_clock</obj_property>
+      <obj_property name="ObjectShortName">SC_clock</obj_property>
+   </wvobject>
+   <wvobject type="logic" fp_name="/tb_firUnit/SC_reset">
+      <obj_property name="ElementShortName">SC_reset</obj_property>
+      <obj_property name="ObjectShortName">SC_reset</obj_property>
+   </wvobject>
+   <wvobject type="array" fp_name="/tb_firUnit/SC_inputSample">
+      <obj_property name="ElementShortName">SC_inputSample[7:0]</obj_property>
+      <obj_property name="ObjectShortName">SC_inputSample[7:0]</obj_property>
+   </wvobject>
+   <wvobject type="logic" fp_name="/tb_firUnit/SC_inputSampleValid">
+      <obj_property name="ElementShortName">SC_inputSampleValid</obj_property>
+      <obj_property name="ObjectShortName">SC_inputSampleValid</obj_property>
+   </wvobject>
+   <wvobject type="array" fp_name="/tb_firUnit/SC_filteredSample">
+      <obj_property name="ElementShortName">SC_filteredSample[7:0]</obj_property>
+      <obj_property name="ObjectShortName">SC_filteredSample[7:0]</obj_property>
+      <obj_property name="Radix">SIGNEDDECRADIX</obj_property>
+   </wvobject>
+   <wvobject type="logic" fp_name="/tb_firUnit/SC_filteredSampleValid">
+      <obj_property name="ElementShortName">SC_filteredSampleValid</obj_property>
+      <obj_property name="ObjectShortName">SC_filteredSampleValid</obj_property>
+   </wvobject>
+   <wvobject type="logic" fp_name="/tb_firUnit/firUnit_1/SC_incrAddress">
+      <obj_property name="ElementShortName">SC_incrAddress</obj_property>
+      <obj_property name="ObjectShortName">SC_incrAddress</obj_property>
+   </wvobject>
+   <wvobject type="array" fp_name="/tb_firUnit/firUnit_1/operativeUnit_1/SR_readAddress_reg__0">
+      <obj_property name="ElementShortName">SR_readAddress_reg__0[3:0]</obj_property>
+      <obj_property name="ObjectShortName">SR_readAddress_reg__0[3:0]</obj_property>
+   </wvobject>
+   <wvobject type="other" fp_name="/tb_firUnit/firUnit_1/controlUnit_1/SR_presentState">
+      <obj_property name="ElementShortName">SR_presentState</obj_property>
+      <obj_property name="ObjectShortName">SR_presentState</obj_property>
+   </wvobject>
+</wave_config>
diff --git a/src/hdl/controlUnit.vhd b/src/hdl/controlUnit.vhd
index 705905d..0248523 100644
--- a/src/hdl/controlUnit.vhd
+++ b/src/hdl/controlUnit.vhd
@@ -49,34 +49,58 @@ architecture archi_operativeUnit of controlUnit is
 
 begin
 
-  process (_BLANK_) is
+  process (I_reset, I_clock) is
   begin
     if I_reset = '1' then               -- asynchronous reset (active high)
-      SR_presentState <= _BLANK_
+      SR_presentState <= WAIT_SAMPLE;
     elsif rising_edge(I_clock) then     -- rising clock edge
-      _BLANK_
+      SR_presentState <= SR_futurState;
     end if;
   end process;
 
-  process (_BLANK_) is
+  process (SR_presentState, I_inputSampleValid, I_processingDone) is
   begin
     case SR_presentState is
 
       when WAIT_SAMPLE =>
-        _BLANK_
+          if (I_inputSampleValid = '1') then
+            SR_futurState <= STORE;
+          else
+            SR_futurState <= WAIT_SAMPLE;
+          end if;
+        
+      when STORE =>
+        SR_futurState <= PROCESSING_LOOP;
+      
+      when PROCESSING_LOOP =>
+          if (I_processingDone = '1') then
+            SR_futurState <= OUTPUT;
+          else
+            SR_futurState <= PROCESSING_LOOP;
+          end if;
+          
+      
+      when OUTPUT =>
+        SR_futurState <= WAIT_END_SAMPLE;
+      
+      when WAIT_END_SAMPLE =>
+          if (I_inputSampleValid = '0') then
+            SR_futurState <= WAIT_SAMPLE;
+          else
+            SR_futurState <= WAIT_END_SAMPLE;
+          end if;
 
       when others => null;
     end case;
   end process;
 
-  O_loadShift           <= '1' when _BLANK_ ;
-  O_initAddress         <= '1' when _BLANK_ ;
-  O_incrAddress         <= '1' when _BLANK_ ;
-  O_initSum             <= '1' when _BLANK_ ;
-  O_loadSum             <= '1' when _BLANK_ ;
-  O_loadY               <= '1' when _BLANK_ ;
-  O_FilteredSampleValid <= '1' when _BLANK_ ;
-
+  O_loadShift           <= '1' when SR_presentState=STORE else '0';
+  O_initAddress         <= '1' when SR_presentState=STORE else '0';
+  O_incrAddress         <= '1' when SR_presentState=PROCESSING_LOOP else '0';
+  O_initSum             <= '1' when SR_presentState=STORE else '0';
+  O_loadSum             <= '1' when SR_presentState=PROCESSING_LOOP else '0';
+  O_loadY               <= '1' when SR_presentState=OUTPUT else '0';
+  O_FilteredSampleValid <= '1' when SR_presentState=WAIT_END_SAMPLE else '0';
 
 
 
diff --git a/src/ip/clk_wiz_0/clk_wiz_0.dcp b/src/ip/clk_wiz_0/clk_wiz_0.dcp
deleted file mode 100644
index 1df5ec10a4ff9e7c1b2e8c55ee8f41698941ff5f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 12528
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

diff --git a/src/ip/clk_wiz_0/clk_wiz_0.v b/src/ip/clk_wiz_0/clk_wiz_0.v
index 2e3a203..088af81 100644
--- a/src/ip/clk_wiz_0/clk_wiz_0.v
+++ b/src/ip/clk_wiz_0/clk_wiz_0.v
@@ -1,23 +1,22 @@
+
 // file: clk_wiz_0.v
-// 
-// (c) Copyright 2008 - 2013 Xilinx, Inc. All rights reserved.
-// 
+// (c) Copyright 2017-2018, 2023 Advanced Micro Devices, Inc. All rights reserved.
+//
 // This file contains confidential and proprietary information
-// of Xilinx, Inc. and is protected under U.S. and
-// international copyright and other intellectual property
-// laws.
-// 
+// of AMD and is protected under U.S. and international copyright
+// and other intellectual property laws.
+//
 // DISCLAIMER
 // This disclaimer is not a license and does not grant any
 // rights to the materials distributed herewith. Except as
 // otherwise provided in a valid license issued to you by
-// Xilinx, and to the maximum extent permitted by applicable
+// AMD, and to the maximum extent permitted by applicable
 // law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
-// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
+// WITH ALL FAULTS, AND AMD HEREBY DISCLAIMS ALL WARRANTIES
 // AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
 // BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
 // INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
-// (2) Xilinx shall not be liable (whether in contract or tort,
+// (2) AMD shall not be liable (whether in contract or tort,
 // including negligence, or under any other theory of
 // liability) for any loss or damage of any kind or nature
 // related to, arising under or in connection with these
@@ -26,11 +25,11 @@
 // (including loss of data, profits, goodwill, or any type of
 // loss or damage suffered as a result of any action brought
 // by a third party) even if such damage or loss was
-// reasonably foreseeable or Xilinx had been advised of the
+// reasonably foreseeable or AMD had been advised of the
 // possibility of the same.
-// 
+//
 // CRITICAL APPLICATIONS
-// Xilinx products are not designed or intended to be fail-
+// AMD products are not designed or intended to be fail-
 // safe, or for use in any application requiring fail-safe
 // performance, such as life-support or safety devices or
 // systems, Class III medical devices, nuclear facilities,
@@ -39,13 +38,12 @@
 // injury, or severe property or environmental damage
 // (individually and collectively, "Critical
 // Applications"). Customer assumes the sole risk and
-// liability of any use of Xilinx products in Critical
+// liability of any use of AMD products in Critical
 // Applications, subject only to applicable laws and
 // regulations governing limitations on product liability.
-// 
+//
 // THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
 // PART OF THIS FILE AT ALL TIMES.
-// 
 //----------------------------------------------------------------------------
 // User entered comments
 //----------------------------------------------------------------------------
@@ -55,10 +53,10 @@
 //  Output     Output      Phase    Duty Cycle   Pk-to-Pk     Phase
 //   Clock     Freq (MHz)  (degrees)    (%)     Jitter (ps)  Error (ps)
 //----------------------------------------------------------------------------
-// CLK_OUT1___100.000______0.000______50.0______151.366____132.063
-// CLK_OUT2___200.000______0.000______50.0______132.221____132.063
-// CLK_OUT3____12.000______0.000______50.0______231.952____132.063
-// CLK_OUT4____50.000______0.000______50.0______174.353____132.063
+// clk_out1__100.00000______0.000______50.0______151.366____132.063
+// clk_out2__200.00000______0.000______50.0______132.221____132.063
+// clk_out3__12.00000______0.000______50.0______231.952____132.063
+// clk_out4__50.00000______0.000______50.0______174.353____132.063
 //
 //----------------------------------------------------------------------------
 // Input Clock   Freq (MHz)    Input Jitter (UI)
@@ -67,12 +65,10 @@
 
 `timescale 1ps/1ps
 
-(* CORE_GENERATION_INFO = "clk_wiz_0,clk_wiz_v5_2_0,{component_name=clk_wiz_0,use_phase_alignment=true,use_min_o_jitter=false,use_max_i_jitter=false,use_dyn_phase_shift=false,use_inclk_switchover=false,use_dyn_reconfig=false,enable_axi=0,feedback_source=FDBK_AUTO,PRIMITIVE=MMCM,num_out_clk=4,clkin1_period=10.0,clkin2_period=10.0,use_power_down=false,use_reset=true,use_locked=true,use_inclk_stopped=false,feedback_type=SINGLE,CLOCK_MGR_TYPE=NA,manual_override=false}" *)
+(* CORE_GENERATION_INFO = "clk_wiz_0,clk_wiz_v6_0_14_0_0,{component_name=clk_wiz_0,use_phase_alignment=true,use_min_o_jitter=false,use_max_i_jitter=false,use_dyn_phase_shift=false,use_inclk_switchover=false,use_dyn_reconfig=false,enable_axi=0,feedback_source=FDBK_AUTO,PRIMITIVE=MMCM,num_out_clk=4,clkin1_period=10.0,clkin2_period=10.0,use_power_down=false,use_reset=true,use_locked=true,use_inclk_stopped=false,feedback_type=SINGLE,CLOCK_MGR_TYPE=NA,manual_override=false}" *)
 
 module clk_wiz_0 
  (
- // Clock in ports
-  input         clk_in1,
   // Clock out ports
   output        clk_out1,
   output        clk_out2,
@@ -80,13 +76,13 @@ module clk_wiz_0
   output        clk_out4,
   // Status and control signals
   input         reset,
-  output        locked
+  output        locked,
+ // Clock in ports
+  input         clk_in1
  );
 
   clk_wiz_0_clk_wiz inst
   (
- // Clock in ports
-  .clk_in1(clk_in1),
   // Clock out ports  
   .clk_out1(clk_out1),
   .clk_out2(clk_out2),
@@ -94,7 +90,9 @@ module clk_wiz_0
   .clk_out4(clk_out4),
   // Status and control signals               
   .reset(reset), 
-  .locked(locked)            
+  .locked(locked),
+ // Clock in ports
+  .clk_in1(clk_in1)
   );
 
 endmodule
diff --git a/src/ip/clk_wiz_0/clk_wiz_0.vho b/src/ip/clk_wiz_0/clk_wiz_0.vho
index c6b126b..b02ca8e 100644
--- a/src/ip/clk_wiz_0/clk_wiz_0.vho
+++ b/src/ip/clk_wiz_0/clk_wiz_0.vho
@@ -1,22 +1,21 @@
--- 
--- (c) Copyright 2008 - 2013 Xilinx, Inc. All rights reserved.
--- 
+
+-- (c) Copyright 2017-2018, 2023 Advanced Micro Devices, Inc. All rights reserved.
+--
 -- This file contains confidential and proprietary information
--- of Xilinx, Inc. and is protected under U.S. and
--- international copyright and other intellectual property
--- laws.
--- 
+-- of AMD and is protected under U.S. and international copyright
+-- and other intellectual property laws.
+--
 -- DISCLAIMER
 -- This disclaimer is not a license and does not grant any
 -- rights to the materials distributed herewith. Except as
 -- otherwise provided in a valid license issued to you by
--- Xilinx, and to the maximum extent permitted by applicable
+-- AMD, and to the maximum extent permitted by applicable
 -- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
--- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
+-- WITH ALL FAULTS, AND AMD HEREBY DISCLAIMS ALL WARRANTIES
 -- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
 -- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
 -- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
--- (2) Xilinx shall not be liable (whether in contract or tort,
+-- (2) AMD shall not be liable (whether in contract or tort,
 -- including negligence, or under any other theory of
 -- liability) for any loss or damage of any kind or nature
 -- related to, arising under or in connection with these
@@ -25,11 +24,11 @@
 -- (including loss of data, profits, goodwill, or any type of
 -- loss or damage suffered as a result of any action brought
 -- by a third party) even if such damage or loss was
--- reasonably foreseeable or Xilinx had been advised of the
+-- reasonably foreseeable or AMD had been advised of the
 -- possibility of the same.
--- 
+--
 -- CRITICAL APPLICATIONS
--- Xilinx products are not designed or intended to be fail-
+-- AMD products are not designed or intended to be fail-
 -- safe, or for use in any application requiring fail-safe
 -- performance, such as life-support or safety devices or
 -- systems, Class III medical devices, nuclear facilities,
@@ -38,13 +37,12 @@
 -- injury, or severe property or environmental damage
 -- (individually and collectively, "Critical
 -- Applications"). Customer assumes the sole risk and
--- liability of any use of Xilinx products in Critical
+-- liability of any use of AMD products in Critical
 -- Applications, subject only to applicable laws and
 -- regulations governing limitations on product liability.
--- 
+--
 -- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
 -- PART OF THIS FILE AT ALL TIMES.
--- 
 ------------------------------------------------------------------------------
 -- User entered comments
 ------------------------------------------------------------------------------
@@ -54,10 +52,10 @@
 --  Output     Output      Phase    Duty Cycle   Pk-to-Pk     Phase
 --   Clock     Freq (MHz)  (degrees)    (%)     Jitter (ps)  Error (ps)
 ------------------------------------------------------------------------------
--- CLK_OUT1___100.000______0.000______50.0______151.366____132.063
--- CLK_OUT2___200.000______0.000______50.0______132.221____132.063
--- CLK_OUT3____12.000______0.000______50.0______231.952____132.063
--- CLK_OUT4____50.000______0.000______50.0______174.353____132.063
+-- clk_out1__100.00000______0.000______50.0______151.366____132.063
+-- clk_out2__200.00000______0.000______50.0______132.221____132.063
+-- clk_out3__12.00000______0.000______50.0______231.952____132.063
+-- clk_out4__50.00000______0.000______50.0______174.353____132.063
 --
 ------------------------------------------------------------------------------
 -- Input Clock   Freq (MHz)    Input Jitter (UI)
@@ -70,7 +68,6 @@
 component clk_wiz_0
 port
  (-- Clock in ports
-  clk_in1           : in     std_logic;
   -- Clock out ports
   clk_out1          : out    std_logic;
   clk_out2          : out    std_logic;
@@ -78,7 +75,8 @@ port
   clk_out4          : out    std_logic;
   -- Status and control signals
   reset             : in     std_logic;
-  locked            : out    std_logic
+  locked            : out    std_logic;
+  clk_in1           : in     std_logic
  );
 end component;
 
@@ -88,9 +86,6 @@ end component;
 ------------- Begin Cut here for INSTANTIATION Template ----- INST_TAG
 your_instance_name : clk_wiz_0
    port map ( 
-
-   -- Clock in ports
-   clk_in1 => clk_in1,
   -- Clock out ports  
    clk_out1 => clk_out1,
    clk_out2 => clk_out2,
@@ -98,6 +93,8 @@ your_instance_name : clk_wiz_0
    clk_out4 => clk_out4,
   -- Status and control signals                
    reset => reset,
-   locked => locked            
+   locked => locked,
+   -- Clock in ports
+   clk_in1 => clk_in1
  );
 -- INST_TAG_END ------ End INSTANTIATION Template ------------
diff --git a/src/ip/clk_wiz_0/clk_wiz_0.xci b/src/ip/clk_wiz_0/clk_wiz_0.xci
index 79f1c0a..8735bea 100644
--- a/src/ip/clk_wiz_0/clk_wiz_0.xci
+++ b/src/ip/clk_wiz_0/clk_wiz_0.xci
@@ -1,525 +1,728 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<spirit:design xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-  <spirit:vendor>xilinx.com</spirit:vendor>
-  <spirit:library>xci</spirit:library>
-  <spirit:name>unknown</spirit:name>
-  <spirit:version>1.0</spirit:version>
-  <spirit:componentInstances>
-    <spirit:componentInstance>
-      <spirit:instanceName>clk_wiz_0</spirit:instanceName>
-      <spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="clk_wiz" spirit:version="5.2"/>
-      <spirit:configurableElementValues>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CDDCDONE_PORT">cddcdone</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CDDCREQ_PORT">cddcreq</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKFB_IN_N_PORT">clkfb_in_n</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKFB_IN_PORT">clkfb_in</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKFB_IN_P_PORT">clkfb_in_p</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKFB_IN_SIGNALING">SINGLE</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKFB_OUT_N_PORT">clkfb_out_n</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKFB_OUT_PORT">clkfb_out</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKFB_OUT_P_PORT">clkfb_out_p</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKFB_STOPPED_PORT">clkfb_stopped</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKIN1_JITTER_PS">100.0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKIN2_JITTER_PS">100.0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_DRIVES">BUFG</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_DUTY_CYCLE">50.0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_OUT_FREQ">100.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_REQUESTED_OUT_FREQ">100.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_REQUESTED_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_SEQUENCE_NUMBER">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_DRIVES">BUFG</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_DUTY_CYCLE">50.0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_OUT_FREQ">200.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_REQUESTED_OUT_FREQ">200.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_REQUESTED_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_SEQUENCE_NUMBER">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_USED">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_DRIVES">BUFG</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_DUTY_CYCLE">50.0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_OUT_FREQ">12.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_REQUESTED_OUT_FREQ">12.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_REQUESTED_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_SEQUENCE_NUMBER">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_USED">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_DRIVES">BUFG</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_DUTY_CYCLE">50.0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_OUT_FREQ">50.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_REQUESTED_OUT_FREQ">50.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_REQUESTED_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_SEQUENCE_NUMBER">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_USED">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_DRIVES">BUFG</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_DUTY_CYCLE">50.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_OUT_FREQ">100.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_REQUESTED_OUT_FREQ">100.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_REQUESTED_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_SEQUENCE_NUMBER">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_USED">0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_DRIVES">BUFG</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_DUTY_CYCLE">50.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_OUT_FREQ">100.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_REQUESTED_OUT_FREQ">100.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_REQUESTED_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_SEQUENCE_NUMBER">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_USED">0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_DRIVES">BUFG</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_DUTY_CYCLE">50.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_OUT_FREQ">100.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_REQUESTED_OUT_FREQ">100.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_REQUESTED_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_SEQUENCE_NUMBER">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_USED">0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUTPHY_MODE">VCO</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLK_IN_SEL_PORT">clk_in_sel</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLK_OUT1_PORT">clk_out1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLK_OUT2_PORT">clk_out2</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLK_OUT3_PORT">clk_out3</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLK_OUT4_PORT">clk_out4</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLK_OUT5_PORT">clk_out5</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLK_OUT6_PORT">clk_out6</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLK_OUT7_PORT">clk_out7</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLK_VALID_PORT">CLK_VALID</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLOCK_MGR_TYPE">NA</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DADDR_PORT">daddr</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DCLK_PORT">dclk</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DEN_PORT">den</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DIN_PORT">din</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DOUT_PORT">dout</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DRDY_PORT">drdy</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DWE_PORT">dwe</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ENABLE_CLKOUTPHY">0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_FEEDBACK_SOURCE">FDBK_AUTO</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_CDDC">0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INCLK_SUM_ROW0">Input Clock   Freq (MHz)    Input Jitter (UI)</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INCLK_SUM_ROW1">__primary_________100.000____________0.010</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INCLK_SUM_ROW2">no_secondary_input_clock </spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INPUT_CLK_STOPPED_PORT">input_clk_stopped</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INTERFACE_SELECTION">0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_IN_FREQ_UNITS">Units_MHz</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_JITTER_SEL">No_Jitter</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_LOCKED_PORT">locked</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_BANDWIDTH">OPTIMIZED</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKFBOUT_MULT_F">6.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKFBOUT_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKFBOUT_USE_FINE_PS">FALSE</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKIN1_PERIOD">10.0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKIN2_PERIOD">10.0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT0_DIVIDE_F">6.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT0_DUTY_CYCLE">0.500</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT0_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT0_USE_FINE_PS">FALSE</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT1_DIVIDE">3</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT1_DUTY_CYCLE">0.500</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT1_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT1_USE_FINE_PS">FALSE</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT2_DIVIDE">50</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT2_DUTY_CYCLE">0.500</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT2_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT2_USE_FINE_PS">FALSE</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT3_DIVIDE">12</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT3_DUTY_CYCLE">0.500</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT3_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT3_USE_FINE_PS">FALSE</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT4_CASCADE">FALSE</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT4_DIVIDE">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT4_DUTY_CYCLE">0.500</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT4_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT4_USE_FINE_PS">FALSE</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT5_DIVIDE">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT5_DUTY_CYCLE">0.500</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT5_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT5_USE_FINE_PS">FALSE</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT6_DIVIDE">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT6_DUTY_CYCLE">0.500</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT6_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT6_USE_FINE_PS">FALSE</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLOCK_HOLD">FALSE</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_COMPENSATION">ZHOLD</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_DIVCLK_DIVIDE">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_NOTES">None</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_REF_JITTER1">0.010</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_REF_JITTER2">0.010</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_STARTUP_WAIT">FALSE</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_NUM_OUT_CLKS">4</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW0A"> Output     Output      Phase    Duty Cycle   Pk-to-Pk     Phase</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW0B">  Clock     Freq (MHz)  (degrees)    (%)     Jitter (ps)  Error (ps)</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW1">CLK_OUT1___100.000______0.000______50.0______151.366____132.063</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW2">CLK_OUT2___200.000______0.000______50.0______132.221____132.063</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW3">CLK_OUT3____12.000______0.000______50.0______231.952____132.063</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW4">CLK_OUT4____50.000______0.000______50.0______174.353____132.063</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW5">no_CLK_OUT5_output</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW6">no_CLK_OUT6_output</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW7">no_CLK_OUT7_output</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OVERRIDE_MMCM">0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OVERRIDE_PLL">0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLATFORM">UNKNOWN</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_BANDWIDTH">OPTIMIZED</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKFBOUT_MULT">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKFBOUT_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKIN_PERIOD">1.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT0_DIVIDE">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT0_DUTY_CYCLE">0.500</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT0_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT1_DIVIDE">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT1_DUTY_CYCLE">0.500</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT1_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT2_DIVIDE">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT2_DUTY_CYCLE">0.500</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT2_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT3_DIVIDE">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT3_DUTY_CYCLE">0.500</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT3_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT4_DIVIDE">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT4_DUTY_CYCLE">0.500</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT4_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT5_DIVIDE">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT5_DUTY_CYCLE">0.500</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT5_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLK_FEEDBACK">CLKFBOUT</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_COMPENSATION">SYSTEM_SYNCHRONOUS</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_DIVCLK_DIVIDE">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_NOTES">No notes</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_REF_JITTER">0.010</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_POWER_DOWN_PORT">power_down</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIMARY_PORT">clk_in1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIMITIVE">MMCM</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIMTYPE_SEL">AUTO</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_IN_FREQ">100.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_IN_JITTER">0.010</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_IN_TIMEPERIOD">10.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_SOURCE">Single_ended_clock_capable_pin</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PSCLK_PORT">psclk</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PSDONE_PORT">psdone</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PSEN_PORT">psen</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PSINCDEC_PORT">psincdec</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RESET_LOW">0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RESET_PORT">reset</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SECONDARY_IN_FREQ">100.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SECONDARY_IN_JITTER">0.010</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SECONDARY_IN_TIMEPERIOD">10.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SECONDARY_PORT">clk_in2</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SECONDARY_SOURCE">Single_ended_clock_capable_pin</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SS_MODE">CENTER_HIGH</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SS_MOD_PERIOD">4000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SS_MOD_TIME">0.004</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_STATUS_PORT">STATUS</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_S_AXI_ADDR_WIDTH">11</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_S_AXI_DATA_WIDTH">32</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_CLKFB_STOPPED">0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_CLKOUT1_BAR">0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_CLKOUT2_BAR">0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_CLKOUT3_BAR">0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_CLKOUT4_BAR">0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_CLK_VALID">0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_CLOCK_SEQUENCING">0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_DYN_PHASE_SHIFT">0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_DYN_RECONFIG">0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_FAST_SIMULATION">0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_FREEZE">0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_FREQ_SYNTH">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_INCLK_STOPPED">0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_INCLK_SWITCHOVER">0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_LOCKED">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_MAX_I_JITTER">0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_MIN_O_JITTER">0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_MIN_POWER">0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_POWER_DOWN">0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_RESET">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_SAFE_CLOCK_STARTUP">0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_SPREAD_SPECTRUM">0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_STATUS">0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.c_component_name">clk_wiz_0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CALC_DONE">empty</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CDDCDONE_PORT">cddcdone</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CDDCREQ_PORT">cddcreq</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKFB_IN_N_PORT">clkfb_in_n</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKFB_IN_PORT">clkfb_in</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKFB_IN_P_PORT">clkfb_in_p</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKFB_IN_SIGNALING">SINGLE</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKFB_OUT_N_PORT">clkfb_out_n</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKFB_OUT_PORT">clkfb_out</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKFB_OUT_P_PORT">clkfb_out_p</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKFB_STOPPED_PORT">clkfb_stopped</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKIN1_JITTER_PS">100.0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKIN1_UI_JITTER">0.010</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKIN2_JITTER_PS">100.0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKIN2_UI_JITTER">0.010</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT1_DRIVES">BUFG</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT1_JITTER">151.366</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT1_PHASE_ERROR">132.063</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT1_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT1_REQUESTED_OUT_FREQ">100.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT1_REQUESTED_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT1_SEQUENCE_NUMBER">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT1_USED">true</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT2_DRIVES">BUFG</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT2_JITTER">132.221</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT2_PHASE_ERROR">132.063</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT2_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT2_REQUESTED_OUT_FREQ">200.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT2_REQUESTED_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT2_SEQUENCE_NUMBER">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT2_USED">true</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT3_DRIVES">BUFG</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT3_JITTER">231.952</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT3_PHASE_ERROR">132.063</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT3_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT3_REQUESTED_OUT_FREQ">12.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT3_REQUESTED_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT3_SEQUENCE_NUMBER">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT3_USED">true</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT4_DRIVES">BUFG</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT4_JITTER">174.353</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT4_PHASE_ERROR">132.063</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT4_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT4_REQUESTED_OUT_FREQ">50.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT4_REQUESTED_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT4_SEQUENCE_NUMBER">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT4_USED">true</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT5_DRIVES">BUFG</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT5_JITTER">0.0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT5_PHASE_ERROR">0.0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT5_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT5_REQUESTED_OUT_FREQ">100.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT5_REQUESTED_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT5_SEQUENCE_NUMBER">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT5_USED">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT6_DRIVES">BUFG</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT6_JITTER">0.0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT6_PHASE_ERROR">0.0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT6_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT6_REQUESTED_OUT_FREQ">100.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT6_REQUESTED_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT6_SEQUENCE_NUMBER">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT6_USED">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT7_DRIVES">BUFG</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT7_JITTER">0.0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT7_PHASE_ERROR">0.0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT7_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT7_REQUESTED_OUT_FREQ">100.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT7_REQUESTED_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT7_SEQUENCE_NUMBER">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT7_USED">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUTPHY_REQUESTED_FREQ">600.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_IN1_BOARD_INTERFACE">Custom</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_IN2_BOARD_INTERFACE">Custom</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_IN_SEL_PORT">clk_in_sel</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT1_PORT">clk_out1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT1_USE_FINE_PS_GUI">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT2_PORT">clk_out2</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT2_USE_FINE_PS_GUI">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT3_PORT">clk_out3</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT3_USE_FINE_PS_GUI">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT4_PORT">clk_out4</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT4_USE_FINE_PS_GUI">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT5_PORT">clk_out5</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT5_USE_FINE_PS_GUI">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT6_PORT">clk_out6</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT6_USE_FINE_PS_GUI">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT7_PORT">clk_out7</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT7_USE_FINE_PS_GUI">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_VALID_PORT">CLK_VALID</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLOCK_MGR_TYPE">auto</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">clk_wiz_0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DADDR_PORT">daddr</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DCLK_PORT">dclk</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DEN_PORT">den</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DIFF_CLK_IN1_BOARD_INTERFACE">Custom</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DIFF_CLK_IN2_BOARD_INTERFACE">Custom</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DIN_PORT">din</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DOUT_PORT">dout</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DRDY_PORT">drdy</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DWE_PORT">dwe</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_CDDC">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_CLKOUTPHY">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FEEDBACK_SOURCE">FDBK_AUTO</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INPUT_CLK_STOPPED_PORT">input_clk_stopped</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INPUT_MODE">frequency</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERFACE_SELECTION">Enable_AXI</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.IN_FREQ_UNITS">Units_MHz</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.IN_JITTER_UNITS">Units_UI</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.JITTER_OPTIONS">UI</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.JITTER_SEL">No_Jitter</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.LOCKED_PORT">locked</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_BANDWIDTH">OPTIMIZED</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKFBOUT_MULT_F">6.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKFBOUT_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKFBOUT_USE_FINE_PS">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKIN1_PERIOD">10.0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKIN2_PERIOD">10.0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT0_DIVIDE_F">6.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT0_DUTY_CYCLE">0.500</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT0_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT0_USE_FINE_PS">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT1_DIVIDE">3</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT1_DUTY_CYCLE">0.500</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT1_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT1_USE_FINE_PS">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT2_DIVIDE">50</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT2_DUTY_CYCLE">0.500</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT2_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT2_USE_FINE_PS">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT3_DIVIDE">12</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT3_DUTY_CYCLE">0.500</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT3_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT3_USE_FINE_PS">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT4_CASCADE">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT4_DIVIDE">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT4_DUTY_CYCLE">0.500</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT4_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT4_USE_FINE_PS">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT5_DIVIDE">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT5_DUTY_CYCLE">0.500</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT5_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT5_USE_FINE_PS">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT6_DIVIDE">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT6_DUTY_CYCLE">0.500</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT6_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT6_USE_FINE_PS">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLOCK_HOLD">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_COMPENSATION">ZHOLD</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_DIVCLK_DIVIDE">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_NOTES">None</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_REF_JITTER1">0.010</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_REF_JITTER2">0.010</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_STARTUP_WAIT">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.NUM_OUT_CLKS">4</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OVERRIDE_MMCM">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OVERRIDE_PLL">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PHASE_DUTY_CONFIG">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLATFORM">UNKNOWN</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_BANDWIDTH">OPTIMIZED</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKFBOUT_MULT">4</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKFBOUT_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKIN_PERIOD">10.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT0_DIVIDE">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT0_DUTY_CYCLE">0.500</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT0_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT1_DIVIDE">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT1_DUTY_CYCLE">0.500</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT1_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT2_DIVIDE">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT2_DUTY_CYCLE">0.500</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT2_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT3_DIVIDE">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT3_DUTY_CYCLE">0.500</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT3_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT4_DIVIDE">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT4_DUTY_CYCLE">0.500</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT4_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT5_DIVIDE">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT5_DUTY_CYCLE">0.500</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT5_PHASE">0.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLK_FEEDBACK">CLKFBOUT</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_COMPENSATION">SYSTEM_SYNCHRONOUS</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_DIVCLK_DIVIDE">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_NOTES">None</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_REF_JITTER">0.010</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.POWER_DOWN_PORT">power_down</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PRIMARY_PORT">clk_in1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PRIMITIVE">MMCM</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PRIMTYPE_SEL">mmcm_adv</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PRIM_IN_FREQ">100.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PRIM_IN_JITTER">0.010</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PRIM_IN_TIMEPERIOD">10.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PRIM_SOURCE">Single_ended_clock_capable_pin</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PSCLK_PORT">psclk</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PSDONE_PORT">psdone</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PSEN_PORT">psen</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PSINCDEC_PORT">psincdec</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RELATIVE_INCLK">REL_PRIMARY</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RESET_BOARD_INTERFACE">Custom</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RESET_PORT">reset</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RESET_TYPE">ACTIVE_HIGH</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SECONDARY_IN_FREQ">100.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SECONDARY_IN_JITTER">0.010</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SECONDARY_IN_TIMEPERIOD">10.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SECONDARY_PORT">clk_in2</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SECONDARY_SOURCE">Single_ended_clock_capable_pin</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SS_MODE">CENTER_HIGH</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SS_MOD_FREQ">250</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SS_MOD_TIME">0.004</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.STATUS_PORT">STATUS</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SUMMARY_STRINGS">empty</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_BOARD_FLOW">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_CLKFB_STOPPED">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_CLK_VALID">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_CLOCK_SEQUENCING">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_DYN_PHASE_SHIFT">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_DYN_RECONFIG">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_FREEZE">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_FREQ_SYNTH">true</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_INCLK_STOPPED">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_INCLK_SWITCHOVER">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_LOCKED">true</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_MAX_I_JITTER">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_MIN_O_JITTER">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_MIN_POWER">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_PHASE_ALIGNMENT">true</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_POWER_DOWN">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_RESET">true</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_SAFE_CLOCK_STARTUP">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_SPREAD_SPECTRUM">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_STATUS">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.ARCHITECTURE">artix7</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.BOARD"/>
-        <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.DEVICE">xc7a200t</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PACKAGE">sbg484</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PREFHDL">VHDL</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SILICON_REVISION"/>
-        <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SIMULATOR_LANGUAGE">MIXED</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SPEEDGRADE">-1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.TEMPERATURE_GRADE">C</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_CUSTOMIZATION">TRUE</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_GENERATION">TRUE</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPCONTEXT">IP_Flow</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPREVISION">0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.MANAGED">TRUE</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">.</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/>
-        <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2015.3</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue>
-      </spirit:configurableElementValues>
-      <spirit:vendorExtensions>
-        <xilinx:componentInstanceExtensions>
-          <xilinx:configElementInfos>
-            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT1_JITTER" xilinx:valueSource="user"/>
-            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT1_PHASE_ERROR" xilinx:valueSource="user"/>
-            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT2_JITTER" xilinx:valueSource="user"/>
-            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT2_PHASE_ERROR" xilinx:valueSource="user"/>
-            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT2_USED" xilinx:valueSource="user"/>
-            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT3_JITTER" xilinx:valueSource="user"/>
-            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT3_PHASE_ERROR" xilinx:valueSource="user"/>
-            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT3_USED" xilinx:valueSource="user"/>
-            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT4_JITTER" xilinx:valueSource="user"/>
-            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT4_PHASE_ERROR" xilinx:valueSource="user"/>
-            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT4_USED" xilinx:valueSource="user"/>
-            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.MMCM_CLKFBOUT_MULT_F" xilinx:valueSource="user"/>
-            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.MMCM_CLKOUT0_DIVIDE_F" xilinx:valueSource="user"/>
-            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.MMCM_CLKOUT1_DIVIDE" xilinx:valueSource="user"/>
-            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.MMCM_CLKOUT2_DIVIDE" xilinx:valueSource="user"/>
-            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.MMCM_CLKOUT3_DIVIDE" xilinx:valueSource="user"/>
-            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.MMCM_DIVCLK_DIVIDE" xilinx:valueSource="user"/>
-            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.NUM_OUT_CLKS" xilinx:valueSource="user"/>
-          </xilinx:configElementInfos>
-        </xilinx:componentInstanceExtensions>
-      </spirit:vendorExtensions>
-    </spirit:componentInstance>
-  </spirit:componentInstances>
-</spirit:design>
+{
+  "schema": "xilinx.com:schema:json_instance:1.0",
+  "ip_inst": {
+    "xci_name": "clk_wiz_0",
+    "component_reference": "xilinx.com:ip:clk_wiz:6.0",
+    "ip_revision": "14",
+    "gen_directory": ".",
+    "parameters": {
+      "component_parameters": {
+        "Component_Name": [ { "value": "clk_wiz_0", "resolve_type": "user", "usage": "all" } ],
+        "USER_CLK_FREQ0": [ { "value": "100.0", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "USER_CLK_FREQ1": [ { "value": "100.0", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "USER_CLK_FREQ2": [ { "value": "100.0", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "USER_CLK_FREQ3": [ { "value": "100.0", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "ENABLE_CLOCK_MONITOR": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "OPTIMIZE_CLOCKING_STRUCTURE_EN": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "ENABLE_USER_CLOCK0": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "ENABLE_USER_CLOCK1": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "ENABLE_USER_CLOCK2": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "ENABLE_USER_CLOCK3": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "Enable_PLL0": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "Enable_PLL1": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "REF_CLK_FREQ": [ { "value": "100.0", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "PRECISION": [ { "value": "1", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "PRIMITIVE": [ { "value": "MMCM", "resolve_type": "user", "usage": "all" } ],
+        "PRIMTYPE_SEL": [ { "value": "mmcm_adv", "resolve_type": "user", "usage": "all" } ],
+        "CLOCK_MGR_TYPE": [ { "value": "auto", "resolve_type": "user", "usage": "all" } ],
+        "USE_FREQ_SYNTH": [ { "value": "true", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "USE_SPREAD_SPECTRUM": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "USE_PHASE_ALIGNMENT": [ { "value": "true", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "USE_MIN_POWER": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "USE_DYN_PHASE_SHIFT": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "USE_DYN_RECONFIG": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "JITTER_SEL": [ { "value": "No_Jitter", "resolve_type": "user", "usage": "all" } ],
+        "PRIM_IN_FREQ": [ { "value": "100.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "PRIM_IN_TIMEPERIOD": [ { "value": "10.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "IN_FREQ_UNITS": [ { "value": "Units_MHz", "resolve_type": "user", "usage": "all" } ],
+        "PHASESHIFT_MODE": [ { "value": "WAVEFORM", "resolve_type": "user", "usage": "all" } ],
+        "IN_JITTER_UNITS": [ { "value": "Units_UI", "resolve_type": "user", "usage": "all" } ],
+        "RELATIVE_INCLK": [ { "value": "REL_PRIMARY", "resolve_type": "user", "usage": "all" } ],
+        "USE_INCLK_SWITCHOVER": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "SECONDARY_IN_FREQ": [ { "value": "100.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "SECONDARY_IN_TIMEPERIOD": [ { "value": "10.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "SECONDARY_PORT": [ { "value": "clk_in2", "resolve_type": "user", "usage": "all" } ],
+        "SECONDARY_SOURCE": [ { "value": "Single_ended_clock_capable_pin", "resolve_type": "user", "usage": "all" } ],
+        "JITTER_OPTIONS": [ { "value": "UI", "resolve_type": "user", "usage": "all" } ],
+        "CLKIN1_UI_JITTER": [ { "value": "0.010", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKIN2_UI_JITTER": [ { "value": "0.010", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "PRIM_IN_JITTER": [ { "value": "0.010", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "SECONDARY_IN_JITTER": [ { "value": "0.010", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKIN1_JITTER_PS": [ { "value": "100.0", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKIN2_JITTER_PS": [ { "value": "100.0", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKOUT1_USED": [ { "value": "true", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "CLKOUT2_USED": [ { "value": "true", "value_src": "user", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "CLKOUT3_USED": [ { "value": "true", "value_src": "user", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "CLKOUT4_USED": [ { "value": "true", "value_src": "user", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "CLKOUT5_USED": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "CLKOUT6_USED": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "CLKOUT7_USED": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "NUM_OUT_CLKS": [ { "value": "4", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ],
+        "CLK_OUT1_USE_FINE_PS_GUI": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "CLK_OUT2_USE_FINE_PS_GUI": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "CLK_OUT3_USE_FINE_PS_GUI": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "CLK_OUT4_USE_FINE_PS_GUI": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "CLK_OUT5_USE_FINE_PS_GUI": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "CLK_OUT6_USE_FINE_PS_GUI": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "CLK_OUT7_USE_FINE_PS_GUI": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "PRIMARY_PORT": [ { "value": "clk_in1", "resolve_type": "user", "usage": "all" } ],
+        "CLK_OUT1_PORT": [ { "value": "clk_out1", "resolve_type": "user", "usage": "all" } ],
+        "CLK_OUT2_PORT": [ { "value": "clk_out2", "resolve_type": "user", "usage": "all" } ],
+        "CLK_OUT3_PORT": [ { "value": "clk_out3", "resolve_type": "user", "usage": "all" } ],
+        "CLK_OUT4_PORT": [ { "value": "clk_out4", "resolve_type": "user", "usage": "all" } ],
+        "CLK_OUT5_PORT": [ { "value": "clk_out5", "resolve_type": "user", "usage": "all" } ],
+        "CLK_OUT6_PORT": [ { "value": "clk_out6", "resolve_type": "user", "usage": "all" } ],
+        "CLK_OUT7_PORT": [ { "value": "clk_out7", "resolve_type": "user", "usage": "all" } ],
+        "DADDR_PORT": [ { "value": "daddr", "resolve_type": "user", "usage": "all" } ],
+        "DCLK_PORT": [ { "value": "dclk", "resolve_type": "user", "usage": "all" } ],
+        "DRDY_PORT": [ { "value": "drdy", "resolve_type": "user", "usage": "all" } ],
+        "DWE_PORT": [ { "value": "dwe", "resolve_type": "user", "usage": "all" } ],
+        "DIN_PORT": [ { "value": "din", "resolve_type": "user", "usage": "all" } ],
+        "DOUT_PORT": [ { "value": "dout", "resolve_type": "user", "usage": "all" } ],
+        "DEN_PORT": [ { "value": "den", "resolve_type": "user", "usage": "all" } ],
+        "PSCLK_PORT": [ { "value": "psclk", "resolve_type": "user", "usage": "all" } ],
+        "PSEN_PORT": [ { "value": "psen", "resolve_type": "user", "usage": "all" } ],
+        "PSINCDEC_PORT": [ { "value": "psincdec", "resolve_type": "user", "usage": "all" } ],
+        "PSDONE_PORT": [ { "value": "psdone", "resolve_type": "user", "usage": "all" } ],
+        "CLKOUT1_REQUESTED_OUT_FREQ": [ { "value": "100.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKOUT1_REQUESTED_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKOUT1_REQUESTED_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKOUT2_REQUESTED_OUT_FREQ": [ { "value": "200.000", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKOUT2_REQUESTED_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKOUT2_REQUESTED_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKOUT3_REQUESTED_OUT_FREQ": [ { "value": "12.000", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKOUT3_REQUESTED_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKOUT3_REQUESTED_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKOUT4_REQUESTED_OUT_FREQ": [ { "value": "50.000", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKOUT4_REQUESTED_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKOUT4_REQUESTED_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKOUT5_REQUESTED_OUT_FREQ": [ { "value": "100.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKOUT5_REQUESTED_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKOUT5_REQUESTED_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKOUT6_REQUESTED_OUT_FREQ": [ { "value": "100.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKOUT6_REQUESTED_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKOUT6_REQUESTED_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKOUT7_REQUESTED_OUT_FREQ": [ { "value": "100.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKOUT7_REQUESTED_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKOUT7_REQUESTED_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "USE_MAX_I_JITTER": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "USE_MIN_O_JITTER": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "CLKOUT1_MATCHED_ROUTING": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "CLKOUT2_MATCHED_ROUTING": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "CLKOUT3_MATCHED_ROUTING": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "CLKOUT4_MATCHED_ROUTING": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "CLKOUT5_MATCHED_ROUTING": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "CLKOUT6_MATCHED_ROUTING": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "CLKOUT7_MATCHED_ROUTING": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "PRIM_SOURCE": [ { "value": "Single_ended_clock_capable_pin", "resolve_type": "user", "usage": "all" } ],
+        "CLKOUT1_DRIVES": [ { "value": "BUFG", "resolve_type": "user", "usage": "all" } ],
+        "CLKOUT2_DRIVES": [ { "value": "BUFG", "resolve_type": "user", "usage": "all" } ],
+        "CLKOUT3_DRIVES": [ { "value": "BUFG", "resolve_type": "user", "usage": "all" } ],
+        "CLKOUT4_DRIVES": [ { "value": "BUFG", "resolve_type": "user", "usage": "all" } ],
+        "CLKOUT5_DRIVES": [ { "value": "BUFG", "resolve_type": "user", "usage": "all" } ],
+        "CLKOUT6_DRIVES": [ { "value": "BUFG", "resolve_type": "user", "usage": "all" } ],
+        "CLKOUT7_DRIVES": [ { "value": "BUFG", "resolve_type": "user", "usage": "all" } ],
+        "FEEDBACK_SOURCE": [ { "value": "FDBK_AUTO", "resolve_type": "user", "usage": "all" } ],
+        "CLKFB_IN_SIGNALING": [ { "value": "SINGLE", "resolve_type": "user", "usage": "all" } ],
+        "CLKFB_IN_PORT": [ { "value": "clkfb_in", "resolve_type": "user", "usage": "all" } ],
+        "CLKFB_IN_P_PORT": [ { "value": "clkfb_in_p", "resolve_type": "user", "usage": "all" } ],
+        "CLKFB_IN_N_PORT": [ { "value": "clkfb_in_n", "resolve_type": "user", "usage": "all" } ],
+        "CLKFB_OUT_PORT": [ { "value": "clkfb_out", "resolve_type": "user", "usage": "all" } ],
+        "CLKFB_OUT_P_PORT": [ { "value": "clkfb_out_p", "resolve_type": "user", "usage": "all" } ],
+        "CLKFB_OUT_N_PORT": [ { "value": "clkfb_out_n", "resolve_type": "user", "usage": "all" } ],
+        "PLATFORM": [ { "value": "UNKNOWN", "resolve_type": "user", "usage": "all" } ],
+        "SUMMARY_STRINGS": [ { "value": "empty", "resolve_type": "user", "usage": "all" } ],
+        "USE_LOCKED": [ { "value": "true", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "CALC_DONE": [ { "value": "empty", "resolve_type": "user", "usage": "all" } ],
+        "USE_RESET": [ { "value": "true", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "USE_POWER_DOWN": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "USE_STATUS": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "USE_FREEZE": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "USE_CLK_VALID": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "USE_INCLK_STOPPED": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "USE_CLKFB_STOPPED": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "RESET_PORT": [ { "value": "reset", "resolve_type": "user", "usage": "all" } ],
+        "LOCKED_PORT": [ { "value": "locked", "resolve_type": "user", "usage": "all" } ],
+        "POWER_DOWN_PORT": [ { "value": "power_down", "resolve_type": "user", "usage": "all" } ],
+        "CLK_VALID_PORT": [ { "value": "CLK_VALID", "resolve_type": "user", "usage": "all" } ],
+        "STATUS_PORT": [ { "value": "STATUS", "resolve_type": "user", "usage": "all" } ],
+        "CLK_IN_SEL_PORT": [ { "value": "clk_in_sel", "resolve_type": "user", "usage": "all" } ],
+        "INPUT_CLK_STOPPED_PORT": [ { "value": "input_clk_stopped", "resolve_type": "user", "usage": "all" } ],
+        "CLKFB_STOPPED_PORT": [ { "value": "clkfb_stopped", "resolve_type": "user", "usage": "all" } ],
+        "SS_MODE": [ { "value": "CENTER_HIGH", "resolve_type": "user", "usage": "all" } ],
+        "SS_MOD_FREQ": [ { "value": "250", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "SS_MOD_TIME": [ { "value": "0.004", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "OVERRIDE_MMCM": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "MMCM_NOTES": [ { "value": "None", "resolve_type": "user", "usage": "all" } ],
+        "MMCM_DIVCLK_DIVIDE": [ { "value": "1", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ],
+        "MMCM_BANDWIDTH": [ { "value": "OPTIMIZED", "resolve_type": "user", "usage": "all" } ],
+        "MMCM_CLKFBOUT_MULT_F": [ { "value": "6.000", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "MMCM_CLKFBOUT_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "MMCM_CLKFBOUT_USE_FINE_PS": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "MMCM_CLKIN1_PERIOD": [ { "value": "10.0", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "MMCM_CLKIN2_PERIOD": [ { "value": "10.0", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "MMCM_CLKOUT4_CASCADE": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "MMCM_CLOCK_HOLD": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "MMCM_COMPENSATION": [ { "value": "ZHOLD", "resolve_type": "user", "usage": "all" } ],
+        "MMCM_REF_JITTER1": [ { "value": "0.010", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "MMCM_REF_JITTER2": [ { "value": "0.010", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "MMCM_STARTUP_WAIT": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "MMCM_CLKOUT0_DIVIDE_F": [ { "value": "6.000", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "MMCM_CLKOUT0_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "MMCM_CLKOUT0_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "MMCM_CLKOUT0_USE_FINE_PS": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "MMCM_CLKOUT1_DIVIDE": [ { "value": "3", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ],
+        "MMCM_CLKOUT1_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "MMCM_CLKOUT1_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "MMCM_CLKOUT1_USE_FINE_PS": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "MMCM_CLKOUT2_DIVIDE": [ { "value": "50", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ],
+        "MMCM_CLKOUT2_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "MMCM_CLKOUT2_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "MMCM_CLKOUT2_USE_FINE_PS": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "MMCM_CLKOUT3_DIVIDE": [ { "value": "12", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ],
+        "MMCM_CLKOUT3_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "MMCM_CLKOUT3_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "MMCM_CLKOUT3_USE_FINE_PS": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "MMCM_CLKOUT4_DIVIDE": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ],
+        "MMCM_CLKOUT4_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "MMCM_CLKOUT4_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "MMCM_CLKOUT4_USE_FINE_PS": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "MMCM_CLKOUT5_DIVIDE": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ],
+        "MMCM_CLKOUT5_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "MMCM_CLKOUT5_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "MMCM_CLKOUT5_USE_FINE_PS": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "MMCM_CLKOUT6_DIVIDE": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ],
+        "MMCM_CLKOUT6_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "MMCM_CLKOUT6_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "MMCM_CLKOUT6_USE_FINE_PS": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "OVERRIDE_PLL": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "PLL_NOTES": [ { "value": "None", "resolve_type": "user", "usage": "all" } ],
+        "PLL_BANDWIDTH": [ { "value": "OPTIMIZED", "resolve_type": "user", "usage": "all" } ],
+        "PLL_CLKFBOUT_MULT": [ { "value": "4", "resolve_type": "user", "format": "long", "usage": "all" } ],
+        "PLL_CLKFBOUT_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "PLL_CLK_FEEDBACK": [ { "value": "CLKFBOUT", "resolve_type": "user", "usage": "all" } ],
+        "PLL_DIVCLK_DIVIDE": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ],
+        "PLL_CLKIN_PERIOD": [ { "value": "10.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "PLL_COMPENSATION": [ { "value": "SYSTEM_SYNCHRONOUS", "resolve_type": "user", "usage": "all" } ],
+        "PLL_REF_JITTER": [ { "value": "0.010", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "PLL_CLKOUT0_DIVIDE": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ],
+        "PLL_CLKOUT0_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "PLL_CLKOUT0_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "PLL_CLKOUT1_DIVIDE": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ],
+        "PLL_CLKOUT1_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "PLL_CLKOUT1_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "PLL_CLKOUT2_DIVIDE": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ],
+        "PLL_CLKOUT2_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "PLL_CLKOUT2_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "PLL_CLKOUT3_DIVIDE": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ],
+        "PLL_CLKOUT3_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "PLL_CLKOUT3_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "PLL_CLKOUT4_DIVIDE": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ],
+        "PLL_CLKOUT4_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "PLL_CLKOUT4_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "PLL_CLKOUT5_DIVIDE": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ],
+        "PLL_CLKOUT5_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "PLL_CLKOUT5_PHASE": [ { "value": "0.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "RESET_TYPE": [ { "value": "ACTIVE_HIGH", "resolve_type": "user", "usage": "all" } ],
+        "USE_SAFE_CLOCK_STARTUP": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "USE_CLOCK_SEQUENCING": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "CLKOUT1_SEQUENCE_NUMBER": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ],
+        "CLKOUT2_SEQUENCE_NUMBER": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ],
+        "CLKOUT3_SEQUENCE_NUMBER": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ],
+        "CLKOUT4_SEQUENCE_NUMBER": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ],
+        "CLKOUT5_SEQUENCE_NUMBER": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ],
+        "CLKOUT6_SEQUENCE_NUMBER": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ],
+        "CLKOUT7_SEQUENCE_NUMBER": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ],
+        "USE_BOARD_FLOW": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "CLK_IN1_BOARD_INTERFACE": [ { "value": "Custom", "resolve_type": "user", "usage": "all" } ],
+        "CLK_IN2_BOARD_INTERFACE": [ { "value": "Custom", "resolve_type": "user", "usage": "all" } ],
+        "DIFF_CLK_IN1_BOARD_INTERFACE": [ { "value": "Custom", "resolve_type": "user", "usage": "all" } ],
+        "DIFF_CLK_IN2_BOARD_INTERFACE": [ { "value": "Custom", "resolve_type": "user", "usage": "all" } ],
+        "AUTO_PRIMITIVE": [ { "value": "MMCM", "resolve_type": "user", "usage": "all" } ],
+        "RESET_BOARD_INTERFACE": [ { "value": "Custom", "resolve_type": "user", "usage": "all" } ],
+        "ENABLE_CDDC": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "CDDCDONE_PORT": [ { "value": "cddcdone", "resolve_type": "user", "usage": "all" } ],
+        "CDDCREQ_PORT": [ { "value": "cddcreq", "resolve_type": "user", "usage": "all" } ],
+        "ENABLE_CLKOUTPHY": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "CLKOUTPHY_REQUESTED_FREQ": [ { "value": "600.000", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKOUT1_JITTER": [ { "value": "151.366", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKOUT1_PHASE_ERROR": [ { "value": "132.063", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKOUT2_JITTER": [ { "value": "132.221", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKOUT2_PHASE_ERROR": [ { "value": "132.063", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKOUT3_JITTER": [ { "value": "231.952", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKOUT3_PHASE_ERROR": [ { "value": "132.063", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKOUT4_JITTER": [ { "value": "174.353", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKOUT4_PHASE_ERROR": [ { "value": "132.063", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKOUT5_JITTER": [ { "value": "0.0", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKOUT5_PHASE_ERROR": [ { "value": "0.0", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKOUT6_JITTER": [ { "value": "0.0", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKOUT6_PHASE_ERROR": [ { "value": "0.0", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKOUT7_JITTER": [ { "value": "0.0", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "CLKOUT7_PHASE_ERROR": [ { "value": "0.0", "resolve_type": "user", "format": "float", "usage": "all" } ],
+        "INPUT_MODE": [ { "value": "frequency", "resolve_type": "user", "usage": "all" } ],
+        "INTERFACE_SELECTION": [ { "value": "Enable_AXI", "resolve_type": "user", "usage": "all" } ],
+        "AXI_DRP": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+        "PHASE_DUTY_CONFIG": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ]
+      },
+      "model_parameters": {
+        "C_CLKOUT2_USED": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_USER_CLK_FREQ0": [ { "value": "100.0", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_AUTO_PRIMITIVE": [ { "value": "MMCM", "resolve_type": "generated", "usage": "all" } ],
+        "C_USER_CLK_FREQ1": [ { "value": "100.0", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_USER_CLK_FREQ2": [ { "value": "100.0", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_USER_CLK_FREQ3": [ { "value": "100.0", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_ENABLE_CLOCK_MONITOR": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_ENABLE_USER_CLOCK0": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_ENABLE_USER_CLOCK1": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_ENABLE_USER_CLOCK2": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_ENABLE_USER_CLOCK3": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_Enable_PLL0": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_Enable_PLL1": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_REF_CLK_FREQ": [ { "value": "100.0", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_PRECISION": [ { "value": "1", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT3_USED": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_CLKOUT4_USED": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_CLKOUT5_USED": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_CLKOUT6_USED": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_CLKOUT7_USED": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_USE_CLKOUT1_BAR": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_USE_CLKOUT2_BAR": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_USE_CLKOUT3_BAR": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_USE_CLKOUT4_BAR": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "c_component_name": [ { "value": "clk_wiz_0", "resolve_type": "generated", "usage": "all" } ],
+        "C_PLATFORM": [ { "value": "UNKNOWN", "resolve_type": "generated", "usage": "all" } ],
+        "C_USE_FREQ_SYNTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_USE_PHASE_ALIGNMENT": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_PRIM_IN_JITTER": [ { "value": "0.010", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_SECONDARY_IN_JITTER": [ { "value": "0.010", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_JITTER_SEL": [ { "value": "No_Jitter", "resolve_type": "generated", "usage": "all" } ],
+        "C_USE_MIN_POWER": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_USE_MIN_O_JITTER": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_USE_MAX_I_JITTER": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_USE_DYN_PHASE_SHIFT": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_OPTIMIZE_CLOCKING_STRUCTURE_EN": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_USE_INCLK_SWITCHOVER": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_USE_DYN_RECONFIG": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_USE_SPREAD_SPECTRUM": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_USE_FAST_SIMULATION": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_PRIMTYPE_SEL": [ { "value": "AUTO", "resolve_type": "generated", "usage": "all" } ],
+        "C_USE_CLK_VALID": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_PRIM_IN_FREQ": [ { "value": "100.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_PRIM_IN_TIMEPERIOD": [ { "value": "10.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_IN_FREQ_UNITS": [ { "value": "Units_MHz", "resolve_type": "generated", "usage": "all" } ],
+        "C_SECONDARY_IN_FREQ": [ { "value": "100.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_SECONDARY_IN_TIMEPERIOD": [ { "value": "10.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_FEEDBACK_SOURCE": [ { "value": "FDBK_AUTO", "resolve_type": "generated", "usage": "all" } ],
+        "C_PRIM_SOURCE": [ { "value": "Single_ended_clock_capable_pin", "resolve_type": "generated", "usage": "all" } ],
+        "C_PHASESHIFT_MODE": [ { "value": "WAVEFORM", "resolve_type": "generated", "usage": "all" } ],
+        "C_SECONDARY_SOURCE": [ { "value": "Single_ended_clock_capable_pin", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKFB_IN_SIGNALING": [ { "value": "SINGLE", "resolve_type": "generated", "usage": "all" } ],
+        "C_USE_RESET": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_RESET_LOW": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_USE_LOCKED": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_USE_INCLK_STOPPED": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_USE_CLKFB_STOPPED": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_USE_POWER_DOWN": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_USE_STATUS": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_USE_FREEZE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_NUM_OUT_CLKS": [ { "value": "4", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_CLKOUT1_DRIVES": [ { "value": "BUFG", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUT2_DRIVES": [ { "value": "BUFG", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUT3_DRIVES": [ { "value": "BUFG", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUT4_DRIVES": [ { "value": "BUFG", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUT5_DRIVES": [ { "value": "BUFG", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUT6_DRIVES": [ { "value": "BUFG", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUT7_DRIVES": [ { "value": "BUFG", "resolve_type": "generated", "usage": "all" } ],
+        "C_INCLK_SUM_ROW0": [ { "value": "Input Clock   Freq (MHz)    Input Jitter (UI)", "resolve_type": "generated", "usage": "all" } ],
+        "C_INCLK_SUM_ROW1": [ { "value": "__primary_________100.000____________0.010", "resolve_type": "generated", "usage": "all" } ],
+        "C_INCLK_SUM_ROW2": [ { "value": "no_secondary_input_clock ", "resolve_type": "generated", "usage": "all" } ],
+        "C_OUTCLK_SUM_ROW0A": [ { "value": " Output     Output      Phase    Duty Cycle   Pk-to-Pk     Phase", "resolve_type": "generated", "usage": "all" } ],
+        "C_OUTCLK_SUM_ROW0B": [ { "value": "  Clock     Freq (MHz)  (degrees)    (%)     Jitter (ps)  Error (ps)", "resolve_type": "generated", "usage": "all" } ],
+        "C_OUTCLK_SUM_ROW1": [ { "value": "clk_out1__100.00000______0.000______50.0______151.366____132.063", "resolve_type": "generated", "usage": "all" } ],
+        "C_OUTCLK_SUM_ROW2": [ { "value": "clk_out2__200.00000______0.000______50.0______132.221____132.063", "resolve_type": "generated", "usage": "all" } ],
+        "C_OUTCLK_SUM_ROW3": [ { "value": "clk_out3__12.00000______0.000______50.0______231.952____132.063", "resolve_type": "generated", "usage": "all" } ],
+        "C_OUTCLK_SUM_ROW4": [ { "value": "clk_out4__50.00000______0.000______50.0______174.353____132.063", "resolve_type": "generated", "usage": "all" } ],
+        "C_OUTCLK_SUM_ROW5": [ { "value": "no_CLK_OUT5_output", "resolve_type": "generated", "usage": "all" } ],
+        "C_OUTCLK_SUM_ROW6": [ { "value": "no_CLK_OUT6_output", "resolve_type": "generated", "usage": "all" } ],
+        "C_OUTCLK_SUM_ROW7": [ { "value": "no_CLK_OUT7_output", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUT1_REQUESTED_OUT_FREQ": [ { "value": "100.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT2_REQUESTED_OUT_FREQ": [ { "value": "200.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT3_REQUESTED_OUT_FREQ": [ { "value": "12.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT4_REQUESTED_OUT_FREQ": [ { "value": "50.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT5_REQUESTED_OUT_FREQ": [ { "value": "100.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT6_REQUESTED_OUT_FREQ": [ { "value": "100.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT7_REQUESTED_OUT_FREQ": [ { "value": "100.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT1_REQUESTED_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT2_REQUESTED_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT3_REQUESTED_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT4_REQUESTED_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT5_REQUESTED_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT6_REQUESTED_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT7_REQUESTED_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT1_REQUESTED_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT2_REQUESTED_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT3_REQUESTED_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT4_REQUESTED_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT5_REQUESTED_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT6_REQUESTED_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT7_REQUESTED_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT1_OUT_FREQ": [ { "value": "100.00000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT2_OUT_FREQ": [ { "value": "200.00000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT3_OUT_FREQ": [ { "value": "12.00000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT4_OUT_FREQ": [ { "value": "50.00000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT5_OUT_FREQ": [ { "value": "100.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT6_OUT_FREQ": [ { "value": "100.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT7_OUT_FREQ": [ { "value": "100.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT1_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT2_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT3_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT4_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT5_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT6_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT7_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT1_DUTY_CYCLE": [ { "value": "50.0", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT2_DUTY_CYCLE": [ { "value": "50.0", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT3_DUTY_CYCLE": [ { "value": "50.0", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT4_DUTY_CYCLE": [ { "value": "50.0", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT5_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT6_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKOUT7_DUTY_CYCLE": [ { "value": "50.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_USE_SAFE_CLOCK_STARTUP": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_USE_CLOCK_SEQUENCING": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_CLKOUT1_SEQUENCE_NUMBER": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_CLKOUT2_SEQUENCE_NUMBER": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_CLKOUT3_SEQUENCE_NUMBER": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_CLKOUT4_SEQUENCE_NUMBER": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_CLKOUT5_SEQUENCE_NUMBER": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_CLKOUT6_SEQUENCE_NUMBER": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_CLKOUT7_SEQUENCE_NUMBER": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_MMCM_NOTES": [ { "value": "None", "resolve_type": "generated", "usage": "all" } ],
+        "C_MMCM_BANDWIDTH": [ { "value": "OPTIMIZED", "resolve_type": "generated", "usage": "all" } ],
+        "C_MMCM_CLKFBOUT_MULT_F": [ { "value": "6.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_MMCM_CLKIN1_PERIOD": [ { "value": "10.0", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_MMCM_CLKIN2_PERIOD": [ { "value": "10.0", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_MMCM_CLKOUT4_CASCADE": [ { "value": "FALSE", "resolve_type": "generated", "format": "bool", "usage": "all" } ],
+        "C_MMCM_CLOCK_HOLD": [ { "value": "FALSE", "resolve_type": "generated", "format": "bool", "usage": "all" } ],
+        "C_MMCM_COMPENSATION": [ { "value": "ZHOLD", "resolve_type": "generated", "usage": "all" } ],
+        "C_MMCM_DIVCLK_DIVIDE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_MMCM_REF_JITTER1": [ { "value": "0.010", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_MMCM_REF_JITTER2": [ { "value": "0.010", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_MMCM_STARTUP_WAIT": [ { "value": "FALSE", "resolve_type": "generated", "usage": "all" } ],
+        "C_MMCM_CLKOUT0_DIVIDE_F": [ { "value": "6.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_MMCM_CLKOUT1_DIVIDE": [ { "value": "3", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_MMCM_CLKOUT2_DIVIDE": [ { "value": "50", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_MMCM_CLKOUT3_DIVIDE": [ { "value": "12", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_MMCM_CLKOUT4_DIVIDE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_MMCM_CLKOUT5_DIVIDE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_MMCM_CLKOUT6_DIVIDE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_MMCM_CLKOUT0_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_MMCM_CLKOUT1_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_MMCM_CLKOUT2_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_MMCM_CLKOUT3_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_MMCM_CLKOUT4_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_MMCM_CLKOUT5_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_MMCM_CLKOUT6_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_MMCM_CLKFBOUT_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_MMCM_CLKOUT0_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_MMCM_CLKOUT1_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_MMCM_CLKOUT2_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_MMCM_CLKOUT3_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_MMCM_CLKOUT4_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_MMCM_CLKOUT5_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_MMCM_CLKOUT6_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_MMCM_CLKFBOUT_USE_FINE_PS": [ { "value": "FALSE", "resolve_type": "generated", "usage": "all" } ],
+        "C_MMCM_CLKOUT0_USE_FINE_PS": [ { "value": "FALSE", "resolve_type": "generated", "usage": "all" } ],
+        "C_MMCM_CLKOUT1_USE_FINE_PS": [ { "value": "FALSE", "resolve_type": "generated", "usage": "all" } ],
+        "C_MMCM_CLKOUT2_USE_FINE_PS": [ { "value": "FALSE", "resolve_type": "generated", "usage": "all" } ],
+        "C_MMCM_CLKOUT3_USE_FINE_PS": [ { "value": "FALSE", "resolve_type": "generated", "usage": "all" } ],
+        "C_MMCM_CLKOUT4_USE_FINE_PS": [ { "value": "FALSE", "resolve_type": "generated", "usage": "all" } ],
+        "C_MMCM_CLKOUT5_USE_FINE_PS": [ { "value": "FALSE", "resolve_type": "generated", "usage": "all" } ],
+        "C_MMCM_CLKOUT6_USE_FINE_PS": [ { "value": "FALSE", "resolve_type": "generated", "usage": "all" } ],
+        "C_PLL_NOTES": [ { "value": "No notes", "resolve_type": "generated", "usage": "all" } ],
+        "C_PLL_BANDWIDTH": [ { "value": "OPTIMIZED", "resolve_type": "generated", "usage": "all" } ],
+        "C_PLL_CLK_FEEDBACK": [ { "value": "CLKFBOUT", "resolve_type": "generated", "usage": "all" } ],
+        "C_PLL_CLKFBOUT_MULT": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_PLL_CLKIN_PERIOD": [ { "value": "1.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_PLL_COMPENSATION": [ { "value": "SYSTEM_SYNCHRONOUS", "resolve_type": "generated", "usage": "all" } ],
+        "C_PLL_DIVCLK_DIVIDE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_PLL_REF_JITTER": [ { "value": "0.010", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_PLL_CLKOUT0_DIVIDE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_PLL_CLKOUT1_DIVIDE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_PLL_CLKOUT2_DIVIDE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_PLL_CLKOUT3_DIVIDE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_PLL_CLKOUT4_DIVIDE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_PLL_CLKOUT5_DIVIDE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_PLL_CLKOUT0_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_PLL_CLKOUT1_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_PLL_CLKOUT2_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_PLL_CLKOUT3_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_PLL_CLKOUT4_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_PLL_CLKOUT5_DUTY_CYCLE": [ { "value": "0.500", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_PLL_CLKFBOUT_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_PLL_CLKOUT0_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_PLL_CLKOUT1_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_PLL_CLKOUT2_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_PLL_CLKOUT3_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_PLL_CLKOUT4_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_PLL_CLKOUT5_PHASE": [ { "value": "0.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLOCK_MGR_TYPE": [ { "value": "NA", "resolve_type": "generated", "usage": "all" } ],
+        "C_OVERRIDE_MMCM": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_OVERRIDE_PLL": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_PRIMARY_PORT": [ { "value": "clk_in1", "resolve_type": "generated", "usage": "all" } ],
+        "C_SECONDARY_PORT": [ { "value": "clk_in2", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLK_OUT1_PORT": [ { "value": "clk_out1", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLK_OUT2_PORT": [ { "value": "clk_out2", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLK_OUT3_PORT": [ { "value": "clk_out3", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLK_OUT4_PORT": [ { "value": "clk_out4", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLK_OUT5_PORT": [ { "value": "clk_out5", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLK_OUT6_PORT": [ { "value": "clk_out6", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLK_OUT7_PORT": [ { "value": "clk_out7", "resolve_type": "generated", "usage": "all" } ],
+        "C_RESET_PORT": [ { "value": "reset", "resolve_type": "generated", "usage": "all" } ],
+        "C_LOCKED_PORT": [ { "value": "locked", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKFB_IN_PORT": [ { "value": "clkfb_in", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKFB_IN_P_PORT": [ { "value": "clkfb_in_p", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKFB_IN_N_PORT": [ { "value": "clkfb_in_n", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKFB_OUT_PORT": [ { "value": "clkfb_out", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKFB_OUT_P_PORT": [ { "value": "clkfb_out_p", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKFB_OUT_N_PORT": [ { "value": "clkfb_out_n", "resolve_type": "generated", "usage": "all" } ],
+        "C_POWER_DOWN_PORT": [ { "value": "power_down", "resolve_type": "generated", "usage": "all" } ],
+        "C_DADDR_PORT": [ { "value": "daddr", "resolve_type": "generated", "usage": "all" } ],
+        "C_DCLK_PORT": [ { "value": "dclk", "resolve_type": "generated", "usage": "all" } ],
+        "C_DRDY_PORT": [ { "value": "drdy", "resolve_type": "generated", "usage": "all" } ],
+        "C_DWE_PORT": [ { "value": "dwe", "resolve_type": "generated", "usage": "all" } ],
+        "C_DIN_PORT": [ { "value": "din", "resolve_type": "generated", "usage": "all" } ],
+        "C_DOUT_PORT": [ { "value": "dout", "resolve_type": "generated", "usage": "all" } ],
+        "C_DEN_PORT": [ { "value": "den", "resolve_type": "generated", "usage": "all" } ],
+        "C_PSCLK_PORT": [ { "value": "psclk", "resolve_type": "generated", "usage": "all" } ],
+        "C_PSEN_PORT": [ { "value": "psen", "resolve_type": "generated", "usage": "all" } ],
+        "C_PSINCDEC_PORT": [ { "value": "psincdec", "resolve_type": "generated", "usage": "all" } ],
+        "C_PSDONE_PORT": [ { "value": "psdone", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLK_VALID_PORT": [ { "value": "CLK_VALID", "resolve_type": "generated", "usage": "all" } ],
+        "C_STATUS_PORT": [ { "value": "STATUS", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLK_IN_SEL_PORT": [ { "value": "clk_in_sel", "resolve_type": "generated", "usage": "all" } ],
+        "C_INPUT_CLK_STOPPED_PORT": [ { "value": "input_clk_stopped", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKFB_STOPPED_PORT": [ { "value": "clkfb_stopped", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKIN1_JITTER_PS": [ { "value": "100.0", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_CLKIN2_JITTER_PS": [ { "value": "100.0", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_PRIMITIVE": [ { "value": "MMCM", "resolve_type": "generated", "usage": "all" } ],
+        "C_SS_MODE": [ { "value": "CENTER_HIGH", "resolve_type": "generated", "usage": "all" } ],
+        "C_SS_MOD_PERIOD": [ { "value": "4000", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_SS_MOD_TIME": [ { "value": "0.004", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_HAS_CDDC": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_CDDCDONE_PORT": [ { "value": "cddcdone", "resolve_type": "generated", "usage": "all" } ],
+        "C_CDDCREQ_PORT": [ { "value": "cddcreq", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUTPHY_MODE": [ { "value": "VCO", "resolve_type": "generated", "usage": "all" } ],
+        "C_ENABLE_CLKOUTPHY": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_INTERFACE_SELECTION": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_S_AXI_ADDR_WIDTH": [ { "value": "11", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_S_AXI_DATA_WIDTH": [ { "value": "32", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+        "C_POWER_REG": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUT0_1": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUT0_2": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUT1_1": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUT1_2": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUT2_1": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUT2_2": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUT3_1": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUT3_2": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUT4_1": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUT4_2": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUT5_1": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUT5_2": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUT6_1": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUT6_2": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKFBOUT_1": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKFBOUT_2": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ],
+        "C_DIVCLK": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ],
+        "C_LOCK_1": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ],
+        "C_LOCK_2": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ],
+        "C_LOCK_3": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ],
+        "C_FILTER_1": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ],
+        "C_FILTER_2": [ { "value": "0000", "resolve_type": "generated", "usage": "all" } ],
+        "C_DIVIDE1_AUTO": [ { "value": "1", "resolve_type": "generated", "usage": "all" } ],
+        "C_DIVIDE2_AUTO": [ { "value": "0.5", "resolve_type": "generated", "usage": "all" } ],
+        "C_DIVIDE3_AUTO": [ { "value": "8.333333333333334", "resolve_type": "generated", "usage": "all" } ],
+        "C_DIVIDE4_AUTO": [ { "value": "2.0", "resolve_type": "generated", "usage": "all" } ],
+        "C_DIVIDE5_AUTO": [ { "value": "0.16666666666666666", "resolve_type": "generated", "usage": "all" } ],
+        "C_DIVIDE6_AUTO": [ { "value": "0.16666666666666666", "resolve_type": "generated", "usage": "all" } ],
+        "C_DIVIDE7_AUTO": [ { "value": "0.16666666666666666", "resolve_type": "generated", "usage": "all" } ],
+        "C_PLLBUFGCEDIV": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ],
+        "C_MMCMBUFGCEDIV": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ],
+        "C_PLLBUFGCEDIV1": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ],
+        "C_PLLBUFGCEDIV2": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ],
+        "C_PLLBUFGCEDIV3": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ],
+        "C_PLLBUFGCEDIV4": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ],
+        "C_MMCMBUFGCEDIV1": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ],
+        "C_MMCMBUFGCEDIV2": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ],
+        "C_MMCMBUFGCEDIV3": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ],
+        "C_MMCMBUFGCEDIV4": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ],
+        "C_MMCMBUFGCEDIV5": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ],
+        "C_MMCMBUFGCEDIV6": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ],
+        "C_MMCMBUFGCEDIV7": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUT1_MATCHED_ROUTING": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUT2_MATCHED_ROUTING": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUT3_MATCHED_ROUTING": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUT4_MATCHED_ROUTING": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUT5_MATCHED_ROUTING": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUT6_MATCHED_ROUTING": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUT7_MATCHED_ROUTING": [ { "value": "false", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUT0_ACTUAL_FREQ": [ { "value": "100.00000", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUT1_ACTUAL_FREQ": [ { "value": "200.00000", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUT2_ACTUAL_FREQ": [ { "value": "12.00000", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUT3_ACTUAL_FREQ": [ { "value": "50.00000", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUT4_ACTUAL_FREQ": [ { "value": "100.000", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUT5_ACTUAL_FREQ": [ { "value": "100.000", "resolve_type": "generated", "usage": "all" } ],
+        "C_CLKOUT6_ACTUAL_FREQ": [ { "value": "100.000", "resolve_type": "generated", "usage": "all" } ],
+        "C_M_MAX": [ { "value": "64.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_M_MIN": [ { "value": "2.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_D_MAX": [ { "value": "80.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_D_MIN": [ { "value": "1.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_O_MAX": [ { "value": "128.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_O_MIN": [ { "value": "1.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_VCO_MIN": [ { "value": "600.000", "resolve_type": "generated", "format": "float", "usage": "all" } ],
+        "C_VCO_MAX": [ { "value": "1200.000", "resolve_type": "generated", "format": "float", "usage": "all" } ]
+      },
+      "project_parameters": {
+        "ARCHITECTURE": [ { "value": "artix7" } ],
+        "BASE_BOARD_PART": [ { "value": "" } ],
+        "BOARD_CONNECTIONS": [ { "value": "" } ],
+        "DEVICE": [ { "value": "xc7a200t" } ],
+        "NEXTGEN_VERSAL": [ { "value": "0" } ],
+        "PACKAGE": [ { "value": "sbg484" } ],
+        "PREFHDL": [ { "value": "VHDL" } ],
+        "SILICON_REVISION": [ { "value": "" } ],
+        "SIMULATOR_LANGUAGE": [ { "value": "MIXED" } ],
+        "SPEEDGRADE": [ { "value": "-1" } ],
+        "STATIC_POWER": [ { "value": "" } ],
+        "TEMPERATURE_GRADE": [ { "value": "" } ]
+      },
+      "runtime_parameters": {
+        "IPCONTEXT": [ { "value": "IP_Flow" } ],
+        "IPREVISION": [ { "value": "14" } ],
+        "MANAGED": [ { "value": "TRUE" } ],
+        "OUTPUTDIR": [ { "value": "." } ],
+        "SELECTEDSIMMODEL": [ { "value": "" } ],
+        "SHAREDDIR": [ { "value": "." } ],
+        "SWVERSION": [ { "value": "2024.1" } ],
+        "SYNTHESISFLOW": [ { "value": "OUT_OF_CONTEXT" } ]
+      }
+    },
+    "boundary": {
+      "ports": {
+        "reset": [ { "direction": "in", "driver_value": "0" } ],
+        "clk_in1": [ { "direction": "in" } ],
+        "clk_out1": [ { "direction": "out" } ],
+        "clk_out2": [ { "direction": "out" } ],
+        "clk_out3": [ { "direction": "out" } ],
+        "clk_out4": [ { "direction": "out" } ],
+        "locked": [ { "direction": "out" } ]
+      },
+      "interfaces": {
+        "reset": {
+          "vlnv": "xilinx.com:signal:reset:1.0",
+          "abstraction_type": "xilinx.com:signal:reset_rtl:1.0",
+          "mode": "slave",
+          "parameters": {
+            "POLARITY": [ { "value": "ACTIVE_HIGH", "value_src": "constant", "usage": "all" } ],
+            "BOARD.ASSOCIATED_PARAM": [ { "value": "RESET_BOARD_INTERFACE", "value_src": "constant", "usage": "all" } ],
+            "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ]
+          },
+          "port_maps": {
+            "RST": [ { "physical_name": "reset" } ]
+          }
+        },
+        "clock_CLK_IN1": {
+          "vlnv": "xilinx.com:signal:clock:1.0",
+          "abstraction_type": "xilinx.com:signal:clock_rtl:1.0",
+          "mode": "slave",
+          "parameters": {
+            "FREQ_HZ": [ { "value": "100000000", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ],
+            "FREQ_TOLERANCE_HZ": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ],
+            "PHASE": [ { "value": "0.0", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ],
+            "CLK_DOMAIN": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ],
+            "ASSOCIATED_BUSIF": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ],
+            "ASSOCIATED_PORT": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ],
+            "ASSOCIATED_RESET": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ],
+            "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ],
+            "BOARD.ASSOCIATED_PARAM": [ { "value": "CLK_IN1_BOARD_INTERFACE", "usage": "all", "is_static_object": false } ]
+          },
+          "port_maps": {
+            "CLK_IN1": [ { "physical_name": "clk_in1" } ]
+          }
+        },
+        "clock_CLK_OUT1": {
+          "vlnv": "xilinx.com:signal:clock:1.0",
+          "abstraction_type": "xilinx.com:signal:clock_rtl:1.0",
+          "mode": "master",
+          "parameters": {
+            "FREQ_HZ": [ { "value": "100000000", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ],
+            "FREQ_TOLERANCE_HZ": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ],
+            "PHASE": [ { "value": "0.0", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ],
+            "CLK_DOMAIN": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ],
+            "ASSOCIATED_BUSIF": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ],
+            "ASSOCIATED_PORT": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ],
+            "ASSOCIATED_RESET": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ],
+            "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ]
+          },
+          "port_maps": {
+            "CLK_OUT1": [ { "physical_name": "clk_out1" } ]
+          }
+        },
+        "clock_CLK_OUT2": {
+          "vlnv": "xilinx.com:signal:clock:1.0",
+          "abstraction_type": "xilinx.com:signal:clock_rtl:1.0",
+          "mode": "master",
+          "parameters": {
+            "FREQ_HZ": [ { "value": "100000000", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ],
+            "FREQ_TOLERANCE_HZ": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ],
+            "PHASE": [ { "value": "0.0", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ],
+            "CLK_DOMAIN": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ],
+            "ASSOCIATED_BUSIF": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ],
+            "ASSOCIATED_PORT": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ],
+            "ASSOCIATED_RESET": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ],
+            "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ]
+          },
+          "port_maps": {
+            "CLK_OUT2": [ { "physical_name": "clk_out2" } ]
+          }
+        },
+        "clock_CLK_OUT3": {
+          "vlnv": "xilinx.com:signal:clock:1.0",
+          "abstraction_type": "xilinx.com:signal:clock_rtl:1.0",
+          "mode": "master",
+          "parameters": {
+            "FREQ_HZ": [ { "value": "100000000", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ],
+            "FREQ_TOLERANCE_HZ": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ],
+            "PHASE": [ { "value": "0.0", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ],
+            "CLK_DOMAIN": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ],
+            "ASSOCIATED_BUSIF": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ],
+            "ASSOCIATED_PORT": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ],
+            "ASSOCIATED_RESET": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ],
+            "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ]
+          },
+          "port_maps": {
+            "CLK_OUT3": [ { "physical_name": "clk_out3" } ]
+          }
+        },
+        "clock_CLK_OUT4": {
+          "vlnv": "xilinx.com:signal:clock:1.0",
+          "abstraction_type": "xilinx.com:signal:clock_rtl:1.0",
+          "mode": "master",
+          "parameters": {
+            "FREQ_HZ": [ { "value": "100000000", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ],
+            "FREQ_TOLERANCE_HZ": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ],
+            "PHASE": [ { "value": "0.0", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ],
+            "CLK_DOMAIN": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ],
+            "ASSOCIATED_BUSIF": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ],
+            "ASSOCIATED_PORT": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ],
+            "ASSOCIATED_RESET": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ],
+            "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ]
+          },
+          "port_maps": {
+            "CLK_OUT4": [ { "physical_name": "clk_out4" } ]
+          }
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/ip/clk_wiz_0/clk_wiz_0.xdc b/src/ip/clk_wiz_0/clk_wiz_0.xdc
index 420a6de..b41c9c9 100644
--- a/src/ip/clk_wiz_0/clk_wiz_0.xdc
+++ b/src/ip/clk_wiz_0/clk_wiz_0.xdc
@@ -1,23 +1,22 @@
+
 # file: clk_wiz_0.xdc
-# 
-# (c) Copyright 2008 - 2013 Xilinx, Inc. All rights reserved.
-# 
+# (c) Copyright 2017-2018, 2023 Advanced Micro Devices, Inc. All rights reserved.
+#
 # This file contains confidential and proprietary information
-# of Xilinx, Inc. and is protected under U.S. and
-# international copyright and other intellectual property
-# laws.
-# 
+# of AMD and is protected under U.S. and international copyright
+# and other intellectual property laws.
+#
 # DISCLAIMER
 # This disclaimer is not a license and does not grant any
 # rights to the materials distributed herewith. Except as
 # otherwise provided in a valid license issued to you by
-# Xilinx, and to the maximum extent permitted by applicable
+# AMD, and to the maximum extent permitted by applicable
 # law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
-# WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
+# WITH ALL FAULTS, AND AMD HEREBY DISCLAIMS ALL WARRANTIES
 # AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
 # BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
 # INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
-# (2) Xilinx shall not be liable (whether in contract or tort,
+# (2) AMD shall not be liable (whether in contract or tort,
 # including negligence, or under any other theory of
 # liability) for any loss or damage of any kind or nature
 # related to, arising under or in connection with these
@@ -26,11 +25,11 @@
 # (including loss of data, profits, goodwill, or any type of
 # loss or damage suffered as a result of any action brought
 # by a third party) even if such damage or loss was
-# reasonably foreseeable or Xilinx had been advised of the
+# reasonably foreseeable or AMD had been advised of the
 # possibility of the same.
-# 
+#
 # CRITICAL APPLICATIONS
-# Xilinx products are not designed or intended to be fail-
+# AMD products are not designed or intended to be fail-
 # safe, or for use in any application requiring fail-safe
 # performance, such as life-support or safety devices or
 # systems, Class III medical devices, nuclear facilities,
@@ -39,13 +38,12 @@
 # injury, or severe property or environmental damage
 # (individually and collectively, "Critical
 # Applications"). Customer assumes the sole risk and
-# liability of any use of Xilinx products in Critical
+# liability of any use of AMD products in Critical
 # Applications, subject only to applicable laws and
 # regulations governing limitations on product liability.
-# 
+#
 # THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
 # PART OF THIS FILE AT ALL TIMES.
-# 
 
 # Input clock periods. These duplicate the values entered for the
 # input clocks. You can use these to time your system. If required
@@ -53,7 +51,7 @@
 #----------------------------------------------------------------
 # Connect to input port when clock capable pin is selected for input
 create_clock -period 10.0 [get_ports clk_in1]
-set_input_jitter [get_clocks -of_objects [get_ports clk_in1]] 0.10000000000000001
-
+set_input_jitter [get_clocks -of_objects [get_ports clk_in1]] 0.100
 
 
+set_property PHASESHIFT_MODE WAVEFORM [get_cells -hierarchical *adv*]
diff --git a/src/ip/clk_wiz_0/clk_wiz_0.xml b/src/ip/clk_wiz_0/clk_wiz_0.xml
index 66fd124..587244a 100644
--- a/src/ip/clk_wiz_0/clk_wiz_0.xml
+++ b/src/ip/clk_wiz_0/clk_wiz_0.xml
@@ -149,6 +149,287 @@
           </spirit:physicalPort>
         </spirit:portMap>
       </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>DATA_WIDTH</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.S_AXI_LITE.DATA_WIDTH">1</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>PROTOCOL</spirit:name>
+          <spirit:value spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.S_AXI_LITE.PROTOCOL">AXI4LITE</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>FREQ_HZ</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.S_AXI_LITE.FREQ_HZ">100000000</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ID_WIDTH</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.S_AXI_LITE.ID_WIDTH">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ADDR_WIDTH</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.S_AXI_LITE.ADDR_WIDTH">1</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>AWUSER_WIDTH</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.S_AXI_LITE.AWUSER_WIDTH">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ARUSER_WIDTH</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.S_AXI_LITE.ARUSER_WIDTH">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>WUSER_WIDTH</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.S_AXI_LITE.WUSER_WIDTH">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>RUSER_WIDTH</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.S_AXI_LITE.RUSER_WIDTH">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>BUSER_WIDTH</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.S_AXI_LITE.BUSER_WIDTH">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>READ_WRITE_MODE</spirit:name>
+          <spirit:value spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.S_AXI_LITE.READ_WRITE_MODE">READ_WRITE</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>HAS_BURST</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.S_AXI_LITE.HAS_BURST">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>HAS_LOCK</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.S_AXI_LITE.HAS_LOCK">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>HAS_PROT</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.S_AXI_LITE.HAS_PROT">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>HAS_CACHE</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.S_AXI_LITE.HAS_CACHE">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>HAS_QOS</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.S_AXI_LITE.HAS_QOS">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>HAS_REGION</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.S_AXI_LITE.HAS_REGION">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>HAS_WSTRB</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.S_AXI_LITE.HAS_WSTRB">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>HAS_BRESP</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.S_AXI_LITE.HAS_BRESP">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>HAS_RRESP</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.S_AXI_LITE.HAS_RRESP">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>SUPPORTS_NARROW_BURST</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.S_AXI_LITE.SUPPORTS_NARROW_BURST">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>NUM_READ_OUTSTANDING</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.S_AXI_LITE.NUM_READ_OUTSTANDING">1</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>NUM_WRITE_OUTSTANDING</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.S_AXI_LITE.NUM_WRITE_OUTSTANDING">1</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>MAX_BURST_LENGTH</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.S_AXI_LITE.MAX_BURST_LENGTH">1</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>PHASE</spirit:name>
+          <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.S_AXI_LITE.PHASE">0.0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>CLK_DOMAIN</spirit:name>
+          <spirit:value spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.S_AXI_LITE.CLK_DOMAIN"/>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>NUM_READ_THREADS</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.S_AXI_LITE.NUM_READ_THREADS">1</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>NUM_WRITE_THREADS</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.S_AXI_LITE.NUM_WRITE_THREADS">1</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>RUSER_BITS_PER_BYTE</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.S_AXI_LITE.RUSER_BITS_PER_BYTE">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>WUSER_BITS_PER_BYTE</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.S_AXI_LITE.WUSER_BITS_PER_BYTE">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>INSERT_VIP</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="BUSIFPARAM_VALUE.S_AXI_LITE.INSERT_VIP">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>simulation.rtl</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+      </spirit:parameters>
       <spirit:vendorExtensions>
         <xilinx:busInterfaceInfo>
           <xilinx:enablement>
@@ -180,7 +461,61 @@
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>ASSOCIATED_RESET</spirit:name>
-          <spirit:value spirit:id="BUSIFPARAM_VALUE.S_AXI_ACLK.ASSOCIATED_RESET">aresetn</spirit:value>
+          <spirit:value spirit:id="BUSIFPARAM_VALUE.S_AXI_ACLK.ASSOCIATED_RESET">s_axi_aresetn</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>FREQ_HZ</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.S_AXI_ACLK.FREQ_HZ">100000000</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>FREQ_TOLERANCE_HZ</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.S_AXI_ACLK.FREQ_TOLERANCE_HZ">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>PHASE</spirit:name>
+          <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.S_AXI_ACLK.PHASE">0.0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>CLK_DOMAIN</spirit:name>
+          <spirit:value spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.S_AXI_ACLK.CLK_DOMAIN"/>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASSOCIATED_PORT</spirit:name>
+          <spirit:value spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.S_AXI_ACLK.ASSOCIATED_PORT"/>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>INSERT_VIP</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="BUSIFPARAM_VALUE.S_AXI_ACLK.INSERT_VIP">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>simulation.rtl</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
         </spirit:parameter>
       </spirit:parameters>
       <spirit:vendorExtensions>
@@ -192,87 +527,173 @@
       </spirit:vendorExtensions>
     </spirit:busInterface>
     <spirit:busInterface>
-      <spirit:name>s_axi_resetn</spirit:name>
-      <spirit:displayName>S_AXI_RESETN</spirit:displayName>
-      <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="reset" spirit:version="1.0"/>
-      <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="reset_rtl" spirit:version="1.0"/>
+      <spirit:name>ref_clk</spirit:name>
+      <spirit:displayName>ref_clk</spirit:displayName>
+      <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock" spirit:version="1.0"/>
+      <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock_rtl" spirit:version="1.0"/>
       <spirit:slave/>
       <spirit:portMaps>
         <spirit:portMap>
           <spirit:logicalPort>
-            <spirit:name>RST</spirit:name>
+            <spirit:name>CLK</spirit:name>
           </spirit:logicalPort>
           <spirit:physicalPort>
-            <spirit:name>s_axi_aresetn</spirit:name>
+            <spirit:name>ref_clk</spirit:name>
           </spirit:physicalPort>
         </spirit:portMap>
       </spirit:portMaps>
       <spirit:parameters>
         <spirit:parameter>
-          <spirit:name>ASSOCIATED_RESET</spirit:name>
-          <spirit:value spirit:id="BUSIFPARAM_VALUE.S_AXI_RESETN.ASSOCIATED_RESET">aresetn</spirit:value>
+          <spirit:name>FREQ_HZ</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.REF_CLK.FREQ_HZ">100000000</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
         </spirit:parameter>
         <spirit:parameter>
-          <spirit:name>POLARITY</spirit:name>
-          <spirit:value spirit:id="BUSIFPARAM_VALUE.S_AXI_RESETN.POLARITY">ACTIVE_LOW</spirit:value>
+          <spirit:name>FREQ_TOLERANCE_HZ</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.REF_CLK.FREQ_TOLERANCE_HZ">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
         </spirit:parameter>
-      </spirit:parameters>
-      <spirit:vendorExtensions>
-        <xilinx:busInterfaceInfo>
-          <xilinx:enablement>
-            <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.s_axi_resetn" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
-          </xilinx:enablement>
-        </xilinx:busInterfaceInfo>
-      </spirit:vendorExtensions>
+        <spirit:parameter>
+          <spirit:name>PHASE</spirit:name>
+          <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.REF_CLK.PHASE">0.0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>CLK_DOMAIN</spirit:name>
+          <spirit:value spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.REF_CLK.CLK_DOMAIN"/>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASSOCIATED_BUSIF</spirit:name>
+          <spirit:value spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.REF_CLK.ASSOCIATED_BUSIF"/>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASSOCIATED_PORT</spirit:name>
+          <spirit:value spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.REF_CLK.ASSOCIATED_PORT"/>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASSOCIATED_RESET</spirit:name>
+          <spirit:value spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.REF_CLK.ASSOCIATED_RESET"/>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>INSERT_VIP</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="BUSIFPARAM_VALUE.REF_CLK.INSERT_VIP">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>simulation.rtl</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <xilinx:busInterfaceInfo>
+          <xilinx:enablement>
+            <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.ref_clk" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_ENABLE_CLOCK_MONITOR&apos;))">false</xilinx:isEnabled>
+          </xilinx:enablement>
+        </xilinx:busInterfaceInfo>
+      </spirit:vendorExtensions>
     </spirit:busInterface>
     <spirit:busInterface>
-      <spirit:name>intr</spirit:name>
-      <spirit:displayName>Intr</spirit:displayName>
-      <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="interrupt" spirit:version="1.0"/>
-      <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="interrupt_rtl" spirit:version="1.0"/>
-      <spirit:master/>
+      <spirit:name>s_axi_resetn</spirit:name>
+      <spirit:displayName>S_AXI_RESETN</spirit:displayName>
+      <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="reset" spirit:version="1.0"/>
+      <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="reset_rtl" spirit:version="1.0"/>
+      <spirit:slave/>
       <spirit:portMaps>
         <spirit:portMap>
           <spirit:logicalPort>
-            <spirit:name>INTERRUPT</spirit:name>
+            <spirit:name>RST</spirit:name>
           </spirit:logicalPort>
           <spirit:physicalPort>
-            <spirit:name>ip2intc_irpt</spirit:name>
+            <spirit:name>s_axi_aresetn</spirit:name>
           </spirit:physicalPort>
         </spirit:portMap>
       </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>ASSOCIATED_RESET</spirit:name>
+          <spirit:value spirit:id="BUSIFPARAM_VALUE.S_AXI_RESETN.ASSOCIATED_RESET">aresetn</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>POLARITY</spirit:name>
+          <spirit:value spirit:id="BUSIFPARAM_VALUE.S_AXI_RESETN.POLARITY">ACTIVE_LOW</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>INSERT_VIP</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="BUSIFPARAM_VALUE.S_AXI_RESETN.INSERT_VIP">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>simulation.rtl</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+      </spirit:parameters>
       <spirit:vendorExtensions>
         <xilinx:busInterfaceInfo>
           <xilinx:enablement>
-            <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.intr" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
+            <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.s_axi_resetn" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
           </xilinx:enablement>
         </xilinx:busInterfaceInfo>
       </spirit:vendorExtensions>
     </spirit:busInterface>
     <spirit:busInterface>
-      <spirit:name>clock_CLK_IN1</spirit:name>
-      <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock" spirit:version="1.0"/>
-      <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock_rtl" spirit:version="1.0"/>
-      <spirit:slave/>
+      <spirit:name>intr</spirit:name>
+      <spirit:displayName>Intr</spirit:displayName>
+      <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="interrupt" spirit:version="1.0"/>
+      <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="interrupt_rtl" spirit:version="1.0"/>
+      <spirit:master/>
       <spirit:portMaps>
         <spirit:portMap>
           <spirit:logicalPort>
-            <spirit:name>CLK</spirit:name>
+            <spirit:name>INTERRUPT</spirit:name>
           </spirit:logicalPort>
           <spirit:physicalPort>
-            <spirit:name>clk_in1</spirit:name>
+            <spirit:name>interrupt</spirit:name>
           </spirit:physicalPort>
         </spirit:portMap>
       </spirit:portMaps>
       <spirit:parameters>
         <spirit:parameter>
-          <spirit:name>BOARD.ASSOCIATED_PARAM</spirit:name>
-          <spirit:value spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_IN1.BOARD.ASSOCIATED_PARAM">CLK_IN1_BOARD_INTERFACE</spirit:value>
+          <spirit:name>SENSITIVITY</spirit:name>
+          <spirit:value spirit:id="BUSIFPARAM_VALUE.INTR.SENSITIVITY">EDGE_RISING</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>PortWidth</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.INTR.PortWidth">1</spirit:value>
           <spirit:vendorExtensions>
             <xilinx:parameterInfo>
-              <xilinx:enablement>
-                <xilinx:presence>required</xilinx:presence>
-              </xilinx:enablement>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
             </xilinx:parameterInfo>
           </spirit:vendorExtensions>
         </spirit:parameter>
@@ -280,7 +701,7 @@
       <spirit:vendorExtensions>
         <xilinx:busInterfaceInfo>
           <xilinx:enablement>
-            <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.clock_CLK_IN1" xilinx:dependency="((spirit:decode(id(&apos;MODELPARAM_VALUE.C_PRIM_SOURCE&apos;))=&quot;Single_ended_clock_capable_pin&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_PRIM_SOURCE&apos;))=&quot;Single_ended_non_clock_pin&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_PRIM_SOURCE&apos;))=&quot;No_buffer&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_PRIM_SOURCE&apos;))=&quot;Global_buffer&quot;))">true</xilinx:isEnabled>
+            <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.intr" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
           </xilinx:enablement>
         </xilinx:busInterfaceInfo>
       </spirit:vendorExtensions>
@@ -322,39 +743,21 @@
             </xilinx:parameterInfo>
           </spirit:vendorExtensions>
         </spirit:parameter>
-      </spirit:parameters>
-      <spirit:vendorExtensions>
-        <xilinx:busInterfaceInfo>
-          <xilinx:enablement>
-            <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.CLK_IN1_D" xilinx:dependency="((spirit:decode(id(&apos;MODELPARAM_VALUE.C_PRIM_SOURCE&apos;))=&quot;Differential_clock_capable_pin&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_PRIM_SOURCE&apos;))=&quot;Differential_non_clock_pin&quot;))">false</xilinx:isEnabled>
-          </xilinx:enablement>
-        </xilinx:busInterfaceInfo>
-      </spirit:vendorExtensions>
-    </spirit:busInterface>
-    <spirit:busInterface>
-      <spirit:name>clock_CLK_IN2</spirit:name>
-      <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock" spirit:version="1.0"/>
-      <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock_rtl" spirit:version="1.0"/>
-      <spirit:slave/>
-      <spirit:portMaps>
-        <spirit:portMap>
-          <spirit:logicalPort>
-            <spirit:name>CLK</spirit:name>
-          </spirit:logicalPort>
-          <spirit:physicalPort>
-            <spirit:name>clk_in2</spirit:name>
-          </spirit:physicalPort>
-        </spirit:portMap>
-      </spirit:portMaps>
-      <spirit:parameters>
         <spirit:parameter>
-          <spirit:name>BOARD.ASSOCIATED_PARAM</spirit:name>
-          <spirit:value spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_IN2.BOARD.ASSOCIATED_PARAM">CLK_IN2_BOARD_INTERFACE</spirit:value>
+          <spirit:name>CAN_DEBUG</spirit:name>
+          <spirit:value spirit:format="bool" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLK_IN1_D.CAN_DEBUG">false</spirit:value>
           <spirit:vendorExtensions>
             <xilinx:parameterInfo>
-              <xilinx:enablement>
-                <xilinx:presence>required</xilinx:presence>
-              </xilinx:enablement>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>FREQ_HZ</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLK_IN1_D.FREQ_HZ">100000000</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
             </xilinx:parameterInfo>
           </spirit:vendorExtensions>
         </spirit:parameter>
@@ -362,7 +765,7 @@
       <spirit:vendorExtensions>
         <xilinx:busInterfaceInfo>
           <xilinx:enablement>
-            <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.clock_CLK_IN2" xilinx:dependency="(((spirit:decode(id(&apos;MODELPARAM_VALUE.C_SECONDARY_SOURCE&apos;))=&quot;Single_ended_clock_capable_pin&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_SECONDARY_SOURCE&apos;))=&quot;Single_ended_non_clock_pin&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_SECONDARY_SOURCE&apos;))=&quot;No_buffer&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_SECONDARY_SOURCE&apos;))=&quot;Global_buffer&quot;)) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_INCLK_SWITCHOVER&apos;))=1))">false</xilinx:isEnabled>
+            <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.CLK_IN1_D" xilinx:dependency="((spirit:decode(id(&apos;MODELPARAM_VALUE.C_PRIM_SOURCE&apos;))=&quot;Differential_clock_capable_pin&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_PRIM_SOURCE&apos;))=&quot;Differential_non_clock_pin&quot;))">false</xilinx:isEnabled>
           </xilinx:enablement>
         </xilinx:busInterfaceInfo>
       </spirit:vendorExtensions>
@@ -404,6 +807,24 @@
             </xilinx:parameterInfo>
           </spirit:vendorExtensions>
         </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>CAN_DEBUG</spirit:name>
+          <spirit:value spirit:format="bool" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLK_IN2_D.CAN_DEBUG">false</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>FREQ_HZ</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLK_IN2_D.FREQ_HZ">100000000</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
       </spirit:parameters>
       <spirit:vendorExtensions>
         <xilinx:busInterfaceInfo>
@@ -413,29 +834,6 @@
         </xilinx:busInterfaceInfo>
       </spirit:vendorExtensions>
     </spirit:busInterface>
-    <spirit:busInterface>
-      <spirit:name>clock_CLKFB_IN</spirit:name>
-      <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock" spirit:version="1.0"/>
-      <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock_rtl" spirit:version="1.0"/>
-      <spirit:slave/>
-      <spirit:portMaps>
-        <spirit:portMap>
-          <spirit:logicalPort>
-            <spirit:name>CLK</spirit:name>
-          </spirit:logicalPort>
-          <spirit:physicalPort>
-            <spirit:name>clkfb_in</spirit:name>
-          </spirit:physicalPort>
-        </spirit:portMap>
-      </spirit:portMaps>
-      <spirit:vendorExtensions>
-        <xilinx:busInterfaceInfo>
-          <xilinx:enablement>
-            <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.clock_CLKFB_IN" xilinx:dependency="((((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))!=&quot;FDBK_AUTO&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;))) or ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;))) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))!=1) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))!=&quot;FDBK_AUTO_OFFCHIP&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKFB_IN_SIGNALING&apos;))!=&quot;DIFF&quot;)))">false</xilinx:isEnabled>
-          </xilinx:enablement>
-        </xilinx:busInterfaceInfo>
-      </spirit:vendorExtensions>
-    </spirit:busInterface>
     <spirit:busInterface>
       <spirit:name>CLKFB_IN_D</spirit:name>
       <spirit:displayName>CLKFB_IN_D</spirit:displayName>
@@ -461,1328 +859,788 @@
           </spirit:physicalPort>
         </spirit:portMap>
       </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>CAN_DEBUG</spirit:name>
+          <spirit:value spirit:format="bool" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLKFB_IN_D.CAN_DEBUG">false</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>FREQ_HZ</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLKFB_IN_D.FREQ_HZ">100000000</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+      </spirit:parameters>
       <spirit:vendorExtensions>
         <xilinx:busInterfaceInfo>
           <xilinx:enablement>
-            <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.CLKFB_IN_D" xilinx:dependency="((((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))!=&quot;FDBK_AUTO&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;))) or ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;))) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKFB_IN_SIGNALING&apos;))=&quot;DIFF&quot;)))">false</xilinx:isEnabled>
+            <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.CLKFB_IN_D" xilinx:dependency="((((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))!=&quot;FDBK_AUTO&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;))) or ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;)) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_MMCM_COMPENSATION&apos;))!=&quot;INTERNAL&quot;))) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKFB_IN_SIGNALING&apos;))=&quot;DIFF&quot;) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_MMCM_COMPENSATION&apos;))!=&quot;INTERNAL&quot;))))">false</xilinx:isEnabled>
           </xilinx:enablement>
         </xilinx:busInterfaceInfo>
       </spirit:vendorExtensions>
     </spirit:busInterface>
     <spirit:busInterface>
-      <spirit:name>clock_CLK_OUT1</spirit:name>
-      <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock" spirit:version="1.0"/>
-      <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock_rtl" spirit:version="1.0"/>
+      <spirit:name>CLKFB_OUT_D</spirit:name>
+      <spirit:displayName>CLKFB_OUT_D</spirit:displayName>
+      <spirit:description>Differential Feeback Clock Output</spirit:description>
+      <spirit:busType spirit:vendor="xilinx.com" spirit:library="interface" spirit:name="diff_clock" spirit:version="1.0"/>
+      <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="interface" spirit:name="diff_clock_rtl" spirit:version="1.0"/>
       <spirit:master/>
       <spirit:portMaps>
         <spirit:portMap>
           <spirit:logicalPort>
-            <spirit:name>CLK</spirit:name>
+            <spirit:name>CLK_N</spirit:name>
           </spirit:logicalPort>
           <spirit:physicalPort>
-            <spirit:name>clk_out1</spirit:name>
+            <spirit:name>clkfb_out_n</spirit:name>
           </spirit:physicalPort>
         </spirit:portMap>
-      </spirit:portMaps>
-      <spirit:parameters>
-        <spirit:parameter>
-          <spirit:name>FREQ_HZ</spirit:name>
-          <spirit:value spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT1.FREQ_HZ">100000000</spirit:value>
-        </spirit:parameter>
-        <spirit:parameter>
-          <spirit:name>ASSOCIATED_MMCM_LOCK</spirit:name>
-          <spirit:value spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT1.ASSOCIATED_MMCM_LOCK">locked</spirit:value>
-        </spirit:parameter>
-      </spirit:parameters>
-    </spirit:busInterface>
-    <spirit:busInterface>
-      <spirit:name>clock_CLK_OUT2</spirit:name>
-      <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock" spirit:version="1.0"/>
-      <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock_rtl" spirit:version="1.0"/>
-      <spirit:master/>
-      <spirit:portMaps>
         <spirit:portMap>
           <spirit:logicalPort>
-            <spirit:name>CLK</spirit:name>
+            <spirit:name>CLK_P</spirit:name>
           </spirit:logicalPort>
           <spirit:physicalPort>
-            <spirit:name>clk_out2</spirit:name>
+            <spirit:name>clkfb_out_p</spirit:name>
           </spirit:physicalPort>
         </spirit:portMap>
       </spirit:portMaps>
       <spirit:parameters>
         <spirit:parameter>
-          <spirit:name>FREQ_HZ</spirit:name>
-          <spirit:value spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT2.FREQ_HZ">100000000</spirit:value>
+          <spirit:name>CAN_DEBUG</spirit:name>
+          <spirit:value spirit:format="bool" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLKFB_OUT_D.CAN_DEBUG">false</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
         </spirit:parameter>
         <spirit:parameter>
-          <spirit:name>ASSOCIATED_MMCM_LOCK</spirit:name>
-          <spirit:value spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT2.ASSOCIATED_MMCM_LOCK">locked</spirit:value>
+          <spirit:name>FREQ_HZ</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLKFB_OUT_D.FREQ_HZ">100000000</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
         </spirit:parameter>
       </spirit:parameters>
       <spirit:vendorExtensions>
         <xilinx:busInterfaceInfo>
           <xilinx:enablement>
-            <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.clock_CLK_OUT2" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT2_USED&apos;))=1)">true</xilinx:isEnabled>
+            <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.CLKFB_OUT_D" xilinx:dependency="((((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))!=&quot;FDBK_AUTO&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;))) or ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;)) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_MMCM_COMPENSATION&apos;))!=&quot;INTERNAL&quot;))) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKFB_IN_SIGNALING&apos;))=&quot;DIFF&quot;) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_MMCM_COMPENSATION&apos;))!=&quot;INTERNAL&quot;))))">false</xilinx:isEnabled>
           </xilinx:enablement>
         </xilinx:busInterfaceInfo>
       </spirit:vendorExtensions>
     </spirit:busInterface>
     <spirit:busInterface>
-      <spirit:name>clock_CLK_OUT3</spirit:name>
-      <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock" spirit:version="1.0"/>
-      <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock_rtl" spirit:version="1.0"/>
-      <spirit:master/>
+      <spirit:name>reset</spirit:name>
+      <spirit:displayName>reset</spirit:displayName>
+      <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="reset" spirit:version="1.0"/>
+      <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="reset_rtl" spirit:version="1.0"/>
+      <spirit:slave/>
       <spirit:portMaps>
         <spirit:portMap>
           <spirit:logicalPort>
-            <spirit:name>CLK</spirit:name>
+            <spirit:name>RST</spirit:name>
           </spirit:logicalPort>
           <spirit:physicalPort>
-            <spirit:name>clk_out3</spirit:name>
+            <spirit:name>reset</spirit:name>
           </spirit:physicalPort>
         </spirit:portMap>
       </spirit:portMaps>
       <spirit:parameters>
         <spirit:parameter>
-          <spirit:name>FREQ_HZ</spirit:name>
-          <spirit:value spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT3.FREQ_HZ">100000000</spirit:value>
+          <spirit:name>POLARITY</spirit:name>
+          <spirit:value spirit:id="BUSIFPARAM_VALUE.RESET.POLARITY">ACTIVE_HIGH</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>BOARD.ASSOCIATED_PARAM</spirit:name>
+          <spirit:value spirit:id="BUSIFPARAM_VALUE.RESET.BOARD.ASSOCIATED_PARAM">RESET_BOARD_INTERFACE</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
-          <spirit:name>ASSOCIATED_MMCM_LOCK</spirit:name>
-          <spirit:value spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT3.ASSOCIATED_MMCM_LOCK">locked</spirit:value>
+          <spirit:name>INSERT_VIP</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="BUSIFPARAM_VALUE.RESET.INSERT_VIP">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>simulation.rtl</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
         </spirit:parameter>
       </spirit:parameters>
       <spirit:vendorExtensions>
         <xilinx:busInterfaceInfo>
           <xilinx:enablement>
-            <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.clock_CLK_OUT3" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT3_USED&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_SPREAD_SPECTRUM&apos;))=0)">true</xilinx:isEnabled>
+            <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.reset" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_RESET&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_RESET_LOW&apos;))=0) and (not spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;)))">true</xilinx:isEnabled>
           </xilinx:enablement>
         </xilinx:busInterfaceInfo>
       </spirit:vendorExtensions>
     </spirit:busInterface>
     <spirit:busInterface>
-      <spirit:name>clock_CLK_OUT4</spirit:name>
-      <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock" spirit:version="1.0"/>
-      <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock_rtl" spirit:version="1.0"/>
-      <spirit:master/>
+      <spirit:name>resetn</spirit:name>
+      <spirit:displayName>resetn</spirit:displayName>
+      <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="reset" spirit:version="1.0"/>
+      <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="reset_rtl" spirit:version="1.0"/>
+      <spirit:slave/>
       <spirit:portMaps>
         <spirit:portMap>
           <spirit:logicalPort>
-            <spirit:name>CLK</spirit:name>
+            <spirit:name>RST</spirit:name>
           </spirit:logicalPort>
           <spirit:physicalPort>
-            <spirit:name>clk_out4</spirit:name>
+            <spirit:name>resetn</spirit:name>
           </spirit:physicalPort>
         </spirit:portMap>
       </spirit:portMaps>
       <spirit:parameters>
         <spirit:parameter>
-          <spirit:name>FREQ_HZ</spirit:name>
-          <spirit:value spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT4.FREQ_HZ">100000000</spirit:value>
+          <spirit:name>POLARITY</spirit:name>
+          <spirit:value spirit:id="BUSIFPARAM_VALUE.RESETN.POLARITY">ACTIVE_LOW</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>BOARD.ASSOCIATED_PARAM</spirit:name>
+          <spirit:value spirit:id="BUSIFPARAM_VALUE.RESETN.BOARD.ASSOCIATED_PARAM">RESET_BOARD_INTERFACE</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
-          <spirit:name>ASSOCIATED_MMCM_LOCK</spirit:name>
-          <spirit:value spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT4.ASSOCIATED_MMCM_LOCK">locked</spirit:value>
+          <spirit:name>INSERT_VIP</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="BUSIFPARAM_VALUE.RESETN.INSERT_VIP">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>simulation.rtl</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
         </spirit:parameter>
       </spirit:parameters>
       <spirit:vendorExtensions>
         <xilinx:busInterfaceInfo>
           <xilinx:enablement>
-            <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.clock_CLK_OUT4" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT4_USED&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_SPREAD_SPECTRUM&apos;))=0)">true</xilinx:isEnabled>
+            <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.resetn" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_RESET&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_RESET_LOW&apos;))=1) and (not spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;)))">false</xilinx:isEnabled>
           </xilinx:enablement>
         </xilinx:busInterfaceInfo>
       </spirit:vendorExtensions>
     </spirit:busInterface>
     <spirit:busInterface>
-      <spirit:name>clock_CLK_OUT5</spirit:name>
+      <spirit:name>clock_CLK_IN1</spirit:name>
       <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock" spirit:version="1.0"/>
       <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock_rtl" spirit:version="1.0"/>
-      <spirit:master/>
+      <spirit:slave/>
       <spirit:portMaps>
         <spirit:portMap>
           <spirit:logicalPort>
-            <spirit:name>CLK</spirit:name>
+            <spirit:name>CLK_IN1</spirit:name>
           </spirit:logicalPort>
           <spirit:physicalPort>
-            <spirit:name>clk_out5</spirit:name>
+            <spirit:name>clk_in1</spirit:name>
           </spirit:physicalPort>
         </spirit:portMap>
       </spirit:portMaps>
       <spirit:parameters>
         <spirit:parameter>
           <spirit:name>FREQ_HZ</spirit:name>
-          <spirit:value spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT5.FREQ_HZ">100000000</spirit:value>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_IN1.FREQ_HZ">100000000</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>FREQ_TOLERANCE_HZ</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_IN1.FREQ_TOLERANCE_HZ">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>PHASE</spirit:name>
+          <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_IN1.PHASE">0.0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>CLK_DOMAIN</spirit:name>
+          <spirit:value spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_IN1.CLK_DOMAIN"/>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASSOCIATED_BUSIF</spirit:name>
+          <spirit:value spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_IN1.ASSOCIATED_BUSIF"/>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASSOCIATED_PORT</spirit:name>
+          <spirit:value spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_IN1.ASSOCIATED_PORT"/>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASSOCIATED_RESET</spirit:name>
+          <spirit:value spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_IN1.ASSOCIATED_RESET"/>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>INSERT_VIP</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_IN1.INSERT_VIP">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>simulation.rtl</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
         </spirit:parameter>
         <spirit:parameter>
-          <spirit:name>ASSOCIATED_MMCM_LOCK</spirit:name>
-          <spirit:value spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT5.ASSOCIATED_MMCM_LOCK">locked</spirit:value>
+          <spirit:name>BOARD.ASSOCIATED_PARAM</spirit:name>
+          <spirit:value spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_IN1.BOARD.ASSOCIATED_PARAM">CLK_IN1_BOARD_INTERFACE</spirit:value>
         </spirit:parameter>
       </spirit:parameters>
-      <spirit:vendorExtensions>
-        <xilinx:busInterfaceInfo>
-          <xilinx:enablement>
-            <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.clock_CLK_OUT5" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT5_USED&apos;))=1)">false</xilinx:isEnabled>
-          </xilinx:enablement>
-        </xilinx:busInterfaceInfo>
-      </spirit:vendorExtensions>
     </spirit:busInterface>
     <spirit:busInterface>
-      <spirit:name>clock_CLK_OUT6</spirit:name>
+      <spirit:name>clock_CLK_OUT1</spirit:name>
       <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock" spirit:version="1.0"/>
       <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock_rtl" spirit:version="1.0"/>
       <spirit:master/>
       <spirit:portMaps>
         <spirit:portMap>
           <spirit:logicalPort>
-            <spirit:name>CLK</spirit:name>
+            <spirit:name>CLK_OUT1</spirit:name>
           </spirit:logicalPort>
           <spirit:physicalPort>
-            <spirit:name>clk_out6</spirit:name>
+            <spirit:name>clk_out1</spirit:name>
           </spirit:physicalPort>
         </spirit:portMap>
       </spirit:portMaps>
       <spirit:parameters>
         <spirit:parameter>
           <spirit:name>FREQ_HZ</spirit:name>
-          <spirit:value spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT6.FREQ_HZ">100000000</spirit:value>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT1.FREQ_HZ">100000000</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>FREQ_TOLERANCE_HZ</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT1.FREQ_TOLERANCE_HZ">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>PHASE</spirit:name>
+          <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT1.PHASE">0.0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>CLK_DOMAIN</spirit:name>
+          <spirit:value spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT1.CLK_DOMAIN"/>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASSOCIATED_BUSIF</spirit:name>
+          <spirit:value spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT1.ASSOCIATED_BUSIF"/>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASSOCIATED_PORT</spirit:name>
+          <spirit:value spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT1.ASSOCIATED_PORT"/>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
         </spirit:parameter>
         <spirit:parameter>
-          <spirit:name>ASSOCIATED_MMCM_LOCK</spirit:name>
-          <spirit:value spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT6.ASSOCIATED_MMCM_LOCK">locked</spirit:value>
+          <spirit:name>ASSOCIATED_RESET</spirit:name>
+          <spirit:value spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT1.ASSOCIATED_RESET"/>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>INSERT_VIP</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT1.INSERT_VIP">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>simulation.rtl</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
         </spirit:parameter>
       </spirit:parameters>
-      <spirit:vendorExtensions>
-        <xilinx:busInterfaceInfo>
-          <xilinx:enablement>
-            <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.clock_CLK_OUT6" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT6_USED&apos;))=1)">false</xilinx:isEnabled>
-          </xilinx:enablement>
-        </xilinx:busInterfaceInfo>
-      </spirit:vendorExtensions>
     </spirit:busInterface>
     <spirit:busInterface>
-      <spirit:name>clock_CLK_OUT7</spirit:name>
+      <spirit:name>clock_CLK_OUT2</spirit:name>
       <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock" spirit:version="1.0"/>
       <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock_rtl" spirit:version="1.0"/>
       <spirit:master/>
       <spirit:portMaps>
         <spirit:portMap>
           <spirit:logicalPort>
-            <spirit:name>CLK</spirit:name>
+            <spirit:name>CLK_OUT2</spirit:name>
           </spirit:logicalPort>
           <spirit:physicalPort>
-            <spirit:name>clk_out7</spirit:name>
+            <spirit:name>clk_out2</spirit:name>
           </spirit:physicalPort>
         </spirit:portMap>
       </spirit:portMaps>
       <spirit:parameters>
         <spirit:parameter>
           <spirit:name>FREQ_HZ</spirit:name>
-          <spirit:value spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT7.FREQ_HZ">100000000</spirit:value>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT2.FREQ_HZ">100000000</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>FREQ_TOLERANCE_HZ</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT2.FREQ_TOLERANCE_HZ">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>PHASE</spirit:name>
+          <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT2.PHASE">0.0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>CLK_DOMAIN</spirit:name>
+          <spirit:value spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT2.CLK_DOMAIN"/>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASSOCIATED_BUSIF</spirit:name>
+          <spirit:value spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT2.ASSOCIATED_BUSIF"/>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASSOCIATED_PORT</spirit:name>
+          <spirit:value spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT2.ASSOCIATED_PORT"/>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASSOCIATED_RESET</spirit:name>
+          <spirit:value spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT2.ASSOCIATED_RESET"/>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
         </spirit:parameter>
         <spirit:parameter>
-          <spirit:name>ASSOCIATED_MMCM_LOCK</spirit:name>
-          <spirit:value spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT7.ASSOCIATED_MMCM_LOCK">locked</spirit:value>
+          <spirit:name>INSERT_VIP</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT2.INSERT_VIP">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>simulation.rtl</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
         </spirit:parameter>
       </spirit:parameters>
-      <spirit:vendorExtensions>
-        <xilinx:busInterfaceInfo>
-          <xilinx:enablement>
-            <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.clock_CLK_OUT7" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT7_USED&apos;))=1)">false</xilinx:isEnabled>
-          </xilinx:enablement>
-        </xilinx:busInterfaceInfo>
-      </spirit:vendorExtensions>
     </spirit:busInterface>
     <spirit:busInterface>
-      <spirit:name>clock_CLKFB_OUT</spirit:name>
+      <spirit:name>clock_CLK_OUT3</spirit:name>
       <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock" spirit:version="1.0"/>
       <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock_rtl" spirit:version="1.0"/>
       <spirit:master/>
       <spirit:portMaps>
         <spirit:portMap>
           <spirit:logicalPort>
-            <spirit:name>CLK</spirit:name>
-          </spirit:logicalPort>
-          <spirit:physicalPort>
-            <spirit:name>clkfb_out</spirit:name>
-          </spirit:physicalPort>
-        </spirit:portMap>
-      </spirit:portMaps>
-      <spirit:vendorExtensions>
-        <xilinx:busInterfaceInfo>
-          <xilinx:enablement>
-            <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.clock_CLKFB_OUT" xilinx:dependency="((((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))!=&quot;FDBK_AUTO&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;))) or ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;))) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))!=1) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))!=&quot;FDBK_AUTO_OFFCHIP&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKFB_IN_SIGNALING&apos;))!=&quot;DIFF&quot;)))">false</xilinx:isEnabled>
-          </xilinx:enablement>
-        </xilinx:busInterfaceInfo>
-      </spirit:vendorExtensions>
-    </spirit:busInterface>
-    <spirit:busInterface>
-      <spirit:name>CLKFB_OUT_D</spirit:name>
-      <spirit:displayName>CLKFB_OUT_D</spirit:displayName>
-      <spirit:description>Differential Feeback Clock Output</spirit:description>
-      <spirit:busType spirit:vendor="xilinx.com" spirit:library="interface" spirit:name="diff_clock" spirit:version="1.0"/>
-      <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="interface" spirit:name="diff_clock_rtl" spirit:version="1.0"/>
-      <spirit:master/>
-      <spirit:portMaps>
-        <spirit:portMap>
-          <spirit:logicalPort>
-            <spirit:name>CLK_N</spirit:name>
-          </spirit:logicalPort>
-          <spirit:physicalPort>
-            <spirit:name>clkfb_out_n</spirit:name>
-          </spirit:physicalPort>
-        </spirit:portMap>
-        <spirit:portMap>
-          <spirit:logicalPort>
-            <spirit:name>CLK_P</spirit:name>
-          </spirit:logicalPort>
-          <spirit:physicalPort>
-            <spirit:name>clkfb_out_p</spirit:name>
-          </spirit:physicalPort>
-        </spirit:portMap>
-      </spirit:portMaps>
-      <spirit:vendorExtensions>
-        <xilinx:busInterfaceInfo>
-          <xilinx:enablement>
-            <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.CLKFB_OUT_D" xilinx:dependency="((((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))!=&quot;FDBK_AUTO&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;))) or ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;))) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKFB_IN_SIGNALING&apos;))=&quot;DIFF&quot;)))">false</xilinx:isEnabled>
-          </xilinx:enablement>
-        </xilinx:busInterfaceInfo>
-      </spirit:vendorExtensions>
-    </spirit:busInterface>
-    <spirit:busInterface>
-      <spirit:name>reset</spirit:name>
-      <spirit:displayName>reset</spirit:displayName>
-      <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="reset" spirit:version="1.0"/>
-      <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="reset_rtl" spirit:version="1.0"/>
-      <spirit:slave/>
-      <spirit:portMaps>
-        <spirit:portMap>
-          <spirit:logicalPort>
-            <spirit:name>RST</spirit:name>
+            <spirit:name>CLK_OUT3</spirit:name>
           </spirit:logicalPort>
           <spirit:physicalPort>
-            <spirit:name>reset</spirit:name>
+            <spirit:name>clk_out3</spirit:name>
           </spirit:physicalPort>
         </spirit:portMap>
       </spirit:portMaps>
       <spirit:parameters>
         <spirit:parameter>
-          <spirit:name>POLARITY</spirit:name>
-          <spirit:value spirit:id="BUSIFPARAM_VALUE.RESET.POLARITY">ACTIVE_HIGH</spirit:value>
+          <spirit:name>FREQ_HZ</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT3.FREQ_HZ">100000000</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
         </spirit:parameter>
         <spirit:parameter>
-          <spirit:name>BOARD.ASSOCIATED_PARAM</spirit:name>
-          <spirit:value spirit:id="BUSIFPARAM_VALUE.RESET.BOARD.ASSOCIATED_PARAM">RESET_BOARD_INTERFACE</spirit:value>
+          <spirit:name>FREQ_TOLERANCE_HZ</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT3.FREQ_TOLERANCE_HZ">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
         </spirit:parameter>
-      </spirit:parameters>
-      <spirit:vendorExtensions>
-        <xilinx:busInterfaceInfo>
-          <xilinx:enablement>
-            <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.reset" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_RESET&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_RESET_LOW&apos;))=0) and (not spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;)))">true</xilinx:isEnabled>
-          </xilinx:enablement>
-        </xilinx:busInterfaceInfo>
-      </spirit:vendorExtensions>
-    </spirit:busInterface>
-    <spirit:busInterface>
-      <spirit:name>resetn</spirit:name>
-      <spirit:displayName>resetn</spirit:displayName>
-      <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="reset" spirit:version="1.0"/>
-      <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="reset_rtl" spirit:version="1.0"/>
-      <spirit:slave/>
-      <spirit:portMaps>
-        <spirit:portMap>
-          <spirit:logicalPort>
-            <spirit:name>RST</spirit:name>
-          </spirit:logicalPort>
-          <spirit:physicalPort>
-            <spirit:name>resetn</spirit:name>
-          </spirit:physicalPort>
-        </spirit:portMap>
-      </spirit:portMaps>
-      <spirit:parameters>
         <spirit:parameter>
-          <spirit:name>POLARITY</spirit:name>
-          <spirit:value spirit:id="BUSIFPARAM_VALUE.RESETN.POLARITY">ACTIVE_LOW</spirit:value>
+          <spirit:name>PHASE</spirit:name>
+          <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT3.PHASE">0.0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
         </spirit:parameter>
-      </spirit:parameters>
-      <spirit:vendorExtensions>
-        <xilinx:busInterfaceInfo>
-          <xilinx:enablement>
-            <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.resetn" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_RESET&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_RESET_LOW&apos;))=1) and (not spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;)))">false</xilinx:isEnabled>
-          </xilinx:enablement>
-        </xilinx:busInterfaceInfo>
-      </spirit:vendorExtensions>
-    </spirit:busInterface>
-    <spirit:busInterface>
-      <spirit:name>s_drp</spirit:name>
-      <spirit:displayName>s_drp</spirit:displayName>
-      <spirit:description>Slave DRP Port</spirit:description>
-      <spirit:busType spirit:vendor="xilinx.com" spirit:library="interface" spirit:name="drp" spirit:version="1.0"/>
-      <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="interface" spirit:name="drp_rtl" spirit:version="1.0"/>
-      <spirit:slave/>
-      <spirit:portMaps>
-        <spirit:portMap>
-          <spirit:logicalPort>
-            <spirit:name>DADDR</spirit:name>
-          </spirit:logicalPort>
-          <spirit:physicalPort>
-            <spirit:name>daddr</spirit:name>
-          </spirit:physicalPort>
-        </spirit:portMap>
-        <spirit:portMap>
-          <spirit:logicalPort>
-            <spirit:name>DEN</spirit:name>
-          </spirit:logicalPort>
-          <spirit:physicalPort>
-            <spirit:name>den</spirit:name>
-          </spirit:physicalPort>
-        </spirit:portMap>
-        <spirit:portMap>
-          <spirit:logicalPort>
-            <spirit:name>DI</spirit:name>
-          </spirit:logicalPort>
-          <spirit:physicalPort>
-            <spirit:name>din</spirit:name>
-          </spirit:physicalPort>
-        </spirit:portMap>
-        <spirit:portMap>
-          <spirit:logicalPort>
-            <spirit:name>DO</spirit:name>
-          </spirit:logicalPort>
-          <spirit:physicalPort>
-            <spirit:name>dout</spirit:name>
-          </spirit:physicalPort>
-        </spirit:portMap>
-        <spirit:portMap>
-          <spirit:logicalPort>
-            <spirit:name>DRDY</spirit:name>
-          </spirit:logicalPort>
-          <spirit:physicalPort>
-            <spirit:name>drdy</spirit:name>
-          </spirit:physicalPort>
-        </spirit:portMap>
-        <spirit:portMap>
-          <spirit:logicalPort>
-            <spirit:name>DWE</spirit:name>
-          </spirit:logicalPort>
-          <spirit:physicalPort>
-            <spirit:name>dwe</spirit:name>
-          </spirit:physicalPort>
-        </spirit:portMap>
-      </spirit:portMaps>
-      <spirit:vendorExtensions>
-        <xilinx:busInterfaceInfo>
-          <xilinx:enablement>
-            <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.s_drp" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_DYN_RECONFIG&apos;)) and (not spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;)))">false</xilinx:isEnabled>
-          </xilinx:enablement>
-        </xilinx:busInterfaceInfo>
-      </spirit:vendorExtensions>
-    </spirit:busInterface>
-  </spirit:busInterfaces>
-  <spirit:model>
-    <spirit:views>
-      <spirit:view>
-        <spirit:name>xilinx_vhdlinstantiationtemplate</spirit:name>
-        <spirit:displayName>VHDL Instantiation Template</spirit:displayName>
-        <spirit:envIdentifier>vhdlSource:vivado.xilinx.com:synthesis.template</spirit:envIdentifier>
-        <spirit:language>vhdl</spirit:language>
-        <spirit:fileSetRef>
-          <spirit:localName>xilinx_vhdlinstantiationtemplate_view_fileset</spirit:localName>
-        </spirit:fileSetRef>
-        <spirit:parameters>
-          <spirit:parameter>
-            <spirit:name>customizationCRC</spirit:name>
-            <spirit:value>df5bfb27</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>customizationCRCversion</spirit:name>
-            <spirit:value>5</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>boundaryCRC</spirit:name>
-            <spirit:value>893de65f</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>boundaryCRCversion</spirit:name>
-            <spirit:value>1</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>GENtimestamp</spirit:name>
-            <spirit:value>Fri Jan 22 01:11:32 UTC 2016</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>StaleAtRelink</spirit:name>
-            <spirit:value>false</spirit:value>
-          </spirit:parameter>
-        </spirit:parameters>
-      </spirit:view>
-      <spirit:view>
-        <spirit:name>xilinx_anylanguagesynthesis</spirit:name>
-        <spirit:displayName>Synthesis</spirit:displayName>
-        <spirit:envIdentifier>:vivado.xilinx.com:synthesis</spirit:envIdentifier>
-        <spirit:fileSetRef>
-          <spirit:localName>xilinx_anylanguagesynthesis_view_fileset</spirit:localName>
-        </spirit:fileSetRef>
-        <spirit:parameters>
-          <spirit:parameter>
-            <spirit:name>customizationCRC</spirit:name>
-            <spirit:value>df5bfb27</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>customizationCRCversion</spirit:name>
-            <spirit:value>5</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>boundaryCRC</spirit:name>
-            <spirit:value>893de65f</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>boundaryCRCversion</spirit:name>
-            <spirit:value>1</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>GENtimestamp</spirit:name>
-            <spirit:value>Fri Jan 22 01:11:33 UTC 2016</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>StaleAtRelink</spirit:name>
-            <spirit:value>false</spirit:value>
-          </spirit:parameter>
-        </spirit:parameters>
-      </spirit:view>
-      <spirit:view>
-        <spirit:name>xilinx_anylanguagesynthesiswrapper</spirit:name>
-        <spirit:displayName>Synthesis Wrapper</spirit:displayName>
-        <spirit:envIdentifier>:vivado.xilinx.com:synthesis.wrapper</spirit:envIdentifier>
-        <spirit:fileSetRef>
-          <spirit:localName>xilinx_anylanguagesynthesiswrapper_view_fileset</spirit:localName>
-        </spirit:fileSetRef>
-        <spirit:parameters>
-          <spirit:parameter>
-            <spirit:name>customizationCRC</spirit:name>
-            <spirit:value>df5bfb27</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>customizationCRCversion</spirit:name>
-            <spirit:value>5</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>boundaryCRC</spirit:name>
-            <spirit:value>893de65f</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>boundaryCRCversion</spirit:name>
-            <spirit:value>1</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>GENtimestamp</spirit:name>
-            <spirit:value>Fri Jan 22 01:11:33 UTC 2016</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>StaleAtRelink</spirit:name>
-            <spirit:value>false</spirit:value>
-          </spirit:parameter>
-        </spirit:parameters>
-      </spirit:view>
-      <spirit:view>
-        <spirit:name>xilinx_anylanguagebehavioralsimulation</spirit:name>
-        <spirit:displayName>Simulation</spirit:displayName>
-        <spirit:envIdentifier>:vivado.xilinx.com:simulation</spirit:envIdentifier>
-        <spirit:fileSetRef>
-          <spirit:localName>xilinx_anylanguagebehavioralsimulation_view_fileset</spirit:localName>
-        </spirit:fileSetRef>
-        <spirit:parameters>
-          <spirit:parameter>
-            <spirit:name>customizationCRC</spirit:name>
-            <spirit:value>b7329546</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>customizationCRCversion</spirit:name>
-            <spirit:value>5</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>boundaryCRC</spirit:name>
-            <spirit:value>893de65f</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>boundaryCRCversion</spirit:name>
-            <spirit:value>1</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>GENtimestamp</spirit:name>
-            <spirit:value>Fri Jan 22 01:11:33 UTC 2016</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>StaleAtRelink</spirit:name>
-            <spirit:value>false</spirit:value>
-          </spirit:parameter>
-        </spirit:parameters>
-      </spirit:view>
-      <spirit:view>
-        <spirit:name>xilinx_anylanguagesimulationwrapper</spirit:name>
-        <spirit:displayName>Simulation Wrapper</spirit:displayName>
-        <spirit:envIdentifier>:vivado.xilinx.com:simulation.wrapper</spirit:envIdentifier>
-        <spirit:fileSetRef>
-          <spirit:localName>xilinx_anylanguagesimulationwrapper_view_fileset</spirit:localName>
-        </spirit:fileSetRef>
-        <spirit:parameters>
-          <spirit:parameter>
-            <spirit:name>customizationCRC</spirit:name>
-            <spirit:value>b7329546</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>customizationCRCversion</spirit:name>
-            <spirit:value>5</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>boundaryCRC</spirit:name>
-            <spirit:value>893de65f</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>boundaryCRCversion</spirit:name>
-            <spirit:value>1</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>GENtimestamp</spirit:name>
-            <spirit:value>Fri Jan 22 01:11:33 UTC 2016</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>StaleAtRelink</spirit:name>
-            <spirit:value>false</spirit:value>
-          </spirit:parameter>
-        </spirit:parameters>
-      </spirit:view>
-      <spirit:view>
-        <spirit:name>xilinx_implementation</spirit:name>
-        <spirit:displayName>Implementation</spirit:displayName>
-        <spirit:envIdentifier>:vivado.xilinx.com:implementation</spirit:envIdentifier>
-        <spirit:fileSetRef>
-          <spirit:localName>xilinx_implementation_view_fileset</spirit:localName>
-        </spirit:fileSetRef>
-        <spirit:parameters>
-          <spirit:parameter>
-            <spirit:name>customizationCRC</spirit:name>
-            <spirit:value>df5bfb27</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>customizationCRCversion</spirit:name>
-            <spirit:value>5</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>boundaryCRC</spirit:name>
-            <spirit:value>893de65f</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>boundaryCRCversion</spirit:name>
-            <spirit:value>1</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>GENtimestamp</spirit:name>
-            <spirit:value>Fri Jan 22 01:11:33 UTC 2016</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>StaleAtRelink</spirit:name>
-            <spirit:value>false</spirit:value>
-          </spirit:parameter>
-        </spirit:parameters>
-      </spirit:view>
-      <spirit:view>
-        <spirit:name>xilinx_versioninformation</spirit:name>
-        <spirit:displayName>Version Information</spirit:displayName>
-        <spirit:envIdentifier>:vivado.xilinx.com:docs.versioninfo</spirit:envIdentifier>
-        <spirit:fileSetRef>
-          <spirit:localName>xilinx_versioninformation_view_fileset</spirit:localName>
-        </spirit:fileSetRef>
-        <spirit:parameters>
-          <spirit:parameter>
-            <spirit:name>customizationCRC</spirit:name>
-            <spirit:value>df5bfb27</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>customizationCRCversion</spirit:name>
-            <spirit:value>5</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>boundaryCRC</spirit:name>
-            <spirit:value>893de65f</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>boundaryCRCversion</spirit:name>
-            <spirit:value>1</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>GENtimestamp</spirit:name>
-            <spirit:value>Fri Jan 22 01:11:33 UTC 2016</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>StaleAtRelink</spirit:name>
-            <spirit:value>false</spirit:value>
-          </spirit:parameter>
-        </spirit:parameters>
-      </spirit:view>
-      <spirit:view>
-        <spirit:name>xilinx_externalfiles</spirit:name>
-        <spirit:displayName>External Files</spirit:displayName>
-        <spirit:envIdentifier>:vivado.xilinx.com:external.files</spirit:envIdentifier>
-        <spirit:fileSetRef>
-          <spirit:localName>xilinx_externalfiles_view_fileset</spirit:localName>
-        </spirit:fileSetRef>
-        <spirit:parameters>
-          <spirit:parameter>
-            <spirit:name>customizationCRC</spirit:name>
-            <spirit:value>df5bfb27</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>customizationCRCversion</spirit:name>
-            <spirit:value>5</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>boundaryCRC</spirit:name>
-            <spirit:value>893de65f</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>boundaryCRCversion</spirit:name>
-            <spirit:value>1</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>GENtimestamp</spirit:name>
-            <spirit:value>Fri Jan 22 01:13:26 UTC 2016</spirit:value>
-          </spirit:parameter>
-          <spirit:parameter>
-            <spirit:name>StaleAtRelink</spirit:name>
-            <spirit:value>false</spirit:value>
-          </spirit:parameter>
-        </spirit:parameters>
-      </spirit:view>
-    </spirit:views>
-    <spirit:ports>
-      <spirit:port>
-        <spirit:name>s_axi_aclk</spirit:name>
-        <spirit:wire>
-          <spirit:direction>in</spirit:direction>
-          <spirit:wireTypeDefs>
-            <spirit:wireTypeDef>
-              <spirit:typeName>std_logic</spirit:typeName>
-              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
-              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
-            </spirit:wireTypeDef>
-          </spirit:wireTypeDefs>
-          <spirit:driver>
-            <spirit:defaultValue spirit:format="long">0</spirit:defaultValue>
-          </spirit:driver>
-        </spirit:wire>
-        <spirit:vendorExtensions>
-          <xilinx:portInfo>
-            <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_aclk" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
-            </xilinx:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
-      </spirit:port>
-      <spirit:port>
-        <spirit:name>s_axi_aresetn</spirit:name>
-        <spirit:wire>
-          <spirit:direction>in</spirit:direction>
-          <spirit:wireTypeDefs>
-            <spirit:wireTypeDef>
-              <spirit:typeName>std_logic</spirit:typeName>
-              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
-              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
-            </spirit:wireTypeDef>
-          </spirit:wireTypeDefs>
-          <spirit:driver>
-            <spirit:defaultValue spirit:format="long">0</spirit:defaultValue>
-          </spirit:driver>
-        </spirit:wire>
-        <spirit:vendorExtensions>
-          <xilinx:portInfo>
-            <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_aresetn" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
-            </xilinx:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
-      </spirit:port>
-      <spirit:port>
-        <spirit:name>s_axi_awaddr</spirit:name>
-        <spirit:wire>
-          <spirit:direction>in</spirit:direction>
-          <spirit:vector>
-            <spirit:left spirit:format="long" spirit:resolve="dependent" spirit:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_S_AXI_ADDR_WIDTH&apos;)) - 1)">10</spirit:left>
-            <spirit:right spirit:format="long">0</spirit:right>
-          </spirit:vector>
-          <spirit:wireTypeDefs>
-            <spirit:wireTypeDef>
-              <spirit:typeName>std_logic_vector</spirit:typeName>
-              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
-              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
-            </spirit:wireTypeDef>
-          </spirit:wireTypeDefs>
-          <spirit:driver>
-            <spirit:defaultValue spirit:format="long">0</spirit:defaultValue>
-          </spirit:driver>
-        </spirit:wire>
-        <spirit:vendorExtensions>
-          <xilinx:portInfo>
-            <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_awaddr" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
-            </xilinx:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
-      </spirit:port>
-      <spirit:port>
-        <spirit:name>s_axi_awvalid</spirit:name>
-        <spirit:wire>
-          <spirit:direction>in</spirit:direction>
-          <spirit:wireTypeDefs>
-            <spirit:wireTypeDef>
-              <spirit:typeName>std_logic</spirit:typeName>
-              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
-              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
-            </spirit:wireTypeDef>
-          </spirit:wireTypeDefs>
-          <spirit:driver>
-            <spirit:defaultValue spirit:format="long">0</spirit:defaultValue>
-          </spirit:driver>
-        </spirit:wire>
-        <spirit:vendorExtensions>
-          <xilinx:portInfo>
-            <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_awvalid" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
-            </xilinx:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
-      </spirit:port>
-      <spirit:port>
-        <spirit:name>s_axi_awready</spirit:name>
-        <spirit:wire>
-          <spirit:direction>out</spirit:direction>
-          <spirit:wireTypeDefs>
-            <spirit:wireTypeDef>
-              <spirit:typeName>std_logic</spirit:typeName>
-              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
-              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
-            </spirit:wireTypeDef>
-          </spirit:wireTypeDefs>
-        </spirit:wire>
-        <spirit:vendorExtensions>
-          <xilinx:portInfo>
-            <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_awready" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
-            </xilinx:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
-      </spirit:port>
-      <spirit:port>
-        <spirit:name>s_axi_wdata</spirit:name>
-        <spirit:wire>
-          <spirit:direction>in</spirit:direction>
-          <spirit:vector>
-            <spirit:left spirit:format="long" spirit:resolve="dependent" spirit:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_S_AXI_DATA_WIDTH&apos;)) - 1)">31</spirit:left>
-            <spirit:right spirit:format="long">0</spirit:right>
-          </spirit:vector>
-          <spirit:wireTypeDefs>
-            <spirit:wireTypeDef>
-              <spirit:typeName>std_logic_vector</spirit:typeName>
-              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
-              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
-            </spirit:wireTypeDef>
-          </spirit:wireTypeDefs>
-          <spirit:driver>
-            <spirit:defaultValue spirit:format="long">0</spirit:defaultValue>
-          </spirit:driver>
-        </spirit:wire>
-        <spirit:vendorExtensions>
-          <xilinx:portInfo>
-            <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_wdata" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
-            </xilinx:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
-      </spirit:port>
-      <spirit:port>
-        <spirit:name>s_axi_wstrb</spirit:name>
-        <spirit:wire>
-          <spirit:direction>in</spirit:direction>
-          <spirit:vector>
-            <spirit:left spirit:format="long" spirit:resolve="dependent" spirit:dependency="((spirit:decode(id(&apos;MODELPARAM_VALUE.C_S_AXI_DATA_WIDTH&apos;)) div 8) - 1)">3</spirit:left>
-            <spirit:right spirit:format="long">0</spirit:right>
-          </spirit:vector>
-          <spirit:wireTypeDefs>
-            <spirit:wireTypeDef>
-              <spirit:typeName>std_logic_vector</spirit:typeName>
-              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
-              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
-            </spirit:wireTypeDef>
-          </spirit:wireTypeDefs>
-          <spirit:driver>
-            <spirit:defaultValue spirit:format="long">0</spirit:defaultValue>
-          </spirit:driver>
-        </spirit:wire>
-        <spirit:vendorExtensions>
-          <xilinx:portInfo>
-            <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_wstrb" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
-            </xilinx:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
-      </spirit:port>
-      <spirit:port>
-        <spirit:name>s_axi_wvalid</spirit:name>
-        <spirit:wire>
-          <spirit:direction>in</spirit:direction>
-          <spirit:wireTypeDefs>
-            <spirit:wireTypeDef>
-              <spirit:typeName>std_logic</spirit:typeName>
-              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
-              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
-            </spirit:wireTypeDef>
-          </spirit:wireTypeDefs>
-          <spirit:driver>
-            <spirit:defaultValue spirit:format="long">0</spirit:defaultValue>
-          </spirit:driver>
-        </spirit:wire>
-        <spirit:vendorExtensions>
-          <xilinx:portInfo>
-            <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_wvalid" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
-            </xilinx:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
-      </spirit:port>
-      <spirit:port>
-        <spirit:name>s_axi_wready</spirit:name>
-        <spirit:wire>
-          <spirit:direction>out</spirit:direction>
-          <spirit:wireTypeDefs>
-            <spirit:wireTypeDef>
-              <spirit:typeName>std_logic</spirit:typeName>
-              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
-              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
-            </spirit:wireTypeDef>
-          </spirit:wireTypeDefs>
-        </spirit:wire>
-        <spirit:vendorExtensions>
-          <xilinx:portInfo>
-            <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_wready" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
-            </xilinx:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
-      </spirit:port>
-      <spirit:port>
-        <spirit:name>s_axi_bresp</spirit:name>
-        <spirit:wire>
-          <spirit:direction>out</spirit:direction>
-          <spirit:vector>
-            <spirit:left spirit:format="long">1</spirit:left>
-            <spirit:right spirit:format="long">0</spirit:right>
-          </spirit:vector>
-          <spirit:wireTypeDefs>
-            <spirit:wireTypeDef>
-              <spirit:typeName>std_logic_vector</spirit:typeName>
-              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
-              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
-            </spirit:wireTypeDef>
-          </spirit:wireTypeDefs>
-        </spirit:wire>
-        <spirit:vendorExtensions>
-          <xilinx:portInfo>
-            <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_bresp" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
-            </xilinx:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
-      </spirit:port>
-      <spirit:port>
-        <spirit:name>s_axi_bvalid</spirit:name>
-        <spirit:wire>
-          <spirit:direction>out</spirit:direction>
-          <spirit:wireTypeDefs>
-            <spirit:wireTypeDef>
-              <spirit:typeName>std_logic</spirit:typeName>
-              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
-              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
-            </spirit:wireTypeDef>
-          </spirit:wireTypeDefs>
-        </spirit:wire>
-        <spirit:vendorExtensions>
-          <xilinx:portInfo>
-            <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_bvalid" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
-            </xilinx:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
-      </spirit:port>
-      <spirit:port>
-        <spirit:name>s_axi_bready</spirit:name>
-        <spirit:wire>
-          <spirit:direction>in</spirit:direction>
-          <spirit:wireTypeDefs>
-            <spirit:wireTypeDef>
-              <spirit:typeName>std_logic</spirit:typeName>
-              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
-              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
-            </spirit:wireTypeDef>
-          </spirit:wireTypeDefs>
-          <spirit:driver>
-            <spirit:defaultValue spirit:format="long">0</spirit:defaultValue>
-          </spirit:driver>
-        </spirit:wire>
-        <spirit:vendorExtensions>
-          <xilinx:portInfo>
-            <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_bready" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
-            </xilinx:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
-      </spirit:port>
-      <spirit:port>
-        <spirit:name>s_axi_araddr</spirit:name>
-        <spirit:wire>
-          <spirit:direction>in</spirit:direction>
-          <spirit:vector>
-            <spirit:left spirit:format="long" spirit:resolve="dependent" spirit:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_S_AXI_ADDR_WIDTH&apos;)) - 1)">10</spirit:left>
-            <spirit:right spirit:format="long">0</spirit:right>
-          </spirit:vector>
-          <spirit:wireTypeDefs>
-            <spirit:wireTypeDef>
-              <spirit:typeName>std_logic_vector</spirit:typeName>
-              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
-              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
-            </spirit:wireTypeDef>
-          </spirit:wireTypeDefs>
-          <spirit:driver>
-            <spirit:defaultValue spirit:format="long">0</spirit:defaultValue>
-          </spirit:driver>
-        </spirit:wire>
-        <spirit:vendorExtensions>
-          <xilinx:portInfo>
-            <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_araddr" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
-            </xilinx:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
-      </spirit:port>
-      <spirit:port>
-        <spirit:name>s_axi_arvalid</spirit:name>
-        <spirit:wire>
-          <spirit:direction>in</spirit:direction>
-          <spirit:wireTypeDefs>
-            <spirit:wireTypeDef>
-              <spirit:typeName>std_logic</spirit:typeName>
-              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
-              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
-            </spirit:wireTypeDef>
-          </spirit:wireTypeDefs>
-          <spirit:driver>
-            <spirit:defaultValue spirit:format="long">0</spirit:defaultValue>
-          </spirit:driver>
-        </spirit:wire>
-        <spirit:vendorExtensions>
-          <xilinx:portInfo>
-            <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_arvalid" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
-            </xilinx:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
-      </spirit:port>
-      <spirit:port>
-        <spirit:name>s_axi_arready</spirit:name>
-        <spirit:wire>
-          <spirit:direction>out</spirit:direction>
-          <spirit:wireTypeDefs>
-            <spirit:wireTypeDef>
-              <spirit:typeName>std_logic</spirit:typeName>
-              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
-              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
-            </spirit:wireTypeDef>
-          </spirit:wireTypeDefs>
-        </spirit:wire>
-        <spirit:vendorExtensions>
-          <xilinx:portInfo>
-            <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_arready" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
-            </xilinx:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
-      </spirit:port>
-      <spirit:port>
-        <spirit:name>s_axi_rdata</spirit:name>
-        <spirit:wire>
-          <spirit:direction>out</spirit:direction>
-          <spirit:vector>
-            <spirit:left spirit:format="long" spirit:resolve="dependent" spirit:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_S_AXI_DATA_WIDTH&apos;)) - 1)">31</spirit:left>
-            <spirit:right spirit:format="long">0</spirit:right>
-          </spirit:vector>
-          <spirit:wireTypeDefs>
-            <spirit:wireTypeDef>
-              <spirit:typeName>std_logic_vector</spirit:typeName>
-              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
-              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
-            </spirit:wireTypeDef>
-          </spirit:wireTypeDefs>
-        </spirit:wire>
-        <spirit:vendorExtensions>
-          <xilinx:portInfo>
-            <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_rdata" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
-            </xilinx:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
-      </spirit:port>
-      <spirit:port>
-        <spirit:name>s_axi_rresp</spirit:name>
-        <spirit:wire>
-          <spirit:direction>out</spirit:direction>
-          <spirit:vector>
-            <spirit:left spirit:format="long">1</spirit:left>
-            <spirit:right spirit:format="long">0</spirit:right>
-          </spirit:vector>
-          <spirit:wireTypeDefs>
-            <spirit:wireTypeDef>
-              <spirit:typeName>std_logic_vector</spirit:typeName>
-              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
-              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
-            </spirit:wireTypeDef>
-          </spirit:wireTypeDefs>
-        </spirit:wire>
-        <spirit:vendorExtensions>
-          <xilinx:portInfo>
-            <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_rresp" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
-            </xilinx:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
-      </spirit:port>
-      <spirit:port>
-        <spirit:name>s_axi_rvalid</spirit:name>
-        <spirit:wire>
-          <spirit:direction>out</spirit:direction>
-          <spirit:wireTypeDefs>
-            <spirit:wireTypeDef>
-              <spirit:typeName>std_logic</spirit:typeName>
-              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
-              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
-            </spirit:wireTypeDef>
-          </spirit:wireTypeDefs>
-        </spirit:wire>
-        <spirit:vendorExtensions>
-          <xilinx:portInfo>
-            <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_rvalid" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
-            </xilinx:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
-      </spirit:port>
-      <spirit:port>
-        <spirit:name>s_axi_rready</spirit:name>
-        <spirit:wire>
-          <spirit:direction>in</spirit:direction>
-          <spirit:wireTypeDefs>
-            <spirit:wireTypeDef>
-              <spirit:typeName>std_logic</spirit:typeName>
-              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
-              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
-            </spirit:wireTypeDef>
-          </spirit:wireTypeDefs>
-          <spirit:driver>
-            <spirit:defaultValue spirit:format="long">0</spirit:defaultValue>
-          </spirit:driver>
-        </spirit:wire>
-        <spirit:vendorExtensions>
-          <xilinx:portInfo>
-            <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_rready" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
-            </xilinx:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
-      </spirit:port>
-      <spirit:port>
-        <spirit:name>clk_in1</spirit:name>
-        <spirit:wire>
-          <spirit:direction>in</spirit:direction>
-          <spirit:wireTypeDefs>
-            <spirit:wireTypeDef>
-              <spirit:typeName>std_logic</spirit:typeName>
-              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
-              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
-            </spirit:wireTypeDef>
-          </spirit:wireTypeDefs>
-          <spirit:driver>
-            <spirit:defaultValue spirit:format="long">0</spirit:defaultValue>
-          </spirit:driver>
-        </spirit:wire>
-        <spirit:vendorExtensions>
-          <xilinx:portInfo>
-            <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_in1" xilinx:dependency="((spirit:decode(id(&apos;MODELPARAM_VALUE.C_PRIM_SOURCE&apos;))=&quot;Single_ended_clock_capable_pin&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_PRIM_SOURCE&apos;))=&quot;Single_ended_non_clock_pin&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_PRIM_SOURCE&apos;))=&quot;No_buffer&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_PRIM_SOURCE&apos;))=&quot;Global_buffer&quot;))">true</xilinx:isEnabled>
-            </xilinx:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
-      </spirit:port>
-      <spirit:port>
-        <spirit:name>clk_in1_p</spirit:name>
-        <spirit:wire>
-          <spirit:direction>in</spirit:direction>
-          <spirit:wireTypeDefs>
-            <spirit:wireTypeDef>
-              <spirit:typeName>std_logic</spirit:typeName>
-              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
-              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
-            </spirit:wireTypeDef>
-          </spirit:wireTypeDefs>
-          <spirit:driver>
-            <spirit:defaultValue spirit:format="long">0</spirit:defaultValue>
-          </spirit:driver>
-        </spirit:wire>
-        <spirit:vendorExtensions>
-          <xilinx:portInfo>
-            <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_in1_p" xilinx:dependency="((spirit:decode(id(&apos;MODELPARAM_VALUE.C_PRIM_SOURCE&apos;))=&quot;Differential_clock_capable_pin&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_PRIM_SOURCE&apos;))=&quot;Differential_non_clock_pin&quot;))">false</xilinx:isEnabled>
-            </xilinx:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
-      </spirit:port>
-      <spirit:port>
-        <spirit:name>clk_in1_n</spirit:name>
-        <spirit:wire>
-          <spirit:direction>in</spirit:direction>
-          <spirit:wireTypeDefs>
-            <spirit:wireTypeDef>
-              <spirit:typeName>std_logic</spirit:typeName>
-              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
-              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
-            </spirit:wireTypeDef>
-          </spirit:wireTypeDefs>
-          <spirit:driver>
-            <spirit:defaultValue spirit:format="long">0</spirit:defaultValue>
-          </spirit:driver>
-        </spirit:wire>
-        <spirit:vendorExtensions>
-          <xilinx:portInfo>
-            <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_in1_n" xilinx:dependency="((spirit:decode(id(&apos;MODELPARAM_VALUE.C_PRIM_SOURCE&apos;))=&quot;Differential_clock_capable_pin&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_PRIM_SOURCE&apos;))=&quot;Differential_non_clock_pin&quot;))">false</xilinx:isEnabled>
-            </xilinx:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
-      </spirit:port>
-      <spirit:port>
-        <spirit:name>clk_in2</spirit:name>
-        <spirit:wire>
-          <spirit:direction>in</spirit:direction>
-          <spirit:wireTypeDefs>
-            <spirit:wireTypeDef>
-              <spirit:typeName>std_logic</spirit:typeName>
-              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
-              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
-            </spirit:wireTypeDef>
-          </spirit:wireTypeDefs>
-          <spirit:driver>
-            <spirit:defaultValue spirit:format="long">0</spirit:defaultValue>
-          </spirit:driver>
-        </spirit:wire>
-        <spirit:vendorExtensions>
-          <xilinx:portInfo>
-            <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_in2" xilinx:dependency="(((spirit:decode(id(&apos;MODELPARAM_VALUE.C_SECONDARY_SOURCE&apos;))=&quot;Single_ended_clock_capable_pin&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_SECONDARY_SOURCE&apos;))=&quot;Single_ended_non_clock_pin&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_SECONDARY_SOURCE&apos;))=&quot;No_buffer&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_SECONDARY_SOURCE&apos;))=&quot;Global_buffer&quot;)) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_INCLK_SWITCHOVER&apos;))=1))">false</xilinx:isEnabled>
-            </xilinx:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
-      </spirit:port>
-      <spirit:port>
-        <spirit:name>clk_in2_p</spirit:name>
-        <spirit:wire>
-          <spirit:direction>in</spirit:direction>
-          <spirit:wireTypeDefs>
-            <spirit:wireTypeDef>
-              <spirit:typeName>std_logic</spirit:typeName>
-              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
-              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
-            </spirit:wireTypeDef>
-          </spirit:wireTypeDefs>
-          <spirit:driver>
-            <spirit:defaultValue spirit:format="long">0</spirit:defaultValue>
-          </spirit:driver>
-        </spirit:wire>
-        <spirit:vendorExtensions>
-          <xilinx:portInfo>
-            <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_in2_p" xilinx:dependency="(((spirit:decode(id(&apos;MODELPARAM_VALUE.C_SECONDARY_SOURCE&apos;))=&quot;Differential_clock_capable_pin&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_SECONDARY_SOURCE&apos;))=&quot;Differential_non_clock_pin&quot;)) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_INCLK_SWITCHOVER&apos;))=1))">false</xilinx:isEnabled>
-            </xilinx:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
-      </spirit:port>
-      <spirit:port>
-        <spirit:name>clk_in2_n</spirit:name>
-        <spirit:wire>
-          <spirit:direction>in</spirit:direction>
-          <spirit:wireTypeDefs>
-            <spirit:wireTypeDef>
-              <spirit:typeName>std_logic</spirit:typeName>
-              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
-              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
-            </spirit:wireTypeDef>
-          </spirit:wireTypeDefs>
-          <spirit:driver>
-            <spirit:defaultValue spirit:format="long">0</spirit:defaultValue>
-          </spirit:driver>
-        </spirit:wire>
-        <spirit:vendorExtensions>
-          <xilinx:portInfo>
-            <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_in2_n" xilinx:dependency="(((spirit:decode(id(&apos;MODELPARAM_VALUE.C_SECONDARY_SOURCE&apos;))=&quot;Differential_clock_capable_pin&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_SECONDARY_SOURCE&apos;))=&quot;Differential_non_clock_pin&quot;)) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_INCLK_SWITCHOVER&apos;))=1))">false</xilinx:isEnabled>
-            </xilinx:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
-      </spirit:port>
-      <spirit:port>
-        <spirit:name>clk_in_sel</spirit:name>
-        <spirit:wire>
-          <spirit:direction>in</spirit:direction>
-          <spirit:wireTypeDefs>
-            <spirit:wireTypeDef>
-              <spirit:typeName>std_logic</spirit:typeName>
-              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
-              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
-            </spirit:wireTypeDef>
-          </spirit:wireTypeDefs>
-          <spirit:driver>
-            <spirit:defaultValue spirit:format="long">0</spirit:defaultValue>
-          </spirit:driver>
-        </spirit:wire>
-        <spirit:vendorExtensions>
-          <xilinx:portInfo>
-            <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_in_sel" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_INCLK_SWITCHOVER&apos;))=1)">false</xilinx:isEnabled>
-            </xilinx:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
-      </spirit:port>
-      <spirit:port>
-        <spirit:name>clkfb_in</spirit:name>
-        <spirit:wire>
-          <spirit:direction>in</spirit:direction>
-          <spirit:wireTypeDefs>
-            <spirit:wireTypeDef>
-              <spirit:typeName>std_logic</spirit:typeName>
-              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
-              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
-            </spirit:wireTypeDef>
-          </spirit:wireTypeDefs>
-          <spirit:driver>
-            <spirit:defaultValue spirit:format="long">0</spirit:defaultValue>
-          </spirit:driver>
-        </spirit:wire>
-        <spirit:vendorExtensions>
-          <xilinx:portInfo>
-            <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clkfb_in" xilinx:dependency="((((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))!=&quot;FDBK_AUTO&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;))) or ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;))) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))!=1) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))!=&quot;FDBK_AUTO_OFFCHIP&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKFB_IN_SIGNALING&apos;))!=&quot;DIFF&quot;)))">false</xilinx:isEnabled>
-            </xilinx:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
-      </spirit:port>
+        <spirit:parameter>
+          <spirit:name>CLK_DOMAIN</spirit:name>
+          <spirit:value spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT3.CLK_DOMAIN"/>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASSOCIATED_BUSIF</spirit:name>
+          <spirit:value spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT3.ASSOCIATED_BUSIF"/>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASSOCIATED_PORT</spirit:name>
+          <spirit:value spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT3.ASSOCIATED_PORT"/>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASSOCIATED_RESET</spirit:name>
+          <spirit:value spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT3.ASSOCIATED_RESET"/>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>INSERT_VIP</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT3.INSERT_VIP">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>simulation.rtl</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+      </spirit:parameters>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>clock_CLK_OUT4</spirit:name>
+      <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock" spirit:version="1.0"/>
+      <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock_rtl" spirit:version="1.0"/>
+      <spirit:master/>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>CLK_OUT4</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>clk_out4</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>FREQ_HZ</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT4.FREQ_HZ">100000000</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>FREQ_TOLERANCE_HZ</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT4.FREQ_TOLERANCE_HZ">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>PHASE</spirit:name>
+          <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT4.PHASE">0.0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>CLK_DOMAIN</spirit:name>
+          <spirit:value spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT4.CLK_DOMAIN"/>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASSOCIATED_BUSIF</spirit:name>
+          <spirit:value spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT4.ASSOCIATED_BUSIF"/>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASSOCIATED_PORT</spirit:name>
+          <spirit:value spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT4.ASSOCIATED_PORT"/>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASSOCIATED_RESET</spirit:name>
+          <spirit:value spirit:resolve="generated" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT4.ASSOCIATED_RESET"/>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>none</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>INSERT_VIP</spirit:name>
+          <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT4.INSERT_VIP">0</spirit:value>
+          <spirit:vendorExtensions>
+            <xilinx:parameterInfo>
+              <xilinx:parameterUsage>simulation.rtl</xilinx:parameterUsage>
+            </xilinx:parameterInfo>
+          </spirit:vendorExtensions>
+        </spirit:parameter>
+      </spirit:parameters>
+    </spirit:busInterface>
+  </spirit:busInterfaces>
+  <spirit:model>
+    <spirit:views>
+      <spirit:view>
+        <spirit:name>xilinx_anylanguagebehavioralsimulation</spirit:name>
+        <spirit:displayName>Simulation</spirit:displayName>
+        <spirit:envIdentifier>:vivado.xilinx.com:simulation</spirit:envIdentifier>
+        <spirit:modelName>clk_wiz_v6_0_14</spirit:modelName>
+        <spirit:fileSetRef>
+          <spirit:localName>xilinx_anylanguagebehavioralsimulation_view_fileset</spirit:localName>
+        </spirit:fileSetRef>
+        <spirit:parameters>
+          <spirit:parameter>
+            <spirit:name>GENtimestamp</spirit:name>
+            <spirit:value>Wed Feb 26 11:12:46 UTC 2025</spirit:value>
+          </spirit:parameter>
+          <spirit:parameter>
+            <spirit:name>outputProductCRC</spirit:name>
+            <spirit:value>9:19cc2464</spirit:value>
+          </spirit:parameter>
+        </spirit:parameters>
+      </spirit:view>
+      <spirit:view>
+        <spirit:name>xilinx_anylanguagesimulationwrapper</spirit:name>
+        <spirit:displayName>Simulation Wrapper</spirit:displayName>
+        <spirit:envIdentifier>:vivado.xilinx.com:simulation.wrapper</spirit:envIdentifier>
+        <spirit:modelName>clk_wiz_0</spirit:modelName>
+        <spirit:fileSetRef>
+          <spirit:localName>xilinx_anylanguagesimulationwrapper_view_fileset</spirit:localName>
+        </spirit:fileSetRef>
+        <spirit:parameters>
+          <spirit:parameter>
+            <spirit:name>GENtimestamp</spirit:name>
+            <spirit:value>Wed Feb 26 11:12:46 UTC 2025</spirit:value>
+          </spirit:parameter>
+          <spirit:parameter>
+            <spirit:name>outputProductCRC</spirit:name>
+            <spirit:value>9:19cc2464</spirit:value>
+          </spirit:parameter>
+        </spirit:parameters>
+      </spirit:view>
+      <spirit:view>
+        <spirit:name>xilinx_anylanguagesynthesis</spirit:name>
+        <spirit:displayName>Synthesis</spirit:displayName>
+        <spirit:envIdentifier>:vivado.xilinx.com:synthesis</spirit:envIdentifier>
+        <spirit:modelName>clk_wiz_v6_0_14</spirit:modelName>
+        <spirit:fileSetRef>
+          <spirit:localName>xilinx_anylanguagesynthesis_view_fileset</spirit:localName>
+        </spirit:fileSetRef>
+        <spirit:parameters>
+          <spirit:parameter>
+            <spirit:name>GENtimestamp</spirit:name>
+            <spirit:value>Wed Feb 26 11:12:46 UTC 2025</spirit:value>
+          </spirit:parameter>
+          <spirit:parameter>
+            <spirit:name>outputProductCRC</spirit:name>
+            <spirit:value>9:72f46ee5</spirit:value>
+          </spirit:parameter>
+        </spirit:parameters>
+      </spirit:view>
+      <spirit:view>
+        <spirit:name>xilinx_anylanguagesynthesiswrapper</spirit:name>
+        <spirit:displayName>Synthesis Wrapper</spirit:displayName>
+        <spirit:envIdentifier>:vivado.xilinx.com:synthesis.wrapper</spirit:envIdentifier>
+        <spirit:modelName>clk_wiz_0</spirit:modelName>
+        <spirit:fileSetRef>
+          <spirit:localName>xilinx_anylanguagesynthesiswrapper_view_fileset</spirit:localName>
+        </spirit:fileSetRef>
+        <spirit:parameters>
+          <spirit:parameter>
+            <spirit:name>GENtimestamp</spirit:name>
+            <spirit:value>Wed Feb 26 11:12:46 UTC 2025</spirit:value>
+          </spirit:parameter>
+          <spirit:parameter>
+            <spirit:name>outputProductCRC</spirit:name>
+            <spirit:value>9:72f46ee5</spirit:value>
+          </spirit:parameter>
+        </spirit:parameters>
+      </spirit:view>
+      <spirit:view>
+        <spirit:name>xilinx_elaborateports</spirit:name>
+        <spirit:displayName>Elaborate Ports</spirit:displayName>
+        <spirit:envIdentifier>:vivado.xilinx.com:elaborate.ports</spirit:envIdentifier>
+        <spirit:parameters>
+          <spirit:parameter>
+            <spirit:name>outputProductCRC</spirit:name>
+            <spirit:value>9:8ebd4ae1</spirit:value>
+          </spirit:parameter>
+        </spirit:parameters>
+      </spirit:view>
+      <spirit:view>
+        <spirit:name>xilinx_implementation</spirit:name>
+        <spirit:displayName>Implementation</spirit:displayName>
+        <spirit:envIdentifier>:vivado.xilinx.com:implementation</spirit:envIdentifier>
+        <spirit:fileSetRef>
+          <spirit:localName>xilinx_implementation_view_fileset</spirit:localName>
+        </spirit:fileSetRef>
+        <spirit:parameters>
+          <spirit:parameter>
+            <spirit:name>GENtimestamp</spirit:name>
+            <spirit:value>Wed Feb 26 11:12:46 UTC 2025</spirit:value>
+          </spirit:parameter>
+          <spirit:parameter>
+            <spirit:name>outputProductCRC</spirit:name>
+            <spirit:value>9:72f46ee5</spirit:value>
+          </spirit:parameter>
+        </spirit:parameters>
+      </spirit:view>
+      <spirit:view>
+        <spirit:name>xilinx_synthesisconstraints</spirit:name>
+        <spirit:displayName>Synthesis Constraints</spirit:displayName>
+        <spirit:envIdentifier>:vivado.xilinx.com:synthesis.constraints</spirit:envIdentifier>
+        <spirit:parameters>
+          <spirit:parameter>
+            <spirit:name>outputProductCRC</spirit:name>
+            <spirit:value>9:72f46ee5</spirit:value>
+          </spirit:parameter>
+        </spirit:parameters>
+      </spirit:view>
+      <spirit:view>
+        <spirit:name>xilinx_versioninformation</spirit:name>
+        <spirit:displayName>Version Information</spirit:displayName>
+        <spirit:envIdentifier>:vivado.xilinx.com:docs.versioninfo</spirit:envIdentifier>
+        <spirit:fileSetRef>
+          <spirit:localName>xilinx_versioninformation_view_fileset</spirit:localName>
+        </spirit:fileSetRef>
+        <spirit:parameters>
+          <spirit:parameter>
+            <spirit:name>GENtimestamp</spirit:name>
+            <spirit:value>Wed Feb 26 11:12:46 UTC 2025</spirit:value>
+          </spirit:parameter>
+          <spirit:parameter>
+            <spirit:name>outputProductCRC</spirit:name>
+            <spirit:value>9:72f46ee5</spirit:value>
+          </spirit:parameter>
+        </spirit:parameters>
+      </spirit:view>
+      <spirit:view>
+        <spirit:name>xilinx_vhdlinstantiationtemplate</spirit:name>
+        <spirit:displayName>VHDL Instantiation Template</spirit:displayName>
+        <spirit:envIdentifier>vhdlSource:vivado.xilinx.com:synthesis.template</spirit:envIdentifier>
+        <spirit:language>vhdl</spirit:language>
+        <spirit:modelName>clk_wiz_v6_0_14</spirit:modelName>
+        <spirit:fileSetRef>
+          <spirit:localName>xilinx_vhdlinstantiationtemplate_view_fileset</spirit:localName>
+        </spirit:fileSetRef>
+        <spirit:parameters>
+          <spirit:parameter>
+            <spirit:name>GENtimestamp</spirit:name>
+            <spirit:value>Wed Feb 26 11:12:34 UTC 2025</spirit:value>
+          </spirit:parameter>
+          <spirit:parameter>
+            <spirit:name>outputProductCRC</spirit:name>
+            <spirit:value>9:72f46ee5</spirit:value>
+          </spirit:parameter>
+        </spirit:parameters>
+      </spirit:view>
+    </spirit:views>
+    <spirit:ports>
       <spirit:port>
-        <spirit:name>clkfb_in_p</spirit:name>
+        <spirit:name>s_axi_aclk</spirit:name>
         <spirit:wire>
           <spirit:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
@@ -1799,13 +1657,13 @@
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clkfb_in_p" xilinx:dependency="((((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))!=&quot;FDBK_AUTO&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;))) or ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;))) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKFB_IN_SIGNALING&apos;))=&quot;DIFF&quot;)))">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_aclk" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>clkfb_in_n</spirit:name>
+        <spirit:name>s_axi_aresetn</spirit:name>
         <spirit:wire>
           <spirit:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
@@ -1822,17 +1680,17 @@
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clkfb_in_n" xilinx:dependency="((((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))!=&quot;FDBK_AUTO&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;))) or ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;))) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKFB_IN_SIGNALING&apos;))=&quot;DIFF&quot;)))">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_aresetn" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>daddr</spirit:name>
+        <spirit:name>s_axi_awaddr</spirit:name>
         <spirit:wire>
           <spirit:direction>in</spirit:direction>
           <spirit:vector>
-            <spirit:left spirit:format="long">6</spirit:left>
+            <spirit:left spirit:format="long" spirit:resolve="dependent" spirit:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_S_AXI_ADDR_WIDTH&apos;)) - 1)">10</spirit:left>
             <spirit:right spirit:format="long">0</spirit:right>
           </spirit:vector>
           <spirit:wireTypeDefs>
@@ -1849,13 +1707,13 @@
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.daddr" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_DYN_RECONFIG&apos;)) and (not spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;)))">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_awaddr" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>dclk</spirit:name>
+        <spirit:name>s_axi_awvalid</spirit:name>
         <spirit:wire>
           <spirit:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
@@ -1872,15 +1730,15 @@
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.dclk" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_DYN_RECONFIG&apos;)) and (not spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;)))">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_awvalid" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>den</spirit:name>
+        <spirit:name>s_axi_awready</spirit:name>
         <spirit:wire>
-          <spirit:direction>in</spirit:direction>
+          <spirit:direction>out</spirit:direction>
           <spirit:wireTypeDefs>
             <spirit:wireTypeDef>
               <spirit:typeName>std_logic</spirit:typeName>
@@ -1888,24 +1746,21 @@
               <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
             </spirit:wireTypeDef>
           </spirit:wireTypeDefs>
-          <spirit:driver>
-            <spirit:defaultValue spirit:format="long">0</spirit:defaultValue>
-          </spirit:driver>
         </spirit:wire>
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.den" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_DYN_RECONFIG&apos;)) and (not spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;)))">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_awready" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>din</spirit:name>
+        <spirit:name>s_axi_wdata</spirit:name>
         <spirit:wire>
           <spirit:direction>in</spirit:direction>
           <spirit:vector>
-            <spirit:left spirit:format="long">15</spirit:left>
+            <spirit:left spirit:format="long" spirit:resolve="dependent" spirit:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_S_AXI_DATA_WIDTH&apos;)) - 1)">31</spirit:left>
             <spirit:right spirit:format="long">0</spirit:right>
           </spirit:vector>
           <spirit:wireTypeDefs>
@@ -1917,67 +1772,27 @@
           </spirit:wireTypeDefs>
           <spirit:driver>
             <spirit:defaultValue spirit:format="long">0</spirit:defaultValue>
-          </spirit:driver>
-        </spirit:wire>
-        <spirit:vendorExtensions>
-          <xilinx:portInfo>
-            <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.din" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_DYN_RECONFIG&apos;)) and (not spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;)))">false</xilinx:isEnabled>
-            </xilinx:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
-      </spirit:port>
-      <spirit:port>
-        <spirit:name>dout</spirit:name>
-        <spirit:wire>
-          <spirit:direction>out</spirit:direction>
-          <spirit:vector>
-            <spirit:left spirit:format="long">15</spirit:left>
-            <spirit:right spirit:format="long">0</spirit:right>
-          </spirit:vector>
-          <spirit:wireTypeDefs>
-            <spirit:wireTypeDef>
-              <spirit:typeName>std_logic_vector</spirit:typeName>
-              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
-              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
-            </spirit:wireTypeDef>
-          </spirit:wireTypeDefs>
-        </spirit:wire>
-        <spirit:vendorExtensions>
-          <xilinx:portInfo>
-            <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.dout" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_DYN_RECONFIG&apos;)) and (not spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;)))">false</xilinx:isEnabled>
-            </xilinx:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
-      </spirit:port>
-      <spirit:port>
-        <spirit:name>drdy</spirit:name>
-        <spirit:wire>
-          <spirit:direction>out</spirit:direction>
-          <spirit:wireTypeDefs>
-            <spirit:wireTypeDef>
-              <spirit:typeName>std_logic</spirit:typeName>
-              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
-              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
-            </spirit:wireTypeDef>
-          </spirit:wireTypeDefs>
+          </spirit:driver>
         </spirit:wire>
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.drdy" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_DYN_RECONFIG&apos;)) and (not spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;)))">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_wdata" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>dwe</spirit:name>
+        <spirit:name>s_axi_wstrb</spirit:name>
         <spirit:wire>
           <spirit:direction>in</spirit:direction>
+          <spirit:vector>
+            <spirit:left spirit:format="long" spirit:resolve="dependent" spirit:dependency="((spirit:decode(id(&apos;MODELPARAM_VALUE.C_S_AXI_DATA_WIDTH&apos;)) div 8) - 1)">3</spirit:left>
+            <spirit:right spirit:format="long">0</spirit:right>
+          </spirit:vector>
           <spirit:wireTypeDefs>
             <spirit:wireTypeDef>
-              <spirit:typeName>std_logic</spirit:typeName>
+              <spirit:typeName>std_logic_vector</spirit:typeName>
               <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
               <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
             </spirit:wireTypeDef>
@@ -1989,13 +1804,13 @@
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.dwe" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_DYN_RECONFIG&apos;)) and (not spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;)))">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_wstrb" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>psclk</spirit:name>
+        <spirit:name>s_axi_wvalid</spirit:name>
         <spirit:wire>
           <spirit:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2012,15 +1827,15 @@
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.psclk" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_DYN_PHASE_SHIFT&apos;))=1)">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_wvalid" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>psen</spirit:name>
+        <spirit:name>s_axi_wready</spirit:name>
         <spirit:wire>
-          <spirit:direction>in</spirit:direction>
+          <spirit:direction>out</spirit:direction>
           <spirit:wireTypeDefs>
             <spirit:wireTypeDef>
               <spirit:typeName>std_logic</spirit:typeName>
@@ -2028,43 +1843,41 @@
               <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
             </spirit:wireTypeDef>
           </spirit:wireTypeDefs>
-          <spirit:driver>
-            <spirit:defaultValue spirit:format="long">0</spirit:defaultValue>
-          </spirit:driver>
         </spirit:wire>
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.psen" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_DYN_PHASE_SHIFT&apos;))=1)">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_wready" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>psincdec</spirit:name>
+        <spirit:name>s_axi_bresp</spirit:name>
         <spirit:wire>
-          <spirit:direction>in</spirit:direction>
+          <spirit:direction>out</spirit:direction>
+          <spirit:vector>
+            <spirit:left spirit:format="long">1</spirit:left>
+            <spirit:right spirit:format="long">0</spirit:right>
+          </spirit:vector>
           <spirit:wireTypeDefs>
             <spirit:wireTypeDef>
-              <spirit:typeName>std_logic</spirit:typeName>
+              <spirit:typeName>std_logic_vector</spirit:typeName>
               <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
               <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
             </spirit:wireTypeDef>
           </spirit:wireTypeDefs>
-          <spirit:driver>
-            <spirit:defaultValue spirit:format="long">0</spirit:defaultValue>
-          </spirit:driver>
         </spirit:wire>
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.psincdec" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_DYN_PHASE_SHIFT&apos;))=1)">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_bresp" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>psdone</spirit:name>
+        <spirit:name>s_axi_bvalid</spirit:name>
         <spirit:wire>
           <spirit:direction>out</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2078,15 +1891,15 @@
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.psdone" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_DYN_PHASE_SHIFT&apos;))=1)">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_bvalid" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>clk_out1</spirit:name>
+        <spirit:name>s_axi_bready</spirit:name>
         <spirit:wire>
-          <spirit:direction>out</spirit:direction>
+          <spirit:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
             <spirit:wireTypeDef>
               <spirit:typeName>std_logic</spirit:typeName>
@@ -2094,15 +1907,29 @@
               <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
             </spirit:wireTypeDef>
           </spirit:wireTypeDefs>
+          <spirit:driver>
+            <spirit:defaultValue spirit:format="long">0</spirit:defaultValue>
+          </spirit:driver>
         </spirit:wire>
+        <spirit:vendorExtensions>
+          <xilinx:portInfo>
+            <xilinx:enablement>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_bready" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
+            </xilinx:enablement>
+          </xilinx:portInfo>
+        </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>clk_out1_ce</spirit:name>
+        <spirit:name>s_axi_araddr</spirit:name>
         <spirit:wire>
           <spirit:direction>in</spirit:direction>
+          <spirit:vector>
+            <spirit:left spirit:format="long" spirit:resolve="dependent" spirit:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_S_AXI_ADDR_WIDTH&apos;)) - 1)">10</spirit:left>
+            <spirit:right spirit:format="long">0</spirit:right>
+          </spirit:vector>
           <spirit:wireTypeDefs>
             <spirit:wireTypeDef>
-              <spirit:typeName>std_logic</spirit:typeName>
+              <spirit:typeName>std_logic_vector</spirit:typeName>
               <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
               <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
             </spirit:wireTypeDef>
@@ -2114,13 +1941,13 @@
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out1_ce" xilinx:dependency="((spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT1_DRIVES&apos;))=&quot;BUFGCE&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT1_DRIVES&apos;))=&quot;BUFHCE&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT1_DRIVES&apos;))=&quot;BUFR&quot;)) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_SAFE_CLOCK_STARTUP&apos;))=0)">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_araddr" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>clk_out1_clr</spirit:name>
+        <spirit:name>s_axi_arvalid</spirit:name>
         <spirit:wire>
           <spirit:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2137,13 +1964,13 @@
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out1_clr" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT1_DRIVES&apos;))=&quot;BUFR&quot;)">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_arvalid" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>clk_out2</spirit:name>
+        <spirit:name>s_axi_arready</spirit:name>
         <spirit:wire>
           <spirit:direction>out</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2157,59 +1984,61 @@
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out2" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT2_USED&apos;))=1)">true</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_arready" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>clk_out2_ce</spirit:name>
+        <spirit:name>s_axi_rdata</spirit:name>
         <spirit:wire>
-          <spirit:direction>in</spirit:direction>
+          <spirit:direction>out</spirit:direction>
+          <spirit:vector>
+            <spirit:left spirit:format="long" spirit:resolve="dependent" spirit:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_S_AXI_DATA_WIDTH&apos;)) - 1)">31</spirit:left>
+            <spirit:right spirit:format="long">0</spirit:right>
+          </spirit:vector>
           <spirit:wireTypeDefs>
             <spirit:wireTypeDef>
-              <spirit:typeName>std_logic</spirit:typeName>
+              <spirit:typeName>std_logic_vector</spirit:typeName>
               <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
               <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
             </spirit:wireTypeDef>
           </spirit:wireTypeDefs>
-          <spirit:driver>
-            <spirit:defaultValue spirit:format="long">0</spirit:defaultValue>
-          </spirit:driver>
         </spirit:wire>
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out2_ce" xilinx:dependency="(((spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT2_DRIVES&apos;))=&quot;BUFGCE&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT2_DRIVES&apos;))=&quot;BUFHCE&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT2_DRIVES&apos;))=&quot;BUFR&quot;)) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT2_USED&apos;))=1)) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_SAFE_CLOCK_STARTUP&apos;))=0)">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_rdata" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>clk_out2_clr</spirit:name>
+        <spirit:name>s_axi_rresp</spirit:name>
         <spirit:wire>
-          <spirit:direction>in</spirit:direction>
+          <spirit:direction>out</spirit:direction>
+          <spirit:vector>
+            <spirit:left spirit:format="long">1</spirit:left>
+            <spirit:right spirit:format="long">0</spirit:right>
+          </spirit:vector>
           <spirit:wireTypeDefs>
             <spirit:wireTypeDef>
-              <spirit:typeName>std_logic</spirit:typeName>
+              <spirit:typeName>std_logic_vector</spirit:typeName>
               <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
               <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
             </spirit:wireTypeDef>
           </spirit:wireTypeDefs>
-          <spirit:driver>
-            <spirit:defaultValue spirit:format="long">0</spirit:defaultValue>
-          </spirit:driver>
         </spirit:wire>
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out2_clr" xilinx:dependency="((spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT2_DRIVES&apos;))=&quot;BUFR&quot;) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT2_USED&apos;))=1))">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_rresp" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>clk_out3</spirit:name>
+        <spirit:name>s_axi_rvalid</spirit:name>
         <spirit:wire>
           <spirit:direction>out</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2223,13 +2052,13 @@
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out3" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT3_USED&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_SPREAD_SPECTRUM&apos;))=0)">true</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_rvalid" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>clk_out3_ce</spirit:name>
+        <spirit:name>s_axi_rready</spirit:name>
         <spirit:wire>
           <spirit:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2246,13 +2075,13 @@
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out3_ce" xilinx:dependency="(((spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT3_DRIVES&apos;))=&quot;BUFGCE&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT3_DRIVES&apos;))=&quot;BUFHCE&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT3_DRIVES&apos;))=&quot;BUFR&quot;)) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT3_USED&apos;))=1)) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_SPREAD_SPECTRUM&apos;))=0) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_SAFE_CLOCK_STARTUP&apos;))=0)">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_rready" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;))">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>clk_out3_clr</spirit:name>
+        <spirit:name>clk_in1_p</spirit:name>
         <spirit:wire>
           <spirit:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2269,15 +2098,15 @@
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out3_clr" xilinx:dependency="((spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT3_DRIVES&apos;))=&quot;BUFR&quot;) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT3_USED&apos;))=1)) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_SPREAD_SPECTRUM&apos;))=0)">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_in1_p" xilinx:dependency="((spirit:decode(id(&apos;MODELPARAM_VALUE.C_PRIM_SOURCE&apos;))=&quot;Differential_clock_capable_pin&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_PRIM_SOURCE&apos;))=&quot;Differential_non_clock_pin&quot;))">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>clk_out4</spirit:name>
+        <spirit:name>clk_in1_n</spirit:name>
         <spirit:wire>
-          <spirit:direction>out</spirit:direction>
+          <spirit:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
             <spirit:wireTypeDef>
               <spirit:typeName>std_logic</spirit:typeName>
@@ -2285,17 +2114,20 @@
               <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
             </spirit:wireTypeDef>
           </spirit:wireTypeDefs>
+          <spirit:driver>
+            <spirit:defaultValue spirit:format="long">0</spirit:defaultValue>
+          </spirit:driver>
         </spirit:wire>
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out4" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT4_USED&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_SPREAD_SPECTRUM&apos;))=0)">true</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_in1_n" xilinx:dependency="((spirit:decode(id(&apos;MODELPARAM_VALUE.C_PRIM_SOURCE&apos;))=&quot;Differential_clock_capable_pin&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_PRIM_SOURCE&apos;))=&quot;Differential_non_clock_pin&quot;))">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>clk_out4_ce</spirit:name>
+        <spirit:name>clk_in2_p</spirit:name>
         <spirit:wire>
           <spirit:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2312,13 +2144,13 @@
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out4_ce" xilinx:dependency="(((spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT4_DRIVES&apos;))=&quot;BUFGCE&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT4_DRIVES&apos;))=&quot;BUFHCE&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT4_DRIVES&apos;))=&quot;BUFR&quot;)) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT4_USED&apos;))=1)) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_SPREAD_SPECTRUM&apos;))=0) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_SAFE_CLOCK_STARTUP&apos;))=0)">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_in2_p" xilinx:dependency="(((spirit:decode(id(&apos;MODELPARAM_VALUE.C_SECONDARY_SOURCE&apos;))=&quot;Differential_clock_capable_pin&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_SECONDARY_SOURCE&apos;))=&quot;Differential_non_clock_pin&quot;)) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_INCLK_SWITCHOVER&apos;))=1))">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>clk_out4_clr</spirit:name>
+        <spirit:name>clk_in2_n</spirit:name>
         <spirit:wire>
           <spirit:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2335,15 +2167,15 @@
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out4_clr" xilinx:dependency="((spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT4_DRIVES&apos;))=&quot;BUFR&quot;) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT4_USED&apos;))=1)) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_SPREAD_SPECTRUM&apos;))=0)">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_in2_n" xilinx:dependency="(((spirit:decode(id(&apos;MODELPARAM_VALUE.C_SECONDARY_SOURCE&apos;))=&quot;Differential_clock_capable_pin&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_SECONDARY_SOURCE&apos;))=&quot;Differential_non_clock_pin&quot;)) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_INCLK_SWITCHOVER&apos;))=1))">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>clk_out5</spirit:name>
+        <spirit:name>clkfb_in_p</spirit:name>
         <spirit:wire>
-          <spirit:direction>out</spirit:direction>
+          <spirit:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
             <spirit:wireTypeDef>
               <spirit:typeName>std_logic</spirit:typeName>
@@ -2351,17 +2183,20 @@
               <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
             </spirit:wireTypeDef>
           </spirit:wireTypeDefs>
+          <spirit:driver>
+            <spirit:defaultValue spirit:format="long">0</spirit:defaultValue>
+          </spirit:driver>
         </spirit:wire>
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out5" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT5_USED&apos;))=1)">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clkfb_in_p" xilinx:dependency="((((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))!=&quot;FDBK_AUTO&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;))) or ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;)) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_MMCM_COMPENSATION&apos;))!=&quot;INTERNAL&quot;))) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKFB_IN_SIGNALING&apos;))=&quot;DIFF&quot;) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_MMCM_COMPENSATION&apos;))!=&quot;INTERNAL&quot;))))">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>clk_out5_ce</spirit:name>
+        <spirit:name>clkfb_in_n</spirit:name>
         <spirit:wire>
           <spirit:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2378,15 +2213,15 @@
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out5_ce" xilinx:dependency="(((spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT5_DRIVES&apos;))=&quot;BUFGCE&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT5_DRIVES&apos;))=&quot;BUFHCE&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT5_DRIVES&apos;))=&quot;BUFR&quot;)) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT5_USED&apos;))=1)) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_SAFE_CLOCK_STARTUP&apos;))=0)">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clkfb_in_n" xilinx:dependency="((((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))!=&quot;FDBK_AUTO&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;))) or ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;)) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_MMCM_COMPENSATION&apos;))!=&quot;INTERNAL&quot;))) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKFB_IN_SIGNALING&apos;))=&quot;DIFF&quot;) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_MMCM_COMPENSATION&apos;))!=&quot;INTERNAL&quot;))))">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>clk_out5_clr</spirit:name>
+        <spirit:name>clkfb_out_p</spirit:name>
         <spirit:wire>
-          <spirit:direction>in</spirit:direction>
+          <spirit:direction>out</spirit:direction>
           <spirit:wireTypeDefs>
             <spirit:wireTypeDef>
               <spirit:typeName>std_logic</spirit:typeName>
@@ -2394,20 +2229,17 @@
               <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
             </spirit:wireTypeDef>
           </spirit:wireTypeDefs>
-          <spirit:driver>
-            <spirit:defaultValue spirit:format="long">0</spirit:defaultValue>
-          </spirit:driver>
         </spirit:wire>
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out5_clr" xilinx:dependency="((spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT5_DRIVES&apos;))=&quot;BUFR&quot;) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT5_USED&apos;))=1))">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clkfb_out_p" xilinx:dependency="((((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))!=&quot;FDBK_AUTO&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;))) or ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;)) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_MMCM_COMPENSATION&apos;))!=&quot;INTERNAL&quot;))) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKFB_IN_SIGNALING&apos;))=&quot;DIFF&quot;) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_MMCM_COMPENSATION&apos;))!=&quot;INTERNAL&quot;))))">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>clk_out6</spirit:name>
+        <spirit:name>clkfb_out_n</spirit:name>
         <spirit:wire>
           <spirit:direction>out</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2421,13 +2253,13 @@
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out6" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT6_USED&apos;))=1)">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clkfb_out_n" xilinx:dependency="((((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))!=&quot;FDBK_AUTO&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;))) or ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;)) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_MMCM_COMPENSATION&apos;))!=&quot;INTERNAL&quot;))) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKFB_IN_SIGNALING&apos;))=&quot;DIFF&quot;) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_MMCM_COMPENSATION&apos;))!=&quot;INTERNAL&quot;))))">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>clk_out6_ce</spirit:name>
+        <spirit:name>reset</spirit:name>
         <spirit:wire>
           <spirit:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2444,13 +2276,13 @@
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out6_ce" xilinx:dependency="(((spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT6_DRIVES&apos;))=&quot;BUFGCE&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT6_DRIVES&apos;))=&quot;BUFHCE&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT6_DRIVES&apos;))=&quot;BUFR&quot;)) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT6_USED&apos;))=1)) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_SAFE_CLOCK_STARTUP&apos;))=0)">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.reset" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_RESET&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_RESET_LOW&apos;))=0) and (not spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;)))">true</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>clk_out6_clr</spirit:name>
+        <spirit:name>resetn</spirit:name>
         <spirit:wire>
           <spirit:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2467,15 +2299,15 @@
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out6_clr" xilinx:dependency="((spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT6_DRIVES&apos;))=&quot;BUFR&quot;) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT6_USED&apos;))=1))">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.resetn" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_RESET&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_RESET_LOW&apos;))=1) and (not spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;)))">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>clk_out7</spirit:name>
+        <spirit:name>ref_clk</spirit:name>
         <spirit:wire>
-          <spirit:direction>out</spirit:direction>
+          <spirit:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
             <spirit:wireTypeDef>
               <spirit:typeName>std_logic</spirit:typeName>
@@ -2483,22 +2315,29 @@
               <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
             </spirit:wireTypeDef>
           </spirit:wireTypeDefs>
+          <spirit:driver>
+            <spirit:defaultValue spirit:format="long">0</spirit:defaultValue>
+          </spirit:driver>
         </spirit:wire>
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out7" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT7_USED&apos;))=1)">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.ref_clk" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_ENABLE_CLOCK_MONITOR&apos;))=1)">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>clk_out7_ce</spirit:name>
+        <spirit:name>clk_stop</spirit:name>
         <spirit:wire>
-          <spirit:direction>in</spirit:direction>
+          <spirit:direction>out</spirit:direction>
+          <spirit:vector>
+            <spirit:left spirit:format="long">3</spirit:left>
+            <spirit:right spirit:format="long">0</spirit:right>
+          </spirit:vector>
           <spirit:wireTypeDefs>
             <spirit:wireTypeDef>
-              <spirit:typeName>std_logic</spirit:typeName>
+              <spirit:typeName>std_logic_vector</spirit:typeName>
               <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
               <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
             </spirit:wireTypeDef>
@@ -2510,18 +2349,22 @@
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out7_ce" xilinx:dependency="(((spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT7_DRIVES&apos;))=&quot;BUFGCE&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT7_DRIVES&apos;))=&quot;BUFHCE&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT7_DRIVES&apos;))=&quot;BUFR&quot;)) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT7_USED&apos;))=1)) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_SAFE_CLOCK_STARTUP&apos;))=0)">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_stop" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_ENABLE_CLOCK_MONITOR&apos;))=1)">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>clk_out7_clr</spirit:name>
+        <spirit:name>clk_glitch</spirit:name>
         <spirit:wire>
-          <spirit:direction>in</spirit:direction>
+          <spirit:direction>out</spirit:direction>
+          <spirit:vector>
+            <spirit:left spirit:format="long">3</spirit:left>
+            <spirit:right spirit:format="long">0</spirit:right>
+          </spirit:vector>
           <spirit:wireTypeDefs>
             <spirit:wireTypeDef>
-              <spirit:typeName>std_logic</spirit:typeName>
+              <spirit:typeName>std_logic_vector</spirit:typeName>
               <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
               <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
             </spirit:wireTypeDef>
@@ -2533,13 +2376,13 @@
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out7_clr" xilinx:dependency="((spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT7_DRIVES&apos;))=&quot;BUFR&quot;) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKOUT7_USED&apos;))=1))">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_glitch" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_ENABLE_CLOCK_MONITOR&apos;))=1)">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>clkfb_out</spirit:name>
+        <spirit:name>interrupt</spirit:name>
         <spirit:wire>
           <spirit:direction>out</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2549,39 +2392,49 @@
               <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
             </spirit:wireTypeDef>
           </spirit:wireTypeDefs>
+          <spirit:driver>
+            <spirit:defaultValue spirit:format="long">0</spirit:defaultValue>
+          </spirit:driver>
         </spirit:wire>
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clkfb_out" xilinx:dependency="((((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))!=&quot;FDBK_AUTO&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;))) or ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;))) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))!=1) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))!=&quot;FDBK_AUTO_OFFCHIP&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKFB_IN_SIGNALING&apos;))!=&quot;DIFF&quot;)))">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.interrupt" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_ENABLE_CLOCK_MONITOR&apos;))=1)">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>clkfb_out_p</spirit:name>
+        <spirit:name>clk_oor</spirit:name>
         <spirit:wire>
           <spirit:direction>out</spirit:direction>
+          <spirit:vector>
+            <spirit:left spirit:format="long">3</spirit:left>
+            <spirit:right spirit:format="long">0</spirit:right>
+          </spirit:vector>
           <spirit:wireTypeDefs>
             <spirit:wireTypeDef>
-              <spirit:typeName>std_logic</spirit:typeName>
+              <spirit:typeName>std_logic_vector</spirit:typeName>
               <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
               <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
             </spirit:wireTypeDef>
           </spirit:wireTypeDefs>
+          <spirit:driver>
+            <spirit:defaultValue spirit:format="long">0</spirit:defaultValue>
+          </spirit:driver>
         </spirit:wire>
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clkfb_out_p" xilinx:dependency="((((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))!=&quot;FDBK_AUTO&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;))) or ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;))) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKFB_IN_SIGNALING&apos;))=&quot;DIFF&quot;)))">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_oor" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_ENABLE_CLOCK_MONITOR&apos;))=1)">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>clkfb_out_n</spirit:name>
+        <spirit:name>user_clk0</spirit:name>
         <spirit:wire>
-          <spirit:direction>out</spirit:direction>
+          <spirit:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
             <spirit:wireTypeDef>
               <spirit:typeName>std_logic</spirit:typeName>
@@ -2589,17 +2442,20 @@
               <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
             </spirit:wireTypeDef>
           </spirit:wireTypeDefs>
+          <spirit:driver>
+            <spirit:defaultValue spirit:format="long">0</spirit:defaultValue>
+          </spirit:driver>
         </spirit:wire>
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clkfb_out_n" xilinx:dependency="((((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))!=&quot;FDBK_AUTO&quot;) or (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;))) or ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;))) and ((spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_FEEDBACK_SOURCE&apos;))=&quot;FDBK_AUTO_OFFCHIP&quot;) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_CLKFB_IN_SIGNALING&apos;))=&quot;DIFF&quot;)))">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.user_clk0" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_ENABLE_CLOCK_MONITOR&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_ENABLE_USER_CLOCK0&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_Enable_PLL0&apos;))=0)">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>reset</spirit:name>
+        <spirit:name>user_clk1</spirit:name>
         <spirit:wire>
           <spirit:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2616,13 +2472,13 @@
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.reset" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_RESET&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_RESET_LOW&apos;))=0) and (not spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;)))">true</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.user_clk1" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_ENABLE_CLOCK_MONITOR&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_ENABLE_USER_CLOCK1&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_Enable_PLL1&apos;))=0)">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>resetn</spirit:name>
+        <spirit:name>user_clk2</spirit:name>
         <spirit:wire>
           <spirit:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2639,13 +2495,13 @@
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.resetn" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_RESET&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_RESET_LOW&apos;))=1) and (not spirit:decode(id(&apos;MODELPARAM_VALUE.C_INTERFACE_SELECTION&apos;)))">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.user_clk2" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_ENABLE_CLOCK_MONITOR&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_ENABLE_USER_CLOCK2&apos;))=1)">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>power_down</spirit:name>
+        <spirit:name>user_clk3</spirit:name>
         <spirit:wire>
           <spirit:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2662,13 +2518,26 @@
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.power_down" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_POWER_DOWN&apos;))=1)">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.user_clk3" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_ENABLE_CLOCK_MONITOR&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_ENABLE_USER_CLOCK3&apos;))=1)">false</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>input_clk_stopped</spirit:name>
+        <spirit:name>clk_in1</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>std_logic</spirit:typeName>
+              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
+              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>clk_out1</spirit:name>
         <spirit:wire>
           <spirit:direction>out</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2679,16 +2548,9 @@
             </spirit:wireTypeDef>
           </spirit:wireTypeDefs>
         </spirit:wire>
-        <spirit:vendorExtensions>
-          <xilinx:portInfo>
-            <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.input_clk_stopped" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_INCLK_STOPPED&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_PRIMITIVE&apos;))=&quot;MMCM&quot;)">false</xilinx:isEnabled>
-            </xilinx:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>clkfb_stopped</spirit:name>
+        <spirit:name>clk_out2</spirit:name>
         <spirit:wire>
           <spirit:direction>out</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2699,16 +2561,9 @@
             </spirit:wireTypeDef>
           </spirit:wireTypeDefs>
         </spirit:wire>
-        <spirit:vendorExtensions>
-          <xilinx:portInfo>
-            <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clkfb_stopped" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_CLKFB_STOPPED&apos;))=1) and (spirit:decode(id(&apos;MODELPARAM_VALUE.C_PRIMITIVE&apos;))=&quot;MMCM&quot;)">false</xilinx:isEnabled>
-            </xilinx:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>locked</spirit:name>
+        <spirit:name>clk_out3</spirit:name>
         <spirit:wire>
           <spirit:direction>out</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2719,16 +2574,9 @@
             </spirit:wireTypeDef>
           </spirit:wireTypeDefs>
         </spirit:wire>
-        <spirit:vendorExtensions>
-          <xilinx:portInfo>
-            <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.locked" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_USE_LOCKED&apos;))=1)">true</xilinx:isEnabled>
-            </xilinx:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>cddcdone</spirit:name>
+        <spirit:name>clk_out4</spirit:name>
         <spirit:wire>
           <spirit:direction>out</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2739,18 +2587,11 @@
             </spirit:wireTypeDef>
           </spirit:wireTypeDefs>
         </spirit:wire>
-        <spirit:vendorExtensions>
-          <xilinx:portInfo>
-            <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.cddcdone" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_HAS_CDDC&apos;))=1)">false</xilinx:isEnabled>
-            </xilinx:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
       </spirit:port>
       <spirit:port>
-        <spirit:name>cddcreq</spirit:name>
+        <spirit:name>locked</spirit:name>
         <spirit:wire>
-          <spirit:direction>in</spirit:direction>
+          <spirit:direction>out</spirit:direction>
           <spirit:wireTypeDefs>
             <spirit:wireTypeDef>
               <spirit:typeName>std_logic</spirit:typeName>
@@ -2758,17 +2599,7 @@
               <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
             </spirit:wireTypeDef>
           </spirit:wireTypeDefs>
-          <spirit:driver>
-            <spirit:defaultValue spirit:format="long">0</spirit:defaultValue>
-          </spirit:driver>
         </spirit:wire>
-        <spirit:vendorExtensions>
-          <xilinx:portInfo>
-            <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.cddcreq" xilinx:dependency="(spirit:decode(id(&apos;MODELPARAM_VALUE.C_HAS_CDDC&apos;))=1)">false</xilinx:isEnabled>
-            </xilinx:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
       </spirit:port>
     </spirit:ports>
     <spirit:modelParameters>
@@ -2776,6 +2607,62 @@
         <spirit:name>C_CLKOUT2_USED</spirit:name>
         <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT2_USED" spirit:order="194">1</spirit:value>
       </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="INTEGER">
+        <spirit:name>C_USER_CLK_FREQ0</spirit:name>
+        <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_USER_CLK_FREQ0" spirit:order="1194">100.0</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="string">
+        <spirit:name>C_AUTO_PRIMITIVE</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_AUTO_PRIMITIVE" spirit:order="1195">MMCM</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="INTEGER">
+        <spirit:name>C_USER_CLK_FREQ1</spirit:name>
+        <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_USER_CLK_FREQ1" spirit:order="1195">100.0</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="INTEGER">
+        <spirit:name>C_USER_CLK_FREQ2</spirit:name>
+        <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_USER_CLK_FREQ2" spirit:order="1196">100.0</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="INTEGER">
+        <spirit:name>C_USER_CLK_FREQ3</spirit:name>
+        <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_USER_CLK_FREQ3" spirit:order="1197">100.0</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="INTEGER">
+        <spirit:name>C_ENABLE_CLOCK_MONITOR</spirit:name>
+        <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_ENABLE_CLOCK_MONITOR" spirit:order="1200">0</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="INTEGER">
+        <spirit:name>C_ENABLE_USER_CLOCK0</spirit:name>
+        <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_ENABLE_USER_CLOCK0" spirit:order="1201">0</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="INTEGER">
+        <spirit:name>C_ENABLE_USER_CLOCK1</spirit:name>
+        <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_ENABLE_USER_CLOCK1" spirit:order="1202">0</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="INTEGER">
+        <spirit:name>C_ENABLE_USER_CLOCK2</spirit:name>
+        <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_ENABLE_USER_CLOCK2" spirit:order="1203">0</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="INTEGER">
+        <spirit:name>C_ENABLE_USER_CLOCK3</spirit:name>
+        <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_ENABLE_USER_CLOCK3" spirit:order="1204">0</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="INTEGER">
+        <spirit:name>C_Enable_PLL0</spirit:name>
+        <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_Enable_PLL0" spirit:order="1205">0</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="INTEGER">
+        <spirit:name>C_Enable_PLL1</spirit:name>
+        <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_Enable_PLL1" spirit:order="1206">0</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="INTEGER">
+        <spirit:name>C_REF_CLK_FREQ</spirit:name>
+        <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_REF_CLK_FREQ" spirit:order="1209">100.0</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="INTEGER">
+        <spirit:name>C_PRECISION</spirit:name>
+        <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PRECISION" spirit:order="1209">1</spirit:value>
+      </spirit:modelParameter>
       <spirit:modelParameter spirit:dataType="INTEGER">
         <spirit:name>C_CLKOUT3_USED</spirit:name>
         <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT3_USED" spirit:order="195">1</spirit:value>
@@ -2856,6 +2743,10 @@
         <spirit:name>C_USE_DYN_PHASE_SHIFT</spirit:name>
         <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_USE_DYN_PHASE_SHIFT" spirit:order="213">0</spirit:value>
       </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="INTEGER">
+        <spirit:name>C_OPTIMIZE_CLOCKING_STRUCTURE_EN</spirit:name>
+        <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_OPTIMIZE_CLOCKING_STRUCTURE_EN" spirit:order="214">0</spirit:value>
+      </spirit:modelParameter>
       <spirit:modelParameter spirit:dataType="INTEGER">
         <spirit:name>C_USE_INCLK_SWITCHOVER</spirit:name>
         <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_USE_INCLK_SWITCHOVER" spirit:order="214">0</spirit:value>
@@ -2908,6 +2799,10 @@
         <spirit:name>C_PRIM_SOURCE</spirit:name>
         <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PRIM_SOURCE" spirit:order="224">Single_ended_clock_capable_pin</spirit:value>
       </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_PHASESHIFT_MODE</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PHASESHIFT_MODE" spirit:order="2240">WAVEFORM</spirit:value>
+      </spirit:modelParameter>
       <spirit:modelParameter spirit:dataType="STRING">
         <spirit:name>C_SECONDARY_SOURCE</spirit:name>
         <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_SECONDARY_SOURCE" spirit:order="225">Single_ended_clock_capable_pin</spirit:value>
@@ -3003,19 +2898,19 @@
       </spirit:modelParameter>
       <spirit:modelParameter spirit:dataType="STRING">
         <spirit:name>C_OUTCLK_SUM_ROW1</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW1" spirit:order="247">CLK_OUT1___100.000______0.000______50.0______151.366____132.063</spirit:value>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW1" spirit:order="247">clk_out1__100.00000______0.000______50.0______151.366____132.063</spirit:value>
       </spirit:modelParameter>
       <spirit:modelParameter spirit:dataType="STRING">
         <spirit:name>C_OUTCLK_SUM_ROW2</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW2" spirit:order="248">CLK_OUT2___200.000______0.000______50.0______132.221____132.063</spirit:value>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW2" spirit:order="248">clk_out2__200.00000______0.000______50.0______132.221____132.063</spirit:value>
       </spirit:modelParameter>
       <spirit:modelParameter spirit:dataType="STRING">
         <spirit:name>C_OUTCLK_SUM_ROW3</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW3" spirit:order="249">CLK_OUT3____12.000______0.000______50.0______231.952____132.063</spirit:value>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW3" spirit:order="249">clk_out3__12.00000______0.000______50.0______231.952____132.063</spirit:value>
       </spirit:modelParameter>
       <spirit:modelParameter spirit:dataType="STRING">
         <spirit:name>C_OUTCLK_SUM_ROW4</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW4" spirit:order="250">CLK_OUT4____50.000______0.000______50.0______174.353____132.063</spirit:value>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW4" spirit:order="250">clk_out4__50.00000______0.000______50.0______174.353____132.063</spirit:value>
       </spirit:modelParameter>
       <spirit:modelParameter spirit:dataType="STRING">
         <spirit:name>C_OUTCLK_SUM_ROW5</spirit:name>
@@ -3115,19 +3010,19 @@
       </spirit:modelParameter>
       <spirit:modelParameter spirit:dataType="STRING">
         <spirit:name>C_CLKOUT1_OUT_FREQ</spirit:name>
-        <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT1_OUT_FREQ" spirit:order="275">100.000</spirit:value>
+        <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT1_OUT_FREQ" spirit:order="275">100.00000</spirit:value>
       </spirit:modelParameter>
       <spirit:modelParameter spirit:dataType="STRING">
         <spirit:name>C_CLKOUT2_OUT_FREQ</spirit:name>
-        <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT2_OUT_FREQ" spirit:order="276">200.000</spirit:value>
+        <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT2_OUT_FREQ" spirit:order="276">200.00000</spirit:value>
       </spirit:modelParameter>
       <spirit:modelParameter spirit:dataType="STRING">
         <spirit:name>C_CLKOUT3_OUT_FREQ</spirit:name>
-        <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT3_OUT_FREQ" spirit:order="277">12.000</spirit:value>
+        <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT3_OUT_FREQ" spirit:order="277">12.00000</spirit:value>
       </spirit:modelParameter>
       <spirit:modelParameter spirit:dataType="STRING">
         <spirit:name>C_CLKOUT4_OUT_FREQ</spirit:name>
-        <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT4_OUT_FREQ" spirit:order="278">50.000</spirit:value>
+        <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT4_OUT_FREQ" spirit:order="278">50.00000</spirit:value>
       </spirit:modelParameter>
       <spirit:modelParameter spirit:dataType="STRING">
         <spirit:name>C_CLKOUT5_OUT_FREQ</spirit:name>
@@ -3279,33 +3174,33 @@
       </spirit:modelParameter>
       <spirit:modelParameter spirit:dataType="STRING">
         <spirit:name>C_MMCM_STARTUP_WAIT</spirit:name>
-        <spirit:value spirit:format="bool" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_STARTUP_WAIT" spirit:order="307">FALSE</spirit:value>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_STARTUP_WAIT" spirit:order="307">FALSE</spirit:value>
       </spirit:modelParameter>
       <spirit:modelParameter spirit:dataType="STRING">
         <spirit:name>C_MMCM_CLKOUT0_DIVIDE_F</spirit:name>
         <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT0_DIVIDE_F" spirit:order="308">6.000</spirit:value>
       </spirit:modelParameter>
-      <spirit:modelParameter spirit:dataType="INTEGER">
+      <spirit:modelParameter spirit:dataType="STRING">
         <spirit:name>C_MMCM_CLKOUT1_DIVIDE</spirit:name>
         <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT1_DIVIDE" spirit:order="309">3</spirit:value>
       </spirit:modelParameter>
-      <spirit:modelParameter spirit:dataType="INTEGER">
+      <spirit:modelParameter spirit:dataType="STRING">
         <spirit:name>C_MMCM_CLKOUT2_DIVIDE</spirit:name>
         <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT2_DIVIDE" spirit:order="310">50</spirit:value>
       </spirit:modelParameter>
-      <spirit:modelParameter spirit:dataType="INTEGER">
+      <spirit:modelParameter spirit:dataType="STRING">
         <spirit:name>C_MMCM_CLKOUT3_DIVIDE</spirit:name>
         <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT3_DIVIDE" spirit:order="311">12</spirit:value>
       </spirit:modelParameter>
-      <spirit:modelParameter spirit:dataType="INTEGER">
+      <spirit:modelParameter spirit:dataType="STRING">
         <spirit:name>C_MMCM_CLKOUT4_DIVIDE</spirit:name>
         <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT4_DIVIDE" spirit:order="312">1</spirit:value>
       </spirit:modelParameter>
-      <spirit:modelParameter spirit:dataType="INTEGER">
+      <spirit:modelParameter spirit:dataType="STRING">
         <spirit:name>C_MMCM_CLKOUT5_DIVIDE</spirit:name>
         <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT5_DIVIDE" spirit:order="313">1</spirit:value>
       </spirit:modelParameter>
-      <spirit:modelParameter spirit:dataType="INTEGER">
+      <spirit:modelParameter spirit:dataType="STRING">
         <spirit:name>C_MMCM_CLKOUT6_DIVIDE</spirit:name>
         <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT6_DIVIDE" spirit:order="314">1</spirit:value>
       </spirit:modelParameter>
@@ -3715,9 +3610,274 @@
         <spirit:displayName>C S Axi Data Width</spirit:displayName>
         <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_S_AXI_DATA_WIDTH" spirit:order="216" spirit:minimum="32" spirit:maximum="128" spirit:rangeType="long">32</spirit:value>
       </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_POWER_REG</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_POWER_REG" spirit:order="409">0000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKOUT0_1</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT0_1" spirit:order="410">0000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKOUT0_2</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT0_2" spirit:order="411">0000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKOUT1_1</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT1_1" spirit:order="410">0000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKOUT1_2</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT1_2" spirit:order="410">0000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKOUT2_1</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT2_1" spirit:order="411">0000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKOUT2_2</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT2_2" spirit:order="411">0000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKOUT3_1</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT3_1" spirit:order="410">0000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKOUT3_2</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT3_2" spirit:order="411">0000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKOUT4_1</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT4_1" spirit:order="410">0000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKOUT4_2</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT4_2" spirit:order="411">0000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKOUT5_1</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT5_1" spirit:order="410">0000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKOUT5_2</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT5_2" spirit:order="411">0000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKOUT6_1</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT6_1" spirit:order="410">0000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKOUT6_2</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT6_2" spirit:order="411">0000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKFBOUT_1</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKFBOUT_1" spirit:order="410">0000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKFBOUT_2</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKFBOUT_2" spirit:order="411">0000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_DIVCLK</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_DIVCLK" spirit:order="411">0000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_LOCK_1</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_LOCK_1" spirit:order="411">0000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_LOCK_2</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_LOCK_2" spirit:order="411">0000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_LOCK_3</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_LOCK_3" spirit:order="411">0000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_FILTER_1</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_FILTER_1" spirit:order="411">0000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_FILTER_2</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_FILTER_2" spirit:order="411">0000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_DIVIDE1_AUTO</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_DIVIDE1_AUTO" spirit:order="411">1</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_DIVIDE2_AUTO</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_DIVIDE2_AUTO" spirit:order="411">0.5</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_DIVIDE3_AUTO</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_DIVIDE3_AUTO" spirit:order="411">8.333333333333334</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_DIVIDE4_AUTO</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_DIVIDE4_AUTO" spirit:order="411">2.0</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_DIVIDE5_AUTO</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_DIVIDE5_AUTO" spirit:order="411">0.16666666666666666</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_DIVIDE6_AUTO</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_DIVIDE6_AUTO" spirit:order="411">0.16666666666666666</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_DIVIDE7_AUTO</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_DIVIDE7_AUTO" spirit:order="411">0.16666666666666666</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_PLLBUFGCEDIV</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PLLBUFGCEDIV" spirit:order="411">false</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_MMCMBUFGCEDIV</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCMBUFGCEDIV" spirit:order="411">false</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_PLLBUFGCEDIV1</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PLLBUFGCEDIV1" spirit:order="411">false</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_PLLBUFGCEDIV2</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PLLBUFGCEDIV2" spirit:order="411">false</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_PLLBUFGCEDIV3</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PLLBUFGCEDIV3" spirit:order="411">false</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_PLLBUFGCEDIV4</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PLLBUFGCEDIV4" spirit:order="411">false</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_MMCMBUFGCEDIV1</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCMBUFGCEDIV1" spirit:order="411">false</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_MMCMBUFGCEDIV2</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCMBUFGCEDIV2" spirit:order="411">false</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_MMCMBUFGCEDIV3</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCMBUFGCEDIV3" spirit:order="411">false</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_MMCMBUFGCEDIV4</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCMBUFGCEDIV4" spirit:order="411">false</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_MMCMBUFGCEDIV5</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCMBUFGCEDIV5" spirit:order="411">false</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_MMCMBUFGCEDIV6</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCMBUFGCEDIV6" spirit:order="411">false</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_MMCMBUFGCEDIV7</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCMBUFGCEDIV7" spirit:order="411">false</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKOUT1_MATCHED_ROUTING</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT1_MATCHED_ROUTING" spirit:order="411">false</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKOUT2_MATCHED_ROUTING</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT2_MATCHED_ROUTING" spirit:order="411">false</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKOUT3_MATCHED_ROUTING</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT3_MATCHED_ROUTING" spirit:order="411">false</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKOUT4_MATCHED_ROUTING</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT4_MATCHED_ROUTING" spirit:order="411">false</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKOUT5_MATCHED_ROUTING</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT5_MATCHED_ROUTING" spirit:order="411">false</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKOUT6_MATCHED_ROUTING</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT6_MATCHED_ROUTING" spirit:order="411">false</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKOUT7_MATCHED_ROUTING</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT7_MATCHED_ROUTING" spirit:order="411">false</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKOUT0_ACTUAL_FREQ</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT0_ACTUAL_FREQ" spirit:order="711">100.00000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKOUT1_ACTUAL_FREQ</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT1_ACTUAL_FREQ" spirit:order="712">200.00000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKOUT2_ACTUAL_FREQ</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT2_ACTUAL_FREQ" spirit:order="713">12.00000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKOUT3_ACTUAL_FREQ</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT3_ACTUAL_FREQ" spirit:order="714">50.00000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKOUT4_ACTUAL_FREQ</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT4_ACTUAL_FREQ" spirit:order="715">100.000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKOUT5_ACTUAL_FREQ</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT5_ACTUAL_FREQ" spirit:order="716">100.000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKOUT6_ACTUAL_FREQ</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT6_ACTUAL_FREQ" spirit:order="717">100.000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="REAL">
+        <spirit:name>C_M_MAX</spirit:name>
+        <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_M_MAX" spirit:order="403">64.000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="REAL">
+        <spirit:name>C_M_MIN</spirit:name>
+        <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_M_MIN" spirit:order="403">2.000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="REAL">
+        <spirit:name>C_D_MAX</spirit:name>
+        <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_D_MAX" spirit:order="403">80.000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="REAL">
+        <spirit:name>C_D_MIN</spirit:name>
+        <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_D_MIN" spirit:order="403">1.000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="REAL">
+        <spirit:name>C_O_MAX</spirit:name>
+        <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_O_MAX" spirit:order="403">128.000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="REAL">
+        <spirit:name>C_O_MIN</spirit:name>
+        <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_O_MIN" spirit:order="403">1.000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="REAL">
+        <spirit:name>C_VCO_MIN</spirit:name>
+        <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_VCO_MIN" spirit:order="403">600.000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="REAL">
+        <spirit:name>C_VCO_MAX</spirit:name>
+        <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_VCO_MAX" spirit:order="403">1200.000</spirit:value>
+      </spirit:modelParameter>
     </spirit:modelParameters>
   </spirit:model>
   <spirit:choices>
+    <spirit:choice>
+      <spirit:name>choice_list_1d3de01d</spirit:name>
+      <spirit:enumeration>WAVEFORM</spirit:enumeration>
+      <spirit:enumeration>LATENCY</spirit:enumeration>
+    </spirit:choice>
     <spirit:choice>
       <spirit:name>choice_list_876bfc32</spirit:name>
       <spirit:enumeration>UI</spirit:enumeration>
@@ -3769,6 +3929,12 @@
       <spirit:enumeration spirit:text="User-Controlled On-Chip">FDBK_ONCHIP</spirit:enumeration>
       <spirit:enumeration spirit:text="User-Controlled Off-Chip">FDBK_OFFCHIP</spirit:enumeration>
     </spirit:choice>
+    <spirit:choice>
+      <spirit:name>choice_pairs_340369e0</spirit:name>
+      <spirit:enumeration spirit:text="Custom">Custom</spirit:enumeration>
+      <spirit:enumeration spirit:text="sys clock">sys_clock</spirit:enumeration>
+      <spirit:enumeration spirit:text="sys diff clock">sys_diff_clock</spirit:enumeration>
+    </spirit:choice>
     <spirit:choice>
       <spirit:name>choice_pairs_3c2d3ec7</spirit:name>
       <spirit:enumeration spirit:text="Single-ended">SINGLE</spirit:enumeration>
@@ -3789,6 +3955,12 @@
       <spirit:enumeration spirit:text="BUFHCE">BUFHCE</spirit:enumeration>
       <spirit:enumeration spirit:text="No buffer">No_buffer</spirit:enumeration>
     </spirit:choice>
+    <spirit:choice>
+      <spirit:name>choice_pairs_77d3d587</spirit:name>
+      <spirit:enumeration spirit:text="MMCM">MMCM</spirit:enumeration>
+      <spirit:enumeration spirit:text="PLL">PLL</spirit:enumeration>
+      <spirit:enumeration spirit:text="BUFGCE DIV">BUFGCE_DIV</spirit:enumeration>
+    </spirit:choice>
     <spirit:choice>
       <spirit:name>choice_pairs_8b28f1f7</spirit:name>
       <spirit:enumeration spirit:text="AXI4Lite">Enable_AXI</spirit:enumeration>
@@ -3835,10 +4007,59 @@
   </spirit:choices>
   <spirit:fileSets>
     <spirit:fileSet>
-      <spirit:name>xilinx_vhdlinstantiationtemplate_view_fileset</spirit:name>
+      <spirit:name>xilinx_anylanguagebehavioralsimulation_view_fileset</spirit:name>
       <spirit:file>
-        <spirit:name>clk_wiz_0.vho</spirit:name>
-        <spirit:userFileType>vhdlTemplate</spirit:userFileType>
+        <spirit:name>mmcm_pll_drp_func_7s_mmcm.vh</spirit:name>
+        <spirit:fileType>verilogSource</spirit:fileType>
+        <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType>
+        <spirit:isIncludeFile>true</spirit:isIncludeFile>
+        <spirit:logicalName>clk_wiz_v6_0_14</spirit:logicalName>
+      </spirit:file>
+      <spirit:file>
+        <spirit:name>mmcm_pll_drp_func_7s_pll.vh</spirit:name>
+        <spirit:fileType>verilogSource</spirit:fileType>
+        <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType>
+        <spirit:isIncludeFile>true</spirit:isIncludeFile>
+        <spirit:logicalName>clk_wiz_v6_0_14</spirit:logicalName>
+      </spirit:file>
+      <spirit:file>
+        <spirit:name>mmcm_pll_drp_func_us_mmcm.vh</spirit:name>
+        <spirit:fileType>verilogSource</spirit:fileType>
+        <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType>
+        <spirit:isIncludeFile>true</spirit:isIncludeFile>
+        <spirit:logicalName>clk_wiz_v6_0_14</spirit:logicalName>
+      </spirit:file>
+      <spirit:file>
+        <spirit:name>mmcm_pll_drp_func_us_pll.vh</spirit:name>
+        <spirit:fileType>verilogSource</spirit:fileType>
+        <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType>
+        <spirit:isIncludeFile>true</spirit:isIncludeFile>
+        <spirit:logicalName>clk_wiz_v6_0_14</spirit:logicalName>
+      </spirit:file>
+      <spirit:file>
+        <spirit:name>mmcm_pll_drp_func_us_plus_pll.vh</spirit:name>
+        <spirit:fileType>verilogSource</spirit:fileType>
+        <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType>
+        <spirit:isIncludeFile>true</spirit:isIncludeFile>
+        <spirit:logicalName>clk_wiz_v6_0_14</spirit:logicalName>
+      </spirit:file>
+      <spirit:file>
+        <spirit:name>mmcm_pll_drp_func_us_plus_mmcm.vh</spirit:name>
+        <spirit:fileType>verilogSource</spirit:fileType>
+        <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType>
+        <spirit:isIncludeFile>true</spirit:isIncludeFile>
+        <spirit:logicalName>clk_wiz_v6_0_14</spirit:logicalName>
+      </spirit:file>
+      <spirit:file>
+        <spirit:name>clk_wiz_0_clk_wiz.v</spirit:name>
+        <spirit:fileType>verilogSource</spirit:fileType>
+      </spirit:file>
+    </spirit:fileSet>
+    <spirit:fileSet>
+      <spirit:name>xilinx_anylanguagesimulationwrapper_view_fileset</spirit:name>
+      <spirit:file>
+        <spirit:name>clk_wiz_0.v</spirit:name>
+        <spirit:fileType>verilogSource</spirit:fileType>
       </spirit:file>
     </spirit:fileSet>
     <spirit:fileSet>
@@ -3859,26 +4080,48 @@
         <spirit:userFileType>USED_IN_synthesis</spirit:userFileType>
       </spirit:file>
       <spirit:file>
-        <spirit:name>clk_wiz_0_clk_wiz.v</spirit:name>
+        <spirit:name>mmcm_pll_drp_func_7s_mmcm.vh</spirit:name>
         <spirit:fileType>verilogSource</spirit:fileType>
+        <spirit:isIncludeFile>true</spirit:isIncludeFile>
+        <spirit:logicalName>clk_wiz_v6_0_14</spirit:logicalName>
       </spirit:file>
-    </spirit:fileSet>
-    <spirit:fileSet>
-      <spirit:name>xilinx_anylanguagesynthesiswrapper_view_fileset</spirit:name>
       <spirit:file>
-        <spirit:name>clk_wiz_0.v</spirit:name>
+        <spirit:name>mmcm_pll_drp_func_7s_pll.vh</spirit:name>
         <spirit:fileType>verilogSource</spirit:fileType>
+        <spirit:isIncludeFile>true</spirit:isIncludeFile>
+        <spirit:logicalName>clk_wiz_v6_0_14</spirit:logicalName>
+      </spirit:file>
+      <spirit:file>
+        <spirit:name>mmcm_pll_drp_func_us_mmcm.vh</spirit:name>
+        <spirit:fileType>verilogSource</spirit:fileType>
+        <spirit:isIncludeFile>true</spirit:isIncludeFile>
+        <spirit:logicalName>clk_wiz_v6_0_14</spirit:logicalName>
+      </spirit:file>
+      <spirit:file>
+        <spirit:name>mmcm_pll_drp_func_us_pll.vh</spirit:name>
+        <spirit:fileType>verilogSource</spirit:fileType>
+        <spirit:isIncludeFile>true</spirit:isIncludeFile>
+        <spirit:logicalName>clk_wiz_v6_0_14</spirit:logicalName>
+      </spirit:file>
+      <spirit:file>
+        <spirit:name>mmcm_pll_drp_func_us_plus_pll.vh</spirit:name>
+        <spirit:fileType>verilogSource</spirit:fileType>
+        <spirit:isIncludeFile>true</spirit:isIncludeFile>
+        <spirit:logicalName>clk_wiz_v6_0_14</spirit:logicalName>
+      </spirit:file>
+      <spirit:file>
+        <spirit:name>mmcm_pll_drp_func_us_plus_mmcm.vh</spirit:name>
+        <spirit:fileType>verilogSource</spirit:fileType>
+        <spirit:isIncludeFile>true</spirit:isIncludeFile>
+        <spirit:logicalName>clk_wiz_v6_0_14</spirit:logicalName>
       </spirit:file>
-    </spirit:fileSet>
-    <spirit:fileSet>
-      <spirit:name>xilinx_anylanguagebehavioralsimulation_view_fileset</spirit:name>
       <spirit:file>
         <spirit:name>clk_wiz_0_clk_wiz.v</spirit:name>
         <spirit:fileType>verilogSource</spirit:fileType>
       </spirit:file>
     </spirit:fileSet>
     <spirit:fileSet>
-      <spirit:name>xilinx_anylanguagesimulationwrapper_view_fileset</spirit:name>
+      <spirit:name>xilinx_anylanguagesynthesiswrapper_view_fileset</spirit:name>
       <spirit:file>
         <spirit:name>clk_wiz_0.v</spirit:name>
         <spirit:fileType>verilogSource</spirit:fileType>
@@ -3897,44 +4140,15 @@
     <spirit:fileSet>
       <spirit:name>xilinx_versioninformation_view_fileset</spirit:name>
       <spirit:file>
-        <spirit:name>doc/clk_wiz_v5_2_changelog.txt</spirit:name>
+        <spirit:name>doc/clk_wiz_v6_0_changelog.txt</spirit:name>
         <spirit:userFileType>text</spirit:userFileType>
       </spirit:file>
     </spirit:fileSet>
     <spirit:fileSet>
-      <spirit:name>xilinx_externalfiles_view_fileset</spirit:name>
-      <spirit:file>
-        <spirit:name>clk_wiz_0.dcp</spirit:name>
-        <spirit:userFileType>dcp</spirit:userFileType>
-        <spirit:userFileType>USED_IN_implementation</spirit:userFileType>
-        <spirit:userFileType>USED_IN_synthesis</spirit:userFileType>
-        <spirit:logicalName>xil_defaultlib</spirit:logicalName>
-      </spirit:file>
-      <spirit:file>
-        <spirit:name>clk_wiz_0_stub.v</spirit:name>
-        <spirit:fileType>verilogSource</spirit:fileType>
-        <spirit:userFileType>USED_IN_synth_blackbox_stub</spirit:userFileType>
-        <spirit:logicalName>xil_defaultlib</spirit:logicalName>
-      </spirit:file>
-      <spirit:file>
-        <spirit:name>clk_wiz_0_stub.vhdl</spirit:name>
-        <spirit:fileType>vhdlSource</spirit:fileType>
-        <spirit:userFileType>USED_IN_synth_blackbox_stub</spirit:userFileType>
-        <spirit:logicalName>xil_defaultlib</spirit:logicalName>
-      </spirit:file>
-      <spirit:file>
-        <spirit:name>clk_wiz_0_sim_netlist.v</spirit:name>
-        <spirit:fileType>verilogSource</spirit:fileType>
-        <spirit:userFileType>USED_IN_simulation</spirit:userFileType>
-        <spirit:userFileType>USED_IN_single_language</spirit:userFileType>
-        <spirit:logicalName>xil_defaultlib</spirit:logicalName>
-      </spirit:file>
+      <spirit:name>xilinx_vhdlinstantiationtemplate_view_fileset</spirit:name>
       <spirit:file>
-        <spirit:name>clk_wiz_0_sim_netlist.vhdl</spirit:name>
-        <spirit:fileType>vhdlSource</spirit:fileType>
-        <spirit:userFileType>USED_IN_simulation</spirit:userFileType>
-        <spirit:userFileType>USED_IN_single_language</spirit:userFileType>
-        <spirit:logicalName>xil_defaultlib</spirit:logicalName>
+        <spirit:name>clk_wiz_0.vho</spirit:name>
+        <spirit:userFileType>vhdlTemplate</spirit:userFileType>
       </spirit:file>
     </spirit:fileSet>
   </spirit:fileSets>
@@ -3944,6 +4158,76 @@
       <spirit:name>Component_Name</spirit:name>
       <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.Component_Name" spirit:order="1">clk_wiz_0</spirit:value>
     </spirit:parameter>
+    <spirit:parameter>
+      <spirit:name>USER_CLK_FREQ0</spirit:name>
+      <spirit:displayName>User Frequency(MHz)</spirit:displayName>
+      <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.USER_CLK_FREQ0" spirit:order="15200" spirit:minimum="1" spirit:maximum="300">100.0</spirit:value>
+    </spirit:parameter>
+    <spirit:parameter>
+      <spirit:name>USER_CLK_FREQ1</spirit:name>
+      <spirit:displayName>User Frequency(MHz)</spirit:displayName>
+      <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.USER_CLK_FREQ1" spirit:order="15200" spirit:minimum="1" spirit:maximum="300">100.0</spirit:value>
+    </spirit:parameter>
+    <spirit:parameter>
+      <spirit:name>USER_CLK_FREQ2</spirit:name>
+      <spirit:displayName>User Frequency(MHz)</spirit:displayName>
+      <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.USER_CLK_FREQ2" spirit:order="15200" spirit:minimum="1" spirit:maximum="300">100.0</spirit:value>
+    </spirit:parameter>
+    <spirit:parameter>
+      <spirit:name>USER_CLK_FREQ3</spirit:name>
+      <spirit:displayName>User Frequency(MHz)</spirit:displayName>
+      <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.USER_CLK_FREQ3" spirit:order="15200" spirit:minimum="1" spirit:maximum="300">100.0</spirit:value>
+    </spirit:parameter>
+    <spirit:parameter>
+      <spirit:name>ENABLE_CLOCK_MONITOR</spirit:name>
+      <spirit:displayName>Enable Clock Monitoring</spirit:displayName>
+      <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.ENABLE_CLOCK_MONITOR" spirit:order="10.1">false</spirit:value>
+    </spirit:parameter>
+    <spirit:parameter>
+      <spirit:name>OPTIMIZE_CLOCKING_STRUCTURE_EN</spirit:name>
+      <spirit:displayName>Optimize Clocking Structure</spirit:displayName>
+      <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.OPTIMIZE_CLOCKING_STRUCTURE_EN" spirit:order="10.1">false</spirit:value>
+    </spirit:parameter>
+    <spirit:parameter>
+      <spirit:name>ENABLE_USER_CLOCK0</spirit:name>
+      <spirit:displayName>User Clock</spirit:displayName>
+      <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.ENABLE_USER_CLOCK0" spirit:order="1090">false</spirit:value>
+    </spirit:parameter>
+    <spirit:parameter>
+      <spirit:name>ENABLE_USER_CLOCK1</spirit:name>
+      <spirit:displayName>User Clock</spirit:displayName>
+      <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.ENABLE_USER_CLOCK1" spirit:order="1090">false</spirit:value>
+    </spirit:parameter>
+    <spirit:parameter>
+      <spirit:name>ENABLE_USER_CLOCK2</spirit:name>
+      <spirit:displayName>User Clock</spirit:displayName>
+      <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.ENABLE_USER_CLOCK2" spirit:order="1090">false</spirit:value>
+    </spirit:parameter>
+    <spirit:parameter>
+      <spirit:name>ENABLE_USER_CLOCK3</spirit:name>
+      <spirit:displayName>User Clock</spirit:displayName>
+      <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.ENABLE_USER_CLOCK3" spirit:order="1090">false</spirit:value>
+    </spirit:parameter>
+    <spirit:parameter>
+      <spirit:name>Enable_PLL0</spirit:name>
+      <spirit:displayName>User Clock</spirit:displayName>
+      <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.Enable_PLL0" spirit:order="1090">false</spirit:value>
+    </spirit:parameter>
+    <spirit:parameter>
+      <spirit:name>Enable_PLL1</spirit:name>
+      <spirit:displayName>User Clock</spirit:displayName>
+      <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.Enable_PLL1" spirit:order="1090">false</spirit:value>
+    </spirit:parameter>
+    <spirit:parameter>
+      <spirit:name>REF_CLK_FREQ</spirit:name>
+      <spirit:displayName>Reference Frequency(MHz)</spirit:displayName>
+      <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.REF_CLK_FREQ" spirit:order="15300" spirit:minimum="1" spirit:maximum="300">100.0</spirit:value>
+    </spirit:parameter>
+    <spirit:parameter>
+      <spirit:name>PRECISION</spirit:name>
+      <spirit:displayName>Tolerance(MHz)</spirit:displayName>
+      <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.PRECISION" spirit:order="15400" spirit:minimum="1" spirit:maximum="100">1</spirit:value>
+    </spirit:parameter>
     <spirit:parameter>
       <spirit:name>PRIMITIVE</spirit:name>
       <spirit:displayName>Primitive</spirit:displayName>
@@ -3999,6 +4283,10 @@
       <spirit:name>IN_FREQ_UNITS</spirit:name>
       <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.IN_FREQ_UNITS" spirit:choiceRef="choice_pairs_8eea9b32" spirit:order="15" spirit:configGroups="0 NoDisplay">Units_MHz</spirit:value>
     </spirit:parameter>
+    <spirit:parameter>
+      <spirit:name>PHASESHIFT_MODE</spirit:name>
+      <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.PHASESHIFT_MODE" spirit:choiceRef="choice_list_1d3de01d" spirit:order="116" spirit:configGroups="0 NoDisplay">WAVEFORM</spirit:value>
+    </spirit:parameter>
     <spirit:parameter>
       <spirit:name>IN_JITTER_UNITS</spirit:name>
       <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.IN_JITTER_UNITS" spirit:choiceRef="choice_pairs_c5ef7212" spirit:order="16" spirit:configGroups="0 NoDisplay">Units_UI</spirit:value>
@@ -4283,6 +4571,34 @@
       <spirit:name>USE_MIN_O_JITTER</spirit:name>
       <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.USE_MIN_O_JITTER" spirit:order="84" spirit:configGroups="0 NoDisplay">false</spirit:value>
     </spirit:parameter>
+    <spirit:parameter>
+      <spirit:name>CLKOUT1_MATCHED_ROUTING</spirit:name>
+      <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT1_MATCHED_ROUTING" spirit:order="984" spirit:configGroups="0 NoDisplay">false</spirit:value>
+    </spirit:parameter>
+    <spirit:parameter>
+      <spirit:name>CLKOUT2_MATCHED_ROUTING</spirit:name>
+      <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT2_MATCHED_ROUTING" spirit:order="985" spirit:configGroups="0 NoDisplay">false</spirit:value>
+    </spirit:parameter>
+    <spirit:parameter>
+      <spirit:name>CLKOUT3_MATCHED_ROUTING</spirit:name>
+      <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT3_MATCHED_ROUTING" spirit:order="986" spirit:configGroups="0 NoDisplay">false</spirit:value>
+    </spirit:parameter>
+    <spirit:parameter>
+      <spirit:name>CLKOUT4_MATCHED_ROUTING</spirit:name>
+      <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT4_MATCHED_ROUTING" spirit:order="987" spirit:configGroups="0 NoDisplay">false</spirit:value>
+    </spirit:parameter>
+    <spirit:parameter>
+      <spirit:name>CLKOUT5_MATCHED_ROUTING</spirit:name>
+      <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT5_MATCHED_ROUTING" spirit:order="988" spirit:configGroups="0 NoDisplay">false</spirit:value>
+    </spirit:parameter>
+    <spirit:parameter>
+      <spirit:name>CLKOUT6_MATCHED_ROUTING</spirit:name>
+      <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT6_MATCHED_ROUTING" spirit:order="989" spirit:configGroups="0 NoDisplay">false</spirit:value>
+    </spirit:parameter>
+    <spirit:parameter>
+      <spirit:name>CLKOUT7_MATCHED_ROUTING</spirit:name>
+      <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT7_MATCHED_ROUTING" spirit:order="990" spirit:configGroups="0 NoDisplay">false</spirit:value>
+    </spirit:parameter>
     <spirit:parameter>
       <spirit:name>PRIM_SOURCE</spirit:name>
       <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.PRIM_SOURCE" spirit:choiceRef="choice_pairs_11d71346" spirit:order="14.1" spirit:configGroups="0 NoDisplay">Single_ended_clock_capable_pin</spirit:value>
@@ -4445,7 +4761,7 @@
     </spirit:parameter>
     <spirit:parameter>
       <spirit:name>MMCM_DIVCLK_DIVIDE</spirit:name>
-      <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_DIVCLK_DIVIDE" spirit:order="124" spirit:configGroups="0 NoDisplay" spirit:minimum="1" spirit:maximum="106" spirit:rangeType="long">1</spirit:value>
+      <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_DIVCLK_DIVIDE" spirit:order="124" spirit:configGroups="0 NoDisplay">1</spirit:value>
     </spirit:parameter>
     <spirit:parameter>
       <spirit:name>MMCM_BANDWIDTH</spirit:name>
@@ -4513,7 +4829,7 @@
     </spirit:parameter>
     <spirit:parameter>
       <spirit:name>MMCM_CLKOUT1_DIVIDE</spirit:name>
-      <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT1_DIVIDE" spirit:order="141" spirit:configGroups="0 NoDisplay" spirit:minimum="1" spirit:maximum="128" spirit:rangeType="long">3</spirit:value>
+      <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT1_DIVIDE" spirit:order="141" spirit:configGroups="0 NoDisplay">3</spirit:value>
     </spirit:parameter>
     <spirit:parameter>
       <spirit:name>MMCM_CLKOUT1_DUTY_CYCLE</spirit:name>
@@ -4529,7 +4845,7 @@
     </spirit:parameter>
     <spirit:parameter>
       <spirit:name>MMCM_CLKOUT2_DIVIDE</spirit:name>
-      <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT2_DIVIDE" spirit:order="145" spirit:configGroups="0 NoDisplay" spirit:minimum="1" spirit:maximum="128" spirit:rangeType="long">50</spirit:value>
+      <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT2_DIVIDE" spirit:order="145" spirit:configGroups="0 NoDisplay">50</spirit:value>
     </spirit:parameter>
     <spirit:parameter>
       <spirit:name>MMCM_CLKOUT2_DUTY_CYCLE</spirit:name>
@@ -4545,7 +4861,7 @@
     </spirit:parameter>
     <spirit:parameter>
       <spirit:name>MMCM_CLKOUT3_DIVIDE</spirit:name>
-      <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT3_DIVIDE" spirit:order="149" spirit:configGroups="0 NoDisplay" spirit:minimum="1" spirit:maximum="128" spirit:rangeType="long">12</spirit:value>
+      <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT3_DIVIDE" spirit:order="149" spirit:configGroups="0 NoDisplay">12</spirit:value>
     </spirit:parameter>
     <spirit:parameter>
       <spirit:name>MMCM_CLKOUT3_DUTY_CYCLE</spirit:name>
@@ -4561,7 +4877,7 @@
     </spirit:parameter>
     <spirit:parameter>
       <spirit:name>MMCM_CLKOUT4_DIVIDE</spirit:name>
-      <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT4_DIVIDE" spirit:order="153" spirit:configGroups="0 NoDisplay" spirit:minimum="1" spirit:maximum="128" spirit:rangeType="long">1</spirit:value>
+      <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT4_DIVIDE" spirit:order="153" spirit:configGroups="0 NoDisplay">1</spirit:value>
     </spirit:parameter>
     <spirit:parameter>
       <spirit:name>MMCM_CLKOUT4_DUTY_CYCLE</spirit:name>
@@ -4577,7 +4893,7 @@
     </spirit:parameter>
     <spirit:parameter>
       <spirit:name>MMCM_CLKOUT5_DIVIDE</spirit:name>
-      <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT5_DIVIDE" spirit:order="157" spirit:configGroups="0 NoDisplay" spirit:minimum="1" spirit:maximum="128" spirit:rangeType="long">1</spirit:value>
+      <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT5_DIVIDE" spirit:order="157" spirit:configGroups="0 NoDisplay">1</spirit:value>
     </spirit:parameter>
     <spirit:parameter>
       <spirit:name>MMCM_CLKOUT5_DUTY_CYCLE</spirit:name>
@@ -4593,7 +4909,7 @@
     </spirit:parameter>
     <spirit:parameter>
       <spirit:name>MMCM_CLKOUT6_DIVIDE</spirit:name>
-      <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT6_DIVIDE" spirit:order="161" spirit:configGroups="0 NoDisplay" spirit:minimum="1" spirit:maximum="128" spirit:rangeType="long">1</spirit:value>
+      <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT6_DIVIDE" spirit:order="161" spirit:configGroups="0 NoDisplay">1</spirit:value>
     </spirit:parameter>
     <spirit:parameter>
       <spirit:name>MMCM_CLKOUT6_DUTY_CYCLE</spirit:name>
@@ -4767,11 +5083,11 @@
     </spirit:parameter>
     <spirit:parameter>
       <spirit:name>CLK_IN1_BOARD_INTERFACE</spirit:name>
-      <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.CLK_IN1_BOARD_INTERFACE" spirit:choiceRef="choice_pairs_0920eb1b" spirit:order="13.8">Custom</spirit:value>
+      <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.CLK_IN1_BOARD_INTERFACE" spirit:choiceRef="choice_pairs_340369e0" spirit:order="13.8">Custom</spirit:value>
     </spirit:parameter>
     <spirit:parameter>
       <spirit:name>CLK_IN2_BOARD_INTERFACE</spirit:name>
-      <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.CLK_IN2_BOARD_INTERFACE" spirit:choiceRef="choice_pairs_0920eb1b" spirit:order="13.9">Custom</spirit:value>
+      <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.CLK_IN2_BOARD_INTERFACE" spirit:choiceRef="choice_pairs_340369e0" spirit:order="13.9">Custom</spirit:value>
     </spirit:parameter>
     <spirit:parameter>
       <spirit:name>DIFF_CLK_IN1_BOARD_INTERFACE</spirit:name>
@@ -4781,6 +5097,10 @@
       <spirit:name>DIFF_CLK_IN2_BOARD_INTERFACE</spirit:name>
       <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.DIFF_CLK_IN2_BOARD_INTERFACE" spirit:choiceRef="choice_pairs_0920eb1b" spirit:order="13.2">Custom</spirit:value>
     </spirit:parameter>
+    <spirit:parameter>
+      <spirit:name>AUTO_PRIMITIVE</spirit:name>
+      <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.AUTO_PRIMITIVE" spirit:choiceRef="choice_pairs_77d3d587" spirit:order="13212">MMCM</spirit:value>
+    </spirit:parameter>
     <spirit:parameter>
       <spirit:name>RESET_BOARD_INTERFACE</spirit:name>
       <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.RESET_BOARD_INTERFACE" spirit:choiceRef="choice_list_ac75ef1e" spirit:order="21.4">Custom</spirit:value>
@@ -4877,42 +5197,66 @@
     </spirit:parameter>
     <spirit:parameter>
       <spirit:name>INPUT_MODE</spirit:name>
-      <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.INPUT_MODE" spirit:choiceRef="choice_pairs_f669c2f5" spirit:order="14.4">frequency</spirit:value>
+      <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.INPUT_MODE" spirit:choiceRef="choice_pairs_f669c2f5" spirit:order="7.8">frequency</spirit:value>
     </spirit:parameter>
     <spirit:parameter>
       <spirit:name>INTERFACE_SELECTION</spirit:name>
       <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.INTERFACE_SELECTION" spirit:choiceRef="choice_pairs_8b28f1f7" spirit:order="11.1">Enable_AXI</spirit:value>
     </spirit:parameter>
+    <spirit:parameter>
+      <spirit:name>AXI_DRP</spirit:name>
+      <spirit:displayName>Write DRP registers</spirit:displayName>
+      <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.AXI_DRP" spirit:order="11.12">false</spirit:value>
+    </spirit:parameter>
     <spirit:parameter>
       <spirit:name>PHASE_DUTY_CONFIG</spirit:name>
       <spirit:displayName>Phase Duty Cycle Config</spirit:displayName>
       <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.PHASE_DUTY_CONFIG" spirit:order="11.2">false</spirit:value>
-      <spirit:vendorExtensions>
-        <xilinx:parameterInfo>
-          <xilinx:enablement>
-            <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PARAM_ENABLEMENT.PHASE_DUTY_CONFIG">false</xilinx:isEnabled>
-          </xilinx:enablement>
-        </xilinx:parameterInfo>
-      </spirit:vendorExtensions>
     </spirit:parameter>
   </spirit:parameters>
   <spirit:vendorExtensions>
     <xilinx:coreExtensions>
       <xilinx:displayName>Clocking Wizard</xilinx:displayName>
-      <xilinx:coreRevision>0</xilinx:coreRevision>
+      <xilinx:xpmLibraries>
+        <xilinx:xpmLibrary>XPM_CDC</xilinx:xpmLibrary>
+      </xilinx:xpmLibraries>
+      <xilinx:coreRevision>14</xilinx:coreRevision>
       <xilinx:configElementInfos>
+        <xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.S_AXI_LITE.ADDR_WIDTH" xilinx:valueSource="auto"/>
+        <xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.S_AXI_LITE.ARUSER_WIDTH" xilinx:valueSource="constant"/>
+        <xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.S_AXI_LITE.AWUSER_WIDTH" xilinx:valueSource="constant"/>
+        <xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.S_AXI_LITE.BUSER_WIDTH" xilinx:valueSource="constant"/>
+        <xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.S_AXI_LITE.DATA_WIDTH" xilinx:valueSource="auto"/>
+        <xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.S_AXI_LITE.HAS_BRESP" xilinx:valueSource="auto"/>
+        <xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.S_AXI_LITE.HAS_BURST" xilinx:valueSource="constant"/>
+        <xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.S_AXI_LITE.HAS_CACHE" xilinx:valueSource="constant"/>
+        <xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.S_AXI_LITE.HAS_LOCK" xilinx:valueSource="constant"/>
+        <xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.S_AXI_LITE.HAS_PROT" xilinx:valueSource="constant"/>
+        <xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.S_AXI_LITE.HAS_QOS" xilinx:valueSource="constant"/>
+        <xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.S_AXI_LITE.HAS_REGION" xilinx:valueSource="constant"/>
+        <xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.S_AXI_LITE.HAS_RRESP" xilinx:valueSource="auto"/>
+        <xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.S_AXI_LITE.HAS_WSTRB" xilinx:valueSource="auto"/>
+        <xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.S_AXI_LITE.ID_WIDTH" xilinx:valueSource="constant"/>
+        <xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.S_AXI_LITE.PROTOCOL" xilinx:valueSource="constant"/>
+        <xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.S_AXI_LITE.RUSER_WIDTH" xilinx:valueSource="constant"/>
+        <xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.S_AXI_LITE.WUSER_WIDTH" xilinx:valueSource="constant"/>
         <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT1_JITTER" xilinx:valueSource="user"/>
         <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT1_PHASE_ERROR" xilinx:valueSource="user"/>
         <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT2_JITTER" xilinx:valueSource="user"/>
         <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT2_PHASE_ERROR" xilinx:valueSource="user"/>
+        <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT2_REQUESTED_OUT_FREQ" xilinx:valueSource="user"/>
         <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT2_USED" xilinx:valueSource="user"/>
         <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT3_JITTER" xilinx:valueSource="user"/>
         <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT3_PHASE_ERROR" xilinx:valueSource="user"/>
+        <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT3_REQUESTED_OUT_FREQ" xilinx:valueSource="user"/>
         <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT3_USED" xilinx:valueSource="user"/>
         <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT4_JITTER" xilinx:valueSource="user"/>
         <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT4_PHASE_ERROR" xilinx:valueSource="user"/>
+        <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT4_REQUESTED_OUT_FREQ" xilinx:valueSource="user"/>
         <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT4_USED" xilinx:valueSource="user"/>
         <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.MMCM_CLKFBOUT_MULT_F" xilinx:valueSource="user"/>
+        <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.MMCM_CLKIN1_PERIOD" xilinx:valueSource="user"/>
+        <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.MMCM_CLKIN2_PERIOD" xilinx:valueSource="user"/>
         <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.MMCM_CLKOUT0_DIVIDE_F" xilinx:valueSource="user"/>
         <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.MMCM_CLKOUT1_DIVIDE" xilinx:valueSource="user"/>
         <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.MMCM_CLKOUT2_DIVIDE" xilinx:valueSource="user"/>
@@ -4922,12 +5266,12 @@
       </xilinx:configElementInfos>
     </xilinx:coreExtensions>
     <xilinx:packagingInfo>
-      <xilinx:xilinxVersion>2015.3</xilinx:xilinxVersion>
-      <xilinx:checksum xilinx:scope="busInterfaces" xilinx:value="69bff2c8"/>
-      <xilinx:checksum xilinx:scope="fileGroups" xilinx:value="3a523104"/>
-      <xilinx:checksum xilinx:scope="ports" xilinx:value="a5d35bf6"/>
-      <xilinx:checksum xilinx:scope="hdlParameters" xilinx:value="18e8d175"/>
-      <xilinx:checksum xilinx:scope="parameters" xilinx:value="09870f83"/>
+      <xilinx:xilinxVersion>2024.1</xilinx:xilinxVersion>
+      <xilinx:checksum xilinx:scope="busInterfaces" xilinx:value="52494094"/>
+      <xilinx:checksum xilinx:scope="fileGroups" xilinx:value="f72112df"/>
+      <xilinx:checksum xilinx:scope="ports" xilinx:value="4f3d3737"/>
+      <xilinx:checksum xilinx:scope="hdlParameters" xilinx:value="c11c59cd"/>
+      <xilinx:checksum xilinx:scope="parameters" xilinx:value="63dcade9"/>
     </xilinx:packagingInfo>
   </spirit:vendorExtensions>
 </spirit:component>
diff --git a/src/ip/clk_wiz_0/clk_wiz_0_clk_wiz.v b/src/ip/clk_wiz_0/clk_wiz_0_clk_wiz.v
index e47643a..eb66c80 100644
--- a/src/ip/clk_wiz_0/clk_wiz_0_clk_wiz.v
+++ b/src/ip/clk_wiz_0/clk_wiz_0_clk_wiz.v
@@ -1,23 +1,22 @@
+
 // file: clk_wiz_0.v
-// 
-// (c) Copyright 2008 - 2013 Xilinx, Inc. All rights reserved.
-// 
+// (c) Copyright 2017-2018, 2023 Advanced Micro Devices, Inc. All rights reserved.
+//
 // This file contains confidential and proprietary information
-// of Xilinx, Inc. and is protected under U.S. and
-// international copyright and other intellectual property
-// laws.
-// 
+// of AMD and is protected under U.S. and international copyright
+// and other intellectual property laws.
+//
 // DISCLAIMER
 // This disclaimer is not a license and does not grant any
 // rights to the materials distributed herewith. Except as
 // otherwise provided in a valid license issued to you by
-// Xilinx, and to the maximum extent permitted by applicable
+// AMD, and to the maximum extent permitted by applicable
 // law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
-// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
+// WITH ALL FAULTS, AND AMD HEREBY DISCLAIMS ALL WARRANTIES
 // AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
 // BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
 // INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
-// (2) Xilinx shall not be liable (whether in contract or tort,
+// (2) AMD shall not be liable (whether in contract or tort,
 // including negligence, or under any other theory of
 // liability) for any loss or damage of any kind or nature
 // related to, arising under or in connection with these
@@ -26,11 +25,11 @@
 // (including loss of data, profits, goodwill, or any type of
 // loss or damage suffered as a result of any action brought
 // by a third party) even if such damage or loss was
-// reasonably foreseeable or Xilinx had been advised of the
+// reasonably foreseeable or AMD had been advised of the
 // possibility of the same.
-// 
+//
 // CRITICAL APPLICATIONS
-// Xilinx products are not designed or intended to be fail-
+// AMD products are not designed or intended to be fail-
 // safe, or for use in any application requiring fail-safe
 // performance, such as life-support or safety devices or
 // systems, Class III medical devices, nuclear facilities,
@@ -39,13 +38,12 @@
 // injury, or severe property or environmental damage
 // (individually and collectively, "Critical
 // Applications"). Customer assumes the sole risk and
-// liability of any use of Xilinx products in Critical
+// liability of any use of AMD products in Critical
 // Applications, subject only to applicable laws and
 // regulations governing limitations on product liability.
-// 
+//
 // THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
 // PART OF THIS FILE AT ALL TIMES.
-// 
 //----------------------------------------------------------------------------
 // User entered comments
 //----------------------------------------------------------------------------
@@ -55,10 +53,10 @@
 //  Output     Output      Phase    Duty Cycle   Pk-to-Pk     Phase
 //   Clock     Freq (MHz)  (degrees)    (%)     Jitter (ps)  Error (ps)
 //----------------------------------------------------------------------------
-// CLK_OUT1___100.000______0.000______50.0______151.366____132.063
-// CLK_OUT2___200.000______0.000______50.0______132.221____132.063
-// CLK_OUT3____12.000______0.000______50.0______231.952____132.063
-// CLK_OUT4____50.000______0.000______50.0______174.353____132.063
+// clk_out1__100.00000______0.000______50.0______151.366____132.063
+// clk_out2__200.00000______0.000______50.0______132.221____132.063
+// clk_out3__12.00000______0.000______50.0______231.952____132.063
+// clk_out4__50.00000______0.000______50.0______174.353____132.063
 //
 //----------------------------------------------------------------------------
 // Input Clock   Freq (MHz)    Input Jitter (UI)
@@ -68,8 +66,8 @@
 `timescale 1ps/1ps
 
 module clk_wiz_0_clk_wiz 
+
  (// Clock in ports
-  input         clk_in1,
   // Clock out ports
   output        clk_out1,
   output        clk_out2,
@@ -77,23 +75,35 @@ module clk_wiz_0_clk_wiz
   output        clk_out4,
   // Status and control signals
   input         reset,
-  output        locked
+  output        locked,
+  input         clk_in1
  );
-
   // Input buffering
   //------------------------------------
+wire clk_in1_clk_wiz_0;
+wire clk_in2_clk_wiz_0;
   IBUF clkin1_ibufg
    (.O (clk_in1_clk_wiz_0),
     .I (clk_in1));
 
 
 
+
   // Clocking PRIMITIVE
   //------------------------------------
 
   // Instantiation of the MMCM PRIMITIVE
   //    * Unused inputs are tied off
   //    * Unused outputs are labeled unused
+
+  wire        clk_out1_clk_wiz_0;
+  wire        clk_out2_clk_wiz_0;
+  wire        clk_out3_clk_wiz_0;
+  wire        clk_out4_clk_wiz_0;
+  wire        clk_out5_clk_wiz_0;
+  wire        clk_out6_clk_wiz_0;
+  wire        clk_out7_clk_wiz_0;
+
   wire [15:0] do_unused;
   wire        drdy_unused;
   wire        psdone_unused;
@@ -179,12 +189,12 @@ module clk_wiz_0_clk_wiz
     .CLKFBSTOPPED        (clkfbstopped_unused),
     .PWRDWN              (1'b0),
     .RST                 (reset_high));
-
   assign reset_high = reset; 
 
   assign locked = locked_int;
-
-  // Output buffering
+// Clock Monitor clock assigning
+//--------------------------------------
+ // Output buffering
   //-----------------------------------
 
   BUFG clkf_buf
@@ -193,6 +203,9 @@ module clk_wiz_0_clk_wiz
 
 
 
+
+
+
   BUFG clkout1_buf
    (.O   (clk_out1),
     .I   (clk_out1_clk_wiz_0));
diff --git a/src/ip/clk_wiz_0/clk_wiz_0_ooc.xdc b/src/ip/clk_wiz_0/clk_wiz_0_ooc.xdc
index 41c79d7..773dcfa 100644
--- a/src/ip/clk_wiz_0/clk_wiz_0_ooc.xdc
+++ b/src/ip/clk_wiz_0/clk_wiz_0_ooc.xdc
@@ -1,23 +1,22 @@
+
 # file: clk_wiz_0_ooc.xdc
-# 
-# (c) Copyright 2008 - 2013 Xilinx, Inc. All rights reserved.
-# 
+# (c) Copyright 2017-2018, 2023 Advanced Micro Devices, Inc. All rights reserved.
+#
 # This file contains confidential and proprietary information
-# of Xilinx, Inc. and is protected under U.S. and
-# international copyright and other intellectual property
-# laws.
-# 
+# of AMD and is protected under U.S. and international copyright
+# and other intellectual property laws.
+#
 # DISCLAIMER
 # This disclaimer is not a license and does not grant any
 # rights to the materials distributed herewith. Except as
 # otherwise provided in a valid license issued to you by
-# Xilinx, and to the maximum extent permitted by applicable
+# AMD, and to the maximum extent permitted by applicable
 # law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
-# WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
+# WITH ALL FAULTS, AND AMD HEREBY DISCLAIMS ALL WARRANTIES
 # AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
 # BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
 # INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
-# (2) Xilinx shall not be liable (whether in contract or tort,
+# (2) AMD shall not be liable (whether in contract or tort,
 # including negligence, or under any other theory of
 # liability) for any loss or damage of any kind or nature
 # related to, arising under or in connection with these
@@ -26,11 +25,11 @@
 # (including loss of data, profits, goodwill, or any type of
 # loss or damage suffered as a result of any action brought
 # by a third party) even if such damage or loss was
-# reasonably foreseeable or Xilinx had been advised of the
+# reasonably foreseeable or AMD had been advised of the
 # possibility of the same.
-# 
+#
 # CRITICAL APPLICATIONS
-# Xilinx products are not designed or intended to be fail-
+# AMD products are not designed or intended to be fail-
 # safe, or for use in any application requiring fail-safe
 # performance, such as life-support or safety devices or
 # systems, Class III medical devices, nuclear facilities,
@@ -39,13 +38,12 @@
 # injury, or severe property or environmental damage
 # (individually and collectively, "Critical
 # Applications"). Customer assumes the sole risk and
-# liability of any use of Xilinx products in Critical
+# liability of any use of AMD products in Critical
 # Applications, subject only to applicable laws and
 # regulations governing limitations on product liability.
-# 
+#
 # THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
 # PART OF THIS FILE AT ALL TIMES.
-# 
 
 #################
 #DEFAULT CLOCK CONSTRAINTS
@@ -54,3 +52,4 @@
 # Clock Period Constraints                                 #
 ############################################################
 #create_clock -period 10.0 [get_ports clk_in1]
+
diff --git a/src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.v b/src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.v
deleted file mode 100644
index e0a8184..0000000
--- a/src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.v
+++ /dev/null
@@ -1,278 +0,0 @@
-// Copyright 1986-2015 Xilinx, Inc. All Rights Reserved.
-// --------------------------------------------------------------------------------
-// Tool Version: Vivado v.2015.3 (win64) Build 1368829 Mon Sep 28 20:06:43 MDT 2015
-// Date        : Thu Jan 21 17:13:26 2016
-// Host        : WK86 running 64-bit Service Pack 1  (build 7601)
-// Command     : write_verilog -force -mode funcsim C:/Work/Github/Working/Looper/src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.v
-// Design      : clk_wiz_0
-// Purpose     : This verilog netlist is a functional simulation representation of the design and should not be modified
-//               or synthesized. This netlist cannot be used for SDF annotated simulation.
-// Device      : xc7a200tsbg484-1
-// --------------------------------------------------------------------------------
-`timescale 1 ps / 1 ps
-
-(* CORE_GENERATION_INFO = "clk_wiz_0,clk_wiz_v5_2_0,{component_name=clk_wiz_0,use_phase_alignment=true,use_min_o_jitter=false,use_max_i_jitter=false,use_dyn_phase_shift=false,use_inclk_switchover=false,use_dyn_reconfig=false,enable_axi=0,feedback_source=FDBK_AUTO,PRIMITIVE=MMCM,num_out_clk=4,clkin1_period=10.0,clkin2_period=10.0,use_power_down=false,use_reset=true,use_locked=true,use_inclk_stopped=false,feedback_type=SINGLE,CLOCK_MGR_TYPE=NA,manual_override=false}" *) 
-(* NotValidForBitStream *)
-module clk_wiz_0
-   (clk_in1,
-    clk_out1,
-    clk_out2,
-    clk_out3,
-    clk_out4,
-    reset,
-    locked);
-  input clk_in1;
-  output clk_out1;
-  output clk_out2;
-  output clk_out3;
-  output clk_out4;
-  input reset;
-  output locked;
-
-  (* IBUF_LOW_PWR *) wire clk_in1;
-  wire clk_out1;
-  wire clk_out2;
-  wire clk_out3;
-  wire clk_out4;
-  wire locked;
-  wire reset;
-
-  clk_wiz_0_clk_wiz_0_clk_wiz inst
-       (.clk_in1(clk_in1),
-        .clk_out1(clk_out1),
-        .clk_out2(clk_out2),
-        .clk_out3(clk_out3),
-        .clk_out4(clk_out4),
-        .locked(locked),
-        .reset(reset));
-endmodule
-
-(* ORIG_REF_NAME = "clk_wiz_0_clk_wiz" *) 
-module clk_wiz_0_clk_wiz_0_clk_wiz
-   (clk_in1,
-    clk_out1,
-    clk_out2,
-    clk_out3,
-    clk_out4,
-    reset,
-    locked);
-  input clk_in1;
-  output clk_out1;
-  output clk_out2;
-  output clk_out3;
-  output clk_out4;
-  input reset;
-  output locked;
-
-  wire clk_in1;
-  wire clk_in1_clk_wiz_0;
-  wire clk_out1;
-  wire clk_out1_clk_wiz_0;
-  wire clk_out2;
-  wire clk_out2_clk_wiz_0;
-  wire clk_out3;
-  wire clk_out3_clk_wiz_0;
-  wire clk_out4;
-  wire clk_out4_clk_wiz_0;
-  wire clkfbout_buf_clk_wiz_0;
-  wire clkfbout_clk_wiz_0;
-  wire locked;
-  wire reset;
-  wire NLW_mmcm_adv_inst_CLKFBOUTB_UNCONNECTED;
-  wire NLW_mmcm_adv_inst_CLKFBSTOPPED_UNCONNECTED;
-  wire NLW_mmcm_adv_inst_CLKINSTOPPED_UNCONNECTED;
-  wire NLW_mmcm_adv_inst_CLKOUT0B_UNCONNECTED;
-  wire NLW_mmcm_adv_inst_CLKOUT1B_UNCONNECTED;
-  wire NLW_mmcm_adv_inst_CLKOUT2B_UNCONNECTED;
-  wire NLW_mmcm_adv_inst_CLKOUT3B_UNCONNECTED;
-  wire NLW_mmcm_adv_inst_CLKOUT4_UNCONNECTED;
-  wire NLW_mmcm_adv_inst_CLKOUT5_UNCONNECTED;
-  wire NLW_mmcm_adv_inst_CLKOUT6_UNCONNECTED;
-  wire NLW_mmcm_adv_inst_DRDY_UNCONNECTED;
-  wire NLW_mmcm_adv_inst_PSDONE_UNCONNECTED;
-  wire [15:0]NLW_mmcm_adv_inst_DO_UNCONNECTED;
-
-  (* BOX_TYPE = "PRIMITIVE" *) 
-  BUFG clkf_buf
-       (.I(clkfbout_clk_wiz_0),
-        .O(clkfbout_buf_clk_wiz_0));
-  (* BOX_TYPE = "PRIMITIVE" *) 
-  (* CAPACITANCE = "DONT_CARE" *) 
-  (* IBUF_DELAY_VALUE = "0" *) 
-  (* IFD_DELAY_VALUE = "AUTO" *) 
-  IBUF #(
-    .IOSTANDARD("DEFAULT")) 
-    clkin1_ibufg
-       (.I(clk_in1),
-        .O(clk_in1_clk_wiz_0));
-  (* BOX_TYPE = "PRIMITIVE" *) 
-  BUFG clkout1_buf
-       (.I(clk_out1_clk_wiz_0),
-        .O(clk_out1));
-  (* BOX_TYPE = "PRIMITIVE" *) 
-  BUFG clkout2_buf
-       (.I(clk_out2_clk_wiz_0),
-        .O(clk_out2));
-  (* BOX_TYPE = "PRIMITIVE" *) 
-  BUFG clkout3_buf
-       (.I(clk_out3_clk_wiz_0),
-        .O(clk_out3));
-  (* BOX_TYPE = "PRIMITIVE" *) 
-  BUFG clkout4_buf
-       (.I(clk_out4_clk_wiz_0),
-        .O(clk_out4));
-  (* BOX_TYPE = "PRIMITIVE" *) 
-  MMCME2_ADV #(
-    .BANDWIDTH("OPTIMIZED"),
-    .CLKFBOUT_MULT_F(6.000000),
-    .CLKFBOUT_PHASE(0.000000),
-    .CLKFBOUT_USE_FINE_PS("FALSE"),
-    .CLKIN1_PERIOD(10.000000),
-    .CLKIN2_PERIOD(0.000000),
-    .CLKOUT0_DIVIDE_F(6.000000),
-    .CLKOUT0_DUTY_CYCLE(0.500000),
-    .CLKOUT0_PHASE(0.000000),
-    .CLKOUT0_USE_FINE_PS("FALSE"),
-    .CLKOUT1_DIVIDE(3),
-    .CLKOUT1_DUTY_CYCLE(0.500000),
-    .CLKOUT1_PHASE(0.000000),
-    .CLKOUT1_USE_FINE_PS("FALSE"),
-    .CLKOUT2_DIVIDE(50),
-    .CLKOUT2_DUTY_CYCLE(0.500000),
-    .CLKOUT2_PHASE(0.000000),
-    .CLKOUT2_USE_FINE_PS("FALSE"),
-    .CLKOUT3_DIVIDE(12),
-    .CLKOUT3_DUTY_CYCLE(0.500000),
-    .CLKOUT3_PHASE(0.000000),
-    .CLKOUT3_USE_FINE_PS("FALSE"),
-    .CLKOUT4_CASCADE("FALSE"),
-    .CLKOUT4_DIVIDE(1),
-    .CLKOUT4_DUTY_CYCLE(0.500000),
-    .CLKOUT4_PHASE(0.000000),
-    .CLKOUT4_USE_FINE_PS("FALSE"),
-    .CLKOUT5_DIVIDE(1),
-    .CLKOUT5_DUTY_CYCLE(0.500000),
-    .CLKOUT5_PHASE(0.000000),
-    .CLKOUT5_USE_FINE_PS("FALSE"),
-    .CLKOUT6_DIVIDE(1),
-    .CLKOUT6_DUTY_CYCLE(0.500000),
-    .CLKOUT6_PHASE(0.000000),
-    .CLKOUT6_USE_FINE_PS("FALSE"),
-    .COMPENSATION("ZHOLD"),
-    .DIVCLK_DIVIDE(1),
-    .IS_CLKINSEL_INVERTED(1'b0),
-    .IS_PSEN_INVERTED(1'b0),
-    .IS_PSINCDEC_INVERTED(1'b0),
-    .IS_PWRDWN_INVERTED(1'b0),
-    .IS_RST_INVERTED(1'b0),
-    .REF_JITTER1(0.010000),
-    .REF_JITTER2(0.010000),
-    .SS_EN("FALSE"),
-    .SS_MODE("CENTER_HIGH"),
-    .SS_MOD_PERIOD(10000),
-    .STARTUP_WAIT("FALSE")) 
-    mmcm_adv_inst
-       (.CLKFBIN(clkfbout_buf_clk_wiz_0),
-        .CLKFBOUT(clkfbout_clk_wiz_0),
-        .CLKFBOUTB(NLW_mmcm_adv_inst_CLKFBOUTB_UNCONNECTED),
-        .CLKFBSTOPPED(NLW_mmcm_adv_inst_CLKFBSTOPPED_UNCONNECTED),
-        .CLKIN1(clk_in1_clk_wiz_0),
-        .CLKIN2(1'b0),
-        .CLKINSEL(1'b1),
-        .CLKINSTOPPED(NLW_mmcm_adv_inst_CLKINSTOPPED_UNCONNECTED),
-        .CLKOUT0(clk_out1_clk_wiz_0),
-        .CLKOUT0B(NLW_mmcm_adv_inst_CLKOUT0B_UNCONNECTED),
-        .CLKOUT1(clk_out2_clk_wiz_0),
-        .CLKOUT1B(NLW_mmcm_adv_inst_CLKOUT1B_UNCONNECTED),
-        .CLKOUT2(clk_out3_clk_wiz_0),
-        .CLKOUT2B(NLW_mmcm_adv_inst_CLKOUT2B_UNCONNECTED),
-        .CLKOUT3(clk_out4_clk_wiz_0),
-        .CLKOUT3B(NLW_mmcm_adv_inst_CLKOUT3B_UNCONNECTED),
-        .CLKOUT4(NLW_mmcm_adv_inst_CLKOUT4_UNCONNECTED),
-        .CLKOUT5(NLW_mmcm_adv_inst_CLKOUT5_UNCONNECTED),
-        .CLKOUT6(NLW_mmcm_adv_inst_CLKOUT6_UNCONNECTED),
-        .DADDR({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}),
-        .DCLK(1'b0),
-        .DEN(1'b0),
-        .DI({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}),
-        .DO(NLW_mmcm_adv_inst_DO_UNCONNECTED[15:0]),
-        .DRDY(NLW_mmcm_adv_inst_DRDY_UNCONNECTED),
-        .DWE(1'b0),
-        .LOCKED(locked),
-        .PSCLK(1'b0),
-        .PSDONE(NLW_mmcm_adv_inst_PSDONE_UNCONNECTED),
-        .PSEN(1'b0),
-        .PSINCDEC(1'b0),
-        .PWRDWN(1'b0),
-        .RST(reset));
-endmodule
-`ifndef GLBL
-`define GLBL
-`timescale  1 ps / 1 ps
-
-module glbl ();
-
-    parameter ROC_WIDTH = 100000;
-    parameter TOC_WIDTH = 0;
-
-//--------   STARTUP Globals --------------
-    wire GSR;
-    wire GTS;
-    wire GWE;
-    wire PRLD;
-    tri1 p_up_tmp;
-    tri (weak1, strong0) PLL_LOCKG = p_up_tmp;
-
-    wire PROGB_GLBL;
-    wire CCLKO_GLBL;
-    wire FCSBO_GLBL;
-    wire [3:0] DO_GLBL;
-    wire [3:0] DI_GLBL;
-   
-    reg GSR_int;
-    reg GTS_int;
-    reg PRLD_int;
-
-//--------   JTAG Globals --------------
-    wire JTAG_TDO_GLBL;
-    wire JTAG_TCK_GLBL;
-    wire JTAG_TDI_GLBL;
-    wire JTAG_TMS_GLBL;
-    wire JTAG_TRST_GLBL;
-
-    reg JTAG_CAPTURE_GLBL;
-    reg JTAG_RESET_GLBL;
-    reg JTAG_SHIFT_GLBL;
-    reg JTAG_UPDATE_GLBL;
-    reg JTAG_RUNTEST_GLBL;
-
-    reg JTAG_SEL1_GLBL = 0;
-    reg JTAG_SEL2_GLBL = 0 ;
-    reg JTAG_SEL3_GLBL = 0;
-    reg JTAG_SEL4_GLBL = 0;
-
-    reg JTAG_USER_TDO1_GLBL = 1'bz;
-    reg JTAG_USER_TDO2_GLBL = 1'bz;
-    reg JTAG_USER_TDO3_GLBL = 1'bz;
-    reg JTAG_USER_TDO4_GLBL = 1'bz;
-
-    assign (weak1, weak0) GSR = GSR_int;
-    assign (weak1, weak0) GTS = GTS_int;
-    assign (weak1, weak0) PRLD = PRLD_int;
-
-    initial begin
-	GSR_int = 1'b1;
-	PRLD_int = 1'b1;
-	#(ROC_WIDTH)
-	GSR_int = 1'b0;
-	PRLD_int = 1'b0;
-    end
-
-    initial begin
-	GTS_int = 1'b1;
-	#(TOC_WIDTH)
-	GTS_int = 1'b0;
-    end
-
-endmodule
-`endif
diff --git a/src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.vhdl b/src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.vhdl
deleted file mode 100644
index 84ae83d..0000000
--- a/src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.vhdl
+++ /dev/null
@@ -1,218 +0,0 @@
--- Copyright 1986-2015 Xilinx, Inc. All Rights Reserved.
--- --------------------------------------------------------------------------------
--- Tool Version: Vivado v.2015.3 (win64) Build 1368829 Mon Sep 28 20:06:43 MDT 2015
--- Date        : Thu Jan 21 17:13:26 2016
--- Host        : WK86 running 64-bit Service Pack 1  (build 7601)
--- Command     : write_vhdl -force -mode funcsim C:/Work/Github/Working/Looper/src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.vhdl
--- Design      : clk_wiz_0
--- Purpose     : This VHDL netlist is a functional simulation representation of the design and should not be modified or
---               synthesized. This netlist cannot be used for SDF annotated simulation.
--- Device      : xc7a200tsbg484-1
--- --------------------------------------------------------------------------------
-library IEEE;
-use IEEE.STD_LOGIC_1164.ALL;
-library UNISIM;
-use UNISIM.VCOMPONENTS.ALL;
-entity clk_wiz_0_clk_wiz_0_clk_wiz is
-  port (
-    clk_in1 : in STD_LOGIC;
-    clk_out1 : out STD_LOGIC;
-    clk_out2 : out STD_LOGIC;
-    clk_out3 : out STD_LOGIC;
-    clk_out4 : out STD_LOGIC;
-    reset : in STD_LOGIC;
-    locked : out STD_LOGIC
-  );
-  attribute ORIG_REF_NAME : string;
-  attribute ORIG_REF_NAME of clk_wiz_0_clk_wiz_0_clk_wiz : entity is "clk_wiz_0_clk_wiz";
-end clk_wiz_0_clk_wiz_0_clk_wiz;
-
-architecture STRUCTURE of clk_wiz_0_clk_wiz_0_clk_wiz is
-  signal clk_in1_clk_wiz_0 : STD_LOGIC;
-  signal clk_out1_clk_wiz_0 : STD_LOGIC;
-  signal clk_out2_clk_wiz_0 : STD_LOGIC;
-  signal clk_out3_clk_wiz_0 : STD_LOGIC;
-  signal clk_out4_clk_wiz_0 : STD_LOGIC;
-  signal clkfbout_buf_clk_wiz_0 : STD_LOGIC;
-  signal clkfbout_clk_wiz_0 : STD_LOGIC;
-  signal NLW_mmcm_adv_inst_CLKFBOUTB_UNCONNECTED : STD_LOGIC;
-  signal NLW_mmcm_adv_inst_CLKFBSTOPPED_UNCONNECTED : STD_LOGIC;
-  signal NLW_mmcm_adv_inst_CLKINSTOPPED_UNCONNECTED : STD_LOGIC;
-  signal NLW_mmcm_adv_inst_CLKOUT0B_UNCONNECTED : STD_LOGIC;
-  signal NLW_mmcm_adv_inst_CLKOUT1B_UNCONNECTED : STD_LOGIC;
-  signal NLW_mmcm_adv_inst_CLKOUT2B_UNCONNECTED : STD_LOGIC;
-  signal NLW_mmcm_adv_inst_CLKOUT3B_UNCONNECTED : STD_LOGIC;
-  signal NLW_mmcm_adv_inst_CLKOUT4_UNCONNECTED : STD_LOGIC;
-  signal NLW_mmcm_adv_inst_CLKOUT5_UNCONNECTED : STD_LOGIC;
-  signal NLW_mmcm_adv_inst_CLKOUT6_UNCONNECTED : STD_LOGIC;
-  signal NLW_mmcm_adv_inst_DRDY_UNCONNECTED : STD_LOGIC;
-  signal NLW_mmcm_adv_inst_PSDONE_UNCONNECTED : STD_LOGIC;
-  signal NLW_mmcm_adv_inst_DO_UNCONNECTED : STD_LOGIC_VECTOR ( 15 downto 0 );
-  attribute BOX_TYPE : string;
-  attribute BOX_TYPE of clkf_buf : label is "PRIMITIVE";
-  attribute BOX_TYPE of clkin1_ibufg : label is "PRIMITIVE";
-  attribute CAPACITANCE : string;
-  attribute CAPACITANCE of clkin1_ibufg : label is "DONT_CARE";
-  attribute IBUF_DELAY_VALUE : string;
-  attribute IBUF_DELAY_VALUE of clkin1_ibufg : label is "0";
-  attribute IFD_DELAY_VALUE : string;
-  attribute IFD_DELAY_VALUE of clkin1_ibufg : label is "AUTO";
-  attribute BOX_TYPE of clkout1_buf : label is "PRIMITIVE";
-  attribute BOX_TYPE of clkout2_buf : label is "PRIMITIVE";
-  attribute BOX_TYPE of clkout3_buf : label is "PRIMITIVE";
-  attribute BOX_TYPE of clkout4_buf : label is "PRIMITIVE";
-  attribute BOX_TYPE of mmcm_adv_inst : label is "PRIMITIVE";
-begin
-clkf_buf: unisim.vcomponents.BUFG
-     port map (
-      I => clkfbout_clk_wiz_0,
-      O => clkfbout_buf_clk_wiz_0
-    );
-clkin1_ibufg: unisim.vcomponents.IBUF
-    generic map(
-      IOSTANDARD => "DEFAULT"
-    )
-        port map (
-      I => clk_in1,
-      O => clk_in1_clk_wiz_0
-    );
-clkout1_buf: unisim.vcomponents.BUFG
-     port map (
-      I => clk_out1_clk_wiz_0,
-      O => clk_out1
-    );
-clkout2_buf: unisim.vcomponents.BUFG
-     port map (
-      I => clk_out2_clk_wiz_0,
-      O => clk_out2
-    );
-clkout3_buf: unisim.vcomponents.BUFG
-     port map (
-      I => clk_out3_clk_wiz_0,
-      O => clk_out3
-    );
-clkout4_buf: unisim.vcomponents.BUFG
-     port map (
-      I => clk_out4_clk_wiz_0,
-      O => clk_out4
-    );
-mmcm_adv_inst: unisim.vcomponents.MMCME2_ADV
-    generic map(
-      BANDWIDTH => "OPTIMIZED",
-      CLKFBOUT_MULT_F => 6.000000,
-      CLKFBOUT_PHASE => 0.000000,
-      CLKFBOUT_USE_FINE_PS => false,
-      CLKIN1_PERIOD => 10.000000,
-      CLKIN2_PERIOD => 0.000000,
-      CLKOUT0_DIVIDE_F => 6.000000,
-      CLKOUT0_DUTY_CYCLE => 0.500000,
-      CLKOUT0_PHASE => 0.000000,
-      CLKOUT0_USE_FINE_PS => false,
-      CLKOUT1_DIVIDE => 3,
-      CLKOUT1_DUTY_CYCLE => 0.500000,
-      CLKOUT1_PHASE => 0.000000,
-      CLKOUT1_USE_FINE_PS => false,
-      CLKOUT2_DIVIDE => 50,
-      CLKOUT2_DUTY_CYCLE => 0.500000,
-      CLKOUT2_PHASE => 0.000000,
-      CLKOUT2_USE_FINE_PS => false,
-      CLKOUT3_DIVIDE => 12,
-      CLKOUT3_DUTY_CYCLE => 0.500000,
-      CLKOUT3_PHASE => 0.000000,
-      CLKOUT3_USE_FINE_PS => false,
-      CLKOUT4_CASCADE => false,
-      CLKOUT4_DIVIDE => 1,
-      CLKOUT4_DUTY_CYCLE => 0.500000,
-      CLKOUT4_PHASE => 0.000000,
-      CLKOUT4_USE_FINE_PS => false,
-      CLKOUT5_DIVIDE => 1,
-      CLKOUT5_DUTY_CYCLE => 0.500000,
-      CLKOUT5_PHASE => 0.000000,
-      CLKOUT5_USE_FINE_PS => false,
-      CLKOUT6_DIVIDE => 1,
-      CLKOUT6_DUTY_CYCLE => 0.500000,
-      CLKOUT6_PHASE => 0.000000,
-      CLKOUT6_USE_FINE_PS => false,
-      COMPENSATION => "ZHOLD",
-      DIVCLK_DIVIDE => 1,
-      IS_CLKINSEL_INVERTED => '0',
-      IS_PSEN_INVERTED => '0',
-      IS_PSINCDEC_INVERTED => '0',
-      IS_PWRDWN_INVERTED => '0',
-      IS_RST_INVERTED => '0',
-      REF_JITTER1 => 0.010000,
-      REF_JITTER2 => 0.010000,
-      SS_EN => "FALSE",
-      SS_MODE => "CENTER_HIGH",
-      SS_MOD_PERIOD => 10000,
-      STARTUP_WAIT => false
-    )
-        port map (
-      CLKFBIN => clkfbout_buf_clk_wiz_0,
-      CLKFBOUT => clkfbout_clk_wiz_0,
-      CLKFBOUTB => NLW_mmcm_adv_inst_CLKFBOUTB_UNCONNECTED,
-      CLKFBSTOPPED => NLW_mmcm_adv_inst_CLKFBSTOPPED_UNCONNECTED,
-      CLKIN1 => clk_in1_clk_wiz_0,
-      CLKIN2 => '0',
-      CLKINSEL => '1',
-      CLKINSTOPPED => NLW_mmcm_adv_inst_CLKINSTOPPED_UNCONNECTED,
-      CLKOUT0 => clk_out1_clk_wiz_0,
-      CLKOUT0B => NLW_mmcm_adv_inst_CLKOUT0B_UNCONNECTED,
-      CLKOUT1 => clk_out2_clk_wiz_0,
-      CLKOUT1B => NLW_mmcm_adv_inst_CLKOUT1B_UNCONNECTED,
-      CLKOUT2 => clk_out3_clk_wiz_0,
-      CLKOUT2B => NLW_mmcm_adv_inst_CLKOUT2B_UNCONNECTED,
-      CLKOUT3 => clk_out4_clk_wiz_0,
-      CLKOUT3B => NLW_mmcm_adv_inst_CLKOUT3B_UNCONNECTED,
-      CLKOUT4 => NLW_mmcm_adv_inst_CLKOUT4_UNCONNECTED,
-      CLKOUT5 => NLW_mmcm_adv_inst_CLKOUT5_UNCONNECTED,
-      CLKOUT6 => NLW_mmcm_adv_inst_CLKOUT6_UNCONNECTED,
-      DADDR(6 downto 0) => B"0000000",
-      DCLK => '0',
-      DEN => '0',
-      DI(15 downto 0) => B"0000000000000000",
-      DO(15 downto 0) => NLW_mmcm_adv_inst_DO_UNCONNECTED(15 downto 0),
-      DRDY => NLW_mmcm_adv_inst_DRDY_UNCONNECTED,
-      DWE => '0',
-      LOCKED => locked,
-      PSCLK => '0',
-      PSDONE => NLW_mmcm_adv_inst_PSDONE_UNCONNECTED,
-      PSEN => '0',
-      PSINCDEC => '0',
-      PWRDWN => '0',
-      RST => reset
-    );
-end STRUCTURE;
-library IEEE;
-use IEEE.STD_LOGIC_1164.ALL;
-library UNISIM;
-use UNISIM.VCOMPONENTS.ALL;
-entity clk_wiz_0 is
-  port (
-    clk_in1 : in STD_LOGIC;
-    clk_out1 : out STD_LOGIC;
-    clk_out2 : out STD_LOGIC;
-    clk_out3 : out STD_LOGIC;
-    clk_out4 : out STD_LOGIC;
-    reset : in STD_LOGIC;
-    locked : out STD_LOGIC
-  );
-  attribute NotValidForBitStream : boolean;
-  attribute NotValidForBitStream of clk_wiz_0 : entity is true;
-  attribute CORE_GENERATION_INFO : string;
-  attribute CORE_GENERATION_INFO of clk_wiz_0 : entity is "clk_wiz_0,clk_wiz_v5_2_0,{component_name=clk_wiz_0,use_phase_alignment=true,use_min_o_jitter=false,use_max_i_jitter=false,use_dyn_phase_shift=false,use_inclk_switchover=false,use_dyn_reconfig=false,enable_axi=0,feedback_source=FDBK_AUTO,PRIMITIVE=MMCM,num_out_clk=4,clkin1_period=10.0,clkin2_period=10.0,use_power_down=false,use_reset=true,use_locked=true,use_inclk_stopped=false,feedback_type=SINGLE,CLOCK_MGR_TYPE=NA,manual_override=false}";
-end clk_wiz_0;
-
-architecture STRUCTURE of clk_wiz_0 is
-begin
-inst: entity work.clk_wiz_0_clk_wiz_0_clk_wiz
-     port map (
-      clk_in1 => clk_in1,
-      clk_out1 => clk_out1,
-      clk_out2 => clk_out2,
-      clk_out3 => clk_out3,
-      clk_out4 => clk_out4,
-      locked => locked,
-      reset => reset
-    );
-end STRUCTURE;
diff --git a/src/ip/clk_wiz_0/clk_wiz_0_stub.v b/src/ip/clk_wiz_0/clk_wiz_0_stub.v
deleted file mode 100644
index 3e730b7..0000000
--- a/src/ip/clk_wiz_0/clk_wiz_0_stub.v
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright 1986-2015 Xilinx, Inc. All Rights Reserved.
-// --------------------------------------------------------------------------------
-// Tool Version: Vivado v.2015.3 (win64) Build 1368829 Mon Sep 28 20:06:43 MDT 2015
-// Date        : Thu Jan 21 17:13:26 2016
-// Host        : WK86 running 64-bit Service Pack 1  (build 7601)
-// Command     : write_verilog -force -mode synth_stub C:/Work/Github/Working/Looper/src/ip/clk_wiz_0/clk_wiz_0_stub.v
-// Design      : clk_wiz_0
-// Purpose     : Stub declaration of top-level module interface
-// Device      : xc7a200tsbg484-1
-// --------------------------------------------------------------------------------
-
-// This empty module with port declaration file causes synthesis tools to infer a black box for IP.
-// The synthesis directives are for Synopsys Synplify support to prevent IO buffer insertion.
-// Please paste the declaration into a Verilog source file or add the file as an additional source.
-module clk_wiz_0(clk_in1, clk_out1, clk_out2, clk_out3, clk_out4, reset, locked)
-/* synthesis syn_black_box black_box_pad_pin="clk_in1,clk_out1,clk_out2,clk_out3,clk_out4,reset,locked" */;
-  input clk_in1;
-  output clk_out1;
-  output clk_out2;
-  output clk_out3;
-  output clk_out4;
-  input reset;
-  output locked;
-endmodule
diff --git a/src/ip/clk_wiz_0/clk_wiz_0_stub.vhdl b/src/ip/clk_wiz_0/clk_wiz_0_stub.vhdl
deleted file mode 100644
index 262c691..0000000
--- a/src/ip/clk_wiz_0/clk_wiz_0_stub.vhdl
+++ /dev/null
@@ -1,33 +0,0 @@
--- Copyright 1986-2015 Xilinx, Inc. All Rights Reserved.
--- --------------------------------------------------------------------------------
--- Tool Version: Vivado v.2015.3 (win64) Build 1368829 Mon Sep 28 20:06:43 MDT 2015
--- Date        : Thu Jan 21 17:13:26 2016
--- Host        : WK86 running 64-bit Service Pack 1  (build 7601)
--- Command     : write_vhdl -force -mode synth_stub C:/Work/Github/Working/Looper/src/ip/clk_wiz_0/clk_wiz_0_stub.vhdl
--- Design      : clk_wiz_0
--- Purpose     : Stub declaration of top-level module interface
--- Device      : xc7a200tsbg484-1
--- --------------------------------------------------------------------------------
-library IEEE;
-use IEEE.STD_LOGIC_1164.ALL;
-
-entity clk_wiz_0 is
-  Port ( 
-    clk_in1 : in STD_LOGIC;
-    clk_out1 : out STD_LOGIC;
-    clk_out2 : out STD_LOGIC;
-    clk_out3 : out STD_LOGIC;
-    clk_out4 : out STD_LOGIC;
-    reset : in STD_LOGIC;
-    locked : out STD_LOGIC
-  );
-
-end clk_wiz_0;
-
-architecture stub of clk_wiz_0 is
-attribute syn_black_box : boolean;
-attribute black_box_pad_pin : string;
-attribute syn_black_box of stub : architecture is true;
-attribute black_box_pad_pin of stub : architecture is "clk_in1,clk_out1,clk_out2,clk_out3,clk_out4,reset,locked";
-begin
-end;
diff --git a/src/ip/clk_wiz_0/doc/clk_wiz_v5_2_changelog.txt b/src/ip/clk_wiz_0/doc/clk_wiz_v5_2_changelog.txt
deleted file mode 100644
index c88739c..0000000
--- a/src/ip/clk_wiz_0/doc/clk_wiz_v5_2_changelog.txt
+++ /dev/null
@@ -1,115 +0,0 @@
-2015.3:
- * Version 5.2
- * IP revision number added to HDL module, library, and include file names, to support designs with both locked and upgraded IP instances
- * Port Renaming tab is hidden in the GUI in IP Integrator as this feature is not supported
- * Phase alignment feature is removed for ultrascale PLL as primitve has limited capabilities of supporting this feature
- * When clocking wizard is targetted on a board part, the frequency values that gets propagated to primary and secondary clocks are displayed in floating number format
- * Example design and simulation files are delivered in verilog only
-
-2015.2.1:
- * Version 5.1 (Rev. 6)
- * No changes
-
-2015.2:
- * Version 5.1 (Rev. 6)
- * No changes
-
-2015.1:
- * Version 5.1 (Rev. 6)
- * Updated mmcm_pll_filter_lookup and mmcm_pll_lock_lookup functions in the header file for 7-Series and UltraScale devices
- * Supported devices and production status are now determined automatically, to simplify support for future devices
-
-2014.4.1:
- * Version 5.1 (Rev. 5)
- * No changes
-
-2014.4:
- * Version 5.1 (Rev. 5)
- * Internal device family change, no functional changes
- * updates related to the source selection based on board interface for zed board
-
-2014.3:
- * Version 5.1 (Rev. 4)
- * Option added to enable dynamic phase and duty cycle for resource optimization in AXI4-Lite interface
-
-2014.2:
- * Version 5.1 (Rev. 3)
- * Updated for AXI4-Lite interface locked status register address and bit mapping to align with the pg065
-
-2014.1:
- * Version 5.1 (Rev. 2)
- * Updated to use inverted output CLKOUTB 0-3 of Clocking Primitive based on requested 180 phase w.r.t. previous clock
- * Internal device family name change, no functional changes
-
-2013.4:
- * Version 5.1 (Rev. 1)
- * Added support for Ultrascale devices
- * Updated Board Flow GUI to select the clock interfaces
- * Fixed issue with Stub file parameter error for BUFR output driver
-
-2013.3:
- * Version 5.1
- * Added AXI4-Lite interface to dynamically reconfigure MMCM/PLL
- * Improved safe clock logic to remove glitches on clock outputs for odd multiples of input clock frequencies
- * Fixed precision issues between displayed and actual frequencies
- * Added tool tips to GUI
- * Added Jitter and Phase error values to IP properties
- * Added support for Cadence IES and Synopsys VCS simulators
- * Reduced warnings in synthesis and simulation
- * Enhanced support for IP Integrator
-
-2013.2:
- * Version 5.0 (Rev. 1)
- * Fixed issue with clock constraints for multiple instances of clocking wizard
- * Updated Life-Cycle status of devices
-
-2013.1:
- * Version 5.0
- * Lower case ports for Verilog
- * Added Safe Clock Startup and Clock Sequencing
-
-(c) Copyright 2008 - 2015 Xilinx, Inc. All rights reserved.
-
-This file contains confidential and proprietary information
-of Xilinx, Inc. and is protected under U.S. and
-international copyright and other intellectual property
-laws.
-
-DISCLAIMER
-This disclaimer is not a license and does not grant any
-rights to the materials distributed herewith. Except as
-otherwise provided in a valid license issued to you by
-Xilinx, and to the maximum extent permitted by applicable
-law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
-WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
-AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
-BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
-INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
-(2) Xilinx shall not be liable (whether in contract or tort,
-including negligence, or under any other theory of
-liability) for any loss or damage of any kind or nature
-related to, arising under or in connection with these
-materials, including for any direct, or any indirect,
-special, incidental, or consequential loss or damage
-(including loss of data, profits, goodwill, or any type of
-loss or damage suffered as a result of any action brought
-by a third party) even if such damage or loss was
-reasonably foreseeable or Xilinx had been advised of the
-possibility of the same.
-
-CRITICAL APPLICATIONS
-Xilinx products are not designed or intended to be fail-
-safe, or for use in any application requiring fail-safe
-performance, such as life-support or safety devices or
-systems, Class III medical devices, nuclear facilities,
-applications related to the deployment of airbags, or any
-other applications that could lead to death, personal
-injury, or severe property or environmental damage
-(individually and collectively, "Critical
-Applications"). Customer assumes the sole risk and
-liability of any use of Xilinx products in Critical
-Applications, subject only to applicable laws and
-regulations governing limitations on product liability.
-
-THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
-PART OF THIS FILE AT ALL TIMES.
diff --git a/src/ip/clk_wiz_0/doc/clk_wiz_v6_0_changelog.txt b/src/ip/clk_wiz_0/doc/clk_wiz_v6_0_changelog.txt
new file mode 100755
index 0000000..7c91ba6
--- /dev/null
+++ b/src/ip/clk_wiz_0/doc/clk_wiz_v6_0_changelog.txt
@@ -0,0 +1,323 @@
+2024.1:
+ * Version 6.0 (Rev. 14)
+ * General: IP packaging adjustments to address warnings from IP Packager integrity check
+
+2023.2.2:
+ * Version 6.0 (Rev. 13)
+ * No changes
+
+2023.2.1:
+ * Version 6.0 (Rev. 13)
+ * No changes
+
+2023.2:
+ * Version 6.0 (Rev. 13)
+ * Bug Fix: CR Fixes
+ * Other: CR Fixes
+
+2023.1.2:
+ * Version 6.0 (Rev. 12)
+ * No changes
+
+2023.1.1:
+ * Version 6.0 (Rev. 12)
+ * No changes
+
+2023.1:
+ * Version 6.0 (Rev. 12)
+ * Bug Fix: CR Fixes
+ * Other: CR Fixes
+
+2022.2.2:
+ * Version 6.0 (Rev. 11)
+ * No changes
+
+2022.2.1:
+ * Version 6.0 (Rev. 11)
+ * No changes
+
+2022.2:
+ * Version 6.0 (Rev. 11)
+ * Bug Fix: CR Fixes
+ * Other: CR Fixes
+
+2022.1.2:
+ * Version 6.0 (Rev. 10)
+ * No changes
+
+2022.1.1:
+ * Version 6.0 (Rev. 10)
+ * No changes
+
+2022.1:
+ * Version 6.0 (Rev. 10)
+ * Bug Fix: CR Fixes
+ * Other: CR Fixes
+
+2021.2.2:
+ * Version 6.0 (Rev. 9)
+ * No changes
+
+2021.2.1:
+ * Version 6.0 (Rev. 9)
+ * No changes
+
+2021.2:
+ * Version 6.0 (Rev. 9)
+ * Bug Fix: CR Fixes
+ * Other: CR Fixes
+
+2021.1.1:
+ * Version 6.0 (Rev. 8)
+ * No changes
+
+2021.1:
+ * Version 6.0 (Rev. 8)
+ * Bug Fix: Internal GUI fixes
+ * Other: CR Fixes
+
+2020.3:
+ * Version 6.0 (Rev. 7)
+ * Bug Fix: Internal GUI fixes
+ * Other: CR Fixes
+
+2020.2.2:
+ * Version 6.0 (Rev. 6)
+ * No changes
+
+2020.2.1:
+ * Version 6.0 (Rev. 6)
+ * No changes
+
+2020.2:
+ * Version 6.0 (Rev. 6)
+ * Bug Fix: Internal GUI fixes
+ * Other: CR Fixes
+
+2020.1.1:
+ * Version 6.0 (Rev. 5)
+ * No changes
+
+2020.1:
+ * Version 6.0 (Rev. 5)
+ * Bug Fix: Internal GUI fixes
+ * Other: CR Fixes
+
+2019.2.2:
+ * Version 6.0 (Rev. 4)
+ * No changes
+
+2019.2.1:
+ * Version 6.0 (Rev. 4)
+ * No changes
+
+2019.2:
+ * Version 6.0 (Rev. 4)
+ * Bug Fix: Internal GUI fixes
+ * Other: CR Fixes
+
+2019.1.3:
+ * Version 6.0 (Rev. 3)
+ * No changes
+
+2019.1.2:
+ * Version 6.0 (Rev. 3)
+ * No changes
+
+2019.1.1:
+ * Version 6.0 (Rev. 3)
+ * No changes
+
+2019.1:
+ * Version 6.0 (Rev. 3)
+ * Bug Fix: Internal GUI fixes
+ * Other: New family support added
+
+2018.3.1:
+ * Version 6.0 (Rev. 2)
+ * No changes
+
+2018.3:
+ * Version 6.0 (Rev. 2)
+ * Bug Fix: Made input source independent for primary and secondary clock
+ * Other: New family support added
+
+2018.2:
+ * Version 6.0 (Rev. 1)
+ * Bug Fix: Removed vco freq check when Primitive is None
+ * Other: New family support added
+
+2018.1:
+ * Version 6.0
+ * Bug Fix: Bug fixes in Dynamic Reconfiguration feature and Write DRP feature
+ * Bug Fix: Bug fixes for connection issue for s_axi_aresetn pin in IPI
+ * Feature Enhancement: The default value of USE_PHASE_ALIGMENT is updated to false for UltraScale and UltraScale+ devices. Phase Alignment feature uses extra clock routes in UltraScale and UltraScale+ designs when MMCMs are used. These routing resources are wasted when user do not understand when phase alignment is really needed. Now, implementation tools can use these extra clock routing resources for high fanout signals.
+ * Feature Enhancement: A column "Max. freq of buffer" is added in the Output Clock table which shows the maximum frequency that the selected output buffer can support
+ * Other: DRCs added for invalid input values in Override mode
+
+2017.4:
+ * Version 5.4 (Rev. 3)
+ * Bug Fix: Internal GUI issues are fixed for COMPENSATION mode as INTERNAL
+ * Bug Fix: Fixed issue in dynamic reconfiguration of fractional values of M in MMCME3, MMCME4
+
+2017.3:
+ * Version 5.4 (Rev. 2)
+ * General: Internal GUI changes. No effect on the customer design. Added support for aspartan7 devices
+
+2017.2:
+ * Version 5.4 (Rev. 1)
+ * General: Internal GUI changes. No effect on the customer design.
+
+2017.1:
+ * Version 5.4
+ * Port Change: Minor version upgrade. CLR pins are added to the pin list when selected buffer is BUFGCEDIV for ultrascale and ultrascale plus devices.
+ * Other: Added support for new zynq ultrascale plus devices.
+
+2016.4:
+ * Version 5.3 (Rev. 3)
+ * Bug Fix: Internal GUI issues are fixed.
+
+2016.3:
+ * Version 5.3 (Rev. 2)
+ * Feature Enhancement: Added new option "Auto" under PRIMITIVE selection for ultrascale and above devices. This option allows the Wizard to instantiate appropriate primitive for the user inputs.
+ * Feature Enhancement: Added Matched Routing Option for better timing solutions.
+ * Feature Enhancement: Options 'Buffer' and 'Buffer_with_CE' are added to the buffer selection list.
+ * Other: Source HDL files are concatenated into a single file to speed up synthesis and simulation. No changes required by the user
+ * Other: Added support for Spartan7 devices.
+
+2016.2:
+ * Version 5.3 (Rev. 1)
+ * Internal register bit update, no effect on customer designs.
+
+2016.1:
+ * Version 5.3
+ * Added Clock Monitor Feature as part of clocking wizard
+ * DRP registers can be directly written through AXI without resource utilization
+ * Changes to HDL library management to support Vivado IP simulation library
+
+2015.4.2:
+ * Version 5.2 (Rev. 1)
+ * No changes
+
+2015.4.1:
+ * Version 5.2 (Rev. 1)
+ * No changes
+
+2015.4:
+ * Version 5.2 (Rev. 1)
+ * Internal device family change, no functional changes
+
+2015.3:
+ * Version 5.2
+ * IP revision number added to HDL module, library, and include file names, to support designs with both locked and upgraded IP instances
+ * Port Renaming tab is hidden in the GUI in IP Integrator as this feature is not supported
+ * Phase alignment feature is removed for ultrascale PLL as primitve has limited capabilities of supporting this feature
+ * When clocking wizard is targetted on a board part, the frequency values that gets propagated to primary and secondary clocks are displayed in floating number format
+ * Example design and simulation files are delivered in verilog only
+
+2015.2.1:
+ * Version 5.1 (Rev. 6)
+ * No changes
+
+2015.2:
+ * Version 5.1 (Rev. 6)
+ * No changes
+
+2015.1:
+ * Version 5.1 (Rev. 6)
+ * Updated mmcm_pll_filter_lookup and mmcm_pll_lock_lookup functions in the header file for 7-Series and UltraScale devices
+ * Supported devices and production status are now determined automatically, to simplify support for future devices
+
+2014.4.1:
+ * Version 5.1 (Rev. 5)
+ * No changes
+
+2014.4:
+ * Version 5.1 (Rev. 5)
+ * Internal device family change, no functional changes
+ * updates related to the source selection based on board interface for zed board
+
+2014.3:
+ * Version 5.1 (Rev. 4)
+ * Option added to enable dynamic phase and duty cycle for resource optimization in AXI4-Lite interface
+
+2014.2:
+ * Version 5.1 (Rev. 3)
+ * Updated for AXI4-Lite interface locked status register address and bit mapping to align with the pg065
+
+2014.1:
+ * Version 5.1 (Rev. 2)
+ * Updated to use inverted output CLKOUTB 0-3 of Clocking Primitive based on requested 180 phase w.r.t. previous clock
+ * Internal device family name change, no functional changes
+
+2013.4:
+ * Version 5.1 (Rev. 1)
+ * Added support for Ultrascale devices
+ * Updated Board Flow GUI to select the clock interfaces
+ * Fixed issue with Stub file parameter error for BUFR output driver
+
+2013.3:
+ * Version 5.1
+ * Added AXI4-Lite interface to dynamically reconfigure MMCM/PLL
+ * Improved safe clock logic to remove glitches on clock outputs for odd multiples of input clock frequencies
+ * Fixed precision issues between displayed and actual frequencies
+ * Added tool tips to GUI
+ * Added Jitter and Phase error values to IP properties
+ * Added support for Cadence IES and Synopsys VCS simulators
+ * Reduced warnings in synthesis and simulation
+ * Enhanced support for IP Integrator
+
+2013.2:
+ * Version 5.0 (Rev. 1)
+ * Fixed issue with clock constraints for multiple instances of clocking wizard
+ * Updated Life-Cycle status of devices
+
+2013.1:
+ * Version 5.0
+ * Lower case ports for Verilog
+ * Added Safe Clock Startup and Clock Sequencing
+
+(c) Copyright 2008 - 2024 Advanced Micro Devices, Inc. All rights reserved.
+
+This file contains confidential and proprietary information
+of AMD and is protected under U.S. and international copyright
+and other intellectual property laws.
+
+DISCLAIMER
+This disclaimer is not a license and does not grant any
+rights to the materials distributed herewith. Except as
+otherwise provided in a valid license issued to you by
+AMD, and to the maximum extent permitted by applicable
+law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
+WITH ALL FAULTS, AND AMD HEREBY DISCLAIMS ALL WARRANTIES
+AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
+BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
+INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
+(2) AMD shall not be liable (whether in contract or tort,
+including negligence, or under any other theory of
+liability) for any loss or damage of any kind or nature
+related to, arising under or in connection with these
+materials, including for any direct, or any indirect,
+special, incidental, or consequential loss or damage
+(including loss of data, profits, goodwill, or any type of
+loss or damage suffered as a result of any action brought
+by a third party) even if such damage or loss was
+reasonably foreseeable or AMD had been advised of the
+possibility of the same.
+
+CRITICAL APPLICATIONS
+AMD products are not designed or intended to be fail-
+safe, or for use in any application requiring fail-safe
+performance, such as life-support or safety devices or
+systems, Class III medical devices, nuclear facilities,
+applications related to the deployment of airbags, or any
+other applications that could lead to death, personal
+injury, or severe property or environmental damage
+(individually and collectively, "Critical
+Applications"). Customer assumes the sole risk and
+liability of any use of AMD products in Critical
+Applications, subject only to applicable laws and
+regulations governing limitations on product liability.
+
+THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
+PART OF THIS FILE AT ALL TIMES.
diff --git a/src/ip/clk_wiz_0/mmcm_pll_drp_func_7s_mmcm.vh b/src/ip/clk_wiz_0/mmcm_pll_drp_func_7s_mmcm.vh
new file mode 100755
index 0000000..6c4981a
--- /dev/null
+++ b/src/ip/clk_wiz_0/mmcm_pll_drp_func_7s_mmcm.vh
@@ -0,0 +1,680 @@
+// (c) Copyright 2009-2010, 2023 Advanced Micro Devices, Inc. All rights reserved.
+//
+// This file contains confidential and proprietary information
+// of AMD and is protected under U.S. and international copyright
+// and other intellectual property laws.
+//
+// DISCLAIMER
+// This disclaimer is not a license and does not grant any
+// rights to the materials distributed herewith. Except as
+// otherwise provided in a valid license issued to you by
+// AMD, and to the maximum extent permitted by applicable
+// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
+// WITH ALL FAULTS, AND AMD HEREBY DISCLAIMS ALL WARRANTIES
+// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
+// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
+// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
+// (2) AMD shall not be liable (whether in contract or tort,
+// including negligence, or under any other theory of
+// liability) for any loss or damage of any kind or nature
+// related to, arising under or in connection with these
+// materials, including for any direct, or any indirect,
+// special, incidental, or consequential loss or damage
+// (including loss of data, profits, goodwill, or any type of
+// loss or damage suffered as a result of any action brought
+// by a third party) even if such damage or loss was
+// reasonably foreseeable or AMD had been advised of the
+// possibility of the same.
+//
+// CRITICAL APPLICATIONS
+// AMD products are not designed or intended to be fail-
+// safe, or for use in any application requiring fail-safe
+// performance, such as life-support or safety devices or
+// systems, Class III medical devices, nuclear facilities,
+// applications related to the deployment of airbags, or any
+// other applications that could lead to death, personal
+// injury, or severe property or environmental damage
+// (individually and collectively, "Critical
+// Applications"). Customer assumes the sole risk and
+// liability of any use of AMD products in Critical
+// Applications, subject only to applicable laws and
+// regulations governing limitations on product liability.
+//
+// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
+// PART OF THIS FILE AT ALL TIMES.
+////////////////////////////////////////////////////////////
+// 
+///////////////////////////////////////////////////////////////////////////////
+
+// These are user functions that should not be modified.  Changes to the defines
+// or code within the functions may alter the accuracy of the calculations.
+
+// Define debug to provide extra messages durring elaboration
+//`define DEBUG 1
+
+// FRAC_PRECISION describes the width of the fractional portion of the fixed
+//    point numbers.  These should not be modified, they are for development 
+//    only
+`define FRAC_PRECISION  10
+// FIXED_WIDTH describes the total size for fixed point calculations(int+frac).
+// Warning: L.50 and below will not calculate properly with FIXED_WIDTHs 
+//    greater than 32
+`define FIXED_WIDTH     32 
+
+// This function takes a fixed point number and rounds it to the nearest
+//    fractional precision bit.
+function [`FIXED_WIDTH:1] round_frac
+   (
+      // Input is (FIXED_WIDTH-FRAC_PRECISION).FRAC_PRECISION fixed point number
+      input [`FIXED_WIDTH:1] decimal,  
+
+      // This describes the precision of the fraction, for example a value
+      //    of 1 would modify the fractional so that instead of being a .16
+      //    fractional, it would be a .1 (rounded to the nearest 0.5 in turn)
+      input [`FIXED_WIDTH:1] precision 
+   );
+
+   begin
+   
+   `ifdef DEBUG
+      $display("round_frac - decimal: %h, precision: %h", decimal, precision);
+   `endif
+      // If the fractional precision bit is high then round up
+      if( decimal[(`FRAC_PRECISION-precision)] == 1'b1) begin
+         round_frac = decimal + (1'b1 << (`FRAC_PRECISION-precision));
+      end else begin
+         round_frac = decimal;
+      end
+   `ifdef DEBUG
+      $display("round_frac: %h", round_frac);
+   `endif
+   end
+endfunction
+
+// This function calculates high_time, low_time, w_edge, and no_count
+//    of a non-fractional counter based on the divide and duty cycle
+//
+// NOTE: high_time and low_time are returned as integers between 0 and 63 
+//    inclusive.  64 should equal 6'b000000 (in other words it is okay to 
+//    ignore the overflow)
+function [13:0] mmcm_pll_divider
+   (
+      input [7:0] divide,        // Max divide is 128
+      input [31:0] duty_cycle    // Duty cycle is multiplied by 100,000
+   );
+
+   reg [`FIXED_WIDTH:1]    duty_cycle_fix;
+   
+   // High/Low time is initially calculated with a wider integer to prevent a
+   // calculation error when it overflows to 64.
+   reg [6:0]               high_time;
+   reg [6:0]               low_time;
+   reg                     w_edge;
+   reg                     no_count;
+
+   reg [`FIXED_WIDTH:1]    temp;
+
+   begin
+      // Duty Cycle must be between 0 and 1,000
+      if(duty_cycle <=0 || duty_cycle >= 100000) begin
+`ifndef SYNTHESIS
+         $display("ERROR: duty_cycle: %d is invalid", duty_cycle);
+   `endif
+         $finish;
+      end
+
+      // Convert to FIXED_WIDTH-FRAC_PRECISION.FRAC_PRECISION fixed point
+      duty_cycle_fix = (duty_cycle << `FRAC_PRECISION) / 100_000;
+      
+   `ifdef DEBUG
+      $display("duty_cycle_fix: %h", duty_cycle_fix);
+   `endif
+
+      // If the divide is 1 nothing needs to be set except the no_count bit.
+      //    Other values are dummies
+      if(divide == 7'h01) begin
+         high_time   = 7'h01;
+         w_edge      = 1'b0;
+         low_time    = 7'h01;
+         no_count    = 1'b1;
+      end else begin
+         temp = round_frac(duty_cycle_fix*divide, 1);
+
+         // comes from above round_frac
+         high_time   = temp[`FRAC_PRECISION+7:`FRAC_PRECISION+1]; 
+         // If the duty cycle * divide rounded is .5 or greater then this bit
+         //    is set.
+         w_edge      = temp[`FRAC_PRECISION]; // comes from round_frac
+         
+         // If the high time comes out to 0, it needs to be set to at least 1
+         // and w_edge set to 0
+         if(high_time == 7'h00) begin
+            high_time   = 7'h01;
+            w_edge      = 1'b0;
+         end
+
+         if(high_time == divide) begin
+            high_time   = divide - 1;
+            w_edge      = 1'b1;
+         end
+         
+         // Calculate low_time based on the divide setting and set no_count to
+         //    0 as it is only used when divide is 1.
+         low_time    = divide - high_time; 
+         no_count    = 1'b0;
+      end
+
+      // Set the return value.
+      mmcm_pll_divider = {w_edge,no_count,high_time[5:0],low_time[5:0]};
+   end
+endfunction
+
+// This function calculates mx, delay_time, and phase_mux 
+//  of a non-fractional counter based on the divide and phase
+//
+// NOTE: The only valid value for the MX bits is 2'b00 to ensure the coarse mux
+//    is used.
+function [10:0] mmcm_pll_phase
+   (
+      // divide must be an integer (use fractional if not)
+      //  assumed that divide already checked to be valid
+      input [7:0] divide, // Max divide is 128
+
+      // Phase is given in degrees (-360,000 to 360,000)
+      input signed [31:0] phase
+   );
+
+   reg [`FIXED_WIDTH:1] phase_in_cycles;
+   reg [`FIXED_WIDTH:1] phase_fixed;
+   reg [1:0]            mx;
+   reg [5:0]            delay_time;
+   reg [2:0]            phase_mux;
+
+   reg [`FIXED_WIDTH:1] temp;
+
+   begin
+`ifdef DEBUG
+      $display("mmcm_pll_phase-divide:%d,phase:%d",
+         divide, phase);
+`endif
+   
+      if ((phase < -360000) || (phase > 360000)) begin
+`ifndef SYNTHESIS
+      $display("ERROR: phase of $phase is not between -360000 and 360000");
+	`endif
+         $finish;
+      end
+
+      // If phase is less than 0, convert it to a positive phase shift
+      // Convert to (FIXED_WIDTH-FRAC_PRECISION).FRAC_PRECISION fixed point
+      if(phase < 0) begin
+         phase_fixed = ( (phase + 360000) << `FRAC_PRECISION ) / 1000;
+      end else begin
+         phase_fixed = ( phase << `FRAC_PRECISION ) / 1000;
+      end
+
+      // Put phase in terms of decimal number of vco clock cycles
+      phase_in_cycles = ( phase_fixed * divide ) / 360;
+
+`ifdef DEBUG
+      $display("phase_in_cycles: %h", phase_in_cycles);
+`endif  
+      
+
+	 temp  =  round_frac(phase_in_cycles, 3);
+
+	 // set mx to 2'b00 that the phase mux from the VCO is enabled
+	 mx    			=  2'b00; 
+	 phase_mux      =  temp[`FRAC_PRECISION:`FRAC_PRECISION-2];
+	 delay_time     =  temp[`FRAC_PRECISION+6:`FRAC_PRECISION+1];
+      
+   `ifdef DEBUG
+      $display("temp: %h", temp);
+   `endif
+
+      // Setup the return value
+      mmcm_pll_phase={mx, phase_mux, delay_time};
+   end
+endfunction
+
+// This function takes the divide value and outputs the necessary lock values
+function [39:0] mmcm_pll_lock_lookup
+   (
+      input [6:0] divide // Max divide is 64
+   );
+   
+   reg [2559:0]   lookup;
+   
+   begin
+      lookup = {
+         // This table is composed of:
+         // LockRefDly_LockFBDly_LockCnt_LockSatHigh_UnlockCnt
+         40'b00110_00110_1111101000_1111101001_0000000001,
+         40'b00110_00110_1111101000_1111101001_0000000001,
+         40'b01000_01000_1111101000_1111101001_0000000001,
+         40'b01011_01011_1111101000_1111101001_0000000001,
+         40'b01110_01110_1111101000_1111101001_0000000001,
+         40'b10001_10001_1111101000_1111101001_0000000001,
+         40'b10011_10011_1111101000_1111101001_0000000001,
+         40'b10110_10110_1111101000_1111101001_0000000001,
+         40'b11001_11001_1111101000_1111101001_0000000001,
+         40'b11100_11100_1111101000_1111101001_0000000001,
+         40'b11111_11111_1110000100_1111101001_0000000001,
+         40'b11111_11111_1100111001_1111101001_0000000001,
+         40'b11111_11111_1011101110_1111101001_0000000001,
+         40'b11111_11111_1010111100_1111101001_0000000001,
+         40'b11111_11111_1010001010_1111101001_0000000001,
+         40'b11111_11111_1001110001_1111101001_0000000001,
+         40'b11111_11111_1000111111_1111101001_0000000001,
+         40'b11111_11111_1000100110_1111101001_0000000001,
+         40'b11111_11111_1000001101_1111101001_0000000001,
+         40'b11111_11111_0111110100_1111101001_0000000001,
+         40'b11111_11111_0111011011_1111101001_0000000001,
+         40'b11111_11111_0111000010_1111101001_0000000001,
+         40'b11111_11111_0110101001_1111101001_0000000001,
+         40'b11111_11111_0110010000_1111101001_0000000001,
+         40'b11111_11111_0110010000_1111101001_0000000001,
+         40'b11111_11111_0101110111_1111101001_0000000001,
+         40'b11111_11111_0101011110_1111101001_0000000001,
+         40'b11111_11111_0101011110_1111101001_0000000001,
+         40'b11111_11111_0101000101_1111101001_0000000001,
+         40'b11111_11111_0101000101_1111101001_0000000001,
+         40'b11111_11111_0100101100_1111101001_0000000001,
+         40'b11111_11111_0100101100_1111101001_0000000001,
+         40'b11111_11111_0100101100_1111101001_0000000001,
+         40'b11111_11111_0100010011_1111101001_0000000001,
+         40'b11111_11111_0100010011_1111101001_0000000001,
+         40'b11111_11111_0100010011_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001
+      };
+      
+      // Set lookup_entry with the explicit bits from lookup with a part select
+      mmcm_pll_lock_lookup = lookup[ ((64-divide)*40) +: 40];
+   `ifdef DEBUG
+      $display("lock_lookup: %b", mmcm_pll_lock_lookup);
+   `endif
+   end
+endfunction
+
+// This function takes the divide value and the bandwidth setting of the MMCM
+//  and outputs the digital filter settings necessary.
+function [9:0] mmcm_pll_filter_lookup
+   (
+      input [6:0] divide, // Max divide is 64
+      input [8*9:0] BANDWIDTH
+   );
+   
+   reg [639:0] lookup_low;
+   reg [639:0] lookup_high;
+   
+   reg [9:0] lookup_entry;
+   
+   begin
+      lookup_low = {
+         // CP_RES_LFHF
+         10'b0010_1111_00,
+         10'b0010_1111_00,
+         10'b0010_1111_00,
+         10'b0010_1111_00,
+         10'b0010_0111_00,
+         10'b0010_1011_00,
+         10'b0010_1101_00,
+         10'b0010_0011_00,
+         10'b0010_0101_00,
+         10'b0010_0101_00,
+         10'b0010_1001_00,
+         10'b0010_1110_00,
+         10'b0010_1110_00,
+         10'b0010_1110_00,
+         10'b0010_1110_00,
+         10'b0010_0001_00,
+         10'b0010_0001_00,
+         10'b0010_0001_00,
+         10'b0010_0110_00,
+         10'b0010_0110_00,
+         10'b0010_0110_00,
+         10'b0010_0110_00,
+         10'b0010_0110_00,
+         10'b0010_0110_00,
+         10'b0010_0110_00,
+         10'b0010_1010_00,
+         10'b0010_1010_00,
+         10'b0010_1010_00,
+         10'b0010_1010_00,
+         10'b0010_1010_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00
+      };
+      
+      lookup_high = {
+         // CP_RES_LFHF
+         10'b0010_1111_00,
+         10'b0100_1111_00,
+         10'b0101_1011_00,
+         10'b0111_0111_00,
+         10'b1101_0111_00,
+         10'b1110_1011_00,
+         10'b1110_1101_00,
+         10'b1111_0011_00,
+         10'b1110_0101_00,
+         10'b1111_0101_00,
+         10'b1111_1001_00,
+         10'b1101_0001_00,
+         10'b1111_1001_00,
+         10'b1111_1001_00,
+         10'b1111_1001_00,
+         10'b1111_1001_00,
+         10'b1111_0101_00,
+         10'b1111_0101_00,
+         10'b1100_0001_00,
+         10'b1100_0001_00,
+         10'b1100_0001_00,
+         10'b0101_1100_00,
+         10'b0101_1100_00,
+         10'b0101_1100_00,
+         10'b0101_1100_00,
+         10'b0011_0100_00,
+         10'b0011_0100_00,
+         10'b0011_0100_00,
+         10'b0011_0100_00,
+         10'b0011_0100_00,
+         10'b0011_0100_00,
+         10'b0011_0100_00,
+         10'b0011_0100_00,
+         10'b0011_0100_00,
+         10'b0011_0100_00,
+         10'b0011_0100_00,
+         10'b0011_0100_00,
+         10'b0011_0100_00,
+         10'b0011_0100_00,
+         10'b0011_0100_00,
+         10'b0011_0100_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0111_0001_00,
+         10'b0111_0001_00,
+         10'b0100_1100_00,
+         10'b0100_1100_00,
+         10'b0100_1100_00,
+         10'b0100_1100_00,
+         10'b0110_0001_00,
+         10'b0110_0001_00,
+         10'b0101_0110_00,
+         10'b0101_0110_00,
+         10'b0101_0110_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0100_1010_00,
+         10'b0011_1100_00,
+         10'b0011_1100_00
+      };
+      
+      // Set lookup_entry with the explicit bits from lookup with a part select
+      if(BANDWIDTH == "LOW") begin
+         // Low Bandwidth
+         mmcm_pll_filter_lookup = lookup_low[ ((64-divide)*10) +: 10];
+      end else begin
+         // High or optimized bandwidth
+         mmcm_pll_filter_lookup = lookup_high[ ((64-divide)*10) +: 10];
+      end
+      
+   `ifdef DEBUG
+      $display("filter_lookup: %b", mmcm_pll_filter_lookup);
+   `endif
+   end
+endfunction
+
+// This function takes in the divide, phase, and duty cycle
+// setting to calculate the upper and lower counter registers.
+function [37:0] mmcm_pll_count_calc
+   (
+      input [7:0] divide, // Max divide is 128
+      input signed [31:0] phase,
+      input [31:0] duty_cycle // Multiplied by 100,000
+   );
+   
+   reg [13:0] div_calc;
+   reg [16:0] phase_calc;
+   
+   begin
+   `ifdef DEBUG
+      $display("mmcm_pll_count_calc- divide:%h, phase:%d, duty_cycle:%d",
+         divide, phase, duty_cycle);
+   `endif
+   
+      // w_edge[13], no_count[12], high_time[11:6], low_time[5:0]
+      div_calc = mmcm_pll_divider(divide, duty_cycle);
+      // mx[10:9], pm[8:6], dt[5:0]
+      phase_calc = mmcm_pll_phase(divide, phase);
+
+      // Return value is the upper and lower address of counter
+      //    Upper address is:
+      //       RESERVED    [31:26]
+      //       MX          [25:24]
+      //       EDGE        [23]
+      //       NOCOUNT     [22]
+      //       DELAY_TIME  [21:16]
+      //    Lower Address is:
+      //       PHASE_MUX   [15:13]
+      //       RESERVED    [12]
+      //       HIGH_TIME   [11:6]
+      //       LOW_TIME    [5:0]
+      
+   `ifdef DEBUG
+      $display("div:%d dc:%d phase:%d ht:%d lt:%d ed:%d nc:%d mx:%d dt:%d pm:%d",
+         divide, duty_cycle, phase, div_calc[11:6], div_calc[5:0], 
+         div_calc[13], div_calc[12], 
+         phase_calc[16:15], phase_calc[5:0], phase_calc[14:12]);
+   `endif
+      
+      mmcm_pll_count_calc =
+         {
+            // Upper Address
+            6'h00, phase_calc[10:9], div_calc[13:12], phase_calc[5:0], 
+            // Lower Address
+            phase_calc[8:6], 1'b0, div_calc[11:0]
+         };
+   end
+endfunction
+
+
+// This function takes in the divide, phase, and duty cycle
+// setting to calculate the upper and lower counter registers.
+// for fractional multiply/divide functions.
+//
+// 
+function [37:0] mmcm_frac_count_calc
+   (
+      input [7:0] divide, // Max divide is 128
+      input signed [31:0] phase,
+      input [31:0] duty_cycle, // Multiplied by 1,000
+      input [9:0] frac // Multiplied by 1000
+   );
+   
+	//Required for fractional divide calculations
+			  reg	[7:0]			lt_frac;
+			  reg	[7:0]			ht_frac;
+			
+			  reg	/*[7:0]*/			wf_fall_frac;
+			  reg	/*[7:0]*/			wf_rise_frac;
+
+			  reg [31:0] a;
+			  reg	[7:0]			pm_rise_frac_filtered ;
+			  reg	[7:0]			pm_fall_frac_filtered ;	
+			  reg [7:0]			clkout0_divide_int;
+			  reg [2:0]			clkout0_divide_frac;
+			  reg	[7:0]			even_part_high;
+			  reg	[7:0]			even_part_low;
+
+			  reg	[7:0]			odd;
+			  reg	[7:0]			odd_and_frac;
+
+			  reg	[7:0]			pm_fall;
+			  reg	[7:0]			pm_rise;
+			  reg	[7:0]			dt;
+			  reg	[7:0]			dt_int; 
+			  reg [63:0]		dt_calc;
+
+			  reg	[7:0]			pm_rise_frac; 
+			  reg	[7:0]			pm_fall_frac;
+	 
+			  reg [31:0] a_per_in_octets;
+			  reg [31:0] a_phase_in_cycles;
+
+				parameter precision = 0.125;
+
+			  reg [31:0] phase_fixed; // changed to 31:0 from 32:1 jt 5/2/11
+			  reg [31: 0] phase_pos;
+			  reg [31: 0] phase_vco;
+			  reg [31:0] temp;// changed to 31:0 from 32:1 jt 5/2/11
+			  reg [13:0] div_calc;
+			  reg [16:0] phase_calc;
+
+   begin
+	`ifdef DEBUG
+			$display("mmcm_frac_count_calc- divide:%h, phase:%d, duty_cycle:%d",
+				divide, phase, duty_cycle);
+	`endif
+   
+   //convert phase to fixed
+   if ((phase < -360000) || (phase > 360000)) begin
+`ifndef SYNTHESIS
+      $display("ERROR: phase of $phase is not between -360000 and 360000");
+	`endif
+      $finish;
+   end
+
+
+      // Return value is
+      //    Transfer data
+      //       RESERVED     [37:36]
+      //       FRAC_TIME    [35:33]
+      //       FRAC_WF_FALL [32]
+      //    Upper address is:
+      //       RESERVED     [31:26]
+      //       MX           [25:24]
+      //       EDGE         [23]
+      //       NOCOUNT      [22]
+      //       DELAY_TIME   [21:16]
+      //    Lower Address is:
+      //       PHASE_MUX    [15:13]
+      //       RESERVED     [12]
+      //       HIGH_TIME    [11:6]
+      //       LOW_TIME     [5:0]
+      
+      
+
+	clkout0_divide_frac = frac / 125;
+	clkout0_divide_int = divide;
+
+	even_part_high = clkout0_divide_int >> 1;//$rtoi(clkout0_divide_int / 2);
+	even_part_low = even_part_high;
+									
+	odd = clkout0_divide_int - even_part_high - even_part_low;
+	odd_and_frac = (8*odd) + clkout0_divide_frac;
+
+	lt_frac = even_part_high - (odd_and_frac <= 9);//IF(odd_and_frac>9,even_part_high, even_part_high - 1)
+	ht_frac = even_part_low  - (odd_and_frac <= 8);//IF(odd_and_frac>8,even_part_low, even_part_low- 1)
+
+	pm_fall =  {odd[6:0],2'b00} + {6'h00, clkout0_divide_frac[2:1]}; // using >> instead of clkout0_divide_frac / 2 
+	pm_rise = 0; //0
+    
+	wf_fall_frac = ((odd_and_frac >=2) && (odd_and_frac <=9)) || ((clkout0_divide_frac == 1) && (clkout0_divide_int == 2));//CRS610807
+	wf_rise_frac = (odd_and_frac >=1) && (odd_and_frac <=8);//IF(odd_and_frac>=1,IF(odd_and_frac <= 8,1,0),0)
+
+
+
+	//Calculate phase in fractional cycles
+	a_per_in_octets		= (8 * divide) + (frac / 125) ;
+	a_phase_in_cycles	= (phase+10) * a_per_in_octets / 360000 ;//Adding 1 due to rounding errors
+	pm_rise_frac		= (a_phase_in_cycles[7:0] ==8'h00)?8'h00:a_phase_in_cycles[7:0] - {a_phase_in_cycles[7:3],3'b000};
+
+	dt_calc 	= ((phase+10) * a_per_in_octets / 8 )/360000 ;//TRUNC(phase* divide / 360); //or_simply (a_per_in_octets / 8)
+	dt 	= dt_calc[7:0];
+
+	pm_rise_frac_filtered = (pm_rise_frac >=8) ? (pm_rise_frac ) - 8: pm_rise_frac ;				//((phase_fixed * (divide + frac / 1000)) / 360) - {pm_rise_frac[7:3],3'b000};//$rtoi(clkout0_phase * clkout0_divide / 45);//a;
+
+	dt_int			= dt + (& pm_rise_frac[7:4]); //IF(pm_rise_overwriting>7,dt+1,dt)
+	pm_fall_frac		= pm_fall + pm_rise_frac;
+	pm_fall_frac_filtered	= pm_fall + pm_rise_frac - {pm_fall_frac[7:3], 3'b000};
+
+	div_calc	= mmcm_pll_divider(divide, duty_cycle); //Use to determine edge[7], no count[6]
+	phase_calc	= mmcm_pll_phase(divide, phase);// returns{mx[1:0], phase_mux[2:0], delay_time[5:0]}
+		
+      mmcm_frac_count_calc[37:0] =
+         {		2'b00, pm_fall_frac_filtered[2:0], wf_fall_frac,
+			1'b0, clkout0_divide_frac[2:0], 1'b1, wf_rise_frac, phase_calc[10:9], div_calc[13:12], dt[5:0], 
+			pm_rise_frac_filtered[2], pm_rise_frac_filtered[1], pm_rise_frac_filtered[0], 1'b0, ht_frac[5:0], lt_frac[5:0]
+		} ;
+
+   `ifdef DEBUG
+      $display("-%d.%d p%d>>  :DADDR_9_15 frac30to28.frac_en.wf_r_frac.dt:%b%d%d_%b:DADDR_7_13 pm_f_frac_filtered_29to27.wf_f_frac_26:%b%d:DADDR_8_14.pm_r_frac_filt_15to13.ht_frac.lt_frac:%b%b%b:", divide, frac, phase, clkout0_divide_frac, 1, wf_rise_frac, dt, pm_fall_frac_filtered, wf_fall_frac, pm_rise_frac_filtered, ht_frac, lt_frac);
+   `endif
+
+   end
+endfunction
+
diff --git a/src/ip/clk_wiz_0/mmcm_pll_drp_func_7s_pll.vh b/src/ip/clk_wiz_0/mmcm_pll_drp_func_7s_pll.vh
new file mode 100755
index 0000000..b662a3e
--- /dev/null
+++ b/src/ip/clk_wiz_0/mmcm_pll_drp_func_7s_pll.vh
@@ -0,0 +1,542 @@
+// (c) Copyright 2009-2010, 2023 Advanced Micro Devices, Inc. All rights reserved.
+//
+// This file contains confidential and proprietary information
+// of AMD and is protected under U.S. and international copyright
+// and other intellectual property laws.
+//
+// DISCLAIMER
+// This disclaimer is not a license and does not grant any
+// rights to the materials distributed herewith. Except as
+// otherwise provided in a valid license issued to you by
+// AMD, and to the maximum extent permitted by applicable
+// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
+// WITH ALL FAULTS, AND AMD HEREBY DISCLAIMS ALL WARRANTIES
+// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
+// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
+// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
+// (2) AMD shall not be liable (whether in contract or tort,
+// including negligence, or under any other theory of
+// liability) for any loss or damage of any kind or nature
+// related to, arising under or in connection with these
+// materials, including for any direct, or any indirect,
+// special, incidental, or consequential loss or damage
+// (including loss of data, profits, goodwill, or any type of
+// loss or damage suffered as a result of any action brought
+// by a third party) even if such damage or loss was
+// reasonably foreseeable or AMD had been advised of the
+// possibility of the same.
+//
+// CRITICAL APPLICATIONS
+// AMD products are not designed or intended to be fail-
+// safe, or for use in any application requiring fail-safe
+// performance, such as life-support or safety devices or
+// systems, Class III medical devices, nuclear facilities,
+// applications related to the deployment of airbags, or any
+// other applications that could lead to death, personal
+// injury, or severe property or environmental damage
+// (individually and collectively, "Critical
+// Applications"). Customer assumes the sole risk and
+// liability of any use of AMD products in Critical
+// Applications, subject only to applicable laws and
+// regulations governing limitations on product liability.
+//
+// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
+// PART OF THIS FILE AT ALL TIMES.
+////////////////////////////////////////////////////////////
+// 
+///////////////////////////////////////////////////////////////////////////////
+
+// These are user functions that should not be modified.  Changes to the defines
+// or code within the functions may alter the accuracy of the calculations.
+
+// Define debug to provide extra messages durring elaboration
+//`define DEBUG 1
+
+// FRAC_PRECISION describes the width of the fractional portion of the fixed
+//    point numbers.  These should not be modified, they are for development 
+//    only
+`define FRAC_PRECISION  10
+// FIXED_WIDTH describes the total size for fixed point calculations(int+frac).
+// Warning: L.50 and below will not calculate properly with FIXED_WIDTHs 
+//    greater than 32
+`define FIXED_WIDTH     32 
+
+// This function takes a fixed point number and rounds it to the nearest
+//    fractional precision bit.
+function [`FIXED_WIDTH:1] round_frac
+   (
+      // Input is (FIXED_WIDTH-FRAC_PRECISION).FRAC_PRECISION fixed point number
+      input [`FIXED_WIDTH:1] decimal,  
+
+      // This describes the precision of the fraction, for example a value
+      //    of 1 would modify the fractional so that instead of being a .16
+      //    fractional, it would be a .1 (rounded to the nearest 0.5 in turn)
+      input [`FIXED_WIDTH:1] precision 
+   );
+
+   begin
+   
+`ifdef DEBUG
+      $display("round_frac - decimal: %h, precision: %h", decimal, precision);
+`endif
+      // If the fractional precision bit is high then round up
+      if( decimal[(`FRAC_PRECISION-precision)] == 1'b1) begin
+         round_frac = decimal + (1'b1 << (`FRAC_PRECISION-precision));
+      end else begin
+         round_frac = decimal;
+      end
+`ifdef DEBUG
+      $display("round_frac: %h", round_frac);
+`endif
+   end
+endfunction
+
+// This function calculates high_time, low_time, w_edge, and no_count
+//    of a non-fractional counter based on the divide and duty cycle
+//
+// NOTE: high_time and low_time are returned as integers between 0 and 63 
+//    inclusive.  64 should equal 6'b000000 (in other words it is okay to 
+//    ignore the overflow)
+function [13:0] mmcm_pll_divider
+   (
+      input [7:0] divide,        // Max divide is 128
+      input [31:0] duty_cycle    // Duty cycle is multiplied by 100,000
+   );
+
+   reg [`FIXED_WIDTH:1]    duty_cycle_fix;
+   
+   // High/Low time is initially calculated with a wider integer to prevent a
+   // calculation error when it overflows to 64.
+   reg [6:0]               high_time;
+   reg [6:0]               low_time;
+   reg                     w_edge;
+   reg                     no_count;
+
+   reg [`FIXED_WIDTH:1]    temp;
+
+   begin
+      // Duty Cycle must be between 0 and 1,000
+      if(duty_cycle <=0 || duty_cycle >= 100000) begin
+`ifndef SYNTHESIS
+         $display("ERROR: duty_cycle: %d is invalid", duty_cycle);
+   `endif
+         $finish;
+      end
+
+      // Convert to FIXED_WIDTH-FRAC_PRECISION.FRAC_PRECISION fixed point
+      duty_cycle_fix = (duty_cycle << `FRAC_PRECISION) / 100_000;
+      
+`ifdef DEBUG
+      $display("duty_cycle_fix: %h", duty_cycle_fix);
+`endif
+
+      // If the divide is 1 nothing needs to be set except the no_count bit.
+      //    Other values are dummies
+      if(divide == 7'h01) begin
+         high_time   = 7'h01;
+         w_edge      = 1'b0;
+         low_time    = 7'h01;
+         no_count    = 1'b1;
+      end else begin
+         temp = round_frac(duty_cycle_fix*divide, 1);
+
+         // comes from above round_frac
+         high_time   = temp[`FRAC_PRECISION+7:`FRAC_PRECISION+1]; 
+         // If the duty cycle * divide rounded is .5 or greater then this bit
+         //    is set.
+         w_edge      = temp[`FRAC_PRECISION]; // comes from round_frac
+         
+         // If the high time comes out to 0, it needs to be set to at least 1
+         // and w_edge set to 0
+         if(high_time == 7'h00) begin
+            high_time   = 7'h01;
+            w_edge      = 1'b0;
+         end
+
+         if(high_time == divide) begin
+            high_time   = divide - 1;
+            w_edge      = 1'b1;
+         end
+         
+         // Calculate low_time based on the divide setting and set no_count to
+         //    0 as it is only used when divide is 1.
+         low_time    = divide - high_time; 
+         no_count    = 1'b0;
+      end
+
+      // Set the return value.
+      mmcm_pll_divider = {w_edge,no_count,high_time[5:0],low_time[5:0]};
+   end
+endfunction
+
+// This function calculates mx, delay_time, and phase_mux 
+//  of a non-fractional counter based on the divide and phase
+//
+// NOTE: The only valid value for the MX bits is 2'b00 to ensure the coarse mux
+//    is used.
+function [10:0] mmcm_pll_phase
+   (
+      // divide must be an integer (use fractional if not)
+      //  assumed that divide already checked to be valid
+      input [7:0] divide, // Max divide is 128
+
+      // Phase is given in degrees (-360,000 to 360,000)
+      input signed [31:0] phase
+   );
+
+   reg [`FIXED_WIDTH:1] phase_in_cycles;
+   reg [`FIXED_WIDTH:1] phase_fixed;
+   reg [1:0]            mx;
+   reg [5:0]            delay_time;
+   reg [2:0]            phase_mux;
+
+   reg [`FIXED_WIDTH:1] temp;
+
+   begin
+`ifdef DEBUG
+      $display("mmcm_pll_phase-divide:%d,phase:%d",
+         divide, phase);
+`endif
+   
+      if ((phase < -360000) || (phase > 360000)) begin
+`ifndef SYNTHESIS
+      $display("ERROR: phase of $phase is not between -360000 and 360000");
+	`endif
+         $finish;
+      end
+
+      // If phase is less than 0, convert it to a positive phase shift
+      // Convert to (FIXED_WIDTH-FRAC_PRECISION).FRAC_PRECISION fixed point
+      if(phase < 0) begin
+         phase_fixed = ( (phase + 360000) << `FRAC_PRECISION ) / 1000;
+      end else begin
+         phase_fixed = ( phase << `FRAC_PRECISION ) / 1000;
+      end
+
+      // Put phase in terms of decimal number of vco clock cycles
+      phase_in_cycles = ( phase_fixed * divide ) / 360;
+
+`ifdef DEBUG
+      $display("phase_in_cycles: %h", phase_in_cycles);
+`endif  
+      
+
+	 temp  =  round_frac(phase_in_cycles, 3);
+
+	 // set mx to 2'b00 that the phase mux from the VCO is enabled
+	 mx    			=  2'b00; 
+	 phase_mux      =  temp[`FRAC_PRECISION:`FRAC_PRECISION-2];
+	 delay_time     =  temp[`FRAC_PRECISION+6:`FRAC_PRECISION+1];
+      
+`ifdef DEBUG
+      $display("temp: %h", temp);
+`endif
+
+      // Setup the return value
+      mmcm_pll_phase={mx, phase_mux, delay_time};
+   end
+endfunction
+
+// This function takes the divide value and outputs the necessary lock values
+function [39:0] mmcm_pll_lock_lookup
+   (
+      input [6:0] divide // Max divide is 64
+   );
+   
+   reg [2559:0]   lookup;
+   
+   begin
+      lookup = {
+         // This table is composed of:
+         // LockRefDly_LockFBDly_LockCnt_LockSatHigh_UnlockCnt
+         40'b00110_00110_1111101000_1111101001_0000000001,
+         40'b00110_00110_1111101000_1111101001_0000000001,
+         40'b01000_01000_1111101000_1111101001_0000000001,
+         40'b01011_01011_1111101000_1111101001_0000000001,
+         40'b01110_01110_1111101000_1111101001_0000000001,
+         40'b10001_10001_1111101000_1111101001_0000000001,
+         40'b10011_10011_1111101000_1111101001_0000000001,
+         40'b10110_10110_1111101000_1111101001_0000000001,
+         40'b11001_11001_1111101000_1111101001_0000000001,
+         40'b11100_11100_1111101000_1111101001_0000000001,
+         40'b11111_11111_1110000100_1111101001_0000000001,
+         40'b11111_11111_1100111001_1111101001_0000000001,
+         40'b11111_11111_1011101110_1111101001_0000000001,
+         40'b11111_11111_1010111100_1111101001_0000000001,
+         40'b11111_11111_1010001010_1111101001_0000000001,
+         40'b11111_11111_1001110001_1111101001_0000000001,
+         40'b11111_11111_1000111111_1111101001_0000000001,
+         40'b11111_11111_1000100110_1111101001_0000000001,
+         40'b11111_11111_1000001101_1111101001_0000000001,
+         40'b11111_11111_0111110100_1111101001_0000000001,
+         40'b11111_11111_0111011011_1111101001_0000000001,
+         40'b11111_11111_0111000010_1111101001_0000000001,
+         40'b11111_11111_0110101001_1111101001_0000000001,
+         40'b11111_11111_0110010000_1111101001_0000000001,
+         40'b11111_11111_0110010000_1111101001_0000000001,
+         40'b11111_11111_0101110111_1111101001_0000000001,
+         40'b11111_11111_0101011110_1111101001_0000000001,
+         40'b11111_11111_0101011110_1111101001_0000000001,
+         40'b11111_11111_0101000101_1111101001_0000000001,
+         40'b11111_11111_0101000101_1111101001_0000000001,
+         40'b11111_11111_0100101100_1111101001_0000000001,
+         40'b11111_11111_0100101100_1111101001_0000000001,
+         40'b11111_11111_0100101100_1111101001_0000000001,
+         40'b11111_11111_0100010011_1111101001_0000000001,
+         40'b11111_11111_0100010011_1111101001_0000000001,
+         40'b11111_11111_0100010011_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001
+      };
+      
+      // Set lookup_entry with the explicit bits from lookup with a part select
+      mmcm_pll_lock_lookup = lookup[ ((64-divide)*40) +: 40];
+   `ifdef DEBUG
+      $display("lock_lookup: %b", mmcm_pll_lock_lookup);
+   `endif
+   end
+endfunction
+
+// This function takes the divide value and the bandwidth setting of the PLL
+//  and outputs the digital filter settings necessary.
+function [9:0] mmcm_pll_filter_lookup
+   (
+      input [6:0] divide, // Max divide is 64
+      input [8*9:0] BANDWIDTH
+   );
+   
+   reg [639:0] lookup_low;
+   reg [639:0] lookup_high;
+   
+   reg [9:0] lookup_entry;
+   
+   begin
+      lookup_low = {
+         // CP_RES_LFHF
+         10'b0010_1111_00,
+         10'b0010_1111_00,
+         10'b0010_0111_00,
+         10'b0010_1101_00,
+         10'b0010_0101_00,
+         10'b0010_0101_00,
+         10'b0010_1001_00,
+         10'b0010_1110_00,
+         10'b0010_1110_00,
+         10'b0010_0001_00,
+         10'b0010_0001_00,
+         10'b0010_0110_00,
+         10'b0010_0110_00,
+         10'b0010_0110_00,
+         10'b0010_0110_00,
+         10'b0010_1010_00,
+         10'b0010_1010_00,
+         10'b0010_1010_00,
+         10'b0010_1010_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_1100_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0010_0010_00,
+         10'b0011_1100_00,
+         10'b0011_1100_00,
+         10'b0011_1100_00,
+         10'b0011_1100_00,
+         10'b0011_1100_00,
+         10'b0011_1100_00,
+         10'b0011_1100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00
+      };
+      
+      lookup_high = {
+         // CP_RES_LFHF
+         10'b0011_0111_00,
+         10'b0011_0111_00,
+         10'b0101_1111_00,
+         10'b0111_1111_00,
+         10'b0111_1011_00,
+         10'b1101_0111_00,
+         10'b1110_1011_00,
+         10'b1110_1101_00,
+         10'b1111_1101_00,
+         10'b1111_0111_00,
+         10'b1111_1011_00,
+         10'b1111_1101_00,
+         10'b1111_0011_00,
+         10'b1110_0101_00,
+         10'b1111_0101_00,
+         10'b1111_0101_00,
+         10'b1111_0101_00,
+         10'b1111_0101_00,
+         10'b0111_0110_00,
+         10'b0111_0110_00,
+         10'b0111_0110_00,
+         10'b0111_0110_00,
+         10'b0101_1100_00,
+         10'b0101_1100_00,
+         10'b0101_1100_00,
+         10'b1100_0001_00,
+         10'b1100_0001_00,
+         10'b1100_0001_00,
+         10'b1100_0001_00,
+         10'b1100_0001_00,
+         10'b1100_0001_00,
+         10'b1100_0001_00,
+         10'b1100_0001_00,
+         10'b0100_0010_00,
+         10'b0100_0010_00,
+         10'b0100_0010_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0011_0100_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0010_1000_00,
+         10'b0100_1100_00,
+         10'b0100_1100_00,
+         10'b0100_1100_00,
+         10'b0100_1100_00,
+         10'b0100_1100_00,
+         10'b0100_1100_00,
+         10'b0100_1100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00,
+         10'b0010_0100_00
+      };
+      
+      // Set lookup_entry with the explicit bits from lookup with a part select
+      if(BANDWIDTH == "LOW") begin
+         // Low Bandwidth
+         mmcm_pll_filter_lookup = lookup_low[ ((64-divide)*10) +: 10];
+      end else begin
+         // High or optimized bandwidth
+         mmcm_pll_filter_lookup = lookup_high[ ((64-divide)*10) +: 10];
+      end
+      
+   `ifdef DEBUG
+      $display("filter_lookup: %b", mmcm_pll_filter_lookup);
+   `endif
+   end
+endfunction
+
+// This function takes in the divide, phase, and duty cycle
+// setting to calculate the upper and lower counter registers.
+function [37:0] mmcm_pll_count_calc
+   (
+      input [7:0] divide, // Max divide is 128
+      input signed [31:0] phase,
+      input [31:0] duty_cycle // Multiplied by 100,000
+   );
+   
+   reg [13:0] div_calc;
+   reg [16:0] phase_calc;
+   
+   begin
+   `ifdef DEBUG
+      $display("mmcm_pll_count_calc- divide:%h, phase:%d, duty_cycle:%d",
+         divide, phase, duty_cycle);
+`endif
+   
+      // w_edge[13], no_count[12], high_time[11:6], low_time[5:0]
+      div_calc = mmcm_pll_divider(divide, duty_cycle);
+      // mx[10:9], pm[8:6], dt[5:0]
+      phase_calc = mmcm_pll_phase(divide, phase);
+
+      // Return value is the upper and lower address of counter
+      //    Upper address is:
+      //       RESERVED    [31:26]
+      //       MX          [25:24]
+      //       EDGE        [23]
+      //       NOCOUNT     [22]
+      //       DELAY_TIME  [21:16]
+      //    Lower Address is:
+      //       PHASE_MUX   [15:13]
+      //       RESERVED    [12]
+      //       HIGH_TIME   [11:6]
+      //       LOW_TIME    [5:0]
+      
+`ifdef DEBUG
+      $display("div:%d dc:%d phase:%d ht:%d lt:%d ed:%d nc:%d mx:%d dt:%d pm:%d",
+         divide, duty_cycle, phase, div_calc[11:6], div_calc[5:0], 
+         div_calc[13], div_calc[12], 
+         phase_calc[16:15], phase_calc[5:0], phase_calc[14:12]);
+`endif
+      
+      mmcm_pll_count_calc =
+         {
+            // Upper Address
+            6'h00, phase_calc[10:9], div_calc[13:12], phase_calc[5:0], 
+            // Lower Address
+            phase_calc[8:6], 1'b0, div_calc[11:0]
+         };
+   end
+endfunction
diff --git a/src/ip/clk_wiz_0/mmcm_pll_drp_func_us_mmcm.vh b/src/ip/clk_wiz_0/mmcm_pll_drp_func_us_mmcm.vh
new file mode 100755
index 0000000..154c81f
--- /dev/null
+++ b/src/ip/clk_wiz_0/mmcm_pll_drp_func_us_mmcm.vh
@@ -0,0 +1,680 @@
+// (c) Copyright 2009-2010, 2023 Advanced Micro Devices, Inc. All rights reserved.
+//
+// This file contains confidential and proprietary information
+// of AMD and is protected under U.S. and international copyright
+// and other intellectual property laws.
+//
+// DISCLAIMER
+// This disclaimer is not a license and does not grant any
+// rights to the materials distributed herewith. Except as
+// otherwise provided in a valid license issued to you by
+// AMD, and to the maximum extent permitted by applicable
+// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
+// WITH ALL FAULTS, AND AMD HEREBY DISCLAIMS ALL WARRANTIES
+// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
+// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
+// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
+// (2) AMD shall not be liable (whether in contract or tort,
+// including negligence, or under any other theory of
+// liability) for any loss or damage of any kind or nature
+// related to, arising under or in connection with these
+// materials, including for any direct, or any indirect,
+// special, incidental, or consequential loss or damage
+// (including loss of data, profits, goodwill, or any type of
+// loss or damage suffered as a result of any action brought
+// by a third party) even if such damage or loss was
+// reasonably foreseeable or AMD had been advised of the
+// possibility of the same.
+//
+// CRITICAL APPLICATIONS
+// AMD products are not designed or intended to be fail-
+// safe, or for use in any application requiring fail-safe
+// performance, such as life-support or safety devices or
+// systems, Class III medical devices, nuclear facilities,
+// applications related to the deployment of airbags, or any
+// other applications that could lead to death, personal
+// injury, or severe property or environmental damage
+// (individually and collectively, "Critical
+// Applications"). Customer assumes the sole risk and
+// liability of any use of AMD products in Critical
+// Applications, subject only to applicable laws and
+// regulations governing limitations on product liability.
+//
+// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
+// PART OF THIS FILE AT ALL TIMES.
+////////////////////////////////////////////////////////////
+// 
+///////////////////////////////////////////////////////////////////////////////
+
+// These are user functions that should not be modified.  Changes to the defines
+// or code within the functions may alter the accuracy of the calculations.
+
+// Define debug to provide extra messages durring elaboration
+//`define DEBUG 1
+
+// FRAC_PRECISION describes the width of the fractional portion of the fixed
+//    point numbers.  These should not be modified, they are for development 
+//    only
+`define FRAC_PRECISION  10
+// FIXED_WIDTH describes the total size for fixed point calculations(int+frac).
+// Warning: L.50 and below will not calculate properly with FIXED_WIDTHs 
+//    greater than 32
+`define FIXED_WIDTH     32 
+
+// This function takes a fixed point number and rounds it to the nearest
+//    fractional precision bit.
+function [`FIXED_WIDTH:1] round_frac
+   (
+      // Input is (FIXED_WIDTH-FRAC_PRECISION).FRAC_PRECISION fixed point number
+      input [`FIXED_WIDTH:1] decimal,  
+
+      // This describes the precision of the fraction, for example a value
+      //    of 1 would modify the fractional so that instead of being a .16
+      //    fractional, it would be a .1 (rounded to the nearest 0.5 in turn)
+      input [`FIXED_WIDTH:1] precision 
+   );
+
+   begin
+   
+   `ifdef DEBUG
+      $display("round_frac - decimal: %h, precision: %h", decimal, precision);
+   `endif
+      // If the fractional precision bit is high then round up
+      if( decimal[(`FRAC_PRECISION-precision)] == 1'b1) begin
+         round_frac = decimal + (1'b1 << (`FRAC_PRECISION-precision));
+      end else begin
+         round_frac = decimal;
+      end
+   `ifdef DEBUG
+      $display("round_frac: %h", round_frac);
+   `endif
+   end
+endfunction
+
+// This function calculates high_time, low_time, w_edge, and no_count
+//    of a non-fractional counter based on the divide and duty cycle
+//
+// NOTE: high_time and low_time are returned as integers between 0 and 63 
+//    inclusive.  64 should equal 6'b000000 (in other words it is okay to 
+//    ignore the overflow)
+function [13:0] mmcm_pll_divider
+   (
+      input [7:0] divide,        // Max divide is 128
+      input [31:0] duty_cycle    // Duty cycle is multiplied by 100,000
+   );
+
+   reg [`FIXED_WIDTH:1]    duty_cycle_fix;
+   
+   // High/Low time is initially calculated with a wider integer to prevent a
+   // calculation error when it overflows to 64.
+   reg [6:0]               high_time;
+   reg [6:0]               low_time;
+   reg                     w_edge;
+   reg                     no_count;
+
+   reg [`FIXED_WIDTH:1]    temp;
+
+   begin
+      // Duty Cycle must be between 0 and 1,000
+      if(duty_cycle <=0 || duty_cycle >= 100000) begin
+`ifndef SYNTHESIS
+         $display("ERROR: duty_cycle: %d is invalid", duty_cycle);
+   `endif
+         $finish;
+      end
+
+      // Convert to FIXED_WIDTH-FRAC_PRECISION.FRAC_PRECISION fixed point
+      duty_cycle_fix = (duty_cycle << `FRAC_PRECISION) / 100_000;
+      
+   `ifdef DEBUG
+      $display("duty_cycle_fix: %h", duty_cycle_fix);
+   `endif
+
+      // If the divide is 1 nothing needs to be set except the no_count bit.
+      //    Other values are dummies
+      if(divide == 7'h01) begin
+         high_time   = 7'h01;
+         w_edge      = 1'b0;
+         low_time    = 7'h01;
+         no_count    = 1'b1;
+      end else begin
+         temp = round_frac(duty_cycle_fix*divide, 1);
+
+         // comes from above round_frac
+         high_time   = temp[`FRAC_PRECISION+7:`FRAC_PRECISION+1]; 
+         // If the duty cycle * divide rounded is .5 or greater then this bit
+         //    is set.
+         w_edge      = temp[`FRAC_PRECISION]; // comes from round_frac
+         
+         // If the high time comes out to 0, it needs to be set to at least 1
+         // and w_edge set to 0
+         if(high_time == 7'h00) begin
+            high_time   = 7'h01;
+            w_edge      = 1'b0;
+         end
+
+         if(high_time == divide) begin
+            high_time   = divide - 1;
+            w_edge      = 1'b1;
+         end
+         
+         // Calculate low_time based on the divide setting and set no_count to
+         //    0 as it is only used when divide is 1.
+         low_time    = divide - high_time; 
+         no_count    = 1'b0;
+      end
+
+      // Set the return value.
+      mmcm_pll_divider = {w_edge,no_count,high_time[5:0],low_time[5:0]};
+   end
+endfunction
+
+// This function calculates mx, delay_time, and phase_mux 
+//  of a non-fractional counter based on the divide and phase
+//
+// NOTE: The only valid value for the MX bits is 2'b00 to ensure the coarse mux
+//    is used.
+function [10:0] mmcm_pll_phase
+   (
+      // divide must be an integer (use fractional if not)
+      //  assumed that divide already checked to be valid
+      input [7:0] divide, // Max divide is 128
+
+      // Phase is given in degrees (-360,000 to 360,000)
+      input signed [31:0] phase
+   );
+
+   reg [`FIXED_WIDTH:1] phase_in_cycles;
+   reg [`FIXED_WIDTH:1] phase_fixed;
+   reg [1:0]            mx;
+   reg [5:0]            delay_time;
+   reg [2:0]            phase_mux;
+
+   reg [`FIXED_WIDTH:1] temp;
+
+   begin
+`ifdef DEBUG
+      $display("mmcm_pll_phase-divide:%d,phase:%d",
+         divide, phase);
+`endif
+   
+      if ((phase < -360000) || (phase > 360000)) begin
+`ifndef SYNTHESIS
+      $display("ERROR: phase of $phase is not between -360000 and 360000");
+	`endif
+         $finish;
+      end
+
+      // If phase is less than 0, convert it to a positive phase shift
+      // Convert to (FIXED_WIDTH-FRAC_PRECISION).FRAC_PRECISION fixed point
+      if(phase < 0) begin
+         phase_fixed = ( (phase + 360000) << `FRAC_PRECISION ) / 1000;
+      end else begin
+         phase_fixed = ( phase << `FRAC_PRECISION ) / 1000;
+      end
+
+      // Put phase in terms of decimal number of vco clock cycles
+      phase_in_cycles = ( phase_fixed * divide ) / 360;
+
+`ifdef DEBUG
+      $display("phase_in_cycles: %h", phase_in_cycles);
+`endif  
+      
+
+	 temp  =  round_frac(phase_in_cycles, 3);
+
+	 // set mx to 2'b00 that the phase mux from the VCO is enabled
+	 mx    			=  2'b00; 
+	 phase_mux      =  temp[`FRAC_PRECISION:`FRAC_PRECISION-2];
+	 delay_time     =  temp[`FRAC_PRECISION+6:`FRAC_PRECISION+1];
+      
+   `ifdef DEBUG
+      $display("temp: %h", temp);
+   `endif
+
+      // Setup the return value
+      mmcm_pll_phase={mx, phase_mux, delay_time};
+   end
+endfunction
+
+// This function takes the divide value and outputs the necessary lock values
+function [39:0] mmcm_pll_lock_lookup
+   (
+      input [6:0] divide // Max divide is 64
+   );
+   
+   reg [2559:0]   lookup;
+   
+   begin
+      lookup = {
+         // This table is composed of:
+         // LockRefDly_LockFBDly_LockCnt_LockSatHigh_UnlockCnt
+         40'b00110_00110_1111101000_1111101001_0000000001,
+         40'b00110_00110_1111101000_1111101001_0000000001,
+         40'b01000_01000_1111101000_1111101001_0000000001,
+         40'b01011_01011_1111101000_1111101001_0000000001,
+         40'b01110_01110_1111101000_1111101001_0000000001,
+         40'b10001_10001_1111101000_1111101001_0000000001,
+         40'b10011_10011_1111101000_1111101001_0000000001,
+         40'b10110_10110_1111101000_1111101001_0000000001,
+         40'b11001_11001_1111101000_1111101001_0000000001,
+         40'b11100_11100_1111101000_1111101001_0000000001,
+         40'b11111_11111_1110000100_1111101001_0000000001,
+         40'b11111_11111_1100111001_1111101001_0000000001,
+         40'b11111_11111_1011101110_1111101001_0000000001,
+         40'b11111_11111_1010111100_1111101001_0000000001,
+         40'b11111_11111_1010001010_1111101001_0000000001,
+         40'b11111_11111_1001110001_1111101001_0000000001,
+         40'b11111_11111_1000111111_1111101001_0000000001,
+         40'b11111_11111_1000100110_1111101001_0000000001,
+         40'b11111_11111_1000001101_1111101001_0000000001,
+         40'b11111_11111_0111110100_1111101001_0000000001,
+         40'b11111_11111_0111011011_1111101001_0000000001,
+         40'b11111_11111_0111000010_1111101001_0000000001,
+         40'b11111_11111_0110101001_1111101001_0000000001,
+         40'b11111_11111_0110010000_1111101001_0000000001,
+         40'b11111_11111_0110010000_1111101001_0000000001,
+         40'b11111_11111_0101110111_1111101001_0000000001,
+         40'b11111_11111_0101011110_1111101001_0000000001,
+         40'b11111_11111_0101011110_1111101001_0000000001,
+         40'b11111_11111_0101000101_1111101001_0000000001,
+         40'b11111_11111_0101000101_1111101001_0000000001,
+         40'b11111_11111_0100101100_1111101001_0000000001,
+         40'b11111_11111_0100101100_1111101001_0000000001,
+         40'b11111_11111_0100101100_1111101001_0000000001,
+         40'b11111_11111_0100010011_1111101001_0000000001,
+         40'b11111_11111_0100010011_1111101001_0000000001,
+         40'b11111_11111_0100010011_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001
+      };
+      
+      // Set lookup_entry with the explicit bits from lookup with a part select
+      mmcm_pll_lock_lookup = lookup[ ((64-divide)*40) +: 40];
+   `ifdef DEBUG
+      $display("lock_lookup: %b", mmcm_pll_lock_lookup);
+   `endif
+   end
+endfunction
+
+// This function takes the divide value and the bandwidth setting of the MMCM
+//  and outputs the digital filter settings necessary.
+function [9:0] mmcm_pll_filter_lookup
+   (
+      input [6:0] divide, // Max divide is 64
+      input [8*9:0] BANDWIDTH
+   );
+   
+   reg [639:0] lookup_low;
+   reg [639:0] lookup_high;
+   
+   reg [9:0] lookup_entry;
+   
+   begin
+      lookup_low = {
+         // CP_RES_LFHF
+         10'b0010_1111_11,
+         10'b0010_1111_11,
+         10'b0010_1111_11,
+         10'b0010_1111_11,
+         10'b0010_1111_11,
+         10'b0010_1111_11,
+         10'b0010_0111_11,
+         10'b0010_0111_11,
+         10'b0010_0111_11,
+         10'b0010_1101_11,
+         10'b0010_1101_11,
+         10'b0010_1101_11,
+         10'b0010_0011_11,
+         10'b0010_0101_11,
+         10'b0010_0101_11,
+         10'b0010_0101_11,
+         10'b0010_1001_11,
+         10'b0010_1001_11,
+         10'b0010_1110_11,
+         10'b0010_1110_11,
+         10'b0010_1110_11,
+         10'b0010_1110_11,
+         10'b0010_1110_11,
+         10'b0010_1110_11,
+         10'b0010_0001_11,
+         10'b0010_0001_11,
+         10'b0010_0001_11,
+         10'b0010_0001_11,
+         10'b0010_0001_11,
+         10'b0010_0110_11,
+         10'b0010_0110_11,
+         10'b0010_0110_11,
+         10'b0010_0110_11,
+         10'b0010_0110_11,
+         10'b0010_0110_11,
+         10'b0010_0110_11,
+         10'b0010_0110_11,
+         10'b0010_0110_11,
+         10'b0010_0110_11,
+         10'b0010_1010_11,
+         10'b0010_1010_11,
+         10'b0010_1010_11,
+         10'b0010_1010_11,
+         10'b0010_1010_11,
+         10'b0010_1010_11,
+         10'b0010_1010_11,
+         10'b0010_1010_11,
+         10'b0010_1100_11,
+         10'b0010_1100_11,
+         10'b0010_1100_11,
+         10'b0010_1100_11,
+         10'b0010_1100_11,
+         10'b0010_1100_11,
+         10'b0010_1100_11,
+         10'b0010_1100_11,
+         10'b0010_1100_11,
+         10'b0010_1100_11,
+         10'b0010_1100_11,
+         10'b0010_1100_11,
+         10'b0010_1100_11,
+         10'b0010_1100_11,
+         10'b0010_1100_11,
+         10'b0010_1100_11,
+         10'b0010_1100_11
+      };
+      
+      lookup_high = {
+         // CP_RES_LFHF
+         10'b0010_1111_11,
+         10'b0010_1111_11,
+         10'b0010_1011_11,
+         10'b0011_1111_11,
+         10'b0100_1111_11,
+         10'b0100_1111_11,
+         10'b0101_1111_11,
+         10'b0110_1111_11,
+         10'b0111_1111_11,
+         10'b0111_1111_11,
+         10'b1100_1111_11,
+         10'b1101_1111_11,
+         10'b1110_1111_11,
+         10'b1111_1111_11,
+         10'b1111_1111_11,
+         10'b1110_0111_11,
+         10'b1110_1011_11,
+         10'b1111_0111_11,
+         10'b1111_1011_11,
+         10'b1111_1011_11,
+         10'b1110_1101_11,
+         10'b1111_1101_11,
+         10'b1111_1101_11,
+         10'b1111_0011_11,
+         10'b1111_0011_11,
+         10'b1111_0011_11,
+         10'b1110_0101_11,
+         10'b1110_0101_11,
+         10'b1110_0101_11,
+         10'b1111_0101_11,
+         10'b1111_0101_11,
+         10'b1111_0101_11,
+         10'b1111_1001_11,
+         10'b1111_1001_11,
+         10'b1111_1001_11,
+         10'b1111_1001_11,
+         10'b1111_1001_11,
+         10'b1110_1110_11,
+         10'b1110_1110_11,
+         10'b1110_1110_11,
+         10'b1110_1110_11,
+         10'b1111_1110_11,
+         10'b1111_1110_11,
+         10'b1111_1110_11,
+         10'b1111_1110_11,
+         10'b1111_1110_11,
+         10'b1111_1110_11,
+         10'b1111_1110_11,
+         10'b1110_0001_11,
+         10'b1110_0001_11,
+         10'b1110_0001_11,
+         10'b1110_0001_11,
+         10'b1110_0001_11,
+         10'b1100_0110_11,
+         10'b1100_0110_11,
+         10'b1100_0110_11,
+         10'b1100_0110_11,
+         10'b1100_0110_11,
+         10'b1100_0110_11,
+         10'b1100_0110_11,
+         10'b1100_1010_11,
+         10'b1100_1010_11,
+         10'b1100_1010_11,
+         10'b1100_1010_11
+      };
+      
+      // Set lookup_entry with the explicit bits from lookup with a part select
+      if(BANDWIDTH == "LOW") begin
+         // Low Bandwidth
+         mmcm_pll_filter_lookup = lookup_low[ ((64-divide)*10) +: 10];
+      end else begin
+         // High or optimized bandwidth
+         mmcm_pll_filter_lookup = lookup_high[ ((64-divide)*10) +: 10];
+      end
+      
+   `ifdef DEBUG
+      $display("filter_lookup: %b", mmcm_pll_filter_lookup);
+   `endif
+   end
+endfunction
+
+// This function takes in the divide, phase, and duty cycle
+// setting to calculate the upper and lower counter registers.
+function [37:0] mmcm_pll_count_calc
+   (
+      input [7:0] divide, // Max divide is 128
+      input signed [31:0] phase,
+      input [31:0] duty_cycle // Multiplied by 100,000
+   );
+   
+   reg [13:0] div_calc;
+   reg [16:0] phase_calc;
+   
+   begin
+   `ifdef DEBUG
+      $display("mmcm_pll_count_calc- divide:%h, phase:%d, duty_cycle:%d",
+         divide, phase, duty_cycle);
+   `endif
+   
+      // w_edge[13], no_count[12], high_time[11:6], low_time[5:0]
+      div_calc = mmcm_pll_divider(divide, duty_cycle);
+      // mx[10:9], pm[8:6], dt[5:0]
+      phase_calc = mmcm_pll_phase(divide, phase);
+
+      // Return value is the upper and lower address of counter
+      //    Upper address is:
+      //       RESERVED    [31:26]
+      //       MX          [25:24]
+      //       EDGE        [23]
+      //       NOCOUNT     [22]
+      //       DELAY_TIME  [21:16]
+      //    Lower Address is:
+      //       PHASE_MUX   [15:13]
+      //       RESERVED    [12]
+      //       HIGH_TIME   [11:6]
+      //       LOW_TIME    [5:0]
+      
+   `ifdef DEBUG
+      $display("div:%d dc:%d phase:%d ht:%d lt:%d ed:%d nc:%d mx:%d dt:%d pm:%d",
+         divide, duty_cycle, phase, div_calc[11:6], div_calc[5:0], 
+         div_calc[13], div_calc[12], 
+         phase_calc[16:15], phase_calc[5:0], phase_calc[14:12]);
+   `endif
+      
+      mmcm_pll_count_calc =
+         {
+            // Upper Address
+            6'h00, phase_calc[10:9], div_calc[13:12], phase_calc[5:0], 
+            // Lower Address
+            phase_calc[8:6], 1'b0, div_calc[11:0]
+         };
+   end
+endfunction
+
+
+// This function takes in the divide, phase, and duty cycle
+// setting to calculate the upper and lower counter registers.
+// for fractional multiply/divide functions.
+//
+// 
+function [37:0] mmcm_frac_count_calc
+   (
+      input [7:0] divide, // Max divide is 128
+      input signed [31:0] phase,
+      input [31:0] duty_cycle, // Multiplied by 1,000
+      input [9:0] frac // Multiplied by 1000
+   );
+   
+	//Required for fractional divide calculations
+			  reg	[7:0]			lt_frac;
+			  reg	[7:0]			ht_frac;
+			
+			  reg	/*[7:0]*/			wf_fall_frac;
+			  reg	/*[7:0]*/			wf_rise_frac;
+
+			  reg [31:0] a;
+			  reg	[7:0]			pm_rise_frac_filtered ;
+			  reg	[7:0]			pm_fall_frac_filtered ;	
+			  reg [7:0]			clkout0_divide_int;
+			  reg [2:0]			clkout0_divide_frac;
+			  reg	[7:0]			even_part_high;
+			  reg	[7:0]			even_part_low;
+
+			  reg	[7:0]			odd;
+			  reg	[7:0]			odd_and_frac;
+
+			  reg	[7:0]			pm_fall;
+			  reg	[7:0]			pm_rise;
+			  reg	[7:0]			dt;
+			  reg	[7:0]			dt_int; 
+			  reg [63:0]		dt_calc;
+
+			  reg	[7:0]			pm_rise_frac; 
+			  reg	[7:0]			pm_fall_frac;
+	 
+			  reg [31:0] a_per_in_octets;
+			  reg [31:0] a_phase_in_cycles;
+
+				parameter precision = 0.125;
+
+			  reg [31:0] phase_fixed; // changed to 31:0 from 32:1 jt 5/2/11
+			  reg [31: 0] phase_pos;
+			  reg [31: 0] phase_vco;
+			  reg [31:0] temp;// changed to 31:0 from 32:1 jt 5/2/11
+			  reg [13:0] div_calc;
+			  reg [16:0] phase_calc;
+
+   begin
+	`ifdef DEBUG
+			$display("mmcm_frac_count_calc- divide:%h, phase:%d, duty_cycle:%d",
+				divide, phase, duty_cycle);
+	`endif
+   
+   //convert phase to fixed
+   if ((phase < -360000) || (phase > 360000)) begin
+`ifndef SYNTHESIS
+      $display("ERROR: phase of $phase is not between -360000 and 360000");
+	`endif
+      $finish;
+   end
+
+
+      // Return value is
+      //    Transfer data
+      //       RESERVED     [37:36]
+      //       FRAC_TIME    [35:33]
+      //       FRAC_WF_FALL [32]
+      //    Upper address is:
+      //       RESERVED     [31:26]
+      //       MX           [25:24]
+      //       EDGE         [23]
+      //       NOCOUNT      [22]
+      //       DELAY_TIME   [21:16]
+      //    Lower Address is:
+      //       PHASE_MUX    [15:13]
+      //       RESERVED     [12]
+      //       HIGH_TIME    [11:6]
+      //       LOW_TIME     [5:0]
+      
+      
+
+	clkout0_divide_frac = frac / 125;
+	clkout0_divide_int = divide;
+
+	even_part_high = clkout0_divide_int >> 1;//$rtoi(clkout0_divide_int / 2);
+	even_part_low = even_part_high;
+									
+	odd = clkout0_divide_int - even_part_high - even_part_low;
+	odd_and_frac = (8*odd) + clkout0_divide_frac;
+
+	lt_frac = even_part_high - (odd_and_frac <= 9);//IF(odd_and_frac>9,even_part_high, even_part_high - 1)
+	ht_frac = even_part_low  - (odd_and_frac <= 8);//IF(odd_and_frac>8,even_part_low, even_part_low- 1)
+
+	pm_fall =  {odd[6:0],2'b00} + {6'h00, clkout0_divide_frac[2:1]}; // using >> instead of clkout0_divide_frac / 2 
+	pm_rise = 0; //0
+    
+	wf_fall_frac = ((odd_and_frac >=2) && (odd_and_frac <=9)) || ((clkout0_divide_frac == 1) && (clkout0_divide_int == 2));//CRS610807
+	wf_rise_frac = (odd_and_frac >=1) && (odd_and_frac <=8);//IF(odd_and_frac>=1,IF(odd_and_frac <= 8,1,0),0)
+
+
+
+	//Calculate phase in fractional cycles
+	a_per_in_octets		= (8 * divide) + (frac / 125) ;
+	a_phase_in_cycles	= (phase+10) * a_per_in_octets / 360000 ;//Adding 1 due to rounding errors
+	pm_rise_frac		= (a_phase_in_cycles[7:0] ==8'h00)?8'h00:a_phase_in_cycles[7:0] - {a_phase_in_cycles[7:3],3'b000};
+
+	dt_calc 	= ((phase+10) * a_per_in_octets / 8 )/360000 ;//TRUNC(phase* divide / 360); //or_simply (a_per_in_octets / 8)
+	dt 	= dt_calc[7:0];
+
+	pm_rise_frac_filtered = (pm_rise_frac >=8) ? (pm_rise_frac ) - 8: pm_rise_frac ;				//((phase_fixed * (divide + frac / 1000)) / 360) - {pm_rise_frac[7:3],3'b000};//$rtoi(clkout0_phase * clkout0_divide / 45);//a;
+
+	dt_int			= dt + (& pm_rise_frac[7:4]); //IF(pm_rise_overwriting>7,dt+1,dt)
+	pm_fall_frac		= pm_fall + pm_rise_frac;
+	pm_fall_frac_filtered	= pm_fall + pm_rise_frac - {pm_fall_frac[7:3], 3'b000};
+
+	div_calc	= mmcm_pll_divider(divide, duty_cycle); //Use to determine edge[7], no count[6]
+	phase_calc	= mmcm_pll_phase(divide, phase);// returns{mx[1:0], phase_mux[2:0], delay_time[5:0]}
+		
+      mmcm_frac_count_calc[37:0] =
+         {		2'b00, pm_fall_frac_filtered[2:0], wf_fall_frac,
+			1'b0, clkout0_divide_frac[2:0], 1'b1, wf_rise_frac, phase_calc[10:9], div_calc[13:12], dt[5:0], 
+			pm_rise_frac_filtered[2], pm_rise_frac_filtered[1], pm_rise_frac_filtered[0], 1'b0, ht_frac[5:0], lt_frac[5:0]
+		} ;
+
+   `ifdef DEBUG
+      $display("-%d.%d p%d>>  :DADDR_9_15 frac30to28.frac_en.wf_r_frac.dt:%b%d%d_%b:DADDR_7_13 pm_f_frac_filtered_29to27.wf_f_frac_26:%b%d:DADDR_8_14.pm_r_frac_filt_15to13.ht_frac.lt_frac:%b%b%b:", divide, frac, phase, clkout0_divide_frac, 1, wf_rise_frac, dt, pm_fall_frac_filtered, wf_fall_frac, pm_rise_frac_filtered, ht_frac, lt_frac);
+   `endif
+
+   end
+endfunction
+
diff --git a/src/ip/clk_wiz_0/mmcm_pll_drp_func_us_pll.vh b/src/ip/clk_wiz_0/mmcm_pll_drp_func_us_pll.vh
new file mode 100755
index 0000000..ff369d1
--- /dev/null
+++ b/src/ip/clk_wiz_0/mmcm_pll_drp_func_us_pll.vh
@@ -0,0 +1,555 @@
+///////////////////////////////////////////////////////////////////////////////
+//    
+//    Company:          AMD
+//    Engineer:         Jim Tatsukawa
+//    Date:             6/15/2015
+//    Design Name:      PLLE3 DRP
+//    Module Name:      plle3_drp_func.h
+//    Version:          1.10
+//    Target Devices:   UltraScale Architecture
+//    Tool versions:    2015.1
+//    Description:      This header provides the functions necessary to  
+//                      calculate the DRP register values for the V6 PLL.
+//                      
+//	Revision Notes:	8/11 - PLLE3 updated for PLLE3 file 4564419
+//	Revision Notes:	6/15 - pll_filter_lookup fixed for max M of 19
+//                         PM_Rise bits have been removed for PLLE3
+// 
+// (c) Copyright 2009-2010, 2023 Advanced Micro Devices, Inc. All rights reserved.
+//
+// This file contains confidential and proprietary information
+// of AMD and is protected under U.S. and international copyright
+// and other intellectual property laws.
+//
+// DISCLAIMER
+// This disclaimer is not a license and does not grant any
+// rights to the materials distributed herewith. Except as
+// otherwise provided in a valid license issued to you by
+// AMD, and to the maximum extent permitted by applicable
+// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
+// WITH ALL FAULTS, AND AMD HEREBY DISCLAIMS ALL WARRANTIES
+// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
+// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
+// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
+// (2) AMD shall not be liable (whether in contract or tort,
+// including negligence, or under any other theory of
+// liability) for any loss or damage of any kind or nature
+// related to, arising under or in connection with these
+// materials, including for any direct, or any indirect,
+// special, incidental, or consequential loss or damage
+// (including loss of data, profits, goodwill, or any type of
+// loss or damage suffered as a result of any action brought
+// by a third party) even if such damage or loss was
+// reasonably foreseeable or AMD had been advised of the
+// possibility of the same.
+//
+// CRITICAL APPLICATIONS
+// AMD products are not designed or intended to be fail-
+// safe, or for use in any application requiring fail-safe
+// performance, such as life-support or safety devices or
+// systems, Class III medical devices, nuclear facilities,
+// applications related to the deployment of airbags, or any
+// other applications that could lead to death, personal
+// injury, or severe property or environmental damage
+// (individually and collectively, "Critical
+// Applications"). Customer assumes the sole risk and
+// liability of any use of AMD products in Critical
+// Applications, subject only to applicable laws and
+// regulations governing limitations on product liability.
+//
+// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
+// PART OF THIS FILE AT ALL TIMES.
+////////////////////////////////////////////////////////////
+// 
+///////////////////////////////////////////////////////////////////////////////
+
+// These are user functions that should not be modified.  Changes to the defines
+// or code within the functions may alter the accuracy of the calculations.
+
+// Define debug to provide extra messages durring elaboration
+//`define DEBUG 1
+
+// FRAC_PRECISION describes the width of the fractional portion of the fixed
+//    point numbers.  These should not be modified, they are for development 
+//    only
+`define FRAC_PRECISION  10
+// FIXED_WIDTH describes the total size for fixed point calculations(int+frac).
+// Warning: L.50 and below will not calculate properly with FIXED_WIDTHs 
+//    greater than 32
+`define FIXED_WIDTH     32 
+
+// This function takes a fixed point number and rounds it to the nearest
+//    fractional precision bit.
+function [`FIXED_WIDTH:1] round_frac
+   (
+      // Input is (FIXED_WIDTH-FRAC_PRECISION).FRAC_PRECISION fixed point number
+      input [`FIXED_WIDTH:1] decimal,  
+
+      // This describes the precision of the fraction, for example a value
+      //    of 1 would modify the fractional so that instead of being a .16
+      //    fractional, it would be a .1 (rounded to the nearest 0.5 in turn)
+      input [`FIXED_WIDTH:1] precision 
+   );
+
+   begin
+   
+   `ifdef DEBUG
+      $display("round_frac - decimal: %h, precision: %h", decimal, precision);
+   `endif
+      // If the fractional precision bit is high then round up
+      if( decimal[(`FRAC_PRECISION-precision)] == 1'b1) begin
+         round_frac = decimal + (1'b1 << (`FRAC_PRECISION-precision));
+      end else begin
+         round_frac = decimal;
+      end
+   `ifdef DEBUG
+      $display("round_frac: %h", round_frac);
+   `endif
+   end
+endfunction
+
+// This function calculates high_time, low_time, w_edge, and no_count
+//    of a non-fractional counter based on the divide and duty cycle
+//
+// NOTE: high_time and low_time are returned as integers between 0 and 63 
+//    inclusive.  64 should equal 6'b000000 (in other words it is okay to 
+//    ignore the overflow)
+function [13:0] mmcm_pll_divider
+   (
+      input [7:0] divide,        // Max divide is 128
+      input [31:0] duty_cycle    // Duty cycle is multiplied by 100,000
+   );
+
+   reg [`FIXED_WIDTH:1]    duty_cycle_fix;
+   
+   // High/Low time is initially calculated with a wider integer to prevent a
+   // calculation error when it overflows to 64.
+   reg [6:0]               high_time;
+   reg [6:0]               low_time;
+   reg                     w_edge;
+   reg                     no_count;
+
+   reg [`FIXED_WIDTH:1]    temp;
+
+   begin
+      // Duty Cycle must be between 0 and 1,000
+      if(duty_cycle <=0 || duty_cycle >= 100000) begin
+`ifndef SYNTHESIS
+         $display("ERROR: duty_cycle: %d is invalid", duty_cycle);
+   `endif
+         $finish;
+      end
+
+      // Convert to FIXED_WIDTH-FRAC_PRECISION.FRAC_PRECISION fixed point
+      duty_cycle_fix = (duty_cycle << `FRAC_PRECISION) / 100_000;
+      
+   `ifdef DEBUG
+      $display("duty_cycle_fix: %h", duty_cycle_fix);
+   `endif
+
+      // If the divide is 1 nothing needs to be set except the no_count bit.
+      //    Other values are dummies
+      if(divide == 7'h01) begin
+         high_time   = 7'h01;
+         w_edge      = 1'b0;
+         low_time    = 7'h01;
+         no_count    = 1'b1;
+      end else begin
+         temp = round_frac(duty_cycle_fix*divide, 1);
+
+         // comes from above round_frac
+         high_time   = temp[`FRAC_PRECISION+7:`FRAC_PRECISION+1]; 
+         // If the duty cycle * divide rounded is .5 or greater then this bit
+         //    is set.
+         w_edge      = temp[`FRAC_PRECISION]; // comes from round_frac
+         
+         // If the high time comes out to 0, it needs to be set to at least 1
+         // and w_edge set to 0
+         if(high_time == 7'h00) begin
+            high_time   = 7'h01;
+            w_edge      = 1'b0;
+         end
+
+         if(high_time == divide) begin
+            high_time   = divide - 1;
+            w_edge      = 1'b1;
+         end
+         
+         // Calculate low_time based on the divide setting and set no_count to
+         //    0 as it is only used when divide is 1.
+         low_time    = divide - high_time; 
+         no_count    = 1'b0;
+      end
+
+      // Set the return value.
+      mmcm_pll_divider = {w_edge,no_count,high_time[5:0],low_time[5:0]};
+   end
+endfunction
+
+// This function calculates mx, delay_time, and phase_mux 
+//  of a non-fractional counter based on the divide and phase
+//
+// NOTE: The only valid value for the MX bits is 2'b00 to ensure the coarse mux
+//    is used.
+function [10:0] mmcm_pll_phase
+   (
+      // divide must be an integer (use fractional if not)
+      //  assumed that divide already checked to be valid
+      input [7:0] divide, // Max divide is 128
+
+      // Phase is given in degrees (-360,000 to 360,000)
+      input signed [31:0] phase
+   );
+
+   reg [`FIXED_WIDTH:1] phase_in_cycles;
+   reg [`FIXED_WIDTH:1] phase_fixed;
+   reg [1:0]            mx;
+   reg [5:0]            delay_time;
+   reg [2:0]            phase_mux;
+
+   reg [`FIXED_WIDTH:1] temp;
+
+   begin
+`ifdef DEBUG
+      $display("mmcm_pll_phase-divide:%d,phase:%d",
+         divide, phase);
+`endif
+   
+      if ((phase < -360000) || (phase > 360000)) begin
+`ifndef SYNTHESIS
+      $display("ERROR: phase of $phase is not between -360000 and 360000");
+	`endif
+         $finish;
+      end
+
+      // If phase is less than 0, convert it to a positive phase shift
+      // Convert to (FIXED_WIDTH-FRAC_PRECISION).FRAC_PRECISION fixed point
+      if(phase < 0) begin
+         phase_fixed = ( (phase + 360000) << `FRAC_PRECISION ) / 1000;
+      end else begin
+         phase_fixed = ( phase << `FRAC_PRECISION ) / 1000;
+      end
+
+      // Put phase in terms of decimal number of vco clock cycles
+      phase_in_cycles = ( phase_fixed * divide ) / 360;
+
+`ifdef DEBUG
+      $display("phase_in_cycles: %h", phase_in_cycles);
+`endif  
+      
+
+	 temp  =  round_frac(phase_in_cycles, 3);
+
+	 // set mx to 2'b00 that the phase mux from the VCO is enabled
+	 mx    			=  2'b00; 
+	 phase_mux      =  temp[`FRAC_PRECISION:`FRAC_PRECISION-2];
+	 delay_time     =  temp[`FRAC_PRECISION+6:`FRAC_PRECISION+1];
+      
+   `ifdef DEBUG
+      $display("temp: %h", temp);
+   `endif
+
+      // Setup the return value
+      mmcm_pll_phase={mx, phase_mux, delay_time};
+   end
+endfunction
+
+// This function takes the divide value and outputs the necessary lock values
+function [39:0] mmcm_pll_lock_lookup
+   (
+      input [6:0] divide // Max divide is 64
+   );
+   
+   reg [759:0]   lookup;
+   
+   begin
+      lookup = {
+         // This table is composed of:
+         // LockRefDly_LockFBDly_LockCnt_LockSatHigh_UnlockCnt
+         40'b00110_00110_1111101000_1111101001_0000000001, //1  
+         40'b00110_00110_1111101000_1111101001_0000000001, //2
+         40'b01000_01000_1111101000_1111101001_0000000001, //3
+         40'b01011_01011_1111101000_1111101001_0000000001, //4
+         40'b01110_01110_1111101000_1111101001_0000000001, //5
+         40'b10001_10001_1111101000_1111101001_0000000001, //6
+         40'b10011_10011_1111101000_1111101001_0000000001, //7
+         40'b10110_10110_1111101000_1111101001_0000000001, //8
+         40'b11001_11001_1111101000_1111101001_0000000001, //9
+         40'b11100_11100_1111101000_1111101001_0000000001, //10
+         40'b11111_11111_1110000100_1111101001_0000000001, //11
+         40'b11111_11111_1100111001_1111101001_0000000001, //12
+         40'b11111_11111_1011101110_1111101001_0000000001, //13
+         40'b11111_11111_1010111100_1111101001_0000000001, //14
+         40'b11111_11111_1010001010_1111101001_0000000001, //15
+         40'b11111_11111_1001110001_1111101001_0000000001, //16
+         40'b11111_11111_1000111111_1111101001_0000000001, //17
+         40'b11111_11111_1000100110_1111101001_0000000001, //18
+         40'b11111_11111_1000001101_1111101001_0000000001 //19
+         
+      };
+      
+      // Set lookup_entry with the explicit bits from lookup with a part select
+      mmcm_pll_lock_lookup = lookup[ ((19-divide)*40) +: 40];
+   `ifdef DEBUG
+      $display("lock_lookup: %b", mmcm_pll_lock_lookup);
+   `endif
+   end
+endfunction
+
+// This function takes the divide value and the bandwidth setting of the PLL
+//  and outputs the digital filter settings necessary. Removing bandwidth setting for PLLE3.
+function [9:0] mmcm_pll_filter_lookup
+   (
+      input [6:0] divide // Max divide is 19
+   );
+   
+   reg [639:0] lookup;
+   reg [9:0] lookup_entry;
+   
+   begin
+
+      lookup = {
+         // CP_RES_LFHF
+         10'b0010_1111_01, //1
+         10'b0010_0011_11, //2
+         10'b0011_0011_11, //3
+         10'b0010_0001_11, //4
+         10'b0010_0110_11, //5
+         10'b0010_1010_11, //6
+         10'b0010_1010_11, //7
+         10'b0011_0110_11, //8
+         10'b0010_1100_11, //9
+         10'b0010_1100_11, //10
+         10'b0010_1100_11, //11
+         10'b0010_0010_11, //12
+         10'b0011_1100_11, //13
+         10'b0011_1100_11, //14
+         10'b0011_1100_11, //15
+         10'b0011_1100_11, //16
+         10'b0011_0010_11, //17
+         10'b0011_0010_11, //18
+         10'b0011_0010_11 //19
+      };
+      
+         mmcm_pll_filter_lookup = lookup [ ((19-divide)*10) +: 10];
+      
+   `ifdef DEBUG
+      $display("filter_lookup: %b", mmcm_pll_filter_lookup);
+   `endif
+   end
+endfunction
+
+// This function set the CLKOUTPHY divide settings to match
+// the desired CLKOUTPHY_MODE setting. To create VCO_X2, then
+// the CLKOUTPHY will be set to 2'b00 since the VCO is internally
+// doubled and 2'b00 will represent divide by 1. Similarly "VCO" // will need to divide the doubled clock VCO clock frequency by // 2 therefore 2'b01 will match a divide by 2.And VCO_HALF will // need to divide the doubled VCO by 4, therefore 2'b10
+function [9:0] mmcm_pll_clkoutphy_calc
+   (
+      input [8*9:0] CLKOUTPHY_MODE
+   );
+
+      if(CLKOUTPHY_MODE == "VCO_X2") begin
+         mmcm_pll_clkoutphy_calc= 2'b00;
+      end else if(CLKOUTPHY_MODE == "VCO") begin
+         mmcm_pll_clkoutphy_calc= 2'b01;
+      end else if(CLKOUTPHY_MODE == "CLKIN") begin
+         mmcm_pll_clkoutphy_calc= 2'b11;
+      end else begin // Assume "VCO_HALF"
+         mmcm_pll_clkoutphy_calc= 2'b10;
+      end
+      
+endfunction
+
+
+// This function takes in the divide, phase, and duty cycle
+// setting to calculate the upper and lower counter registers.
+function [37:0] mmcm_pll_count_calc
+   (
+      input [7:0] divide, // Max divide is 128
+      input signed [31:0] phase,
+      input [31:0] duty_cycle // Multiplied by 100,000
+   );
+   
+   reg [13:0] div_calc;
+   reg [16:0] phase_calc;
+   
+   begin
+   `ifdef DEBUG
+      $display("mmcm_pll_count_calc- divide:%h, phase:%d, duty_cycle:%d",
+         divide, phase, duty_cycle);
+   `endif
+   
+      // w_edge[13], no_count[12], high_time[11:6], low_time[5:0]
+      div_calc = mmcm_pll_divider(divide, duty_cycle);
+      // mx[10:9], pm[8:6], dt[5:0]
+      phase_calc = mmcm_pll_phase(divide, phase);
+
+      // Return value is the upper and lower address of counter
+      //    Upper address is:
+      //       RESERVED    [31:26]
+      //       MX          [25:24]
+      //       EDGE        [23]
+      //       NOCOUNT     [22]
+      //       DELAY_TIME  [21:16]
+      //    Lower Address is:
+      //       PHASE_MUX   [15:13]
+      //       RESERVED    [12]
+      //       HIGH_TIME   [11:6]
+      //       LOW_TIME    [5:0]
+      
+   `ifdef DEBUG
+      $display("div:%d dc:%d phase:%d ht:%d lt:%d ed:%d nc:%d mx:%d dt:%d pm:%d",
+         divide, duty_cycle, phase, div_calc[11:6], div_calc[5:0], 
+         div_calc[13], div_calc[12], 
+         phase_calc[16:15], phase_calc[5:0], 3'b000);//Removed PM_Rise bits
+   `endif
+      
+      mmcm_pll_count_calc =
+         {
+            // Upper Address
+            6'h00, phase_calc[10:9], div_calc[13:12], phase_calc[5:0], 
+            // Lower Address
+            phase_calc[8:6], 1'b0, div_calc[11:0]
+         };
+   end
+endfunction
+
+
+// This function takes in the divide, phase, and duty cycle
+// setting to calculate the upper and lower counter registers.
+// for fractional multiply/divide functions.
+//
+// 
+function [37:0] mmcm_pll_frac_count_calc
+   (
+      input [7:0] divide, // Max divide is 128
+      input signed [31:0] phase,
+      input [31:0] duty_cycle, // Multiplied by 1,000
+      input [9:0] frac // Multiplied by 1000
+   );
+   
+	//Required for fractional divide calculations
+			  reg	[7:0]			lt_frac;
+			  reg	[7:0]			ht_frac;
+			
+			  reg	/*[7:0]*/			wf_fall_frac;
+			  reg	/*[7:0]*/			wf_rise_frac;
+
+			  reg [31:0] a;
+			  reg	[7:0]			pm_rise_frac_filtered ;
+			  reg	[7:0]			pm_fall_frac_filtered ;	
+			  reg [7:0]			clkout0_divide_int;
+			  reg [2:0]			clkout0_divide_frac;
+			  reg	[7:0]			even_part_high;
+			  reg	[7:0]			even_part_low;
+
+			  reg	[7:0]			odd;
+			  reg	[7:0]			odd_and_frac;
+
+			  reg	[7:0]			pm_fall;
+			  reg	[7:0]			pm_rise;
+			  reg	[7:0]			dt;
+			  reg	[7:0]			dt_int; 
+			  reg [63:0]		dt_calc;
+
+			  reg	[7:0]			pm_rise_frac; 
+			  reg	[7:0]			pm_fall_frac;
+	 
+			  reg [31:0] a_per_in_octets;
+			  reg [31:0] a_phase_in_cycles;
+
+				parameter precision = 0.125;
+
+			  reg [31:0] phase_fixed; // changed to 31:0 from 32:1 jt 5/2/11
+			  reg [31: 0] phase_pos;
+			  reg [31: 0] phase_vco;
+			  reg [31:0] temp;// changed to 31:0 from 32:1 jt 5/2/11
+			  reg [13:0] div_calc;
+			  reg [16:0] phase_calc;
+
+   begin
+	`ifdef DEBUG
+			$display("mmcm_pll_frac_count_calc- divide:%h, phase:%d, duty_cycle:%d",
+				divide, phase, duty_cycle);
+	`endif
+   
+   //convert phase to fixed
+   if ((phase < -360000) || (phase > 360000)) begin
+`ifndef SYNTHESIS
+      $display("ERROR: phase of $phase is not between -360000 and 360000");
+	`endif
+      $finish;
+   end
+
+
+      // Return value is
+      //    Transfer data
+      //       RESERVED     [37:36]
+      //       FRAC_TIME    [35:33]
+      //       FRAC_WF_FALL [32]
+      //    Upper address is:
+      //       RESERVED     [31:26]
+      //       MX           [25:24]
+      //       EDGE         [23]
+      //       NOCOUNT      [22]
+      //       DELAY_TIME   [21:16]
+      //    Lower Address is:
+      //       PHASE_MUX    [15:13]
+      //       RESERVED     [12]
+      //       HIGH_TIME    [11:6]
+      //       LOW_TIME     [5:0]
+      
+      
+
+	clkout0_divide_frac = frac / 125;
+	clkout0_divide_int = divide;
+
+	even_part_high = clkout0_divide_int >> 1;//$rtoi(clkout0_divide_int / 2);
+	even_part_low = even_part_high;
+									
+	odd = clkout0_divide_int - even_part_high - even_part_low;
+	odd_and_frac = (8*odd) + clkout0_divide_frac;
+
+	lt_frac = even_part_high - (odd_and_frac <= 9);//IF(odd_and_frac>9,even_part_high, even_part_high - 1)
+	ht_frac = even_part_low  - (odd_and_frac <= 8);//IF(odd_and_frac>8,even_part_low, even_part_low- 1)
+
+	pm_fall =  {odd[6:0],2'b00} + {6'h00, clkout0_divide_frac[2:1]}; // using >> instead of clkout0_divide_frac / 2 
+	pm_rise = 0; //0
+    
+	wf_fall_frac = (odd_and_frac >=2) && (odd_and_frac <=9);//IF(odd_and_frac>=2,IF(odd_and_frac <= 9,1,0),0)
+	wf_rise_frac = (odd_and_frac >=1) && (odd_and_frac <=8);//IF(odd_and_frac>=1,IF(odd_and_frac <= 8,1,0),0)
+
+
+
+	//Calculate phase in fractional cycles
+	a_per_in_octets		= (8 * divide) + (frac / 125) ;
+	a_phase_in_cycles	= (phase+10) * a_per_in_octets / 360000 ;//Adding 1 due to rounding errors
+	pm_rise_frac		= (a_phase_in_cycles[7:0] ==8'h00)?8'h00:a_phase_in_cycles[7:0] - {a_phase_in_cycles[7:3],3'b000};
+
+	dt_calc 	= ((phase+10) * a_per_in_octets / 8 )/360000 ;//TRUNC(phase* divide / 360); //or_simply (a_per_in_octets / 8)
+	dt 	= dt_calc[7:0];
+
+	pm_rise_frac_filtered = (pm_rise_frac >=8) ? (pm_rise_frac ) - 8: pm_rise_frac ;				//((phase_fixed * (divide + frac / 1000)) / 360) - {pm_rise_frac[7:3],3'b000};//$rtoi(clkout0_phase * clkout0_divide / 45);//a;
+
+	dt_int			= dt + (& pm_rise_frac[7:4]); //IF(pm_rise_overwriting>7,dt+1,dt)
+	pm_fall_frac		= pm_fall + pm_rise_frac;
+	pm_fall_frac_filtered	= pm_fall + pm_rise_frac - {pm_fall_frac[7:3], 3'b000};
+
+	div_calc	= mmcm_pll_divider(divide, duty_cycle); //Use to determine edge[7], no count[6]
+	phase_calc	= mmcm_pll_phase(divide, phase);// returns{mx[1:0], phase_mux[2:0], delay_time[5:0]}
+		
+      mmcm_pll_frac_count_calc[37:0] =
+         {		2'b00, pm_fall_frac_filtered[2:0], wf_fall_frac,
+			1'b0, clkout0_divide_frac[2:0], 1'b1, wf_rise_frac, phase_calc[10:9], div_calc[13:12], dt[5:0], 
+			3'b000, 1'b0, ht_frac[5:0], lt_frac[5:0] //Removed PM_Rise bits
+//			pm_rise_frac_filtered[2], pm_rise_frac_filtered[1], pm_rise_frac_filtered[0], 1'b0, ht_frac[5:0], lt_frac[5:0]
+		} ;
+
+   `ifdef DEBUG
+      $display("-%d.%d p%d>>  :DADDR_9_15 frac30to28.frac_en.wf_r_frac.dt:%b%d%d_%b:DADDR_7_13 pm_f_frac_filtered_29to27.wf_f_frac_26:%b%d:DADDR_8_14.pm_r_frac_filt_15to13.ht_frac.lt_frac:%b%b%b:", divide, frac, phase, clkout0_divide_frac, 1, wf_rise_frac, dt, pm_fall_frac_filtered, wf_fall_frac, 3'b000, ht_frac, lt_frac);
+   `endif
+
+   end
+endfunction
+
+
diff --git a/src/ip/clk_wiz_0/mmcm_pll_drp_func_us_plus_mmcm.vh b/src/ip/clk_wiz_0/mmcm_pll_drp_func_us_plus_mmcm.vh
new file mode 100755
index 0000000..fd26211
--- /dev/null
+++ b/src/ip/clk_wiz_0/mmcm_pll_drp_func_us_plus_mmcm.vh
@@ -0,0 +1,886 @@
+///////////////////////////////////////////////////////////////////////////////
+//    
+//    Company:          AMD
+//    Engineer:         Jim Tatsukawa. Updated by Ralf Krueger
+//    Date:             7/30/2014
+//    Design Name:      MMCME4 DRP
+//    Module Name:      mmcme4_drp_func.h
+//    Version:          1.31
+//    Target Devices:   UltraScale Plus Architecture
+//    Tool versions:    2017.1
+//    Description:      This header provides the functions necessary to  
+//                      calculate the DRP register values for UltraScal+ MMCM.
+//                      
+//	Revision Notes:	3/22 - Updating lookup_low/lookup_high (CR)
+//				4/13 - Fractional divide function in mmcm_frac_count_calc function
+//              2/28/17 - Updated for Ultrascale Plus
+// 
+// (c) Copyright 2009-2017, 2023 Advanced Micro Devices, Inc. All rights reserved.
+//
+// This file contains confidential and proprietary information
+// of AMD and is protected under U.S. and international copyright
+// and other intellectual property laws.
+//
+// DISCLAIMER
+// This disclaimer is not a license and does not grant any
+// rights to the materials distributed herewith. Except as
+// otherwise provided in a valid license issued to you by
+// AMD, and to the maximum extent permitted by applicable
+// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
+// WITH ALL FAULTS, AND AMD HEREBY DISCLAIMS ALL WARRANTIES
+// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
+// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
+// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
+// (2) AMD shall not be liable (whether in contract or tort,
+// including negligence, or under any other theory of
+// liability) for any loss or damage of any kind or nature
+// related to, arising under or in connection with these
+// materials, including for any direct, or any indirect,
+// special, incidental, or consequential loss or damage
+// (including loss of data, profits, goodwill, or any type of
+// loss or damage suffered as a result of any action brought
+// by a third party) even if such damage or loss was
+// reasonably foreseeable or AMD had been advised of the
+// possibility of the same.
+//
+// CRITICAL APPLICATIONS
+// AMD products are not designed or intended to be fail-
+// safe, or for use in any application requiring fail-safe
+// performance, such as life-support or safety devices or
+// systems, Class III medical devices, nuclear facilities,
+// applications related to the deployment of airbags, or any
+// other applications that could lead to death, personal
+// injury, or severe property or environmental damage
+// (individually and collectively, "Critical
+// Applications"). Customer assumes the sole risk and
+// liability of any use of AMD products in Critical
+// Applications, subject only to applicable laws and
+// regulations governing limitations on product liability.
+//
+// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
+// PART OF THIS FILE AT ALL TIMES.
+////////////////////////////////////////////////////////////
+// 
+///////////////////////////////////////////////////////////////////////////////
+
+// These are user functions that should not be modified.  Changes to the defines
+// or code within the functions may alter the accuracy of the calculations.
+
+// Define debug to provide extra messages during elaboration
+//`define DEBUG 1
+
+// FRAC_PRECISION describes the width of the fractional portion of the fixed
+// point numbers.  These should not be modified, they are for development only
+`define FRAC_PRECISION  10
+// FIXED_WIDTH describes the total size for fixed point calculations(int+frac).
+// Warning: L.50 and below will not calculate properly with FIXED_WIDTHs 
+// greater than 32
+`define FIXED_WIDTH     32 
+
+// This function takes a fixed point number and rounds it to the nearest
+// fractional precision bit.
+function [`FIXED_WIDTH:1] round_frac
+   (
+      // Input is (FIXED_WIDTH-FRAC_PRECISION).FRAC_PRECISION fixed point number
+      input [`FIXED_WIDTH:1] decimal,  
+
+      // This describes the precision of the fraction, for example a value
+      // of 1 would modify the fractional so that instead of being a .16
+      // fractional, it would be a .1 (rounded to the nearest 0.5 in turn)
+      input [`FIXED_WIDTH:1] precision 
+   );
+
+   begin
+   
+   `ifdef DEBUG
+      $display("round_frac - decimal: %h, precision: %h", decimal, precision);
+   `endif
+      // If the fractional precision bit is high then round up
+      if( decimal[(`FRAC_PRECISION-precision)] == 1'b1) begin
+         round_frac = decimal + (1'b1 << (`FRAC_PRECISION-precision));
+      end else begin
+         round_frac = decimal;
+      end
+   `ifdef DEBUG
+      $display("round_frac: %h", round_frac);
+   `endif
+   end
+endfunction
+
+// This function calculates high_time, low_time, w_edge, and no_count
+//    of a non-fractional counter based on the divide and duty cycle
+//
+// NOTE: high_time and low_time are returned as integers between 0 and 63 
+//    inclusive.  64 should equal 6'b000000 (in other words it is okay to 
+//    ignore the overflow)
+function [13:0] mmcm_pll_divider
+   (
+      input [7:0] divide,        // Max divide is 128
+      input [31:0] duty_cycle    // Duty cycle is multiplied by 100,000
+   );
+
+   reg [`FIXED_WIDTH:1]    duty_cycle_fix;
+   
+   // High/Low time is initially calculated with a wider integer to prevent a
+   // calculation error when it overflows to 64.
+   reg [6:0]               high_time;
+   reg [6:0]               low_time;
+   reg                     w_edge;
+   reg                     no_count;
+
+   reg [`FIXED_WIDTH:1]    temp;
+
+   begin
+      // Duty Cycle must be between 0 and 1,000
+      if(duty_cycle <=0 || duty_cycle >= 100000) begin
+`ifndef SYNTHESIS
+         $display("ERROR: duty_cycle: %d is invalid", duty_cycle);
+   `endif
+         $finish;
+      end
+
+      // Convert to FIXED_WIDTH-FRAC_PRECISION.FRAC_PRECISION fixed point
+      duty_cycle_fix = (duty_cycle << `FRAC_PRECISION) / 100_000;
+      
+   `ifdef DEBUG
+      $display("duty_cycle_fix: %h", duty_cycle_fix);
+   `endif
+
+      // If the divide is 1 nothing needs to be set except the no_count bit.
+      //    Other values are dummies
+      if(divide == 7'h01) begin
+         high_time   = 7'h01;
+         w_edge      = 1'b0;
+         low_time    = 7'h01;
+         no_count    = 1'b1;
+      end else begin
+         temp = round_frac(duty_cycle_fix*divide, 1);
+
+         // comes from above round_frac
+         high_time   = temp[`FRAC_PRECISION+7:`FRAC_PRECISION+1]; 
+         // If the duty cycle * divide rounded is .5 or greater then this bit
+         //    is set.
+         w_edge      = temp[`FRAC_PRECISION]; // comes from round_frac
+         
+         // If the high time comes out to 0, it needs to be set to at least 1
+         // and w_edge set to 0
+         if(high_time == 7'h00) begin
+            high_time   = 7'h01;
+            w_edge      = 1'b0;
+         end
+
+         if(high_time == divide) begin
+            high_time   = divide - 1;
+            w_edge      = 1'b1;
+         end
+         
+         // Calculate low_time based on the divide setting and set no_count to
+         //    0 as it is only used when divide is 1.
+         low_time    = divide - high_time; 
+         no_count    = 1'b0;
+      end
+
+      // Set the return value.
+      mmcm_pll_divider = {w_edge,no_count,high_time[5:0],low_time[5:0]};
+   end
+endfunction
+
+// This function calculates mx, delay_time, and phase_mux 
+// of a non-fractional counter based on the divide and phase
+//
+// NOTE: The only valid value for the MX bits is 2'b00 to ensure the coarse mux
+//       is used.
+function [10:0] mmcm_pll_phase
+   (
+      // divide must be an integer (use fractional if not)
+      // assumed that divide already checked to be valid
+      input [7:0] divide, // Max divide is 128
+
+      // Phase is given in degrees (-360,000 to 360,000)
+      input signed [31:0] phase
+   );
+
+   reg [`FIXED_WIDTH:1] phase_in_cycles;
+   reg [`FIXED_WIDTH:1] phase_fixed;
+   reg [1:0]            mx;
+   reg [5:0]            delay_time;
+   reg [2:0]            phase_mux;
+
+   reg [`FIXED_WIDTH:1] temp;
+
+   begin
+`ifdef DEBUG
+      $display("mmcm_phase-divide:%d,phase:%d", divide, phase);
+`endif
+   
+      if ((phase < -360000) || (phase > 360000)) begin
+`ifndef SYNTHESIS
+      $display("ERROR: phase of $phase is not between -360000 and 360000");
+	`endif
+         $finish;
+      end
+
+      // If phase is less than 0, convert it to a positive phase shift
+      // Convert to (FIXED_WIDTH-FRAC_PRECISION).FRAC_PRECISION fixed point
+      if(phase < 0) begin
+         phase_fixed = ( (phase + 360000) << `FRAC_PRECISION ) / 1000;
+      end else begin
+         phase_fixed = ( phase << `FRAC_PRECISION ) / 1000;
+      end
+
+      // Put phase in terms of decimal number of vco clock cycles
+      phase_in_cycles = ( phase_fixed * divide ) / 360;
+
+`ifdef DEBUG
+      $display("phase_in_cycles: %h", phase_in_cycles);
+`endif  
+      
+	 temp  =  round_frac(phase_in_cycles, 3);
+
+	 // set mx to 2'b00 that the phase mux from the VCO is enabled
+	 mx    			=  2'b00; 
+	 phase_mux      =  temp[`FRAC_PRECISION:`FRAC_PRECISION-2];
+	 delay_time     =  temp[`FRAC_PRECISION+6:`FRAC_PRECISION+1];
+      
+   `ifdef DEBUG
+      $display("temp: %h", temp);
+   `endif
+
+      // Setup the return value
+      mmcm_pll_phase={mx, phase_mux, delay_time};
+   end
+endfunction
+
+// This function takes the divide value and outputs the necessary lock values
+function [39:0] mmcm_pll_lock_lookup
+   (
+      input [7:0] divide // Max M divide is 128 in UltrascalePlus
+   );
+   
+   reg [5119:0]   lookup;
+   
+   begin
+      lookup = {
+         // This table is composed of:
+         // LockRefDly_LockFBDly_LockCnt_LockSatHigh_UnlockCnt
+         40'b00110_00110_1111101000_1111101001_0000000001,      // M=1 (not allowed)
+         40'b00110_00110_1111101000_1111101001_0000000001,      // M=2
+         40'b01000_01000_1111101000_1111101001_0000000001,      // M=3
+         40'b01011_01011_1111101000_1111101001_0000000001,      // M=4
+         40'b01110_01110_1111101000_1111101001_0000000001,      // M=5
+         40'b10001_10001_1111101000_1111101001_0000000001,      // M=6
+         40'b10011_10011_1111101000_1111101001_0000000001,      // M=7
+         40'b10110_10110_1111101000_1111101001_0000000001,
+         40'b11001_11001_1111101000_1111101001_0000000001,
+         40'b11100_11100_1111101000_1111101001_0000000001,
+         40'b11111_11111_1110000100_1111101001_0000000001,
+         40'b11111_11111_1100111001_1111101001_0000000001,
+         40'b11111_11111_1011101110_1111101001_0000000001,
+         40'b11111_11111_1010111100_1111101001_0000000001,
+         40'b11111_11111_1010001010_1111101001_0000000001,
+         40'b11111_11111_1001110001_1111101001_0000000001,
+         40'b11111_11111_1000111111_1111101001_0000000001,
+         40'b11111_11111_1000100110_1111101001_0000000001,
+         40'b11111_11111_1000001101_1111101001_0000000001,
+         40'b11111_11111_0111110100_1111101001_0000000001,
+         40'b11111_11111_0111011011_1111101001_0000000001,
+         40'b11111_11111_0111000010_1111101001_0000000001,
+         40'b11111_11111_0110101001_1111101001_0000000001,
+         40'b11111_11111_0110010000_1111101001_0000000001,
+         40'b11111_11111_0110010000_1111101001_0000000001,
+         40'b11111_11111_0101110111_1111101001_0000000001,
+         40'b11111_11111_0101011110_1111101001_0000000001,
+         40'b11111_11111_0101011110_1111101001_0000000001,
+         40'b11111_11111_0101000101_1111101001_0000000001,
+         40'b11111_11111_0101000101_1111101001_0000000001,
+         40'b11111_11111_0100101100_1111101001_0000000001,
+         40'b11111_11111_0100101100_1111101001_0000000001,
+         40'b11111_11111_0100101100_1111101001_0000000001,
+         40'b11111_11111_0100010011_1111101001_0000000001,
+         40'b11111_11111_0100010011_1111101001_0000000001,
+         40'b11111_11111_0100010011_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,                                                                    
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,                                                                    
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,
+         40'b11111_11111_0011111010_1111101001_0000000001,      // M=127
+         40'b11111_11111_0011111010_1111101001_0000000001       // M=128
+      };
+      
+      // Set lookup_entry with the explicit bits from lookup with a part select
+      mmcm_pll_lock_lookup = lookup[ ((128-divide)*40) +: 40];
+   `ifdef DEBUG
+      $display("lock_lookup: %b", mmcm_pll_lock_lookup);
+   `endif
+   end
+endfunction
+
+// This function takes the divide value and the bandwidth setting of the MMCM
+//  and outputs the digital filter settings necessary.
+function [9:0] mmcm_pll_filter_lookup
+   (
+      input [7:0] divide, //  input [7:0] divide // Max M divide is 128 in UltraScalePlus
+      input [8*9:0] BANDWIDTH
+   );
+   
+   reg [1279:0] lookup_low;
+   reg [1279:0] lookup_high;
+   
+   reg [9:0] lookup_entry;
+   
+   begin
+      lookup_low = {
+         // CP_RES_LFHF
+       	10'b0011_1111_11,    // M=1 - not legal
+       	10'b0011_1111_11,    // M=2
+       	10'b0011_1101_11,    // M=3
+       	10'b0011_0101_11,    // M=4
+       	10'b0011_1001_11,    // M=5
+       	10'b0011_1110_11,    // M=6
+       	10'b0011_1110_11,    // M=7
+       	10'b0011_0001_11,
+       	10'b0011_0110_11,
+       	10'b0011_0110_11,
+       	10'b0011_0110_11,
+       	10'b0011_1010_11,
+       	10'b0011_1010_11,
+       	10'b0011_1010_11,
+       	10'b0100_0110_11,
+       	10'b0011_1100_11,
+       	10'b1110_0110_11,
+       	10'b1111_0110_11,
+       	10'b1110_1010_11,
+       	10'b1110_1010_11,
+       	10'b1111_1010_11,
+       	10'b1111_1010_11,
+       	10'b1111_1010_11,
+       	10'b1111_1010_11,
+       	10'b1111_1010_11,
+       	10'b1101_1100_11,
+       	10'b1101_1100_11,
+       	10'b1101_1100_11,
+       	10'b1110_1100_11,
+       	10'b1110_1100_11,
+       	10'b1110_1100_11,
+       	10'b1111_1100_11,
+       	10'b1111_1100_11,
+       	10'b1111_1100_11,
+       	10'b1111_1100_11,
+       	10'b1111_1100_11,
+       	10'b1111_1100_11,
+       	10'b1110_0010_11,
+       	10'b1110_0010_11,
+       	10'b1110_0010_11,
+       	10'b1110_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1111_0010_11,
+       	10'b1100_0100_11,
+       	10'b1100_0100_11,
+       	10'b1100_0100_11,
+       	10'b1100_0100_11,
+       	10'b1100_0100_11,
+       	10'b1100_0100_11,
+       	10'b1100_0100_11,
+       	10'b1100_0100_11,
+       	10'b1101_0100_11,
+       	10'b1101_0100_11,
+       	10'b1101_0100_11,
+       	10'b1101_0100_11,
+       	10'b1101_0100_11,
+       	10'b1101_0100_11,
+       	10'b1101_0100_11,
+       	10'b1110_0100_11,
+       	10'b1110_0100_11,
+       	10'b1110_0100_11,
+       	10'b1110_0100_11,
+       	10'b1110_0100_11,
+       	10'b1110_0100_11,
+       	10'b1110_0100_11,
+       	10'b1110_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1111_0100_11,
+       	10'b1101_1000_11,
+       	10'b1101_1000_11,
+       	10'b1101_1000_11,
+       	10'b1101_1000_11,
+       	10'b1101_1000_11,
+       	10'b1101_1000_11,
+       	10'b1101_1000_11,
+       	10'b1101_1000_11, // M=127
+       	10'b1101_1000_11  // M=128
+};										
+      
+      lookup_high = {
+         // CP_RES_LFHF
+       10'b0111_1111_11,    // M=1 - not legal
+       10'b0111_1111_11,    // M=2
+       10'b1110_1111_11,    // M=3
+       10'b1111_1111_11,    // M=4
+       10'b1111_1011_11,    // M=5
+       10'b1111_1101_11,    // M=6
+       10'b1111_0011_11,    // M=7
+       10'b1110_0101_11,
+       10'b1111_1001_11,
+       10'b1111_1001_11,
+       10'b1110_1110_11,
+       10'b1111_1110_11,
+       10'b1111_0001_11,
+       10'b1111_0001_11,
+       10'b1111_0001_11,
+       10'b1110_0110_11,
+       10'b1110_0110_11,
+       10'b1111_0110_11,
+       10'b1110_1010_11,
+       10'b1110_1010_11,
+       10'b1111_1010_11,
+       10'b1111_1010_11,
+       10'b1111_1010_11,
+       10'b1111_1010_11,
+       10'b1111_1010_11,
+       10'b1101_1100_11,
+       10'b1101_1100_11,
+       10'b1101_1100_11,
+       10'b1110_1100_11,
+       10'b1110_1100_11,
+       10'b1110_1100_11,
+       10'b1111_1100_11,
+       10'b1111_1100_11,
+       10'b1111_1100_11,
+       10'b1111_1100_11,
+       10'b1111_1100_11,
+       10'b1111_1100_11,
+       10'b1110_0010_11,
+       10'b1110_0010_11,
+       10'b1110_0010_11,
+       10'b1110_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1111_0010_11,
+       10'b1100_0100_11,
+       10'b1100_0100_11,
+       10'b1100_0100_11,
+       10'b1100_0100_11,
+       10'b1100_0100_11,
+       10'b1100_0100_11,
+       10'b1100_0100_11,
+       10'b1100_0100_11,
+       10'b1101_0100_11,
+       10'b1101_0100_11,
+       10'b1101_0100_11,
+       10'b1101_0100_11,
+       10'b1101_0100_11,
+       10'b1101_0100_11,
+       10'b1101_0100_11,
+       10'b1110_0100_11,
+       10'b1110_0100_11,
+       10'b1110_0100_11,
+       10'b1110_0100_11,
+       10'b1110_0100_11,
+       10'b1110_0100_11,
+       10'b1110_0100_11,
+       10'b1110_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1111_0100_11,
+       10'b1101_1000_11,
+       10'b1101_1000_11,
+       10'b1101_1000_11,
+       10'b1101_1000_11,
+       10'b1101_1000_11,
+       10'b1101_1000_11,
+       10'b1101_1000_11,
+       10'b1101_1000_11,
+       10'b1101_1000_11     // M=128
+};
+      
+      // Set lookup_entry with the explicit bits from lookup with a part select
+      if(BANDWIDTH == "LOW") begin
+         // Low Bandwidth
+         mmcm_pll_filter_lookup = lookup_low[ ((128-divide)*10) +: 10];
+      end else begin
+         // High or optimized bandwidth
+         mmcm_pll_filter_lookup = lookup_high[ ((128-divide)*10) +: 10];
+      end
+      
+   `ifdef DEBUG
+      $display("filter_lookup: %b", mmcm_pll_filter_lookup);
+   `endif
+   end
+endfunction
+
+// This function takes in the divide, phase, and duty cycle
+// setting to calculate the upper and lower counter registers.
+function [37:0] mmcm_pll_count_calc
+   (
+      input [7:0] divide, // Max divide is 128
+      input signed [31:0] phase,
+      input [31:0] duty_cycle // Multiplied by 100,000
+   );
+   
+   reg [13:0] div_calc;
+   reg [16:0] phase_calc;
+   
+   begin
+   `ifdef DEBUG
+      $display("mmcm_pll_count_calc- divide:%h, phase:%d, duty_cycle:%d",
+         divide, phase, duty_cycle);
+   `endif
+   
+      // w_edge[13], no_count[12], high_time[11:6], low_time[5:0]
+      div_calc = mmcm_pll_divider(divide, duty_cycle);
+      // mx[10:9], pm[8:6], dt[5:0]
+      phase_calc = mmcm_pll_phase(divide, phase);
+
+      // Return value is the upper and lower address of counter
+      //    Upper address is:
+      //       RESERVED    [31:26]
+      //       MX          [25:24]
+      //       EDGE        [23]
+      //       NOCOUNT     [22]
+      //       DELAY_TIME  [21:16]
+      //    Lower Address is:
+      //       PHASE_MUX   [15:13]
+      //       RESERVED    [12]
+      //       HIGH_TIME   [11:6]
+      //       LOW_TIME    [5:0]
+      
+   `ifdef DEBUG
+      $display("div:%d dc:%d phase:%d ht:%d lt:%d ed:%d nc:%d mx:%d dt:%d pm:%d",
+         divide, duty_cycle, phase, div_calc[11:6], div_calc[5:0], 
+         div_calc[13], div_calc[12], 
+         phase_calc[16:15], phase_calc[5:0], phase_calc[14:12]);
+   `endif
+      
+      mmcm_pll_count_calc =
+         {
+            // Upper Address
+            6'h00, phase_calc[10:9], div_calc[13:12], phase_calc[5:0], 
+            // Lower Address
+            phase_calc[8:6], 1'b0, div_calc[11:0]
+         };
+   end
+endfunction
+
+
+// This function takes in the divide, phase, and duty cycle
+// setting to calculate the upper and lower counter registers.
+// for fractional multiply/divide functions.
+//
+// 
+function [37:0] mmcm_frac_count_calc
+   (
+      input [7:0] divide, // Max divide is 128
+      input signed [31:0] phase,
+      input [31:0] duty_cycle, // Multiplied by 100,000. Not programmable in fractional
+      input [9:0] frac // Multiplied by 1000
+   );
+   
+	//Required for fractional divide calculations
+			  reg	[7:0]			lt_frac;
+			  reg	[7:0]			ht_frac;
+			
+			  reg	/*[7:0]*/			wf_fall_frac;
+			  reg	/*[7:0]*/			wf_rise_frac;
+
+			  reg [31:0] a;
+			  reg	[7:0]			pm_rise_frac_filtered ;
+			  reg	[7:0]			pm_fall_frac_filtered ;	
+			  reg [7:0]			clkout0_divide_int;
+			  reg [2:0]			clkout0_divide_frac;
+			  reg	[7:0]			even_part_high;
+			  reg	[7:0]			even_part_low;
+
+			  reg	[7:0]			odd;
+			  reg	[7:0]			odd_and_frac;
+
+			  reg	[7:0]			pm_fall;
+			  reg	[7:0]			pm_rise;
+			  reg	[7:0]			dt;
+			  reg	[7:0]			dt_int; 
+			  reg [63:0]		dt_calc;
+
+			  reg	[7:0]			pm_rise_frac; 
+			  reg	[7:0]			pm_fall_frac;
+	 
+			  reg [31:0] a_per_in_octets;
+			  reg [31:0] a_phase_in_cycles;
+
+				parameter precision = 0.125;
+
+			  reg [31:0] phase_fixed; // changed to 31:0 from 32:1 jt 5/2/11
+			  reg [31: 0] phase_pos;
+			  reg [31: 0] phase_vco;
+			  reg [31:0] temp;// changed to 31:0 from 32:1 jt 5/2/11
+			  reg [13:0] div_calc;
+			  reg [16:0] phase_calc;
+
+   begin
+	`ifdef DEBUG
+			$display("mmcm_frac_count_calc- divide:%h, phase:%d, duty_cycle:%d",
+				divide, phase, duty_cycle);
+	`endif
+   
+   //convert phase to fixed
+   if ((phase < -360000) || (phase > 360000)) begin
+`ifndef SYNTHESIS
+      $display("ERROR: phase of $phase is not between -360000 and 360000");
+	`endif
+      $finish;
+   end
+
+
+      // Return value is
+      //    Transfer data
+      //       RESERVED     [37:36]
+      //       FRAC_TIME    [35:33]
+      //       FRAC_WF_FALL [32]
+      //    Upper address is:
+      //       RESERVED     [31:26]
+      //       MX           [25:24]
+      //       EDGE         [23]
+      //       NOCOUNT      [22]
+      //       DELAY_TIME   [21:16]
+      //    Lower Address is:
+      //       PHASE_MUX    [15:13]
+      //       RESERVED     [12]
+      //       HIGH_TIME    [11:6]
+      //       LOW_TIME     [5:0]
+      
+      
+
+	clkout0_divide_frac = frac / 125;
+	clkout0_divide_int = divide;
+
+	even_part_high = clkout0_divide_int >> 1;//$rtoi(clkout0_divide_int / 2);
+	even_part_low = even_part_high;
+									
+	odd = clkout0_divide_int - even_part_high - even_part_low;
+	odd_and_frac = (8*odd) + clkout0_divide_frac;
+
+	lt_frac = even_part_high - (odd_and_frac <= 9);//IF(odd_and_frac>9,even_part_high, even_part_high - 1)
+	ht_frac = even_part_low  - (odd_and_frac <= 8);//IF(odd_and_frac>8,even_part_low, even_part_low- 1)
+
+	pm_fall =  {odd[6:0],2'b00} + {6'h00, clkout0_divide_frac[2:1]}; // using >> instead of clkout0_divide_frac / 2 
+	pm_rise = 0; //0
+    
+	wf_fall_frac = ((odd_and_frac >=2) && (odd_and_frac <=9)) || (clkout0_divide_int == 2 && clkout0_divide_frac == 1);   //IF(odd_and_frac>=2,IF(odd_and_frac <= 9,1,0),0)
+	wf_rise_frac = (odd_and_frac >=1) && (odd_and_frac <=8);    //IF(odd_and_frac>=1,IF(odd_and_frac <= 8,1,0),0)
+
+
+
+	//Calculate phase in fractional cycles
+	a_per_in_octets		= (8 * divide) + (frac / 125) ;
+	a_phase_in_cycles	= (phase+10) * a_per_in_octets / 360000 ;//Adding 1 due to rounding errors
+	pm_rise_frac		= (a_phase_in_cycles[7:0] ==8'h00)?8'h00:a_phase_in_cycles[7:0] - {a_phase_in_cycles[7:3],3'b000};
+
+	dt_calc 	= ((phase+10) * a_per_in_octets / 8 )/360000 ;//TRUNC(phase* divide / 360); //or_simply (a_per_in_octets / 8)
+	dt 	= dt_calc[7:0];
+
+	pm_rise_frac_filtered = (pm_rise_frac >=8) ? (pm_rise_frac ) - 8: pm_rise_frac ;				//((phase_fixed * (divide + frac / 1000)) / 360) - {pm_rise_frac[7:3],3'b000};//$rtoi(clkout0_phase * clkout0_divide / 45);//a;
+
+	dt_int			= dt + (& pm_rise_frac[7:4]); //IF(pm_rise_overwriting>7,dt+1,dt)
+	pm_fall_frac		= pm_fall + pm_rise_frac;
+	pm_fall_frac_filtered	= pm_fall + pm_rise_frac - {pm_fall_frac[7:3], 3'b000};
+
+	div_calc	= mmcm_pll_divider(divide, duty_cycle); //Use to determine edge[7], no count[6]
+	phase_calc	= mmcm_pll_phase(divide, phase);// returns{mx[1:0], phase_mux[2:0], delay_time[5:0]}
+		
+      mmcm_frac_count_calc[37:0] =
+         {		2'b00, pm_fall_frac_filtered[2:0], wf_fall_frac,
+			1'b0, clkout0_divide_frac[2:0], 1'b1, wf_rise_frac, phase_calc[10:9], 2'b00, dt[5:0], 
+			pm_rise_frac_filtered[2], pm_rise_frac_filtered[1], pm_rise_frac_filtered[0], 1'b0, ht_frac[5:0], lt_frac[5:0]
+		} ;
+
+   `ifdef DEBUG
+      $display("-%d.%d p%d>>  :DADDR_9_15 frac30to28.frac_en.wf_r_frac.dt:%b%d%d_%b:DADDR_7_13 pm_f_frac_filtered_29to27.wf_f_frac_26:%b%d:DADDR_8_14.pm_r_frac_filt_15to13.ht_frac.lt_frac:%b%b%b:", divide, frac, phase, clkout0_divide_frac, 1, wf_rise_frac, dt, pm_fall_frac_filtered, wf_fall_frac, pm_rise_frac_filtered, ht_frac, lt_frac);
+   `endif
+
+   end
+endfunction
+
diff --git a/src/ip/clk_wiz_0/mmcm_pll_drp_func_us_plus_pll.vh b/src/ip/clk_wiz_0/mmcm_pll_drp_func_us_plus_pll.vh
new file mode 100755
index 0000000..0899943
--- /dev/null
+++ b/src/ip/clk_wiz_0/mmcm_pll_drp_func_us_plus_pll.vh
@@ -0,0 +1,561 @@
+///////////////////////////////////////////////////////////////////////////////
+//    
+//    Company:          AMD
+//    Engineer:         Jim Tatsukawa, Ralf Krueger, updated for Ultrascale+ 
+//    Date:             6/15/2015
+//    Design Name:      PLLE4 DRP
+//    Module Name:      plle4_drp_func.h
+//    Version:          2.0
+//    Target Devices:   UltraScale+ Architecture
+//    Tool versions:    2017.1
+//    Description:      This header provides the functions necessary to  
+//                      calculate the DRP register values for the V6 PLL.
+//                      
+//	Revision Notes:	8/11 - PLLE3 updated for PLLE3 file 4564419
+//	Revision Notes:	6/15 - pll_filter_lookup fixed for max M of 19
+//                           M_Rise bits have been removed for PLLE3
+//	Revision Notes:	2/28/17 - pll_filter_lookup and CPRES updated for 
+//                           Ultrascale+ and for max M of 21
+// 
+// (c) Copyright 2009-2017, 2023 Advanced Micro Devices, Inc. All rights reserved.
+//
+// This file contains confidential and proprietary information
+// of AMD and is protected under U.S. and international copyright
+// and other intellectual property laws.
+//
+// DISCLAIMER
+// This disclaimer is not a license and does not grant any
+// rights to the materials distributed herewith. Except as
+// otherwise provided in a valid license issued to you by
+// AMD, and to the maximum extent permitted by applicable
+// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
+// WITH ALL FAULTS, AND AMD HEREBY DISCLAIMS ALL WARRANTIES
+// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
+// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
+// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
+// (2) AMD shall not be liable (whether in contract or tort,
+// including negligence, or under any other theory of
+// liability) for any loss or damage of any kind or nature
+// related to, arising under or in connection with these
+// materials, including for any direct, or any indirect,
+// special, incidental, or consequential loss or damage
+// (including loss of data, profits, goodwill, or any type of
+// loss or damage suffered as a result of any action brought
+// by a third party) even if such damage or loss was
+// reasonably foreseeable or AMD had been advised of the
+// possibility of the same.
+//
+// CRITICAL APPLICATIONS
+// AMD products are not designed or intended to be fail-
+// safe, or for use in any application requiring fail-safe
+// performance, such as life-support or safety devices or
+// systems, Class III medical devices, nuclear facilities,
+// applications related to the deployment of airbags, or any
+// other applications that could lead to death, personal
+// injury, or severe property or environmental damage
+// (individually and collectively, "Critical
+// Applications"). Customer assumes the sole risk and
+// liability of any use of AMD products in Critical
+// Applications, subject only to applicable laws and
+// regulations governing limitations on product liability.
+//
+// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
+// PART OF THIS FILE AT ALL TIMES.
+////////////////////////////////////////////////////////////
+// 
+///////////////////////////////////////////////////////////////////////////////
+
+// These are user functions that should not be modified.  Changes to the defines
+// or code within the functions may alter the accuracy of the calculations.
+
+// Define debug to provide extra messages durring elaboration
+//`define DEBUG 1
+
+// FRAC_PRECISION describes the width of the fractional portion of the fixed
+//    point numbers.  These should not be modified, they are for development 
+//    only
+`define FRAC_PRECISION  10
+// FIXED_WIDTH describes the total size for fixed point calculations(int+frac).
+// Warning: L.50 and below will not calculate properly with FIXED_WIDTHs 
+//    greater than 32
+`define FIXED_WIDTH     32 
+
+// This function takes a fixed point number and rounds it to the nearest
+//    fractional precision bit.
+function [`FIXED_WIDTH:1] round_frac
+   (
+      // Input is (FIXED_WIDTH-FRAC_PRECISION).FRAC_PRECISION fixed point number
+      input [`FIXED_WIDTH:1] decimal,  
+
+      // This describes the precision of the fraction, for example a value
+      //    of 1 would modify the fractional so that instead of being a .16
+      //    fractional, it would be a .1 (rounded to the nearest 0.5 in turn)
+      input [`FIXED_WIDTH:1] precision 
+   );
+
+   begin
+   
+   `ifdef DEBUG
+      $display("round_frac - decimal: %h, precision: %h", decimal, precision);
+   `endif
+      // If the fractional precision bit is high then round up
+      if( decimal[(`FRAC_PRECISION-precision)] == 1'b1) begin
+         round_frac = decimal + (1'b1 << (`FRAC_PRECISION-precision));
+      end else begin
+         round_frac = decimal;
+      end
+   `ifdef DEBUG
+      $display("round_frac: %h", round_frac);
+   `endif
+   end
+endfunction
+
+// This function calculates high_time, low_time, w_edge, and no_count
+//    of a non-fractional counter based on the divide and duty cycle
+//
+// NOTE: high_time and low_time are returned as integers between 0 and 63 
+//    inclusive.  64 should equal 6'b000000 (in other words it is okay to 
+//    ignore the overflow)
+function [13:0] mmcm_pll_divider
+   (
+      input [7:0] divide,        // Max divide is 128
+      input [31:0] duty_cycle    // Duty cycle is multiplied by 100,000
+   );
+
+   reg [`FIXED_WIDTH:1]    duty_cycle_fix;
+   
+   // High/Low time is initially calculated with a wider integer to prevent a
+   // calculation error when it overflows to 64.
+   reg [6:0]               high_time;
+   reg [6:0]               low_time;
+   reg                     w_edge;
+   reg                     no_count;
+
+   reg [`FIXED_WIDTH:1]    temp;
+
+   begin
+      // Duty Cycle must be between 0 and 1,000
+      if(duty_cycle <=0 || duty_cycle >= 100000) begin
+`ifndef SYNTHESIS
+         $display("ERROR: duty_cycle: %d is invalid", duty_cycle);
+   `endif
+         $finish;
+      end
+
+      // Convert to FIXED_WIDTH-FRAC_PRECISION.FRAC_PRECISION fixed point
+      duty_cycle_fix = (duty_cycle << `FRAC_PRECISION) / 100_000;
+      
+   `ifdef DEBUG
+      $display("duty_cycle_fix: %h", duty_cycle_fix);
+   `endif
+
+      // If the divide is 1 nothing needs to be set except the no_count bit.
+      //    Other values are dummies
+      if(divide == 7'h01) begin
+         high_time   = 7'h01;
+         w_edge      = 1'b0;
+         low_time    = 7'h01;
+         no_count    = 1'b1;
+      end else begin
+         temp = round_frac(duty_cycle_fix*divide, 1);
+
+         // comes from above round_frac
+         high_time   = temp[`FRAC_PRECISION+7:`FRAC_PRECISION+1]; 
+         // If the duty cycle * divide rounded is .5 or greater then this bit
+         //    is set.
+         w_edge      = temp[`FRAC_PRECISION]; // comes from round_frac
+         
+         // If the high time comes out to 0, it needs to be set to at least 1
+         // and w_edge set to 0
+         if(high_time == 7'h00) begin
+            high_time   = 7'h01;
+            w_edge      = 1'b0;
+         end
+
+         if(high_time == divide) begin
+            high_time   = divide - 1;
+            w_edge      = 1'b1;
+         end
+         
+         // Calculate low_time based on the divide setting and set no_count to
+         //    0 as it is only used when divide is 1.
+         low_time    = divide - high_time; 
+         no_count    = 1'b0;
+      end
+
+      // Set the return value.
+      mmcm_pll_divider = {w_edge,no_count,high_time[5:0],low_time[5:0]};
+   end
+endfunction
+
+// This function calculates mx, delay_time, and phase_mux 
+//  of a non-fractional counter based on the divide and phase
+//
+// NOTE: The only valid value for the MX bits is 2'b00 to ensure the coarse mux
+//    is used.
+function [10:0] mmcm_pll_phase
+   (
+      // divide must be an integer (use fractional if not)
+      //  assumed that divide already checked to be valid
+      input [7:0] divide, // Max divide is 128
+
+      // Phase is given in degrees (-360,000 to 360,000)
+      input signed [31:0] phase
+   );
+
+   reg [`FIXED_WIDTH:1] phase_in_cycles;
+   reg [`FIXED_WIDTH:1] phase_fixed;
+   reg [1:0]            mx;
+   reg [5:0]            delay_time;
+   reg [2:0]            phase_mux;
+
+   reg [`FIXED_WIDTH:1] temp;
+
+   begin
+`ifdef DEBUG
+      $display("pll_phase-divide:%d,phase:%d",
+         divide, phase);
+`endif
+   
+      if ((phase < -360000) || (phase > 360000)) begin
+`ifndef SYNTHESIS
+         $display("ERROR: phase of $phase is not between -360000 and 360000");
+`endif
+         $finish;
+      end
+
+      // If phase is less than 0, convert it to a positive phase shift
+      // Convert to (FIXED_WIDTH-FRAC_PRECISION).FRAC_PRECISION fixed point
+      if(phase < 0) begin
+         phase_fixed = ( (phase + 360000) << `FRAC_PRECISION ) / 1000;
+      end else begin
+         phase_fixed = ( phase << `FRAC_PRECISION ) / 1000;
+      end
+
+      // Put phase in terms of decimal number of vco clock cycles
+      phase_in_cycles = ( phase_fixed * divide ) / 360;
+
+`ifdef DEBUG
+      $display("phase_in_cycles: %h", phase_in_cycles);
+`endif  
+      
+
+	 temp  =  round_frac(phase_in_cycles, 3);
+
+	 // set mx to 2'b00 that the phase mux from the VCO is enabled
+	 mx    			=  2'b00; 
+	 phase_mux      =  temp[`FRAC_PRECISION:`FRAC_PRECISION-2];
+	 delay_time     =  temp[`FRAC_PRECISION+6:`FRAC_PRECISION+1];
+      
+   `ifdef DEBUG
+      $display("temp: %h", temp);
+   `endif
+
+      // Setup the return value
+      mmcm_pll_phase={mx, phase_mux, delay_time};
+   end
+endfunction
+
+// This function takes the divide value and outputs the necessary lock values
+function [39:0] mmcm_pll_lock_lookup
+   (
+      input [6:0] divide // Max divide is 21
+   );
+   
+   reg [839:0]   lookup;
+   
+   begin
+      lookup = {
+         // This table is composed of:
+         // LockRefDly_LockFBDly_LockCnt_LockSatHigh_UnlockCnt
+         40'b00110_00110_1111101000_1111101001_0000000001, //1 illegal in Ultrascale+
+         40'b00110_00110_1111101000_1111101001_0000000001, //2
+         40'b01000_01000_1111101000_1111101001_0000000001, //3
+         40'b01011_01011_1111101000_1111101001_0000000001, //4
+         40'b01110_01110_1111101000_1111101001_0000000001, //5
+         40'b10001_10001_1111101000_1111101001_0000000001, //6
+         40'b10011_10011_1111101000_1111101001_0000000001, //7
+         40'b10110_10110_1111101000_1111101001_0000000001, //8
+         40'b11001_11001_1111101000_1111101001_0000000001, //9
+         40'b11100_11100_1111101000_1111101001_0000000001, //10
+         40'b11111_11111_1110000100_1111101001_0000000001, //11
+         40'b11111_11111_1100111001_1111101001_0000000001, //12
+         40'b11111_11111_1011101110_1111101001_0000000001, //13
+         40'b11111_11111_1010111100_1111101001_0000000001, //14
+         40'b11111_11111_1010001010_1111101001_0000000001, //15
+         40'b11111_11111_1001110001_1111101001_0000000001, //16
+         40'b11111_11111_1000111111_1111101001_0000000001, //17
+         40'b11111_11111_1000100110_1111101001_0000000001, //18
+         40'b11111_11111_1000001101_1111101001_0000000001, //19
+         40'b11111_11111_0111110100_1111101001_0000000001, //20
+         40'b11111_11111_0111011011_1111101001_0000000001  //21
+      };
+      
+      // Set lookup_entry with the explicit bits from lookup with a part select
+      mmcm_pll_lock_lookup = lookup[ ((21-divide)*40) +: 40];
+   `ifdef DEBUG
+      $display("lock_lookup: %b", pll_lock_lookup);
+   `endif
+   end
+endfunction
+
+// This function takes the divide value and the bandwidth setting of the PLL
+//  and outputs the digital filter settings necessary. Removing bandwidth setting for PLLE3.
+function [9:0] mmcm_pll_filter_lookup
+   (
+      input [6:0] divide // Max divide is 21
+   );
+   
+   reg [209:0] lookup;
+   reg [9:0] lookup_entry;
+   
+   begin
+
+      lookup = {
+         // CP_RES_LFHF
+         10'b0011_0111_11, //1  not legal in Ultrascale+
+         10'b0011_0111_11, //2
+         10'b0011_0011_11, //3
+         10'b0011_1001_11, //4
+         10'b0011_0001_11, //5
+         10'b0100_1110_11, //6
+         10'b0011_0110_11, //7
+         10'b0011_1010_11, //8
+         10'b0111_1001_11, //9
+         10'b0111_1001_11, //10
+         10'b0101_0110_11, //11
+         10'b1100_0101_11, //12
+         10'b0101_1010_11, //13
+         10'b0110_0110_11, //14
+         10'b0110_1010_11, //15
+         10'b0111_0110_11, //16
+         10'b1111_0101_11, //17
+         10'b1100_0110_11, //18
+         10'b1110_0001_11, //19
+         10'b1101_0110_11, //20
+         10'b1111_0001_11  //21
+      };
+      
+         mmcm_pll_filter_lookup = lookup [ ((21-divide)*10) +: 10];
+      
+   `ifdef DEBUG
+      $display("filter_lookup: %b", pll_filter_lookup);
+   `endif
+   end
+endfunction
+
+// This function set the CLKOUTPHY divide settings to match
+// the desired CLKOUTPHY_MODE setting. To create VCO_X2, then
+// the CLKOUTPHY will be set to 2'b00 since the VCO is internally
+// doubled and 2'b00 will represent divide by 1. Similarly "VCO" 
+// will need to divide the doubled clock VCO clock frequency by 
+// 2 therefore 2'b01 will match a divide by 2.And VCO_HALF will 
+// need to divide the doubled VCO by 4, therefore 2'b10
+function [9:0] mmcm_pll_clkoutphy_calc
+   (
+      input [8*9:0] CLKOUTPHY_MODE
+   );
+
+      if(CLKOUTPHY_MODE == "VCO_X2") begin
+         mmcm_pll_clkoutphy_calc= 2'b00;
+      end else if(CLKOUTPHY_MODE == "VCO") begin
+         mmcm_pll_clkoutphy_calc= 2'b01;
+      end else if(CLKOUTPHY_MODE == "CLKIN") begin
+         mmcm_pll_clkoutphy_calc= 2'b11;
+      end else begin // Assume "VCO_HALF"
+         mmcm_pll_clkoutphy_calc= 2'b10;
+      end
+      
+endfunction
+
+
+// This function takes in the divide, phase, and duty cycle
+// setting to calculate the upper and lower counter registers.
+function [37:0] mmcm_pll_count_calc
+   (
+      input [7:0] divide, // Max divide is 128
+      input signed [31:0] phase,
+      input [31:0] duty_cycle // Multiplied by 100,000
+   );
+   
+   reg [13:0] div_calc;
+   reg [16:0] phase_calc;
+   
+   begin
+   `ifdef DEBUG
+      $display("pll_count_calc- divide:%h, phase:%d, duty_cycle:%d",
+         divide, phase, duty_cycle);
+   `endif
+   
+      // w_edge[13], no_count[12], high_time[11:6], low_time[5:0]
+      div_calc = mmcm_pll_divider(divide, duty_cycle);
+      // mx[10:9], pm[8:6], dt[5:0]
+      phase_calc = mmcm_pll_phase(divide, phase);
+
+      // Return value is the upper and lower address of counter
+      //    Upper address is:
+      //       RESERVED    [31:26]
+      //       MX          [25:24]
+      //       EDGE        [23]
+      //       NOCOUNT     [22]
+      //       DELAY_TIME  [21:16]
+      //    Lower Address is:
+      //       PHASE_MUX   [15:13]
+      //       RESERVED    [12]
+      //       HIGH_TIME   [11:6]
+      //       LOW_TIME    [5:0]
+      
+   `ifdef DEBUG
+      $display("div:%d dc:%d phase:%d ht:%d lt:%d ed:%d nc:%d mx:%d dt:%d pm:%d",
+         divide, duty_cycle, phase, div_calc[11:6], div_calc[5:0], 
+         div_calc[13], div_calc[12], 
+         phase_calc[16:15], phase_calc[5:0], 3'b000); //Removed PM_Rise bits
+   `endif
+      
+      mmcm_pll_count_calc =
+         {
+            // Upper Address
+            6'h00, phase_calc[10:9], div_calc[13:12], phase_calc[5:0], 
+            // Lower Address
+            phase_calc[8:6], 1'b0, div_calc[11:0]
+         };
+   end
+endfunction
+
+
+// This function takes in the divide, phase, and duty cycle
+// setting to calculate the upper and lower counter registers.
+// for fractional multiply/divide functions.
+//
+// 
+function [37:0] mmcm_pll_frac_count_calc
+   (
+      input [7:0] divide, // Max divide is 128
+      input signed [31:0] phase,
+      input [31:0] duty_cycle, // Multiplied by 1,000
+      input [9:0] frac // Multiplied by 1000
+   );
+   
+	//Required for fractional divide calculations
+			  reg	[7:0]			lt_frac;
+			  reg	[7:0]			ht_frac;
+			
+			  reg	/*[7:0]*/			wf_fall_frac;
+			  reg	/*[7:0]*/			wf_rise_frac;
+
+			  reg [31:0] a;
+			  reg	[7:0]			pm_rise_frac_filtered ;
+			  reg	[7:0]			pm_fall_frac_filtered ;	
+			  reg [7:0]			clkout0_divide_int;
+			  reg [2:0]			clkout0_divide_frac;
+			  reg	[7:0]			even_part_high;
+			  reg	[7:0]			even_part_low;
+
+			  reg	[7:0]			odd;
+			  reg	[7:0]			odd_and_frac;
+
+			  reg	[7:0]			pm_fall;
+			  reg	[7:0]			pm_rise;
+			  reg	[7:0]			dt;
+			  reg	[7:0]			dt_int; 
+			  reg [63:0]		dt_calc;
+
+			  reg	[7:0]			pm_rise_frac; 
+			  reg	[7:0]			pm_fall_frac;
+	 
+			  reg [31:0] a_per_in_octets;
+			  reg [31:0] a_phase_in_cycles;
+
+				parameter precision = 0.125;
+
+			  reg [31:0] phase_fixed; // changed to 31:0 from 32:1 jt 5/2/11
+			  reg [31: 0] phase_pos;
+			  reg [31: 0] phase_vco;
+			  reg [31:0] temp;// changed to 31:0 from 32:1 jt 5/2/11
+			  reg [13:0] div_calc;
+			  reg [16:0] phase_calc;
+
+   begin
+	`ifdef DEBUG
+			$display("pll_frac_count_calc- divide:%h, phase:%d, duty_cycle:%d",
+				divide, phase, duty_cycle);
+	`endif
+   
+   //convert phase to fixed
+   if ((phase < -360000) || (phase > 360000)) begin
+`ifndef SYNTHESIS
+      $display("ERROR: phase of $phase is not between -360000 and 360000");
+	`endif
+      $finish;
+   end
+
+
+      // Return value is
+      //    Transfer data
+      //       RESERVED     [37:36]
+      //       FRAC_TIME    [35:33]
+      //       FRAC_WF_FALL [32]
+      //    Upper address is:
+      //       RESERVED     [31:26]
+      //       MX           [25:24]
+      //       EDGE         [23]
+      //       NOCOUNT      [22]
+      //       DELAY_TIME   [21:16]
+      //    Lower Address is:
+      //       PHASE_MUX    [15:13]
+      //       RESERVED     [12]
+      //       HIGH_TIME    [11:6]
+      //       LOW_TIME     [5:0]
+      
+      
+
+	clkout0_divide_frac = frac / 125;
+	clkout0_divide_int = divide;
+
+	even_part_high = clkout0_divide_int >> 1;//$rtoi(clkout0_divide_int / 2);
+	even_part_low = even_part_high;
+									
+	odd = clkout0_divide_int - even_part_high - even_part_low;
+	odd_and_frac = (8*odd) + clkout0_divide_frac;
+
+	lt_frac = even_part_high - (odd_and_frac <= 9);//IF(odd_and_frac>9,even_part_high, even_part_high - 1)
+	ht_frac = even_part_low  - (odd_and_frac <= 8);//IF(odd_and_frac>8,even_part_low, even_part_low- 1)
+
+	pm_fall =  {odd[6:0],2'b00} + {6'h00, clkout0_divide_frac[2:1]}; // using >> instead of clkout0_divide_frac / 2 
+	pm_rise = 0; //0
+    
+	wf_fall_frac = (odd_and_frac >=2) && (odd_and_frac <=9);//IF(odd_and_frac>=2,IF(odd_and_frac <= 9,1,0),0)
+	wf_rise_frac = (odd_and_frac >=1) && (odd_and_frac <=8);//IF(odd_and_frac>=1,IF(odd_and_frac <= 8,1,0),0)
+
+
+
+	//Calculate phase in fractional cycles
+	a_per_in_octets		= (8 * divide) + (frac / 125) ;
+	a_phase_in_cycles	= (phase+10) * a_per_in_octets / 360000 ;//Adding 1 due to rounding errors
+	pm_rise_frac		= (a_phase_in_cycles[7:0] ==8'h00)?8'h00:a_phase_in_cycles[7:0] - {a_phase_in_cycles[7:3],3'b000};
+
+	dt_calc 	= ((phase+10) * a_per_in_octets / 8 )/360000 ;//TRUNC(phase* divide / 360); //or_simply (a_per_in_octets / 8)
+	dt 	= dt_calc[7:0];
+
+	pm_rise_frac_filtered = (pm_rise_frac >=8) ? (pm_rise_frac ) - 8: pm_rise_frac ;				//((phase_fixed * (divide + frac / 1000)) / 360) - {pm_rise_frac[7:3],3'b000};//$rtoi(clkout0_phase * clkout0_divide / 45);//a;
+
+	dt_int			= dt + (& pm_rise_frac[7:4]); //IF(pm_rise_overwriting>7,dt+1,dt)
+	pm_fall_frac		= pm_fall + pm_rise_frac;
+	pm_fall_frac_filtered	= pm_fall + pm_rise_frac - {pm_fall_frac[7:3], 3'b000};
+
+	div_calc	= mmcm_pll_divider(divide, duty_cycle); //Use to determine edge[7], no count[6]
+	phase_calc	= mmcm_pll_phase(divide, phase);// returns{mx[1:0], phase_mux[2:0], delay_time[5:0]}
+		
+      mmcm_pll_frac_count_calc[37:0] =
+         {		2'b00, pm_fall_frac_filtered[2:0], wf_fall_frac,
+			1'b0, clkout0_divide_frac[2:0], 1'b1, wf_rise_frac, phase_calc[10:9], div_calc[13:12], dt[5:0], 
+			3'b000, 1'b0, ht_frac[5:0], lt_frac[5:0] //Removed PM_Rise bits
+		} ;
+
+   `ifdef DEBUG
+      $display("-%d.%d p%d>>  :DADDR_9_15 frac30to28.frac_en.wf_r_frac.dt:%b%d%d_%b:DADDR_7_13 pm_f_frac_filtered_29to27.wf_f_frac_26:%b%d:DADDR_8_14.pm_r_frac_filt_15to13.ht_frac.lt_frac:%b%b%b:", divide, frac, phase, clkout0_divide_frac, 1, wf_rise_frac, dt, pm_fall_frac_filtered, wf_fall_frac, 3'b000, ht_frac, lt_frac);
+   `endif
+
+   end
+endfunction
+
-- 
GitLab