From 86178efa058dd2f7eb6b9c46fa6b6d233f0cafaf Mon Sep 17 00:00:00 2001
From: Charles MASSONG <c24masso@fl-tp-br-604.imta.fr>
Date: Wed, 26 Feb 2025 16:31:06 +0100
Subject: [PATCH] Travail tp filtre

---
 AudioProc.xpr                                 |  218 ++
 docs/img/FSM.drawio.png                       |  Bin 0 -> 129377 bytes
 docs/img/FSM.png                              |  Bin 117251 -> 0 bytes
 .../0/e/0edd54b7fee8338b/0edd54b7fee8338b.xci |  298 ++
 .../2024.1/0/e/0edd54b7fee8338b/clk_wiz_0.dcp |  Bin 0 -> 13273 bytes
 .../0edd54b7fee8338b/clk_wiz_0_sim_netlist.v  |  291 ++
 .../clk_wiz_0_sim_netlist.vhdl                |  216 ++
 .../0/e/0edd54b7fee8338b/clk_wiz_0_stub.v     |   31 +
 .../0/e/0edd54b7fee8338b/clk_wiz_0_stub.vhdl  |   35 +
 proj/AudioProc.cache/sim/ssm.db               |   11 +
 proj/AudioProc.cache/wt/project.wpc           |    3 +
 proj/AudioProc.cache/wt/synthesis.wdf         |   52 +
 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 +
 .../ip/clk_wiz_0/clk_wiz_0_stub.v             |   31 +
 .../ip/clk_wiz_0/clk_wiz_0_stub.vhdl          |   35 +
 .../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            |   25 +
 .../clk_wiz_0/activehdl/file_info.txt         |    5 +
 .../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 |   22 +
 .../clk_wiz_0/modelsim/file_info.txt          |    5 +
 .../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   |   22 +
 .../sim_scripts/clk_wiz_0/questa/elaborate.do |    1 +
 .../clk_wiz_0/questa/file_info.txt            |    5 +
 .../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  |   25 +
 .../clk_wiz_0/riviera/file_info.txt           |    5 +
 .../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    |  345 ++
 .../sim_scripts/clk_wiz_0/vcs/file_info.txt   |    5 +
 .../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            |  351 ++
 .../clk_wiz_0/xcelium/file_info.txt           |    5 +
 .../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 +
 proj/AudioProc.runs/.jobs/vrs_config_1.xml    |   12 +
 .../.Vivado_Synthesis.queue.rst               |    0
 .../.Xil/clk_wiz_0_propImpl.xdc               |    4 +
 .../clk_wiz_0_synth_1/.vivado.begin.rst       |    5 +
 .../clk_wiz_0_synth_1/.vivado.end.rst         |    0
 .../clk_wiz_0_synth_1/ISEWrap.js              |  270 ++
 .../clk_wiz_0_synth_1/ISEWrap.sh              |   85 +
 .../__synthesis_is_complete__                 |    0
 .../clk_wiz_0_synth_1/clk_wiz_0.dcp           |  Bin 0 -> 13383 bytes
 .../clk_wiz_0_synth_1/clk_wiz_0.tcl           |  234 ++
 .../clk_wiz_0_synth_1/clk_wiz_0.vds           |  272 ++
 .../clk_wiz_0_utilization_synth.pb            |  Bin 0 -> 276 bytes
 .../clk_wiz_0_utilization_synth.rpt           |  176 +
 .../clk_wiz_0_synth_1/dont_touch.xdc          |   32 +
 .../clk_wiz_0_synth_1/gen_run.xml             |   50 +
 proj/AudioProc.runs/clk_wiz_0_synth_1/htr.txt |   10 +
 .../clk_wiz_0_synth_1/project.wdf             |   32 +
 .../clk_wiz_0_synth_1/rundef.js               |   41 +
 .../clk_wiz_0_synth_1/runme.bat               |   12 +
 .../clk_wiz_0_synth_1/runme.log               |  262 ++
 .../AudioProc.runs/clk_wiz_0_synth_1/runme.sh |   40 +
 .../clk_wiz_0_synth_1/vivado.jou              |   24 +
 .../clk_wiz_0_synth_1/vivado.pb               |  Bin 0 -> 28572 bytes
 .../AudioProc.sim/sim_1/behav/xsim/compile.sh |   28 +
 .../sim_1/behav/xsim/elaborate.log            |   21 +
 .../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 -> 53384 bytes
 .../sim_1/behav/xsim/tb_firUnit_vhdl.prj      |    9 +
 .../sim_1/behav/xsim/tb_firUnit_vlog.prj      |    7 +
 proj/AudioProc.sim/sim_1/behav/xsim/xelab.pb  |  Bin 0 -> 2199 bytes
 .../tb_firUnit_behav/Compile_Options.txt      |    1 +
 .../tb_firUnit_behav/TempBreakPointFile.txt   |    1 +
 .../tb_firUnit_behav/obj/xsim_0.lnx64.o       |  Bin 0 -> 25536 bytes
 .../xsim.dir/tb_firUnit_behav/obj/xsim_1.c    |  142 +
 .../tb_firUnit_behav/obj/xsim_1.lnx64.o       |  Bin 0 -> 6392 bytes
 .../xsim/xsim.dir/tb_firUnit_behav/xsim.dbg   |  Bin 0 -> 15928 bytes
 .../xsim/xsim.dir/tb_firUnit_behav/xsim.mem   |  Bin 0 -> 4535 bytes
 .../xsim/xsim.dir/tb_firUnit_behav/xsim.reloc |  Bin 0 -> 2004 bytes
 .../xsim/xsim.dir/tb_firUnit_behav/xsim.rlx   |   12 +
 .../xsim/xsim.dir/tb_firUnit_behav/xsim.rtti  |  Bin 0 -> 753 bytes
 .../xsim.dir/tb_firUnit_behav/xsim.svtype     |  Bin 0 -> 47 bytes
 .../xsim/xsim.dir/tb_firUnit_behav/xsim.type  |  Bin 0 -> 7048 bytes
 .../xsim/xsim.dir/tb_firUnit_behav/xsim.xdbg  |  Bin 0 -> 13064 bytes
 .../tb_firUnit_behav/xsimSettings.ini         |   50 +
 .../xsim.dir/tb_firUnit_behav/xsimcrash.log   |    0
 .../xsim/xsim.dir/tb_firUnit_behav/xsimk      |  Bin 0 -> 32824 bytes
 .../xsim.dir/tb_firUnit_behav/xsimkernel.log  |    7 +
 .../xsim.dir/xil_defaultlib/controlunit.vdb   |  Bin 0 -> 8400 bytes
 .../xsim/xsim.dir/xil_defaultlib/firunit.vdb  |  Bin 0 -> 10393 bytes
 .../xsim/xsim.dir/xil_defaultlib/glbl.sdb     |  Bin 0 -> 5679 bytes
 .../xsim.dir/xil_defaultlib/operativeunit.vdb |  Bin 0 -> 14228 bytes
 .../xsim.dir/xil_defaultlib/tb_firunit.vdb    |  Bin 0 -> 7470 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 -> 859 bytes
 proj/AudioProc.sim/sim_1/behav/xsim/xvlog.log |    0
 proj/AudioProc.sim/sim_1/behav/xsim/xvlog.pb  |    4 +
 proj/AudioProc.xpr                            |  348 ++
 proj/ip_upgrade.log                           |   27 +
 proj/tb_firUnit_behav.wcfg                    |   95 +
 proj/vivado.jou                               |   83 +
 proj/vivado.log                               | 1724 +++++++++
 src/hdl/controlUnit.vhd                       |   82 +-
 src/hdl/operativeUnit.vhd                     |   50 +-
 src/ip/clk_wiz_0/clk_wiz_0.dcp                |  Bin 12528 -> 13383 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                | 3448 +++++++++--------
 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      |   51 +-
 src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.vhdl   |   32 +-
 src/ip/clk_wiz_0/clk_wiz_0_stub.v             |   31 +-
 src/ip/clk_wiz_0/clk_wiz_0_stub.vhdl          |   18 +-
 .../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 +++
 vivado.jou                                    |   25 +
 vivado.log                                    |   97 +
 164 files changed, 21073 insertions(+), 2376 deletions(-)
 create mode 100644 AudioProc.xpr
 create mode 100644 docs/img/FSM.drawio.png
 delete mode 100644 docs/img/FSM.png
 create mode 100644 proj/AudioProc.cache/ip/2024.1/0/e/0edd54b7fee8338b/0edd54b7fee8338b.xci
 create mode 100644 proj/AudioProc.cache/ip/2024.1/0/e/0edd54b7fee8338b/clk_wiz_0.dcp
 create mode 100755 proj/AudioProc.cache/ip/2024.1/0/e/0edd54b7fee8338b/clk_wiz_0_sim_netlist.v
 create mode 100755 proj/AudioProc.cache/ip/2024.1/0/e/0edd54b7fee8338b/clk_wiz_0_sim_netlist.vhdl
 create mode 100755 proj/AudioProc.cache/ip/2024.1/0/e/0edd54b7fee8338b/clk_wiz_0_stub.v
 create mode 100755 proj/AudioProc.cache/ip/2024.1/0/e/0edd54b7fee8338b/clk_wiz_0_stub.vhdl
 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/synthesis.wdf
 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 100644 proj/AudioProc.ip_user_files/ip/clk_wiz_0/clk_wiz_0_stub.v
 create mode 100644 proj/AudioProc.ip_user_files/ip/clk_wiz_0/clk_wiz_0_stub.vhdl
 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.runs/.jobs/vrs_config_1.xml
 create mode 100644 proj/AudioProc.runs/clk_wiz_0_synth_1/.Vivado_Synthesis.queue.rst
 create mode 100644 proj/AudioProc.runs/clk_wiz_0_synth_1/.Xil/clk_wiz_0_propImpl.xdc
 create mode 100644 proj/AudioProc.runs/clk_wiz_0_synth_1/.vivado.begin.rst
 create mode 100644 proj/AudioProc.runs/clk_wiz_0_synth_1/.vivado.end.rst
 create mode 100755 proj/AudioProc.runs/clk_wiz_0_synth_1/ISEWrap.js
 create mode 100755 proj/AudioProc.runs/clk_wiz_0_synth_1/ISEWrap.sh
 create mode 100644 proj/AudioProc.runs/clk_wiz_0_synth_1/__synthesis_is_complete__
 create mode 100644 proj/AudioProc.runs/clk_wiz_0_synth_1/clk_wiz_0.dcp
 create mode 100644 proj/AudioProc.runs/clk_wiz_0_synth_1/clk_wiz_0.tcl
 create mode 100644 proj/AudioProc.runs/clk_wiz_0_synth_1/clk_wiz_0.vds
 create mode 100644 proj/AudioProc.runs/clk_wiz_0_synth_1/clk_wiz_0_utilization_synth.pb
 create mode 100644 proj/AudioProc.runs/clk_wiz_0_synth_1/clk_wiz_0_utilization_synth.rpt
 create mode 100644 proj/AudioProc.runs/clk_wiz_0_synth_1/dont_touch.xdc
 create mode 100644 proj/AudioProc.runs/clk_wiz_0_synth_1/gen_run.xml
 create mode 100644 proj/AudioProc.runs/clk_wiz_0_synth_1/htr.txt
 create mode 100644 proj/AudioProc.runs/clk_wiz_0_synth_1/project.wdf
 create mode 100644 proj/AudioProc.runs/clk_wiz_0_synth_1/rundef.js
 create mode 100644 proj/AudioProc.runs/clk_wiz_0_synth_1/runme.bat
 create mode 100644 proj/AudioProc.runs/clk_wiz_0_synth_1/runme.log
 create mode 100755 proj/AudioProc.runs/clk_wiz_0_synth_1/runme.sh
 create mode 100644 proj/AudioProc.runs/clk_wiz_0_synth_1/vivado.jou
 create mode 100644 proj/AudioProc.runs/clk_wiz_0_synth_1/vivado.pb
 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/operativeunit.vdb
 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
 create mode 100644 proj/vivado.jou
 create mode 100644 proj/vivado.log
 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
 create mode 100644 vivado.jou
 create mode 100644 vivado.log

