From 700a7fdec0d544baab30f5f8964f68432d55c17d Mon Sep 17 00:00:00 2001 From: Antonio PEREIRA <a24perei@fl-tp-br-637.imta.fr> Date: Wed, 12 Mar 2025 09:28:32 +0100 Subject: [PATCH] minorchanges --- proj/project_1/project_1.cache/wt/project.wpc | 3 + proj/project_1/project_1.cache/wt/xsim.wdf | 4 + proj/project_1/project_1.hw/project_1.lpr | 7 + .../project_1.ip_user_files/README.txt | 1 + .../ip/clk_wiz_0/clk_wiz_0.vho | 103 ++++ .../sim_1/behav/xsim/audioProc.tcl | 11 + .../sim_1/behav/xsim/audioProc_behav.wdb | Bin 0 -> 72725 bytes .../sim_1/behav/xsim/compile.bat | 27 + .../project_1.sim/sim_1/behav/xsim/compile.sh | 24 + .../sim_1/behav/xsim/elaborate.bat | 26 + .../sim_1/behav/xsim/elaborate.log | 8 + .../sim_1/behav/xsim/elaborate.sh | 22 + .../project_1.sim/sim_1/behav/xsim/glbl.v | 84 +++ .../sim_1/behav/xsim/simulate.bat | 26 + .../sim_1/behav/xsim/simulate.log | 0 .../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 -> 61927 bytes .../sim_1/behav/xsim/tb_firUnit_vhdl.prj | 9 + .../project_1.sim/sim_1/behav/xsim/xelab.pb | Bin 0 -> 847 bytes .../project_1.sim/sim_1/behav/xsim/xsim.ini | 489 ++++++++++++++++++ .../sim_1/behav/xsim/xsim.ini.bak | 489 ++++++++++++++++++ .../project_1.sim/sim_1/behav/xsim/xvhdl.log | 0 .../project_1.sim/sim_1/behav/xsim/xvhdl.pb | 4 + .../project_1.sim/sim_1/behav/xsim/xvlog.log | 12 + .../project_1.sim/sim_1/behav/xsim/xvlog.pb | Bin 0 -> 1640 bytes proj/project_1/project_1.xpr | 301 +++++++++++ src/hdl/controlUnit.vhd | 14 +- 28 files changed, 1690 insertions(+), 7 deletions(-) create mode 100644 proj/project_1/project_1.cache/wt/project.wpc create mode 100644 proj/project_1/project_1.cache/wt/xsim.wdf create mode 100644 proj/project_1/project_1.hw/project_1.lpr create mode 100644 proj/project_1/project_1.ip_user_files/README.txt create mode 100644 proj/project_1/project_1.ip_user_files/ip/clk_wiz_0/clk_wiz_0.vho create mode 100644 proj/project_1/project_1.sim/sim_1/behav/xsim/audioProc.tcl create mode 100644 proj/project_1/project_1.sim/sim_1/behav/xsim/audioProc_behav.wdb create mode 100644 proj/project_1/project_1.sim/sim_1/behav/xsim/compile.bat create mode 100644 proj/project_1/project_1.sim/sim_1/behav/xsim/compile.sh create mode 100644 proj/project_1/project_1.sim/sim_1/behav/xsim/elaborate.bat create mode 100644 proj/project_1/project_1.sim/sim_1/behav/xsim/elaborate.log create mode 100644 proj/project_1/project_1.sim/sim_1/behav/xsim/elaborate.sh create mode 100644 proj/project_1/project_1.sim/sim_1/behav/xsim/glbl.v create mode 100644 proj/project_1/project_1.sim/sim_1/behav/xsim/simulate.bat create mode 100644 proj/project_1/project_1.sim/sim_1/behav/xsim/simulate.log create mode 100644 proj/project_1/project_1.sim/sim_1/behav/xsim/simulate.sh create mode 100644 proj/project_1/project_1.sim/sim_1/behav/xsim/tb_firUnit.tcl create mode 100644 proj/project_1/project_1.sim/sim_1/behav/xsim/tb_firUnit_behav.wdb create mode 100644 proj/project_1/project_1.sim/sim_1/behav/xsim/tb_firUnit_vhdl.prj create mode 100644 proj/project_1/project_1.sim/sim_1/behav/xsim/xelab.pb create mode 100644 proj/project_1/project_1.sim/sim_1/behav/xsim/xsim.ini create mode 100644 proj/project_1/project_1.sim/sim_1/behav/xsim/xsim.ini.bak create mode 100644 proj/project_1/project_1.sim/sim_1/behav/xsim/xvhdl.log create mode 100644 proj/project_1/project_1.sim/sim_1/behav/xsim/xvhdl.pb create mode 100644 proj/project_1/project_1.sim/sim_1/behav/xsim/xvlog.log create mode 100644 proj/project_1/project_1.sim/sim_1/behav/xsim/xvlog.pb create mode 100644 proj/project_1/project_1.xpr diff --git a/proj/project_1/project_1.cache/wt/project.wpc b/proj/project_1/project_1.cache/wt/project.wpc new file mode 100644 index 0000000..0161c5d --- /dev/null +++ b/proj/project_1/project_1.cache/wt/project.wpc @@ -0,0 +1,3 @@ +version:1 +6d6f64655f636f756e7465727c4755494d6f6465:6 +eof: diff --git a/proj/project_1/project_1.cache/wt/xsim.wdf b/proj/project_1/project_1.cache/wt/xsim.wdf new file mode 100644 index 0000000..51d5206 --- /dev/null +++ b/proj/project_1/project_1.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/project_1/project_1.hw/project_1.lpr b/proj/project_1/project_1.hw/project_1.lpr new file mode 100644 index 0000000..afc0a86 --- /dev/null +++ b/proj/project_1/project_1.hw/project_1.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/project_1/project_1.ip_user_files/README.txt b/proj/project_1/project_1.ip_user_files/README.txt new file mode 100644 index 0000000..023052c --- /dev/null +++ b/proj/project_1/project_1.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/project_1/project_1.ip_user_files/ip/clk_wiz_0/clk_wiz_0.vho b/proj/project_1/project_1.ip_user_files/ip/clk_wiz_0/clk_wiz_0.vho new file mode 100644 index 0000000..c6b126b --- /dev/null +++ b/proj/project_1/project_1.ip_user_files/ip/clk_wiz_0/clk_wiz_0.vho @@ -0,0 +1,103 @@ +-- +-- (c) Copyright 2008 - 2013 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. +-- +------------------------------------------------------------------------------ +-- User entered comments +------------------------------------------------------------------------------ +-- None +-- +------------------------------------------------------------------------------ +-- 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 +-- +------------------------------------------------------------------------------ +-- 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 + clk_in1 : in std_logic; + -- 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 + ); +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 in ports + clk_in1 => clk_in1, + -- 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 + ); +-- INST_TAG_END ------ End INSTANTIATION Template ------------ diff --git a/proj/project_1/project_1.sim/sim_1/behav/xsim/audioProc.tcl b/proj/project_1/project_1.sim/sim_1/behav/xsim/audioProc.tcl new file mode 100644 index 0000000..1094e45 --- /dev/null +++ b/proj/project_1/project_1.sim/sim_1/behav/xsim/audioProc.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/project_1/project_1.sim/sim_1/behav/xsim/audioProc_behav.wdb b/proj/project_1/project_1.sim/sim_1/behav/xsim/audioProc_behav.wdb new file mode 100644 index 0000000000000000000000000000000000000000..8067c067c51a8d898ece5004ddbf6b64afcd5d9c GIT binary patch literal 72725 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�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 U?;hV1H<bjB>26>wdBL<40KI3Ui~s-t literal 0 HcmV?d00001 diff --git a/proj/project_1/project_1.sim/sim_1/behav/xsim/compile.bat b/proj/project_1/project_1.sim/sim_1/behav/xsim/compile.bat new file mode 100644 index 0000000..90c0bc0 --- /dev/null +++ b/proj/project_1/project_1.sim/sim_1/behav/xsim/compile.bat @@ -0,0 +1,27 @@ +@echo off +REM **************************************************************************** +REM Vivado (TM) v2024.2 (64-bit) +REM +REM Filename : compile.bat +REM Simulator : AMD Vivado Simulator +REM Description : Script for compiling the simulation design source files +REM +REM Generated by Vivado on Sat Mar 08 19:39:29 +0100 2025 +REM SW Build 5239630 on Fri Nov 08 22:35:27 MST 2024 +REM +REM Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +REM Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved. +REM +REM usage: compile.bat +REM +REM **************************************************************************** +REM compile VHDL design sources +echo "xvhdl --incr --relax -prj tb_firUnit_vhdl.prj" +call xvhdl --incr --relax -prj tb_firUnit_vhdl.prj -log xvhdl.log +call type xvhdl.log > compile.log +if "%errorlevel%"=="1" goto END +if "%errorlevel%"=="0" goto SUCCESS +:END +exit 1 +:SUCCESS +exit 0 diff --git a/proj/project_1/project_1.sim/sim_1/behav/xsim/compile.sh b/proj/project_1/project_1.sim/sim_1/behav/xsim/compile.sh new file mode 100644 index 0000000..e918a0d --- /dev/null +++ b/proj/project_1/project_1.sim/sim_1/behav/xsim/compile.sh @@ -0,0 +1,24 @@ +#!/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:08:10 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 VHDL design sources +echo "xvhdl --incr --relax -prj tb_firUnit_vhdl.prj" +xvhdl --incr --relax -prj tb_firUnit_vhdl.prj 2>&1 | tee compile.log + +echo "Waiting for jobs to finish..." +echo "No pending jobs, compilation finished." diff --git a/proj/project_1/project_1.sim/sim_1/behav/xsim/elaborate.bat b/proj/project_1/project_1.sim/sim_1/behav/xsim/elaborate.bat new file mode 100644 index 0000000..b4dbe4f --- /dev/null +++ b/proj/project_1/project_1.sim/sim_1/behav/xsim/elaborate.bat @@ -0,0 +1,26 @@ +@echo off +REM **************************************************************************** +REM Vivado (TM) v2024.2 (64-bit) +REM +REM Filename : elaborate.bat +REM Simulator : AMD Vivado Simulator +REM Description : Script for elaborating the compiled design +REM +REM Generated by Vivado on Sat Mar 08 19:39:30 +0100 2025 +REM SW Build 5239630 on Fri Nov 08 22:35:27 MST 2024 +REM +REM Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +REM Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved. +REM +REM usage: elaborate.bat +REM +REM **************************************************************************** +REM elaborate design +echo "xelab --incr --debug typical --relax --mt 2 -L xil_defaultlib -L secureip -L xpm --snapshot tb_firUnit_behav xil_defaultlib.tb_firUnit -log elaborate.log" +call xelab --incr --debug typical --relax --mt 2 -L xil_defaultlib -L secureip -L xpm --snapshot tb_firUnit_behav xil_defaultlib.tb_firUnit -log elaborate.log +if "%errorlevel%"=="0" goto SUCCESS +if "%errorlevel%"=="1" goto END +:END +exit 1 +:SUCCESS +exit 0 diff --git a/proj/project_1/project_1.sim/sim_1/behav/xsim/elaborate.log b/proj/project_1/project_1.sim/sim_1/behav/xsim/elaborate.log new file mode 100644 index 0000000..db78a7c --- /dev/null +++ b/proj/project_1/project_1.sim/sim_1/behav/xsim/elaborate.log @@ -0,0 +1,8 @@ +Vivado Simulator v2024.2.0 +Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved. +Running: C:/Xilinx/Vivado/2024.2/bin/unwrapped/win64.o/xelab.exe --incr --debug typical --relax --mt 2 -L xil_defaultlib -L secureip -L xpm --snapshot tb_firUnit_behav xil_defaultlib.tb_firUnit -log elaborate.log +Using 2 slave threads. +Starting static elaboration +Completed static elaboration +INFO: [XSIM 43-4323] No Change in HDL. Linking previously generated obj files to create kernel diff --git a/proj/project_1/project_1.sim/sim_1/behav/xsim/elaborate.sh b/proj/project_1/project_1.sim/sim_1/behav/xsim/elaborate.sh new file mode 100644 index 0000000..b001623 --- /dev/null +++ b/proj/project_1/project_1.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:08:12 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 secureip -L xpm --snapshot tb_firUnit_behav xil_defaultlib.tb_firUnit -log elaborate.log" +xelab --incr --debug typical --relax --mt 8 -L xil_defaultlib -L secureip -L xpm --snapshot tb_firUnit_behav xil_defaultlib.tb_firUnit -log elaborate.log + diff --git a/proj/project_1/project_1.sim/sim_1/behav/xsim/glbl.v b/proj/project_1/project_1.sim/sim_1/behav/xsim/glbl.v new file mode 100644 index 0000000..ed3b249 --- /dev/null +++ b/proj/project_1/project_1.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/project_1/project_1.sim/sim_1/behav/xsim/simulate.bat b/proj/project_1/project_1.sim/sim_1/behav/xsim/simulate.bat new file mode 100644 index 0000000..d40839b --- /dev/null +++ b/proj/project_1/project_1.sim/sim_1/behav/xsim/simulate.bat @@ -0,0 +1,26 @@ +@echo off +REM **************************************************************************** +REM Vivado (TM) v2024.2 (64-bit) +REM +REM Filename : simulate.bat +REM Simulator : AMD Vivado Simulator +REM Description : Script for simulating the design by launching the simulator +REM +REM Generated by Vivado on Sat Mar 08 18:23:47 +0100 2025 +REM SW Build 5239630 on Fri Nov 08 22:35:27 MST 2024 +REM +REM Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +REM Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved. +REM +REM usage: simulate.bat +REM +REM **************************************************************************** +REM simulate design +echo "xsim tb_firUnit_behav -key {Behavioral:sim_1:Functional:tb_firUnit} -tclbatch tb_firUnit.tcl -log simulate.log" +call xsim tb_firUnit_behav -key {Behavioral:sim_1:Functional:tb_firUnit} -tclbatch tb_firUnit.tcl -log simulate.log +if "%errorlevel%"=="0" goto SUCCESS +if "%errorlevel%"=="1" goto END +:END +exit 1 +:SUCCESS +exit 0 diff --git a/proj/project_1/project_1.sim/sim_1/behav/xsim/simulate.log b/proj/project_1/project_1.sim/sim_1/behav/xsim/simulate.log new file mode 100644 index 0000000..e69de29 diff --git a/proj/project_1/project_1.sim/sim_1/behav/xsim/simulate.sh b/proj/project_1/project_1.sim/sim_1/behav/xsim/simulate.sh new file mode 100644 index 0000000..9cda091 --- /dev/null +++ b/proj/project_1/project_1.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:07: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: 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/project_1/project_1.sim/sim_1/behav/xsim/tb_firUnit.tcl b/proj/project_1/project_1.sim/sim_1/behav/xsim/tb_firUnit.tcl new file mode 100644 index 0000000..1094e45 --- /dev/null +++ b/proj/project_1/project_1.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/project_1/project_1.sim/sim_1/behav/xsim/tb_firUnit_behav.wdb b/proj/project_1/project_1.sim/sim_1/behav/xsim/tb_firUnit_behav.wdb new file mode 100644 index 0000000000000000000000000000000000000000..92bae6e04f64d3de695bb19e86c20b7dd4aed561 GIT binary patch literal 61927 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 UItO$^^#9-g{{K|B*v-5X00AIYdH?_b literal 0 HcmV?d00001 diff --git a/proj/project_1/project_1.sim/sim_1/behav/xsim/tb_firUnit_vhdl.prj b/proj/project_1/project_1.sim/sim_1/behav/xsim/tb_firUnit_vhdl.prj new file mode 100644 index 0000000..0107b4e --- /dev/null +++ b/proj/project_1/project_1.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/project_1/project_1.sim/sim_1/behav/xsim/xelab.pb b/proj/project_1/project_1.sim/sim_1/behav/xsim/xelab.pb new file mode 100644 index 0000000000000000000000000000000000000000..0e76091ce692a7c8ed1f8df69a920743b1957817 GIT binary patch literal 847 zcmd<`<ziDUR!}YG5@3;HHZe5N;w;Y0EzL<R$uBYz;t~kUEK5wuR|tlSadUB&85tOv z=o#r5M6sI~>l#~{n`bZ-uvD;2U}O+r;+n<C#SAtM*`!*oYUlid%A(Blj1mPyOA9ky zBLgENg^0|Y%)AO61<$->Jq5>{9EBi|f?|cB)Z)~lveXnkE`%<S29Pcj1;>=K#JuFx z6b0YR<f429m(;S%<kVt3rXV}7g^7zNs5CDxGcVl==51qRV`RskXXHA==xn7Aah*OS z2=pPI)=$dJ(=W{{FG?&ZNKMf%&&)G3(aYDbNX<!1(o3yKRnXPV%u6m((A7;zO)5=S zD5)&SOis*E(A6zU%}K0K(ACW?Q7}@_^--wE%!yA)O-n4zDapx90*Mr-CYKhaW)^_h z6$QBpy1K=Ai3P<O`6UV^N%3i!MWK0_CGknA8Hr_Ry7dt93c5M@=?Wm{<QFBDr0Riq zka#jNu|y6CCob{O;>^5s1=V7O;+({?RE3g^qSV9`NJ=m^H%AT<W-dk}s414lsHVsS zmn0UIfD9@wNi4}shTEN)p9fA<#wJEcMnO$6wLmt-nM>9=Ker$!wInq~0f#Y07RYH6 zVvMn+8L~0?T%LaU3eFjcdFiPNnRyBxE<Sn+KACyhAlDTXrIuypmlo$#Dx|08rGf${ zMIk>aOCc>YC$(6iBwr!9C^fMpRUtdIC@(cffK`gw)Y1ao<tD~PApf&gutHKh9~YNv PUW!6cYI1&2iU1=3aK-xB literal 0 HcmV?d00001 diff --git a/proj/project_1/project_1.sim/sim_1/behav/xsim/xsim.ini b/proj/project_1/project_1.sim/sim_1/behav/xsim/xsim.ini new file mode 100644 index 0000000..e2f5709 --- /dev/null +++ b/proj/project_1/project_1.sim/sim_1/behav/xsim/xsim.ini @@ -0,0 +1,489 @@ +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 +cpri_v8_12_0=$RDI_DATADIR/xsim/ip/cpri_v8_12_0 +sim_ipc_multi_intf_v1_0=$RDI_DATADIR/xsim/ip/sim_ipc_multi_intf_v1_0 +axis_ila_txns_cntr_v1_0_0=$RDI_DATADIR/xsim/ip/axis_ila_txns_cntr_v1_0_0 +an_lt_v1_0_14=$RDI_DATADIR/xsim/ip/an_lt_v1_0_14 +axi_chip2chip_v5_0_24=$RDI_DATADIR/xsim/ip/axi_chip2chip_v5_0_24 +g709_fec_v2_4_11=$RDI_DATADIR/xsim/ip/g709_fec_v2_4_11 +audio_formatter_v1_0_15=$RDI_DATADIR/xsim/ip/audio_formatter_v1_0_15 +ats_switch_v1_0_12=$RDI_DATADIR/xsim/ip/ats_switch_v1_0_12 +xbip_pipe_v3_0_10=$RDI_DATADIR/xsim/ip/xbip_pipe_v3_0_10 +v_gamma_lut_v1_1_13=$RDI_DATADIR/xsim/ip/v_gamma_lut_v1_1_13 +vrf_fft_v1_0_0=$RDI_DATADIR/xsim/ip/vrf_fft_v1_0_0 +v_hdmi_tx1_v1_0_10=$RDI_DATADIR/xsim/ip/v_hdmi_tx1_v1_0_10 +pci32_v5_0_13=$RDI_DATADIR/xsim/ip/pci32_v5_0_13 +axi_mm2s_mapper_v1_1_32=$RDI_DATADIR/xsim/ip/axi_mm2s_mapper_v1_1_32 +axis_data_fifo_v1_1_34=$RDI_DATADIR/xsim/ip/axis_data_fifo_v1_1_34 +mailbox_v2_1_18=$RDI_DATADIR/xsim/ip/mailbox_v2_1_18 +lib_cdc_v1_0_3=$RDI_DATADIR/xsim/ip/lib_cdc_v1_0_3 +sdfec_ld_wrapper_v1_0_0=$RDI_DATADIR/xsim/ip/sdfec_ld_wrapper_v1_0_0 +v_tc_v6_1_14=$RDI_DATADIR/xsim/ip/v_tc_v6_1_14 +tcc_encoder_3gpplte_v4_0_20=$RDI_DATADIR/xsim/ip/tcc_encoder_3gpplte_v4_0_20 +axis_ila_intf_v1_0_2=$RDI_DATADIR/xsim/ip/axis_ila_intf_v1_0_2 +axi_lite_ipif_v3_0=$RDI_DATADIR/xsim/ip/axi_lite_ipif_v3_0 +vitis_net_p4_v2_2_0=$RDI_DATADIR/xsim/ip/vitis_net_p4_v2_2_0 +generic_baseblocks_v2_1_2=$RDI_DATADIR/xsim/ip/generic_baseblocks_v2_1_2 +ten_gig_eth_mac_v15_1_12=$RDI_DATADIR/xsim/ip/ten_gig_eth_mac_v15_1_12 +hdmi_gt_controller_v1_0_13=$RDI_DATADIR/xsim/ip/hdmi_gt_controller_v1_0_13 +v_frmbuf_rd_v3_0_0=$RDI_DATADIR/xsim/ip/v_frmbuf_rd_v3_0_0 +fifo_generator_v13_1_5=$RDI_DATADIR/xsim/ip/fifo_generator_v13_1_5 +dfx_bitstream_monitor_v1_0_6=$RDI_DATADIR/xsim/ip/dfx_bitstream_monitor_v1_0_6 +rs_toolbox_v9_0_14=$RDI_DATADIR/xsim/ip/rs_toolbox_v9_0_14 +perf_axi_tg_v1_0_15=$RDI_DATADIR/xsim/ip/perf_axi_tg_v1_0_15 +xbip_utils_v3_0_14=$RDI_DATADIR/xsim/ip/xbip_utils_v3_0_14 +dptx_v1_0_5=$RDI_DATADIR/xsim/ip/dptx_v1_0_5 +rs_decoder_v9_0_23=$RDI_DATADIR/xsim/ip/rs_decoder_v9_0_23 +dsp_macro_v1_0_7=$RDI_DATADIR/xsim/ip/dsp_macro_v1_0_7 +axi_vdma_v6_3_21=$RDI_DATADIR/xsim/ip/axi_vdma_v6_3_21 +axi_lite_ipif_v3_0_4=$RDI_DATADIR/xsim/ip/axi_lite_ipif_v3_0_4 +qdriv_pl_v1_0_14=$RDI_DATADIR/xsim/ip/qdriv_pl_v1_0_14 +axis_data_fifo_v2_0_15=$RDI_DATADIR/xsim/ip/axis_data_fifo_v2_0_15 +audio_tpg_v1_0_2=$RDI_DATADIR/xsim/ip/audio_tpg_v1_0_2 +noc_nsu_sim_v1_0_0=$RDI_DATADIR/xsim/ip/noc_nsu_sim_v1_0_0 +axi_i3c_v1_0_2=$RDI_DATADIR/xsim/ip/axi_i3c_v1_0_2 +axi_sg_v4_1_19=$RDI_DATADIR/xsim/ip/axi_sg_v4_1_19 +mipi_csi2_rx_ctrl_v1_0_11=$RDI_DATADIR/xsim/ip/mipi_csi2_rx_ctrl_v1_0_11 +hdmi_acr_ctrl_v1_0_3=$RDI_DATADIR/xsim/ip/hdmi_acr_ctrl_v1_0_3 +xxv_ethernet_v4_1_13=$RDI_DATADIR/xsim/ip/xxv_ethernet_v4_1_13 +hw_trace=$RDI_DATADIR/xsim/ip/hw_trace +ernic_v4_2_0=$RDI_DATADIR/xsim/ip/ernic_v4_2_0 +rama_v1_1_19_lib=$RDI_DATADIR/xsim/ip/rama_v1_1_19_lib +rfdace5_wrapper_v1_0_0=$RDI_DATADIR/xsim/ip/rfdace5_wrapper_v1_0_0 +tsn_temac_v1_0_12=$RDI_DATADIR/xsim/ip/tsn_temac_v1_0_12 +tri_mode_ethernet_mac_v9_0_35=$RDI_DATADIR/xsim/ip/tri_mode_ethernet_mac_v9_0_35 +axi_jtag_v1_0_2=$RDI_DATADIR/xsim/ip/axi_jtag_v1_0_2 +ieee802d3_200g_rs_fec_v2_0_12=$RDI_DATADIR/xsim/ip/ieee802d3_200g_rs_fec_v2_0_12 +fast_adapter_v1_0_10=$RDI_DATADIR/xsim/ip/fast_adapter_v1_0_10 +hdmi_gt_controller_v2_0_0=$RDI_DATADIR/xsim/ip/hdmi_gt_controller_v2_0_0 +xdfe_ofdm_v2_2_0=$RDI_DATADIR/xsim/ip/xdfe_ofdm_v2_2_0 +ptp_1588_timer_syncer_v2_0_6=$RDI_DATADIR/xsim/ip/ptp_1588_timer_syncer_v2_0_6 +vfb_v1_0_27=$RDI_DATADIR/xsim/ip/vfb_v1_0_27 +blk_mem_gen_v8_3_7=$RDI_DATADIR/xsim/ip/blk_mem_gen_v8_3_7 +vcu2_v1_0_0=$RDI_DATADIR/xsim/ip/vcu2_v1_0_0 +shell_utils_addr_remap_v1_0_12=$RDI_DATADIR/xsim/ip/shell_utils_addr_remap_v1_0_12 +oddr_v1_0_4=$RDI_DATADIR/xsim/ip/oddr_v1_0_4 +sim_trig_v1_0_13=$RDI_DATADIR/xsim/ip/sim_trig_v1_0_13 +v_hdmi_phy1_v1_0_13=$RDI_DATADIR/xsim/ip/v_hdmi_phy1_v1_0_13 +displayport_v7_0_25=$RDI_DATADIR/xsim/ip/displayport_v7_0_25 +cordic_v6_0_23=$RDI_DATADIR/xsim/ip/cordic_v6_0_23 +axi_crossbar_v2_1_34=$RDI_DATADIR/xsim/ip/axi_crossbar_v2_1_34 +proc_sys_reset_v5_0_16=$RDI_DATADIR/xsim/ip/proc_sys_reset_v5_0_16 +polar_v1_1_5=$RDI_DATADIR/xsim/ip/polar_v1_1_5 +xscl=$RDI_DATADIR/xsim/ip/xscl +xtlm_simple_interconnect_v1_0=$RDI_DATADIR/xsim/ip/xtlm_simple_interconnect_v1_0 +v_scenechange_v1_1_6=$RDI_DATADIR/xsim/ip/v_scenechange_v1_1_6 +func_emu_util_v1_0=$RDI_DATADIR/xsim/ip/func_emu_util_v1_0 +ldpc_v2_0_16=$RDI_DATADIR/xsim/ip/ldpc_v2_0_16 +switch_core_top_v1_0_17=$RDI_DATADIR/xsim/ip/switch_core_top_v1_0_17 +v_frmbuf_wr_v2_5_3=$RDI_DATADIR/xsim/ip/v_frmbuf_wr_v2_5_3 +bs_switch_v1_0_4=$RDI_DATADIR/xsim/ip/bs_switch_v1_0_4 +audio_clock_recovery_unit_v1_0_5=$RDI_DATADIR/xsim/ip/audio_clock_recovery_unit_v1_0_5 +xdfe_resampler_v1_0_10=$RDI_DATADIR/xsim/ip/xdfe_resampler_v1_0_10 +sd_fec_v1_1_15=$RDI_DATADIR/xsim/ip/sd_fec_v1_1_15 +fifo_generator_v13_2_11=$RDI_DATADIR/xsim/ip/fifo_generator_v13_2_11 +axi_timebase_wdt_v3_0_25=$RDI_DATADIR/xsim/ip/axi_timebase_wdt_v3_0_25 +psx_vip_v1_0_6=$RDI_DATADIR/xsim/ip/psx_vip_v1_0_6 +axi_memory_init_v1_0_14=$RDI_DATADIR/xsim/ip/axi_memory_init_v1_0_14 +emc_common_v3_0_8=$RDI_DATADIR/xsim/ip/emc_common_v3_0_8 +ieee802d3_rs_fec_v2_0_24=$RDI_DATADIR/xsim/ip/ieee802d3_rs_fec_v2_0_24 +axi_bram_ctrl_v4_0_15=$RDI_DATADIR/xsim/ip/axi_bram_ctrl_v4_0_15 +v_vcresampler_v1_1_13=$RDI_DATADIR/xsim/ip/v_vcresampler_v1_1_13 +v_csc_v1_1_13=$RDI_DATADIR/xsim/ip/v_csc_v1_1_13 +axi_lmb_bridge_v1_0_3=$RDI_DATADIR/xsim/ip/axi_lmb_bridge_v1_0_3 +zynq_ultra_ps_e_vip_v1_0_19=$RDI_DATADIR/xsim/ip/zynq_ultra_ps_e_vip_v1_0_19 +axi_cdma_v4_1_33=$RDI_DATADIR/xsim/ip/axi_cdma_v4_1_33 +v_dp_axi4s_vid_out_v1_0_9=$RDI_DATADIR/xsim/ip/v_dp_axi4s_vid_out_v1_0_9 +i2s_receiver_v1_0_9=$RDI_DATADIR/xsim/ip/i2s_receiver_v1_0_9 +rld3_pl_v1_0_15=$RDI_DATADIR/xsim/ip/rld3_pl_v1_0_15 +axi_firewall_v1_2_8=$RDI_DATADIR/xsim/ip/axi_firewall_v1_2_8 +axis_ila_ct_v1_0_1=$RDI_DATADIR/xsim/ip/axis_ila_ct_v1_0_1 +cpm5n_v1_0_9=$RDI_DATADIR/xsim/ip/cpm5n_v1_0_9 +hdcp22_cipher_dp_v1_0_2=$RDI_DATADIR/xsim/ip/hdcp22_cipher_dp_v1_0_2 +lut_buffer_v2_0_1=$RDI_DATADIR/xsim/ip/lut_buffer_v2_0_1 +axis_switch_v1_1_33=$RDI_DATADIR/xsim/ip/axis_switch_v1_1_33 +axis_switch_sc_v1_1=$RDI_DATADIR/xsim/ip/axis_switch_sc_v1_1 +mipi_dphy_v4_3_13=$RDI_DATADIR/xsim/ip/mipi_dphy_v4_3_13 +msm_adapters=$RDI_DATADIR/xsim/ip/msm_adapters +msm_cpp=$RDI_DATADIR/xsim/ip/msm_cpp +iomodule_v3_1_11=$RDI_DATADIR/xsim/ip/iomodule_v3_1_11 +fc32_rs_fec_v1_0_28=$RDI_DATADIR/xsim/ip/fc32_rs_fec_v1_0_28 +mammoth_transcode_v1_0_2=$RDI_DATADIR/xsim/ip/mammoth_transcode_v1_0_2 +aie_ps_v1_0=$RDI_DATADIR/xsim/ip/aie_ps_v1_0 +axi_hwicap_v3_0_37=$RDI_DATADIR/xsim/ip/axi_hwicap_v3_0_37 +g709_rs_decoder_v2_2_15=$RDI_DATADIR/xsim/ip/g709_rs_decoder_v2_2_15 +axi_stream_monitor_v1_1_1=$RDI_DATADIR/xsim/ip/axi_stream_monitor_v1_1_1 +axis_itct_v1_0_1=$RDI_DATADIR/xsim/ip/axis_itct_v1_0_1 +tmr_voter_v1_0_7=$RDI_DATADIR/xsim/ip/tmr_voter_v1_0_7 +lmb_v10_v3_0=$RDI_DATADIR/xsim/ip/lmb_v10_v3_0 +mdm_riscv_v1_0_3=$RDI_DATADIR/xsim/ip/mdm_riscv_v1_0_3 +axis_mem_v1_0_2=$RDI_DATADIR/xsim/ip/axis_mem_v1_0_2 +amm_axi_bridge_v1_0_19=$RDI_DATADIR/xsim/ip/amm_axi_bridge_v1_0_19 +videoaxi4s_bridge_v1_0_7=$RDI_DATADIR/xsim/ip/videoaxi4s_bridge_v1_0_7 +axis_accelerator_adapter_v2_1_19=$RDI_DATADIR/xsim/ip/axis_accelerator_adapter_v2_1_19 +axi_master_burst_v2_0_9=$RDI_DATADIR/xsim/ip/axi_master_burst_v2_0_9 +vrf_channelizer_v1_0_0=$RDI_DATADIR/xsim/ip/vrf_channelizer_v1_0_0 +uhdsdi_gt_v2_1_5=$RDI_DATADIR/xsim/ip/uhdsdi_gt_v2_1_5 +v_deinterlacer_v5_1_6=$RDI_DATADIR/xsim/ip/v_deinterlacer_v5_1_6 +noc_hbm_v1_0_1=$RDI_DATADIR/xsim/ip/noc_hbm_v1_0_1 +in_system_ibert_v1_0_23=$RDI_DATADIR/xsim/ip/in_system_ibert_v1_0_23 +axi_pcie_v2_9_12=$RDI_DATADIR/xsim/ip/axi_pcie_v2_9_12 +axi_epu_v1_0_6=$RDI_DATADIR/xsim/ip/axi_epu_v1_0_6 +floating_point_v7_0_24=$RDI_DATADIR/xsim/ip/floating_point_v7_0_24 +v_axi4s_vid_out_v4_0_19=$RDI_DATADIR/xsim/ip/v_axi4s_vid_out_v4_0_19 +v_multi_scaler_v1_2_7=$RDI_DATADIR/xsim/ip/v_multi_scaler_v1_2_7 +axis_dbg_sync_v1_0_1=$RDI_DATADIR/xsim/ip/axis_dbg_sync_v1_0_1 +can_v5_1_5=$RDI_DATADIR/xsim/ip/can_v5_1_5 +axis_cap_ctrl_v1_0_1=$RDI_DATADIR/xsim/ip/axis_cap_ctrl_v1_0_1 +xdfe_cc_filter_v1_1_5=$RDI_DATADIR/xsim/ip/xdfe_cc_filter_v1_1_5 +anlt_subcore_ip_v1_0_2=$RDI_DATADIR/xsim/ip/anlt_subcore_ip_v1_0_2 +v_smpte_uhdsdi_tx_v1_0_5=$RDI_DATADIR/xsim/ip/v_smpte_uhdsdi_tx_v1_0_5 +xlslice_v1_0_4=$RDI_DATADIR/xsim/ip/xlslice_v1_0_4 +noc2_nmu_sim_v1_0_0=$RDI_DATADIR/xsim/ip/noc2_nmu_sim_v1_0_0 +tmr_sem_v1_0_27=$RDI_DATADIR/xsim/ip/tmr_sem_v1_0_27 +axi_ahblite_bridge_v3_0_30=$RDI_DATADIR/xsim/ip/axi_ahblite_bridge_v3_0_30 +xtlm_trace_model_v1_0=$RDI_DATADIR/xsim/ip/xtlm_trace_model_v1_0 +hdcp_keymngmt_blk_v1_0_2=$RDI_DATADIR/xsim/ip/hdcp_keymngmt_blk_v1_0_2 +util_idelay_ctrl_v1_0_4=$RDI_DATADIR/xsim/ip/util_idelay_ctrl_v1_0_4 +axi_uart16550_v2_0_35=$RDI_DATADIR/xsim/ip/axi_uart16550_v2_0_35 +ecc_v2_0_17=$RDI_DATADIR/xsim/ip/ecc_v2_0_17 +v_frmbuf_rd_v2_2_12=$RDI_DATADIR/xsim/ip/v_frmbuf_rd_v2_2_12 +axi_data_fifo_v2_1_32=$RDI_DATADIR/xsim/ip/axi_data_fifo_v2_1_32 +xdfe_equalizer_v1_0_10=$RDI_DATADIR/xsim/ip/xdfe_equalizer_v1_0_10 +axi_mcdma_v1_2_0=$RDI_DATADIR/xsim/ip/axi_mcdma_v1_2_0 +versal_cips_ps_vip_v1_0_11=$RDI_DATADIR/xsim/ip/versal_cips_ps_vip_v1_0_11 +emb_mem_gen_v1_0_10=$RDI_DATADIR/xsim/ip/emb_mem_gen_v1_0_10 +mdm_v3_2=$RDI_DATADIR/xsim/ip/mdm_v3_2 +displayport_v8_1_10=$RDI_DATADIR/xsim/ip/displayport_v8_1_10 +tcc_encoder_3gpp_v5_0_23=$RDI_DATADIR/xsim/ip/tcc_encoder_3gpp_v5_0_23 +pcie_qdma_mailbox_v1_0_8=$RDI_DATADIR/xsim/ip/pcie_qdma_mailbox_v1_0_8 +v_frmbuf_rd_v2_5_3=$RDI_DATADIR/xsim/ip/v_frmbuf_rd_v2_5_3 +util_vector_logic_v2_0_4=$RDI_DATADIR/xsim/ip/util_vector_logic_v2_0_4 +axis_dwidth_converter_v1_1_32=$RDI_DATADIR/xsim/ip/axis_dwidth_converter_v1_1_32 +axi4svideo_bridge_v1_0_19=$RDI_DATADIR/xsim/ip/axi4svideo_bridge_v1_0_19 +util_ff_v1_0_4=$RDI_DATADIR/xsim/ip/util_ff_v1_0_4 +sim_xdma_cpp_v1=$RDI_DATADIR/xsim/ip/sim_xdma_cpp_v1 +microblaze_riscv_v1_0_3=$RDI_DATADIR/xsim/ip/microblaze_riscv_v1_0_3 +cpri_v8_11_22=$RDI_DATADIR/xsim/ip/cpri_v8_11_22 +v_vid_in_axi4s_v5_0_5=$RDI_DATADIR/xsim/ip/v_vid_in_axi4s_v5_0_5 +dprx_v1_0_5=$RDI_DATADIR/xsim/ip/dprx_v1_0_5 +shell_utils_build_info_v2_0_0=$RDI_DATADIR/xsim/ip/shell_utils_build_info_v2_0_0 +util_reduced_logic_v2_0_6=$RDI_DATADIR/xsim/ip/util_reduced_logic_v2_0_6 +axi_pcie3_v3_0_32=$RDI_DATADIR/xsim/ip/axi_pcie3_v3_0_32 +v_smpte_uhdsdi_rx_v1_0_4=$RDI_DATADIR/xsim/ip/v_smpte_uhdsdi_rx_v1_0_4 +axi_datamover_v5_1_35=$RDI_DATADIR/xsim/ip/axi_datamover_v5_1_35 +interlaken_v2_4_19=$RDI_DATADIR/xsim/ip/interlaken_v2_4_19 +nvmeha_v1_0_14=$RDI_DATADIR/xsim/ip/nvmeha_v1_0_14 +av_pat_gen_v2_0_2=$RDI_DATADIR/xsim/ip/av_pat_gen_v2_0_2 +bfr_ft_wrapper_v1_0_0=$RDI_DATADIR/xsim/ip/bfr_ft_wrapper_v1_0_0 +axis_mu_v1_0_1=$RDI_DATADIR/xsim/ip/axis_mu_v1_0_1 +zynq_ultra_ps_e_v3_3_14=$RDI_DATADIR/xsim/ip/zynq_ultra_ps_e_v3_3_14 +stm_v1_0=$RDI_DATADIR/xsim/ip/stm_v1_0 +v_hdmi_rx_v3_0_5=$RDI_DATADIR/xsim/ip/v_hdmi_rx_v3_0_5 +ethernet_1_10_25g_v2_7_18=$RDI_DATADIR/xsim/ip/ethernet_1_10_25g_v2_7_18 +v_tpg_v8_2_6=$RDI_DATADIR/xsim/ip/v_tpg_v8_2_6 +qdma_v5_0_12=$RDI_DATADIR/xsim/ip/qdma_v5_0_12 +pci64_v5_0_12=$RDI_DATADIR/xsim/ip/pci64_v5_0_12 +v_uhdsdi_vidgen_v1_0_3=$RDI_DATADIR/xsim/ip/v_uhdsdi_vidgen_v1_0_3 +jesd204c_v4_3_0=$RDI_DATADIR/xsim/ip/jesd204c_v4_3_0 +axi_timer_v2_0_35=$RDI_DATADIR/xsim/ip/axi_timer_v2_0_35 +c_compare_v12_0_10=$RDI_DATADIR/xsim/ip/c_compare_v12_0_10 +axi_clock_converter_v2_1_32=$RDI_DATADIR/xsim/ip/axi_clock_converter_v2_1_32 +axi_protocol_converter_v2_1_33=$RDI_DATADIR/xsim/ip/axi_protocol_converter_v2_1_33 +axi_dma_v7_1_34=$RDI_DATADIR/xsim/ip/axi_dma_v7_1_34 +pl_fileio_v1_0_0=$RDI_DATADIR/xsim/ip/pl_fileio_v1_0_0 +dfx_decoupler_v1_0_11=$RDI_DATADIR/xsim/ip/dfx_decoupler_v1_0_11 +axi_sideband_util_v1_0_17=$RDI_DATADIR/xsim/ip/axi_sideband_util_v1_0_17 +tmr_manager_v1_0_13=$RDI_DATADIR/xsim/ip/tmr_manager_v1_0_13 +fec_5g_common_v1_1_5=$RDI_DATADIR/xsim/ip/fec_5g_common_v1_1_5 +axi_ethernetlite_v3_0_32=$RDI_DATADIR/xsim/ip/axi_ethernetlite_v3_0_32 +lib_bmg_v1_0_18=$RDI_DATADIR/xsim/ip/lib_bmg_v1_0_18 +high_speed_selectio_wiz_v3_6_10=$RDI_DATADIR/xsim/ip/high_speed_selectio_wiz_v3_6_10 +c_shift_ram_v12_0_18=$RDI_DATADIR/xsim/ip/c_shift_ram_v12_0_18 +axi_pmon_v1_0_2=$RDI_DATADIR/xsim/ip/axi_pmon_v1_0_2 +v_vid_in_axi4s_v4_0_11=$RDI_DATADIR/xsim/ip/v_vid_in_axi4s_v4_0_11 +uhdsdi_gt_v2_2_0=$RDI_DATADIR/xsim/ip/uhdsdi_gt_v2_2_0 +v_tpg_v8_1_12=$RDI_DATADIR/xsim/ip/v_tpg_v8_1_12 +noc2_nsu_sim_v1_0_0=$RDI_DATADIR/xsim/ip/noc2_nsu_sim_v1_0_0 +axi_gpio_v2_0_35=$RDI_DATADIR/xsim/ip/axi_gpio_v2_0_35 +axis_interconnect_v1_1_24=$RDI_DATADIR/xsim/ip/axis_interconnect_v1_1_24 +adc_dac_if_phy_v1_0_0=$RDI_DATADIR/xsim/ip/adc_dac_if_phy_v1_0_0 +xilinx_vip=$RDI_DATADIR/xsim/ip/xilinx_vip +noc_ncrb_v1_0_0=$RDI_DATADIR/xsim/ip/noc_ncrb_v1_0_0 +c_addsub_v12_0_19=$RDI_DATADIR/xsim/ip/c_addsub_v12_0_19 +sem_ultra_v3_1_27=$RDI_DATADIR/xsim/ip/sem_ultra_v3_1_27 +v_dual_splitter_v1_0_11=$RDI_DATADIR/xsim/ip/v_dual_splitter_v1_0_11 +v_warp_init_v1_1_5=$RDI_DATADIR/xsim/ip/v_warp_init_v1_1_5 +mipi_csi2_tx_ctrl_v1_0_6=$RDI_DATADIR/xsim/ip/mipi_csi2_tx_ctrl_v1_0_6 +roe_framer_v3_0_9=$RDI_DATADIR/xsim/ip/roe_framer_v3_0_9 +axi_remapper_tx_v1_0_3=$RDI_DATADIR/xsim/ip/axi_remapper_tx_v1_0_3 +axi_traffic_gen_v3_0_19=$RDI_DATADIR/xsim/ip/axi_traffic_gen_v3_0_19 +dfx_controller_v1_0_8=$RDI_DATADIR/xsim/ip/dfx_controller_v1_0_8 +pr_decoupler_v1_0_11=$RDI_DATADIR/xsim/ip/pr_decoupler_v1_0_11 +tmr_comparator_v1_0_8=$RDI_DATADIR/xsim/ip/tmr_comparator_v1_0_8 +rfadce5_wrapper_v1_0_0=$RDI_DATADIR/xsim/ip/rfadce5_wrapper_v1_0_0 +axi_mmu_v2_1_31=$RDI_DATADIR/xsim/ip/axi_mmu_v2_1_31 +axi_dwidth_converter_v2_1_33=$RDI_DATADIR/xsim/ip/axi_dwidth_converter_v2_1_33 +common_rpc_v1=$RDI_DATADIR/xsim/ip/common_rpc_v1 +axis_ila_adv_trig_v1_0_1=$RDI_DATADIR/xsim/ip/axis_ila_adv_trig_v1_0_1 +picxo_fracxo_v2_0_3=$RDI_DATADIR/xsim/ip/picxo_fracxo_v2_0_3 +dp_videoaxi4s_bridge_v1_0_3=$RDI_DATADIR/xsim/ip/dp_videoaxi4s_bridge_v1_0_3 +v_frmbuf_wr_v2_2_12=$RDI_DATADIR/xsim/ip/v_frmbuf_wr_v2_2_12 +sd_fec_beta_v1_0_0=$RDI_DATADIR/xsim/ip/sd_fec_beta_v1_0_0 +iomodule_v3_0=$RDI_DATADIR/xsim/ip/iomodule_v3_0 +lmb_bram_if_cntlr_v4_0_25=$RDI_DATADIR/xsim/ip/lmb_bram_if_cntlr_v4_0_25 +mrmac_v3_0_0=$RDI_DATADIR/xsim/ip/mrmac_v3_0_0 +tsn_endpoint_ethernet_mac_block_v1_0_18=$RDI_DATADIR/xsim/ip/tsn_endpoint_ethernet_mac_block_v1_0_18 +axis_vio_v1_0_12=$RDI_DATADIR/xsim/ip/axis_vio_v1_0_12 +xtlm=$RDI_DATADIR/xsim/ip/xtlm +bscan_jtag=$RDI_DATADIR/xsim/ip/bscan_jtag +floating_point_v7_1_19=$RDI_DATADIR/xsim/ip/floating_point_v7_1_19 +ai_pl_trig=$RDI_DATADIR/xsim/ip/ai_pl_trig +axi_dbg_hub=$RDI_DATADIR/xsim/ip/axi_dbg_hub +pc_cfr_v8_0_3=$RDI_DATADIR/xsim/ip/pc_cfr_v8_0_3 +axi_amm_bridge_v1_0_23=$RDI_DATADIR/xsim/ip/axi_amm_bridge_v1_0_23 +c_counter_binary_v12_0_20=$RDI_DATADIR/xsim/ip/c_counter_binary_v12_0_20 +xtlm_ipc_v1_0=$RDI_DATADIR/xsim/ip/xtlm_ipc_v1_0 +axi_vip_v1_1_19=$RDI_DATADIR/xsim/ip/axi_vip_v1_1_19 +xlconcat_v2_1_6=$RDI_DATADIR/xsim/ip/xlconcat_v2_1_6 +axi_msg_v1_0_12=$RDI_DATADIR/xsim/ip/axi_msg_v1_0_12 +noc_nps6_v1_0_0=$RDI_DATADIR/xsim/ip/noc_nps6_v1_0_0 +xpm=$RDI_DATADIR/xsim/ip/xpm +bsip_v1_1_1=$RDI_DATADIR/xsim/ip/bsip_v1_1_1 +interrupt_control_v3_1_5=$RDI_DATADIR/xsim/ip/interrupt_control_v3_1_5 +gtwizard_ultrascale_v1_7_19=$RDI_DATADIR/xsim/ip/gtwizard_ultrascale_v1_7_19 +axi_intc_v4_1=$RDI_DATADIR/xsim/ip/axi_intc_v4_1 +rld3_pl_phy_v1_0_2=$RDI_DATADIR/xsim/ip/rld3_pl_phy_v1_0_2 +mipi_rx_phy_v1_0_1=$RDI_DATADIR/xsim/ip/mipi_rx_phy_v1_0_1 +sim_cpu_v1_0=$RDI_DATADIR/xsim/ip/sim_cpu_v1_0 +dds_compiler_v6_0_26=$RDI_DATADIR/xsim/ip/dds_compiler_v6_0_26 +xdma_v4_1_31=$RDI_DATADIR/xsim/ip/xdma_v4_1_31 +axi_fifo_mm_s_v4_3_5=$RDI_DATADIR/xsim/ip/axi_fifo_mm_s_v4_3_5 +l_ethernet_v3_3_13=$RDI_DATADIR/xsim/ip/l_ethernet_v3_3_13 +xdfe_nlf_v1_1_2=$RDI_DATADIR/xsim/ip/xdfe_nlf_v1_1_2 +axi_mcdma_v1_1_14=$RDI_DATADIR/xsim/ip/axi_mcdma_v1_1_14 +remote_port_c_v4=$RDI_DATADIR/xsim/ip/remote_port_c_v4 +ltlib_v1_0_2=$RDI_DATADIR/xsim/ip/ltlib_v1_0_2 +xdfe_common_v1_0_4=$RDI_DATADIR/xsim/ip/xdfe_common_v1_0_4 +axi_intc_v4_1_20=$RDI_DATADIR/xsim/ip/axi_intc_v4_1_20 +axi_uartlite_v2_0_37=$RDI_DATADIR/xsim/ip/axi_uartlite_v2_0_37 +gmii_to_rgmii_v4_1_17=$RDI_DATADIR/xsim/ip/gmii_to_rgmii_v4_1_17 +cdcam_v1_2_0=$RDI_DATADIR/xsim/ip/cdcam_v1_2_0 +blk_mem_gen_v8_4_9=$RDI_DATADIR/xsim/ip/blk_mem_gen_v8_4_9 +system_cache_v5_0_12=$RDI_DATADIR/xsim/ip/system_cache_v5_0_12 +cmac_usplus_v3_1_19=$RDI_DATADIR/xsim/ip/cmac_usplus_v3_1_19 +axi_interface_monitor_v1_1_0=$RDI_DATADIR/xsim/ip/axi_interface_monitor_v1_1_0 +axi_interconnect_v1_7_24=$RDI_DATADIR/xsim/ip/axi_interconnect_v1_7_24 +noc2_xbr2x4_v1_0_0=$RDI_DATADIR/xsim/ip/noc2_xbr2x4_v1_0_0 +uram_rd_back_v1_0_4=$RDI_DATADIR/xsim/ip/uram_rd_back_v1_0_4 +common_cpp_v1_0=$RDI_DATADIR/xsim/ip/common_cpp_v1_0 +sem_v4_1_15=$RDI_DATADIR/xsim/ip/sem_v4_1_15 +v_hdmi_tx_v3_0_5=$RDI_DATADIR/xsim/ip/v_hdmi_tx_v3_0_5 +dft_v4_2_9=$RDI_DATADIR/xsim/ip/dft_v4_2_9 +ieee802d3_400g_rs_fec_v3_0_3=$RDI_DATADIR/xsim/ip/ieee802d3_400g_rs_fec_v3_0_3 +srio_gen2_v4_1_20=$RDI_DATADIR/xsim/ip/srio_gen2_v4_1_20 +mipi_tx_phy_v1_0_0=$RDI_DATADIR/xsim/ip/mipi_tx_phy_v1_0_0 +axi_epc_v2_0_36=$RDI_DATADIR/xsim/ip/axi_epc_v2_0_36 +i2s_transmitter_v1_0_9=$RDI_DATADIR/xsim/ip/i2s_transmitter_v1_0_9 +flexo_100g_rs_fec_v1_0_30=$RDI_DATADIR/xsim/ip/flexo_100g_rs_fec_v1_0_30 +axi_tlm_ext_v1_0=$RDI_DATADIR/xsim/ip/axi_tlm_ext_v1_0 +axis_infrastructure_v1_1_1=$RDI_DATADIR/xsim/ip/axis_infrastructure_v1_1_1 +ai_noc=$RDI_DATADIR/xsim/ip/ai_noc +axi_emc_v3_0_33=$RDI_DATADIR/xsim/ip/axi_emc_v3_0_33 +multi_channel_25g_rs_fec_v1_0_28=$RDI_DATADIR/xsim/ip/multi_channel_25g_rs_fec_v1_0_28 +axi_protocol_checker_v2_0_19=$RDI_DATADIR/xsim/ip/axi_protocol_checker_v2_0_19 +axi_register_slice_v2_1_33=$RDI_DATADIR/xsim/ip/axi_register_slice_v2_1_33 +v_letterbox_v1_1_13=$RDI_DATADIR/xsim/ip/v_letterbox_v1_1_13 +gtwizard_ultrascale_v1_6_17=$RDI_DATADIR/xsim/ip/gtwizard_ultrascale_v1_6_17 +dprx_fec_8b10b_v1_0_3=$RDI_DATADIR/xsim/ip/dprx_fec_8b10b_v1_0_3 +axis_broadcaster_v1_1_32=$RDI_DATADIR/xsim/ip/axis_broadcaster_v1_1_32 +axis_clock_converter_v1_1_34=$RDI_DATADIR/xsim/ip/axis_clock_converter_v1_1_34 +ahblite_axi_bridge_v3_0_28=$RDI_DATADIR/xsim/ip/ahblite_axi_bridge_v3_0_28 +gtwizard_ultrascale_v1_5_4=$RDI_DATADIR/xsim/ip/gtwizard_ultrascale_v1_5_4 +sid_v8_0_22=$RDI_DATADIR/xsim/ip/sid_v8_0_22 +sim_ddr_v1_0=$RDI_DATADIR/xsim/ip/sim_ddr_v1_0 +axi_infrastructure_v1_1_0=$RDI_DATADIR/xsim/ip/axi_infrastructure_v1_1_0 +v_vid_gt_bridge_v2_0_5=$RDI_DATADIR/xsim/ip/v_vid_gt_bridge_v2_0_5 +axis_dwidth_converter_sc_v1_1=$RDI_DATADIR/xsim/ip/axis_dwidth_converter_sc_v1_1 +sim_qdma_cpp_v1_0=$RDI_DATADIR/xsim/ip/sim_qdma_cpp_v1_0 +noc_nidb_v1_0_0=$RDI_DATADIR/xsim/ip/noc_nidb_v1_0_0 +axis_ila_pp_v1_0_2=$RDI_DATADIR/xsim/ip/axis_ila_pp_v1_0_2 +noc_sc_v1_0_0=$RDI_DATADIR/xsim/ip/noc_sc_v1_0_0 +remote_port_sc_v4=$RDI_DATADIR/xsim/ip/remote_port_sc_v4 +ten_gig_eth_pcs_pma_v6_0_28=$RDI_DATADIR/xsim/ip/ten_gig_eth_pcs_pma_v6_0_28 +axis_register_slice_v1_1_33=$RDI_DATADIR/xsim/ip/axis_register_slice_v1_1_33 +clk_vip_v1_0_5=$RDI_DATADIR/xsim/ip/clk_vip_v1_0_5 +noc2_nps_v1_0_0=$RDI_DATADIR/xsim/ip/noc2_nps_v1_0_0 +v_vid_sdi_tx_bridge_v2_0_3=$RDI_DATADIR/xsim/ip/v_vid_sdi_tx_bridge_v2_0_3 +processing_system7_vip_v1_0_21=$RDI_DATADIR/xsim/ip/processing_system7_vip_v1_0_21 +microblaze_v9_5_5=$RDI_DATADIR/xsim/ip/microblaze_v9_5_5 +cmac_v2_6_17=$RDI_DATADIR/xsim/ip/cmac_v2_6_17 +pcie_jtag_v1_0_1=$RDI_DATADIR/xsim/ip/pcie_jtag_v1_0_1 +mem_pl_v1_0_2=$RDI_DATADIR/xsim/ip/mem_pl_v1_0_2 +mpram_v1_0_5=$RDI_DATADIR/xsim/ip/mpram_v1_0_5 +ai_pl=$RDI_DATADIR/xsim/ip/ai_pl +trace_hub_v1_1_0=$RDI_DATADIR/xsim/ip/trace_hub_v1_1_0 +v_hscaler_v1_1_13=$RDI_DATADIR/xsim/ip/v_hscaler_v1_1_13 +ddr4_pl_phy_v1_0_2=$RDI_DATADIR/xsim/ip/ddr4_pl_phy_v1_0_2 +axis_protocol_checker_v2_0_17=$RDI_DATADIR/xsim/ip/axis_protocol_checker_v2_0_17 +xbip_multadd_v3_0_21=$RDI_DATADIR/xsim/ip/xbip_multadd_v3_0_21 +axi_remapper_rx_v1_0_2=$RDI_DATADIR/xsim/ip/axi_remapper_rx_v1_0_2 +axi_vfifo_ctrl_v2_0_36=$RDI_DATADIR/xsim/ip/axi_vfifo_ctrl_v2_0_36 +v_warp_filter_v1_1_5=$RDI_DATADIR/xsim/ip/v_warp_filter_v1_1_5 +xfft_v9_1_13=$RDI_DATADIR/xsim/ip/xfft_v9_1_13 +axi_bram_ctrl_v4_1_11=$RDI_DATADIR/xsim/ip/axi_bram_ctrl_v4_1_11 +v_hcresampler_v1_1_13=$RDI_DATADIR/xsim/ip/v_hcresampler_v1_1_13 +v_demosaic_v1_1_13=$RDI_DATADIR/xsim/ip/v_demosaic_v1_1_13 +lte_fft_v2_1_11=$RDI_DATADIR/xsim/ip/lte_fft_v2_1_11 +xsdbs_v1_0_4=$RDI_DATADIR/xsim/ip/xsdbs_v1_0_4 +mrmac_v2_3_2=$RDI_DATADIR/xsim/ip/mrmac_v2_3_2 +v_tc_v6_2_9=$RDI_DATADIR/xsim/ip/v_tc_v6_2_9 +div_gen_v5_1_23=$RDI_DATADIR/xsim/ip/div_gen_v5_1_23 +rs_encoder_v9_0_22=$RDI_DATADIR/xsim/ip/rs_encoder_v9_0_22 +axi_utils_v2_0_10=$RDI_DATADIR/xsim/ip/axi_utils_v2_0_10 +v_axi4s_remap_v1_1_12=$RDI_DATADIR/xsim/ip/v_axi4s_remap_v1_1_12 +v_mix_v5_2_11=$RDI_DATADIR/xsim/ip/v_mix_v5_2_11 +xdfe_fft_v1_0_8=$RDI_DATADIR/xsim/ip/xdfe_fft_v1_0_8 +cic_compiler_v4_0_20=$RDI_DATADIR/xsim/ip/cic_compiler_v4_0_20 +sim_clk_gen_v1_0_5=$RDI_DATADIR/xsim/ip/sim_clk_gen_v1_0_5 +qdriv_pl_phy_v1_0_2=$RDI_DATADIR/xsim/ip/qdriv_pl_phy_v1_0_2 +lib_srl_fifo_v1_0_4=$RDI_DATADIR/xsim/ip/lib_srl_fifo_v1_0_4 +dbg_intf=$RDI_DATADIR/xsim/ip/dbg_intf +hdcp22_cipher_v1_0_5=$RDI_DATADIR/xsim/ip/hdcp22_cipher_v1_0_5 +usxgmii_v1_2_20=$RDI_DATADIR/xsim/ip/usxgmii_v1_2_20 +v_smpte_sdi_v3_0_12=$RDI_DATADIR/xsim/ip/v_smpte_sdi_v3_0_12 +mipi_dsi2_rx_ctrl_v1_0_1=$RDI_DATADIR/xsim/ip/mipi_dsi2_rx_ctrl_v1_0_1 +mdm_v3_2_27=$RDI_DATADIR/xsim/ip/mdm_v3_2_27 +accelerator_monitor_v1_1_0=$RDI_DATADIR/xsim/ip/accelerator_monitor_v1_1_0 +g975_efec_i7_v2_0_24=$RDI_DATADIR/xsim/ip/g975_efec_i7_v2_0_24 +axis_combiner_v1_1_31=$RDI_DATADIR/xsim/ip/axis_combiner_v1_1_31 +xpm_cdc_gen_v1_0_4=$RDI_DATADIR/xsim/ip/xpm_cdc_gen_v1_0_4 +dcmac_v2_5_0=$RDI_DATADIR/xsim/ip/dcmac_v2_5_0 +convolution_v9_0_21=$RDI_DATADIR/xsim/ip/convolution_v9_0_21 +microblaze_v11_0_14=$RDI_DATADIR/xsim/ip/microblaze_v11_0_14 +cpm4_v1_0_17=$RDI_DATADIR/xsim/ip/cpm4_v1_0_17 +cmpy_v6_0_25=$RDI_DATADIR/xsim/ip/cmpy_v6_0_25 +xlconstant_v1_1_9=$RDI_DATADIR/xsim/ip/xlconstant_v1_1_9 +noc_mc_ddr5_phy_v1_0_1=$RDI_DATADIR/xsim/ip/noc_mc_ddr5_phy_v1_0_1 +spdif_v2_0_30=$RDI_DATADIR/xsim/ip/spdif_v2_0_30 +oran_radio_if_v3_2_1=$RDI_DATADIR/xsim/ip/oran_radio_if_v3_2_1 +v_hdmi_rx1_v1_0_11=$RDI_DATADIR/xsim/ip/v_hdmi_rx1_v1_0_11 +cam_v3_1_0=$RDI_DATADIR/xsim/ip/cam_v3_1_0 +emb_fifo_gen_v1_0_6=$RDI_DATADIR/xsim/ip/emb_fifo_gen_v1_0_6 +axi_iic_v2_1_9=$RDI_DATADIR/xsim/ip/axi_iic_v2_1_9 +axi_perf_mon_v5_0_35=$RDI_DATADIR/xsim/ip/axi_perf_mon_v5_0_35 +v_tpg_v8_0_16=$RDI_DATADIR/xsim/ip/v_tpg_v8_0_16 +mutex_v2_1_14=$RDI_DATADIR/xsim/ip/mutex_v2_1_14 +emu_perf_common_v1_0=$RDI_DATADIR/xsim/ip/emu_perf_common_v1_0 +lib_fifo_v1_0_20=$RDI_DATADIR/xsim/ip/lib_fifo_v1_0_20 +advanced_io_wizard_v1_0_15=$RDI_DATADIR/xsim/ip/advanced_io_wizard_v1_0_15 +c_reg_fd_v12_0_10=$RDI_DATADIR/xsim/ip/c_reg_fd_v12_0_10 +axi4stream_vip_v1_1_19=$RDI_DATADIR/xsim/ip/axi4stream_vip_v1_1_19 +lmb_bram_if_cntlr_v4_0=$RDI_DATADIR/xsim/ip/lmb_bram_if_cntlr_v4_0 +lmb_v10_v3_0_14=$RDI_DATADIR/xsim/ip/lmb_v10_v3_0_14 +ieee802d3_50g_rs_fec_v1_0_25=$RDI_DATADIR/xsim/ip/ieee802d3_50g_rs_fec_v1_0_25 +icap_arb_v1_0_2=$RDI_DATADIR/xsim/ip/icap_arb_v1_0_2 +noc_npp_rptr_v1_0_0=$RDI_DATADIR/xsim/ip/noc_npp_rptr_v1_0_0 +vid_edid_v1_0_3=$RDI_DATADIR/xsim/ip/vid_edid_v1_0_3 +shell_utils_msp432_bsl_crc_gen_v1_0_2=$RDI_DATADIR/xsim/ip/shell_utils_msp432_bsl_crc_gen_v1_0_2 +sim_qdma_sc_v1_0=$RDI_DATADIR/xsim/ip/sim_qdma_sc_v1_0 +mult_gen_v12_0_22=$RDI_DATADIR/xsim/ip/mult_gen_v12_0_22 +timer_sync_1588_v1_2_5=$RDI_DATADIR/xsim/ip/timer_sync_1588_v1_2_5 +dfe_channelizer_wrapper_v1_0_0=$RDI_DATADIR/xsim/ip/dfe_channelizer_wrapper_v1_0_0 +clk_gen_sim_v1_0_4=$RDI_DATADIR/xsim/ip/clk_gen_sim_v1_0_4 +hsdp_trace_v2_0_2=$RDI_DATADIR/xsim/ip/hsdp_trace_v2_0_2 +noc_sc_v1_0_0_legacy=$RDI_DATADIR/xsim/ip/noc_sc_v1_0_0_legacy +v_frmbuf_wr_v3_0_0=$RDI_DATADIR/xsim/ip/v_frmbuf_wr_v3_0_0 +xdfe_cc_mixer_v2_0_5=$RDI_DATADIR/xsim/ip/xdfe_cc_mixer_v2_0_5 +mipi_dsi_tx_ctrl_v1_0_10=$RDI_DATADIR/xsim/ip/mipi_dsi_tx_ctrl_v1_0_10 +axi_apb_bridge_v3_0_20=$RDI_DATADIR/xsim/ip/axi_apb_bridge_v3_0_20 +ieee802d3_clause74_fec_v1_0_19=$RDI_DATADIR/xsim/ip/ieee802d3_clause74_fec_v1_0_19 +sim_xdma_sc_v1=$RDI_DATADIR/xsim/ip/sim_xdma_sc_v1 +axi_tft_v2_0_29=$RDI_DATADIR/xsim/ip/axi_tft_v2_0_29 +viterbi_v9_1_18=$RDI_DATADIR/xsim/ip/viterbi_v9_1_18 +ieee802d3_50g_rs_fec_v2_0_18=$RDI_DATADIR/xsim/ip/ieee802d3_50g_rs_fec_v2_0_18 +microblaze_mcs_v2_3_7=$RDI_DATADIR/xsim/ip/microblaze_mcs_v2_3_7 +fifo_generator_v13_0_7=$RDI_DATADIR/xsim/ip/fifo_generator_v13_0_7 +video_frame_crc_v1_0_6=$RDI_DATADIR/xsim/ip/video_frame_crc_v1_0_6 +dist_mem_gen_v8_0_15=$RDI_DATADIR/xsim/ip/dist_mem_gen_v8_0_15 +ilknf_v1_3_5=$RDI_DATADIR/xsim/ip/ilknf_v1_3_5 +rwd_tlmmodel_v1=$RDI_DATADIR/xsim/ip/rwd_tlmmodel_v1 +axi_tg_sc_v1_0=$RDI_DATADIR/xsim/ip/axi_tg_sc_v1_0 +axi_ethernet_buffer_v2_0_25=$RDI_DATADIR/xsim/ip/axi_ethernet_buffer_v2_0_25 +g975_efec_i4_v1_0_23=$RDI_DATADIR/xsim/ip/g975_efec_i4_v1_0_23 +c_accum_v12_0_19=$RDI_DATADIR/xsim/ip/c_accum_v12_0_19 +aie_xtlm_v1_0_0=$RDI_DATADIR/xsim/ip/aie_xtlm_v1_0_0 +ieee802d3_25g_rs_fec_v1_0_31=$RDI_DATADIR/xsim/ip/ieee802d3_25g_rs_fec_v1_0_31 +smartconnect_v1_0=$RDI_DATADIR/xsim/ip/smartconnect_v1_0 +noc_hbm_nmu_sim_v1_0_0=$RDI_DATADIR/xsim/ip/noc_hbm_nmu_sim_v1_0_0 +xdfe_nr_prach_v2_0_4=$RDI_DATADIR/xsim/ip/xdfe_nr_prach_v2_0_4 +gig_ethernet_pcs_pma_v16_2_21=$RDI_DATADIR/xsim/ip/gig_ethernet_pcs_pma_v16_2_21 +trace_s2mm_v2_0_1=$RDI_DATADIR/xsim/ip/trace_s2mm_v2_0_1 +v_sdi_rx_vid_bridge_v2_0_3=$RDI_DATADIR/xsim/ip/v_sdi_rx_vid_bridge_v2_0_3 +fit_timer_v2_0_12=$RDI_DATADIR/xsim/ip/fit_timer_v2_0_12 +ldpc_5gnr_v1_0_4=$RDI_DATADIR/xsim/ip/ldpc_5gnr_v1_0_4 +soft_ecc_proxy_v1_1_2=$RDI_DATADIR/xsim/ip/soft_ecc_proxy_v1_1_2 +axi_c2c_v1_0_11=$RDI_DATADIR/xsim/ip/axi_c2c_v1_0_11 +noc_nps4_v1_0_0=$RDI_DATADIR/xsim/ip/noc_nps4_v1_0_0 +hdcp22_rng_v1_0_3=$RDI_DATADIR/xsim/ip/hdcp22_rng_v1_0_3 +v_smpte_uhdsdi_v1_0_12=$RDI_DATADIR/xsim/ip/v_smpte_uhdsdi_v1_0_12 +bs_mux_v1_0_1=$RDI_DATADIR/xsim/ip/bs_mux_v1_0_1 +noc_nmu_sim_v1_0_0=$RDI_DATADIR/xsim/ip/noc_nmu_sim_v1_0_0 +fir_compiler_v7_2_23=$RDI_DATADIR/xsim/ip/fir_compiler_v7_2_23 +axi_hbicap_v1_0_8=$RDI_DATADIR/xsim/ip/axi_hbicap_v1_0_8 +x5io_wizard_phy_v1_0_1=$RDI_DATADIR/xsim/ip/x5io_wizard_phy_v1_0_1 +canfd_v3_0_12=$RDI_DATADIR/xsim/ip/canfd_v3_0_12 +nvme_tc_v3_0_8=$RDI_DATADIR/xsim/ip/nvme_tc_v3_0_8 +axi_usb2_device_v5_0_34=$RDI_DATADIR/xsim/ip/axi_usb2_device_v5_0_34 +ldpc_5gnr_lite_v1_0_3=$RDI_DATADIR/xsim/ip/ldpc_5gnr_lite_v1_0_3 +tmr_inject_v1_0_7=$RDI_DATADIR/xsim/ip/tmr_inject_v1_0_7 +v_uhdsdi_audio_v2_0_9=$RDI_DATADIR/xsim/ip/v_uhdsdi_audio_v2_0_9 +xsdbm_v3_0_3=$RDI_DATADIR/xsim/ip/xsdbm_v3_0_3 +v_vscaler_v1_1_13=$RDI_DATADIR/xsim/ip/v_vscaler_v1_1_13 +vid_phy_controller_v2_2_19=$RDI_DATADIR/xsim/ip/vid_phy_controller_v2_2_19 +mem_tg_v1_0_15=$RDI_DATADIR/xsim/ip/mem_tg_v1_0_15 +dfx_axi_shutdown_manager_v1_0_4=$RDI_DATADIR/xsim/ip/dfx_axi_shutdown_manager_v1_0_4 +ibert_lib_v1_0_12=$RDI_DATADIR/xsim/ip/ibert_lib_v1_0_12 +ta_dma_v1_0_17=$RDI_DATADIR/xsim/ip/ta_dma_v1_0_17 +cam_blk_lib_v1_2_0=$RDI_DATADIR/xsim/ip/cam_blk_lib_v1_2_0 +noc2_nps6x_v1_0_0=$RDI_DATADIR/xsim/ip/noc2_nps6x_v1_0_0 +noc2_xbr4x2_v1_0_0=$RDI_DATADIR/xsim/ip/noc2_xbr4x2_v1_0_0 +tcc_decoder_3gppmm_v2_0_28=$RDI_DATADIR/xsim/ip/tcc_decoder_3gppmm_v2_0_28 +noc_nps_v1_0_1=$RDI_DATADIR/xsim/ip/noc_nps_v1_0_1 +ddr4_pl_v1_0_15=$RDI_DATADIR/xsim/ip/ddr4_pl_v1_0_15 +advanced_io_wizard_phy_v1_0_4=$RDI_DATADIR/xsim/ip/advanced_io_wizard_phy_v1_0_4 +ft_prach_v1_2_3=$RDI_DATADIR/xsim/ip/ft_prach_v1_2_3 +lib_pkg_v1_0_4=$RDI_DATADIR/xsim/ip/lib_pkg_v1_0_4 +jtag_axi=$RDI_DATADIR/xsim/ip/jtag_axi +x5io_wizard_v1_0_6=$RDI_DATADIR/xsim/ip/x5io_wizard_v1_0_6 +axis_subset_converter_v1_1_33=$RDI_DATADIR/xsim/ip/axis_subset_converter_v1_1_33 +axi_quad_spi_v3_2_32=$RDI_DATADIR/xsim/ip/axi_quad_spi_v3_2_32 +g709_rs_encoder_v2_2_13=$RDI_DATADIR/xsim/ip/g709_rs_encoder_v2_2_13 +hdcp_v1_0_6=$RDI_DATADIR/xsim/ip/hdcp_v1_0_6 +v_frmbuf_rd_v2_4_4=$RDI_DATADIR/xsim/ip/v_frmbuf_rd_v2_4_4 +gigantic_mux=$RDI_DATADIR/xsim/ip/gigantic_mux +quadsgmii_v3_5_21=$RDI_DATADIR/xsim/ip/quadsgmii_v3_5_21 +xtlm_ap_ctrl_v1_0=$RDI_DATADIR/xsim/ip/xtlm_ap_ctrl_v1_0 +rst_vip_v1_0_7=$RDI_DATADIR/xsim/ip/rst_vip_v1_0_7 +ethernet_offload_v1_0_0=$RDI_DATADIR/xsim/ip/ethernet_offload_v1_0_0 +cpm5_v1_0_17=$RDI_DATADIR/xsim/ip/cpm5_v1_0_17 +processing_system7_v5_5_6=$RDI_DATADIR/xsim/ip/processing_system7_v5_5_6 +debug_tcp_server_v1=$RDI_DATADIR/xsim/ip/debug_tcp_server_v1 +xbip_dsp48_wrapper_v3_0_6=$RDI_DATADIR/xsim/ip/xbip_dsp48_wrapper_v3_0_6 +vitis_deadlock_detector_v1_0_2=$RDI_DATADIR/xsim/ip/vitis_deadlock_detector_v1_0_2 +axis_dbg_stub_v1_0_1=$RDI_DATADIR/xsim/ip/axis_dbg_stub_v1_0_1 +displayport_v9_0_10=$RDI_DATADIR/xsim/ip/displayport_v9_0_10 +visp_v1_0_0=$RDI_DATADIR/xsim/ip/visp_v1_0_0 +bscan_axi_v1_0_2=$RDI_DATADIR/xsim/ip/bscan_axi_v1_0_2 diff --git a/proj/project_1/project_1.sim/sim_1/behav/xsim/xsim.ini.bak b/proj/project_1/project_1.sim/sim_1/behav/xsim/xsim.ini.bak new file mode 100644 index 0000000..e2f5709 --- /dev/null +++ b/proj/project_1/project_1.sim/sim_1/behav/xsim/xsim.ini.bak @@ -0,0 +1,489 @@ +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 +cpri_v8_12_0=$RDI_DATADIR/xsim/ip/cpri_v8_12_0 +sim_ipc_multi_intf_v1_0=$RDI_DATADIR/xsim/ip/sim_ipc_multi_intf_v1_0 +axis_ila_txns_cntr_v1_0_0=$RDI_DATADIR/xsim/ip/axis_ila_txns_cntr_v1_0_0 +an_lt_v1_0_14=$RDI_DATADIR/xsim/ip/an_lt_v1_0_14 +axi_chip2chip_v5_0_24=$RDI_DATADIR/xsim/ip/axi_chip2chip_v5_0_24 +g709_fec_v2_4_11=$RDI_DATADIR/xsim/ip/g709_fec_v2_4_11 +audio_formatter_v1_0_15=$RDI_DATADIR/xsim/ip/audio_formatter_v1_0_15 +ats_switch_v1_0_12=$RDI_DATADIR/xsim/ip/ats_switch_v1_0_12 +xbip_pipe_v3_0_10=$RDI_DATADIR/xsim/ip/xbip_pipe_v3_0_10 +v_gamma_lut_v1_1_13=$RDI_DATADIR/xsim/ip/v_gamma_lut_v1_1_13 +vrf_fft_v1_0_0=$RDI_DATADIR/xsim/ip/vrf_fft_v1_0_0 +v_hdmi_tx1_v1_0_10=$RDI_DATADIR/xsim/ip/v_hdmi_tx1_v1_0_10 +pci32_v5_0_13=$RDI_DATADIR/xsim/ip/pci32_v5_0_13 +axi_mm2s_mapper_v1_1_32=$RDI_DATADIR/xsim/ip/axi_mm2s_mapper_v1_1_32 +axis_data_fifo_v1_1_34=$RDI_DATADIR/xsim/ip/axis_data_fifo_v1_1_34 +mailbox_v2_1_18=$RDI_DATADIR/xsim/ip/mailbox_v2_1_18 +lib_cdc_v1_0_3=$RDI_DATADIR/xsim/ip/lib_cdc_v1_0_3 +sdfec_ld_wrapper_v1_0_0=$RDI_DATADIR/xsim/ip/sdfec_ld_wrapper_v1_0_0 +v_tc_v6_1_14=$RDI_DATADIR/xsim/ip/v_tc_v6_1_14 +tcc_encoder_3gpplte_v4_0_20=$RDI_DATADIR/xsim/ip/tcc_encoder_3gpplte_v4_0_20 +axis_ila_intf_v1_0_2=$RDI_DATADIR/xsim/ip/axis_ila_intf_v1_0_2 +axi_lite_ipif_v3_0=$RDI_DATADIR/xsim/ip/axi_lite_ipif_v3_0 +vitis_net_p4_v2_2_0=$RDI_DATADIR/xsim/ip/vitis_net_p4_v2_2_0 +generic_baseblocks_v2_1_2=$RDI_DATADIR/xsim/ip/generic_baseblocks_v2_1_2 +ten_gig_eth_mac_v15_1_12=$RDI_DATADIR/xsim/ip/ten_gig_eth_mac_v15_1_12 +hdmi_gt_controller_v1_0_13=$RDI_DATADIR/xsim/ip/hdmi_gt_controller_v1_0_13 +v_frmbuf_rd_v3_0_0=$RDI_DATADIR/xsim/ip/v_frmbuf_rd_v3_0_0 +fifo_generator_v13_1_5=$RDI_DATADIR/xsim/ip/fifo_generator_v13_1_5 +dfx_bitstream_monitor_v1_0_6=$RDI_DATADIR/xsim/ip/dfx_bitstream_monitor_v1_0_6 +rs_toolbox_v9_0_14=$RDI_DATADIR/xsim/ip/rs_toolbox_v9_0_14 +perf_axi_tg_v1_0_15=$RDI_DATADIR/xsim/ip/perf_axi_tg_v1_0_15 +xbip_utils_v3_0_14=$RDI_DATADIR/xsim/ip/xbip_utils_v3_0_14 +dptx_v1_0_5=$RDI_DATADIR/xsim/ip/dptx_v1_0_5 +rs_decoder_v9_0_23=$RDI_DATADIR/xsim/ip/rs_decoder_v9_0_23 +dsp_macro_v1_0_7=$RDI_DATADIR/xsim/ip/dsp_macro_v1_0_7 +axi_vdma_v6_3_21=$RDI_DATADIR/xsim/ip/axi_vdma_v6_3_21 +axi_lite_ipif_v3_0_4=$RDI_DATADIR/xsim/ip/axi_lite_ipif_v3_0_4 +qdriv_pl_v1_0_14=$RDI_DATADIR/xsim/ip/qdriv_pl_v1_0_14 +axis_data_fifo_v2_0_15=$RDI_DATADIR/xsim/ip/axis_data_fifo_v2_0_15 +audio_tpg_v1_0_2=$RDI_DATADIR/xsim/ip/audio_tpg_v1_0_2 +noc_nsu_sim_v1_0_0=$RDI_DATADIR/xsim/ip/noc_nsu_sim_v1_0_0 +axi_i3c_v1_0_2=$RDI_DATADIR/xsim/ip/axi_i3c_v1_0_2 +axi_sg_v4_1_19=$RDI_DATADIR/xsim/ip/axi_sg_v4_1_19 +mipi_csi2_rx_ctrl_v1_0_11=$RDI_DATADIR/xsim/ip/mipi_csi2_rx_ctrl_v1_0_11 +hdmi_acr_ctrl_v1_0_3=$RDI_DATADIR/xsim/ip/hdmi_acr_ctrl_v1_0_3 +xxv_ethernet_v4_1_13=$RDI_DATADIR/xsim/ip/xxv_ethernet_v4_1_13 +hw_trace=$RDI_DATADIR/xsim/ip/hw_trace +ernic_v4_2_0=$RDI_DATADIR/xsim/ip/ernic_v4_2_0 +rama_v1_1_19_lib=$RDI_DATADIR/xsim/ip/rama_v1_1_19_lib +rfdace5_wrapper_v1_0_0=$RDI_DATADIR/xsim/ip/rfdace5_wrapper_v1_0_0 +tsn_temac_v1_0_12=$RDI_DATADIR/xsim/ip/tsn_temac_v1_0_12 +tri_mode_ethernet_mac_v9_0_35=$RDI_DATADIR/xsim/ip/tri_mode_ethernet_mac_v9_0_35 +axi_jtag_v1_0_2=$RDI_DATADIR/xsim/ip/axi_jtag_v1_0_2 +ieee802d3_200g_rs_fec_v2_0_12=$RDI_DATADIR/xsim/ip/ieee802d3_200g_rs_fec_v2_0_12 +fast_adapter_v1_0_10=$RDI_DATADIR/xsim/ip/fast_adapter_v1_0_10 +hdmi_gt_controller_v2_0_0=$RDI_DATADIR/xsim/ip/hdmi_gt_controller_v2_0_0 +xdfe_ofdm_v2_2_0=$RDI_DATADIR/xsim/ip/xdfe_ofdm_v2_2_0 +ptp_1588_timer_syncer_v2_0_6=$RDI_DATADIR/xsim/ip/ptp_1588_timer_syncer_v2_0_6 +vfb_v1_0_27=$RDI_DATADIR/xsim/ip/vfb_v1_0_27 +blk_mem_gen_v8_3_7=$RDI_DATADIR/xsim/ip/blk_mem_gen_v8_3_7 +vcu2_v1_0_0=$RDI_DATADIR/xsim/ip/vcu2_v1_0_0 +shell_utils_addr_remap_v1_0_12=$RDI_DATADIR/xsim/ip/shell_utils_addr_remap_v1_0_12 +oddr_v1_0_4=$RDI_DATADIR/xsim/ip/oddr_v1_0_4 +sim_trig_v1_0_13=$RDI_DATADIR/xsim/ip/sim_trig_v1_0_13 +v_hdmi_phy1_v1_0_13=$RDI_DATADIR/xsim/ip/v_hdmi_phy1_v1_0_13 +displayport_v7_0_25=$RDI_DATADIR/xsim/ip/displayport_v7_0_25 +cordic_v6_0_23=$RDI_DATADIR/xsim/ip/cordic_v6_0_23 +axi_crossbar_v2_1_34=$RDI_DATADIR/xsim/ip/axi_crossbar_v2_1_34 +proc_sys_reset_v5_0_16=$RDI_DATADIR/xsim/ip/proc_sys_reset_v5_0_16 +polar_v1_1_5=$RDI_DATADIR/xsim/ip/polar_v1_1_5 +xscl=$RDI_DATADIR/xsim/ip/xscl +xtlm_simple_interconnect_v1_0=$RDI_DATADIR/xsim/ip/xtlm_simple_interconnect_v1_0 +v_scenechange_v1_1_6=$RDI_DATADIR/xsim/ip/v_scenechange_v1_1_6 +func_emu_util_v1_0=$RDI_DATADIR/xsim/ip/func_emu_util_v1_0 +ldpc_v2_0_16=$RDI_DATADIR/xsim/ip/ldpc_v2_0_16 +switch_core_top_v1_0_17=$RDI_DATADIR/xsim/ip/switch_core_top_v1_0_17 +v_frmbuf_wr_v2_5_3=$RDI_DATADIR/xsim/ip/v_frmbuf_wr_v2_5_3 +bs_switch_v1_0_4=$RDI_DATADIR/xsim/ip/bs_switch_v1_0_4 +audio_clock_recovery_unit_v1_0_5=$RDI_DATADIR/xsim/ip/audio_clock_recovery_unit_v1_0_5 +xdfe_resampler_v1_0_10=$RDI_DATADIR/xsim/ip/xdfe_resampler_v1_0_10 +sd_fec_v1_1_15=$RDI_DATADIR/xsim/ip/sd_fec_v1_1_15 +fifo_generator_v13_2_11=$RDI_DATADIR/xsim/ip/fifo_generator_v13_2_11 +axi_timebase_wdt_v3_0_25=$RDI_DATADIR/xsim/ip/axi_timebase_wdt_v3_0_25 +psx_vip_v1_0_6=$RDI_DATADIR/xsim/ip/psx_vip_v1_0_6 +axi_memory_init_v1_0_14=$RDI_DATADIR/xsim/ip/axi_memory_init_v1_0_14 +emc_common_v3_0_8=$RDI_DATADIR/xsim/ip/emc_common_v3_0_8 +ieee802d3_rs_fec_v2_0_24=$RDI_DATADIR/xsim/ip/ieee802d3_rs_fec_v2_0_24 +axi_bram_ctrl_v4_0_15=$RDI_DATADIR/xsim/ip/axi_bram_ctrl_v4_0_15 +v_vcresampler_v1_1_13=$RDI_DATADIR/xsim/ip/v_vcresampler_v1_1_13 +v_csc_v1_1_13=$RDI_DATADIR/xsim/ip/v_csc_v1_1_13 +axi_lmb_bridge_v1_0_3=$RDI_DATADIR/xsim/ip/axi_lmb_bridge_v1_0_3 +zynq_ultra_ps_e_vip_v1_0_19=$RDI_DATADIR/xsim/ip/zynq_ultra_ps_e_vip_v1_0_19 +axi_cdma_v4_1_33=$RDI_DATADIR/xsim/ip/axi_cdma_v4_1_33 +v_dp_axi4s_vid_out_v1_0_9=$RDI_DATADIR/xsim/ip/v_dp_axi4s_vid_out_v1_0_9 +i2s_receiver_v1_0_9=$RDI_DATADIR/xsim/ip/i2s_receiver_v1_0_9 +rld3_pl_v1_0_15=$RDI_DATADIR/xsim/ip/rld3_pl_v1_0_15 +axi_firewall_v1_2_8=$RDI_DATADIR/xsim/ip/axi_firewall_v1_2_8 +axis_ila_ct_v1_0_1=$RDI_DATADIR/xsim/ip/axis_ila_ct_v1_0_1 +cpm5n_v1_0_9=$RDI_DATADIR/xsim/ip/cpm5n_v1_0_9 +hdcp22_cipher_dp_v1_0_2=$RDI_DATADIR/xsim/ip/hdcp22_cipher_dp_v1_0_2 +lut_buffer_v2_0_1=$RDI_DATADIR/xsim/ip/lut_buffer_v2_0_1 +axis_switch_v1_1_33=$RDI_DATADIR/xsim/ip/axis_switch_v1_1_33 +axis_switch_sc_v1_1=$RDI_DATADIR/xsim/ip/axis_switch_sc_v1_1 +mipi_dphy_v4_3_13=$RDI_DATADIR/xsim/ip/mipi_dphy_v4_3_13 +msm_adapters=$RDI_DATADIR/xsim/ip/msm_adapters +msm_cpp=$RDI_DATADIR/xsim/ip/msm_cpp +iomodule_v3_1_11=$RDI_DATADIR/xsim/ip/iomodule_v3_1_11 +fc32_rs_fec_v1_0_28=$RDI_DATADIR/xsim/ip/fc32_rs_fec_v1_0_28 +mammoth_transcode_v1_0_2=$RDI_DATADIR/xsim/ip/mammoth_transcode_v1_0_2 +aie_ps_v1_0=$RDI_DATADIR/xsim/ip/aie_ps_v1_0 +axi_hwicap_v3_0_37=$RDI_DATADIR/xsim/ip/axi_hwicap_v3_0_37 +g709_rs_decoder_v2_2_15=$RDI_DATADIR/xsim/ip/g709_rs_decoder_v2_2_15 +axi_stream_monitor_v1_1_1=$RDI_DATADIR/xsim/ip/axi_stream_monitor_v1_1_1 +axis_itct_v1_0_1=$RDI_DATADIR/xsim/ip/axis_itct_v1_0_1 +tmr_voter_v1_0_7=$RDI_DATADIR/xsim/ip/tmr_voter_v1_0_7 +lmb_v10_v3_0=$RDI_DATADIR/xsim/ip/lmb_v10_v3_0 +mdm_riscv_v1_0_3=$RDI_DATADIR/xsim/ip/mdm_riscv_v1_0_3 +axis_mem_v1_0_2=$RDI_DATADIR/xsim/ip/axis_mem_v1_0_2 +amm_axi_bridge_v1_0_19=$RDI_DATADIR/xsim/ip/amm_axi_bridge_v1_0_19 +videoaxi4s_bridge_v1_0_7=$RDI_DATADIR/xsim/ip/videoaxi4s_bridge_v1_0_7 +axis_accelerator_adapter_v2_1_19=$RDI_DATADIR/xsim/ip/axis_accelerator_adapter_v2_1_19 +axi_master_burst_v2_0_9=$RDI_DATADIR/xsim/ip/axi_master_burst_v2_0_9 +vrf_channelizer_v1_0_0=$RDI_DATADIR/xsim/ip/vrf_channelizer_v1_0_0 +uhdsdi_gt_v2_1_5=$RDI_DATADIR/xsim/ip/uhdsdi_gt_v2_1_5 +v_deinterlacer_v5_1_6=$RDI_DATADIR/xsim/ip/v_deinterlacer_v5_1_6 +noc_hbm_v1_0_1=$RDI_DATADIR/xsim/ip/noc_hbm_v1_0_1 +in_system_ibert_v1_0_23=$RDI_DATADIR/xsim/ip/in_system_ibert_v1_0_23 +axi_pcie_v2_9_12=$RDI_DATADIR/xsim/ip/axi_pcie_v2_9_12 +axi_epu_v1_0_6=$RDI_DATADIR/xsim/ip/axi_epu_v1_0_6 +floating_point_v7_0_24=$RDI_DATADIR/xsim/ip/floating_point_v7_0_24 +v_axi4s_vid_out_v4_0_19=$RDI_DATADIR/xsim/ip/v_axi4s_vid_out_v4_0_19 +v_multi_scaler_v1_2_7=$RDI_DATADIR/xsim/ip/v_multi_scaler_v1_2_7 +axis_dbg_sync_v1_0_1=$RDI_DATADIR/xsim/ip/axis_dbg_sync_v1_0_1 +can_v5_1_5=$RDI_DATADIR/xsim/ip/can_v5_1_5 +axis_cap_ctrl_v1_0_1=$RDI_DATADIR/xsim/ip/axis_cap_ctrl_v1_0_1 +xdfe_cc_filter_v1_1_5=$RDI_DATADIR/xsim/ip/xdfe_cc_filter_v1_1_5 +anlt_subcore_ip_v1_0_2=$RDI_DATADIR/xsim/ip/anlt_subcore_ip_v1_0_2 +v_smpte_uhdsdi_tx_v1_0_5=$RDI_DATADIR/xsim/ip/v_smpte_uhdsdi_tx_v1_0_5 +xlslice_v1_0_4=$RDI_DATADIR/xsim/ip/xlslice_v1_0_4 +noc2_nmu_sim_v1_0_0=$RDI_DATADIR/xsim/ip/noc2_nmu_sim_v1_0_0 +tmr_sem_v1_0_27=$RDI_DATADIR/xsim/ip/tmr_sem_v1_0_27 +axi_ahblite_bridge_v3_0_30=$RDI_DATADIR/xsim/ip/axi_ahblite_bridge_v3_0_30 +xtlm_trace_model_v1_0=$RDI_DATADIR/xsim/ip/xtlm_trace_model_v1_0 +hdcp_keymngmt_blk_v1_0_2=$RDI_DATADIR/xsim/ip/hdcp_keymngmt_blk_v1_0_2 +util_idelay_ctrl_v1_0_4=$RDI_DATADIR/xsim/ip/util_idelay_ctrl_v1_0_4 +axi_uart16550_v2_0_35=$RDI_DATADIR/xsim/ip/axi_uart16550_v2_0_35 +ecc_v2_0_17=$RDI_DATADIR/xsim/ip/ecc_v2_0_17 +v_frmbuf_rd_v2_2_12=$RDI_DATADIR/xsim/ip/v_frmbuf_rd_v2_2_12 +axi_data_fifo_v2_1_32=$RDI_DATADIR/xsim/ip/axi_data_fifo_v2_1_32 +xdfe_equalizer_v1_0_10=$RDI_DATADIR/xsim/ip/xdfe_equalizer_v1_0_10 +axi_mcdma_v1_2_0=$RDI_DATADIR/xsim/ip/axi_mcdma_v1_2_0 +versal_cips_ps_vip_v1_0_11=$RDI_DATADIR/xsim/ip/versal_cips_ps_vip_v1_0_11 +emb_mem_gen_v1_0_10=$RDI_DATADIR/xsim/ip/emb_mem_gen_v1_0_10 +mdm_v3_2=$RDI_DATADIR/xsim/ip/mdm_v3_2 +displayport_v8_1_10=$RDI_DATADIR/xsim/ip/displayport_v8_1_10 +tcc_encoder_3gpp_v5_0_23=$RDI_DATADIR/xsim/ip/tcc_encoder_3gpp_v5_0_23 +pcie_qdma_mailbox_v1_0_8=$RDI_DATADIR/xsim/ip/pcie_qdma_mailbox_v1_0_8 +v_frmbuf_rd_v2_5_3=$RDI_DATADIR/xsim/ip/v_frmbuf_rd_v2_5_3 +util_vector_logic_v2_0_4=$RDI_DATADIR/xsim/ip/util_vector_logic_v2_0_4 +axis_dwidth_converter_v1_1_32=$RDI_DATADIR/xsim/ip/axis_dwidth_converter_v1_1_32 +axi4svideo_bridge_v1_0_19=$RDI_DATADIR/xsim/ip/axi4svideo_bridge_v1_0_19 +util_ff_v1_0_4=$RDI_DATADIR/xsim/ip/util_ff_v1_0_4 +sim_xdma_cpp_v1=$RDI_DATADIR/xsim/ip/sim_xdma_cpp_v1 +microblaze_riscv_v1_0_3=$RDI_DATADIR/xsim/ip/microblaze_riscv_v1_0_3 +cpri_v8_11_22=$RDI_DATADIR/xsim/ip/cpri_v8_11_22 +v_vid_in_axi4s_v5_0_5=$RDI_DATADIR/xsim/ip/v_vid_in_axi4s_v5_0_5 +dprx_v1_0_5=$RDI_DATADIR/xsim/ip/dprx_v1_0_5 +shell_utils_build_info_v2_0_0=$RDI_DATADIR/xsim/ip/shell_utils_build_info_v2_0_0 +util_reduced_logic_v2_0_6=$RDI_DATADIR/xsim/ip/util_reduced_logic_v2_0_6 +axi_pcie3_v3_0_32=$RDI_DATADIR/xsim/ip/axi_pcie3_v3_0_32 +v_smpte_uhdsdi_rx_v1_0_4=$RDI_DATADIR/xsim/ip/v_smpte_uhdsdi_rx_v1_0_4 +axi_datamover_v5_1_35=$RDI_DATADIR/xsim/ip/axi_datamover_v5_1_35 +interlaken_v2_4_19=$RDI_DATADIR/xsim/ip/interlaken_v2_4_19 +nvmeha_v1_0_14=$RDI_DATADIR/xsim/ip/nvmeha_v1_0_14 +av_pat_gen_v2_0_2=$RDI_DATADIR/xsim/ip/av_pat_gen_v2_0_2 +bfr_ft_wrapper_v1_0_0=$RDI_DATADIR/xsim/ip/bfr_ft_wrapper_v1_0_0 +axis_mu_v1_0_1=$RDI_DATADIR/xsim/ip/axis_mu_v1_0_1 +zynq_ultra_ps_e_v3_3_14=$RDI_DATADIR/xsim/ip/zynq_ultra_ps_e_v3_3_14 +stm_v1_0=$RDI_DATADIR/xsim/ip/stm_v1_0 +v_hdmi_rx_v3_0_5=$RDI_DATADIR/xsim/ip/v_hdmi_rx_v3_0_5 +ethernet_1_10_25g_v2_7_18=$RDI_DATADIR/xsim/ip/ethernet_1_10_25g_v2_7_18 +v_tpg_v8_2_6=$RDI_DATADIR/xsim/ip/v_tpg_v8_2_6 +qdma_v5_0_12=$RDI_DATADIR/xsim/ip/qdma_v5_0_12 +pci64_v5_0_12=$RDI_DATADIR/xsim/ip/pci64_v5_0_12 +v_uhdsdi_vidgen_v1_0_3=$RDI_DATADIR/xsim/ip/v_uhdsdi_vidgen_v1_0_3 +jesd204c_v4_3_0=$RDI_DATADIR/xsim/ip/jesd204c_v4_3_0 +axi_timer_v2_0_35=$RDI_DATADIR/xsim/ip/axi_timer_v2_0_35 +c_compare_v12_0_10=$RDI_DATADIR/xsim/ip/c_compare_v12_0_10 +axi_clock_converter_v2_1_32=$RDI_DATADIR/xsim/ip/axi_clock_converter_v2_1_32 +axi_protocol_converter_v2_1_33=$RDI_DATADIR/xsim/ip/axi_protocol_converter_v2_1_33 +axi_dma_v7_1_34=$RDI_DATADIR/xsim/ip/axi_dma_v7_1_34 +pl_fileio_v1_0_0=$RDI_DATADIR/xsim/ip/pl_fileio_v1_0_0 +dfx_decoupler_v1_0_11=$RDI_DATADIR/xsim/ip/dfx_decoupler_v1_0_11 +axi_sideband_util_v1_0_17=$RDI_DATADIR/xsim/ip/axi_sideband_util_v1_0_17 +tmr_manager_v1_0_13=$RDI_DATADIR/xsim/ip/tmr_manager_v1_0_13 +fec_5g_common_v1_1_5=$RDI_DATADIR/xsim/ip/fec_5g_common_v1_1_5 +axi_ethernetlite_v3_0_32=$RDI_DATADIR/xsim/ip/axi_ethernetlite_v3_0_32 +lib_bmg_v1_0_18=$RDI_DATADIR/xsim/ip/lib_bmg_v1_0_18 +high_speed_selectio_wiz_v3_6_10=$RDI_DATADIR/xsim/ip/high_speed_selectio_wiz_v3_6_10 +c_shift_ram_v12_0_18=$RDI_DATADIR/xsim/ip/c_shift_ram_v12_0_18 +axi_pmon_v1_0_2=$RDI_DATADIR/xsim/ip/axi_pmon_v1_0_2 +v_vid_in_axi4s_v4_0_11=$RDI_DATADIR/xsim/ip/v_vid_in_axi4s_v4_0_11 +uhdsdi_gt_v2_2_0=$RDI_DATADIR/xsim/ip/uhdsdi_gt_v2_2_0 +v_tpg_v8_1_12=$RDI_DATADIR/xsim/ip/v_tpg_v8_1_12 +noc2_nsu_sim_v1_0_0=$RDI_DATADIR/xsim/ip/noc2_nsu_sim_v1_0_0 +axi_gpio_v2_0_35=$RDI_DATADIR/xsim/ip/axi_gpio_v2_0_35 +axis_interconnect_v1_1_24=$RDI_DATADIR/xsim/ip/axis_interconnect_v1_1_24 +adc_dac_if_phy_v1_0_0=$RDI_DATADIR/xsim/ip/adc_dac_if_phy_v1_0_0 +xilinx_vip=$RDI_DATADIR/xsim/ip/xilinx_vip +noc_ncrb_v1_0_0=$RDI_DATADIR/xsim/ip/noc_ncrb_v1_0_0 +c_addsub_v12_0_19=$RDI_DATADIR/xsim/ip/c_addsub_v12_0_19 +sem_ultra_v3_1_27=$RDI_DATADIR/xsim/ip/sem_ultra_v3_1_27 +v_dual_splitter_v1_0_11=$RDI_DATADIR/xsim/ip/v_dual_splitter_v1_0_11 +v_warp_init_v1_1_5=$RDI_DATADIR/xsim/ip/v_warp_init_v1_1_5 +mipi_csi2_tx_ctrl_v1_0_6=$RDI_DATADIR/xsim/ip/mipi_csi2_tx_ctrl_v1_0_6 +roe_framer_v3_0_9=$RDI_DATADIR/xsim/ip/roe_framer_v3_0_9 +axi_remapper_tx_v1_0_3=$RDI_DATADIR/xsim/ip/axi_remapper_tx_v1_0_3 +axi_traffic_gen_v3_0_19=$RDI_DATADIR/xsim/ip/axi_traffic_gen_v3_0_19 +dfx_controller_v1_0_8=$RDI_DATADIR/xsim/ip/dfx_controller_v1_0_8 +pr_decoupler_v1_0_11=$RDI_DATADIR/xsim/ip/pr_decoupler_v1_0_11 +tmr_comparator_v1_0_8=$RDI_DATADIR/xsim/ip/tmr_comparator_v1_0_8 +rfadce5_wrapper_v1_0_0=$RDI_DATADIR/xsim/ip/rfadce5_wrapper_v1_0_0 +axi_mmu_v2_1_31=$RDI_DATADIR/xsim/ip/axi_mmu_v2_1_31 +axi_dwidth_converter_v2_1_33=$RDI_DATADIR/xsim/ip/axi_dwidth_converter_v2_1_33 +common_rpc_v1=$RDI_DATADIR/xsim/ip/common_rpc_v1 +axis_ila_adv_trig_v1_0_1=$RDI_DATADIR/xsim/ip/axis_ila_adv_trig_v1_0_1 +picxo_fracxo_v2_0_3=$RDI_DATADIR/xsim/ip/picxo_fracxo_v2_0_3 +dp_videoaxi4s_bridge_v1_0_3=$RDI_DATADIR/xsim/ip/dp_videoaxi4s_bridge_v1_0_3 +v_frmbuf_wr_v2_2_12=$RDI_DATADIR/xsim/ip/v_frmbuf_wr_v2_2_12 +sd_fec_beta_v1_0_0=$RDI_DATADIR/xsim/ip/sd_fec_beta_v1_0_0 +iomodule_v3_0=$RDI_DATADIR/xsim/ip/iomodule_v3_0 +lmb_bram_if_cntlr_v4_0_25=$RDI_DATADIR/xsim/ip/lmb_bram_if_cntlr_v4_0_25 +mrmac_v3_0_0=$RDI_DATADIR/xsim/ip/mrmac_v3_0_0 +tsn_endpoint_ethernet_mac_block_v1_0_18=$RDI_DATADIR/xsim/ip/tsn_endpoint_ethernet_mac_block_v1_0_18 +axis_vio_v1_0_12=$RDI_DATADIR/xsim/ip/axis_vio_v1_0_12 +xtlm=$RDI_DATADIR/xsim/ip/xtlm +bscan_jtag=$RDI_DATADIR/xsim/ip/bscan_jtag +floating_point_v7_1_19=$RDI_DATADIR/xsim/ip/floating_point_v7_1_19 +ai_pl_trig=$RDI_DATADIR/xsim/ip/ai_pl_trig +axi_dbg_hub=$RDI_DATADIR/xsim/ip/axi_dbg_hub +pc_cfr_v8_0_3=$RDI_DATADIR/xsim/ip/pc_cfr_v8_0_3 +axi_amm_bridge_v1_0_23=$RDI_DATADIR/xsim/ip/axi_amm_bridge_v1_0_23 +c_counter_binary_v12_0_20=$RDI_DATADIR/xsim/ip/c_counter_binary_v12_0_20 +xtlm_ipc_v1_0=$RDI_DATADIR/xsim/ip/xtlm_ipc_v1_0 +axi_vip_v1_1_19=$RDI_DATADIR/xsim/ip/axi_vip_v1_1_19 +xlconcat_v2_1_6=$RDI_DATADIR/xsim/ip/xlconcat_v2_1_6 +axi_msg_v1_0_12=$RDI_DATADIR/xsim/ip/axi_msg_v1_0_12 +noc_nps6_v1_0_0=$RDI_DATADIR/xsim/ip/noc_nps6_v1_0_0 +xpm=$RDI_DATADIR/xsim/ip/xpm +bsip_v1_1_1=$RDI_DATADIR/xsim/ip/bsip_v1_1_1 +interrupt_control_v3_1_5=$RDI_DATADIR/xsim/ip/interrupt_control_v3_1_5 +gtwizard_ultrascale_v1_7_19=$RDI_DATADIR/xsim/ip/gtwizard_ultrascale_v1_7_19 +axi_intc_v4_1=$RDI_DATADIR/xsim/ip/axi_intc_v4_1 +rld3_pl_phy_v1_0_2=$RDI_DATADIR/xsim/ip/rld3_pl_phy_v1_0_2 +mipi_rx_phy_v1_0_1=$RDI_DATADIR/xsim/ip/mipi_rx_phy_v1_0_1 +sim_cpu_v1_0=$RDI_DATADIR/xsim/ip/sim_cpu_v1_0 +dds_compiler_v6_0_26=$RDI_DATADIR/xsim/ip/dds_compiler_v6_0_26 +xdma_v4_1_31=$RDI_DATADIR/xsim/ip/xdma_v4_1_31 +axi_fifo_mm_s_v4_3_5=$RDI_DATADIR/xsim/ip/axi_fifo_mm_s_v4_3_5 +l_ethernet_v3_3_13=$RDI_DATADIR/xsim/ip/l_ethernet_v3_3_13 +xdfe_nlf_v1_1_2=$RDI_DATADIR/xsim/ip/xdfe_nlf_v1_1_2 +axi_mcdma_v1_1_14=$RDI_DATADIR/xsim/ip/axi_mcdma_v1_1_14 +remote_port_c_v4=$RDI_DATADIR/xsim/ip/remote_port_c_v4 +ltlib_v1_0_2=$RDI_DATADIR/xsim/ip/ltlib_v1_0_2 +xdfe_common_v1_0_4=$RDI_DATADIR/xsim/ip/xdfe_common_v1_0_4 +axi_intc_v4_1_20=$RDI_DATADIR/xsim/ip/axi_intc_v4_1_20 +axi_uartlite_v2_0_37=$RDI_DATADIR/xsim/ip/axi_uartlite_v2_0_37 +gmii_to_rgmii_v4_1_17=$RDI_DATADIR/xsim/ip/gmii_to_rgmii_v4_1_17 +cdcam_v1_2_0=$RDI_DATADIR/xsim/ip/cdcam_v1_2_0 +blk_mem_gen_v8_4_9=$RDI_DATADIR/xsim/ip/blk_mem_gen_v8_4_9 +system_cache_v5_0_12=$RDI_DATADIR/xsim/ip/system_cache_v5_0_12 +cmac_usplus_v3_1_19=$RDI_DATADIR/xsim/ip/cmac_usplus_v3_1_19 +axi_interface_monitor_v1_1_0=$RDI_DATADIR/xsim/ip/axi_interface_monitor_v1_1_0 +axi_interconnect_v1_7_24=$RDI_DATADIR/xsim/ip/axi_interconnect_v1_7_24 +noc2_xbr2x4_v1_0_0=$RDI_DATADIR/xsim/ip/noc2_xbr2x4_v1_0_0 +uram_rd_back_v1_0_4=$RDI_DATADIR/xsim/ip/uram_rd_back_v1_0_4 +common_cpp_v1_0=$RDI_DATADIR/xsim/ip/common_cpp_v1_0 +sem_v4_1_15=$RDI_DATADIR/xsim/ip/sem_v4_1_15 +v_hdmi_tx_v3_0_5=$RDI_DATADIR/xsim/ip/v_hdmi_tx_v3_0_5 +dft_v4_2_9=$RDI_DATADIR/xsim/ip/dft_v4_2_9 +ieee802d3_400g_rs_fec_v3_0_3=$RDI_DATADIR/xsim/ip/ieee802d3_400g_rs_fec_v3_0_3 +srio_gen2_v4_1_20=$RDI_DATADIR/xsim/ip/srio_gen2_v4_1_20 +mipi_tx_phy_v1_0_0=$RDI_DATADIR/xsim/ip/mipi_tx_phy_v1_0_0 +axi_epc_v2_0_36=$RDI_DATADIR/xsim/ip/axi_epc_v2_0_36 +i2s_transmitter_v1_0_9=$RDI_DATADIR/xsim/ip/i2s_transmitter_v1_0_9 +flexo_100g_rs_fec_v1_0_30=$RDI_DATADIR/xsim/ip/flexo_100g_rs_fec_v1_0_30 +axi_tlm_ext_v1_0=$RDI_DATADIR/xsim/ip/axi_tlm_ext_v1_0 +axis_infrastructure_v1_1_1=$RDI_DATADIR/xsim/ip/axis_infrastructure_v1_1_1 +ai_noc=$RDI_DATADIR/xsim/ip/ai_noc +axi_emc_v3_0_33=$RDI_DATADIR/xsim/ip/axi_emc_v3_0_33 +multi_channel_25g_rs_fec_v1_0_28=$RDI_DATADIR/xsim/ip/multi_channel_25g_rs_fec_v1_0_28 +axi_protocol_checker_v2_0_19=$RDI_DATADIR/xsim/ip/axi_protocol_checker_v2_0_19 +axi_register_slice_v2_1_33=$RDI_DATADIR/xsim/ip/axi_register_slice_v2_1_33 +v_letterbox_v1_1_13=$RDI_DATADIR/xsim/ip/v_letterbox_v1_1_13 +gtwizard_ultrascale_v1_6_17=$RDI_DATADIR/xsim/ip/gtwizard_ultrascale_v1_6_17 +dprx_fec_8b10b_v1_0_3=$RDI_DATADIR/xsim/ip/dprx_fec_8b10b_v1_0_3 +axis_broadcaster_v1_1_32=$RDI_DATADIR/xsim/ip/axis_broadcaster_v1_1_32 +axis_clock_converter_v1_1_34=$RDI_DATADIR/xsim/ip/axis_clock_converter_v1_1_34 +ahblite_axi_bridge_v3_0_28=$RDI_DATADIR/xsim/ip/ahblite_axi_bridge_v3_0_28 +gtwizard_ultrascale_v1_5_4=$RDI_DATADIR/xsim/ip/gtwizard_ultrascale_v1_5_4 +sid_v8_0_22=$RDI_DATADIR/xsim/ip/sid_v8_0_22 +sim_ddr_v1_0=$RDI_DATADIR/xsim/ip/sim_ddr_v1_0 +axi_infrastructure_v1_1_0=$RDI_DATADIR/xsim/ip/axi_infrastructure_v1_1_0 +v_vid_gt_bridge_v2_0_5=$RDI_DATADIR/xsim/ip/v_vid_gt_bridge_v2_0_5 +axis_dwidth_converter_sc_v1_1=$RDI_DATADIR/xsim/ip/axis_dwidth_converter_sc_v1_1 +sim_qdma_cpp_v1_0=$RDI_DATADIR/xsim/ip/sim_qdma_cpp_v1_0 +noc_nidb_v1_0_0=$RDI_DATADIR/xsim/ip/noc_nidb_v1_0_0 +axis_ila_pp_v1_0_2=$RDI_DATADIR/xsim/ip/axis_ila_pp_v1_0_2 +noc_sc_v1_0_0=$RDI_DATADIR/xsim/ip/noc_sc_v1_0_0 +remote_port_sc_v4=$RDI_DATADIR/xsim/ip/remote_port_sc_v4 +ten_gig_eth_pcs_pma_v6_0_28=$RDI_DATADIR/xsim/ip/ten_gig_eth_pcs_pma_v6_0_28 +axis_register_slice_v1_1_33=$RDI_DATADIR/xsim/ip/axis_register_slice_v1_1_33 +clk_vip_v1_0_5=$RDI_DATADIR/xsim/ip/clk_vip_v1_0_5 +noc2_nps_v1_0_0=$RDI_DATADIR/xsim/ip/noc2_nps_v1_0_0 +v_vid_sdi_tx_bridge_v2_0_3=$RDI_DATADIR/xsim/ip/v_vid_sdi_tx_bridge_v2_0_3 +processing_system7_vip_v1_0_21=$RDI_DATADIR/xsim/ip/processing_system7_vip_v1_0_21 +microblaze_v9_5_5=$RDI_DATADIR/xsim/ip/microblaze_v9_5_5 +cmac_v2_6_17=$RDI_DATADIR/xsim/ip/cmac_v2_6_17 +pcie_jtag_v1_0_1=$RDI_DATADIR/xsim/ip/pcie_jtag_v1_0_1 +mem_pl_v1_0_2=$RDI_DATADIR/xsim/ip/mem_pl_v1_0_2 +mpram_v1_0_5=$RDI_DATADIR/xsim/ip/mpram_v1_0_5 +ai_pl=$RDI_DATADIR/xsim/ip/ai_pl +trace_hub_v1_1_0=$RDI_DATADIR/xsim/ip/trace_hub_v1_1_0 +v_hscaler_v1_1_13=$RDI_DATADIR/xsim/ip/v_hscaler_v1_1_13 +ddr4_pl_phy_v1_0_2=$RDI_DATADIR/xsim/ip/ddr4_pl_phy_v1_0_2 +axis_protocol_checker_v2_0_17=$RDI_DATADIR/xsim/ip/axis_protocol_checker_v2_0_17 +xbip_multadd_v3_0_21=$RDI_DATADIR/xsim/ip/xbip_multadd_v3_0_21 +axi_remapper_rx_v1_0_2=$RDI_DATADIR/xsim/ip/axi_remapper_rx_v1_0_2 +axi_vfifo_ctrl_v2_0_36=$RDI_DATADIR/xsim/ip/axi_vfifo_ctrl_v2_0_36 +v_warp_filter_v1_1_5=$RDI_DATADIR/xsim/ip/v_warp_filter_v1_1_5 +xfft_v9_1_13=$RDI_DATADIR/xsim/ip/xfft_v9_1_13 +axi_bram_ctrl_v4_1_11=$RDI_DATADIR/xsim/ip/axi_bram_ctrl_v4_1_11 +v_hcresampler_v1_1_13=$RDI_DATADIR/xsim/ip/v_hcresampler_v1_1_13 +v_demosaic_v1_1_13=$RDI_DATADIR/xsim/ip/v_demosaic_v1_1_13 +lte_fft_v2_1_11=$RDI_DATADIR/xsim/ip/lte_fft_v2_1_11 +xsdbs_v1_0_4=$RDI_DATADIR/xsim/ip/xsdbs_v1_0_4 +mrmac_v2_3_2=$RDI_DATADIR/xsim/ip/mrmac_v2_3_2 +v_tc_v6_2_9=$RDI_DATADIR/xsim/ip/v_tc_v6_2_9 +div_gen_v5_1_23=$RDI_DATADIR/xsim/ip/div_gen_v5_1_23 +rs_encoder_v9_0_22=$RDI_DATADIR/xsim/ip/rs_encoder_v9_0_22 +axi_utils_v2_0_10=$RDI_DATADIR/xsim/ip/axi_utils_v2_0_10 +v_axi4s_remap_v1_1_12=$RDI_DATADIR/xsim/ip/v_axi4s_remap_v1_1_12 +v_mix_v5_2_11=$RDI_DATADIR/xsim/ip/v_mix_v5_2_11 +xdfe_fft_v1_0_8=$RDI_DATADIR/xsim/ip/xdfe_fft_v1_0_8 +cic_compiler_v4_0_20=$RDI_DATADIR/xsim/ip/cic_compiler_v4_0_20 +sim_clk_gen_v1_0_5=$RDI_DATADIR/xsim/ip/sim_clk_gen_v1_0_5 +qdriv_pl_phy_v1_0_2=$RDI_DATADIR/xsim/ip/qdriv_pl_phy_v1_0_2 +lib_srl_fifo_v1_0_4=$RDI_DATADIR/xsim/ip/lib_srl_fifo_v1_0_4 +dbg_intf=$RDI_DATADIR/xsim/ip/dbg_intf +hdcp22_cipher_v1_0_5=$RDI_DATADIR/xsim/ip/hdcp22_cipher_v1_0_5 +usxgmii_v1_2_20=$RDI_DATADIR/xsim/ip/usxgmii_v1_2_20 +v_smpte_sdi_v3_0_12=$RDI_DATADIR/xsim/ip/v_smpte_sdi_v3_0_12 +mipi_dsi2_rx_ctrl_v1_0_1=$RDI_DATADIR/xsim/ip/mipi_dsi2_rx_ctrl_v1_0_1 +mdm_v3_2_27=$RDI_DATADIR/xsim/ip/mdm_v3_2_27 +accelerator_monitor_v1_1_0=$RDI_DATADIR/xsim/ip/accelerator_monitor_v1_1_0 +g975_efec_i7_v2_0_24=$RDI_DATADIR/xsim/ip/g975_efec_i7_v2_0_24 +axis_combiner_v1_1_31=$RDI_DATADIR/xsim/ip/axis_combiner_v1_1_31 +xpm_cdc_gen_v1_0_4=$RDI_DATADIR/xsim/ip/xpm_cdc_gen_v1_0_4 +dcmac_v2_5_0=$RDI_DATADIR/xsim/ip/dcmac_v2_5_0 +convolution_v9_0_21=$RDI_DATADIR/xsim/ip/convolution_v9_0_21 +microblaze_v11_0_14=$RDI_DATADIR/xsim/ip/microblaze_v11_0_14 +cpm4_v1_0_17=$RDI_DATADIR/xsim/ip/cpm4_v1_0_17 +cmpy_v6_0_25=$RDI_DATADIR/xsim/ip/cmpy_v6_0_25 +xlconstant_v1_1_9=$RDI_DATADIR/xsim/ip/xlconstant_v1_1_9 +noc_mc_ddr5_phy_v1_0_1=$RDI_DATADIR/xsim/ip/noc_mc_ddr5_phy_v1_0_1 +spdif_v2_0_30=$RDI_DATADIR/xsim/ip/spdif_v2_0_30 +oran_radio_if_v3_2_1=$RDI_DATADIR/xsim/ip/oran_radio_if_v3_2_1 +v_hdmi_rx1_v1_0_11=$RDI_DATADIR/xsim/ip/v_hdmi_rx1_v1_0_11 +cam_v3_1_0=$RDI_DATADIR/xsim/ip/cam_v3_1_0 +emb_fifo_gen_v1_0_6=$RDI_DATADIR/xsim/ip/emb_fifo_gen_v1_0_6 +axi_iic_v2_1_9=$RDI_DATADIR/xsim/ip/axi_iic_v2_1_9 +axi_perf_mon_v5_0_35=$RDI_DATADIR/xsim/ip/axi_perf_mon_v5_0_35 +v_tpg_v8_0_16=$RDI_DATADIR/xsim/ip/v_tpg_v8_0_16 +mutex_v2_1_14=$RDI_DATADIR/xsim/ip/mutex_v2_1_14 +emu_perf_common_v1_0=$RDI_DATADIR/xsim/ip/emu_perf_common_v1_0 +lib_fifo_v1_0_20=$RDI_DATADIR/xsim/ip/lib_fifo_v1_0_20 +advanced_io_wizard_v1_0_15=$RDI_DATADIR/xsim/ip/advanced_io_wizard_v1_0_15 +c_reg_fd_v12_0_10=$RDI_DATADIR/xsim/ip/c_reg_fd_v12_0_10 +axi4stream_vip_v1_1_19=$RDI_DATADIR/xsim/ip/axi4stream_vip_v1_1_19 +lmb_bram_if_cntlr_v4_0=$RDI_DATADIR/xsim/ip/lmb_bram_if_cntlr_v4_0 +lmb_v10_v3_0_14=$RDI_DATADIR/xsim/ip/lmb_v10_v3_0_14 +ieee802d3_50g_rs_fec_v1_0_25=$RDI_DATADIR/xsim/ip/ieee802d3_50g_rs_fec_v1_0_25 +icap_arb_v1_0_2=$RDI_DATADIR/xsim/ip/icap_arb_v1_0_2 +noc_npp_rptr_v1_0_0=$RDI_DATADIR/xsim/ip/noc_npp_rptr_v1_0_0 +vid_edid_v1_0_3=$RDI_DATADIR/xsim/ip/vid_edid_v1_0_3 +shell_utils_msp432_bsl_crc_gen_v1_0_2=$RDI_DATADIR/xsim/ip/shell_utils_msp432_bsl_crc_gen_v1_0_2 +sim_qdma_sc_v1_0=$RDI_DATADIR/xsim/ip/sim_qdma_sc_v1_0 +mult_gen_v12_0_22=$RDI_DATADIR/xsim/ip/mult_gen_v12_0_22 +timer_sync_1588_v1_2_5=$RDI_DATADIR/xsim/ip/timer_sync_1588_v1_2_5 +dfe_channelizer_wrapper_v1_0_0=$RDI_DATADIR/xsim/ip/dfe_channelizer_wrapper_v1_0_0 +clk_gen_sim_v1_0_4=$RDI_DATADIR/xsim/ip/clk_gen_sim_v1_0_4 +hsdp_trace_v2_0_2=$RDI_DATADIR/xsim/ip/hsdp_trace_v2_0_2 +noc_sc_v1_0_0_legacy=$RDI_DATADIR/xsim/ip/noc_sc_v1_0_0_legacy +v_frmbuf_wr_v3_0_0=$RDI_DATADIR/xsim/ip/v_frmbuf_wr_v3_0_0 +xdfe_cc_mixer_v2_0_5=$RDI_DATADIR/xsim/ip/xdfe_cc_mixer_v2_0_5 +mipi_dsi_tx_ctrl_v1_0_10=$RDI_DATADIR/xsim/ip/mipi_dsi_tx_ctrl_v1_0_10 +axi_apb_bridge_v3_0_20=$RDI_DATADIR/xsim/ip/axi_apb_bridge_v3_0_20 +ieee802d3_clause74_fec_v1_0_19=$RDI_DATADIR/xsim/ip/ieee802d3_clause74_fec_v1_0_19 +sim_xdma_sc_v1=$RDI_DATADIR/xsim/ip/sim_xdma_sc_v1 +axi_tft_v2_0_29=$RDI_DATADIR/xsim/ip/axi_tft_v2_0_29 +viterbi_v9_1_18=$RDI_DATADIR/xsim/ip/viterbi_v9_1_18 +ieee802d3_50g_rs_fec_v2_0_18=$RDI_DATADIR/xsim/ip/ieee802d3_50g_rs_fec_v2_0_18 +microblaze_mcs_v2_3_7=$RDI_DATADIR/xsim/ip/microblaze_mcs_v2_3_7 +fifo_generator_v13_0_7=$RDI_DATADIR/xsim/ip/fifo_generator_v13_0_7 +video_frame_crc_v1_0_6=$RDI_DATADIR/xsim/ip/video_frame_crc_v1_0_6 +dist_mem_gen_v8_0_15=$RDI_DATADIR/xsim/ip/dist_mem_gen_v8_0_15 +ilknf_v1_3_5=$RDI_DATADIR/xsim/ip/ilknf_v1_3_5 +rwd_tlmmodel_v1=$RDI_DATADIR/xsim/ip/rwd_tlmmodel_v1 +axi_tg_sc_v1_0=$RDI_DATADIR/xsim/ip/axi_tg_sc_v1_0 +axi_ethernet_buffer_v2_0_25=$RDI_DATADIR/xsim/ip/axi_ethernet_buffer_v2_0_25 +g975_efec_i4_v1_0_23=$RDI_DATADIR/xsim/ip/g975_efec_i4_v1_0_23 +c_accum_v12_0_19=$RDI_DATADIR/xsim/ip/c_accum_v12_0_19 +aie_xtlm_v1_0_0=$RDI_DATADIR/xsim/ip/aie_xtlm_v1_0_0 +ieee802d3_25g_rs_fec_v1_0_31=$RDI_DATADIR/xsim/ip/ieee802d3_25g_rs_fec_v1_0_31 +smartconnect_v1_0=$RDI_DATADIR/xsim/ip/smartconnect_v1_0 +noc_hbm_nmu_sim_v1_0_0=$RDI_DATADIR/xsim/ip/noc_hbm_nmu_sim_v1_0_0 +xdfe_nr_prach_v2_0_4=$RDI_DATADIR/xsim/ip/xdfe_nr_prach_v2_0_4 +gig_ethernet_pcs_pma_v16_2_21=$RDI_DATADIR/xsim/ip/gig_ethernet_pcs_pma_v16_2_21 +trace_s2mm_v2_0_1=$RDI_DATADIR/xsim/ip/trace_s2mm_v2_0_1 +v_sdi_rx_vid_bridge_v2_0_3=$RDI_DATADIR/xsim/ip/v_sdi_rx_vid_bridge_v2_0_3 +fit_timer_v2_0_12=$RDI_DATADIR/xsim/ip/fit_timer_v2_0_12 +ldpc_5gnr_v1_0_4=$RDI_DATADIR/xsim/ip/ldpc_5gnr_v1_0_4 +soft_ecc_proxy_v1_1_2=$RDI_DATADIR/xsim/ip/soft_ecc_proxy_v1_1_2 +axi_c2c_v1_0_11=$RDI_DATADIR/xsim/ip/axi_c2c_v1_0_11 +noc_nps4_v1_0_0=$RDI_DATADIR/xsim/ip/noc_nps4_v1_0_0 +hdcp22_rng_v1_0_3=$RDI_DATADIR/xsim/ip/hdcp22_rng_v1_0_3 +v_smpte_uhdsdi_v1_0_12=$RDI_DATADIR/xsim/ip/v_smpte_uhdsdi_v1_0_12 +bs_mux_v1_0_1=$RDI_DATADIR/xsim/ip/bs_mux_v1_0_1 +noc_nmu_sim_v1_0_0=$RDI_DATADIR/xsim/ip/noc_nmu_sim_v1_0_0 +fir_compiler_v7_2_23=$RDI_DATADIR/xsim/ip/fir_compiler_v7_2_23 +axi_hbicap_v1_0_8=$RDI_DATADIR/xsim/ip/axi_hbicap_v1_0_8 +x5io_wizard_phy_v1_0_1=$RDI_DATADIR/xsim/ip/x5io_wizard_phy_v1_0_1 +canfd_v3_0_12=$RDI_DATADIR/xsim/ip/canfd_v3_0_12 +nvme_tc_v3_0_8=$RDI_DATADIR/xsim/ip/nvme_tc_v3_0_8 +axi_usb2_device_v5_0_34=$RDI_DATADIR/xsim/ip/axi_usb2_device_v5_0_34 +ldpc_5gnr_lite_v1_0_3=$RDI_DATADIR/xsim/ip/ldpc_5gnr_lite_v1_0_3 +tmr_inject_v1_0_7=$RDI_DATADIR/xsim/ip/tmr_inject_v1_0_7 +v_uhdsdi_audio_v2_0_9=$RDI_DATADIR/xsim/ip/v_uhdsdi_audio_v2_0_9 +xsdbm_v3_0_3=$RDI_DATADIR/xsim/ip/xsdbm_v3_0_3 +v_vscaler_v1_1_13=$RDI_DATADIR/xsim/ip/v_vscaler_v1_1_13 +vid_phy_controller_v2_2_19=$RDI_DATADIR/xsim/ip/vid_phy_controller_v2_2_19 +mem_tg_v1_0_15=$RDI_DATADIR/xsim/ip/mem_tg_v1_0_15 +dfx_axi_shutdown_manager_v1_0_4=$RDI_DATADIR/xsim/ip/dfx_axi_shutdown_manager_v1_0_4 +ibert_lib_v1_0_12=$RDI_DATADIR/xsim/ip/ibert_lib_v1_0_12 +ta_dma_v1_0_17=$RDI_DATADIR/xsim/ip/ta_dma_v1_0_17 +cam_blk_lib_v1_2_0=$RDI_DATADIR/xsim/ip/cam_blk_lib_v1_2_0 +noc2_nps6x_v1_0_0=$RDI_DATADIR/xsim/ip/noc2_nps6x_v1_0_0 +noc2_xbr4x2_v1_0_0=$RDI_DATADIR/xsim/ip/noc2_xbr4x2_v1_0_0 +tcc_decoder_3gppmm_v2_0_28=$RDI_DATADIR/xsim/ip/tcc_decoder_3gppmm_v2_0_28 +noc_nps_v1_0_1=$RDI_DATADIR/xsim/ip/noc_nps_v1_0_1 +ddr4_pl_v1_0_15=$RDI_DATADIR/xsim/ip/ddr4_pl_v1_0_15 +advanced_io_wizard_phy_v1_0_4=$RDI_DATADIR/xsim/ip/advanced_io_wizard_phy_v1_0_4 +ft_prach_v1_2_3=$RDI_DATADIR/xsim/ip/ft_prach_v1_2_3 +lib_pkg_v1_0_4=$RDI_DATADIR/xsim/ip/lib_pkg_v1_0_4 +jtag_axi=$RDI_DATADIR/xsim/ip/jtag_axi +x5io_wizard_v1_0_6=$RDI_DATADIR/xsim/ip/x5io_wizard_v1_0_6 +axis_subset_converter_v1_1_33=$RDI_DATADIR/xsim/ip/axis_subset_converter_v1_1_33 +axi_quad_spi_v3_2_32=$RDI_DATADIR/xsim/ip/axi_quad_spi_v3_2_32 +g709_rs_encoder_v2_2_13=$RDI_DATADIR/xsim/ip/g709_rs_encoder_v2_2_13 +hdcp_v1_0_6=$RDI_DATADIR/xsim/ip/hdcp_v1_0_6 +v_frmbuf_rd_v2_4_4=$RDI_DATADIR/xsim/ip/v_frmbuf_rd_v2_4_4 +gigantic_mux=$RDI_DATADIR/xsim/ip/gigantic_mux +quadsgmii_v3_5_21=$RDI_DATADIR/xsim/ip/quadsgmii_v3_5_21 +xtlm_ap_ctrl_v1_0=$RDI_DATADIR/xsim/ip/xtlm_ap_ctrl_v1_0 +rst_vip_v1_0_7=$RDI_DATADIR/xsim/ip/rst_vip_v1_0_7 +ethernet_offload_v1_0_0=$RDI_DATADIR/xsim/ip/ethernet_offload_v1_0_0 +cpm5_v1_0_17=$RDI_DATADIR/xsim/ip/cpm5_v1_0_17 +processing_system7_v5_5_6=$RDI_DATADIR/xsim/ip/processing_system7_v5_5_6 +debug_tcp_server_v1=$RDI_DATADIR/xsim/ip/debug_tcp_server_v1 +xbip_dsp48_wrapper_v3_0_6=$RDI_DATADIR/xsim/ip/xbip_dsp48_wrapper_v3_0_6 +vitis_deadlock_detector_v1_0_2=$RDI_DATADIR/xsim/ip/vitis_deadlock_detector_v1_0_2 +axis_dbg_stub_v1_0_1=$RDI_DATADIR/xsim/ip/axis_dbg_stub_v1_0_1 +displayport_v9_0_10=$RDI_DATADIR/xsim/ip/displayport_v9_0_10 +visp_v1_0_0=$RDI_DATADIR/xsim/ip/visp_v1_0_0 +bscan_axi_v1_0_2=$RDI_DATADIR/xsim/ip/bscan_axi_v1_0_2 diff --git a/proj/project_1/project_1.sim/sim_1/behav/xsim/xvhdl.log b/proj/project_1/project_1.sim/sim_1/behav/xsim/xvhdl.log new file mode 100644 index 0000000..e69de29 diff --git a/proj/project_1/project_1.sim/sim_1/behav/xsim/xvhdl.pb b/proj/project_1/project_1.sim/sim_1/behav/xsim/xvhdl.pb new file mode 100644 index 0000000..b155e40 --- /dev/null +++ b/proj/project_1/project_1.sim/sim_1/behav/xsim/xvhdl.pb @@ -0,0 +1,4 @@ + + + +End Record \ No newline at end of file diff --git a/proj/project_1/project_1.sim/sim_1/behav/xsim/xvlog.log b/proj/project_1/project_1.sim/sim_1/behav/xsim/xvlog.log new file mode 100644 index 0000000..0e6879b --- /dev/null +++ b/proj/project_1/project_1.sim/sim_1/behav/xsim/xvlog.log @@ -0,0 +1,12 @@ +INFO: [VRFC 10-2263] Analyzing Verilog file "/homes/a24perei/medcon/tp-filtre-etudiant-a24perei/src/ip/clk_wiz_0/clk_wiz_0_clk_wiz.v" into library xil_defaultlib +INFO: [VRFC 10-311] analyzing module clk_wiz_0_clk_wiz +INFO: [VRFC 10-2263] Analyzing Verilog file "/homes/a24perei/medcon/tp-filtre-etudiant-a24perei/src/ip/clk_wiz_0/clk_wiz_0.v" into library xil_defaultlib +INFO: [VRFC 10-311] analyzing module clk_wiz_0 +INFO: [VRFC 10-2263] Analyzing Verilog file "/homes/a24perei/medcon/tp-filtre-etudiant-a24perei/src/hdl/audio_init.v" into library xil_defaultlib +INFO: [VRFC 10-311] analyzing module audio_init +INFO: [VRFC 10-2263] Analyzing Verilog file "/homes/a24perei/medcon/tp-filtre-etudiant-a24perei/src/hdl/debounce.v" into library xil_defaultlib +INFO: [VRFC 10-311] analyzing module debounce +INFO: [VRFC 10-2263] Analyzing Verilog file "/homes/a24perei/medcon/tp-filtre-etudiant-a24perei/src/hdl/audioProc.v" into library xil_defaultlib +INFO: [VRFC 10-311] analyzing module audioProc +INFO: [VRFC 10-2263] Analyzing Verilog file "/homes/a24perei/medcon/tp-filtre-etudiant-a24perei/proj/AudioProc.sim/sim_1/behav/xsim/glbl.v" into library xil_defaultlib +INFO: [VRFC 10-311] analyzing module glbl diff --git a/proj/project_1/project_1.sim/sim_1/behav/xsim/xvlog.pb b/proj/project_1/project_1.sim/sim_1/behav/xsim/xvlog.pb new file mode 100644 index 0000000000000000000000000000000000000000..743a2f97ba63b92ce2ceccec27813ed859107401 GIT binary patch literal 1640 zcmd-&&d8<an3tGSS(TZWuAo}1kd~Q~s-UD=tfY{cSCX%glbKYMSX8N?S}edS#bRh_ zY@)?oQJk4umRgjVmYHnC$;BR)T9lcSpKcV%6|SF=pPO2&pJ-%KkXn?Qsh^vglANEX zUs9l(mYGvhl&YIrQks&Pm{+0;S5jP*te;t+pPZ8&U!GYNZ-8LML&fyUj0Cv&Dl&88 zQ&Q6sOLIzcGLxd%4GnaSjLeKP7z$V`SSK(t2rzN^a|tKHy^@=sQks(raW}KEp&_cX zg}DTwrpFt=?1^GCG|)9RG(<LXKlOqqkjtN{!9#SgxDy{N++3XSV8Ip~+o=~Eo?Px^ z21iCpj(%ckN@jk1W?p6q(ZS$Bd@%5EaUm?g77kmf7Y^=Rt`vkrN@`MmX<l+F(V^f* zd?;{nalnkn76#j>7X}_&ZWM$8II04Q@{@@U1k!Q@+<a`IaF%+Z5YH7$Mko{%<!9+T zg0cfR2#Pav^@}re;|=wbQZo|E^g(5{etJ$)4$*<*M0^Ti<6;3BjV)aGxVT*NQWSzx Klk<yG1Q-EI7xrcV literal 0 HcmV?d00001 diff --git a/proj/project_1/project_1.xpr b/proj/project_1/project_1.xpr new file mode 100644 index 0000000..3a6e0cc --- /dev/null +++ b/proj/project_1/project_1.xpr @@ -0,0 +1,301 @@ +<?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/a24perei/medcon/tp-ecg-etudiant-a24perei/proj/project_1/project_1.xpr"> + <DefaultLaunch Dir="$PRUNDIR"/> + <Configuration> + <Option Name="Id" Val="98f33fc04d38443e92b4f879703180e1"/> + <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="15.0"/> + <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/../medcon/tp-ecg-etudiant-a24perei/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="115"/> + <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"/> + <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="AutoDisabled" Val="1"/> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> + <File Path="$PPRDIR/../../src/hdl/firUnit.vhd"> + <FileInfo> + <Attr Name="AutoDisabled" Val="1"/> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> + <File Path="$PPRDIR/../../src/hdl/tb_firUnit.vhd"> + <FileInfo> + <Attr Name="AutoDisabled" Val="1"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> + <File Path="$PPRDIR/../../src/ip/clk_wiz_0/clk_wiz_0.xci"> + <FileInfo> + <Attr Name="AutoDisabled" Val="1"/> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="implementation"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> + <File Path="$PPRDIR/../../src/hdl/audio_init.v"> + <FileInfo> + <Attr Name="AutoDisabled" Val="1"/> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="implementation"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> + <File Path="$PPRDIR/../../src/hdl/debounce.v"> + <FileInfo> + <Attr Name="AutoDisabled" Val="1"/> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="implementation"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> + <File Path="$PPRDIR/../../src/hdl/TWICtl.vhd"> + <FileInfo> + <Attr Name="AutoDisabled" Val="1"/> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> + <File Path="$PPRDIR/../../src/hdl/fir.vhd"> + <FileInfo> + <Attr Name="AutoDisabled" Val="1"/> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> + <File Path="$PPRDIR/../../src/hdl/i2s_ctl.vhd"> + <FileInfo> + <Attr Name="AutoDisabled" Val="1"/> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> + <File Path="$PPRDIR/../../src/hdl/audioProc.v"> + <FileInfo> + <Attr Name="AutoDisabled" Val="1"/> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="implementation"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> + <Config> + <Option Name="DesignMode" Val="RTL"/> + <Option Name="TopModule" Val="controlUnit"/> + </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"> + <Filter Type="Srcs"/> + <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"/> + </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"/> + <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"/> + <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/src/hdl/controlUnit.vhd b/src/hdl/controlUnit.vhd index 0c18c92..fa1e323 100644 --- a/src/hdl/controlUnit.vhd +++ b/src/hdl/controlUnit.vhd @@ -15,7 +15,7 @@ entity controlUnit is O_loadSum : out std_logic; O_loadY : out std_logic; O_FilteredSampleValid : out std_logic; - O_filterStage : out integer range 0 to 2 -- 🚀 Adicionado para indicar o estágio do filtro + O_filterStage : out integer range 0 to 2 ); end entity controlUnit; @@ -55,20 +55,20 @@ begin if SR_filterStage < 2 then SR_futurState <= NEXT_FILTER; else - SR_futurState <= FINAL_OUTPUT; -- ✅ Após o último filtro, vai para FINAL_OUTPUT + SR_futurState <= FINAL_OUTPUT; -- Após o último filtro, vai para FINAL_OUTPUT end if; when NEXT_FILTER => - SR_futurState <= STORE; -- ✅ Processa o próximo filtro e volta ao PROCESSING_LOOP + SR_futurState <= STORE; -- Processa o próximo filtro e volta ao PROCESSING_LOOP when FINAL_OUTPUT => - SR_futurState <= WAIT_END_SAMPLE; -- ✅ Estado final antes de esperar um novo input + SR_futurState <= WAIT_END_SAMPLE; -- Estado final antes de esperar um novo input when WAIT_END_SAMPLE => if I_inputSampleValid = '1' then - SR_futurState <= STORE; -- ✅ Só recomeça se um novo input chegar + SR_futurState <= STORE; -- Só recomeça se um novo input chegar else - SR_futurState <= WAIT_END_SAMPLE; -- ✅ Mantém a FSM parada se não houver novo input + SR_futurState <= WAIT_END_SAMPLE; -- Mantém a FSM parada se não houver novo input end if; when others => @@ -92,7 +92,7 @@ begin SR_filterStage <= SR_filterStage + 1; -- 🚀 Avança para o próximo filtro end if; elsif SR_presentState = FINAL_OUTPUT then - SR_filterStage <= 0; -- 🚀 Após os 3 filtros, reinicia para o primeiro + SR_filterStage <= 0; -- Após os 3 filtros, reinicia para o primeiro end if; end if; -- GitLab