diff --git a/AudioProc.xpr b/AudioProc.xpr
new file mode 100644
index 0000000..573f8c6
--- /dev/null
+++ b/AudioProc.xpr
@@ -0,0 +1,218 @@
+<?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/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/AudioProc.xpr">
+  <DefaultLaunch Dir="$PRUNDIR"/>
+  <Configuration>
+    <Option Name="Id" Val="e38929706f6f4a97b2a2b7a6dd753304"/>
+    <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="0"/>
+    <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="0"/>
+    <Option Name="WTModelSimExportSim" Val="0"/>
+    <Option Name="WTQuestaExportSim" Val="0"/>
+    <Option Name="WTIesExportSim" Val="0"/>
+    <Option Name="WTVcsExportSim" Val="0"/>
+    <Option Name="WTRivieraExportSim" Val="0"/>
+    <Option Name="WTActivehdlExportSim" Val="0"/>
+    <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"/>
+      <Config>
+        <Option Name="DesignMode" Val="RTL"/>
+        <Option Name="TopAutoSet" Val="TRUE"/>
+      </Config>
+    </FileSet>
+    <FileSet Name="constrs_1" Type="Constrs" RelSrcDir="$PSRCDIR/constrs_1" RelGenDir="$PGENDIR/constrs_1">
+      <Filter Type="Constrs"/>
+      <Config>
+        <Option Name="ConstrsType" Val="XDC"/>
+      </Config>
+    </FileSet>
+    <FileSet Name="sim_1" Type="SimulationSrcs" RelSrcDir="$PSRCDIR/sim_1" RelGenDir="$PGENDIR/sim_1">
+      <Config>
+        <Option Name="DesignMode" Val="RTL"/>
+        <Option Name="TopAutoSet" Val="TRUE"/>
+        <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"/>
+      </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/docs/img/FSM.drawio.png b/docs/img/FSM.drawio.png
new file mode 100644
index 0000000000000000000000000000000000000000..56b154b538b24e9cbea2e6fcacb52b656a2f1b91
GIT binary patch
literal 129377
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
Vr_wyijDdlH!PC{xWt~$(697u_d(r>^

literal 0
HcmV?d00001

diff --git a/docs/img/FSM.png b/docs/img/FSM.png
deleted file mode 100644
index 7f6db881fff5cdfb9351c0348dfec49ff082516d..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

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

diff --git a/proj/AudioProc.cache/ip/2024.1/0/e/0edd54b7fee8338b/0edd54b7fee8338b.xci b/proj/AudioProc.cache/ip/2024.1/0/e/0edd54b7fee8338b/0edd54b7fee8338b.xci
new file mode 100644
index 0000000..647b9d9
--- /dev/null
+++ b/proj/AudioProc.cache/ip/2024.1/0/e/0edd54b7fee8338b/0edd54b7fee8338b.xci
@@ -0,0 +1,298 @@
+<?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>ipcache</spirit:library>
+  <spirit:name>0edd54b7fee8338b</spirit:name>
+  <spirit:version>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="6.0"/>
+      <spirit:configurableElementValues>
+        <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.CLOCK_CLK_IN1.FREQ_HZ">100000000</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.CLOCK_CLK_OUT1.FREQ_HZ">100000000</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.CLOCK_CLK_OUT2.FREQ_HZ">100000000</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.CLOCK_CLK_OUT3.FREQ_HZ">100000000</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.CLOCK_CLK_OUT4.FREQ_HZ">100000000</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AUTO_PRIMITIVE">MMCM</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_DRP">false</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_MATCHED_ROUTING">false</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_MATCHED_ROUTING">false</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_MATCHED_ROUTING">false</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_MATCHED_ROUTING">false</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_MATCHED_ROUTING">false</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_MATCHED_ROUTING">false</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_MATCHED_ROUTING">false</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.ENABLE_CLOCK_MONITOR">false</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_USER_CLOCK0">false</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_USER_CLOCK1">false</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_USER_CLOCK2">false</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_USER_CLOCK3">false</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_PLL0">false</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_PLL1">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.OPTIMIZE_CLOCKING_STRUCTURE_EN">false</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.PHASESHIFT_MODE">WAVEFORM</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.PRECISION">1</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.REF_CLK_FREQ">100.0</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.USER_CLK_FREQ0">100.0</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USER_CLK_FREQ1">100.0</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USER_CLK_FREQ2">100.0</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USER_CLK_FREQ3">100.0</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.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.SPEEDGRADE">-1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.STATIC_POWER"/>
+        <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.TEMPERATURE_GRADE"/>
+        <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPCACHEELABORATESCRC">e6a05ff8</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPCACHEID">0edd54b7fee8338b</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPCACHESPECIALDATA">clk_wiz_0</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPCACHESYNTHCL">$Change: 5073576 $</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPCACHESYNTHCRC">401ad827</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPCACHESYNTHRUNTIME">66</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPCONTEXT">IP_Unknown</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPREVISION">14</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">2024.1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">GLOBAL</spirit:configurableElementValue>
+      </spirit:configurableElementValues>
+    </spirit:componentInstance>
+  </spirit:componentInstances>
+</spirit:design>
diff --git a/proj/AudioProc.cache/ip/2024.1/0/e/0edd54b7fee8338b/clk_wiz_0.dcp b/proj/AudioProc.cache/ip/2024.1/0/e/0edd54b7fee8338b/clk_wiz_0.dcp
new file mode 100644
index 0000000000000000000000000000000000000000..b109f08ea01cc4d8f3863598892880bc45ec6a41
GIT binary patch
literal 13273
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
NLye77%H0eNYynwq;-~-s

literal 0
HcmV?d00001

diff --git a/proj/AudioProc.cache/ip/2024.1/0/e/0edd54b7fee8338b/clk_wiz_0_sim_netlist.v b/proj/AudioProc.cache/ip/2024.1/0/e/0edd54b7fee8338b/clk_wiz_0_sim_netlist.v
new file mode 100755
index 0000000..2a0c546
--- /dev/null
+++ b/proj/AudioProc.cache/ip/2024.1/0/e/0edd54b7fee8338b/clk_wiz_0_sim_netlist.v
@@ -0,0 +1,291 @@
+// 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 11:54:27 2025
+// Host        : fl-tp-br-604 running 64-bit Ubuntu 24.04.1 LTS
+// Command     : write_verilog -force -mode funcsim -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix
+//               decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ 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
+
+(* NotValidForBitStream *)
+module decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix
+   (clk_out1,
+    clk_out2,
+    clk_out3,
+    clk_out4,
+    reset,
+    locked,
+    clk_in1);
+  output clk_out1;
+  output clk_out2;
+  output clk_out3;
+  output clk_out4;
+  input reset;
+  output locked;
+  input clk_in1;
+
+  (* IBUF_LOW_PWR *) wire clk_in1;
+  wire clk_out1;
+  wire clk_out2;
+  wire clk_out3;
+  wire clk_out4;
+  wire locked;
+  wire reset;
+
+  decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_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
+
+module decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_clk_wiz_0_clk_wiz
+   (clk_out1,
+    clk_out2,
+    clk_out3,
+    clk_out4,
+    reset,
+    locked,
+    clk_in1);
+  output clk_out1;
+  output clk_out2;
+  output clk_out3;
+  output clk_out4;
+  input reset;
+  output locked;
+  input clk_in1;
+
+  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;
+    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.cache/ip/2024.1/0/e/0edd54b7fee8338b/clk_wiz_0_sim_netlist.vhdl b/proj/AudioProc.cache/ip/2024.1/0/e/0edd54b7fee8338b/clk_wiz_0_sim_netlist.vhdl
new file mode 100755
index 0000000..a8125e2
--- /dev/null
+++ b/proj/AudioProc.cache/ip/2024.1/0/e/0edd54b7fee8338b/clk_wiz_0_sim_netlist.vhdl
@@ -0,0 +1,216 @@
+-- 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 11:54:28 2025
+-- Host        : fl-tp-br-604 running 64-bit Ubuntu 24.04.1 LTS
+-- Command     : write_vhdl -force -mode funcsim -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix
+--               decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ 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 decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_clk_wiz_0_clk_wiz is
+  port (
+    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;
+    clk_in1 : in STD_LOGIC
+  );
+end decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_clk_wiz_0_clk_wiz;
+
+architecture STRUCTURE of decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_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 decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix is
+  port (
+    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;
+    clk_in1 : in STD_LOGIC
+  );
+  attribute NotValidForBitStream : boolean;
+  attribute NotValidForBitStream of decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix : entity is true;
+end decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix;
+
+architecture STRUCTURE of decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix is
+begin
+inst: entity work.decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_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/proj/AudioProc.cache/ip/2024.1/0/e/0edd54b7fee8338b/clk_wiz_0_stub.v b/proj/AudioProc.cache/ip/2024.1/0/e/0edd54b7fee8338b/clk_wiz_0_stub.v
new file mode 100755
index 0000000..34b708c
--- /dev/null
+++ b/proj/AudioProc.cache/ip/2024.1/0/e/0edd54b7fee8338b/clk_wiz_0_stub.v
@@ -0,0 +1,31 @@
+// 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 11:54:27 2025
+// Host        : fl-tp-br-604 running 64-bit Ubuntu 24.04.1 LTS
+// Command     : write_verilog -force -mode synth_stub -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix
+//               decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ 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 decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix(clk_out1, clk_out2, clk_out3, clk_out4, reset, 
+  locked, clk_in1)
+/* synthesis syn_black_box black_box_pad_pin="reset,locked,clk_in1" */
+/* synthesis syn_force_seq_prim="clk_out1" */
+/* synthesis syn_force_seq_prim="clk_out2" */
+/* synthesis syn_force_seq_prim="clk_out3" */
+/* synthesis syn_force_seq_prim="clk_out4" */;
+  output clk_out1 /* synthesis syn_isclock = 1 */;
+  output clk_out2 /* synthesis syn_isclock = 1 */;
+  output clk_out3 /* synthesis syn_isclock = 1 */;
+  output clk_out4 /* synthesis syn_isclock = 1 */;
+  input reset;
+  output locked;
+  input clk_in1;
+endmodule
diff --git a/proj/AudioProc.cache/ip/2024.1/0/e/0edd54b7fee8338b/clk_wiz_0_stub.vhdl b/proj/AudioProc.cache/ip/2024.1/0/e/0edd54b7fee8338b/clk_wiz_0_stub.vhdl
new file mode 100755
index 0000000..c1b53b0
--- /dev/null
+++ b/proj/AudioProc.cache/ip/2024.1/0/e/0edd54b7fee8338b/clk_wiz_0_stub.vhdl
@@ -0,0 +1,35 @@
+-- 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 11:54:27 2025
+-- Host        : fl-tp-br-604 running 64-bit Ubuntu 24.04.1 LTS
+-- Command     : write_vhdl -force -mode synth_stub -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix
+--               decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ 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 decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix is
+  Port ( 
+    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;
+    clk_in1 : in STD_LOGIC
+  );
+
+end decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix;
+
+architecture stub of decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix 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_out1,clk_out2,clk_out3,clk_out4,reset,locked,clk_in1";
+begin
+end;
diff --git a/proj/AudioProc.cache/sim/ssm.db b/proj/AudioProc.cache/sim/ssm.db
new file mode 100644
index 0000000..593ba29
--- /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:03:32 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..9b34209
--- /dev/null
+++ b/proj/AudioProc.cache/wt/project.wpc
@@ -0,0 +1,3 @@
+version:1
+6d6f64655f636f756e7465727c4755494d6f6465:1
+eof:
diff --git a/proj/AudioProc.cache/wt/synthesis.wdf b/proj/AudioProc.cache/wt/synthesis.wdf
new file mode 100644
index 0000000..d385d80
--- /dev/null
+++ b/proj/AudioProc.cache/wt/synthesis.wdf
@@ -0,0 +1,52 @@
+version:1
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d70617274:78633761323030747362673438342d31:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6e616d65:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d746f70:636c6b5f77697a5f30:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d696e636c7564655f64697273:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d67656e65726963:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d646566696e65:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d766572696c6f675f646566696e65:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d7668646c5f646566696e65:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d636f6e737472736574:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d7365755f70726f74656374:64656661756c743a3a6e6f6e65:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d666c617474656e5f686965726172636879:64656661756c743a3a72656275696c74:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d67617465645f636c6f636b5f636f6e76657273696f6e:64656661756c743a3a6f6666:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d646972656374697665:64656661756c743a3a64656661756c74:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d696e6372656d656e74616c5f6d6f6465:6f6666:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d72746c:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6c696e74:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d66696c65:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d64617461666c6f77:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d64617461666c6f775f73657474696e6773:64656661756c743a3a6e6f6e65:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d72746c5f736b69705f6970:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d72746c5f736b69705f636f6e73747261696e7473:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6e6f5f6c63:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6c75745f63617363616465:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6f73:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d62756667:64656661756c743a3a3132:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d66616e6f75745f6c696d6974:64656661756c743a3a3130303030:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d73687265675f6d696e5f73697a65:64656661756c743a3a33:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6d6f6465:6f75745f6f665f636f6e74657874:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d66736d5f65787472616374696f6e:64656661756c743a3a6175746f:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6b6565705f6571756976616c656e745f726567697374657273:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d7265736f757263655f73686172696e67:64656661756c743a3a6175746f:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d636173636164655f647370:64656661756c743a3a6175746f:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d636f6e74726f6c5f7365745f6f70745f7468726573686f6c64:64656661756c743a3a6175746f:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6d61785f6272616d:64656661756c743a3a2d31:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6d61785f7572616d:64656661756c743a3a2d31:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6d61785f647370:64656661756c743a3a2d31:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6d61785f6272616d5f636173636164655f686569676874:64656661756c743a3a2d31:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6d61785f7572616d5f636173636164655f686569676874:64656661756c743a3a2d31:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d726574696d696e67:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6e6f5f726574696d696e67:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d676c6f62616c5f726574696d696e67:64656661756c743a3a6175746f:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6e6f5f73726c65787472616374:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d617373657274:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6e6f5f74696d696e675f64726976656e:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d73666375:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d64656275675f6c6f67:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d657374:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c7573616765:656c6170736564:30303a30303a323173:00:00
+73796e746865736973:73796e7468657369735c7573616765:6d656d6f72795f7065616b:323637372e3536364d42:00:00
+73796e746865736973:73796e7468657369735c7573616765:6d656d6f72795f6761696e:3937322e3133334d42:00:00
+eof:3734131713
diff --git a/proj/AudioProc.cache/wt/xsim.wdf b/proj/AudioProc.cache/wt/xsim.wdf
new file mode 100644
index 0000000..51d5206
--- /dev/null
+++ b/proj/AudioProc.cache/wt/xsim.wdf
@@ -0,0 +1,4 @@
+version:1
+7873696d:7873696d5c636f6d6d616e645f6c696e655f6f7074696f6e73:2d73696d5f6d6f6465:6265686176696f72616c:00:00
+7873696d:7873696d5c636f6d6d616e645f6c696e655f6f7074696f6e73:2d73696d5f74797065:64656661756c743a3a:00:00
+eof:2427094519
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/ip/clk_wiz_0/clk_wiz_0_stub.v b/proj/AudioProc.ip_user_files/ip/clk_wiz_0/clk_wiz_0_stub.v
new file mode 100644
index 0000000..88530c7
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/ip/clk_wiz_0/clk_wiz_0_stub.v
@@ -0,0 +1,31 @@
+// 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 11:54:28 2025
+// Host        : fl-tp-br-604 running 64-bit Ubuntu 24.04.1 LTS
+// Command     : write_verilog -force -mode synth_stub
+//               /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/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_out1, clk_out2, clk_out3, clk_out4, reset, 
+  locked, clk_in1)
+/* synthesis syn_black_box black_box_pad_pin="reset,locked,clk_in1" */
+/* synthesis syn_force_seq_prim="clk_out1" */
+/* synthesis syn_force_seq_prim="clk_out2" */
+/* synthesis syn_force_seq_prim="clk_out3" */
+/* synthesis syn_force_seq_prim="clk_out4" */;
+  output clk_out1 /* synthesis syn_isclock = 1 */;
+  output clk_out2 /* synthesis syn_isclock = 1 */;
+  output clk_out3 /* synthesis syn_isclock = 1 */;
+  output clk_out4 /* synthesis syn_isclock = 1 */;
+  input reset;
+  output locked;
+  input clk_in1;
+endmodule
diff --git a/proj/AudioProc.ip_user_files/ip/clk_wiz_0/clk_wiz_0_stub.vhdl b/proj/AudioProc.ip_user_files/ip/clk_wiz_0/clk_wiz_0_stub.vhdl
new file mode 100644
index 0000000..04dfc6c
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/ip/clk_wiz_0/clk_wiz_0_stub.vhdl
@@ -0,0 +1,35 @@
+-- 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 11:54:28 2025
+-- Host        : fl-tp-br-604 running 64-bit Ubuntu 24.04.1 LTS
+-- Command     : write_vhdl -force -mode synth_stub
+--               /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/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_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;
+    clk_in1 : in 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_out1,clk_out2,clk_out3,clk_out4,reset,locked,clk_in1";
+begin
+end;
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..e749064
--- /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 11:53:03 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..74d9461
--- /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 11:53:03 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..c65c1fc
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/activehdl/compile.do
@@ -0,0 +1,25 @@
+transcript off
+onbreak {quit -force}
+onerror {quit -force}
+transcript on
+
+vlib work
+vlib activehdl/xpm
+vlib activehdl/xil_defaultlib
+
+vmap xpm activehdl/xpm
+vmap xil_defaultlib activehdl/xil_defaultlib
+
+vlog -work xpm  -sv2k12 "+incdir+../../../ipstatic" -l xpm -l xil_defaultlib \
+"/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/ip/xpm/xpm_cdc/hdl/xpm_cdc.sv" \
+
+vcom -work xpm -  \
+"/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/ip/xpm/xpm_VCOMP.vhd" \
+
+vlog -work xil_defaultlib  -v2k5 "+incdir+../../../ipstatic" -l xpm -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..b33b916
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/activehdl/file_info.txt
@@ -0,0 +1,5 @@
+xpm_cdc.sv,systemverilog,xpm,../../../../../../usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/ip/xpm/xpm_cdc/hdl/xpm_cdc.sv,incdir="../../../ipstatic"incdir="../../../ipstatic"
+xpm_VCOMP.vhd,vhdl,xpm,../../../../../../usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/ip/xpm/xpm_VCOMP.vhd,incdir="../../../ipstatic"incdir="../../../ipstatic"
+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..2bd90be
--- /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 xpm -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..e749064
--- /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 11:53:03 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..8939ec5
--- /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 11:53:03 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..270653b
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/modelsim/compile.do
@@ -0,0 +1,22 @@
+vlib modelsim_lib/work
+vlib modelsim_lib/msim
+
+vlib modelsim_lib/msim/xpm
+vlib modelsim_lib/msim/xil_defaultlib
+
+vmap xpm modelsim_lib/msim/xpm
+vmap xil_defaultlib modelsim_lib/msim/xil_defaultlib
+
+vlog -work xpm -64 -incr -mfcu  -sv "+incdir+../../../ipstatic" \
+"/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/ip/xpm/xpm_cdc/hdl/xpm_cdc.sv" \
+
+vcom -work xpm -64 -93  \
+"/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/ip/xpm/xpm_VCOMP.vhd" \
+
+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..b33b916
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/modelsim/file_info.txt
@@ -0,0 +1,5 @@
+xpm_cdc.sv,systemverilog,xpm,../../../../../../usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/ip/xpm/xpm_cdc/hdl/xpm_cdc.sv,incdir="../../../ipstatic"incdir="../../../ipstatic"
+xpm_VCOMP.vhd,vhdl,xpm,../../../../../../usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/ip/xpm/xpm_VCOMP.vhd,incdir="../../../ipstatic"incdir="../../../ipstatic"
+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..157ea1c
--- /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 xpm -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..e749064
--- /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 11:53:03 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..eaab4da
--- /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 11:53:03 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..2e71be8
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/compile.do
@@ -0,0 +1,22 @@
+vlib questa_lib/work
+vlib questa_lib/msim
+
+vlib questa_lib/msim/xpm
+vlib questa_lib/msim/xil_defaultlib
+
+vmap xpm questa_lib/msim/xpm
+vmap xil_defaultlib questa_lib/msim/xil_defaultlib
+
+vlog -work xpm -64 -incr -mfcu  -sv "+incdir+../../../ipstatic" \
+"/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/ip/xpm/xpm_cdc/hdl/xpm_cdc.sv" \
+
+vcom -work xpm -64 -93  \
+"/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/ip/xpm/xpm_VCOMP.vhd" \
+
+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..327f0a7
--- /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 xpm -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..b33b916
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/questa/file_info.txt
@@ -0,0 +1,5 @@
+xpm_cdc.sv,systemverilog,xpm,../../../../../../usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/ip/xpm/xpm_cdc/hdl/xpm_cdc.sv,incdir="../../../ipstatic"incdir="../../../ipstatic"
+xpm_VCOMP.vhd,vhdl,xpm,../../../../../../usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/ip/xpm/xpm_VCOMP.vhd,incdir="../../../ipstatic"incdir="../../../ipstatic"
+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..e749064
--- /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 11:53:03 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..843cf62
--- /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 11:53:03 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..28c4c2b
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/riviera/compile.do
@@ -0,0 +1,25 @@
+transcript off
+onbreak {quit -force}
+onerror {quit -force}
+transcript on
+
+vlib work
+vlib riviera/xpm
+vlib riviera/xil_defaultlib
+
+vmap xpm riviera/xpm
+vmap xil_defaultlib riviera/xil_defaultlib
+
+vlog -work xpm  -incr "+incdir+../../../ipstatic" -l xpm -l xil_defaultlib \
+"/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/ip/xpm/xpm_cdc/hdl/xpm_cdc.sv" \
+
+vcom -work xpm -93  -incr \
+"/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/ip/xpm/xpm_VCOMP.vhd" \
+
+vlog -work xil_defaultlib  -incr -v2k5 "+incdir+../../../ipstatic" -l xpm -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..b33b916
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/riviera/file_info.txt
@@ -0,0 +1,5 @@
+xpm_cdc.sv,systemverilog,xpm,../../../../../../usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/ip/xpm/xpm_cdc/hdl/xpm_cdc.sv,incdir="../../../ipstatic"incdir="../../../ipstatic"
+xpm_VCOMP.vhd,vhdl,xpm,../../../../../../usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/ip/xpm/xpm_VCOMP.vhd,incdir="../../../ipstatic"incdir="../../../ipstatic"
+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..972cc59
--- /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 xpm -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..e749064
--- /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 11:53:03 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..35bbf8c
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/vcs/clk_wiz_0.sh
@@ -0,0 +1,345 @@
+#!/usr/bin/env bash
+#**********************************************************************************************************
+# Vivado (TM) v2024.1 (64-bit)
+#
+# Script generated by Vivado on Wed Feb 26 11:53:03 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=(xpm 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 xpm $vlogan_opts -sverilog +incdir+"../../../ipstatic" \
+  "/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/ip/xpm/xpm_cdc/hdl/xpm_cdc.sv" \
+  2>&1 | tee compile.log; cat .tmp_log > vlogan.log 2>/dev/null
+
+  vhdlan -work xpm $vhdlan_opts \
+  "/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/ip/xpm/xpm_VCOMP.vhd" \
+  2>&1 | tee -a compile.log; cat .tmp_log > vhdlan.log 2>/dev/null
+
+  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 -a 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..b33b916
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/vcs/file_info.txt
@@ -0,0 +1,5 @@
+xpm_cdc.sv,systemverilog,xpm,../../../../../../usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/ip/xpm/xpm_cdc/hdl/xpm_cdc.sv,incdir="../../../ipstatic"incdir="../../../ipstatic"
+xpm_VCOMP.vhd,vhdl,xpm,../../../../../../usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/ip/xpm/xpm_VCOMP.vhd,incdir="../../../ipstatic"incdir="../../../ipstatic"
+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..e749064
--- /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 11:53:03 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..ed97de1
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xcelium/clk_wiz_0.sh
@@ -0,0 +1,351 @@
+#!/usr/bin/env bash
+#**********************************************************************************************************
+# Vivado (TM) v2024.1 (64-bit)
+#
+# Script generated by Vivado on Wed Feb 26 11:53:03 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 xpm -libname xil_defaultlib -libname unisims_ver -libname unimacro_ver -libname secureip"
+
+# set design libraries
+design_libs=(simprims_ver xpm 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 xpm $xmvlog_opts -sv +incdir+"../../../ipstatic" \
+  "/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/ip/xpm/xpm_cdc/hdl/xpm_cdc.sv" \
+  2>&1 | tee compile.log; cat .tmp_log > xmvlog.log 2>/dev/null
+
+  xmvhdl -work xpm -V93 $xmvhdl_opts \
+  "/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/ip/xpm/xpm_VCOMP.vhd" \
+  2>&1 | tee -a compile.log; cat .tmp_log > xmvhdl.log 2>/dev/null
+
+  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 -a 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..b33b916
--- /dev/null
+++ b/proj/AudioProc.ip_user_files/sim_scripts/clk_wiz_0/xcelium/file_info.txt
@@ -0,0 +1,5 @@
+xpm_cdc.sv,systemverilog,xpm,../../../../../../usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/ip/xpm/xpm_cdc/hdl/xpm_cdc.sv,incdir="../../../ipstatic"incdir="../../../ipstatic"
+xpm_VCOMP.vhd,vhdl,xpm,../../../../../../usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/ip/xpm/xpm_VCOMP.vhd,incdir="../../../ipstatic"incdir="../../../ipstatic"
+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..e749064
--- /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 11:53:03 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..9881fce
--- /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 11:53:03 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="/usr/home/enstb1/MEE/Xilinx/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.runs/.jobs/vrs_config_1.xml b/proj/AudioProc.runs/.jobs/vrs_config_1.xml
new file mode 100644
index 0000000..d39edd1
--- /dev/null
+++ b/proj/AudioProc.runs/.jobs/vrs_config_1.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<Runs Version="1" Minor="0">
+	<Run Id="clk_wiz_0_synth_1" LaunchDir="/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.runs/clk_wiz_0_synth_1" FlowId="Vivado_Synthesis" FromStepId="vivado" ToStepId="vivado"/>
+	<Parameters>
+		<Parameter Name="runs.monitorLSFJobs" Val="true" Type="bool"/>
+		<Parameter Name="runs.enableClusterConf" Val="true" Type="bool"/>
+		<Parameter Name="general.ignorePathLengthChecks" Val="true" Type="bool"/>
+		<Parameter Name="general.shortenLongPath" Val="true" Type="bool"/>
+	</Parameters>
+	<ProductInfo Name="vivado"/>
+</Runs>
+
diff --git a/proj/AudioProc.runs/clk_wiz_0_synth_1/.Vivado_Synthesis.queue.rst b/proj/AudioProc.runs/clk_wiz_0_synth_1/.Vivado_Synthesis.queue.rst
new file mode 100644
index 0000000..e69de29
diff --git a/proj/AudioProc.runs/clk_wiz_0_synth_1/.Xil/clk_wiz_0_propImpl.xdc b/proj/AudioProc.runs/clk_wiz_0_synth_1/.Xil/clk_wiz_0_propImpl.xdc
new file mode 100644
index 0000000..5fe727d
--- /dev/null
+++ b/proj/AudioProc.runs/clk_wiz_0_synth_1/.Xil/clk_wiz_0_propImpl.xdc
@@ -0,0 +1,4 @@
+set_property SRC_FILE_INFO {cfile:/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0.xdc rfile:../../../../src/ip/clk_wiz_0/clk_wiz_0.xdc id:1 order:EARLY scoped_inst:inst} [current_design]
+current_instance inst
+set_property src_info {type:SCOPED_XDC file:1 line:54 export:INPUT save:INPUT read:READ} [current_design]
+set_input_jitter [get_clocks -of_objects [get_ports clk_in1]] 0.100
diff --git a/proj/AudioProc.runs/clk_wiz_0_synth_1/.vivado.begin.rst b/proj/AudioProc.runs/clk_wiz_0_synth_1/.vivado.begin.rst
new file mode 100644
index 0000000..e298042
--- /dev/null
+++ b/proj/AudioProc.runs/clk_wiz_0_synth_1/.vivado.begin.rst
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<ProcessHandle Version="1" Minor="0">
+    <Process Command="vivado" Owner="c24masso" Host="fl-tp-br-604" Pid="36790" HostCore="12" HostMemory="16081508">
+    </Process>
+</ProcessHandle>
diff --git a/proj/AudioProc.runs/clk_wiz_0_synth_1/.vivado.end.rst b/proj/AudioProc.runs/clk_wiz_0_synth_1/.vivado.end.rst
new file mode 100644
index 0000000..e69de29
diff --git a/proj/AudioProc.runs/clk_wiz_0_synth_1/ISEWrap.js b/proj/AudioProc.runs/clk_wiz_0_synth_1/ISEWrap.js
new file mode 100755
index 0000000..61806d0
--- /dev/null
+++ b/proj/AudioProc.runs/clk_wiz_0_synth_1/ISEWrap.js
@@ -0,0 +1,270 @@
+//
+//  Vivado(TM)
+//  ISEWrap.js: Vivado Runs Script for WSH 5.1/5.6
+//  Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. 
+//  Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. 
+//
+
+// GLOBAL VARIABLES
+var ISEShell = new ActiveXObject( "WScript.Shell" );
+var ISEFileSys = new ActiveXObject( "Scripting.FileSystemObject" );
+var ISERunDir = "";
+var ISELogFile = "runme.log";
+var ISELogFileStr = null;
+var ISELogEcho = true;
+var ISEOldVersionWSH = false;
+
+
+
+// BOOTSTRAP
+ISEInit();
+
+
+
+//
+// ISE FUNCTIONS
+//
+function ISEInit() {
+
+  // 1. RUN DIR setup
+  var ISEScrFP = WScript.ScriptFullName;
+  var ISEScrN = WScript.ScriptName;
+  ISERunDir = 
+    ISEScrFP.substr( 0, ISEScrFP.length - ISEScrN.length - 1 );
+
+  // 2. LOG file setup
+  ISELogFileStr = ISEOpenFile( ISELogFile );
+
+  // 3. LOG echo?
+  var ISEScriptArgs = WScript.Arguments;
+  for ( var loopi=0; loopi<ISEScriptArgs.length; loopi++ ) {
+    if ( ISEScriptArgs(loopi) == "-quiet" ) {
+      ISELogEcho = false;
+      break;
+    }
+  }
+
+  // 4. WSH version check
+  var ISEOptimalVersionWSH = 5.6;
+  var ISECurrentVersionWSH = WScript.Version;
+  if ( ISECurrentVersionWSH < ISEOptimalVersionWSH ) {
+
+    ISEStdErr( "" );
+    ISEStdErr( "Warning: ExploreAhead works best with Microsoft WSH " +
+	       ISEOptimalVersionWSH + " or higher. Downloads" );
+    ISEStdErr( "         for upgrading your Windows Scripting Host can be found here: " );
+    ISEStdErr( "             http://msdn.microsoft.com/downloads/list/webdev.asp" );
+    ISEStdErr( "" );
+
+    ISEOldVersionWSH = true;
+  }
+
+}
+
+function ISEStep( ISEProg, ISEArgs ) {
+
+  // CHECK for a STOP FILE
+  if ( ISEFileSys.FileExists(ISERunDir + "/.stop.rst") ) {
+    ISEStdErr( "" );
+    ISEStdErr( "*** Halting run - EA reset detected ***" );
+    ISEStdErr( "" );
+    WScript.Quit( 1 );
+  }
+
+  // WRITE STEP HEADER to LOG
+  ISEStdOut( "" );
+  ISEStdOut( "*** Running " + ISEProg );
+  ISEStdOut( "    with args " + ISEArgs );
+  ISEStdOut( "" );
+
+  // LAUNCH!
+  var ISEExitCode = ISEExec( ISEProg, ISEArgs );  
+  if ( ISEExitCode != 0 ) {
+    WScript.Quit( ISEExitCode );
+  }
+
+}
+
+function ISEExec( ISEProg, ISEArgs ) {
+
+  var ISEStep = ISEProg;
+  if (ISEProg == "realTimeFpga" || ISEProg == "planAhead" || ISEProg == "vivado") {
+    ISEProg += ".bat";
+  }
+
+  var ISECmdLine = ISEProg + " " + ISEArgs;
+  var ISEExitCode = 1;
+
+  if ( ISEOldVersionWSH ) { // WSH 5.1
+
+    // BEGIN file creation
+    ISETouchFile( ISEStep, "begin" );
+
+    // LAUNCH!
+    ISELogFileStr.Close();
+    ISECmdLine = 
+      "%comspec% /c " + ISECmdLine + " >> " + ISELogFile + " 2>&1";
+    ISEExitCode = ISEShell.Run( ISECmdLine, 0, true );
+    ISELogFileStr = ISEOpenFile( ISELogFile );
+
+  } else {  // WSH 5.6
+
+    // LAUNCH!
+    ISEShell.CurrentDirectory = ISERunDir;
+
+    // Redirect STDERR to STDOUT
+    ISECmdLine = "%comspec% /c " + ISECmdLine + " 2>&1";
+    var ISEProcess = ISEShell.Exec( ISECmdLine );
+    
+    // BEGIN file creation
+    var wbemFlagReturnImmediately = 0x10;
+    var wbemFlagForwardOnly = 0x20;
+    var objWMIService = GetObject ("winmgmts:{impersonationLevel=impersonate, (Systemtime)}!//./root/cimv2");
+    var processor = objWMIService.ExecQuery("SELECT * FROM Win32_Processor", "WQL",wbemFlagReturnImmediately | wbemFlagForwardOnly);
+    var computerSystem = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem", "WQL", wbemFlagReturnImmediately | wbemFlagForwardOnly);
+    var NOC = 0;
+    var NOLP = 0;
+    var TPM = 0;
+    var cpuInfos = new Enumerator(processor);
+    for(;!cpuInfos.atEnd(); cpuInfos.moveNext()) {
+        var cpuInfo = cpuInfos.item();
+        NOC += cpuInfo.NumberOfCores;
+        NOLP += cpuInfo.NumberOfLogicalProcessors;
+    }
+    var csInfos = new Enumerator(computerSystem);
+    for(;!csInfos.atEnd(); csInfos.moveNext()) {
+        var csInfo = csInfos.item();
+        TPM += csInfo.TotalPhysicalMemory;
+    }
+
+    var ISEHOSTCORE = NOLP
+    var ISEMEMTOTAL = TPM
+
+    var ISENetwork = WScript.CreateObject( "WScript.Network" );
+    var ISEHost = ISENetwork.ComputerName;
+    var ISEUser = ISENetwork.UserName;
+    var ISEPid = ISEProcess.ProcessID;
+    var ISEBeginFile = ISEOpenFile( "." + ISEStep + ".begin.rst" );
+    ISEBeginFile.WriteLine( "<?xml version=\"1.0\"?>" );
+    ISEBeginFile.WriteLine( "<ProcessHandle Version=\"1\" Minor=\"0\">" );
+    ISEBeginFile.WriteLine( "    <Process Command=\"" + ISEProg + 
+			    "\" Owner=\"" + ISEUser + 
+			    "\" Host=\"" + ISEHost + 
+			    "\" Pid=\"" + ISEPid +
+			    "\" HostCore=\"" + ISEHOSTCORE +
+			    "\" HostMemory=\"" + ISEMEMTOTAL +
+			    "\">" );
+    ISEBeginFile.WriteLine( "    </Process>" );
+    ISEBeginFile.WriteLine( "</ProcessHandle>" );
+    ISEBeginFile.Close();
+    
+    var ISEOutStr = ISEProcess.StdOut;
+    var ISEErrStr = ISEProcess.StdErr;
+    
+    // WAIT for ISEStep to finish
+    while ( ISEProcess.Status == 0 ) {
+      
+      // dump stdout then stderr - feels a little arbitrary
+      while ( !ISEOutStr.AtEndOfStream ) {
+        ISEStdOut( ISEOutStr.ReadLine() );
+      }  
+      
+      WScript.Sleep( 100 );
+    }
+
+    ISEExitCode = ISEProcess.ExitCode;
+  }
+
+  ISELogFileStr.Close();
+
+  // END/ERROR file creation
+  if ( ISEExitCode != 0 ) {    
+    ISETouchFile( ISEStep, "error" );
+    
+  } else {
+    ISETouchFile( ISEStep, "end" );
+  }
+
+  return ISEExitCode;
+}
+
+
+//
+// UTILITIES
+//
+function ISEStdOut( ISELine ) {
+
+  ISELogFileStr.WriteLine( ISELine );
+  
+  if ( ISELogEcho ) {
+    WScript.StdOut.WriteLine( ISELine );
+  }
+}
+
+function ISEStdErr( ISELine ) {
+  
+  ISELogFileStr.WriteLine( ISELine );
+
+  if ( ISELogEcho ) {
+    WScript.StdErr.WriteLine( ISELine );
+  }
+}
+
+function ISETouchFile( ISERoot, ISEStatus ) {
+
+  var ISETFile = 
+    ISEOpenFile( "." + ISERoot + "." + ISEStatus + ".rst" );
+  ISETFile.Close();
+}
+
+function ISEOpenFile( ISEFilename ) {
+
+  // This function has been updated to deal with a problem seen in CR #870871.
+  // In that case the user runs a script that runs impl_1, and then turns around
+  // and runs impl_1 -to_step write_bitstream. That second run takes place in
+  // the same directory, which means we may hit some of the same files, and in
+  // particular, we will open the runme.log file. Even though this script closes
+  // the file (now), we see cases where a subsequent attempt to open the file
+  // fails. Perhaps the OS is slow to release the lock, or the disk comes into
+  // play? In any case, we try to work around this by first waiting if the file
+  // is already there for an arbitrary 5 seconds. Then we use a try-catch block
+  // and try to open the file 10 times with a one second delay after each attempt.
+  // Again, 10 is arbitrary. But these seem to stop the hang in CR #870871.
+  // If there is an unrecognized exception when trying to open the file, we output
+  // an error message and write details to an exception.log file.
+  var ISEFullPath = ISERunDir + "/" + ISEFilename;
+  if (ISEFileSys.FileExists(ISEFullPath)) {
+    // File is already there. This could be a problem. Wait in case it is still in use.
+    WScript.Sleep(5000);
+  }
+  var i;
+  for (i = 0; i < 10; ++i) {
+    try {
+      return ISEFileSys.OpenTextFile(ISEFullPath, 8, true);
+    } catch (exception) {
+      var error_code = exception.number & 0xFFFF; // The other bits are a facility code.
+      if (error_code == 52) { // 52 is bad file name or number.
+        // Wait a second and try again.
+        WScript.Sleep(1000);
+        continue;
+      } else {
+        WScript.StdErr.WriteLine("ERROR: Exception caught trying to open file " + ISEFullPath);
+        var exceptionFilePath = ISERunDir + "/exception.log";
+        if (!ISEFileSys.FileExists(exceptionFilePath)) {
+          WScript.StdErr.WriteLine("See file " + exceptionFilePath + " for details.");
+          var exceptionFile = ISEFileSys.OpenTextFile(exceptionFilePath, 8, true);
+          exceptionFile.WriteLine("ERROR: Exception caught trying to open file " + ISEFullPath);
+          exceptionFile.WriteLine("\tException name: " + exception.name);
+          exceptionFile.WriteLine("\tException error code: " + error_code);
+          exceptionFile.WriteLine("\tException message: " + exception.message);
+          exceptionFile.Close();
+        }
+        throw exception;
+      }
+    }
+  }
+  // If we reached this point, we failed to open the file after 10 attempts.
+  // We need to error out.
+  WScript.StdErr.WriteLine("ERROR: Failed to open file " + ISEFullPath);
+  WScript.Quit(1);
+}
diff --git a/proj/AudioProc.runs/clk_wiz_0_synth_1/ISEWrap.sh b/proj/AudioProc.runs/clk_wiz_0_synth_1/ISEWrap.sh
new file mode 100755
index 0000000..05d5381
--- /dev/null
+++ b/proj/AudioProc.runs/clk_wiz_0_synth_1/ISEWrap.sh
@@ -0,0 +1,85 @@
+#!/bin/sh
+
+#
+#  Vivado(TM)
+#  ISEWrap.sh: Vivado Runs Script for UNIX
+#  Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. 
+#  Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. 
+#
+
+cmd_exists()
+{
+  command -v "$1" >/dev/null 2>&1
+}
+
+HD_LOG=$1
+shift
+
+# CHECK for a STOP FILE
+if [ -f .stop.rst ]
+then
+echo ""                                        >> $HD_LOG
+echo "*** Halting run - EA reset detected ***" >> $HD_LOG
+echo ""                                        >> $HD_LOG
+exit 1
+fi
+
+ISE_STEP=$1
+shift
+
+# WRITE STEP HEADER to LOG
+echo ""                      >> $HD_LOG
+echo "*** Running $ISE_STEP" >> $HD_LOG
+echo "    with args $@"      >> $HD_LOG
+echo ""                      >> $HD_LOG
+
+# LAUNCH!
+$ISE_STEP "$@" >> $HD_LOG 2>&1 &
+
+# BEGIN file creation
+ISE_PID=$!
+
+HostNameFile=/proc/sys/kernel/hostname
+if cmd_exists hostname
+then
+ISE_HOST=$(hostname)
+elif cmd_exists uname
+then
+ISE_HOST=$(uname -n)
+elif [ -f "$HostNameFile" ] && [ -r $HostNameFile ] && [ -s $HostNameFile ] 
+then
+ISE_HOST=$(cat $HostNameFile)
+elif [ X != X$HOSTNAME ]
+then
+ISE_HOST=$HOSTNAME #bash
+else
+ISE_HOST=$HOST     #csh
+fi
+
+ISE_USER=$USER
+
+ISE_HOSTCORE=$(awk '/^processor/{print $3}' /proc/cpuinfo | wc -l)
+ISE_MEMTOTAL=$(awk '/MemTotal/ {print $2}' /proc/meminfo)
+
+ISE_BEGINFILE=.$ISE_STEP.begin.rst
+/bin/touch $ISE_BEGINFILE
+echo "<?xml version=\"1.0\"?>"                                                                     >> $ISE_BEGINFILE
+echo "<ProcessHandle Version=\"1\" Minor=\"0\">"                                                   >> $ISE_BEGINFILE
+echo "    <Process Command=\"$ISE_STEP\" Owner=\"$ISE_USER\" Host=\"$ISE_HOST\" Pid=\"$ISE_PID\" HostCore=\"$ISE_HOSTCORE\" HostMemory=\"$ISE_MEMTOTAL\">" >> $ISE_BEGINFILE
+echo "    </Process>"                                                                              >> $ISE_BEGINFILE
+echo "</ProcessHandle>"                                                                            >> $ISE_BEGINFILE
+
+# WAIT for ISEStep to finish
+wait $ISE_PID
+
+# END/ERROR file creation
+RETVAL=$?
+if [ $RETVAL -eq 0 ]
+then
+    /bin/touch .$ISE_STEP.end.rst
+else
+    /bin/touch .$ISE_STEP.error.rst
+fi
+
+exit $RETVAL
+
diff --git a/proj/AudioProc.runs/clk_wiz_0_synth_1/__synthesis_is_complete__ b/proj/AudioProc.runs/clk_wiz_0_synth_1/__synthesis_is_complete__
new file mode 100644
index 0000000..e69de29
diff --git a/proj/AudioProc.runs/clk_wiz_0_synth_1/clk_wiz_0.dcp b/proj/AudioProc.runs/clk_wiz_0_synth_1/clk_wiz_0.dcp
new file mode 100644
index 0000000000000000000000000000000000000000..f726fa3af1501226fc8fa1c14219391554de4aa4
GIT binary patch
literal 13383
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

literal 0
HcmV?d00001

diff --git a/proj/AudioProc.runs/clk_wiz_0_synth_1/clk_wiz_0.tcl b/proj/AudioProc.runs/clk_wiz_0_synth_1/clk_wiz_0.tcl
new file mode 100644
index 0000000..65a7b6c
--- /dev/null
+++ b/proj/AudioProc.runs/clk_wiz_0_synth_1/clk_wiz_0.tcl
@@ -0,0 +1,234 @@
+# 
+# Synthesis run script generated by Vivado
+# 
+
+set TIME_start [clock seconds] 
+namespace eval ::optrace {
+  variable script "/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.runs/clk_wiz_0_synth_1/clk_wiz_0.tcl"
+  variable category "vivado_synth"
+}
+
+# Try to connect to running dispatch if we haven't done so already.
+# This code assumes that the Tcl interpreter is not using threads,
+# since the ::dispatch::connected variable isn't mutex protected.
+if {![info exists ::dispatch::connected]} {
+  namespace eval ::dispatch {
+    variable connected false
+    if {[llength [array get env XILINX_CD_CONNECT_ID]] > 0} {
+      set result "true"
+      if {[catch {
+        if {[lsearch -exact [package names] DispatchTcl] < 0} {
+          set result [load librdi_cd_clienttcl[info sharedlibextension]] 
+        }
+        if {$result eq "false"} {
+          puts "WARNING: Could not load dispatch client library"
+        }
+        set connect_id [ ::dispatch::init_client -mode EXISTING_SERVER ]
+        if { $connect_id eq "" } {
+          puts "WARNING: Could not initialize dispatch client"
+        } else {
+          puts "INFO: Dispatch client connection id - $connect_id"
+          set connected true
+        }
+      } catch_res]} {
+        puts "WARNING: failed to connect to dispatch server - $catch_res"
+      }
+    }
+  }
+}
+if {$::dispatch::connected} {
+  # Remove the dummy proc if it exists.
+  if { [expr {[llength [info procs ::OPTRACE]] > 0}] } {
+    rename ::OPTRACE ""
+  }
+  proc ::OPTRACE { task action {tags {} } } {
+    ::vitis_log::op_trace "$task" $action -tags $tags -script $::optrace::script -category $::optrace::category
+  }
+  # dispatch is generic. We specifically want to attach logging.
+  ::vitis_log::connect_client
+} else {
+  # Add dummy proc if it doesn't exist.
+  if { [expr {[llength [info procs ::OPTRACE]] == 0}] } {
+    proc ::OPTRACE {{arg1 \"\" } {arg2 \"\"} {arg3 \"\" } {arg4 \"\"} {arg5 \"\" } {arg6 \"\"}} {
+        # Do nothing
+    }
+  }
+}
+
+OPTRACE "clk_wiz_0_synth_1" START { ROLLUP_AUTO }
+set_param project.vivado.isBlockSynthRun true
+set_msg_config -msgmgr_mode ooc_run
+OPTRACE "Creating in-memory project" START { }
+create_project -in_memory -part xc7a200tsbg484-1
+
+set_param project.singleFileAddWarning.threshold 0
+set_param project.compositeFile.enableAutoGeneration 0
+set_param synth.vivado.isSynthRun true
+set_msg_config -source 4 -id {IP_Flow 19-2162} -severity warning -new_severity info
+set_property webtalk.parent_dir /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.cache/wt [current_project]
+set_property parent.project_path /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.xpr [current_project]
+set_property XPM_LIBRARIES XPM_CDC [current_project]
+set_property default_lib xil_defaultlib [current_project]
+set_property target_language VHDL [current_project]
+set_property ip_repo_paths /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/repo [current_project]
+update_ip_catalog
+set_property ip_output_repo /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.cache/ip [current_project]
+set_property ip_cache_permissions {read write} [current_project]
+OPTRACE "Creating in-memory project" END { }
+OPTRACE "Adding files" START { }
+read_ip -quiet /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0.xci
+set_property used_in_implementation false [get_files -all /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0_board.xdc]
+set_property used_in_implementation false [get_files -all /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0.xdc]
+set_property used_in_implementation false [get_files -all /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0_ooc.xdc]
+
+OPTRACE "Adding files" END { }
+# Mark all dcp files as not used in implementation to prevent them from being
+# stitched into the results of this synthesis run. Any black boxes in the
+# design are intentionally left as such for best results. Dcp files will be
+# stitched into the design at a later time, either when this synthesis run is
+# opened, or when it is stitched into a dependent implementation run.
+foreach dcp [get_files -quiet -all -filter file_type=="Design\ Checkpoint"] {
+  set_property used_in_implementation false $dcp
+}
+read_xdc dont_touch.xdc
+set_property used_in_implementation false [get_files dont_touch.xdc]
+set_param ips.enableIPCacheLiteLoad 1
+OPTRACE "Configure IP Cache" START { }
+
+set cacheID [config_ip_cache -export -no_bom  -dir /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.runs/clk_wiz_0_synth_1 -new_name clk_wiz_0 -ip [get_ips clk_wiz_0]]
+
+OPTRACE "Configure IP Cache" END { }
+if { $cacheID == "" } {
+close [open __synthesis_is_running__ w]
+
+OPTRACE "synth_design" START { }
+synth_design -top clk_wiz_0 -part xc7a200tsbg484-1 -incremental_mode off -mode out_of_context
+OPTRACE "synth_design" END { }
+OPTRACE "Write IP Cache" START { }
+
+#---------------------------------------------------------
+# Generate Checkpoint/Stub/Simulation Files For IP Cache
+#---------------------------------------------------------
+# disable binary constraint mode for IPCache checkpoints
+set_param constraints.enableBinaryConstraints false
+
+catch {
+ write_checkpoint -force -noxdef -rename_prefix clk_wiz_0_ clk_wiz_0.dcp
+
+ set ipCachedFiles {}
+ write_verilog -force -mode synth_stub -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ clk_wiz_0_stub.v
+ lappend ipCachedFiles clk_wiz_0_stub.v
+
+ write_vhdl -force -mode synth_stub -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ clk_wiz_0_stub.vhdl
+ lappend ipCachedFiles clk_wiz_0_stub.vhdl
+
+ write_verilog -force -mode funcsim -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ clk_wiz_0_sim_netlist.v
+ lappend ipCachedFiles clk_wiz_0_sim_netlist.v
+
+ write_vhdl -force -mode funcsim -rename_top decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix -prefix decalper_eb_ot_sdeen_pot_pi_dehcac_xnilix_ clk_wiz_0_sim_netlist.vhdl
+ lappend ipCachedFiles clk_wiz_0_sim_netlist.vhdl
+ set TIME_taken [expr [clock seconds] - $TIME_start]
+
+ if { [get_msg_config -count -severity {CRITICAL WARNING}] == 0 } {
+  config_ip_cache -add -dcp clk_wiz_0.dcp -move_files $ipCachedFiles   -synth_runtime $TIME_taken  -ip [get_ips clk_wiz_0]
+ }
+OPTRACE "Write IP Cache" END { }
+}
+if { [get_msg_config -count -severity {CRITICAL WARNING}] > 0 } {
+ send_msg_id runtcl-6 info "Synthesis results are not added to the cache due to CRITICAL_WARNING"
+}
+
+rename_ref -prefix_all clk_wiz_0_
+
+OPTRACE "write_checkpoint" START { CHECKPOINT }
+# disable binary constraint mode for synth run checkpoints
+set_param constraints.enableBinaryConstraints false
+write_checkpoint -force -noxdef clk_wiz_0.dcp
+OPTRACE "write_checkpoint" END { }
+OPTRACE "synth reports" START { REPORT }
+generate_parallel_reports -reports { "report_utilization -file clk_wiz_0_utilization_synth.rpt -pb clk_wiz_0_utilization_synth.pb"  } 
+OPTRACE "synth reports" END { }
+
+if { [catch {
+  file copy -force /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.runs/clk_wiz_0_synth_1/clk_wiz_0.dcp /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0.dcp
+} _RESULT ] } { 
+  send_msg_id runtcl-3 status "ERROR: Unable to successfully create or copy the sub-design checkpoint file."
+  error "ERROR: Unable to successfully create or copy the sub-design checkpoint file."
+}
+
+if { [catch {
+  write_verilog -force -mode synth_stub /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0_stub.v
+} _RESULT ] } { 
+  puts "CRITICAL WARNING: Unable to successfully create a Verilog synthesis stub for the sub-design. This may lead to errors in top level synthesis of the design. Error reported: $_RESULT"
+}
+
+if { [catch {
+  write_vhdl -force -mode synth_stub /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0_stub.vhdl
+} _RESULT ] } { 
+  puts "CRITICAL WARNING: Unable to successfully create a VHDL synthesis stub for the sub-design. This may lead to errors in top level synthesis of the design. Error reported: $_RESULT"
+}
+
+if { [catch {
+  write_verilog -force -mode funcsim /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.v
+} _RESULT ] } { 
+  puts "CRITICAL WARNING: Unable to successfully create the Verilog functional simulation sub-design file. Post-Synthesis Functional Simulation with this file may not be possible or may give incorrect results. Error reported: $_RESULT"
+}
+
+if { [catch {
+  write_vhdl -force -mode funcsim /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.vhdl
+} _RESULT ] } { 
+  puts "CRITICAL WARNING: Unable to successfully create the VHDL functional simulation sub-design file. Post-Synthesis Functional Simulation with this file may not be possible or may give incorrect results. Error reported: $_RESULT"
+}
+
+
+} else {
+
+
+if { [catch {
+  file copy -force /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.runs/clk_wiz_0_synth_1/clk_wiz_0.dcp /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0.dcp
+} _RESULT ] } { 
+  send_msg_id runtcl-3 status "ERROR: Unable to successfully create or copy the sub-design checkpoint file."
+  error "ERROR: Unable to successfully create or copy the sub-design checkpoint file."
+}
+
+if { [catch {
+  file rename -force /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.runs/clk_wiz_0_synth_1/clk_wiz_0_stub.v /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0_stub.v
+} _RESULT ] } { 
+  puts "CRITICAL WARNING: Unable to successfully create a Verilog synthesis stub for the sub-design. This may lead to errors in top level synthesis of the design. Error reported: $_RESULT"
+}
+
+if { [catch {
+  file rename -force /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.runs/clk_wiz_0_synth_1/clk_wiz_0_stub.vhdl /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0_stub.vhdl
+} _RESULT ] } { 
+  puts "CRITICAL WARNING: Unable to successfully create a VHDL synthesis stub for the sub-design. This may lead to errors in top level synthesis of the design. Error reported: $_RESULT"
+}
+
+if { [catch {
+  file rename -force /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.runs/clk_wiz_0_synth_1/clk_wiz_0_sim_netlist.v /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.v
+} _RESULT ] } { 
+  puts "CRITICAL WARNING: Unable to successfully create the Verilog functional simulation sub-design file. Post-Synthesis Functional Simulation with this file may not be possible or may give incorrect results. Error reported: $_RESULT"
+}
+
+if { [catch {
+  file rename -force /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.runs/clk_wiz_0_synth_1/clk_wiz_0_sim_netlist.vhdl /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.vhdl
+} _RESULT ] } { 
+  puts "CRITICAL WARNING: Unable to successfully create the VHDL functional simulation sub-design file. Post-Synthesis Functional Simulation with this file may not be possible or may give incorrect results. Error reported: $_RESULT"
+}
+
+close [open .end.used_ip_cache.rst w]
+}; # end if cacheID 
+
+if {[file isdir /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.ip_user_files/ip/clk_wiz_0]} {
+  catch { 
+    file copy -force /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0_stub.v /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.ip_user_files/ip/clk_wiz_0
+  }
+}
+
+if {[file isdir /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.ip_user_files/ip/clk_wiz_0]} {
+  catch { 
+    file copy -force /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0_stub.vhdl /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.ip_user_files/ip/clk_wiz_0
+  }
+}
+file delete __synthesis_is_running__
+close [open __synthesis_is_complete__ w]
+OPTRACE "clk_wiz_0_synth_1" END { }
diff --git a/proj/AudioProc.runs/clk_wiz_0_synth_1/clk_wiz_0.vds b/proj/AudioProc.runs/clk_wiz_0_synth_1/clk_wiz_0.vds
new file mode 100644
index 0000000..f00f5a8
--- /dev/null
+++ b/proj/AudioProc.runs/clk_wiz_0_synth_1/clk_wiz_0.vds
@@ -0,0 +1,272 @@
+#-----------------------------------------------------------
+# Vivado v2024.1 (64-bit)
+# SW Build 5076996 on Wed May 22 18:36:09 MDT 2024
+# IP Build 5075265 on Wed May 22 21:45:21 MDT 2024
+# SharedData Build 5076995 on Wed May 22 18:29:18 MDT 2024
+# Start of session at: Wed Feb 26 11:53:05 2025
+# Process ID: 36861
+# Current directory: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.runs/clk_wiz_0_synth_1
+# Command line: vivado -log clk_wiz_0.vds -product Vivado -mode batch -messageDb vivado.pb -notrace -source clk_wiz_0.tcl
+# Log file: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.runs/clk_wiz_0_synth_1/clk_wiz_0.vds
+# Journal file: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.runs/clk_wiz_0_synth_1/vivado.jou
+# Running On        :fl-tp-br-604
+# Platform          :Ubuntu
+# Operating System  :Ubuntu 24.04.1 LTS
+# Processor Detail  :Intel(R) Core(TM) i5-10500 CPU @ 3.10GHz
+# CPU Frequency     :4248.581 MHz
+# CPU Physical cores:6
+# CPU Logical cores :12
+# Host memory       :16467 MB
+# Swap memory       :4294 MB
+# Total Virtual     :20762 MB
+# Available Virtual :15254 MB
+#-----------------------------------------------------------
+source clk_wiz_0.tcl -notrace
+create_project: Time (s): cpu = 00:00:13 ; elapsed = 00:00:26 . Memory (MB): peak = 1680.684 ; gain = 327.840 ; free physical = 5579 ; free virtual = 14118
+INFO: [IP_Flow 19-234] Refreshing IP repositories
+WARNING: [IP_Flow 19-2248] Failed to load user IP repository '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/repo'; Can't find the specified path.
+If this directory should no longer be in your list of user repositories, go to the IP Settings dialog and remove it.
+INFO: [IP_Flow 19-2313] Loaded Vivado IP repository '/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/ip'.
+INFO: [IP_Flow 19-6924] IPCACHE: Running cache check for IP inst: clk_wiz_0
+Command: synth_design -top clk_wiz_0 -part xc7a200tsbg484-1 -incremental_mode off -mode out_of_context
+Starting synth_design
+Attempting to get a license for feature 'Synthesis' and/or device 'xc7a200t'
+INFO: [Common 17-349] Got license for feature 'Synthesis' and/or device 'xc7a200t'
+INFO: [Device 21-403] Loading part xc7a200tsbg484-1
+INFO: [Device 21-9227] Part: xc7a200tsbg484-1 does not have CEAM library.
+INFO: [Synth 8-7079] Multithreading enabled for synth_design using a maximum of 4 processes.
+INFO: [Synth 8-7078] Launching helper process for spawning children vivado processes
+INFO: [Synth 8-7075] Helper process launched with PID 37082
+---------------------------------------------------------------------------------
+Starting RTL Elaboration : Time (s): cpu = 00:00:03 ; elapsed = 00:00:05 . Memory (MB): peak = 2501.867 ; gain = 420.523 ; free physical = 4412 ; free virtual = 12955
+---------------------------------------------------------------------------------
+INFO: [Synth 8-6157] synthesizing module 'clk_wiz_0' [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0.v:68]
+INFO: [Synth 8-6157] synthesizing module 'clk_wiz_0_clk_wiz' [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0_clk_wiz.v:68]
+INFO: [Synth 8-6157] synthesizing module 'IBUF' [/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/scripts/rt/data/unisim_comp.v:73643]
+INFO: [Synth 8-6155] done synthesizing module 'IBUF' (0#1) [/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/scripts/rt/data/unisim_comp.v:73643]
+INFO: [Synth 8-6157] synthesizing module 'MMCME2_ADV' [/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/scripts/rt/data/unisim_comp.v:82388]
+	Parameter BANDWIDTH bound to: OPTIMIZED - type: string 
+	Parameter CLKFBOUT_MULT_F bound to: 6.000000 - type: double 
+	Parameter CLKFBOUT_PHASE bound to: 0.000000 - type: double 
+	Parameter CLKFBOUT_USE_FINE_PS bound to: FALSE - type: string 
+	Parameter CLKIN1_PERIOD bound to: 10.000000 - type: double 
+	Parameter CLKOUT0_DIVIDE_F bound to: 6.000000 - type: double 
+	Parameter CLKOUT0_DUTY_CYCLE bound to: 0.500000 - type: double 
+	Parameter CLKOUT0_PHASE bound to: 0.000000 - type: double 
+	Parameter CLKOUT0_USE_FINE_PS bound to: FALSE - type: string 
+	Parameter CLKOUT1_DIVIDE bound to: 3 - type: integer 
+	Parameter CLKOUT1_DUTY_CYCLE bound to: 0.500000 - type: double 
+	Parameter CLKOUT1_PHASE bound to: 0.000000 - type: double 
+	Parameter CLKOUT1_USE_FINE_PS bound to: FALSE - type: string 
+	Parameter CLKOUT2_DIVIDE bound to: 50 - type: integer 
+	Parameter CLKOUT2_DUTY_CYCLE bound to: 0.500000 - type: double 
+	Parameter CLKOUT2_PHASE bound to: 0.000000 - type: double 
+	Parameter CLKOUT2_USE_FINE_PS bound to: FALSE - type: string 
+	Parameter CLKOUT3_DIVIDE bound to: 12 - type: integer 
+	Parameter CLKOUT3_DUTY_CYCLE bound to: 0.500000 - type: double 
+	Parameter CLKOUT3_PHASE bound to: 0.000000 - type: double 
+	Parameter CLKOUT3_USE_FINE_PS bound to: FALSE - type: string 
+	Parameter CLKOUT4_CASCADE bound to: FALSE - type: string 
+	Parameter COMPENSATION bound to: ZHOLD - type: string 
+	Parameter DIVCLK_DIVIDE bound to: 1 - type: integer 
+	Parameter STARTUP_WAIT bound to: FALSE - type: string 
+INFO: [Synth 8-6155] done synthesizing module 'MMCME2_ADV' (0#1) [/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/scripts/rt/data/unisim_comp.v:82388]
+INFO: [Synth 8-6157] synthesizing module 'BUFG' [/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/scripts/rt/data/unisim_comp.v:1951]
+INFO: [Synth 8-6155] done synthesizing module 'BUFG' (0#1) [/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/scripts/rt/data/unisim_comp.v:1951]
+INFO: [Synth 8-6155] done synthesizing module 'clk_wiz_0_clk_wiz' (0#1) [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0_clk_wiz.v:68]
+INFO: [Synth 8-6155] done synthesizing module 'clk_wiz_0' (0#1) [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0.v:68]
+---------------------------------------------------------------------------------
+Finished RTL Elaboration : Time (s): cpu = 00:00:04 ; elapsed = 00:00:06 . Memory (MB): peak = 2578.805 ; gain = 497.461 ; free physical = 4294 ; free virtual = 12848
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Handling Custom Attributes
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Handling Custom Attributes : Time (s): cpu = 00:00:04 ; elapsed = 00:00:06 . Memory (MB): peak = 2596.617 ; gain = 515.273 ; free physical = 4291 ; free virtual = 12849
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished RTL Optimization Phase 1 : Time (s): cpu = 00:00:04 ; elapsed = 00:00:06 . Memory (MB): peak = 2596.617 ; gain = 515.273 ; free physical = 4291 ; free virtual = 12849
+---------------------------------------------------------------------------------
+Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2602.555 ; gain = 0.000 ; free physical = 4291 ; free virtual = 12849
+INFO: [Netlist 29-17] Analyzing 1 Unisim elements for replacement
+INFO: [Netlist 29-28] Unisim Transformation completed in 0 CPU seconds
+INFO: [Project 1-570] Preparing netlist for logic optimization
+
+Processing XDC Constraints
+Initializing timing engine
+Parsing XDC File [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0_ooc.xdc] for cell 'inst'
+Finished Parsing XDC File [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0_ooc.xdc] for cell 'inst'
+Parsing XDC File [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0_board.xdc] for cell 'inst'
+Finished Parsing XDC File [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0_board.xdc] for cell 'inst'
+Parsing XDC File [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0.xdc] for cell 'inst'
+Finished Parsing XDC File [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0.xdc] for cell 'inst'
+INFO: [Project 1-236] Implementation specific constraints were found while reading constraint file [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0.xdc]. These constraints will be ignored for synthesis but will be used in implementation. Impacted constraints are listed in the file [.Xil/clk_wiz_0_propImpl.xdc].
+Resolution: To avoid this warning, move constraints listed in [.Xil/clk_wiz_0_propImpl.xdc] to another XDC file and exclude this new file from synthesis with the used_in_synthesis property (File Properties dialog in GUI) and re-run elaboration/synthesis.
+INFO: [Timing 38-2] Deriving generated clocks
+Parsing XDC File [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.runs/clk_wiz_0_synth_1/dont_touch.xdc]
+Finished Parsing XDC File [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.runs/clk_wiz_0_synth_1/dont_touch.xdc]
+Completed Processing XDC Constraints
+
+Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2669.555 ; gain = 0.000 ; free physical = 4268 ; free virtual = 12827
+INFO: [Project 1-111] Unisim Transformation Summary:
+No Unisim elements were transformed.
+
+Constraint Validation Runtime : Time (s): cpu = 00:00:00.01 ; elapsed = 00:00:00.05 . Memory (MB): peak = 2669.555 ; gain = 0.000 ; free physical = 4268 ; free virtual = 12827
+INFO: [Designutils 20-5008] Incremental synthesis strategy off
+---------------------------------------------------------------------------------
+Finished Constraint Validation : Time (s): cpu = 00:00:10 ; elapsed = 00:00:15 . Memory (MB): peak = 2669.555 ; gain = 588.211 ; free physical = 4286 ; free virtual = 12848
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Loading Part and Timing Information
+---------------------------------------------------------------------------------
+Loading part: xc7a200tsbg484-1
+---------------------------------------------------------------------------------
+Finished Loading Part and Timing Information : Time (s): cpu = 00:00:10 ; elapsed = 00:00:15 . Memory (MB): peak = 2677.559 ; gain = 596.215 ; free physical = 4286 ; free virtual = 12848
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Applying 'set_property' XDC Constraints
+---------------------------------------------------------------------------------
+Applied set_property KEEP_HIERARCHY = SOFT for inst. (constraint file  /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.runs/clk_wiz_0_synth_1/dont_touch.xdc, line 9).
+---------------------------------------------------------------------------------
+Finished applying 'set_property' XDC Constraints : Time (s): cpu = 00:00:10 ; elapsed = 00:00:15 . Memory (MB): peak = 2677.559 ; gain = 596.215 ; free physical = 4300 ; free virtual = 12861
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished RTL Optimization Phase 2 : Time (s): cpu = 00:00:10 ; elapsed = 00:00:15 . Memory (MB): peak = 2677.559 ; gain = 596.215 ; free physical = 4298 ; free virtual = 12862
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start RTL Component Statistics 
+---------------------------------------------------------------------------------
+Detailed RTL Component Info : 
+---------------------------------------------------------------------------------
+Finished RTL Component Statistics 
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Part Resource Summary
+---------------------------------------------------------------------------------
+Part Resources:
+DSPs: 740 (col length:100)
+BRAMs: 730 (col length: RAMB18 100 RAMB36 50)
+---------------------------------------------------------------------------------
+Finished Part Resource Summary
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Cross Boundary and Area Optimization
+---------------------------------------------------------------------------------
+WARNING: [Synth 8-7080] Parallel synthesis criteria is not met
+---------------------------------------------------------------------------------
+Finished Cross Boundary and Area Optimization : Time (s): cpu = 00:00:11 ; elapsed = 00:00:16 . Memory (MB): peak = 2677.559 ; gain = 596.215 ; free physical = 4299 ; free virtual = 12862
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Applying XDC Timing Constraints
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Applying XDC Timing Constraints : Time (s): cpu = 00:00:16 ; elapsed = 00:00:22 . Memory (MB): peak = 2677.559 ; gain = 596.215 ; free physical = 4288 ; free virtual = 12863
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Timing Optimization
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Timing Optimization : Time (s): cpu = 00:00:16 ; elapsed = 00:00:22 . Memory (MB): peak = 2677.559 ; gain = 596.215 ; free physical = 4288 ; free virtual = 12863
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Technology Mapping
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Technology Mapping : Time (s): cpu = 00:00:16 ; elapsed = 00:00:22 . Memory (MB): peak = 2677.559 ; gain = 596.215 ; free physical = 4287 ; free virtual = 12863
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start IO Insertion
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Flattening Before IO Insertion
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Flattening Before IO Insertion
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Final Netlist Cleanup
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Final Netlist Cleanup
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished IO Insertion : Time (s): cpu = 00:00:19 ; elapsed = 00:00:25 . Memory (MB): peak = 2677.559 ; gain = 596.215 ; free physical = 4289 ; free virtual = 12865
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Renaming Generated Instances
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Renaming Generated Instances : Time (s): cpu = 00:00:19 ; elapsed = 00:00:25 . Memory (MB): peak = 2677.559 ; gain = 596.215 ; free physical = 4289 ; free virtual = 12865
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Rebuilding User Hierarchy
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Rebuilding User Hierarchy : Time (s): cpu = 00:00:19 ; elapsed = 00:00:25 . Memory (MB): peak = 2677.559 ; gain = 596.215 ; free physical = 4289 ; free virtual = 12865
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Renaming Generated Ports
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Renaming Generated Ports : Time (s): cpu = 00:00:19 ; elapsed = 00:00:25 . Memory (MB): peak = 2677.559 ; gain = 596.215 ; free physical = 4289 ; free virtual = 12865
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Handling Custom Attributes
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Handling Custom Attributes : Time (s): cpu = 00:00:19 ; elapsed = 00:00:25 . Memory (MB): peak = 2677.559 ; gain = 596.215 ; free physical = 4289 ; free virtual = 12865
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Renaming Generated Nets
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Renaming Generated Nets : Time (s): cpu = 00:00:19 ; elapsed = 00:00:25 . Memory (MB): peak = 2677.559 ; gain = 596.215 ; free physical = 4289 ; free virtual = 12865
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Writing Synthesis Report
+---------------------------------------------------------------------------------
+
+Report BlackBoxes: 
++-+--------------+----------+
+| |BlackBox name |Instances |
++-+--------------+----------+
++-+--------------+----------+
+
+Report Cell Usage: 
++------+-----------+------+
+|      |Cell       |Count |
++------+-----------+------+
+|1     |BUFG       |     5|
+|2     |MMCME2_ADV |     1|
+|3     |IBUF       |     1|
++------+-----------+------+
+---------------------------------------------------------------------------------
+Finished Writing Synthesis Report : Time (s): cpu = 00:00:19 ; elapsed = 00:00:25 . Memory (MB): peak = 2677.559 ; gain = 596.215 ; free physical = 4289 ; free virtual = 12865
+---------------------------------------------------------------------------------
+Synthesis finished with 0 errors, 0 critical warnings and 1 warnings.
+Synthesis Optimization Runtime : Time (s): cpu = 00:00:17 ; elapsed = 00:00:21 . Memory (MB): peak = 2677.559 ; gain = 523.277 ; free physical = 4277 ; free virtual = 12864
+Synthesis Optimization Complete : Time (s): cpu = 00:00:19 ; elapsed = 00:00:25 . Memory (MB): peak = 2677.566 ; gain = 596.215 ; free physical = 4277 ; free virtual = 12864
+INFO: [Project 1-571] Translating synthesized netlist
+Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2677.566 ; gain = 0.000 ; free physical = 4277 ; free virtual = 12864
+INFO: [Netlist 29-17] Analyzing 1 Unisim elements for replacement
+INFO: [Netlist 29-28] Unisim Transformation completed in 0 CPU seconds
+INFO: [Project 1-570] Preparing netlist for logic optimization
+INFO: [Opt 31-138] Pushed 0 inverter(s) to 0 load pin(s).
+Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2677.566 ; gain = 0.000 ; free physical = 4553 ; free virtual = 13141
+INFO: [Project 1-111] Unisim Transformation Summary:
+No Unisim elements were transformed.
+
+Synth Design complete | Checksum: 2bb42201
+INFO: [Common 17-83] Releasing license: Synthesis
+33 Infos, 2 Warnings, 0 Critical Warnings and 0 Errors encountered.
+synth_design completed successfully
+synth_design: Time (s): cpu = 00:00:25 ; elapsed = 00:00:37 . Memory (MB): peak = 2677.566 ; gain = 981.039 ; free physical = 4553 ; free virtual = 13141
+INFO: [Common 17-2834] synth_design peak Physical Memory [PSS] (MB): overall = 2253.438; main = 1881.028; forked = 419.174
+INFO: [Common 17-2834] synth_design peak Virtual Memory [VSS] (MB): overall = 3782.270; main = 2677.562; forked = 1104.707
+Write ShapeDB Complete: Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2701.570 ; gain = 0.000 ; free physical = 4580 ; free virtual = 13168
+INFO: [Common 17-1381] The checkpoint '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.runs/clk_wiz_0_synth_1/clk_wiz_0.dcp' has been generated.
+INFO: [Coretcl 2-1648] Added synthesis output to IP cache for IP clk_wiz_0, cache-ID = 0edd54b7fee8338b
+Write ShapeDB Complete: Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2757.598 ; gain = 0.000 ; free physical = 4578 ; free virtual = 13170
+INFO: [Common 17-1381] The checkpoint '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.runs/clk_wiz_0_synth_1/clk_wiz_0.dcp' has been generated.
+INFO: [Vivado 12-24828] Executing command : report_utilization -file clk_wiz_0_utilization_synth.rpt -pb clk_wiz_0_utilization_synth.pb
+INFO: [Common 17-206] Exiting Vivado at Wed Feb 26 11:54:28 2025...
diff --git a/proj/AudioProc.runs/clk_wiz_0_synth_1/clk_wiz_0_utilization_synth.pb b/proj/AudioProc.runs/clk_wiz_0_synth_1/clk_wiz_0_utilization_synth.pb
new file mode 100644
index 0000000000000000000000000000000000000000..cb1c83687cfae52aa803755d175323d25126deae
GIT binary patch
literal 276
zcmd;LGcqtT(KDRHtPxzAo10ivsgR$hP+F3ilUbEml9`_e;%28-Dioy_=a&{Grxxp-
z<zZl8V3^CxP}J=4lo!N)D+D6<3NsWjd$fvx*u9b<@~$L9g^Bx8DG+<DJOe|6{a<;8
zhCb(`3cAZS+nrSfiO*GIXxQfbR1L)LH3E@$jTjg#U6vYy*lR5q7#2AEwP0Xia5`$q
zz)<Bl$%?}%)Xm*FB*^Ei9mvSJ_6!UPj!(hlTNjX~y{;gURyPp4*BeCM^=4pba9HXC
iVt?}Cbq@(}HHvrkaP;$Y^;sJT68#$pGV5p%hz$V0Fh)WE

literal 0
HcmV?d00001

diff --git a/proj/AudioProc.runs/clk_wiz_0_synth_1/clk_wiz_0_utilization_synth.rpt b/proj/AudioProc.runs/clk_wiz_0_synth_1/clk_wiz_0_utilization_synth.rpt
new file mode 100644
index 0000000..d002006
--- /dev/null
+++ b/proj/AudioProc.runs/clk_wiz_0_synth_1/clk_wiz_0_utilization_synth.rpt
@@ -0,0 +1,176 @@
+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 11:54:28 2025
+| Host         : fl-tp-br-604 running 64-bit Ubuntu 24.04.1 LTS
+| Command      : report_utilization -file clk_wiz_0_utilization_synth.rpt -pb clk_wiz_0_utilization_synth.pb
+| Design       : clk_wiz_0
+| Device       : xc7a200tsbg484-1
+| Speed File   : -1
+| Design State : Synthesized
+---------------------------------------------------------------------------------------------------------------------------------------------
+
+Utilization Design Information
+
+Table of Contents
+-----------------
+1. Slice Logic
+1.1 Summary of Registers by Type
+2. Memory
+3. DSP
+4. IO and GT Specific
+5. Clocking
+6. Specific Feature
+7. Primitives
+8. Black Boxes
+9. Instantiated Netlists
+
+1. Slice Logic
+--------------
+
++-------------------------+------+-------+------------+-----------+-------+
+|        Site Type        | Used | Fixed | Prohibited | Available | Util% |
++-------------------------+------+-------+------------+-----------+-------+
+| Slice LUTs*             |    0 |     0 |          0 |    134600 |  0.00 |
+|   LUT as Logic          |    0 |     0 |          0 |    134600 |  0.00 |
+|   LUT as Memory         |    0 |     0 |          0 |     46200 |  0.00 |
+| Slice Registers         |    0 |     0 |          0 |    269200 |  0.00 |
+|   Register as Flip Flop |    0 |     0 |          0 |    269200 |  0.00 |
+|   Register as Latch     |    0 |     0 |          0 |    269200 |  0.00 |
+| F7 Muxes                |    0 |     0 |          0 |     67300 |  0.00 |
+| F8 Muxes                |    0 |     0 |          0 |     33650 |  0.00 |
++-------------------------+------+-------+------------+-----------+-------+
+* Warning! The Final LUT count, after physical optimizations and full implementation, is typically lower. Run opt_design after synthesis, if not already completed, for a more realistic count.
+Warning! LUT value is adjusted to account for LUT combining.
+Warning! For any ECO changes, please run place_design if there are unplaced instances
+
+
+1.1 Summary of Registers by Type
+--------------------------------
+
++-------+--------------+-------------+--------------+
+| Total | Clock Enable | Synchronous | Asynchronous |
++-------+--------------+-------------+--------------+
+| 0     |            _ |           - |            - |
+| 0     |            _ |           - |          Set |
+| 0     |            _ |           - |        Reset |
+| 0     |            _ |         Set |            - |
+| 0     |            _ |       Reset |            - |
+| 0     |          Yes |           - |            - |
+| 0     |          Yes |           - |          Set |
+| 0     |          Yes |           - |        Reset |
+| 0     |          Yes |         Set |            - |
+| 0     |          Yes |       Reset |            - |
++-------+--------------+-------------+--------------+
+
+
+2. Memory
+---------
+
++----------------+------+-------+------------+-----------+-------+
+|    Site Type   | Used | Fixed | Prohibited | Available | Util% |
++----------------+------+-------+------------+-----------+-------+
+| Block RAM Tile |    0 |     0 |          0 |       365 |  0.00 |
+|   RAMB36/FIFO* |    0 |     0 |          0 |       365 |  0.00 |
+|   RAMB18       |    0 |     0 |          0 |       730 |  0.00 |
++----------------+------+-------+------------+-----------+-------+
+* Note: Each Block RAM Tile only has one FIFO logic available and therefore can accommodate only one FIFO36E1 or one FIFO18E1. However, if a FIFO18E1 occupies a Block RAM Tile, that tile can still accommodate a RAMB18E1
+
+
+3. DSP
+------
+
++-----------+------+-------+------------+-----------+-------+
+| Site Type | Used | Fixed | Prohibited | Available | Util% |
++-----------+------+-------+------------+-----------+-------+
+| DSPs      |    0 |     0 |          0 |       740 |  0.00 |
++-----------+------+-------+------------+-----------+-------+
+
+
+4. IO and GT Specific
+---------------------
+
++-----------------------------+------+-------+------------+-----------+-------+
+|          Site Type          | Used | Fixed | Prohibited | Available | Util% |
++-----------------------------+------+-------+------------+-----------+-------+
+| Bonded IOB                  |    1 |     0 |          0 |       285 |  0.35 |
+| Bonded IPADs                |    0 |     0 |          0 |        14 |  0.00 |
+| Bonded OPADs                |    0 |     0 |          0 |         8 |  0.00 |
+| PHY_CONTROL                 |    0 |     0 |          0 |        10 |  0.00 |
+| PHASER_REF                  |    0 |     0 |          0 |        10 |  0.00 |
+| OUT_FIFO                    |    0 |     0 |          0 |        40 |  0.00 |
+| IN_FIFO                     |    0 |     0 |          0 |        40 |  0.00 |
+| IDELAYCTRL                  |    0 |     0 |          0 |        10 |  0.00 |
+| IBUFDS                      |    0 |     0 |          0 |       274 |  0.00 |
+| GTPE2_CHANNEL               |    0 |     0 |          0 |         4 |  0.00 |
+| PHASER_OUT/PHASER_OUT_PHY   |    0 |     0 |          0 |        40 |  0.00 |
+| PHASER_IN/PHASER_IN_PHY     |    0 |     0 |          0 |        40 |  0.00 |
+| IDELAYE2/IDELAYE2_FINEDELAY |    0 |     0 |          0 |       500 |  0.00 |
+| IBUFDS_GTE2                 |    0 |     0 |          0 |         2 |  0.00 |
+| ILOGIC                      |    0 |     0 |          0 |       285 |  0.00 |
+| OLOGIC                      |    0 |     0 |          0 |       285 |  0.00 |
++-----------------------------+------+-------+------------+-----------+-------+
+
+
+5. Clocking
+-----------
+
++------------+------+-------+------------+-----------+-------+
+|  Site Type | Used | Fixed | Prohibited | Available | Util% |
++------------+------+-------+------------+-----------+-------+
+| BUFGCTRL   |    5 |     0 |          0 |        32 | 15.63 |
+| BUFIO      |    0 |     0 |          0 |        40 |  0.00 |
+| MMCME2_ADV |    1 |     0 |          0 |        10 | 10.00 |
+| PLLE2_ADV  |    0 |     0 |          0 |        10 |  0.00 |
+| BUFMRCE    |    0 |     0 |          0 |        20 |  0.00 |
+| BUFHCE     |    0 |     0 |          0 |       120 |  0.00 |
+| BUFR       |    0 |     0 |          0 |        40 |  0.00 |
++------------+------+-------+------------+-----------+-------+
+
+
+6. Specific Feature
+-------------------
+
++-------------+------+-------+------------+-----------+-------+
+|  Site Type  | Used | Fixed | Prohibited | Available | Util% |
++-------------+------+-------+------------+-----------+-------+
+| BSCANE2     |    0 |     0 |          0 |         4 |  0.00 |
+| CAPTUREE2   |    0 |     0 |          0 |         1 |  0.00 |
+| DNA_PORT    |    0 |     0 |          0 |         1 |  0.00 |
+| EFUSE_USR   |    0 |     0 |          0 |         1 |  0.00 |
+| FRAME_ECCE2 |    0 |     0 |          0 |         1 |  0.00 |
+| ICAPE2      |    0 |     0 |          0 |         2 |  0.00 |
+| PCIE_2_1    |    0 |     0 |          0 |         1 |  0.00 |
+| STARTUPE2   |    0 |     0 |          0 |         1 |  0.00 |
+| XADC        |    0 |     0 |          0 |         1 |  0.00 |
++-------------+------+-------+------------+-----------+-------+
+
+
+7. Primitives
+-------------
+
++------------+------+---------------------+
+|  Ref Name  | Used | Functional Category |
++------------+------+---------------------+
+| BUFG       |    5 |               Clock |
+| MMCME2_ADV |    1 |               Clock |
+| IBUF       |    1 |                  IO |
++------------+------+---------------------+
+
+
+8. Black Boxes
+--------------
+
++----------+------+
+| Ref Name | Used |
++----------+------+
+
+
+9. Instantiated Netlists
+------------------------
+
++----------+------+
+| Ref Name | Used |
++----------+------+
+
+
diff --git a/proj/AudioProc.runs/clk_wiz_0_synth_1/dont_touch.xdc b/proj/AudioProc.runs/clk_wiz_0_synth_1/dont_touch.xdc
new file mode 100644
index 0000000..e20d5ae
--- /dev/null
+++ b/proj/AudioProc.runs/clk_wiz_0_synth_1/dont_touch.xdc
@@ -0,0 +1,32 @@
+# This file is automatically generated.
+# It contains project source information necessary for synthesis and implementation.
+
+# IP: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0.xci
+# IP: The module: 'clk_wiz_0' is the root of the design. Do not add the DONT_TOUCH constraint.
+
+# XDC: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0_board.xdc
+# XDC: The top module name and the constraint reference have the same name: 'clk_wiz_0'. Do not add the DONT_TOUCH constraint.
+set_property KEEP_HIERARCHY SOFT [get_cells inst -quiet] -quiet
+
+# XDC: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0.xdc
+# XDC: The top module name and the constraint reference have the same name: 'clk_wiz_0'. Do not add the DONT_TOUCH constraint.
+#dup# set_property KEEP_HIERARCHY SOFT [get_cells inst -quiet] -quiet
+
+# XDC: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0_ooc.xdc
+# XDC: The top module name and the constraint reference have the same name: 'clk_wiz_0'. Do not add the DONT_TOUCH constraint.
+#dup# set_property KEEP_HIERARCHY SOFT [get_cells inst -quiet] -quiet
+
+# IP: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0.xci
+# IP: The module: 'clk_wiz_0' is the root of the design. Do not add the DONT_TOUCH constraint.
+
+# XDC: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0_board.xdc
+# XDC: The top module name and the constraint reference have the same name: 'clk_wiz_0'. Do not add the DONT_TOUCH constraint.
+#dup# set_property KEEP_HIERARCHY SOFT [get_cells inst -quiet] -quiet
+
+# XDC: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0.xdc
+# XDC: The top module name and the constraint reference have the same name: 'clk_wiz_0'. Do not add the DONT_TOUCH constraint.
+#dup# set_property KEEP_HIERARCHY SOFT [get_cells inst -quiet] -quiet
+
+# XDC: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0_ooc.xdc
+# XDC: The top module name and the constraint reference have the same name: 'clk_wiz_0'. Do not add the DONT_TOUCH constraint.
+#dup# set_property KEEP_HIERARCHY SOFT [get_cells inst -quiet] -quiet
diff --git a/proj/AudioProc.runs/clk_wiz_0_synth_1/gen_run.xml b/proj/AudioProc.runs/clk_wiz_0_synth_1/gen_run.xml
new file mode 100644
index 0000000..7133487
--- /dev/null
+++ b/proj/AudioProc.runs/clk_wiz_0_synth_1/gen_run.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<GenRun Id="clk_wiz_0_synth_1" LaunchPart="xc7a200tsbg484-1" LaunchTime="1740567182">
+  <File Type="VDS-TIMINGSUMMARY" Name="clk_wiz_0_timing_summary_synth.rpt"/>
+  <File Type="RDS-DCP" Name="clk_wiz_0.dcp"/>
+  <File Type="RDS-UTIL-PB" Name="clk_wiz_0_utilization_synth.pb"/>
+  <File Type="RDS-UTIL" Name="clk_wiz_0_utilization_synth.rpt"/>
+  <File Type="VDS-TIMING-PB" Name="clk_wiz_0_timing_summary_synth.pb"/>
+  <File Type="PA-TCL" Name="clk_wiz_0.tcl"/>
+  <File Type="REPORTS-TCL" Name="clk_wiz_0_reports.tcl"/>
+  <File Type="RDS-RDS" Name="clk_wiz_0.vds"/>
+  <File Type="RDS-PROPCONSTRS" Name="clk_wiz_0_drc_synth.rpt"/>
+  <FileSet Name="sources" Type="BlockSrcs" RelSrcDir="$PSRCDIR/clk_wiz_0" RelGenDir="$PGENDIR/clk_wiz_0">
+    <File Path="$PPRDIR/../src/ip/clk_wiz_0/clk_wiz_0.xci">
+      <FileInfo>
+        <Attr Name="UsedIn" Val="synthesis"/>
+        <Attr Name="UsedIn" Val="implementation"/>
+        <Attr Name="UsedIn" Val="simulation"/>
+      </FileInfo>
+    </File>
+    <Config>
+      <Option Name="TopModule" Val="clk_wiz_0"/>
+      <Option Name="UseBlackboxStub" Val="1"/>
+    </Config>
+  </FileSet>
+  <FileSet Name="constrs_in" Type="BlockSrcs" RelSrcDir="$PSRCDIR/clk_wiz_0" RelGenDir="$PGENDIR/clk_wiz_0">
+    <File Path="$PPRDIR/../src/ip/clk_wiz_0/clk_wiz_0.xci">
+      <FileInfo>
+        <Attr Name="UsedIn" Val="synthesis"/>
+        <Attr Name="UsedIn" Val="implementation"/>
+        <Attr Name="UsedIn" Val="simulation"/>
+      </FileInfo>
+    </File>
+    <Config>
+      <Option Name="TopModule" Val="clk_wiz_0"/>
+      <Option Name="UseBlackboxStub" Val="1"/>
+    </Config>
+  </FileSet>
+  <FileSet Name="utils" Type="Utils" RelSrcDir="$PSRCDIR/utils_1" RelGenDir="$PGENDIR/utils_1">
+    <Filter Type="Utils"/>
+    <Config>
+      <Option Name="TopAutoSet" Val="TRUE"/>
+    </Config>
+  </FileSet>
+  <Strategy Version="1" Minor="2">
+    <StratHandle Name="Vivado Synthesis Defaults" Flow="Vivado Synthesis 2024">
+      <Desc>Vivado Synthesis Defaults</Desc>
+    </StratHandle>
+    <Step Id="synth_design"/>
+  </Strategy>
+</GenRun>
diff --git a/proj/AudioProc.runs/clk_wiz_0_synth_1/htr.txt b/proj/AudioProc.runs/clk_wiz_0_synth_1/htr.txt
new file mode 100644
index 0000000..94a0b3d
--- /dev/null
+++ b/proj/AudioProc.runs/clk_wiz_0_synth_1/htr.txt
@@ -0,0 +1,10 @@
+#
+# Vivado(TM)
+# htr.txt: a Vivado-generated description of how-to-repeat the
+#          the basic steps of a run.  Note that runme.bat/sh needs
+#          to be invoked for Vivado to track run status.
+# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+# Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
+#
+
+vivado -log clk_wiz_0.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source clk_wiz_0.tcl
diff --git a/proj/AudioProc.runs/clk_wiz_0_synth_1/project.wdf b/proj/AudioProc.runs/clk_wiz_0_synth_1/project.wdf
new file mode 100644
index 0000000..e347b49
--- /dev/null
+++ b/proj/AudioProc.runs/clk_wiz_0_synth_1/project.wdf
@@ -0,0 +1,32 @@
+version:1
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:737263736574636f756e74:3131:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:636f6e73747261696e74736574636f756e74:31:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:64657369676e6d6f6465:52544c:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:73796e7468657369737374726174656779:466c6f775f506572664f7074696d697a65645f48696768:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:696d706c7374726174656779:56697661646f20496d706c656d656e746174696f6e2044656661756c7473:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:63757272656e7473796e74686573697372756e:73796e74685f31:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:63757272656e74696d706c72756e:696d706c5f31:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:746f74616c73796e74686573697372756e73:32:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:746f74616c696d706c72756e73:32:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:636f72655f636f6e7461696e6572:66616c7365:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:73696d756c61746f725f6c616e6775616765:4d69786564:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:7461726765745f6c616e6775616765:5648444c:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:64656661756c745f6c696272617279:78696c5f64656661756c746c6962:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:7461726765745f73696d756c61746f72:5853696d:00:00
+70726f6a656374:69705f636f72655f636f6e7461696e65725c636c6b5f77697a5f76365f305f31345c636c6b5f77697a5f30:636f72655f636f6e7461696e6572:66616c7365:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6c61756e63685f73696d756c6174696f6e5f7873696d:30:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6c61756e63685f73696d756c6174696f6e5f6d6f64656c73696d:30:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6c61756e63685f73696d756c6174696f6e5f717565737461:30:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6c61756e63685f73696d756c6174696f6e5f696573:30:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6c61756e63685f73696d756c6174696f6e5f766373:30:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6c61756e63685f73696d756c6174696f6e5f72697669657261:30:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6c61756e63685f73696d756c6174696f6e5f61637469766568646c:30:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6578706f72745f73696d756c6174696f6e5f7873696d:30:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6578706f72745f73696d756c6174696f6e5f6d6f64656c73696d:30:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6578706f72745f73696d756c6174696f6e5f717565737461:30:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6578706f72745f73696d756c6174696f6e5f696573:30:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6578706f72745f73696d756c6174696f6e5f766373:30:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6578706f72745f73696d756c6174696f6e5f72697669657261:30:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6578706f72745f73696d756c6174696f6e5f61637469766568646c:30:00:00
+5f5f48494444454e5f5f:5f5f48494444454e5f5f:50726f6a65637455554944:3430316638303238363638613434623761383162376161656563363734373430:506172656e742050412070726f6a656374204944:00
+eof:14405968
diff --git a/proj/AudioProc.runs/clk_wiz_0_synth_1/rundef.js b/proj/AudioProc.runs/clk_wiz_0_synth_1/rundef.js
new file mode 100644
index 0000000..d930527
--- /dev/null
+++ b/proj/AudioProc.runs/clk_wiz_0_synth_1/rundef.js
@@ -0,0 +1,41 @@
+//
+// Vivado(TM)
+// rundef.js: a Vivado-generated Runs Script for WSH 5.1/5.6
+// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
+//
+
+echo "This script was generated under a different operating system."
+echo "Please update the PATH variable below, before executing this script"
+exit
+
+var WshShell = new ActiveXObject( "WScript.Shell" );
+var ProcEnv = WshShell.Environment( "Process" );
+var PathVal = ProcEnv("PATH");
+if ( PathVal.length == 0 ) {
+  PathVal = "/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vitis/2024.1/bin:/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/ids_lite/ISE/bin/lin64;/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/bin;";
+} else {
+  PathVal = "/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vitis/2024.1/bin:/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/ids_lite/ISE/bin/lin64;/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/bin;" + PathVal;
+}
+
+ProcEnv("PATH") = PathVal;
+
+var RDScrFP = WScript.ScriptFullName;
+var RDScrN = WScript.ScriptName;
+var RDScrDir = RDScrFP.substr( 0, RDScrFP.length - RDScrN.length - 1 );
+var ISEJScriptLib = RDScrDir + "/ISEWrap.js";
+eval( EAInclude(ISEJScriptLib) );
+
+
+ISEStep( "vivado",
+         "-log clk_wiz_0.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source clk_wiz_0.tcl" );
+
+
+
+function EAInclude( EAInclFilename ) {
+  var EAFso = new ActiveXObject( "Scripting.FileSystemObject" );
+  var EAInclFile = EAFso.OpenTextFile( EAInclFilename );
+  var EAIFContents = EAInclFile.ReadAll();
+  EAInclFile.Close();
+  return EAIFContents;
+}
diff --git a/proj/AudioProc.runs/clk_wiz_0_synth_1/runme.bat b/proj/AudioProc.runs/clk_wiz_0_synth_1/runme.bat
new file mode 100644
index 0000000..637899f
--- /dev/null
+++ b/proj/AudioProc.runs/clk_wiz_0_synth_1/runme.bat
@@ -0,0 +1,12 @@
+@echo off
+
+rem  Vivado (TM)
+rem  runme.bat: a Vivado-generated Script
+rem  Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+rem  Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
+
+
+set HD_SDIR=%~dp0
+cd /d "%HD_SDIR%"
+set PATH=%SYSTEMROOT%\system32;%PATH%
+cscript /nologo /E:JScript "%HD_SDIR%\rundef.js" %*
diff --git a/proj/AudioProc.runs/clk_wiz_0_synth_1/runme.log b/proj/AudioProc.runs/clk_wiz_0_synth_1/runme.log
new file mode 100644
index 0000000..66e639b
--- /dev/null
+++ b/proj/AudioProc.runs/clk_wiz_0_synth_1/runme.log
@@ -0,0 +1,262 @@
+
+*** Running vivado
+    with args -log clk_wiz_0.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source clk_wiz_0.tcl
+
+
+****** Vivado v2024.1 (64-bit)
+  **** SW Build 5076996 on Wed May 22 18:36:09 MDT 2024
+  **** IP Build 5075265 on Wed May 22 21:45:21 MDT 2024
+  **** SharedData Build 5076995 on Wed May 22 18:29:18 MDT 2024
+  **** Start of session at: Wed Feb 26 11:53:05 2025
+    ** Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+    ** Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
+
+source clk_wiz_0.tcl -notrace
+create_project: Time (s): cpu = 00:00:13 ; elapsed = 00:00:26 . Memory (MB): peak = 1680.684 ; gain = 327.840 ; free physical = 5579 ; free virtual = 14118
+INFO: [IP_Flow 19-234] Refreshing IP repositories
+WARNING: [IP_Flow 19-2248] Failed to load user IP repository '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/repo'; Can't find the specified path.
+If this directory should no longer be in your list of user repositories, go to the IP Settings dialog and remove it.
+INFO: [IP_Flow 19-2313] Loaded Vivado IP repository '/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/ip'.
+INFO: [IP_Flow 19-6924] IPCACHE: Running cache check for IP inst: clk_wiz_0
+Command: synth_design -top clk_wiz_0 -part xc7a200tsbg484-1 -incremental_mode off -mode out_of_context
+Starting synth_design
+Attempting to get a license for feature 'Synthesis' and/or device 'xc7a200t'
+INFO: [Common 17-349] Got license for feature 'Synthesis' and/or device 'xc7a200t'
+INFO: [Device 21-403] Loading part xc7a200tsbg484-1
+INFO: [Device 21-9227] Part: xc7a200tsbg484-1 does not have CEAM library.
+INFO: [Synth 8-7079] Multithreading enabled for synth_design using a maximum of 4 processes.
+INFO: [Synth 8-7078] Launching helper process for spawning children vivado processes
+INFO: [Synth 8-7075] Helper process launched with PID 37082
+---------------------------------------------------------------------------------
+Starting RTL Elaboration : Time (s): cpu = 00:00:03 ; elapsed = 00:00:05 . Memory (MB): peak = 2501.867 ; gain = 420.523 ; free physical = 4412 ; free virtual = 12955
+---------------------------------------------------------------------------------
+INFO: [Synth 8-6157] synthesizing module 'clk_wiz_0' [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0.v:68]
+INFO: [Synth 8-6157] synthesizing module 'clk_wiz_0_clk_wiz' [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0_clk_wiz.v:68]
+INFO: [Synth 8-6157] synthesizing module 'IBUF' [/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/scripts/rt/data/unisim_comp.v:73643]
+INFO: [Synth 8-6155] done synthesizing module 'IBUF' (0#1) [/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/scripts/rt/data/unisim_comp.v:73643]
+INFO: [Synth 8-6157] synthesizing module 'MMCME2_ADV' [/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/scripts/rt/data/unisim_comp.v:82388]
+	Parameter BANDWIDTH bound to: OPTIMIZED - type: string 
+	Parameter CLKFBOUT_MULT_F bound to: 6.000000 - type: double 
+	Parameter CLKFBOUT_PHASE bound to: 0.000000 - type: double 
+	Parameter CLKFBOUT_USE_FINE_PS bound to: FALSE - type: string 
+	Parameter CLKIN1_PERIOD bound to: 10.000000 - type: double 
+	Parameter CLKOUT0_DIVIDE_F bound to: 6.000000 - type: double 
+	Parameter CLKOUT0_DUTY_CYCLE bound to: 0.500000 - type: double 
+	Parameter CLKOUT0_PHASE bound to: 0.000000 - type: double 
+	Parameter CLKOUT0_USE_FINE_PS bound to: FALSE - type: string 
+	Parameter CLKOUT1_DIVIDE bound to: 3 - type: integer 
+	Parameter CLKOUT1_DUTY_CYCLE bound to: 0.500000 - type: double 
+	Parameter CLKOUT1_PHASE bound to: 0.000000 - type: double 
+	Parameter CLKOUT1_USE_FINE_PS bound to: FALSE - type: string 
+	Parameter CLKOUT2_DIVIDE bound to: 50 - type: integer 
+	Parameter CLKOUT2_DUTY_CYCLE bound to: 0.500000 - type: double 
+	Parameter CLKOUT2_PHASE bound to: 0.000000 - type: double 
+	Parameter CLKOUT2_USE_FINE_PS bound to: FALSE - type: string 
+	Parameter CLKOUT3_DIVIDE bound to: 12 - type: integer 
+	Parameter CLKOUT3_DUTY_CYCLE bound to: 0.500000 - type: double 
+	Parameter CLKOUT3_PHASE bound to: 0.000000 - type: double 
+	Parameter CLKOUT3_USE_FINE_PS bound to: FALSE - type: string 
+	Parameter CLKOUT4_CASCADE bound to: FALSE - type: string 
+	Parameter COMPENSATION bound to: ZHOLD - type: string 
+	Parameter DIVCLK_DIVIDE bound to: 1 - type: integer 
+	Parameter STARTUP_WAIT bound to: FALSE - type: string 
+INFO: [Synth 8-6155] done synthesizing module 'MMCME2_ADV' (0#1) [/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/scripts/rt/data/unisim_comp.v:82388]
+INFO: [Synth 8-6157] synthesizing module 'BUFG' [/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/scripts/rt/data/unisim_comp.v:1951]
+INFO: [Synth 8-6155] done synthesizing module 'BUFG' (0#1) [/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/scripts/rt/data/unisim_comp.v:1951]
+INFO: [Synth 8-6155] done synthesizing module 'clk_wiz_0_clk_wiz' (0#1) [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0_clk_wiz.v:68]
+INFO: [Synth 8-6155] done synthesizing module 'clk_wiz_0' (0#1) [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0.v:68]
+---------------------------------------------------------------------------------
+Finished RTL Elaboration : Time (s): cpu = 00:00:04 ; elapsed = 00:00:06 . Memory (MB): peak = 2578.805 ; gain = 497.461 ; free physical = 4294 ; free virtual = 12848
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Handling Custom Attributes
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Handling Custom Attributes : Time (s): cpu = 00:00:04 ; elapsed = 00:00:06 . Memory (MB): peak = 2596.617 ; gain = 515.273 ; free physical = 4291 ; free virtual = 12849
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished RTL Optimization Phase 1 : Time (s): cpu = 00:00:04 ; elapsed = 00:00:06 . Memory (MB): peak = 2596.617 ; gain = 515.273 ; free physical = 4291 ; free virtual = 12849
+---------------------------------------------------------------------------------
+Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2602.555 ; gain = 0.000 ; free physical = 4291 ; free virtual = 12849
+INFO: [Netlist 29-17] Analyzing 1 Unisim elements for replacement
+INFO: [Netlist 29-28] Unisim Transformation completed in 0 CPU seconds
+INFO: [Project 1-570] Preparing netlist for logic optimization
+
+Processing XDC Constraints
+Initializing timing engine
+Parsing XDC File [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0_ooc.xdc] for cell 'inst'
+Finished Parsing XDC File [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0_ooc.xdc] for cell 'inst'
+Parsing XDC File [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0_board.xdc] for cell 'inst'
+Finished Parsing XDC File [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0_board.xdc] for cell 'inst'
+Parsing XDC File [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0.xdc] for cell 'inst'
+Finished Parsing XDC File [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0.xdc] for cell 'inst'
+INFO: [Project 1-236] Implementation specific constraints were found while reading constraint file [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0.xdc]. These constraints will be ignored for synthesis but will be used in implementation. Impacted constraints are listed in the file [.Xil/clk_wiz_0_propImpl.xdc].
+Resolution: To avoid this warning, move constraints listed in [.Xil/clk_wiz_0_propImpl.xdc] to another XDC file and exclude this new file from synthesis with the used_in_synthesis property (File Properties dialog in GUI) and re-run elaboration/synthesis.
+INFO: [Timing 38-2] Deriving generated clocks
+Parsing XDC File [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.runs/clk_wiz_0_synth_1/dont_touch.xdc]
+Finished Parsing XDC File [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.runs/clk_wiz_0_synth_1/dont_touch.xdc]
+Completed Processing XDC Constraints
+
+Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2669.555 ; gain = 0.000 ; free physical = 4268 ; free virtual = 12827
+INFO: [Project 1-111] Unisim Transformation Summary:
+No Unisim elements were transformed.
+
+Constraint Validation Runtime : Time (s): cpu = 00:00:00.01 ; elapsed = 00:00:00.05 . Memory (MB): peak = 2669.555 ; gain = 0.000 ; free physical = 4268 ; free virtual = 12827
+INFO: [Designutils 20-5008] Incremental synthesis strategy off
+---------------------------------------------------------------------------------
+Finished Constraint Validation : Time (s): cpu = 00:00:10 ; elapsed = 00:00:15 . Memory (MB): peak = 2669.555 ; gain = 588.211 ; free physical = 4286 ; free virtual = 12848
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Loading Part and Timing Information
+---------------------------------------------------------------------------------
+Loading part: xc7a200tsbg484-1
+---------------------------------------------------------------------------------
+Finished Loading Part and Timing Information : Time (s): cpu = 00:00:10 ; elapsed = 00:00:15 . Memory (MB): peak = 2677.559 ; gain = 596.215 ; free physical = 4286 ; free virtual = 12848
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Applying 'set_property' XDC Constraints
+---------------------------------------------------------------------------------
+Applied set_property KEEP_HIERARCHY = SOFT for inst. (constraint file  /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.runs/clk_wiz_0_synth_1/dont_touch.xdc, line 9).
+---------------------------------------------------------------------------------
+Finished applying 'set_property' XDC Constraints : Time (s): cpu = 00:00:10 ; elapsed = 00:00:15 . Memory (MB): peak = 2677.559 ; gain = 596.215 ; free physical = 4300 ; free virtual = 12861
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished RTL Optimization Phase 2 : Time (s): cpu = 00:00:10 ; elapsed = 00:00:15 . Memory (MB): peak = 2677.559 ; gain = 596.215 ; free physical = 4298 ; free virtual = 12862
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start RTL Component Statistics 
+---------------------------------------------------------------------------------
+Detailed RTL Component Info : 
+---------------------------------------------------------------------------------
+Finished RTL Component Statistics 
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Part Resource Summary
+---------------------------------------------------------------------------------
+Part Resources:
+DSPs: 740 (col length:100)
+BRAMs: 730 (col length: RAMB18 100 RAMB36 50)
+---------------------------------------------------------------------------------
+Finished Part Resource Summary
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Cross Boundary and Area Optimization
+---------------------------------------------------------------------------------
+WARNING: [Synth 8-7080] Parallel synthesis criteria is not met
+---------------------------------------------------------------------------------
+Finished Cross Boundary and Area Optimization : Time (s): cpu = 00:00:11 ; elapsed = 00:00:16 . Memory (MB): peak = 2677.559 ; gain = 596.215 ; free physical = 4299 ; free virtual = 12862
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Applying XDC Timing Constraints
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Applying XDC Timing Constraints : Time (s): cpu = 00:00:16 ; elapsed = 00:00:22 . Memory (MB): peak = 2677.559 ; gain = 596.215 ; free physical = 4288 ; free virtual = 12863
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Timing Optimization
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Timing Optimization : Time (s): cpu = 00:00:16 ; elapsed = 00:00:22 . Memory (MB): peak = 2677.559 ; gain = 596.215 ; free physical = 4288 ; free virtual = 12863
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Technology Mapping
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Technology Mapping : Time (s): cpu = 00:00:16 ; elapsed = 00:00:22 . Memory (MB): peak = 2677.559 ; gain = 596.215 ; free physical = 4287 ; free virtual = 12863
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start IO Insertion
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Flattening Before IO Insertion
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Flattening Before IO Insertion
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Final Netlist Cleanup
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Final Netlist Cleanup
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished IO Insertion : Time (s): cpu = 00:00:19 ; elapsed = 00:00:25 . Memory (MB): peak = 2677.559 ; gain = 596.215 ; free physical = 4289 ; free virtual = 12865
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Renaming Generated Instances
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Renaming Generated Instances : Time (s): cpu = 00:00:19 ; elapsed = 00:00:25 . Memory (MB): peak = 2677.559 ; gain = 596.215 ; free physical = 4289 ; free virtual = 12865
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Rebuilding User Hierarchy
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Rebuilding User Hierarchy : Time (s): cpu = 00:00:19 ; elapsed = 00:00:25 . Memory (MB): peak = 2677.559 ; gain = 596.215 ; free physical = 4289 ; free virtual = 12865
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Renaming Generated Ports
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Renaming Generated Ports : Time (s): cpu = 00:00:19 ; elapsed = 00:00:25 . Memory (MB): peak = 2677.559 ; gain = 596.215 ; free physical = 4289 ; free virtual = 12865
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Handling Custom Attributes
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Handling Custom Attributes : Time (s): cpu = 00:00:19 ; elapsed = 00:00:25 . Memory (MB): peak = 2677.559 ; gain = 596.215 ; free physical = 4289 ; free virtual = 12865
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Renaming Generated Nets
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Renaming Generated Nets : Time (s): cpu = 00:00:19 ; elapsed = 00:00:25 . Memory (MB): peak = 2677.559 ; gain = 596.215 ; free physical = 4289 ; free virtual = 12865
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Writing Synthesis Report
+---------------------------------------------------------------------------------
+
+Report BlackBoxes: 
++-+--------------+----------+
+| |BlackBox name |Instances |
++-+--------------+----------+
++-+--------------+----------+
+
+Report Cell Usage: 
++------+-----------+------+
+|      |Cell       |Count |
++------+-----------+------+
+|1     |BUFG       |     5|
+|2     |MMCME2_ADV |     1|
+|3     |IBUF       |     1|
++------+-----------+------+
+---------------------------------------------------------------------------------
+Finished Writing Synthesis Report : Time (s): cpu = 00:00:19 ; elapsed = 00:00:25 . Memory (MB): peak = 2677.559 ; gain = 596.215 ; free physical = 4289 ; free virtual = 12865
+---------------------------------------------------------------------------------
+Synthesis finished with 0 errors, 0 critical warnings and 1 warnings.
+Synthesis Optimization Runtime : Time (s): cpu = 00:00:17 ; elapsed = 00:00:21 . Memory (MB): peak = 2677.559 ; gain = 523.277 ; free physical = 4277 ; free virtual = 12864
+Synthesis Optimization Complete : Time (s): cpu = 00:00:19 ; elapsed = 00:00:25 . Memory (MB): peak = 2677.566 ; gain = 596.215 ; free physical = 4277 ; free virtual = 12864
+INFO: [Project 1-571] Translating synthesized netlist
+Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2677.566 ; gain = 0.000 ; free physical = 4277 ; free virtual = 12864
+INFO: [Netlist 29-17] Analyzing 1 Unisim elements for replacement
+INFO: [Netlist 29-28] Unisim Transformation completed in 0 CPU seconds
+INFO: [Project 1-570] Preparing netlist for logic optimization
+INFO: [Opt 31-138] Pushed 0 inverter(s) to 0 load pin(s).
+Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2677.566 ; gain = 0.000 ; free physical = 4553 ; free virtual = 13141
+INFO: [Project 1-111] Unisim Transformation Summary:
+No Unisim elements were transformed.
+
+Synth Design complete | Checksum: 2bb42201
+INFO: [Common 17-83] Releasing license: Synthesis
+33 Infos, 2 Warnings, 0 Critical Warnings and 0 Errors encountered.
+synth_design completed successfully
+synth_design: Time (s): cpu = 00:00:25 ; elapsed = 00:00:37 . Memory (MB): peak = 2677.566 ; gain = 981.039 ; free physical = 4553 ; free virtual = 13141
+INFO: [Common 17-2834] synth_design peak Physical Memory [PSS] (MB): overall = 2253.438; main = 1881.028; forked = 419.174
+INFO: [Common 17-2834] synth_design peak Virtual Memory [VSS] (MB): overall = 3782.270; main = 2677.562; forked = 1104.707
+Write ShapeDB Complete: Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2701.570 ; gain = 0.000 ; free physical = 4580 ; free virtual = 13168
+INFO: [Common 17-1381] The checkpoint '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.runs/clk_wiz_0_synth_1/clk_wiz_0.dcp' has been generated.
+INFO: [Coretcl 2-1648] Added synthesis output to IP cache for IP clk_wiz_0, cache-ID = 0edd54b7fee8338b
+Write ShapeDB Complete: Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 2757.598 ; gain = 0.000 ; free physical = 4578 ; free virtual = 13170
+INFO: [Common 17-1381] The checkpoint '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.runs/clk_wiz_0_synth_1/clk_wiz_0.dcp' has been generated.
+INFO: [Vivado 12-24828] Executing command : report_utilization -file clk_wiz_0_utilization_synth.rpt -pb clk_wiz_0_utilization_synth.pb
+INFO: [Common 17-206] Exiting Vivado at Wed Feb 26 11:54:28 2025...
diff --git a/proj/AudioProc.runs/clk_wiz_0_synth_1/runme.sh b/proj/AudioProc.runs/clk_wiz_0_synth_1/runme.sh
new file mode 100755
index 0000000..e2b3f0f
--- /dev/null
+++ b/proj/AudioProc.runs/clk_wiz_0_synth_1/runme.sh
@@ -0,0 +1,40 @@
+#!/bin/sh
+
+# 
+# Vivado(TM)
+# runme.sh: a Vivado-generated Runs Script for UNIX
+# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+# Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
+# 
+
+if [ -z "$PATH" ]; then
+  PATH=/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vitis/2024.1/bin:/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/ids_lite/ISE/bin/lin64:/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/bin
+else
+  PATH=/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vitis/2024.1/bin:/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/ids_lite/ISE/bin/lin64:/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/bin:$PATH
+fi
+export PATH
+
+if [ -z "$LD_LIBRARY_PATH" ]; then
+  LD_LIBRARY_PATH=
+else
+  LD_LIBRARY_PATH=:$LD_LIBRARY_PATH
+fi
+export LD_LIBRARY_PATH
+
+HD_PWD='/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.runs/clk_wiz_0_synth_1'
+cd "$HD_PWD"
+
+HD_LOG=runme.log
+/bin/touch $HD_LOG
+
+ISEStep="./ISEWrap.sh"
+EAStep()
+{
+     $ISEStep $HD_LOG "$@" >> $HD_LOG 2>&1
+     if [ $? -ne 0 ]
+     then
+         exit
+     fi
+}
+
+EAStep vivado -log clk_wiz_0.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source clk_wiz_0.tcl
diff --git a/proj/AudioProc.runs/clk_wiz_0_synth_1/vivado.jou b/proj/AudioProc.runs/clk_wiz_0_synth_1/vivado.jou
new file mode 100644
index 0000000..a97cbf1
--- /dev/null
+++ b/proj/AudioProc.runs/clk_wiz_0_synth_1/vivado.jou
@@ -0,0 +1,24 @@
+#-----------------------------------------------------------
+# Vivado v2024.1 (64-bit)
+# SW Build 5076996 on Wed May 22 18:36:09 MDT 2024
+# IP Build 5075265 on Wed May 22 21:45:21 MDT 2024
+# SharedData Build 5076995 on Wed May 22 18:29:18 MDT 2024
+# Start of session at: Wed Feb 26 11:53:05 2025
+# Process ID: 36861
+# Current directory: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.runs/clk_wiz_0_synth_1
+# Command line: vivado -log clk_wiz_0.vds -product Vivado -mode batch -messageDb vivado.pb -notrace -source clk_wiz_0.tcl
+# Log file: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.runs/clk_wiz_0_synth_1/clk_wiz_0.vds
+# Journal file: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.runs/clk_wiz_0_synth_1/vivado.jou
+# Running On        :fl-tp-br-604
+# Platform          :Ubuntu
+# Operating System  :Ubuntu 24.04.1 LTS
+# Processor Detail  :Intel(R) Core(TM) i5-10500 CPU @ 3.10GHz
+# CPU Frequency     :4248.581 MHz
+# CPU Physical cores:6
+# CPU Logical cores :12
+# Host memory       :16467 MB
+# Swap memory       :4294 MB
+# Total Virtual     :20762 MB
+# Available Virtual :15254 MB
+#-----------------------------------------------------------
+source clk_wiz_0.tcl -notrace
diff --git a/proj/AudioProc.runs/clk_wiz_0_synth_1/vivado.pb b/proj/AudioProc.runs/clk_wiz_0_synth_1/vivado.pb
new file mode 100644
index 0000000000000000000000000000000000000000..6b889654010e2ae0aa7e990d30814159968f559b
GIT binary patch
literal 28572
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
Xpd4Yu$HnEEm!c4qnw(#hBESd$Dmexy

literal 0
HcmV?d00001

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..15435ca
--- /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:25:18 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..43f9ab9
--- /dev/null
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/elaborate.log
@@ -0,0 +1,21 @@
+Vivado Simulator v2024.1
+Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
+Running: /usr/home/enstb1/MEE/Xilinx/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
+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 module xil_defaultlib.glbl
+Compiling architecture archi_operativeunit of entity xil_defaultlib.controlUnit [controlunit_default]
+Compiling architecture arch_operativeunit of entity xil_defaultlib.operativeUnit [operativeunit_default]
+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..629e137
--- /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:25:21 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..e6d1d1c
--- /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:18:18 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 -log simulate.log"
+xsim tb_firUnit_behav -key {Behavioral:sim_1:Functional:tb_firUnit} -tclbatch tb_firUnit.tcl -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..d0b4d93baa959cb7c0df7f33dd774ebc51d719ca
GIT binary patch
literal 53384
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

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..0107b4e
--- /dev/null
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/tb_firUnit_vhdl.prj
@@ -0,0 +1,9 @@
+# compile vhdl design source files
+vhdl xil_defaultlib  \
+"../../../../../src/hdl/controlUnit.vhd" \
+"../../../../../src/hdl/operativeUnit.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..76b7b44
--- /dev/null
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/tb_firUnit_vlog.prj
@@ -0,0 +1,7 @@
+# compile verilog/system verilog design source files
+
+# 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..43a1def838315285f5ced7ff416a763f33fc462d
GIT binary patch
literal 2199
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=(vdrYvVmziGJMR(`7f(=WUS4Kix)sdR#>U3Tj-AWIHH%5Vw75t=BR@A)
zKQ*toB*{?U*VR=Y;$HnSaF9U4Kpzr5`cPg{W}bd&UU^YsK|yMYeokJ6nTcM$eno0d
zVv>TcZf0I`k%F#nN@`MRx<W~1L1uDdj)JakQEE<Ng@UebZi#}0g07E3MP^QXN@`kS
zX--K_W)euGG%vF_Gq*UtEVT&A%}q=$%7^ibQ<F=JQZoxcauo%+3c9+*d5HzZ8Tlm&
zB}wsVnMI*_nI-W_sTql7Xol+{<k4l)bCPltbaV346+o`fFG?&))dTS$v2J2wi5#p>
zT;id{nR)37s>KS$If-Sd3MCmusfj6&RAp>#jvT<uT#Ob_Q!I^9O_2#MNh~S>8B|=7
zSdy6xw>vXG51c@aO^lF?f|_D#fozI9mtsI-aj`;3Mp1rgdWM2ueqL~97068gf|AVK
z%&OEPuu*0frszhQm>Q!bW@j#0=ltA)oYa!k6a^eEGO|F<G7uLTTbd!e$d^kU;V(!=
z%FNGGNJ%V7R7lIoFIPy+OU$V(&V+`Ri6OeXj7>~Y+~vomf#fcNCK{PrVwh-bX^QN`
zATHIA%-mE^*2~W+Ede<%Ex$+sS`>h|nealw*u(_MI3rdrX2XJFh{sLL43JIr=Hdmp
z6O_$CNdp}0#umtqF%shvDM(DtPE1c#C@x9SD=taQOGzwBff#3MfZ|9`!p4bk2_YL-
zl3G!cnUB@5Ai{>pa!JDs%S=s8)hjMZiO<PT&rFUtG&D28YN|hBQ>C~hP)yA$%}p)J
zOpY%u!S3roE@4C<=H{oA=A<g97K2M`1LPD83QE+XLl2aPxghSeG)2j3lNbp*G?ptm
zu_!qsvm`aSq_iki0nCZdFGwv)EXgcOEzQd;QOHkINX;wBEU82<K9ckEN{aGxKqZet
zG?W9<0V~;JA<jaJ;i*J8D}gHx>=I;W5$h_r<00;Xa|yewg$S4VbNOPpEE81zf{e!<
zRL}xiAv!Iy2&58!5LFP4IA<<LEbf35^&ksyI|ZQzYxIP3$vTy0=9D0p3-GE2T<c3Q
r8<|@mmkvT)0uVz%Ar7g7AVwQonjjYyd|X_vc_|7(smb|8DFTcDuFIH+

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..fd26a49c73c760d2b064fe359086ffce61f6723f
GIT binary patch
literal 25536
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

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..71dfa28
--- /dev/null
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_1.c
@@ -0,0 +1,142 @@
+/**********************************************************************/
+/*   ____  ____                                                       */
+/*  /   /\/   /                                                       */
+/* /___/  \  /                                                        */
+/* \   \   \/                                                         */
+/*  \   \        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_36(char*, char *);
+IKI_DLLESPEC extern void execute_37(char*, char *);
+IKI_DLLESPEC extern void execute_38(char*, char *);
+IKI_DLLESPEC extern void execute_39(char*, char *);
+IKI_DLLESPEC extern void execute_42(char*, char *);
+IKI_DLLESPEC extern void execute_43(char*, char *);
+IKI_DLLESPEC extern void execute_44(char*, char *);
+IKI_DLLESPEC extern void execute_45(char*, char *);
+IKI_DLLESPEC extern void execute_46(char*, char *);
+IKI_DLLESPEC extern void execute_47(char*, char *);
+IKI_DLLESPEC extern void execute_48(char*, char *);
+IKI_DLLESPEC extern void execute_49(char*, char *);
+IKI_DLLESPEC extern void execute_52(char*, char *);
+IKI_DLLESPEC extern void execute_53(char*, char *);
+IKI_DLLESPEC extern void execute_54(char*, char *);
+IKI_DLLESPEC extern void execute_55(char*, char *);
+IKI_DLLESPEC extern void execute_56(char*, char *);
+IKI_DLLESPEC extern void execute_57(char*, char *);
+IKI_DLLESPEC extern void execute_58(char*, char *);
+IKI_DLLESPEC extern void execute_59(char*, char *);
+IKI_DLLESPEC extern void execute_60(char*, char *);
+IKI_DLLESPEC extern void execute_61(char*, char *);
+IKI_DLLESPEC extern void execute_62(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 vhdl_transfunc_eventcallback(char*, char*, unsigned, unsigned, unsigned, char *);
+funcp funcTab[36] = {(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_36, (funcp)execute_37, (funcp)execute_38, (funcp)execute_39, (funcp)execute_42, (funcp)execute_43, (funcp)execute_44, (funcp)execute_45, (funcp)execute_46, (funcp)execute_47, (funcp)execute_48, (funcp)execute_49, (funcp)execute_52, (funcp)execute_53, (funcp)execute_54, (funcp)execute_55, (funcp)execute_56, (funcp)execute_57, (funcp)execute_58, (funcp)execute_59, (funcp)execute_60, (funcp)execute_61, (funcp)execute_62, (funcp)vlog_transfunc_eventcallback, (funcp)transaction_34, (funcp)vhdl_transfunc_eventcallback};
+const int NumRelocateId= 36;
+
+void relocate(char *dp)
+{
+	iki_relocate(dp, "xsim.dir/tb_firUnit_behav/xsim.reloc",  (void **)funcTab, 36);
+	iki_vhdl_file_variable_register(dp + 14184);
+	iki_vhdl_file_variable_register(dp + 14240);
+
+
+	/*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");
+}
+
+void simulate(char *dp)
+{
+		iki_schedule_processes_at_time_zero(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
+	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..dcfcc4cf77c5d909bfcf15f6227b7bd9454bb2c7
GIT binary patch
literal 6392
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
HVRZcf$v!#d

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..c4347e3f93a5040bb0e1bb21df1e1df4dc5e4260
GIT binary patch
literal 15928
zcma#Z%*o8FQ1A@S%vEr4a#t`gFk?{qwJ-h4|NsAYFfcF(urV+MXfZHka5FFnNHZ`f
z$YNpxc?O0GWd;Tb4G3<~U|@Km!N6dl1;J_z3=AL~&A`9_!eR`VfRl-V!I_1DVLl5)
zj+cRf0fa*!Tm~iv1_nk(2xeel1dIOv|NlRT0hVK6V1V&KVj#>4BA^(=W`?ps>SaLY
zF)%PFLd8H7Cj$cm2Ll5G8v_Fa50nO}1-Tt!BLmnSf(#4{It&oD9|Hpe$Xqw5c_4E@
z7~~cZ2I)6uU|;}w%O8&#69xtbkQ*cLs4<7SDG`qvD+UGzb_NE9EU5cHZUJGCTR<4(
zFI%WT%kZdiWnf?cg+~(}HQo#i3|tHh41IXi=rJ%ba5FG4%)+C_0vg_{@u;zcriVRv
z)PVfX$H2gF7LOWh1_lOx1_p+Ec+`l1(mewM!+U7lg2E4!E`%8v7(ng-g-aj<0|O`>
z$TC9WAEXB4PiY1Q22ff6sflM`U=U(pVDMvvs0FD3VNg7PFevOy85kHq=7!@@<G{ec
z0CH0T9yO^93=E>6c*mnAje&syl=n*Ts7YsFU=U|uV5q~RCWC>2L4tvSp#zVaOa=x9
zNd^XnNqE$N(x?;z1H&9fNH~GQ282Oj1Hz#21cfCiOqXI&69r9MpgaT0&#SShftdqx
zvn&Gx!wx)ZN*Nd!<QNzj4&hN#&cMJR&%nTN29KHw1_lNN1_p*}c+^xv%bo{#)KoDr
zFeouFFucN}riOumL79Pp;S(M;oeT^NDxmTakDAF03=FCuHJ||d|NlQIO@iX$fd0cr
zAQ~Bi$|(V8`2Z>_LHP+(&Vj-OM1$f2RIY-I0_g*lp8<LgAA!mqka`$xz`(!&%KM<a
z0xIi2=skP{Vyi>V2Bi&<86XUj2bl%43sk0p#6e;p8iZkL9P}SP0=WZJrh>%rsR5O#
zgw%k_6?8SAG8SYm$S#n7KxHZ+HJ~z;kQz{#N=OZ;OeLfS6t0BSfXXsLYKZYWs7xhf
z4ygQssrd_vUq(p%0**7|hmSyIp*FNW0mZv6BLjmqR1HWkC~bhs10!gj2jwr2c_0in
z16r<w%mJ0DAaPLqfM^hgsR6|oNDZh=1&QNR11eJqsR5O#gw%k_R6=S%<r5(_pfZ(^
z8c>;vPYoyxL1ij7HJ~;QD11O_KxHa6HK6c<sUhTMkU5|-m5@20GL?`TP?<_d4X8{d
zqy|)`5>f*yQwga7m8pc(fXY;u8c?`_FsNM8g0|m4?M9FoNDZjn0xDM-8qIh>Wgti#
zq!yGXK=Fc0EvS6~QwwU7g4!vdG8Uu<Bn~%seH0I<Oa_U8%+)2}22dV?sRflc$mW8~
zhMPMhipL$K5Za#7Ctz+IR4u5?1epOc3n~O|zk~b<4u@oQi6p25NG+(`$EOyQ4?)U7
zYC&}qPPOxuc|dstrWVwO!>Kk|T_PW(5ZXQkg*864pfn0n4srvi{zO*`DtEws%TeKJ
z1Sy1?3o75x)q>&>toDiuPdAcUQ2PyCEj-MwsqjogQVVLw;Z)nE&a)6nEvP+*Q!TF=
z&l)7PpmrUoKLbifAUz-&?gk+>o-IgfL1j6zT97&r2K&u@1p}x(4^j>aGf=w$WFCkQ
z!k~NsqQPpD)g_LAIM6TywdL@sJ%gkc)TYCy_9~KEP#XrHT3BNU<X%wQ3|%eUZ#oYj
zeLyl7)JDUpc9J^JKP0uFwi-^gQ`LERppqarfZA+OF4zQ6n8DpJQ=LZ&DhW~xYKK9&
zm}=*!^JqdPL25Oi`53Ga+AajK!EsTn!UL+CL41%}O?+x~9zOC$G8b0%f%Jkf$h{yM
zY_873N6|=XVPzjk9)!`=<{+sBm3>eyNGZ510Wo0ag8DNcKFGbG@(iciWOa#Ns3b@&
ztULqh1z{97B&$n+`Ys@GkXlfC7OE8_gzAQ5bqP@a1SA1cYltt*lGP=4K@9?_1+{gd
zT#$AQbI(B~L25y5UMLr<+DA}HkXld~59MN2`wc1yQfo%Qy<AL?Q5le0P+b9PpMlB+
zkP)E#52C?wk*h8tf}|Ey*CDF~sX<mNholx%ej=*{m66D5HIdYU+8)SiLG5+8+B|g$
z6OiLT?N9~=23T1F$~T~Z0L3x9ZfZ2+u|ZM`D@$;xbwN@KDoa3N0dpsa4L5gw6i*P6
zT98{o?!#qnDw0}IJq|JpW-cfULFR&$%#Y$J12Z7)YgieDZZ23!qZv;Rm;q4>s>iXp
z0Td^ocF8;>wI0y)fNm~K?P?^oo&?nHLQ?BRK<!B+wV=KdKKEWhQtLy&-1|sseF><A
zr5#XuBsT4U)DlWNu=D^@3raiK{00&O#l;J#dqHXmrJbKhYC&lSWCnV?ft56x@vuTA
zK;{xkJHkk6Vf7nS2wX<N(`2I=k0Mk8WG<|Jg9>4&)rLxd)WYgFs1Sx)Q>X+;Ev$Zn
z3Sp?Vg-U?bg2ou|g+nlsT38(bDnpRV2UuE9Mp6r_18}K@r5#ZDge%NI?gGUztlR;q
z#T8~SwXkvrq!tur$mIjbzo57PtNoM9QwVi0NG+}~1FLN`<Ecebi!01vYP*rt!rBi|
zA$VNC)Xs!TfZPCUKR|^r)GmfffYid;4^SZtwQHdgAhode15^k@?N+D+NG+`W02P9(
zh2@K5PzjJ)P~QnTd_iKM@CB>=lgo1oNiC>8Zh($!faF2-BS<Yc?fl8*xrL+_G!})d
z7Nib@!D<)f@VrJ+3mV@6xdDVhVG8Q=z}0Tg;Q5WD7BtQSQU}5ywV*x^T<xL)9&S(t
z4INhjjrV}ef~f`ddEjcdXYfcOsRfPufch>lwV*x^T<xL)9yKJjHqbF_m|BoNxZ3R*
zJi16~L1Sqkbs!9KFKApFu69uYj}ekuJLudBs1C%IHyx4Gg8H5yF0xvXo5A4=(hQwD
zfil4qs4W0;2P{8>1)=R>kT^7$VZz{a1F{2`IH+8QD~6f_D!-{Ej?10Y5{J1R)E@`2
zLGc4hFSyJHsR3bP)#EY;mpIH^kR2cliZ76RK=BIV!!Sr3l;&`W<1#<KB)@>6Bq=^E
zvnVt#vxFhBC^;iD9!VfQCn<*kDjRPIV?otH#Tjxk^HSsEO$}iTBN)RJ#;{=U%*!mv
zOw2Jej5mO@E#nPgY;)6iBN*GnEZ&&GFSR5nH9fJoI5R!Z)GXc<Rlq#n3{}7)-W*lH
zGTs73z{nupk|8-iucRnH2jtawLu4M*L-_@%MTsSuWvL()3@E&KLsULkM?8uWm}iZl
z3^Nlb!_WX0G=>JSurV}%DKj)csDlNVp@A7xuekw3aYklZ2}5RHa#4I@N=i{`aWPcR
z(9j&tvV^gW4B#xdtwu%+#ihCNiOI<f#U=Sgsqsar#icnVFoh<dq8Xf&f}P`&bMlk3
z8G@ZbYEnx;jLf`((vslB+=84`G;Ua8PG$;7EG;vqB(*3t1)&O61ftMAIEcYLB$&ZH
z+?639$j61jJ;*gU#6QTDp&-7rAigBGfFZ!gC*H^3+1s5VAjsd{Dc;@3$%nz&*~i--
z!gO;Ec7ifpV6-Ph$~`zJJ~OWbWCNH6*#Kt1Yyoq;LLA-WLtuI#JZEo+2@swO)I12!
zHyBwiC^!U(>+Bd15*p-+BogEr?24=+*u&EenI9V9;uwOWA=EF#6~)kCS06(p6N6oS
zj8M78s9X~yZfLM;5Xf`L2EfFSO@WCa8wC@Cniu5n93SrK65_!S0%w5&5-JF028TEX
zg)n$RlZ+=c#dyXeCm0kSBpLX}qb3dpbODI6VCVRPqWt94;^NG_beH@*aN^6!PfQ60
z=Z9eD_{_Y_5=Ur`0CSUzP`H^T!KJyN<O$Y=U`8@{q8sfW4^{&<*&oGV5D#H4hzBti
zs-rZQ0m6!8@Q-&x$p%nw1jQE=r52~=l?0b0mZUNS2gRqAmXsDjc%Df1f`SU+ArKE?
zFNg=R7pkK)mjS{8*^3rV{_&9@Ym)O*(}GgdGmA@7i$HvEIf4*yj?XR4De(std3h;@
zpkPAc8-e(~r8y-*kdh+U8C3SbI6?8npwJA0*i)36m;wuT&?F861A~4>er{^9ezK8C
zZenq9zP?jwQEFnTeo29DSw>2ZZf<I-eyFQ%ZfZ($ejZ2^lpu;ybyG`9Q!*3tN_62G
zi;I%=Gg5N&5ml02Sw;$jenC-wmVQN2X=YAJvA(6HrKO%hyr*ACyn%^<X}p1jiGhA*
zUU5lcPEN6YVopwcK~7>xT7FS(v3^))Sz<~)REvH}Vo9Pt$VvJji;7E9;*AUpEcA;@
z67y0Li&E%eS4nC`NoGC`ZOTkdO@(<YB|axVJu^Ap(9p~TWMvMGLK2sqx=HydmGrSV
zuQWHcC^I>}xC9)HwD&2Jg~;Bdc20mcx<G+Q{cMKRK%$KWC=Dj+S^+K+97|I&^8<?V
zll6)-bM=cebK?#5lTtGh%k(Qi0-)xsUKwO99jMI=!{Ejb0|P?>6ockhK-i3tfdPb9
zF)}cKurd<^0|-xHVqgGaE@lP>5Kd=iU;yD0%nS@5tj)r}0Ky>iL1x2f5F6Bgg7HbE
zL3%;+UZ6EYpgt9-KMR_J0*#@A`r@F597qgAgZj{*zA=dJ#K6D+TAu-$8wZVTg2oF$
z>-7Q{7#M;W7#PAB7#JcM7#Kinj$)u;09qdans)@v?}O&TK}9=gZV_Y#NF8XcBS>v5
z0|Nu7?+IED23orZQj^WVz>vehz>v$pz>vqlzyO+OEMQ<@0L_<!=EFgAiJ<vx(0p|r
z0|P@n0|NtSYydQG2wIcZ%)r3V!oa`)nj7q4U|{HFU|;~vH-q{(p!p5Zm=$O&3N+6E
z^E+s~A2g1S>~ByX9@K}nXJB9et%-1CU|;}+1;`Je@nBe3fW|~YYaL->0*WUXM(*nt
zKs#6!P#V-fgsH<vF9125fq`KKlt$Nw&WD+`0yH?lz`(EpN~5a-jk&<oBGVf{6RDu}
zU{D%eAF`j2_3Z#9E(QjM15g@WA1M7HtB0`{fF@W${)5u!`jE#UV0u8b0JLK&0j1IX
z1DXQ>sYAyXpz3cxX>@&1VRUT_9iTxC1_p)+P#RqyR2V~_2Xs&+07|3lg9>Bl;{Xj#
zg4SC?X>@&1VGMmIpb{6LG`c>}m>h;C(3(Z4!~`gft`9UmhfSXYRKf#Fqw9mMFGAP*
z1F9apm>If80$B}cTnm{GV{d>OxC2U~+lM~x0n?WOHLw6mqw52Wjlk3*(+W@nHJ~)Q
zKG2vUvU(W10W`=83RftNt`9VR2vdtpTYv^!L1hk<M%M=|K9IG5*&m?le?Vz;ebC|q
ztQMJA0UERgl@m}JT_3dgK-L0g-++e411OEI4_bVH)gluUpaDGtN~7z879Yr3z-$j_
zKnFl+bbZj`1FRN>fCe-Nlt$MFTC;(o9?IDPReu0Vqw53JolvDHR061yVPIg$fYRvt
zK=m(*1}H}YR55|p$3kgzeV{cUP^Bo;1*rNPP#RqyXdVtl1C-MNssush8I(rX2bz<E
zDn+3jKoutg1A_;YM%M>wTcBuwa(+P7Gk_K<V#)8Iv0kWB6lw!h{SGLNZXamg4n+f$
zlL4yS85kG}pftKZ&>S9ADGH?kY78+jFlaz&bbX+?DHIJ*&JC#g2T&SaA84KmsuYEq
z0BU?NFfh!3(&+j?b5<xCpd1fSgN1>CAplCF>jTYSL6xFXpavdjp97Re*9V%*Le&7_
zS%4aW5GI&J)(2vP=C!~QXoLd+eV{omG%aAR2LXMc`7W?RG$Me2K4@`_ri+0Ay?ut>
z&Vd%I82ZrLXXyH%#VUqA^!6FLK4|fQp%1-%hOQ4<3}EO(Z=a#-gBAlA`q0~F==xyU
z8eL-tv|yb8rP1|4vopFjh5~58S^=fe^+B^UhQ0`B!I}W2(e**IC5Ao+Xu;|MrP1|4
zvn7T;4QRn?0Hx9OL9-=>J^^UKDgmX@^+B^GhQ1$A_25kwNc(SK3PF7r7#o>JPuI}u
z6Rrf*&x3Q280hI5T_31#h@>3OL{FdS`au0ExMCy*dU`?E2bw2EQVwULrx$d6pgB{x
zVk8E7dO_C*>iZ!nhcnUB3%Wi~e-W-2iGiM8(Di}(m`KXuO!V}Et`F2Ng)2s4pr;pf
zeW1Q9l5#i`J-?&tbB3!#WjugZ{4bz1x;__F<#65!XvKd4N~7yTE6(Bi(9<=vnFf~!
z_0!=TBnEoAM%M@G+aoE5GttXybbX-l0Jvf#273BL*9TeyhNK+ML{FdS`atW!;EItL
z=;;$(A82hDl5#i`J$<6<1C9H@6(cdw(<iz<(D(?FaySz`eWL3Fjj6yDBQem+33Pp+
zaTp}!a3*^FhprDao&{Ho#Ml6BU>ZOhjOhA6`yG*#!<homhT;S$jjj(gb_Q3B%z!rd
zIG{ATzF=gvNbDC-^&g-#x<1%`VI(bJ<^^a&@d1=Z*B1&_g-INMHWY6_X>@&{aY0O7
z3=BJ<4aEyk8eLyFHcg=ZDYT)u14^Uo1MSPfrga9ip|}7_qw52WU1HN`02-7;l7Kc3
Pz#^dbE@&JR%t0dn>JzXR

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..785892ba0771a16820976a1443d985724524a185
GIT binary patch
literal 4535
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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..6869d0e22b1d4b618f72423da2d86f716a804da7
GIT binary patch
literal 2004
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

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..1198a3c
--- /dev/null
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.rlx
@@ -0,0 +1,12 @@
+
+{ 
+    crc :  15088705700611705432  , 
+    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\"/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/lib/lnx64.o\" -lrdi_simulator_kernel    -L/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/lib/lnx64.o/../../tps/lnx64/gcc-9.3.0/bin/../lib64 -Wl,--disable-new-dtags -Wl,-rpath=/usr/home/enstb1/MEE/Xilinx/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..514dd6e6ffba7b1befff5cfa64c8e3220bf63715
GIT binary patch
literal 753
zcma#Z%*o8FQ1A@S%vA`93~*I&^Yn35FfcG=u)44GYhOAy0|UcMCI$vA1_lOZ28IPW
z`RSR-46F<gz{tSBz{0@5V8CF=5XBGy7F1?n0Ld>XPEO28EQ-&}D*<sC7#SEE{{R19
z57J`Dz`!8Dz_0)$$iU370IUxr0mEPc1_p+I|NsA=`~UxcFR1OoAujPg{_dX63``6R
zV9d<Gz`)7Cz@Q$g&Y&Kl&Y*6f&Y*6n&Y&Kp&Y&Ky&Y<q2&Y<q0&Y-TV4z|r3$)r%q
zj8cGl)Xy;_G|15h>>QB8VZL;P`V#Kw_%K)J5dR>sLPmxK;E)6P7!;Zy8l)M7VZM%q
zx-}%exFoS86|4{BZ;*Nr4tMkni4S)44e)Vg2oCWNa%Bhz@^^L(4)*kOkN5HS4`A>Q
z4G9PhVE`+1^>cwK23ckfbDgKVpQ{VlY+~F5^R%a5h^xCR#4ij;QR@jcwkS0{v$!O+
z$SpGm;&71R91INLNB~6`$Ri-n@<YYgK^z7KhX2qg*MRbapmZseUIwK<Kxu1`XBZe5
SqM`I0DE$*k8$c}zfYJbpY=I&G

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..7c62b4eaf2065362ca4b433deed275cf688ee99e
GIT binary patch
literal 47
jcmY#pfB;4Y1_luR|NsAg5Y52I!oa}53=-vmr~s1yeZ>Sg

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..112d10a15968cd75d8edf862403b0159a116c6d2
GIT binary patch
literal 7048
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
RfbwDSS%JoPfTkmu`2f4Br1$^;

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..103afc92d21a77de25a81cd1edc31c924a16c56f
GIT binary patch
literal 13064
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
WKkV{|^}C=kW|;pqKpi>;1_l6m*D2Hh

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..cb0db76
--- /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=512
+RADIX=hex
+TIME_UNIT=ns
+TRACE_LIMIT=2147483647
+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=181
+SCOPE_DESIGN_UNIT_COLUMN_WIDTH=209
+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..26fd0f57b5f397efeca3d326d391d9bceb4a4fe6
GIT binary patch
literal 32824
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
CkVzf@

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..dd6b8e0
--- /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 51495
+Design successfully loaded
+Design Loading Memory Usage: 20184 KB (Peak: 20756 KB)
+Design Loading CPU Usage: 20 ms
+Simulation completed
+Simulation Memory Usage: 101920 KB (Peak: 159452 KB)
+Simulation CPU Usage: 50 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..e5b493bb031c710228bfcd9d659a5053a197fa98
GIT binary patch
literal 8400
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
UX*h&w2pOVHgD6BM9YAXt07^^*rT_o{

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..2cf98a3546b473f17e7037553c90a8b839f20f60
GIT binary patch
literal 10393
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
A>Hq)$

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..afa4a45e5e6cc7ce5d9582c87c404fb5d37d4e8b
GIT binary patch
literal 5679
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

literal 0
HcmV?d00001

diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/operativeunit.vdb b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/operativeunit.vdb
new file mode 100644
index 0000000000000000000000000000000000000000..4b23e04abbf21bd772d9bd365639ac569d3703b5
GIT binary patch
literal 14228
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
H(0)7s)!(sk

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..409b8b8e28f7e365bd4bc4e80e1a579d11512ea5
GIT binary patch
literal 7470
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

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..264db57
--- /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/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim/glbl.v,1708598507,verilog,,,,glbl,,,,,,,,
+/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd,1740567123,vhdl,/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd,,,controlunit,,,,,,,,
+/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd,1740559580,vhdl,/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/tb_firUnit.vhd,,,firunit,,,,,,,,
+/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd,1740569105,vhdl,/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd,,,operativeunit,,,,,,,,
+/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/tb_firUnit.vhd,1740559580,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..c80084a
--- /dev/null
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/xvhdl.log
@@ -0,0 +1,6 @@
+INFO: [VRFC 10-163] Analyzing VHDL file "/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd" into library xil_defaultlib
+INFO: [VRFC 10-3107] analyzing entity 'operativeUnit'
+INFO: [VRFC 10-163] Analyzing VHDL file "/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd" into library xil_defaultlib
+INFO: [VRFC 10-3107] analyzing entity 'firUnit'
+INFO: [VRFC 10-163] Analyzing VHDL file "/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/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..123cc48f4be058465ccf604a8505bc71e22ce897
GIT binary patch
literal 859
zcmd-&&d8<Vn3tGSS(TZWt`O$o;-iq3nUkuZq*|<`keOGKuaJ|ORFqg$si0acz$(RT
zXlAU%T~VBwTb5dsnU<Msl){yypOK%NTCAUJWRja$T%51(R9cjpSgK!Apj(!alB1iO
znyMe_s+*gdlANCh5>3m@DJe?TO)V)+$xO^E(S>U)E=tzVNXgO9FGwv)EXgcO4b96e
z(JRYHF%sb7tH{iWPf1NnEX^s&$xMo3Gc?dOG&9a%C}6E%oxsQ-z{KUxC7KBLN@`w7
zW=W-jx@xhy0IL*>k(s4As>AuYcv0+$VmCC<H8wObM>g^xrNI-&6+`vlNy{uEEnqxJ
z3K&i<cBl<lgX9RML6XQ7PxT-vNs5QMnfT=5LsF>laB(3l!5T1pTwJbsDGEWU$@xVo
G0*nA5ZVGY$

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..8228398
--- /dev/null
+++ b/proj/AudioProc.xpr
@@ -0,0 +1,348 @@
+<?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/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.xpr">
+  <DefaultLaunch Dir="$PRUNDIR"/>
+  <Configuration>
+    <Option Name="Id" Val="401f8028668a44b7a81b7aaeec674740"/>
+    <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="17"/>
+    <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/audio_init.v">
+        <FileInfo>
+          <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="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="UsedIn" Val="synthesis"/>
+          <Attr Name="UsedIn" Val="simulation"/>
+        </FileInfo>
+      </File>
+      <File Path="$PPRDIR/../src/hdl/controlUnit.vhd">
+        <FileInfo>
+          <Attr Name="UsedIn" Val="synthesis"/>
+          <Attr Name="UsedIn" Val="simulation"/>
+        </FileInfo>
+      </File>
+      <File Path="$PPRDIR/../src/hdl/operativeUnit.vhd">
+        <FileInfo>
+          <Attr Name="UsedIn" Val="synthesis"/>
+          <Attr Name="UsedIn" Val="simulation"/>
+        </FileInfo>
+      </File>
+      <File Path="$PPRDIR/../src/hdl/firUnit.vhd">
+        <FileInfo>
+          <Attr Name="UsedIn" Val="synthesis"/>
+          <Attr Name="UsedIn" Val="simulation"/>
+        </FileInfo>
+      </File>
+      <File Path="$PPRDIR/../src/hdl/fir.vhd">
+        <FileInfo>
+          <Attr Name="UsedIn" Val="synthesis"/>
+          <Attr Name="UsedIn" Val="simulation"/>
+        </FileInfo>
+      </File>
+      <File Path="$PPRDIR/../src/hdl/i2s_ctl.vhd">
+        <FileInfo>
+          <Attr Name="UsedIn" Val="synthesis"/>
+          <Attr Name="UsedIn" Val="simulation"/>
+        </FileInfo>
+      </File>
+      <File Path="$PPRDIR/../src/hdl/audioProc.v">
+        <FileInfo>
+          <Attr Name="UsedIn" Val="synthesis"/>
+          <Attr Name="UsedIn" Val="implementation"/>
+          <Attr Name="UsedIn" Val="simulation"/>
+        </FileInfo>
+      </File>
+      <File Path="$PPRDIR/../src/hdl/processingUnitIP.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="audioProc"/>
+        <Option Name="TopAutoSet" Val="TRUE"/>
+      </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>
+    <FileSet Name="clk_wiz_0" Type="BlockSrcs" RelSrcDir="$PSRCDIR/clk_wiz_0" RelGenDir="$PGENDIR/clk_wiz_0">
+      <File Path="$PPRDIR/../src/ip/clk_wiz_0/clk_wiz_0.xci">
+        <FileInfo>
+          <Attr Name="UsedIn" Val="synthesis"/>
+          <Attr Name="UsedIn" Val="implementation"/>
+          <Attr Name="UsedIn" Val="simulation"/>
+        </FileInfo>
+      </File>
+      <Config>
+        <Option Name="TopModule" Val="clk_wiz_0"/>
+        <Option Name="UseBlackboxStub" Val="1"/>
+      </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="clk_wiz_0_synth_1" Type="Ft3:Synth" SrcSet="clk_wiz_0" Part="xc7a200tsbg484-1" ConstrsSet="clk_wiz_0" Description="Vivado Synthesis Defaults" AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" Dir="$PRUNDIR/clk_wiz_0_synth_1" IncludeInArchive="true" IsChild="false" AutoIncrementalDir="$PSRCDIR/utils_1/imports/clk_wiz_0_synth_1" AutoRQSDir="$PSRCDIR/utils_1/imports/clk_wiz_0_synth_1" ParallelReportGen="true">
+      <Strategy Version="1" Minor="2">
+        <StratHandle Name="Vivado Synthesis Defaults" Flow="Vivado Synthesis 2024">
+          <Desc>Vivado Synthesis Defaults</Desc>
+        </StratHandle>
+        <Step Id="synth_design"/>
+      </Strategy>
+      <GeneratedRun Dir="$PRUNDIR" File="gen_run.xml"/>
+      <ReportStrategy Name="Vivado Synthesis Default Reports" Flow="Vivado Synthesis 2024"/>
+      <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>
+    <Run Id="clk_wiz_0_impl_1" Type="Ft2:EntireDesign" Part="xc7a200tsbg484-1" ConstrsSet="clk_wiz_0" Description="Default settings for Implementation." AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" SynthRun="clk_wiz_0_synth_1" IncludeInArchive="false" IsChild="false" GenFullBitstream="true" AutoIncrementalDir="$PSRCDIR/utils_1/imports/clk_wiz_0_impl_1" AutoRQSDir="$PSRCDIR/utils_1/imports/clk_wiz_0_impl_1" ParallelReportGen="true">
+      <Strategy Version="1" Minor="2">
+        <StratHandle Name="Vivado Implementation Defaults" Flow="Vivado Implementation 2024">
+          <Desc>Default settings for Implementation.</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"/>
+      </Strategy>
+      <ReportStrategy Name="Vivado Implementation Default Reports" Flow="Vivado Implementation 2024"/>
+      <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..844ce36
--- /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 11:52:51 2025
+| Host         : fl-tp-br-604 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..f90eed5
--- /dev/null
+++ b/proj/tb_firUnit_behav.wcfg
@@ -0,0 +1,95 @@
+<?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="0.000 ns"></ZoomStartTime>
+      <ZoomEndTime time="325.501 ns"></ZoomEndTime>
+      <Cursor1Time time="141.500 ns"></Cursor1Time>
+   </zoom_setting>
+   <column_width_setting>
+      <NameColumnWidth column_width="195"></NameColumnWidth>
+      <ValueColumnWidth column_width="60"></ValueColumnWidth>
+   </column_width_setting>
+   <WVObjectSize size="18" />
+   <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>
+   </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/operativeUnit_1/O_processingDone">
+      <obj_property name="ElementShortName">O_processingDone</obj_property>
+      <obj_property name="ObjectShortName">O_processingDone</obj_property>
+   </wvobject>
+   <wvobject type="array" fp_name="/tb_firUnit/firUnit_1/operativeUnit_1/O_Y">
+      <obj_property name="ElementShortName">O_Y[7:0]</obj_property>
+      <obj_property name="ObjectShortName">O_Y[7:0]</obj_property>
+   </wvobject>
+   <wvobject type="array" fp_name="/tb_firUnit/firUnit_1/operativeUnit_1/SR_coefRegister">
+      <obj_property name="ElementShortName">SR_coefRegister[0:15][7:0]</obj_property>
+      <obj_property name="ObjectShortName">SR_coefRegister[0:15][7:0]</obj_property>
+   </wvobject>
+   <wvobject type="array" fp_name="/tb_firUnit/firUnit_1/operativeUnit_1/SR_shiftRegister">
+      <obj_property name="ElementShortName">SR_shiftRegister[0:15][7:0]</obj_property>
+      <obj_property name="ObjectShortName">SR_shiftRegister[0:15][7:0]</obj_property>
+   </wvobject>
+   <wvobject type="array" fp_name="/tb_firUnit/firUnit_1/operativeUnit_1/SC_multOperand1">
+      <obj_property name="ElementShortName">SC_multOperand1[7:0]</obj_property>
+      <obj_property name="ObjectShortName">SC_multOperand1[7:0]</obj_property>
+   </wvobject>
+   <wvobject type="array" fp_name="/tb_firUnit/firUnit_1/operativeUnit_1/SC_multOperand2">
+      <obj_property name="ElementShortName">SC_multOperand2[7:0]</obj_property>
+      <obj_property name="ObjectShortName">SC_multOperand2[7:0]</obj_property>
+   </wvobject>
+   <wvobject type="array" fp_name="/tb_firUnit/firUnit_1/operativeUnit_1/SC_MultResult">
+      <obj_property name="ElementShortName">SC_MultResult[15:0]</obj_property>
+      <obj_property name="ObjectShortName">SC_MultResult[15:0]</obj_property>
+   </wvobject>
+   <wvobject type="array" fp_name="/tb_firUnit/firUnit_1/operativeUnit_1/SC_addResult">
+      <obj_property name="ElementShortName">SC_addResult[19:0]</obj_property>
+      <obj_property name="ObjectShortName">SC_addResult[19:0]</obj_property>
+   </wvobject>
+   <wvobject type="array" fp_name="/tb_firUnit/firUnit_1/operativeUnit_1/SR_sum">
+      <obj_property name="ElementShortName">SR_sum[19:0]</obj_property>
+      <obj_property name="ObjectShortName">SR_sum[19:0]</obj_property>
+   </wvobject>
+   <wvobject type="array" fp_name="/tb_firUnit/firUnit_1/operativeUnit_1/SR_Y">
+      <obj_property name="ElementShortName">SR_Y[7:0]</obj_property>
+      <obj_property name="ObjectShortName">SR_Y[7:0]</obj_property>
+   </wvobject>
+   <wvobject type="logic" fp_name="/tb_firUnit/firUnit_1/operativeUnit_1/I_loadY">
+      <obj_property name="ElementShortName">I_loadY</obj_property>
+      <obj_property name="ObjectShortName">I_loadY</obj_property>
+   </wvobject>
+   <wvobject type="other" fp_name="/tb_firUnit/firUnit_1/operativeUnit_1/SR_readAddress">
+      <obj_property name="ElementShortName">SR_readAddress</obj_property>
+      <obj_property name="ObjectShortName">SR_readAddress</obj_property>
+   </wvobject>
+</wave_config>
diff --git a/proj/vivado.jou b/proj/vivado.jou
new file mode 100644
index 0000000..d54a508
--- /dev/null
+++ b/proj/vivado.jou
@@ -0,0 +1,83 @@
+#-----------------------------------------------------------
+# Vivado v2024.1 (64-bit)
+# SW Build 5076996 on Wed May 22 18:36:09 MDT 2024
+# IP Build 5075265 on Wed May 22 21:45:21 MDT 2024
+# SharedData Build 5076995 on Wed May 22 18:29:18 MDT 2024
+# Start of session at: Wed Feb 26 09:59:54 2025
+# Process ID: 10833
+# Current directory: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj
+# Command line: vivado
+# Log file: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/vivado.log
+# Journal file: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/vivado.jou
+# Running On        :fl-tp-br-604
+# Platform          :Ubuntu
+# Operating System  :Ubuntu 24.04.1 LTS
+# Processor Detail  :Intel(R) Core(TM) i5-10500 CPU @ 3.10GHz
+# CPU Frequency     :1998.882 MHz
+# CPU Physical cores:6
+# CPU Logical cores :12
+# Host memory       :16467 MB
+# Swap memory       :4294 MB
+# Total Virtual     :20762 MB
+# Available Virtual :17455 MB
+#-----------------------------------------------------------
+start_gui
+source ./create_project.tcl
+update_compile_order -fileset sources_1
+update_compile_order -fileset sources_1
+update_ip_catalog -rebuild -scan_changes
+report_ip_status -name ip_status
+upgrade_ip -vlnv xilinx.com:ip:clk_wiz:6.0 [get_ips  clk_wiz_0] -log ip_upgrade.log
+export_ip_user_files -of_objects [get_ips clk_wiz_0] -no_script -sync -force -quiet
+generate_target all [get_files  /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0.xci]
+catch { config_ip_cache -export [get_ips -all clk_wiz_0] }
+export_ip_user_files -of_objects [get_files /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0.xci] -no_script -sync -force -quiet
+create_ip_run [get_files -of_objects [get_fileset sources_1] /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0.xci]
+launch_runs clk_wiz_0_synth_1 -jobs 2
+wait_on_run clk_wiz_0_synth_1
+export_simulation -of_objects [get_files /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0.xci] -directory /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.ip_user_files/sim_scripts -ip_user_files_dir /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.ip_user_files -ipstatic_source_dir /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.ip_user_files/ipstatic -lib_map_path [list {modelsim=/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.cache/compile_simlib/modelsim} {questa=/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.cache/compile_simlib/questa} {xcelium=/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.cache/compile_simlib/xcelium} {vcs=/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.cache/compile_simlib/vcs} {riviera=/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.cache/compile_simlib/riviera}] -use_ip_compiled_libs -force -quiet
+# Disabling source management mode.  This is to allow the top design properties to be set without GUI intervention.
+set_property source_mgmt_mode None [current_project]
+set_property top tb_firUnit [get_filesets sim_1]
+set_property top_lib xil_defaultlib [get_filesets sim_1]
+# Re-enabling previously disabled source management mode.
+set_property source_mgmt_mode All [current_project]
+report_ip_status -name ip_status 
+launch_simulation
+source tb_firUnit.tcl
+run 10 us
+run 10 us
+run 10 us
+run 10 us
+run 10 us
+run 10 us
+relaunch_sim
+close_sim
+launch_simulation
+source tb_firUnit.tcl
+relaunch_sim
+current_wave_config {Untitled 2}
+add_wave {{/tb_firUnit/firUnit_1/controlUnit_1/SR_presentState}} 
+relaunch_sim
+run 10 us
+current_wave_config {Untitled 2}
+add_wave {{/tb_firUnit/firUnit_1/operativeUnit_1/SR_readAddress}} 
+relaunch_sim
+close_sim
+launch_simulation
+source tb_firUnit.tcl
+current_wave_config {Untitled 3}
+add_wave {{/tb_firUnit/firUnit_1/operativeUnit_1/O_processingDone}} {{/tb_firUnit/firUnit_1/operativeUnit_1/O_Y}} {{/tb_firUnit/firUnit_1/operativeUnit_1/SR_coefRegister}} {{/tb_firUnit/firUnit_1/operativeUnit_1/SR_shiftRegister}} {{/tb_firUnit/firUnit_1/operativeUnit_1/SC_multOperand1}} {{/tb_firUnit/firUnit_1/operativeUnit_1/SC_multOperand2}} {{/tb_firUnit/firUnit_1/operativeUnit_1/SC_MultResult}} {{/tb_firUnit/firUnit_1/operativeUnit_1/SC_addResult}} {{/tb_firUnit/firUnit_1/operativeUnit_1/SR_sum}} {{/tb_firUnit/firUnit_1/operativeUnit_1/SR_Y}} 
+relaunch_sim
+current_wave_config {Untitled 3}
+add_wave {{/tb_firUnit/firUnit_1/operativeUnit_1/I_loadY}} 
+relaunch_sim
+relaunch_sim
+current_wave_config {Untitled 3}
+add_wave {{/tb_firUnit/firUnit_1/operativeUnit_1/SR_readAddress}} 
+restart
+run 10 us
+save_wave_config {/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/tb_firUnit_behav.wcfg}
+add_files -fileset sim_1 -norecurse /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/tb_firUnit_behav.wcfg
+set_property xsim.view /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/tb_firUnit_behav.wcfg [get_filesets sim_1]
+close_sim
diff --git a/proj/vivado.log b/proj/vivado.log
new file mode 100644
index 0000000..0f12558
--- /dev/null
+++ b/proj/vivado.log
@@ -0,0 +1,1724 @@
+#-----------------------------------------------------------
+# Vivado v2024.1 (64-bit)
+# SW Build 5076996 on Wed May 22 18:36:09 MDT 2024
+# IP Build 5075265 on Wed May 22 21:45:21 MDT 2024
+# SharedData Build 5076995 on Wed May 22 18:29:18 MDT 2024
+# Start of session at: Wed Feb 26 09:59:54 2025
+# Process ID: 10833
+# Current directory: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj
+# Command line: vivado
+# Log file: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/vivado.log
+# Journal file: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/vivado.jou
+# Running On        :fl-tp-br-604
+# Platform          :Ubuntu
+# Operating System  :Ubuntu 24.04.1 LTS
+# Processor Detail  :Intel(R) Core(TM) i5-10500 CPU @ 3.10GHz
+# CPU Frequency     :1998.882 MHz
+# CPU Physical cores:6
+# CPU Logical cores :12
+# Host memory       :16467 MB
+# Swap memory       :4294 MB
+# Total Virtual     :20762 MB
+# Available Virtual :17455 MB
+#-----------------------------------------------------------
+start_gui
+WARNING: [Board 49-26] cannot add Board Part xilinx.com:vek280_es:part0:1.0 available at /usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/xhub/boards/XilinxBoardStore/boards/Xilinx/vek280/es/rev_a/1.0/board.xml as part xcve2802-vsvh1760-2lp-e-s-es1 specified in board_part file is either invalid or not available
+WARNING: [Board 49-26] cannot add Board Part xilinx.com:vek280_es:part0:1.1 available at /usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/xhub/boards/XilinxBoardStore/boards/Xilinx/vek280/es/rev_a/1.1/board.xml as part xcve2802-vsvh1760-2lp-e-s-es1 specified in board_part file is either invalid or not available
+WARNING: [Board 49-26] cannot add Board Part xilinx.com:vek280_es_revb:part0:1.0 available at /usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/xhub/boards/XilinxBoardStore/boards/Xilinx/vek280/es/rev_b/1.0/board.xml as part xcve2802-vsvh1760-2mp-e-s-es1 specified in board_part file is either invalid or not available
+WARNING: [Board 49-26] cannot add Board Part xilinx.com:vek280_es_revb:part0:1.1 available at /usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/xhub/boards/XilinxBoardStore/boards/Xilinx/vek280/es/rev_b/1.1/board.xml as part xcve2802-vsvh1760-2mp-e-s-es1 specified in board_part file is either invalid or not available
+WARNING: [Board 49-26] cannot add Board Part xilinx.com:vhk158_es:part0:1.0 available at /usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/xhub/boards/XilinxBoardStore/boards/Xilinx/vhk158/es/1.0/board.xml as part xcvh1582-vsva3697-2mp-e-s-es1 specified in board_part file is either invalid or not available
+WARNING: [Board 49-26] cannot add Board Part xilinx.com:vhk158_es:part0:1.1 available at /usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/xhub/boards/XilinxBoardStore/boards/Xilinx/vhk158/es/1.1/board.xml as part xcvh1582-vsva3697-2mp-e-s-es1 specified in board_part file is either invalid or not available
+WARNING: [Board 49-26] cannot add Board Part xilinx.com:zcu208ld:part0:2.0 available at /usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/xhub/boards/XilinxBoardStore/boards/Xilinx/zcu208ld/production/2.0/board.xml as part xczu58dr-fsvg1517-2-i specified in board_part file is either invalid or not available
+WARNING: [Board 49-26] cannot add Board Part xilinx.com:zcu216ld:part0:2.0 available at /usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/xhub/boards/XilinxBoardStore/boards/Xilinx/zcu216ld/production/2.0/board.xml as part xczu59dr-ffvf1760-2-i specified in board_part file is either invalid or not available
+WARNING: [Board 49-26] cannot add Board Part xilinx.com:zcu670ld:part0:1.0 available at /usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/xhub/boards/XilinxBoardStore/boards/Xilinx/zcu670ld/1.0/board.xml as part xczu57dr-fsve1156-2-i specified in board_part file is either invalid or not available
+source ./create_project.tcl
+# if {[info exists ::create_path]} {
+# 	set dest_dir $::create_path
+# } else {
+# 	set dest_dir [pwd]
+# }
+# puts "INFO: Creating new project in $dest_dir"
+INFO: Creating new project in /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj
+# set proj_name "AudioProc"
+# set origin_dir ".."
+# set orig_proj_dir "[file normalize "$origin_dir/proj"]"
+# set src_dir $origin_dir/src
+# set repo_dir $origin_dir/repo
+# set part_num "xc7a200tsbg484-1"
+# create_project $proj_name $dest_dir
+INFO: [IP_Flow 19-234] Refreshing IP repositories
+INFO: [IP_Flow 19-1704] No user IP repositories specified
+INFO: [IP_Flow 19-2313] Loaded Vivado IP repository '/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/ip'.
+# set proj_dir [get_property directory [current_project]]
+# set obj [get_projects $proj_name]
+# set_property "default_lib" "xil_defaultlib" $obj
+# set_property "part" "$part_num" $obj
+# set_property "simulator_language" "Mixed" $obj
+# set_property "target_language" "VHDL" $obj
+# if {[string equal [get_filesets -quiet sources_1] ""]} {
+#   create_fileset -srcset sources_1
+# }
+# if {[string equal [get_filesets -quiet constrs_1] ""]} {
+#   create_fileset -constrset constrs_1
+# }
+# set obj [get_filesets sources_1]
+# set_property "ip_repo_paths" "[file normalize $repo_dir]" $obj
+# add_files -quiet $src_dir/hdl
+# add_files -quiet [glob -nocomplain ../src/ip/*/*.xci]
+# add_files -fileset constrs_1 -quiet $src_dir/constraints
+# if {[string equal [get_runs -quiet synth_1] ""]} {
+#   create_run -name synth_1 -part $part_num -flow {Vivado Synthesis 2014} -strategy "Flow_PerfOptimized_High" -constrset constrs_1
+# } else {
+#   set_property strategy "Flow_PerfOptimized_High" [get_runs synth_1]
+#   set_property flow "Vivado Synthesis 2014" [get_runs synth_1]
+# }
+# set obj [get_runs synth_1]
+# set_property "part" "$part_num" $obj
+# set_property "steps.synth_design.args.fanout_limit" "400" $obj
+# set_property "steps.synth_design.args.fsm_extraction" "one_hot" $obj
+# set_property "steps.synth_design.args.keep_equivalent_registers" "1" $obj
+# set_property "steps.synth_design.args.resource_sharing" "off" $obj
+# set_property "steps.synth_design.args.no_lc" "1" $obj
+# set_property "steps.synth_design.args.shreg_min_size" "5" $obj
+# current_run -synthesis [get_runs synth_1]
+# if {[string equal [get_runs -quiet impl_1] ""]} {
+#   create_run -name impl_1 -part $part_num -flow {Vivado Implementation 2014} -strategy "Vivado Implementation Defaults" -constrset constrs_1 -parent_run synth_1
+# } else {
+#   set_property strategy "Vivado Implementation Defaults" [get_runs impl_1]
+#   set_property flow "Vivado Implementation 2014" [get_runs impl_1]
+# }
+# set obj [get_runs impl_1]
+# set_property "part" "$part_num" $obj
+# set_property "steps.write_bitstream.args.bin_file" "1" $obj
+# current_run -implementation [get_runs impl_1]
+impl_1
+update_compile_order -fileset sources_1
+update_compile_order -fileset sources_1
+update_ip_catalog -rebuild -scan_changes
+INFO: [IP_Flow 19-234] Refreshing IP repositories
+WARNING: [IP_Flow 19-2248] Failed to load user IP repository '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/repo'; Can't find the specified path.
+If this directory should no longer be in your list of user repositories, go to the IP Settings dialog and remove it.
+report_ip_status -name ip_status
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+upgrade_ip -vlnv xilinx.com:ip:clk_wiz:6.0 [get_ips  clk_wiz_0] -log ip_upgrade.log
+Upgrading 'clk_wiz_0'
+INFO: [Device 21-403] Loading part xc7a200tsbg484-1
+INFO: [Device 21-9227] Part: xc7a200tsbg484-1 does not have CEAM library.
+INFO: [IP_Flow 19-1972] Upgraded clk_wiz_0 from Clocking Wizard 5.2 to Clocking Wizard 6.0
+WARNING: [IP_Flow 19-4707] Upgraded port order differs after port 'reset'
+WARNING: [IP_Flow 19-3298] Detected external port differences while upgrading 'clk_wiz_0'. These changes may impact your design.
+INFO: [IP_Flow 19-1686] Generating 'Instantiation Template' target for IP 'clk_wiz_0'...
+CRITICAL WARNING: [Coretcl 2-1279] The upgrade of 'clk_wiz_0' has identified issues that may require user intervention. Please review the upgrade log '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/ip_upgrade.log', and verify that the upgraded IP is correctly configured.
+INFO: [Coretcl 2-1525] Wrote upgrade log to '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/ip_upgrade.log'.
+upgrade_ip: Time (s): cpu = 00:00:07 ; elapsed = 00:00:18 . Memory (MB): peak = 10092.996 ; gain = 336.473 ; free physical = 6200 ; free virtual = 14742
+export_ip_user_files -of_objects [get_ips clk_wiz_0] -no_script -sync -force -quiet
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+generate_target all [get_files  /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0.xci]
+INFO: [IP_Flow 19-1686] Generating 'Synthesis' target for IP 'clk_wiz_0'...
+INFO: [IP_Flow 19-1686] Generating 'Simulation' target for IP 'clk_wiz_0'...
+INFO: [IP_Flow 19-1686] Generating 'Implementation' target for IP 'clk_wiz_0'...
+INFO: [IP_Flow 19-1686] Generating 'Change Log' target for IP 'clk_wiz_0'...
+catch { config_ip_cache -export [get_ips -all clk_wiz_0] }
+INFO: [IP_Flow 19-6924] IPCACHE: Running cache check for IP inst: clk_wiz_0
+export_ip_user_files -of_objects [get_files /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0.xci] -no_script -sync -force -quiet
+create_ip_run [get_files -of_objects [get_fileset sources_1] /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0.xci]
+launch_runs clk_wiz_0_synth_1 -jobs 2
+INFO: [IP_Flow 19-6924] IPCACHE: Running cache check for IP inst: clk_wiz_0
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+[Wed Feb 26 11:53:03 2025] Launched clk_wiz_0_synth_1...
+Run output will be captured here: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.runs/clk_wiz_0_synth_1/runme.log
+export_simulation -of_objects [get_files /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/ip/clk_wiz_0/clk_wiz_0.xci] -directory /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.ip_user_files/sim_scripts -ip_user_files_dir /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.ip_user_files -ipstatic_source_dir /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.ip_user_files/ipstatic -lib_map_path [list {modelsim=/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.cache/compile_simlib/modelsim} {questa=/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.cache/compile_simlib/questa} {xcelium=/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.cache/compile_simlib/xcelium} {vcs=/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.cache/compile_simlib/vcs} {riviera=/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.cache/compile_simlib/riviera}] -use_ip_compiled_libs -force -quiet
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+set_property top tb_firUnit [get_filesets sim_1]
+set_property top_lib xil_defaultlib [get_filesets sim_1]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/processingUnitIP.v:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/processingUnitIP.v:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/processingUnitIP.v:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+report_ip_status -name ip_status 
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/processingUnitIP.v:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/processingUnitIP.v:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/processingUnitIP.v:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+launch_simulation
+Command: launch_simulation 
+INFO: [Vivado 12-12493] Simulation top is 'tb_firUnit'
+INFO: [Vivado 12-5698] Checking validity of IPs in the design for the 'XSim' simulator...
+INFO: [Vivado 12-5682] Launching behavioral simulation in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+INFO: [Vivado 12-4795] Using compiled simulation libraries for IPs
+INFO: [SIM-utils-51] Simulation object is 'sim_1'
+INFO: [SIM-utils-72] Using boost library from '/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/tps/boost_1_72_0'
+INFO: [USF-XSim-7] Finding pre-compiled libraries...
+INFO: [USF-XSim-11] File '/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/xsim/xsim.ini' copied to run dir:'/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+INFO: [SIM-utils-54] Inspecting design source files for 'tb_firUnit' in fileset 'sim_1'...
+INFO: [USF-XSim-97] Finding global include files...
+INFO: [USF-XSim-98] Fetching design files from 'sim_1'...
+INFO: [USF-XSim-2] XSim::Compile design
+INFO: [USF-XSim-61] Executing 'COMPILE and ANALYZE' step in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+xvlog --incr --relax -prj tb_firUnit_vlog.prj
+INFO: [VRFC 10-2263] Analyzing Verilog file "/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim/glbl.v" into library xil_defaultlib
+INFO: [VRFC 10-311] analyzing module glbl
+xvhdl --incr --relax -prj tb_firUnit_vhdl.prj
+INFO: [VRFC 10-163] Analyzing VHDL file "/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd" into library xil_defaultlib
+INFO: [VRFC 10-3107] analyzing entity 'controlUnit'
+INFO: [VRFC 10-163] Analyzing VHDL file "/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd" into library xil_defaultlib
+INFO: [VRFC 10-3107] analyzing entity 'operativeUnit'
+INFO: [VRFC 10-163] Analyzing VHDL file "/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd" into library xil_defaultlib
+INFO: [VRFC 10-3107] analyzing entity 'firUnit'
+INFO: [VRFC 10-163] Analyzing VHDL file "/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/tb_firUnit.vhd" into library xil_defaultlib
+INFO: [VRFC 10-3107] analyzing entity 'tb_firUnit'
+Waiting for jobs to finish...
+No pending jobs, compilation finished.
+execute_script: Time (s): cpu = 00:00:03 ; elapsed = 00:00:12 . Memory (MB): peak = 10376.637 ; gain = 0.000 ; free physical = 6026 ; free virtual = 14704
+INFO: [USF-XSim-69] 'compile' step finished in '12' seconds
+INFO: [USF-XSim-3] XSim::Elaborate design
+INFO: [USF-XSim-61] Executing 'ELABORATE' step in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+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
+Vivado Simulator v2024.1
+Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
+Running: /usr/home/enstb1/MEE/Xilinx/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
+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 module xil_defaultlib.glbl
+Compiling architecture archi_operativeunit of entity xil_defaultlib.controlUnit [controlunit_default]
+Compiling architecture arch_operativeunit of entity xil_defaultlib.operativeUnit [operativeunit_default]
+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
+execute_script: Time (s): cpu = 00:00:02 ; elapsed = 00:00:09 . Memory (MB): peak = 10376.637 ; gain = 0.000 ; free physical = 5984 ; free virtual = 14728
+INFO: [USF-XSim-69] 'elaborate' step finished in '9' seconds
+INFO: [USF-XSim-4] XSim::Simulate design
+INFO: [USF-XSim-61] Executing 'SIMULATE' step in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+INFO: [USF-XSim-98] *** Running xsim
+   with args "tb_firUnit_behav -key {Behavioral:sim_1:Functional:tb_firUnit} -tclbatch {tb_firUnit.tcl} -log {simulate.log}"
+INFO: [USF-XSim-8] Loading simulator feature
+Time resolution is 1 ps
+source tb_firUnit.tcl
+# 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
+ERROR: Index 16 out of bound 0 to 15
+Time: 275 ns  Iteration: 1  Process: /tb_firUnit/firUnit_1/operativeUnit_1/line__119
+  File: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd
+
+HDL Line: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:119
+INFO: [USF-XSim-96] XSim completed. Design snapshot 'tb_firUnit_behav' loaded.
+INFO: [USF-XSim-97] XSim simulation ran for 1000ns
+launch_simulation: Time (s): cpu = 00:00:09 ; elapsed = 00:00:25 . Memory (MB): peak = 10405.938 ; gain = 29.301 ; free physical = 5906 ; free virtual = 14714
+run 10 us
+ERROR: [Simulator 45-1] A fatal run-time error was detected.  Simulation cannot continue.
+run 10 us
+ERROR: [Simulator 45-1] A fatal run-time error was detected.  Simulation cannot continue.
+run 10 us
+ERROR: [Simulator 45-1] A fatal run-time error was detected.  Simulation cannot continue.
+run 10 us
+ERROR: [Simulator 45-1] A fatal run-time error was detected.  Simulation cannot continue.
+run 10 us
+ERROR: [Simulator 45-1] A fatal run-time error was detected.  Simulation cannot continue.
+run 10 us
+ERROR: [Simulator 45-1] A fatal run-time error was detected.  Simulation cannot continue.
+relaunch_sim
+Command: launch_simulation -step compile -simset sim_1 -mode behavioral
+INFO: [Vivado 12-12493] Simulation top is 'tb_firUnit'
+INFO: [Vivado 12-5698] Checking validity of IPs in the design for the 'XSim' simulator...
+INFO: [Vivado 12-5682] Launching behavioral simulation in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+INFO: [Vivado 12-4795] Using compiled simulation libraries for IPs
+INFO: [SIM-utils-51] Simulation object is 'sim_1'
+INFO: [SIM-utils-72] Using boost library from '/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/tps/boost_1_72_0'
+INFO: [USF-XSim-7] Finding pre-compiled libraries...
+INFO: [USF-XSim-11] File '/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/xsim/xsim.ini' copied to run dir:'/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+INFO: [SIM-utils-54] Inspecting design source files for 'tb_firUnit' in fileset 'sim_1'...
+INFO: [USF-XSim-97] Finding global include files...
+INFO: [USF-XSim-98] Fetching design files from 'sim_1'...
+INFO: [USF-XSim-2] XSim::Compile design
+INFO: [USF-XSim-61] Executing 'COMPILE and ANALYZE' step in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+xvlog --incr --relax -prj tb_firUnit_vlog.prj
+xvhdl --incr --relax -prj tb_firUnit_vhdl.prj
+Waiting for jobs to finish...
+No pending jobs, compilation finished.
+INFO: [USF-XSim-69] 'compile' step finished in '3' seconds
+Command: launch_simulation -step elaborate -simset sim_1 -mode behavioral
+INFO: [Vivado 12-12493] Simulation top is 'tb_firUnit'
+INFO: [Vivado 12-5698] Checking validity of IPs in the design for the 'XSim' simulator...
+INFO: [Vivado 12-5682] Launching behavioral simulation in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+INFO: [Vivado 12-4795] Using compiled simulation libraries for IPs
+INFO: [SIM-utils-51] Simulation object is 'sim_1'
+INFO: [USF-XSim-3] XSim::Elaborate design
+INFO: [USF-XSim-61] Executing 'ELABORATE' step in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+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
+Vivado Simulator v2024.1
+Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
+Running: /usr/home/enstb1/MEE/Xilinx/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
+Completed static elaboration
+INFO: [XSIM 43-4323] No Change in HDL. Linking previously generated obj files to create kernel
+INFO: [USF-XSim-69] 'elaborate' step finished in '2' seconds
+Time resolution is 1 ps
+ERROR: Index 16 out of bound 0 to 15
+Time: 275 ns  Iteration: 1  Process: /tb_firUnit/firUnit_1/operativeUnit_1/line__119
+  File: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd
+
+HDL Line: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:119
+relaunch_sim: Time (s): cpu = 00:00:05 ; elapsed = 00:00:07 . Memory (MB): peak = 10405.938 ; gain = 0.000 ; free physical = 5864 ; free virtual = 14635
+close_sim
+INFO: [Simtcl 6-16] Simulation closed
+launch_simulation
+Command: launch_simulation 
+INFO: [Vivado 12-12493] Simulation top is 'tb_firUnit'
+INFO: [Vivado 12-5698] Checking validity of IPs in the design for the 'XSim' simulator...
+INFO: [Vivado 12-5682] Launching behavioral simulation in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+INFO: [Vivado 12-4795] Using compiled simulation libraries for IPs
+INFO: [SIM-utils-51] Simulation object is 'sim_1'
+INFO: [SIM-utils-72] Using boost library from '/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/tps/boost_1_72_0'
+INFO: [USF-XSim-7] Finding pre-compiled libraries...
+INFO: [USF-XSim-11] File '/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/xsim/xsim.ini' copied to run dir:'/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+INFO: [SIM-utils-54] Inspecting design source files for 'tb_firUnit' in fileset 'sim_1'...
+INFO: [USF-XSim-97] Finding global include files...
+INFO: [USF-XSim-98] Fetching design files from 'sim_1'...
+INFO: [USF-XSim-2] XSim::Compile design
+INFO: [USF-XSim-61] Executing 'COMPILE and ANALYZE' step in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+xvlog --incr --relax -prj tb_firUnit_vlog.prj
+xvhdl --incr --relax -prj tb_firUnit_vhdl.prj
+Waiting for jobs to finish...
+No pending jobs, compilation finished.
+INFO: [USF-XSim-69] 'compile' step finished in '2' seconds
+INFO: [USF-XSim-3] XSim::Elaborate design
+INFO: [USF-XSim-61] Executing 'ELABORATE' step in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+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
+Vivado Simulator v2024.1
+Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
+Running: /usr/home/enstb1/MEE/Xilinx/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
+Completed static elaboration
+INFO: [XSIM 43-4323] No Change in HDL. Linking previously generated obj files to create kernel
+INFO: [USF-XSim-69] 'elaborate' step finished in '2' seconds
+INFO: [USF-XSim-4] XSim::Simulate design
+INFO: [USF-XSim-61] Executing 'SIMULATE' step in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+INFO: [USF-XSim-98] *** Running xsim
+   with args "tb_firUnit_behav -key {Behavioral:sim_1:Functional:tb_firUnit} -tclbatch {tb_firUnit.tcl} -log {simulate.log}"
+INFO: [USF-XSim-8] Loading simulator feature
+Time resolution is 1 ps
+source tb_firUnit.tcl
+# 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
+ERROR: Index 16 out of bound 0 to 15
+Time: 275 ns  Iteration: 1  Process: /tb_firUnit/firUnit_1/operativeUnit_1/line__119
+  File: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd
+
+HDL Line: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:119
+INFO: [USF-XSim-96] XSim completed. Design snapshot 'tb_firUnit_behav' loaded.
+INFO: [USF-XSim-97] XSim simulation ran for 1000ns
+launch_simulation: Time (s): cpu = 00:00:06 ; elapsed = 00:00:07 . Memory (MB): peak = 10405.938 ; gain = 0.000 ; free physical = 5844 ; free virtual = 14658
+relaunch_sim
+Command: launch_simulation -step compile -simset sim_1 -mode behavioral
+INFO: [Vivado 12-12493] Simulation top is 'tb_firUnit'
+INFO: [Vivado 12-5698] Checking validity of IPs in the design for the 'XSim' simulator...
+INFO: [Vivado 12-5682] Launching behavioral simulation in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+INFO: [Vivado 12-4795] Using compiled simulation libraries for IPs
+INFO: [SIM-utils-51] Simulation object is 'sim_1'
+INFO: [USF-XSim-2] XSim::Compile design
+INFO: [USF-XSim-61] Executing 'COMPILE and ANALYZE' step in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+xvlog --incr --relax -prj tb_firUnit_vlog.prj
+xvhdl --incr --relax -prj tb_firUnit_vhdl.prj
+Waiting for jobs to finish...
+No pending jobs, compilation finished.
+INFO: [USF-XSim-69] 'compile' step finished in '3' seconds
+Command: launch_simulation -step elaborate -simset sim_1 -mode behavioral
+INFO: [Vivado 12-12493] Simulation top is 'tb_firUnit'
+INFO: [Vivado 12-5698] Checking validity of IPs in the design for the 'XSim' simulator...
+INFO: [Vivado 12-5682] Launching behavioral simulation in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+INFO: [Vivado 12-4795] Using compiled simulation libraries for IPs
+INFO: [SIM-utils-51] Simulation object is 'sim_1'
+INFO: [USF-XSim-3] XSim::Elaborate design
+INFO: [USF-XSim-61] Executing 'ELABORATE' step in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+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
+Vivado Simulator v2024.1
+Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
+Running: /usr/home/enstb1/MEE/Xilinx/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
+Completed static elaboration
+INFO: [XSIM 43-4323] No Change in HDL. Linking previously generated obj files to create kernel
+INFO: [USF-XSim-69] 'elaborate' step finished in '1' seconds
+Time resolution is 1 ps
+ERROR: Index 16 out of bound 0 to 15
+Time: 275 ns  Iteration: 1  Process: /tb_firUnit/firUnit_1/operativeUnit_1/line__119
+  File: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd
+
+HDL Line: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:119
+relaunch_sim: Time (s): cpu = 00:00:05 ; elapsed = 00:00:08 . Memory (MB): peak = 10435.938 ; gain = 0.000 ; free physical = 5855 ; free virtual = 14627
+current_wave_config {Untitled 2}
+Untitled 2
+add_wave {{/tb_firUnit/firUnit_1/controlUnit_1/SR_presentState}} 
+relaunch_sim
+Command: launch_simulation -step compile -simset sim_1 -mode behavioral
+INFO: [Vivado 12-12493] Simulation top is 'tb_firUnit'
+INFO: [Vivado 12-5698] Checking validity of IPs in the design for the 'XSim' simulator...
+INFO: [Vivado 12-5682] Launching behavioral simulation in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+INFO: [Vivado 12-4795] Using compiled simulation libraries for IPs
+INFO: [SIM-utils-51] Simulation object is 'sim_1'
+INFO: [USF-XSim-2] XSim::Compile design
+INFO: [USF-XSim-61] Executing 'COMPILE and ANALYZE' step in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+xvlog --incr --relax -prj tb_firUnit_vlog.prj
+xvhdl --incr --relax -prj tb_firUnit_vhdl.prj
+Waiting for jobs to finish...
+No pending jobs, compilation finished.
+INFO: [USF-XSim-69] 'compile' step finished in '3' seconds
+Command: launch_simulation -step elaborate -simset sim_1 -mode behavioral
+INFO: [Vivado 12-12493] Simulation top is 'tb_firUnit'
+INFO: [Vivado 12-5698] Checking validity of IPs in the design for the 'XSim' simulator...
+INFO: [Vivado 12-5682] Launching behavioral simulation in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+INFO: [Vivado 12-4795] Using compiled simulation libraries for IPs
+INFO: [SIM-utils-51] Simulation object is 'sim_1'
+INFO: [USF-XSim-3] XSim::Elaborate design
+INFO: [USF-XSim-61] Executing 'ELABORATE' step in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+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
+Vivado Simulator v2024.1
+Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
+Running: /usr/home/enstb1/MEE/Xilinx/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
+Completed static elaboration
+INFO: [XSIM 43-4323] No Change in HDL. Linking previously generated obj files to create kernel
+INFO: [USF-XSim-69] 'elaborate' step finished in '2' seconds
+Time resolution is 1 ps
+ERROR: Index 16 out of bound 0 to 15
+Time: 275 ns  Iteration: 1  Process: /tb_firUnit/firUnit_1/operativeUnit_1/line__119
+  File: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd
+
+HDL Line: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:119
+relaunch_sim: Time (s): cpu = 00:00:05 ; elapsed = 00:00:07 . Memory (MB): peak = 10435.938 ; gain = 0.000 ; free physical = 5858 ; free virtual = 14634
+run 10 us
+ERROR: [Simulator 45-1] A fatal run-time error was detected.  Simulation cannot continue.
+current_wave_config {Untitled 2}
+Untitled 2
+add_wave {{/tb_firUnit/firUnit_1/operativeUnit_1/SR_readAddress}} 
+relaunch_sim
+Command: launch_simulation -step compile -simset sim_1 -mode behavioral
+INFO: [Vivado 12-12493] Simulation top is 'tb_firUnit'
+INFO: [Vivado 12-5698] Checking validity of IPs in the design for the 'XSim' simulator...
+INFO: [Vivado 12-5682] Launching behavioral simulation in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+INFO: [Vivado 12-4795] Using compiled simulation libraries for IPs
+INFO: [SIM-utils-51] Simulation object is 'sim_1'
+INFO: [USF-XSim-2] XSim::Compile design
+INFO: [USF-XSim-61] Executing 'COMPILE and ANALYZE' step in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+xvlog --incr --relax -prj tb_firUnit_vlog.prj
+xvhdl --incr --relax -prj tb_firUnit_vhdl.prj
+Waiting for jobs to finish...
+No pending jobs, compilation finished.
+INFO: [USF-XSim-69] 'compile' step finished in '3' seconds
+Command: launch_simulation -step elaborate -simset sim_1 -mode behavioral
+INFO: [Vivado 12-12493] Simulation top is 'tb_firUnit'
+INFO: [Vivado 12-5698] Checking validity of IPs in the design for the 'XSim' simulator...
+INFO: [Vivado 12-5682] Launching behavioral simulation in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+INFO: [Vivado 12-4795] Using compiled simulation libraries for IPs
+INFO: [SIM-utils-51] Simulation object is 'sim_1'
+INFO: [USF-XSim-3] XSim::Elaborate design
+INFO: [USF-XSim-61] Executing 'ELABORATE' step in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+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
+Vivado Simulator v2024.1
+Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
+Running: /usr/home/enstb1/MEE/Xilinx/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
+Completed static elaboration
+INFO: [XSIM 43-4323] No Change in HDL. Linking previously generated obj files to create kernel
+INFO: [USF-XSim-69] 'elaborate' step finished in '2' seconds
+Time resolution is 1 ps
+ERROR: Index 16 out of bound 0 to 15
+Time: 275 ns  Iteration: 1  Process: /tb_firUnit/firUnit_1/operativeUnit_1/line__119
+  File: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd
+
+HDL Line: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:119
+relaunch_sim: Time (s): cpu = 00:00:04 ; elapsed = 00:00:06 . Memory (MB): peak = 10435.938 ; gain = 0.000 ; free physical = 5855 ; free virtual = 14628
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+close_sim
+INFO: [Simtcl 6-16] Simulation closed
+launch_simulation
+Command: launch_simulation 
+INFO: [Vivado 12-12493] Simulation top is 'tb_firUnit'
+INFO: [Vivado 12-5698] Checking validity of IPs in the design for the 'XSim' simulator...
+INFO: [Vivado 12-5682] Launching behavioral simulation in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+INFO: [Vivado 12-4795] Using compiled simulation libraries for IPs
+INFO: [SIM-utils-51] Simulation object is 'sim_1'
+INFO: [SIM-utils-72] Using boost library from '/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/tps/boost_1_72_0'
+INFO: [USF-XSim-7] Finding pre-compiled libraries...
+INFO: [USF-XSim-11] File '/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/xsim/xsim.ini' copied to run dir:'/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+INFO: [SIM-utils-54] Inspecting design source files for 'tb_firUnit' in fileset 'sim_1'...
+INFO: [USF-XSim-97] Finding global include files...
+INFO: [USF-XSim-98] Fetching design files from 'sim_1'...
+INFO: [USF-XSim-2] XSim::Compile design
+INFO: [USF-XSim-61] Executing 'COMPILE and ANALYZE' step in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+xvlog --incr --relax -prj tb_firUnit_vlog.prj
+xvhdl --incr --relax -prj tb_firUnit_vhdl.prj
+INFO: [VRFC 10-163] Analyzing VHDL file "/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd" into library xil_defaultlib
+INFO: [VRFC 10-3107] analyzing entity 'operativeUnit'
+INFO: [VRFC 10-163] Analyzing VHDL file "/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd" into library xil_defaultlib
+INFO: [VRFC 10-3107] analyzing entity 'firUnit'
+INFO: [VRFC 10-163] Analyzing VHDL file "/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/tb_firUnit.vhd" into library xil_defaultlib
+INFO: [VRFC 10-3107] analyzing entity 'tb_firUnit'
+Waiting for jobs to finish...
+No pending jobs, compilation finished.
+INFO: [USF-XSim-69] 'compile' step finished in '3' seconds
+INFO: [USF-XSim-3] XSim::Elaborate design
+INFO: [USF-XSim-61] Executing 'ELABORATE' step in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+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
+Vivado Simulator v2024.1
+Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
+Running: /usr/home/enstb1/MEE/Xilinx/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
+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 module xil_defaultlib.glbl
+Compiling architecture archi_operativeunit of entity xil_defaultlib.controlUnit [controlunit_default]
+Compiling architecture arch_operativeunit of entity xil_defaultlib.operativeUnit [operativeunit_default]
+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
+INFO: [USF-XSim-69] 'elaborate' step finished in '2' seconds
+INFO: [USF-XSim-4] XSim::Simulate design
+INFO: [USF-XSim-61] Executing 'SIMULATE' step in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+INFO: [USF-XSim-98] *** Running xsim
+   with args "tb_firUnit_behav -key {Behavioral:sim_1:Functional:tb_firUnit} -tclbatch {tb_firUnit.tcl} -log {simulate.log}"
+INFO: [USF-XSim-8] Loading simulator feature
+Time resolution is 1 ps
+source tb_firUnit.tcl
+# 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
+ERROR: Index 16 out of bound 0 to 15
+Time: 275 ns  Iteration: 1  Process: /tb_firUnit/firUnit_1/operativeUnit_1/line__119
+  File: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd
+
+HDL Line: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:119
+INFO: [USF-XSim-96] XSim completed. Design snapshot 'tb_firUnit_behav' loaded.
+INFO: [USF-XSim-97] XSim simulation ran for 1000ns
+launch_simulation: Time (s): cpu = 00:00:07 ; elapsed = 00:00:08 . Memory (MB): peak = 10475.977 ; gain = 0.000 ; free physical = 5280 ; free virtual = 14605
+current_wave_config {Untitled 3}
+Untitled 3
+add_wave {{/tb_firUnit/firUnit_1/operativeUnit_1/O_processingDone}} {{/tb_firUnit/firUnit_1/operativeUnit_1/O_Y}} {{/tb_firUnit/firUnit_1/operativeUnit_1/SR_coefRegister}} {{/tb_firUnit/firUnit_1/operativeUnit_1/SR_shiftRegister}} {{/tb_firUnit/firUnit_1/operativeUnit_1/SC_multOperand1}} {{/tb_firUnit/firUnit_1/operativeUnit_1/SC_multOperand2}} {{/tb_firUnit/firUnit_1/operativeUnit_1/SC_MultResult}} {{/tb_firUnit/firUnit_1/operativeUnit_1/SC_addResult}} {{/tb_firUnit/firUnit_1/operativeUnit_1/SR_sum}} {{/tb_firUnit/firUnit_1/operativeUnit_1/SR_Y}} 
+relaunch_sim
+Command: launch_simulation -step compile -simset sim_1 -mode behavioral
+INFO: [Vivado 12-12493] Simulation top is 'tb_firUnit'
+INFO: [Vivado 12-5698] Checking validity of IPs in the design for the 'XSim' simulator...
+INFO: [Vivado 12-5682] Launching behavioral simulation in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+INFO: [Vivado 12-4795] Using compiled simulation libraries for IPs
+INFO: [SIM-utils-51] Simulation object is 'sim_1'
+INFO: [USF-XSim-2] XSim::Compile design
+INFO: [USF-XSim-61] Executing 'COMPILE and ANALYZE' step in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+xvlog --incr --relax -prj tb_firUnit_vlog.prj
+xvhdl --incr --relax -prj tb_firUnit_vhdl.prj
+Waiting for jobs to finish...
+No pending jobs, compilation finished.
+INFO: [USF-XSim-69] 'compile' step finished in '3' seconds
+Command: launch_simulation -step elaborate -simset sim_1 -mode behavioral
+INFO: [Vivado 12-12493] Simulation top is 'tb_firUnit'
+INFO: [Vivado 12-5698] Checking validity of IPs in the design for the 'XSim' simulator...
+INFO: [Vivado 12-5682] Launching behavioral simulation in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+INFO: [Vivado 12-4795] Using compiled simulation libraries for IPs
+INFO: [SIM-utils-51] Simulation object is 'sim_1'
+INFO: [USF-XSim-3] XSim::Elaborate design
+INFO: [USF-XSim-61] Executing 'ELABORATE' step in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+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
+Vivado Simulator v2024.1
+Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
+Running: /usr/home/enstb1/MEE/Xilinx/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
+Completed static elaboration
+INFO: [XSIM 43-4323] No Change in HDL. Linking previously generated obj files to create kernel
+INFO: [USF-XSim-69] 'elaborate' step finished in '3' seconds
+Time resolution is 1 ps
+ERROR: Index 16 out of bound 0 to 15
+Time: 275 ns  Iteration: 1  Process: /tb_firUnit/firUnit_1/operativeUnit_1/line__119
+  File: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd
+
+HDL Line: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:119
+relaunch_sim: Time (s): cpu = 00:00:05 ; elapsed = 00:00:07 . Memory (MB): peak = 10475.977 ; gain = 0.000 ; free physical = 5358 ; free virtual = 14631
+current_wave_config {Untitled 3}
+Untitled 3
+add_wave {{/tb_firUnit/firUnit_1/operativeUnit_1/I_loadY}} 
+relaunch_sim
+Command: launch_simulation -step compile -simset sim_1 -mode behavioral
+INFO: [Vivado 12-12493] Simulation top is 'tb_firUnit'
+INFO: [Vivado 12-5698] Checking validity of IPs in the design for the 'XSim' simulator...
+INFO: [Vivado 12-5682] Launching behavioral simulation in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+INFO: [Vivado 12-4795] Using compiled simulation libraries for IPs
+INFO: [SIM-utils-51] Simulation object is 'sim_1'
+INFO: [USF-XSim-2] XSim::Compile design
+INFO: [USF-XSim-61] Executing 'COMPILE and ANALYZE' step in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+xvlog --incr --relax -prj tb_firUnit_vlog.prj
+xvhdl --incr --relax -prj tb_firUnit_vhdl.prj
+Waiting for jobs to finish...
+No pending jobs, compilation finished.
+INFO: [USF-XSim-69] 'compile' step finished in '3' seconds
+Command: launch_simulation -step elaborate -simset sim_1 -mode behavioral
+INFO: [Vivado 12-12493] Simulation top is 'tb_firUnit'
+INFO: [Vivado 12-5698] Checking validity of IPs in the design for the 'XSim' simulator...
+INFO: [Vivado 12-5682] Launching behavioral simulation in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+INFO: [Vivado 12-4795] Using compiled simulation libraries for IPs
+INFO: [SIM-utils-51] Simulation object is 'sim_1'
+INFO: [USF-XSim-3] XSim::Elaborate design
+INFO: [USF-XSim-61] Executing 'ELABORATE' step in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+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
+Vivado Simulator v2024.1
+Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
+Running: /usr/home/enstb1/MEE/Xilinx/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
+Completed static elaboration
+INFO: [XSIM 43-4323] No Change in HDL. Linking previously generated obj files to create kernel
+INFO: [USF-XSim-69] 'elaborate' step finished in '1' seconds
+Time resolution is 1 ps
+ERROR: Index 16 out of bound 0 to 15
+Time: 275 ns  Iteration: 1  Process: /tb_firUnit/firUnit_1/operativeUnit_1/line__119
+  File: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd
+
+HDL Line: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:119
+relaunch_sim: Time (s): cpu = 00:00:05 ; elapsed = 00:00:06 . Memory (MB): peak = 10475.977 ; gain = 0.000 ; free physical = 5219 ; free virtual = 14494
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+relaunch_sim
+Command: launch_simulation -step compile -simset sim_1 -mode behavioral
+INFO: [Vivado 12-12493] Simulation top is 'tb_firUnit'
+INFO: [Vivado 12-5698] Checking validity of IPs in the design for the 'XSim' simulator...
+INFO: [Vivado 12-5682] Launching behavioral simulation in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+INFO: [Vivado 12-4795] Using compiled simulation libraries for IPs
+INFO: [SIM-utils-51] Simulation object is 'sim_1'
+INFO: [USF-XSim-2] XSim::Compile design
+INFO: [USF-XSim-61] Executing 'COMPILE and ANALYZE' step in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+xvlog --incr --relax -prj tb_firUnit_vlog.prj
+xvhdl --incr --relax -prj tb_firUnit_vhdl.prj
+INFO: [VRFC 10-163] Analyzing VHDL file "/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd" into library xil_defaultlib
+INFO: [VRFC 10-3107] analyzing entity 'operativeUnit'
+INFO: [VRFC 10-163] Analyzing VHDL file "/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd" into library xil_defaultlib
+INFO: [VRFC 10-3107] analyzing entity 'firUnit'
+INFO: [VRFC 10-163] Analyzing VHDL file "/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/tb_firUnit.vhd" into library xil_defaultlib
+INFO: [VRFC 10-3107] analyzing entity 'tb_firUnit'
+Waiting for jobs to finish...
+No pending jobs, compilation finished.
+INFO: [USF-XSim-69] 'compile' step finished in '3' seconds
+Command: launch_simulation -step elaborate -simset sim_1 -mode behavioral
+INFO: [Vivado 12-12493] Simulation top is 'tb_firUnit'
+INFO: [Vivado 12-5698] Checking validity of IPs in the design for the 'XSim' simulator...
+INFO: [Vivado 12-5682] Launching behavioral simulation in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+INFO: [Vivado 12-4795] Using compiled simulation libraries for IPs
+INFO: [SIM-utils-51] Simulation object is 'sim_1'
+INFO: [USF-XSim-3] XSim::Elaborate design
+INFO: [USF-XSim-61] Executing 'ELABORATE' step in '/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/AudioProc.sim/sim_1/behav/xsim'
+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
+Vivado Simulator v2024.1
+Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
+Running: /usr/home/enstb1/MEE/Xilinx/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
+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 module xil_defaultlib.glbl
+Compiling architecture archi_operativeunit of entity xil_defaultlib.controlUnit [controlunit_default]
+Compiling architecture arch_operativeunit of entity xil_defaultlib.operativeUnit [operativeunit_default]
+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
+INFO: [USF-XSim-69] 'elaborate' step finished in '2' seconds
+Time resolution is 1 ps
+relaunch_sim: Time (s): cpu = 00:00:04 ; elapsed = 00:00:06 . Memory (MB): peak = 10493.980 ; gain = 0.000 ; free physical = 5240 ; free virtual = 14560
+current_wave_config {Untitled 3}
+Untitled 3
+add_wave {{/tb_firUnit/firUnit_1/operativeUnit_1/SR_readAddress}} 
+restart
+INFO: [Wavedata 42-604] Simulation restarted
+run 10 us
+save_wave_config {/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/tb_firUnit_behav.wcfg}
+add_files -fileset sim_1 -norecurse /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/tb_firUnit_behav.wcfg
+set_property xsim.view /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/proj/tb_firUnit_behav.wcfg [get_filesets sim_1]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/controlUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/firUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+WARNING: [filemgmt 56-199] Attempt to get parsing info during refresh. "On-the-fly" syntax checking information may be incorrect. [/homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/src/hdl/operativeUnit.vhd:]
+close_sim
+INFO: [Simtcl 6-16] Simulation closed
+exit
+INFO: [Common 17-206] Exiting Vivado at Wed Feb 26 12:29:33 2025...
diff --git a/src/hdl/controlUnit.vhd b/src/hdl/controlUnit.vhd
index 705905d..c5cc141 100644
--- a/src/hdl/controlUnit.vhd
+++ b/src/hdl/controlUnit.vhd
@@ -49,34 +49,62 @@ architecture archi_operativeUnit of controlUnit is
 
 begin
 
-  process (_BLANK_) is
-  begin
-    if I_reset = '1' then               -- asynchronous reset (active high)
-      SR_presentState <= _BLANK_
-    elsif rising_edge(I_clock) then     -- rising clock edge
-      _BLANK_
-    end if;
-  end process;
-
-  process (_BLANK_) is
-  begin
-    case SR_presentState is
-
-      when WAIT_SAMPLE =>
-        _BLANK_
-
-      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_ ;
 
+  process (I_clock, I_reset) is
+    begin
+      if I_reset = '1' then               -- asynchronous reset (active high)
+        SR_presentState <= WAIT_SAMPLE;
+      elsif rising_edge(I_clock) then     -- rising clock edge
+        SR_presentState <= SR_futurState;
+      end if;
+    end process;
+  
+ 
+  -- Next state logic process
+  process (SR_presentState, I_inputSampleValid, I_processingDone) is
+    begin
+      case SR_presentState is
+  
+        when WAIT_SAMPLE =>
+          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 =>
+          SR_futurState <= WAIT_SAMPLE;
+      end case;
+    end process;
+  
+  -- Output logic
+  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 <= _BLANK_;
 
 
 
diff --git a/src/hdl/operativeUnit.vhd b/src/hdl/operativeUnit.vhd
index 1286aff..fe1c926 100644
--- a/src/hdl/operativeUnit.vhd
+++ b/src/hdl/operativeUnit.vhd
@@ -85,42 +85,62 @@ begin
                       to_signed(2, 8)
                       );
 
-  shift : process (_BLANK_) is
+  shift : process (I_reset, I_clock) is
   begin  -- process shift
     if I_reset = '1' then               -- asynchronous reset (active high)
       SR_shiftRegister <= (others => (others => '0'));
-    elsif _BLANK_
-
+    elsif Rising_edge(I_clock) then
+      if I_loadShift = '1' then
+        for i in 1 to 15 loop
+          SR_shiftRegister(i) <= SR_shiftRegister(i-1);
+        end loop;
+        SR_shiftRegister(0) <= signed(I_inputSample);
+      end if;
     end if;
-  end process shift;
+  end process shift ;
+
+  
 
-  incr_address : process (_BLANK_) is
+  incr_address : process (I_reset, I_clock) is
   begin
     if I_reset = '1' then               -- asynchronous reset (active high)
       SR_readAddress <= 0;
-    elsif _BLANK_
-
+    elsif Rising_edge(I_clock) then
+      if I_initAddress = '1' then
+        SR_readAddress <= 0;
+      elsif I_incrAddress = '1' and SR_readAddress <= 15 then
+        SR_readAddress <= SR_readAddress + 1;
+      end if;
     end if;
   end process incr_address;
 
-  O_processingDone <= '1' when _BLANK_ ;
+  O_processingDone <= '1' when SR_readAddress = 14 else '0';
 
-  SC_multOperand1 <= _BLANK_ ;   -- 8 bits
-  SC_multOperand2 <= _BLANK_ ;    -- 8 bits
-  SC_MultResult   <= _BLANK_ ;  -- 16 bits
+  SC_multOperand1 <= SR_shiftRegister(SR_readAddress);   -- 8 bits
+  SC_multOperand2 <= SR_coefRegister(SR_readAddress);    -- 8 bits
+  SC_MultResult   <= SC_multOperand1 * SC_multOperand2;  -- 16 bits
   SC_addResult    <= resize(SC_MultResult, SC_addResult'length) + SR_sum;
 
-  sum_acc : process (_BLANK_) is
+  sum_acc : process (I_reset, I_clock) is
   begin
     if I_reset = '1' then               -- asynchronous reset (active high)
       SR_sum <= (others => '0');
-    elsif _BLANK_
+    elsif Rising_edge(I_clock) then
+      if I_initSum = '1' then
+        SR_sum <= (others => '0');
+      elsif I_loadSum = '1' then
+        SR_sum <= SC_addResult;
+      end if;
     end if;
   end process sum_acc;
 
-  store_result : process (_BLANK_) is
+  store_result : process (I_clock) is
   begin
-      _BLANK_
+    if Rising_edge(I_clock) then
+      if I_loadY = '1' then
+        SR_Y <= signed(resize(SC_addResult, SR_Y'length));
+      end if;
+    end if;
 
   end process store_result;
 
diff --git a/src/ip/clk_wiz_0/clk_wiz_0.dcp b/src/ip/clk_wiz_0/clk_wiz_0.dcp
index 1df5ec10a4ff9e7c1b2e8c55ee8f41698941ff5f..f726fa3af1501226fc8fa1c14219391554de4aa4 100644
GIT binary patch
literal 13383
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

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..50ae032 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,458 +859,665 @@
           </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:name>CLK_OUT3</spirit:name>
           </spirit:logicalPort>
           <spirit:physicalPort>
-            <spirit:name>clkfb_out</spirit:name>
+            <spirit:name>clk_out3</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:parameters>
+        <spirit:parameter>
+          <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>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:parameter>
+          <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: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>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: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_N</spirit:name>
+            <spirit:name>CLK_OUT4</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:logicalPort>
-          <spirit:physicalPort>
-            <spirit:name>reset</spirit:name>
+            <spirit:name>clk_out4</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_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>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_OUT4.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_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: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: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_vhdlinstantiationtemplate_view_fileset</spirit:localName>
+          <spirit:localName>xilinx_anylanguagebehavioralsimulation_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:name>GENtimestamp</spirit:name>
+            <spirit:value>Wed Feb 26 10:52:59 UTC 2025</spirit:value>
           </spirit:parameter>
           <spirit:parameter>
-            <spirit:name>boundaryCRCversion</spirit:name>
-            <spirit:value>1</spirit:value>
+            <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>Fri Jan 22 01:11:32 UTC 2016</spirit:value>
+            <spirit:value>Wed Feb 26 10:52:59 UTC 2025</spirit:value>
           </spirit:parameter>
           <spirit:parameter>
-            <spirit:name>StaleAtRelink</spirit:name>
-            <spirit:value>false</spirit:value>
+            <spirit:name>outputProductCRC</spirit:name>
+            <spirit:value>9:19cc2464</spirit:value>
           </spirit:parameter>
         </spirit:parameters>
       </spirit:view>
@@ -920,33 +1525,18 @@
         <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>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:value>Wed Feb 26 10:52:59 UTC 2025</spirit:value>
           </spirit:parameter>
           <spirit:parameter>
-            <spirit:name>StaleAtRelink</spirit:name>
-            <spirit:value>false</spirit:value>
+            <spirit:name>outputProductCRC</spirit:name>
+            <spirit:value>9:72f46ee5</spirit:value>
           </spirit:parameter>
         </spirit:parameters>
       </spirit:view>
@@ -954,101 +1544,47 @@
         <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>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:value>Wed Feb 26 10:52:59 UTC 2025</spirit:value>
           </spirit:parameter>
           <spirit:parameter>
-            <spirit:name>StaleAtRelink</spirit:name>
-            <spirit:value>false</spirit:value>
+            <spirit:name>outputProductCRC</spirit:name>
+            <spirit:value>9:72f46ee5</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: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>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:name>outputProductCRC</spirit:name>
+            <spirit:value>9:8ebd4ae1</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: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_anylanguagesimulationwrapper_view_fileset</spirit:localName>
+          <spirit:localName>xilinx_externalfiles_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:value>Wed Feb 26 10:54:28 UTC 2025</spirit:value>
           </spirit:parameter>
           <spirit:parameter>
-            <spirit:name>StaleAtRelink</spirit:name>
-            <spirit:value>false</spirit:value>
+            <spirit:name>outputProductCRC</spirit:name>
+            <spirit:value>9:72f46ee5</spirit:value>
           </spirit:parameter>
         </spirit:parameters>
       </spirit:view>
@@ -1061,28 +1597,23 @@
         </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:name>GENtimestamp</spirit:name>
+            <spirit:value>Wed Feb 26 10:53:00 UTC 2025</spirit:value>
           </spirit:parameter>
           <spirit:parameter>
-            <spirit:name>GENtimestamp</spirit:name>
-            <spirit:value>Fri Jan 22 01:11:33 UTC 2016</spirit:value>
+            <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>StaleAtRelink</spirit:name>
-            <spirit:value>false</spirit:value>
+            <spirit:name>outputProductCRC</spirit:name>
+            <spirit:value>9:72f46ee5</spirit:value>
           </spirit:parameter>
         </spirit:parameters>
       </spirit:view>
@@ -1094,63 +1625,33 @@
           <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:value>Wed Feb 26 10:53:00 UTC 2025</spirit:value>
           </spirit:parameter>
           <spirit:parameter>
-            <spirit:name>StaleAtRelink</spirit:name>
-            <spirit:value>false</spirit:value>
+            <spirit:name>outputProductCRC</spirit:name>
+            <spirit:value>9:72f46ee5</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: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_externalfiles_view_fileset</spirit:localName>
+          <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:13:26 UTC 2016</spirit:value>
+            <spirit:value>Wed Feb 26 10:52:50 UTC 2025</spirit:value>
           </spirit:parameter>
           <spirit:parameter>
-            <spirit:name>StaleAtRelink</spirit:name>
-            <spirit:value>false</spirit:value>
+            <spirit:name>outputProductCRC</spirit:name>
+            <spirit:value>9:72f46ee5</spirit:value>
           </spirit:parameter>
         </spirit:parameters>
       </spirit:view>
@@ -1180,705 +1681,7 @@
         </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:port>
-        <spirit:name>clkfb_in_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.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:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
-      </spirit:port>
-      <spirit:port>
-        <spirit:name>clkfb_in_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.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:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
-      </spirit:port>
-      <spirit:port>
-        <spirit:name>daddr</spirit:name>
-        <spirit:wire>
-          <spirit:direction>in</spirit:direction>
-          <spirit:vector>
-            <spirit:left spirit:format="long">6</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.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:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
-      </spirit:port>
-      <spirit:port>
-        <spirit:name>dclk</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.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:enablement>
-          </xilinx:portInfo>
-        </spirit:vendorExtensions>
-      </spirit:port>
-      <spirit:port>
-        <spirit:name>den</spirit:name>
+        <spirit:name>s_axi_aresetn</spirit:name>
         <spirit:wire>
           <spirit:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
@@ -1895,17 +1698,17 @@
         <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_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>din</spirit:name>
+        <spirit:name>s_axi_awaddr</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_ADDR_WIDTH&apos;)) - 1)">10</spirit:left>
             <spirit:right spirit:format="long">0</spirit:right>
           </spirit:vector>
           <spirit:wireTypeDefs>
@@ -1922,37 +1725,36 @@
         <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: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>dout</spirit:name>
+        <spirit:name>s_axi_awvalid</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:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
             <spirit:wireTypeDef>
-              <spirit:typeName>std_logic_vector</spirit:typeName>
+              <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.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: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>drdy</spirit:name>
+        <spirit:name>s_axi_awready</spirit:name>
         <spirit:wire>
           <spirit:direction>out</spirit:direction>
           <spirit:wireTypeDefs>
@@ -1966,18 +1768,22 @@
         <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_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>dwe</spirit:name>
+        <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</spirit:typeName>
+              <spirit:typeName>std_logic_vector</spirit:typeName>
               <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
               <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
             </spirit:wireTypeDef>
@@ -1989,18 +1795,22 @@
         <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_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>psclk</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>
@@ -2012,13 +1822,13 @@
         <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_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>psen</spirit:name>
+        <spirit:name>s_axi_wvalid</spirit:name>
         <spirit:wire>
           <spirit:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2035,15 +1845,15 @@
         <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_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>psincdec</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>
@@ -2051,25 +1861,26 @@
               <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_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>psdone</spirit:name>
+        <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</spirit:typeName>
+              <spirit:typeName>std_logic_vector</spirit:typeName>
               <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
               <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
             </spirit:wireTypeDef>
@@ -2078,13 +1889,13 @@
         <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_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>clk_out1</spirit:name>
+        <spirit:name>s_axi_bvalid</spirit:name>
         <spirit:wire>
           <spirit:direction>out</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2095,9 +1906,16 @@
             </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>clk_out1_ce</spirit:name>
+        <spirit:name>s_axi_bready</spirit:name>
         <spirit:wire>
           <spirit:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2114,18 +1932,22 @@
         <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_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_clr</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>
@@ -2137,15 +1959,15 @@
         <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_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_out2</spirit:name>
+        <spirit:name>s_axi_arvalid</spirit:name>
         <spirit:wire>
-          <spirit:direction>out</spirit:direction>
+          <spirit:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
             <spirit:wireTypeDef>
               <spirit:typeName>std_logic</spirit:typeName>
@@ -2153,19 +1975,22 @@
               <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" 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_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_ce</spirit:name>
+        <spirit:name>s_axi_arready</spirit:name>
         <spirit:wire>
-          <spirit:direction>in</spirit:direction>
+          <spirit:direction>out</spirit:direction>
           <spirit:wireTypeDefs>
             <spirit:wireTypeDef>
               <spirit:typeName>std_logic</spirit:typeName>
@@ -2173,48 +1998,50 @@
               <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_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_clr</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_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_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_out3</spirit:name>
+        <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</spirit:typeName>
+              <spirit:typeName>std_logic_vector</spirit:typeName>
               <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
               <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
             </spirit:wireTypeDef>
@@ -2223,15 +2050,15 @@
         <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_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_ce</spirit:name>
+        <spirit:name>s_axi_rvalid</spirit:name>
         <spirit:wire>
-          <spirit:direction>in</spirit:direction>
+          <spirit:direction>out</spirit:direction>
           <spirit:wireTypeDefs>
             <spirit:wireTypeDef>
               <spirit:typeName>std_logic</spirit:typeName>
@@ -2239,20 +2066,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_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_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_clr</spirit:name>
+        <spirit:name>s_axi_rready</spirit:name>
         <spirit:wire>
           <spirit:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2269,15 +2093,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.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_out4</spirit:name>
+        <spirit:name>clk_in1_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>
@@ -2285,17 +2109,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_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_ce</spirit:name>
+        <spirit:name>clk_in1_n</spirit:name>
         <spirit:wire>
           <spirit:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2312,13 +2139,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_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_clr</spirit:name>
+        <spirit:name>clk_in2_p</spirit:name>
         <spirit:wire>
           <spirit:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2335,15 +2162,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_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_out5</spirit:name>
+        <spirit:name>clk_in2_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>
@@ -2351,17 +2178,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.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_ce</spirit:name>
+        <spirit:name>clkfb_in_p</spirit:name>
         <spirit:wire>
           <spirit:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2378,13 +2208,13 @@
         <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_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_clr</spirit:name>
+        <spirit:name>clkfb_in_n</spirit:name>
         <spirit:wire>
           <spirit:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2401,13 +2231,13 @@
         <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_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_out6</spirit:name>
+        <spirit:name>clkfb_out_p</spirit:name>
         <spirit:wire>
           <spirit:direction>out</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2421,15 +2251,15 @@
         <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_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_ce</spirit:name>
+        <spirit:name>clkfb_out_n</spirit:name>
         <spirit:wire>
-          <spirit:direction>in</spirit:direction>
+          <spirit:direction>out</spirit:direction>
           <spirit:wireTypeDefs>
             <spirit:wireTypeDef>
               <spirit:typeName>std_logic</spirit:typeName>
@@ -2437,20 +2267,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_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.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_clr</spirit:name>
+        <spirit:name>reset</spirit:name>
         <spirit:wire>
           <spirit:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2467,15 +2294,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.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_out7</spirit:name>
+        <spirit:name>resetn</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,17 +2310,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_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.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_ce</spirit:name>
+        <spirit:name>ref_clk</spirit:name>
         <spirit:wire>
           <spirit:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2510,18 +2340,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.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_clr</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>
@@ -2533,33 +2367,40 @@
         <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_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>clkfb_out</spirit:name>
+        <spirit:name>clk_glitch</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" 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.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_p</spirit:name>
+        <spirit:name>interrupt</spirit:name>
         <spirit:wire>
           <spirit:direction>out</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2569,37 +2410,47 @@
               <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.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_n</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_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.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>reset</spirit:name>
+        <spirit:name>user_clk0</spirit:name>
         <spirit:wire>
           <spirit:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2616,13 +2467,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_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>resetn</spirit:name>
+        <spirit:name>user_clk1</spirit:name>
         <spirit:wire>
           <spirit:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2639,13 +2490,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_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>power_down</spirit:name>
+        <spirit:name>user_clk2</spirit:name>
         <spirit:wire>
           <spirit:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2662,15 +2513,15 @@
         <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_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>input_clk_stopped</spirit:name>
+        <spirit:name>user_clk3</spirit:name>
         <spirit:wire>
-          <spirit:direction>out</spirit:direction>
+          <spirit:direction>in</spirit:direction>
           <spirit:wireTypeDefs>
             <spirit:wireTypeDef>
               <spirit:typeName>std_logic</spirit:typeName>
@@ -2678,17 +2529,33 @@
               <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.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: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>clkfb_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>
@@ -2699,16 +2566,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_out2</spirit:name>
         <spirit:wire>
           <spirit:direction>out</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2719,16 +2579,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_out3</spirit:name>
         <spirit:wire>
           <spirit:direction>out</spirit:direction>
           <spirit:wireTypeDefs>
@@ -2739,18 +2592,24 @@
             </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>clk_out4</spirit:name>
         <spirit:wire>
-          <spirit:direction>in</spirit:direction>
+          <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:port>
+      <spirit:port>
+        <spirit:name>locked</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
           <spirit:wireTypeDefs>
             <spirit:wireTypeDef>
               <spirit:typeName>std_logic</spirit:typeName>
@@ -2758,17 +2617,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 +2625,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 +2761,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 +2817,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 +2916,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 +3028,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 +3192,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>
@@ -3526,198 +3439,463 @@
         <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PRIMARY_PORT" spirit:order="368">clk_in1</spirit:value>
       </spirit:modelParameter>
       <spirit:modelParameter spirit:dataType="STRING">
-        <spirit:name>C_SECONDARY_PORT</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_SECONDARY_PORT" spirit:order="369">clk_in2</spirit:value>
+        <spirit:name>C_SECONDARY_PORT</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_SECONDARY_PORT" spirit:order="369">clk_in2</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLK_OUT1_PORT</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLK_OUT1_PORT" spirit:order="370">clk_out1</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLK_OUT2_PORT</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLK_OUT2_PORT" spirit:order="371">clk_out2</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLK_OUT3_PORT</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLK_OUT3_PORT" spirit:order="372">clk_out3</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLK_OUT4_PORT</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLK_OUT4_PORT" spirit:order="373">clk_out4</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLK_OUT5_PORT</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLK_OUT5_PORT" spirit:order="374">clk_out5</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLK_OUT6_PORT</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLK_OUT6_PORT" spirit:order="375">clk_out6</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLK_OUT7_PORT</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLK_OUT7_PORT" spirit:order="376">clk_out7</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_RESET_PORT</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_RESET_PORT" spirit:order="377">reset</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_LOCKED_PORT</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_LOCKED_PORT" spirit:order="378">locked</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKFB_IN_PORT</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKFB_IN_PORT" spirit:order="379">clkfb_in</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKFB_IN_P_PORT</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKFB_IN_P_PORT" spirit:order="380">clkfb_in_p</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKFB_IN_N_PORT</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKFB_IN_N_PORT" spirit:order="381">clkfb_in_n</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKFB_OUT_PORT</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKFB_OUT_PORT" spirit:order="382">clkfb_out</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKFB_OUT_P_PORT</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKFB_OUT_P_PORT" spirit:order="383">clkfb_out_p</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKFB_OUT_N_PORT</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKFB_OUT_N_PORT" spirit:order="384">clkfb_out_n</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_POWER_DOWN_PORT</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_POWER_DOWN_PORT" spirit:order="385">power_down</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_DADDR_PORT</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_DADDR_PORT" spirit:order="386">daddr</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_DCLK_PORT</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_DCLK_PORT" spirit:order="387">dclk</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_DRDY_PORT</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_DRDY_PORT" spirit:order="388">drdy</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_DWE_PORT</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_DWE_PORT" spirit:order="389">dwe</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_DIN_PORT</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_DIN_PORT" spirit:order="390">din</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_DOUT_PORT</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_DOUT_PORT" spirit:order="391">dout</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_DEN_PORT</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_DEN_PORT" spirit:order="392">den</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_PSCLK_PORT</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PSCLK_PORT" spirit:order="393">psclk</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_PSEN_PORT</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PSEN_PORT" spirit:order="394">psen</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_PSINCDEC_PORT</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PSINCDEC_PORT" spirit:order="395">psincdec</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_PSDONE_PORT</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PSDONE_PORT" spirit:order="396">psdone</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLK_VALID_PORT</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLK_VALID_PORT" spirit:order="397">CLK_VALID</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_STATUS_PORT</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_STATUS_PORT" spirit:order="398">STATUS</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLK_IN_SEL_PORT</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLK_IN_SEL_PORT" spirit:order="399">clk_in_sel</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_INPUT_CLK_STOPPED_PORT</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_INPUT_CLK_STOPPED_PORT" spirit:order="400">input_clk_stopped</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKFB_STOPPED_PORT</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKFB_STOPPED_PORT" spirit:order="401">clkfb_stopped</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKIN1_JITTER_PS</spirit:name>
+        <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKIN1_JITTER_PS" spirit:order="402">100.0</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKIN2_JITTER_PS</spirit:name>
+        <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKIN2_JITTER_PS" spirit:order="403">100.0</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_PRIMITIVE</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PRIMITIVE" spirit:order="404">MMCM</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_SS_MODE</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_SS_MODE" spirit:order="405">CENTER_HIGH</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="INTEGER">
+        <spirit:name>C_SS_MOD_PERIOD</spirit:name>
+        <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_SS_MOD_PERIOD" spirit:order="406">4000</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_SS_MOD_TIME</spirit:name>
+        <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_SS_MOD_TIME" spirit:order="406.001">0.004</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="INTEGER">
+        <spirit:name>C_HAS_CDDC</spirit:name>
+        <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_HAS_CDDC" spirit:order="407">0</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CDDCDONE_PORT</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CDDCDONE_PORT" spirit:order="408">cddcdone</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CDDCREQ_PORT</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CDDCREQ_PORT" spirit:order="409">cddcreq</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="STRING">
+        <spirit:name>C_CLKOUTPHY_MODE</spirit:name>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUTPHY_MODE" spirit:order="410">VCO</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="INTEGER">
+        <spirit:name>C_ENABLE_CLKOUTPHY</spirit:name>
+        <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_ENABLE_CLKOUTPHY" spirit:order="411">0</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="INTEGER">
+        <spirit:name>C_INTERFACE_SELECTION</spirit:name>
+        <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_INTERFACE_SELECTION" spirit:order="412">0</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="INTEGER">
+        <spirit:name>C_S_AXI_ADDR_WIDTH</spirit:name>
+        <spirit:displayName>C S Axi Addr Width</spirit:displayName>
+        <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_S_AXI_ADDR_WIDTH" spirit:order="215" spirit:minimum="2" spirit:maximum="32" spirit:rangeType="long">11</spirit:value>
+      </spirit:modelParameter>
+      <spirit:modelParameter spirit:dataType="INTEGER">
+        <spirit:name>C_S_AXI_DATA_WIDTH</spirit:name>
+        <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_CLK_OUT1_PORT</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLK_OUT1_PORT" spirit:order="370">clk_out1</spirit:value>
+        <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_CLK_OUT2_PORT</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLK_OUT2_PORT" spirit:order="371">clk_out2</spirit:value>
+        <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_CLK_OUT3_PORT</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLK_OUT3_PORT" spirit:order="372">clk_out3</spirit:value>
+        <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_CLK_OUT4_PORT</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLK_OUT4_PORT" spirit:order="373">clk_out4</spirit:value>
+        <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_CLK_OUT5_PORT</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLK_OUT5_PORT" spirit:order="374">clk_out5</spirit:value>
+        <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_CLK_OUT6_PORT</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLK_OUT6_PORT" spirit:order="375">clk_out6</spirit:value>
+        <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_CLK_OUT7_PORT</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLK_OUT7_PORT" spirit:order="376">clk_out7</spirit:value>
+        <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_RESET_PORT</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_RESET_PORT" spirit:order="377">reset</spirit:value>
+        <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_LOCKED_PORT</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_LOCKED_PORT" spirit:order="378">locked</spirit:value>
+        <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_CLKFB_IN_PORT</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKFB_IN_PORT" spirit:order="379">clkfb_in</spirit:value>
+        <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_CLKFB_IN_P_PORT</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKFB_IN_P_PORT" spirit:order="380">clkfb_in_p</spirit:value>
+        <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_CLKFB_IN_N_PORT</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKFB_IN_N_PORT" spirit:order="381">clkfb_in_n</spirit:value>
+        <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_CLKFB_OUT_PORT</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKFB_OUT_PORT" spirit:order="382">clkfb_out</spirit:value>
+        <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_CLKFB_OUT_P_PORT</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKFB_OUT_P_PORT" spirit:order="383">clkfb_out_p</spirit:value>
+        <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_CLKFB_OUT_N_PORT</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKFB_OUT_N_PORT" spirit:order="384">clkfb_out_n</spirit:value>
+        <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_POWER_DOWN_PORT</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_POWER_DOWN_PORT" spirit:order="385">power_down</spirit:value>
+        <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_DADDR_PORT</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_DADDR_PORT" spirit:order="386">daddr</spirit:value>
+        <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_DCLK_PORT</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_DCLK_PORT" spirit:order="387">dclk</spirit:value>
+        <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_DRDY_PORT</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_DRDY_PORT" spirit:order="388">drdy</spirit:value>
+        <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_DWE_PORT</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_DWE_PORT" spirit:order="389">dwe</spirit:value>
+        <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_DIN_PORT</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_DIN_PORT" spirit:order="390">din</spirit:value>
+        <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_DOUT_PORT</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_DOUT_PORT" spirit:order="391">dout</spirit:value>
+        <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_DEN_PORT</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_DEN_PORT" spirit:order="392">den</spirit:value>
+        <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_PSCLK_PORT</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PSCLK_PORT" spirit:order="393">psclk</spirit:value>
+        <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_PSEN_PORT</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PSEN_PORT" spirit:order="394">psen</spirit:value>
+        <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_PSINCDEC_PORT</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PSINCDEC_PORT" spirit:order="395">psincdec</spirit:value>
+        <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_PSDONE_PORT</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PSDONE_PORT" spirit:order="396">psdone</spirit:value>
+        <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_CLK_VALID_PORT</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLK_VALID_PORT" spirit:order="397">CLK_VALID</spirit:value>
+        <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_STATUS_PORT</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_STATUS_PORT" spirit:order="398">STATUS</spirit:value>
+        <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_CLK_IN_SEL_PORT</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLK_IN_SEL_PORT" spirit:order="399">clk_in_sel</spirit:value>
+        <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_INPUT_CLK_STOPPED_PORT</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_INPUT_CLK_STOPPED_PORT" spirit:order="400">input_clk_stopped</spirit:value>
+        <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_CLKFB_STOPPED_PORT</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKFB_STOPPED_PORT" spirit:order="401">clkfb_stopped</spirit:value>
+        <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_CLKIN1_JITTER_PS</spirit:name>
-        <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKIN1_JITTER_PS" spirit:order="402">100.0</spirit:value>
+        <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_CLKIN2_JITTER_PS</spirit:name>
-        <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKIN2_JITTER_PS" spirit:order="403">100.0</spirit:value>
+        <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_PRIMITIVE</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PRIMITIVE" spirit:order="404">MMCM</spirit:value>
+        <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_SS_MODE</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_SS_MODE" spirit:order="405">CENTER_HIGH</spirit:value>
+        <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="INTEGER">
-        <spirit:name>C_SS_MOD_PERIOD</spirit:name>
-        <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_SS_MOD_PERIOD" spirit:order="406">4000</spirit:value>
+      <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_SS_MOD_TIME</spirit:name>
-        <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_SS_MOD_TIME" spirit:order="406.001">0.004</spirit:value>
+        <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="INTEGER">
-        <spirit:name>C_HAS_CDDC</spirit:name>
-        <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_HAS_CDDC" spirit:order="407">0</spirit:value>
+      <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_CDDCDONE_PORT</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CDDCDONE_PORT" spirit:order="408">cddcdone</spirit:value>
+        <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_CDDCREQ_PORT</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CDDCREQ_PORT" spirit:order="409">cddcreq</spirit:value>
+        <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_CLKOUTPHY_MODE</spirit:name>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUTPHY_MODE" spirit:order="410">VCO</spirit:value>
+        <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="INTEGER">
-        <spirit:name>C_ENABLE_CLKOUTPHY</spirit:name>
-        <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_ENABLE_CLKOUTPHY" spirit:order="411">0</spirit:value>
+      <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="INTEGER">
-        <spirit:name>C_INTERFACE_SELECTION</spirit:name>
-        <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_INTERFACE_SELECTION" spirit:order="412">0</spirit:value>
+      <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="INTEGER">
-        <spirit:name>C_S_AXI_ADDR_WIDTH</spirit:name>
-        <spirit:displayName>C S Axi Addr Width</spirit:displayName>
-        <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_S_AXI_ADDR_WIDTH" spirit:order="215" spirit:minimum="2" spirit:maximum="32" spirit:rangeType="long">11</spirit:value>
+      <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="INTEGER">
-        <spirit:name>C_S_AXI_DATA_WIDTH</spirit:name>
-        <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: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 +3947,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 +3973,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 +4025,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,46 +4098,51 @@
         <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:fileSet>
-    <spirit:fileSet>
-      <spirit:name>xilinx_anylanguagebehavioralsimulation_view_fileset</spirit:name>
       <spirit:file>
-        <spirit:name>clk_wiz_0_clk_wiz.v</spirit:name>
+        <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:fileSet>
-    <spirit:fileSet>
-      <spirit:name>xilinx_anylanguagesimulationwrapper_view_fileset</spirit:name>
       <spirit:file>
-        <spirit:name>clk_wiz_0.v</spirit:name>
+        <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:fileSet>
-    <spirit:fileSet>
-      <spirit:name>xilinx_implementation_view_fileset</spirit:name>
       <spirit:file>
-        <spirit:name>clk_wiz_0_board.xdc</spirit:name>
-        <spirit:userFileType>xdc</spirit:userFileType>
-        <spirit:userFileType>USED_IN_board</spirit:userFileType>
-        <spirit:userFileType>USED_IN_implementation</spirit:userFileType>
-        <spirit:userFileType>USED_IN_synthesis</spirit:userFileType>
+        <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: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_versioninformation_view_fileset</spirit:name>
+      <spirit:name>xilinx_anylanguagesynthesiswrapper_view_fileset</spirit:name>
       <spirit:file>
-        <spirit:name>doc/clk_wiz_v5_2_changelog.txt</spirit:name>
-        <spirit:userFileType>text</spirit:userFileType>
+        <spirit:name>clk_wiz_0.v</spirit:name>
+        <spirit:fileType>verilogSource</spirit:fileType>
       </spirit:file>
     </spirit:fileSet>
     <spirit:fileSet>
@@ -3937,6 +4181,30 @@
         <spirit:logicalName>xil_defaultlib</spirit:logicalName>
       </spirit:file>
     </spirit:fileSet>
+    <spirit:fileSet>
+      <spirit:name>xilinx_implementation_view_fileset</spirit:name>
+      <spirit:file>
+        <spirit:name>clk_wiz_0_board.xdc</spirit:name>
+        <spirit:userFileType>xdc</spirit:userFileType>
+        <spirit:userFileType>USED_IN_board</spirit:userFileType>
+        <spirit:userFileType>USED_IN_implementation</spirit:userFileType>
+        <spirit:userFileType>USED_IN_synthesis</spirit:userFileType>
+      </spirit:file>
+    </spirit:fileSet>
+    <spirit:fileSet>
+      <spirit:name>xilinx_versioninformation_view_fileset</spirit:name>
+      <spirit:file>
+        <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_vhdlinstantiationtemplate_view_fileset</spirit:name>
+      <spirit:file>
+        <spirit:name>clk_wiz_0.vho</spirit:name>
+        <spirit:userFileType>vhdlTemplate</spirit:userFileType>
+      </spirit:file>
+    </spirit:fileSet>
   </spirit:fileSets>
   <spirit:description>The Clocking Wizard creates an HDL file (Verilog or VHDL) that contains a clocking circuit customized to the user&apos;s clocking requirements.</spirit:description>
   <spirit:parameters>
@@ -3944,6 +4212,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 +4337,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 +4625,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 +4815,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 +4883,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 +4899,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 +4915,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 +4931,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 +4947,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 +4963,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 +5137,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 +5151,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 +5251,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 +5320,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
index e0a8184..65edb90 100644
--- a/src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.v
+++ b/src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.v
@@ -1,9 +1,11 @@
-// Copyright 1986-2015 Xilinx, Inc. All Rights Reserved.
+// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+// Copyright 2022-2024 Advanced Micro Devices, 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
+// Tool Version: Vivado v.2024.1 (lin64) Build 5076996 Wed May 22 18:36:09 MDT 2024
+// Date        : Wed Feb 26 11:54:28 2025
+// Host        : fl-tp-br-604 running 64-bit Ubuntu 24.04.1 LTS
+// Command     : write_verilog -force -mode funcsim
+//               /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/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.
@@ -11,23 +13,22 @@
 // --------------------------------------------------------------------------------
 `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_out1,
     clk_out2,
     clk_out3,
     clk_out4,
     reset,
-    locked);
-  input clk_in1;
+    locked,
+    clk_in1);
   output clk_out1;
   output clk_out2;
   output clk_out3;
   output clk_out4;
   input reset;
   output locked;
+  input clk_in1;
 
   (* IBUF_LOW_PWR *) wire clk_in1;
   wire clk_out1;
@@ -37,7 +38,7 @@ module clk_wiz_0
   wire locked;
   wire reset;
 
-  clk_wiz_0_clk_wiz_0_clk_wiz inst
+  clk_wiz_0_clk_wiz inst
        (.clk_in1(clk_in1),
         .clk_out1(clk_out1),
         .clk_out2(clk_out2),
@@ -47,22 +48,21 @@ module clk_wiz_0
         .reset(reset));
 endmodule
 
-(* ORIG_REF_NAME = "clk_wiz_0_clk_wiz" *) 
-module clk_wiz_0_clk_wiz_0_clk_wiz
-   (clk_in1,
-    clk_out1,
+module clk_wiz_0_clk_wiz
+   (clk_out1,
     clk_out2,
     clk_out3,
     clk_out4,
     reset,
-    locked);
-  input clk_in1;
+    locked,
+    clk_in1);
   output clk_out1;
   output clk_out2;
   output clk_out3;
   output clk_out4;
   input reset;
   output locked;
+  input clk_in1;
 
   wire clk_in1;
   wire clk_in1_clk_wiz_0;
@@ -214,12 +214,15 @@ 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;
 
@@ -232,6 +235,7 @@ module glbl ();
     reg GSR_int;
     reg GTS_int;
     reg PRLD_int;
+    reg GRESTORE_int;
 
 //--------   JTAG Globals --------------
     wire JTAG_TDO_GLBL;
@@ -256,9 +260,10 @@ module glbl ();
     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 (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;
@@ -274,5 +279,13 @@ module glbl ();
 	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/src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.vhdl b/src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.vhdl
index 84ae83d..1ca8b0e 100644
--- a/src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.vhdl
+++ b/src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.vhdl
@@ -1,9 +1,11 @@
--- Copyright 1986-2015 Xilinx, Inc. All Rights Reserved.
+-- Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+-- Copyright 2022-2024 Advanced Micro Devices, 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
+-- Tool Version: Vivado v.2024.1 (lin64) Build 5076996 Wed May 22 18:36:09 MDT 2024
+-- Date        : Wed Feb 26 11:54:28 2025
+-- Host        : fl-tp-br-604 running 64-bit Ubuntu 24.04.1 LTS
+-- Command     : write_vhdl -force -mode funcsim
+--               /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/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.
@@ -13,21 +15,19 @@ library IEEE;
 use IEEE.STD_LOGIC_1164.ALL;
 library UNISIM;
 use UNISIM.VCOMPONENTS.ALL;
-entity clk_wiz_0_clk_wiz_0_clk_wiz is
+entity 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
+    locked : out STD_LOGIC;
+    clk_in1 : in 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;
+end clk_wiz_0_clk_wiz;
 
-architecture STRUCTURE of clk_wiz_0_clk_wiz_0_clk_wiz is
+architecture STRUCTURE of 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;
@@ -189,23 +189,21 @@ 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
+    locked : out STD_LOGIC;
+    clk_in1 : in 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
+inst: entity work.clk_wiz_0_clk_wiz
      port map (
       clk_in1 => clk_in1,
       clk_out1 => clk_out1,
diff --git a/src/ip/clk_wiz_0/clk_wiz_0_stub.v b/src/ip/clk_wiz_0/clk_wiz_0_stub.v
index 3e730b7..88530c7 100644
--- a/src/ip/clk_wiz_0/clk_wiz_0_stub.v
+++ b/src/ip/clk_wiz_0/clk_wiz_0_stub.v
@@ -1,9 +1,11 @@
-// Copyright 1986-2015 Xilinx, Inc. All Rights Reserved.
+// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+// Copyright 2022-2024 Advanced Micro Devices, 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
+// Tool Version: Vivado v.2024.1 (lin64) Build 5076996 Wed May 22 18:36:09 MDT 2024
+// Date        : Wed Feb 26 11:54:28 2025
+// Host        : fl-tp-br-604 running 64-bit Ubuntu 24.04.1 LTS
+// Command     : write_verilog -force -mode synth_stub
+//               /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/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
@@ -12,13 +14,18 @@
 // 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;
+module clk_wiz_0(clk_out1, clk_out2, clk_out3, clk_out4, reset, 
+  locked, clk_in1)
+/* synthesis syn_black_box black_box_pad_pin="reset,locked,clk_in1" */
+/* synthesis syn_force_seq_prim="clk_out1" */
+/* synthesis syn_force_seq_prim="clk_out2" */
+/* synthesis syn_force_seq_prim="clk_out3" */
+/* synthesis syn_force_seq_prim="clk_out4" */;
+  output clk_out1 /* synthesis syn_isclock = 1 */;
+  output clk_out2 /* synthesis syn_isclock = 1 */;
+  output clk_out3 /* synthesis syn_isclock = 1 */;
+  output clk_out4 /* synthesis syn_isclock = 1 */;
   input reset;
   output locked;
+  input clk_in1;
 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
index 262c691..04dfc6c 100644
--- a/src/ip/clk_wiz_0/clk_wiz_0_stub.vhdl
+++ b/src/ip/clk_wiz_0/clk_wiz_0_stub.vhdl
@@ -1,9 +1,11 @@
--- Copyright 1986-2015 Xilinx, Inc. All Rights Reserved.
+-- Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+-- Copyright 2022-2024 Advanced Micro Devices, 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
+-- Tool Version: Vivado v.2024.1 (lin64) Build 5076996 Wed May 22 18:36:09 MDT 2024
+-- Date        : Wed Feb 26 11:54:28 2025
+-- Host        : fl-tp-br-604 running 64-bit Ubuntu 24.04.1 LTS
+-- Command     : write_vhdl -force -mode synth_stub
+--               /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/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
@@ -13,13 +15,13 @@ 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
+    locked : out STD_LOGIC;
+    clk_in1 : in STD_LOGIC
   );
 
 end clk_wiz_0;
@@ -28,6 +30,6 @@ 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";
+attribute black_box_pad_pin of stub : architecture is "clk_out1,clk_out2,clk_out3,clk_out4,reset,locked,clk_in1";
 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
+
diff --git a/vivado.jou b/vivado.jou
new file mode 100644
index 0000000..4057a4e
--- /dev/null
+++ b/vivado.jou
@@ -0,0 +1,25 @@
+#-----------------------------------------------------------
+# Vivado v2024.1 (64-bit)
+# SW Build 5076996 on Wed May 22 18:36:09 MDT 2024
+# IP Build 5075265 on Wed May 22 21:45:21 MDT 2024
+# SharedData Build 5076995 on Wed May 22 18:29:18 MDT 2024
+# Start of session at: Wed Feb 26 09:51:27 2025
+# Process ID: 9416
+# Current directory: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso
+# Command line: vivado
+# Log file: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/vivado.log
+# Journal file: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/vivado.jou
+# Running On        :fl-tp-br-604
+# Platform          :Ubuntu
+# Operating System  :Ubuntu 24.04.1 LTS
+# Processor Detail  :Intel(R) Core(TM) i5-10500 CPU @ 3.10GHz
+# CPU Frequency     :4294.632 MHz
+# CPU Physical cores:6
+# CPU Logical cores :12
+# Host memory       :16467 MB
+# Swap memory       :4294 MB
+# Total Virtual     :20762 MB
+# Available Virtual :17504 MB
+#-----------------------------------------------------------
+start_gui
+source ./proj/create_project.tcl
diff --git a/vivado.log b/vivado.log
new file mode 100644
index 0000000..5171770
--- /dev/null
+++ b/vivado.log
@@ -0,0 +1,97 @@
+#-----------------------------------------------------------
+# Vivado v2024.1 (64-bit)
+# SW Build 5076996 on Wed May 22 18:36:09 MDT 2024
+# IP Build 5075265 on Wed May 22 21:45:21 MDT 2024
+# SharedData Build 5076995 on Wed May 22 18:29:18 MDT 2024
+# Start of session at: Wed Feb 26 09:51:27 2025
+# Process ID: 9416
+# Current directory: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso
+# Command line: vivado
+# Log file: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/vivado.log
+# Journal file: /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso/vivado.jou
+# Running On        :fl-tp-br-604
+# Platform          :Ubuntu
+# Operating System  :Ubuntu 24.04.1 LTS
+# Processor Detail  :Intel(R) Core(TM) i5-10500 CPU @ 3.10GHz
+# CPU Frequency     :4294.632 MHz
+# CPU Physical cores:6
+# CPU Logical cores :12
+# Host memory       :16467 MB
+# Swap memory       :4294 MB
+# Total Virtual     :20762 MB
+# Available Virtual :17504 MB
+#-----------------------------------------------------------
+start_gui
+WARNING: [Board 49-26] cannot add Board Part xilinx.com:vek280_es:part0:1.0 available at /usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/xhub/boards/XilinxBoardStore/boards/Xilinx/vek280/es/rev_a/1.0/board.xml as part xcve2802-vsvh1760-2lp-e-s-es1 specified in board_part file is either invalid or not available
+WARNING: [Board 49-26] cannot add Board Part xilinx.com:vek280_es:part0:1.1 available at /usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/xhub/boards/XilinxBoardStore/boards/Xilinx/vek280/es/rev_a/1.1/board.xml as part xcve2802-vsvh1760-2lp-e-s-es1 specified in board_part file is either invalid or not available
+WARNING: [Board 49-26] cannot add Board Part xilinx.com:vek280_es_revb:part0:1.0 available at /usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/xhub/boards/XilinxBoardStore/boards/Xilinx/vek280/es/rev_b/1.0/board.xml as part xcve2802-vsvh1760-2mp-e-s-es1 specified in board_part file is either invalid or not available
+WARNING: [Board 49-26] cannot add Board Part xilinx.com:vek280_es_revb:part0:1.1 available at /usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/xhub/boards/XilinxBoardStore/boards/Xilinx/vek280/es/rev_b/1.1/board.xml as part xcve2802-vsvh1760-2mp-e-s-es1 specified in board_part file is either invalid or not available
+WARNING: [Board 49-26] cannot add Board Part xilinx.com:vhk158_es:part0:1.0 available at /usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/xhub/boards/XilinxBoardStore/boards/Xilinx/vhk158/es/1.0/board.xml as part xcvh1582-vsva3697-2mp-e-s-es1 specified in board_part file is either invalid or not available
+WARNING: [Board 49-26] cannot add Board Part xilinx.com:vhk158_es:part0:1.1 available at /usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/xhub/boards/XilinxBoardStore/boards/Xilinx/vhk158/es/1.1/board.xml as part xcvh1582-vsva3697-2mp-e-s-es1 specified in board_part file is either invalid or not available
+WARNING: [Board 49-26] cannot add Board Part xilinx.com:zcu208ld:part0:2.0 available at /usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/xhub/boards/XilinxBoardStore/boards/Xilinx/zcu208ld/production/2.0/board.xml as part xczu58dr-fsvg1517-2-i specified in board_part file is either invalid or not available
+WARNING: [Board 49-26] cannot add Board Part xilinx.com:zcu216ld:part0:2.0 available at /usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/xhub/boards/XilinxBoardStore/boards/Xilinx/zcu216ld/production/2.0/board.xml as part xczu59dr-ffvf1760-2-i specified in board_part file is either invalid or not available
+WARNING: [Board 49-26] cannot add Board Part xilinx.com:zcu670ld:part0:1.0 available at /usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/xhub/boards/XilinxBoardStore/boards/Xilinx/zcu670ld/1.0/board.xml as part xczu57dr-fsve1156-2-i specified in board_part file is either invalid or not available
+source ./proj/create_project.tcl
+# if {[info exists ::create_path]} {
+# 	set dest_dir $::create_path
+# } else {
+# 	set dest_dir [pwd]
+# }
+# puts "INFO: Creating new project in $dest_dir"
+INFO: Creating new project in /homes/c24masso/Bureau/tp-vhdl-mee/UE-medcon/tp-filtre-etudiant-c24masso
+# set proj_name "AudioProc"
+# set origin_dir ".."
+# set orig_proj_dir "[file normalize "$origin_dir/proj"]"
+# set src_dir $origin_dir/src
+# set repo_dir $origin_dir/repo
+# set part_num "xc7a200tsbg484-1"
+# create_project $proj_name $dest_dir
+INFO: [IP_Flow 19-234] Refreshing IP repositories
+INFO: [IP_Flow 19-1704] No user IP repositories specified
+INFO: [IP_Flow 19-2313] Loaded Vivado IP repository '/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/data/ip'.
+create_project: Time (s): cpu = 00:00:10 ; elapsed = 00:00:09 . Memory (MB): peak = 8079.234 ; gain = 197.969 ; free physical = 7226 ; free virtual = 15602
+# set proj_dir [get_property directory [current_project]]
+# set obj [get_projects $proj_name]
+# set_property "default_lib" "xil_defaultlib" $obj
+# set_property "part" "$part_num" $obj
+# set_property "simulator_language" "Mixed" $obj
+# set_property "target_language" "VHDL" $obj
+# if {[string equal [get_filesets -quiet sources_1] ""]} {
+#   create_fileset -srcset sources_1
+# }
+# if {[string equal [get_filesets -quiet constrs_1] ""]} {
+#   create_fileset -constrset constrs_1
+# }
+# set obj [get_filesets sources_1]
+# set_property "ip_repo_paths" "[file normalize $repo_dir]" $obj
+# add_files -quiet $src_dir/hdl
+# add_files -quiet [glob -nocomplain ../src/ip/*/*.xci]
+# add_files -fileset constrs_1 -quiet $src_dir/constraints
+# if {[string equal [get_runs -quiet synth_1] ""]} {
+#   create_run -name synth_1 -part $part_num -flow {Vivado Synthesis 2014} -strategy "Flow_PerfOptimized_High" -constrset constrs_1
+# } else {
+#   set_property strategy "Flow_PerfOptimized_High" [get_runs synth_1]
+#   set_property flow "Vivado Synthesis 2014" [get_runs synth_1]
+# }
+# set obj [get_runs synth_1]
+# set_property "part" "$part_num" $obj
+# set_property "steps.synth_design.args.fanout_limit" "400" $obj
+# set_property "steps.synth_design.args.fsm_extraction" "one_hot" $obj
+# set_property "steps.synth_design.args.keep_equivalent_registers" "1" $obj
+# set_property "steps.synth_design.args.resource_sharing" "off" $obj
+# set_property "steps.synth_design.args.no_lc" "1" $obj
+# set_property "steps.synth_design.args.shreg_min_size" "5" $obj
+# current_run -synthesis [get_runs synth_1]
+# if {[string equal [get_runs -quiet impl_1] ""]} {
+#   create_run -name impl_1 -part $part_num -flow {Vivado Implementation 2014} -strategy "Vivado Implementation Defaults" -constrset constrs_1 -parent_run synth_1
+# } else {
+#   set_property strategy "Vivado Implementation Defaults" [get_runs impl_1]
+#   set_property flow "Vivado Implementation 2014" [get_runs impl_1]
+# }
+# set obj [get_runs impl_1]
+# set_property "part" "$part_num" $obj
+# set_property "steps.write_bitstream.args.bin_file" "1" $obj
+# current_run -implementation [get_runs impl_1]
+impl_1
+exit
+INFO: [Common 17-206] Exiting Vivado at Wed Feb 26 09:59:12 2025...
-- 
GitLab