aboutsummaryrefslogtreecommitdiffstats
path: root/projects/XUPVVH/XUPVVH.ip_user_files/ip
diff options
context:
space:
mode:
Diffstat (limited to 'projects/XUPVVH/XUPVVH.ip_user_files/ip')
-rwxr-xr-xprojects/XUPVVH/XUPVVH.ip_user_files/ip/axis_clock_converter/axis_clock_converter.veo78
-rwxr-xr-xprojects/XUPVVH/XUPVVH.ip_user_files/ip/axis_clock_converter/axis_clock_converter.vho101
-rw-r--r--projects/XUPVVH/XUPVVH.ip_user_files/ip/axis_clock_converter/axis_clock_converter_stub.v35
-rw-r--r--projects/XUPVVH/XUPVVH.ip_user_files/ip/axis_clock_converter/axis_clock_converter_stub.vhdl43
-rwxr-xr-xprojects/XUPVVH/XUPVVH.ip_user_files/ip/instr_blk_mem/instr_blk_mem.veo70
-rwxr-xr-xprojects/XUPVVH/XUPVVH.ip_user_files/ip/instr_blk_mem/instr_blk_mem.vho85
-rw-r--r--projects/XUPVVH/XUPVVH.ip_user_files/ip/instr_blk_mem/instr_blk_mem_stub.v25
-rw-r--r--projects/XUPVVH/XUPVVH.ip_user_files/ip/instr_blk_mem/instr_blk_mem_stub.vhdl35
-rwxr-xr-xprojects/XUPVVH/XUPVVH.ip_user_files/ip/instr_blk_mem_sim/instr_blk_mem_sim.veo70
-rwxr-xr-xprojects/XUPVVH/XUPVVH.ip_user_files/ip/instr_blk_mem_sim/instr_blk_mem_sim.vho85
-rw-r--r--projects/XUPVVH/XUPVVH.ip_user_files/ip/instr_blk_mem_sim/instr_blk_mem_sim_stub.v25
-rw-r--r--projects/XUPVVH/XUPVVH.ip_user_files/ip/instr_blk_mem_sim/instr_blk_mem_sim_stub.vhdl35
-rwxr-xr-xprojects/XUPVVH/XUPVVH.ip_user_files/ip/phy_ddr4/phy_ddr4.veo115
-rwxr-xr-xprojects/XUPVVH/XUPVVH.ip_user_files/ip/phy_ddr4/phy_ddr4.vho175
-rw-r--r--projects/XUPVVH/XUPVVH.ip_user_files/ip/phy_ddr4/phy_ddr4_stub.v75
-rw-r--r--projects/XUPVVH/XUPVVH.ip_user_files/ip/phy_ddr4/phy_ddr4_stub.vhdl78
-rwxr-xr-xprojects/XUPVVH/XUPVVH.ip_user_files/ip/pr_read_mem/pr_read_mem.veo70
-rwxr-xr-xprojects/XUPVVH/XUPVVH.ip_user_files/ip/pr_read_mem/pr_read_mem.vho85
-rw-r--r--projects/XUPVVH/XUPVVH.ip_user_files/ip/pr_read_mem/pr_read_mem_stub.v25
-rw-r--r--projects/XUPVVH/XUPVVH.ip_user_files/ip/pr_read_mem/pr_read_mem_stub.vhdl35
-rwxr-xr-xprojects/XUPVVH/XUPVVH.ip_user_files/ip/pr_ref_mem/pr_ref_mem.veo70
-rwxr-xr-xprojects/XUPVVH/XUPVVH.ip_user_files/ip/pr_ref_mem/pr_ref_mem.vho85
-rw-r--r--projects/XUPVVH/XUPVVH.ip_user_files/ip/pr_ref_mem/pr_ref_mem_stub.v25
-rw-r--r--projects/XUPVVH/XUPVVH.ip_user_files/ip/pr_ref_mem/pr_ref_mem_stub.vhdl35
-rwxr-xr-xprojects/XUPVVH/XUPVVH.ip_user_files/ip/rdback_fifo/rdback_fifo.veo77
-rwxr-xr-xprojects/XUPVVH/XUPVVH.ip_user_files/ip/rdback_fifo/rdback_fifo.vho99
-rw-r--r--projects/XUPVVH/XUPVVH.ip_user_files/ip/rdback_fifo/rdback_fifo_stub.v33
-rw-r--r--projects/XUPVVH/XUPVVH.ip_user_files/ip/rdback_fifo/rdback_fifo_stub.vhdl42
-rwxr-xr-xprojects/XUPVVH/XUPVVH.ip_user_files/ip/scratchpad/scratchpad.veo70
-rwxr-xr-xprojects/XUPVVH/XUPVVH.ip_user_files/ip/scratchpad/scratchpad.vho85
-rw-r--r--projects/XUPVVH/XUPVVH.ip_user_files/ip/scratchpad/scratchpad_stub.v25
-rw-r--r--projects/XUPVVH/XUPVVH.ip_user_files/ip/scratchpad/scratchpad_stub.vhdl35
-rwxr-xr-xprojects/XUPVVH/XUPVVH.ip_user_files/ip/xdma/xdma.veo95
-rwxr-xr-xprojects/XUPVVH/XUPVVH.ip_user_files/ip/xdma/xdma.vho135
-rw-r--r--projects/XUPVVH/XUPVVH.ip_user_files/ip/xdma/xdma_stub.v56
-rw-r--r--projects/XUPVVH/XUPVVH.ip_user_files/ip/xdma/xdma_stub.vhdl60
-rwxr-xr-xprojects/XUPVVH/XUPVVH.ip_user_files/ip/zq_calib_mem/zq_calib_mem.veo70
-rwxr-xr-xprojects/XUPVVH/XUPVVH.ip_user_files/ip/zq_calib_mem/zq_calib_mem.vho85
-rw-r--r--projects/XUPVVH/XUPVVH.ip_user_files/ip/zq_calib_mem/zq_calib_mem_stub.v25
-rw-r--r--projects/XUPVVH/XUPVVH.ip_user_files/ip/zq_calib_mem/zq_calib_mem_stub.vhdl35
40 files changed, 2587 insertions, 0 deletions
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/axis_clock_converter/axis_clock_converter.veo b/projects/XUPVVH/XUPVVH.ip_user_files/ip/axis_clock_converter/axis_clock_converter.veo
new file mode 100755
index 0000000..adf34d1
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/axis_clock_converter/axis_clock_converter.veo
@@ -0,0 +1,78 @@
+// (c) Copyright 1995-2020 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.
+//
+// DO NOT MODIFY THIS FILE.
+
+// IP VLNV: xilinx.com:ip:axis_clock_converter:1.1
+// IP Revision: 21
+
+// The following must be inserted into your Verilog file for this
+// core to be instantiated. Change the instance name and port connections
+// (in parentheses) to your own signal names.
+
+//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
+axis_clock_converter your_instance_name (
+ .s_axis_aresetn(s_axis_aresetn), // input wire s_axis_aresetn
+ .m_axis_aresetn(m_axis_aresetn), // input wire m_axis_aresetn
+ .s_axis_aclk(s_axis_aclk), // input wire s_axis_aclk
+ .s_axis_tvalid(s_axis_tvalid), // input wire s_axis_tvalid
+ .s_axis_tready(s_axis_tready), // output wire s_axis_tready
+ .s_axis_tdata(s_axis_tdata), // input wire [255 : 0] s_axis_tdata
+ .s_axis_tkeep(s_axis_tkeep), // input wire [31 : 0] s_axis_tkeep
+ .s_axis_tlast(s_axis_tlast), // input wire s_axis_tlast
+ .m_axis_aclk(m_axis_aclk), // input wire m_axis_aclk
+ .m_axis_tvalid(m_axis_tvalid), // output wire m_axis_tvalid
+ .m_axis_tready(m_axis_tready), // input wire m_axis_tready
+ .m_axis_tdata(m_axis_tdata), // output wire [255 : 0] m_axis_tdata
+ .m_axis_tkeep(m_axis_tkeep), // output wire [31 : 0] m_axis_tkeep
+ .m_axis_tlast(m_axis_tlast) // output wire m_axis_tlast
+);
+// INST_TAG_END ------ End INSTANTIATION Template ---------
+
+// You must compile the wrapper file axis_clock_converter.v when simulating
+// the core, axis_clock_converter. When compiling the wrapper file, be sure to
+// reference the Verilog simulation library.
+
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/axis_clock_converter/axis_clock_converter.vho b/projects/XUPVVH/XUPVVH.ip_user_files/ip/axis_clock_converter/axis_clock_converter.vho
new file mode 100755
index 0000000..580774d
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/axis_clock_converter/axis_clock_converter.vho
@@ -0,0 +1,101 @@
+-- (c) Copyright 1995-2020 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.
+--
+-- DO NOT MODIFY THIS FILE.
+
+-- IP VLNV: xilinx.com:ip:axis_clock_converter:1.1
+-- IP Revision: 21
+
+-- The following code must appear in the VHDL architecture header.
+
+------------- Begin Cut here for COMPONENT Declaration ------ COMP_TAG
+COMPONENT axis_clock_converter
+ PORT (
+ s_axis_aresetn : IN STD_LOGIC;
+ m_axis_aresetn : IN STD_LOGIC;
+ s_axis_aclk : IN STD_LOGIC;
+ s_axis_tvalid : IN STD_LOGIC;
+ s_axis_tready : OUT STD_LOGIC;
+ s_axis_tdata : IN STD_LOGIC_VECTOR(255 DOWNTO 0);
+ s_axis_tkeep : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
+ s_axis_tlast : IN STD_LOGIC;
+ m_axis_aclk : IN STD_LOGIC;
+ m_axis_tvalid : OUT STD_LOGIC;
+ m_axis_tready : IN STD_LOGIC;
+ m_axis_tdata : OUT STD_LOGIC_VECTOR(255 DOWNTO 0);
+ m_axis_tkeep : OUT STD_LOGIC_VECTOR(31 DOWNTO 0);
+ m_axis_tlast : 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 : axis_clock_converter
+ PORT MAP (
+ s_axis_aresetn => s_axis_aresetn,
+ m_axis_aresetn => m_axis_aresetn,
+ s_axis_aclk => s_axis_aclk,
+ s_axis_tvalid => s_axis_tvalid,
+ s_axis_tready => s_axis_tready,
+ s_axis_tdata => s_axis_tdata,
+ s_axis_tkeep => s_axis_tkeep,
+ s_axis_tlast => s_axis_tlast,
+ m_axis_aclk => m_axis_aclk,
+ m_axis_tvalid => m_axis_tvalid,
+ m_axis_tready => m_axis_tready,
+ m_axis_tdata => m_axis_tdata,
+ m_axis_tkeep => m_axis_tkeep,
+ m_axis_tlast => m_axis_tlast
+ );
+-- INST_TAG_END ------ End INSTANTIATION Template ---------
+
+-- You must compile the wrapper file axis_clock_converter.vhd when simulating
+-- the core, axis_clock_converter. When compiling the wrapper file, be sure to
+-- reference the VHDL simulation library.
+
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/axis_clock_converter/axis_clock_converter_stub.v b/projects/XUPVVH/XUPVVH.ip_user_files/ip/axis_clock_converter/axis_clock_converter_stub.v
new file mode 100644
index 0000000..6c841e3
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/axis_clock_converter/axis_clock_converter_stub.v
@@ -0,0 +1,35 @@
+// Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
+// --------------------------------------------------------------------------------
+// Tool Version: Vivado v.2019.2 (lin64) Build 2708876 Wed Nov 6 21:39:14 MST 2019
+// Date : Sun Oct 18 14:25:47 2020
+// Host : jalapeno running 64-bit Ubuntu 18.04.5 LTS
+// Command : write_verilog -force -mode synth_stub
+// /home/ataberk/SoftMC_DDR4/projects/XUPVVH/XUPVVH.srcs/sources_1/ip/axis_clock_converter/axis_clock_converter_stub.v
+// Design : axis_clock_converter
+// Purpose : Stub declaration of top-level module interface
+// Device : xcvu37p-fsvh2892-2-e
+// --------------------------------------------------------------------------------
+
+// This empty module with port declaration file causes synthesis tools to infer a black box for IP.
+// The synthesis directives are for Synopsys Synplify support to prevent IO buffer insertion.
+// Please paste the declaration into a Verilog source file or add the file as an additional source.
+(* X_CORE_INFO = "axis_clock_converter_v1_1_21_axis_clock_converter,Vivado 2019.2" *)
+module axis_clock_converter(s_axis_aresetn, m_axis_aresetn, s_axis_aclk,
+ s_axis_tvalid, s_axis_tready, s_axis_tdata, s_axis_tkeep, s_axis_tlast, m_axis_aclk,
+ m_axis_tvalid, m_axis_tready, m_axis_tdata, m_axis_tkeep, m_axis_tlast)
+/* synthesis syn_black_box black_box_pad_pin="s_axis_aresetn,m_axis_aresetn,s_axis_aclk,s_axis_tvalid,s_axis_tready,s_axis_tdata[255:0],s_axis_tkeep[31:0],s_axis_tlast,m_axis_aclk,m_axis_tvalid,m_axis_tready,m_axis_tdata[255:0],m_axis_tkeep[31:0],m_axis_tlast" */;
+ input s_axis_aresetn;
+ input m_axis_aresetn;
+ input s_axis_aclk;
+ input s_axis_tvalid;
+ output s_axis_tready;
+ input [255:0]s_axis_tdata;
+ input [31:0]s_axis_tkeep;
+ input s_axis_tlast;
+ input m_axis_aclk;
+ output m_axis_tvalid;
+ input m_axis_tready;
+ output [255:0]m_axis_tdata;
+ output [31:0]m_axis_tkeep;
+ output m_axis_tlast;
+endmodule
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/axis_clock_converter/axis_clock_converter_stub.vhdl b/projects/XUPVVH/XUPVVH.ip_user_files/ip/axis_clock_converter/axis_clock_converter_stub.vhdl
new file mode 100644
index 0000000..99734b2
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/axis_clock_converter/axis_clock_converter_stub.vhdl
@@ -0,0 +1,43 @@
+-- Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
+-- --------------------------------------------------------------------------------
+-- Tool Version: Vivado v.2019.2 (lin64) Build 2708876 Wed Nov 6 21:39:14 MST 2019
+-- Date : Sun Oct 18 14:25:47 2020
+-- Host : jalapeno running 64-bit Ubuntu 18.04.5 LTS
+-- Command : write_vhdl -force -mode synth_stub
+-- /home/ataberk/SoftMC_DDR4/projects/XUPVVH/XUPVVH.srcs/sources_1/ip/axis_clock_converter/axis_clock_converter_stub.vhdl
+-- Design : axis_clock_converter
+-- Purpose : Stub declaration of top-level module interface
+-- Device : xcvu37p-fsvh2892-2-e
+-- --------------------------------------------------------------------------------
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+entity axis_clock_converter is
+ Port (
+ s_axis_aresetn : in STD_LOGIC;
+ m_axis_aresetn : in STD_LOGIC;
+ s_axis_aclk : in STD_LOGIC;
+ s_axis_tvalid : in STD_LOGIC;
+ s_axis_tready : out STD_LOGIC;
+ s_axis_tdata : in STD_LOGIC_VECTOR ( 255 downto 0 );
+ s_axis_tkeep : in STD_LOGIC_VECTOR ( 31 downto 0 );
+ s_axis_tlast : in STD_LOGIC;
+ m_axis_aclk : in STD_LOGIC;
+ m_axis_tvalid : out STD_LOGIC;
+ m_axis_tready : in STD_LOGIC;
+ m_axis_tdata : out STD_LOGIC_VECTOR ( 255 downto 0 );
+ m_axis_tkeep : out STD_LOGIC_VECTOR ( 31 downto 0 );
+ m_axis_tlast : out STD_LOGIC
+ );
+
+end axis_clock_converter;
+
+architecture stub of axis_clock_converter is
+attribute syn_black_box : boolean;
+attribute black_box_pad_pin : string;
+attribute syn_black_box of stub : architecture is true;
+attribute black_box_pad_pin of stub : architecture is "s_axis_aresetn,m_axis_aresetn,s_axis_aclk,s_axis_tvalid,s_axis_tready,s_axis_tdata[255:0],s_axis_tkeep[31:0],s_axis_tlast,m_axis_aclk,m_axis_tvalid,m_axis_tready,m_axis_tdata[255:0],m_axis_tkeep[31:0],m_axis_tlast";
+attribute X_CORE_INFO : string;
+attribute X_CORE_INFO of stub : architecture is "axis_clock_converter_v1_1_21_axis_clock_converter,Vivado 2019.2";
+begin
+end;
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/instr_blk_mem/instr_blk_mem.veo b/projects/XUPVVH/XUPVVH.ip_user_files/ip/instr_blk_mem/instr_blk_mem.veo
new file mode 100755
index 0000000..85923e5
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/instr_blk_mem/instr_blk_mem.veo
@@ -0,0 +1,70 @@
+// (c) Copyright 1995-2020 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.
+//
+// DO NOT MODIFY THIS FILE.
+
+// IP VLNV: xilinx.com:ip:blk_mem_gen:8.4
+// IP Revision: 4
+
+// The following must be inserted into your Verilog file for this
+// core to be instantiated. Change the instance name and port connections
+// (in parentheses) to your own signal names.
+
+//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
+instr_blk_mem your_instance_name (
+ .clka(clka), // input wire clka
+ .ena(ena), // input wire ena
+ .wea(wea), // input wire [0 : 0] wea
+ .addra(addra), // input wire [10 : 0] addra
+ .dina(dina), // input wire [63 : 0] dina
+ .douta(douta) // output wire [63 : 0] douta
+);
+// INST_TAG_END ------ End INSTANTIATION Template ---------
+
+// You must compile the wrapper file instr_blk_mem.v when simulating
+// the core, instr_blk_mem. When compiling the wrapper file, be sure to
+// reference the Verilog simulation library.
+
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/instr_blk_mem/instr_blk_mem.vho b/projects/XUPVVH/XUPVVH.ip_user_files/ip/instr_blk_mem/instr_blk_mem.vho
new file mode 100755
index 0000000..7705c50
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/instr_blk_mem/instr_blk_mem.vho
@@ -0,0 +1,85 @@
+-- (c) Copyright 1995-2020 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.
+--
+-- DO NOT MODIFY THIS FILE.
+
+-- IP VLNV: xilinx.com:ip:blk_mem_gen:8.4
+-- IP Revision: 4
+
+-- The following code must appear in the VHDL architecture header.
+
+------------- Begin Cut here for COMPONENT Declaration ------ COMP_TAG
+COMPONENT instr_blk_mem
+ PORT (
+ clka : IN STD_LOGIC;
+ ena : IN STD_LOGIC;
+ wea : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
+ addra : IN STD_LOGIC_VECTOR(10 DOWNTO 0);
+ dina : IN STD_LOGIC_VECTOR(63 DOWNTO 0);
+ douta : OUT STD_LOGIC_VECTOR(63 DOWNTO 0)
+ );
+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 : instr_blk_mem
+ PORT MAP (
+ clka => clka,
+ ena => ena,
+ wea => wea,
+ addra => addra,
+ dina => dina,
+ douta => douta
+ );
+-- INST_TAG_END ------ End INSTANTIATION Template ---------
+
+-- You must compile the wrapper file instr_blk_mem.vhd when simulating
+-- the core, instr_blk_mem. When compiling the wrapper file, be sure to
+-- reference the VHDL simulation library.
+
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/instr_blk_mem/instr_blk_mem_stub.v b/projects/XUPVVH/XUPVVH.ip_user_files/ip/instr_blk_mem/instr_blk_mem_stub.v
new file mode 100644
index 0000000..8f8eedc
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/instr_blk_mem/instr_blk_mem_stub.v
@@ -0,0 +1,25 @@
+// Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
+// --------------------------------------------------------------------------------
+// Tool Version: Vivado v.2019.2 (lin64) Build 2708876 Wed Nov 6 21:39:14 MST 2019
+// Date : Sun Oct 18 14:26:40 2020
+// Host : jalapeno running 64-bit Ubuntu 18.04.5 LTS
+// Command : write_verilog -force -mode synth_stub
+// /home/ataberk/SoftMC_DDR4/projects/XUPVVH/XUPVVH.srcs/sources_1/ip/instr_blk_mem/instr_blk_mem_stub.v
+// Design : instr_blk_mem
+// Purpose : Stub declaration of top-level module interface
+// Device : xcvu37p-fsvh2892-2-e
+// --------------------------------------------------------------------------------
+
+// This empty module with port declaration file causes synthesis tools to infer a black box for IP.
+// The synthesis directives are for Synopsys Synplify support to prevent IO buffer insertion.
+// Please paste the declaration into a Verilog source file or add the file as an additional source.
+(* x_core_info = "blk_mem_gen_v8_4_4,Vivado 2019.2" *)
+module instr_blk_mem(clka, ena, wea, addra, dina, douta)
+/* synthesis syn_black_box black_box_pad_pin="clka,ena,wea[0:0],addra[10:0],dina[63:0],douta[63:0]" */;
+ input clka;
+ input ena;
+ input [0:0]wea;
+ input [10:0]addra;
+ input [63:0]dina;
+ output [63:0]douta;
+endmodule
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/instr_blk_mem/instr_blk_mem_stub.vhdl b/projects/XUPVVH/XUPVVH.ip_user_files/ip/instr_blk_mem/instr_blk_mem_stub.vhdl
new file mode 100644
index 0000000..bd87178
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/instr_blk_mem/instr_blk_mem_stub.vhdl
@@ -0,0 +1,35 @@
+-- Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
+-- --------------------------------------------------------------------------------
+-- Tool Version: Vivado v.2019.2 (lin64) Build 2708876 Wed Nov 6 21:39:14 MST 2019
+-- Date : Sun Oct 18 14:26:40 2020
+-- Host : jalapeno running 64-bit Ubuntu 18.04.5 LTS
+-- Command : write_vhdl -force -mode synth_stub
+-- /home/ataberk/SoftMC_DDR4/projects/XUPVVH/XUPVVH.srcs/sources_1/ip/instr_blk_mem/instr_blk_mem_stub.vhdl
+-- Design : instr_blk_mem
+-- Purpose : Stub declaration of top-level module interface
+-- Device : xcvu37p-fsvh2892-2-e
+-- --------------------------------------------------------------------------------
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+entity instr_blk_mem is
+ Port (
+ clka : in STD_LOGIC;
+ ena : in STD_LOGIC;
+ wea : in STD_LOGIC_VECTOR ( 0 to 0 );
+ addra : in STD_LOGIC_VECTOR ( 10 downto 0 );
+ dina : in STD_LOGIC_VECTOR ( 63 downto 0 );
+ douta : out STD_LOGIC_VECTOR ( 63 downto 0 )
+ );
+
+end instr_blk_mem;
+
+architecture stub of instr_blk_mem is
+attribute syn_black_box : boolean;
+attribute black_box_pad_pin : string;
+attribute syn_black_box of stub : architecture is true;
+attribute black_box_pad_pin of stub : architecture is "clka,ena,wea[0:0],addra[10:0],dina[63:0],douta[63:0]";
+attribute x_core_info : string;
+attribute x_core_info of stub : architecture is "blk_mem_gen_v8_4_4,Vivado 2019.2";
+begin
+end;
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/instr_blk_mem_sim/instr_blk_mem_sim.veo b/projects/XUPVVH/XUPVVH.ip_user_files/ip/instr_blk_mem_sim/instr_blk_mem_sim.veo
new file mode 100755
index 0000000..009a191
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/instr_blk_mem_sim/instr_blk_mem_sim.veo
@@ -0,0 +1,70 @@
+// (c) Copyright 1995-2020 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.
+//
+// DO NOT MODIFY THIS FILE.
+
+// IP VLNV: xilinx.com:ip:blk_mem_gen:8.4
+// IP Revision: 4
+
+// The following must be inserted into your Verilog file for this
+// core to be instantiated. Change the instance name and port connections
+// (in parentheses) to your own signal names.
+
+//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
+instr_blk_mem_sim your_instance_name (
+ .clka(clka), // input wire clka
+ .ena(ena), // input wire ena
+ .wea(wea), // input wire [0 : 0] wea
+ .addra(addra), // input wire [9 : 0] addra
+ .dina(dina), // input wire [63 : 0] dina
+ .douta(douta) // output wire [63 : 0] douta
+);
+// INST_TAG_END ------ End INSTANTIATION Template ---------
+
+// You must compile the wrapper file instr_blk_mem_sim.v when simulating
+// the core, instr_blk_mem_sim. When compiling the wrapper file, be sure to
+// reference the Verilog simulation library.
+
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/instr_blk_mem_sim/instr_blk_mem_sim.vho b/projects/XUPVVH/XUPVVH.ip_user_files/ip/instr_blk_mem_sim/instr_blk_mem_sim.vho
new file mode 100755
index 0000000..b50aa2a
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/instr_blk_mem_sim/instr_blk_mem_sim.vho
@@ -0,0 +1,85 @@
+-- (c) Copyright 1995-2020 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.
+--
+-- DO NOT MODIFY THIS FILE.
+
+-- IP VLNV: xilinx.com:ip:blk_mem_gen:8.4
+-- IP Revision: 4
+
+-- The following code must appear in the VHDL architecture header.
+
+------------- Begin Cut here for COMPONENT Declaration ------ COMP_TAG
+COMPONENT instr_blk_mem_sim
+ PORT (
+ clka : IN STD_LOGIC;
+ ena : IN STD_LOGIC;
+ wea : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
+ addra : IN STD_LOGIC_VECTOR(9 DOWNTO 0);
+ dina : IN STD_LOGIC_VECTOR(63 DOWNTO 0);
+ douta : OUT STD_LOGIC_VECTOR(63 DOWNTO 0)
+ );
+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 : instr_blk_mem_sim
+ PORT MAP (
+ clka => clka,
+ ena => ena,
+ wea => wea,
+ addra => addra,
+ dina => dina,
+ douta => douta
+ );
+-- INST_TAG_END ------ End INSTANTIATION Template ---------
+
+-- You must compile the wrapper file instr_blk_mem_sim.vhd when simulating
+-- the core, instr_blk_mem_sim. When compiling the wrapper file, be sure to
+-- reference the VHDL simulation library.
+
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/instr_blk_mem_sim/instr_blk_mem_sim_stub.v b/projects/XUPVVH/XUPVVH.ip_user_files/ip/instr_blk_mem_sim/instr_blk_mem_sim_stub.v
new file mode 100644
index 0000000..9515773
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/instr_blk_mem_sim/instr_blk_mem_sim_stub.v
@@ -0,0 +1,25 @@
+// Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
+// --------------------------------------------------------------------------------
+// Tool Version: Vivado v.2019.2 (lin64) Build 2708876 Wed Nov 6 21:39:14 MST 2019
+// Date : Sun Oct 18 14:26:43 2020
+// Host : jalapeno running 64-bit Ubuntu 18.04.5 LTS
+// Command : write_verilog -force -mode synth_stub
+// /home/ataberk/SoftMC_DDR4/projects/XUPVVH/XUPVVH.srcs/sources_1/ip/instr_blk_mem_sim/instr_blk_mem_sim_stub.v
+// Design : instr_blk_mem_sim
+// Purpose : Stub declaration of top-level module interface
+// Device : xcvu37p-fsvh2892-2-e
+// --------------------------------------------------------------------------------
+
+// This empty module with port declaration file causes synthesis tools to infer a black box for IP.
+// The synthesis directives are for Synopsys Synplify support to prevent IO buffer insertion.
+// Please paste the declaration into a Verilog source file or add the file as an additional source.
+(* x_core_info = "blk_mem_gen_v8_4_4,Vivado 2019.2" *)
+module instr_blk_mem_sim(clka, ena, wea, addra, dina, douta)
+/* synthesis syn_black_box black_box_pad_pin="clka,ena,wea[0:0],addra[9:0],dina[63:0],douta[63:0]" */;
+ input clka;
+ input ena;
+ input [0:0]wea;
+ input [9:0]addra;
+ input [63:0]dina;
+ output [63:0]douta;
+endmodule
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/instr_blk_mem_sim/instr_blk_mem_sim_stub.vhdl b/projects/XUPVVH/XUPVVH.ip_user_files/ip/instr_blk_mem_sim/instr_blk_mem_sim_stub.vhdl
new file mode 100644
index 0000000..b5ee744
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/instr_blk_mem_sim/instr_blk_mem_sim_stub.vhdl
@@ -0,0 +1,35 @@
+-- Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
+-- --------------------------------------------------------------------------------
+-- Tool Version: Vivado v.2019.2 (lin64) Build 2708876 Wed Nov 6 21:39:14 MST 2019
+-- Date : Sun Oct 18 14:26:43 2020
+-- Host : jalapeno running 64-bit Ubuntu 18.04.5 LTS
+-- Command : write_vhdl -force -mode synth_stub
+-- /home/ataberk/SoftMC_DDR4/projects/XUPVVH/XUPVVH.srcs/sources_1/ip/instr_blk_mem_sim/instr_blk_mem_sim_stub.vhdl
+-- Design : instr_blk_mem_sim
+-- Purpose : Stub declaration of top-level module interface
+-- Device : xcvu37p-fsvh2892-2-e
+-- --------------------------------------------------------------------------------
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+entity instr_blk_mem_sim is
+ Port (
+ clka : in STD_LOGIC;
+ ena : in STD_LOGIC;
+ wea : in STD_LOGIC_VECTOR ( 0 to 0 );
+ addra : in STD_LOGIC_VECTOR ( 9 downto 0 );
+ dina : in STD_LOGIC_VECTOR ( 63 downto 0 );
+ douta : out STD_LOGIC_VECTOR ( 63 downto 0 )
+ );
+
+end instr_blk_mem_sim;
+
+architecture stub of instr_blk_mem_sim is
+attribute syn_black_box : boolean;
+attribute black_box_pad_pin : string;
+attribute syn_black_box of stub : architecture is true;
+attribute black_box_pad_pin of stub : architecture is "clka,ena,wea[0:0],addra[9:0],dina[63:0],douta[63:0]";
+attribute x_core_info : string;
+attribute x_core_info of stub : architecture is "blk_mem_gen_v8_4_4,Vivado 2019.2";
+begin
+end;
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/phy_ddr4/phy_ddr4.veo b/projects/XUPVVH/XUPVVH.ip_user_files/ip/phy_ddr4/phy_ddr4.veo
new file mode 100755
index 0000000..785f6e1
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/phy_ddr4/phy_ddr4.veo
@@ -0,0 +1,115 @@
+// (c) Copyright 1995-2020 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.
+//
+// DO NOT MODIFY THIS FILE.
+
+// IP VLNV: xilinx.com:ip:ddr4:2.2
+// IP Revision: 8
+
+// The following must be inserted into your Verilog file for this
+// core to be instantiated. Change the instance name and port connections
+// (in parentheses) to your own signal names.
+
+//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
+phy_ddr4 your_instance_name (
+ .c0_init_calib_complete(c0_init_calib_complete), // output wire c0_init_calib_complete
+ .dbg_clk(dbg_clk), // output wire dbg_clk
+ .c0_sys_clk_p(c0_sys_clk_p), // input wire c0_sys_clk_p
+ .c0_sys_clk_n(c0_sys_clk_n), // input wire c0_sys_clk_n
+ .dbg_bus(dbg_bus), // output wire [511 : 0] dbg_bus
+ .c0_ddr4_parity(c0_ddr4_parity), // output wire c0_ddr4_parity
+ .c0_ddr4_ui_clk(c0_ddr4_ui_clk), // output wire c0_ddr4_ui_clk
+ .c0_ddr4_ui_clk_sync_rst(c0_ddr4_ui_clk_sync_rst), // output wire c0_ddr4_ui_clk_sync_rst
+ .sys_rst(sys_rst), // input wire sys_rst
+ .rdDataEn(rdDataEn), // output wire [0 : 0] rdDataEn
+ .rdDataEnd(rdDataEnd), // output wire [0 : 0] rdDataEnd
+ .per_rd_done(per_rd_done), // output wire [0 : 0] per_rd_done
+ .rmw_rd_done(rmw_rd_done), // output wire [0 : 0] rmw_rd_done
+ .wrDataEn(wrDataEn), // output wire [0 : 0] wrDataEn
+ .mc_ACT_n(mc_ACT_n), // input wire [7 : 0] mc_ACT_n
+ .mcCasSlot(mcCasSlot), // input wire [1 : 0] mcCasSlot
+ .mcCasSlot2(mcCasSlot2), // input wire [0 : 0] mcCasSlot2
+ .mcRdCAS(mcRdCAS), // input wire [0 : 0] mcRdCAS
+ .mcWrCAS(mcWrCAS), // input wire [0 : 0] mcWrCAS
+ .winInjTxn(winInjTxn), // input wire [0 : 0] winInjTxn
+ .winRmw(winRmw), // input wire [0 : 0] winRmw
+ .gt_data_ready(gt_data_ready), // input wire gt_data_ready
+ .winRank(winRank), // input wire [1 : 0] winRank
+ .tCWL(tCWL), // output wire [5 : 0] tCWL
+ .wrData(wrData), // input wire [575 : 0] wrData
+ .rdData(rdData), // output wire [575 : 0] rdData
+ .mc_ADR(mc_ADR), // input wire [135 : 0] mc_ADR
+ .mc_BA(mc_BA), // input wire [15 : 0] mc_BA
+ .mc_CKE(mc_CKE), // input wire [15 : 0] mc_CKE
+ .mc_CS_n(mc_CS_n), // input wire [15 : 0] mc_CS_n
+ .mc_ODT(mc_ODT), // input wire [15 : 0] mc_ODT
+ .dBufAdr(dBufAdr), // input wire [4 : 0] dBufAdr
+ .rdDataAddr(rdDataAddr), // output wire [4 : 0] rdDataAddr
+ .wrDataAddr(wrDataAddr), // output wire [4 : 0] wrDataAddr
+ .winBuf(winBuf), // input wire [4 : 0] winBuf
+ .ddr4_act_n(ddr4_act_n), // output wire ddr4_act_n
+ .ddr4_adr(ddr4_adr), // output wire [16 : 0] ddr4_adr
+ .ddr4_ba(ddr4_ba), // output wire [1 : 0] ddr4_ba
+ .ddr4_bg(ddr4_bg), // output wire [1 : 0] ddr4_bg
+ .ddr4_par(ddr4_par), // output wire ddr4_par
+ .ddr4_cke(ddr4_cke), // output wire [1 : 0] ddr4_cke
+ .ddr4_odt(ddr4_odt), // output wire [1 : 0] ddr4_odt
+ .ddr4_cs_n(ddr4_cs_n), // output wire [1 : 0] ddr4_cs_n
+ .ddr4_ck_t(ddr4_ck_t), // output wire ddr4_ck_t
+ .ddr4_ck_c(ddr4_ck_c), // output wire ddr4_ck_c
+ .ddr4_reset_n(ddr4_reset_n), // output wire ddr4_reset_n
+ .ddr4_parity(ddr4_parity), // output wire ddr4_parity
+ .ddr4_dq(ddr4_dq), // inout wire [71 : 0] ddr4_dq
+ .ddr4_dqs_c(ddr4_dqs_c), // inout wire [17 : 0] ddr4_dqs_c
+ .ddr4_dqs_t(ddr4_dqs_t), // inout wire [17 : 0] ddr4_dqs_t
+ .mc_BG(mc_BG) // input wire [15 : 0] mc_BG
+);
+// INST_TAG_END ------ End INSTANTIATION Template ---------
+
+// You must compile the wrapper file phy_ddr4.v when simulating
+// the core, phy_ddr4. When compiling the wrapper file, be sure to
+// reference the Verilog simulation library.
+
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/phy_ddr4/phy_ddr4.vho b/projects/XUPVVH/XUPVVH.ip_user_files/ip/phy_ddr4/phy_ddr4.vho
new file mode 100755
index 0000000..a2de9eb
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/phy_ddr4/phy_ddr4.vho
@@ -0,0 +1,175 @@
+-- (c) Copyright 1995-2020 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.
+--
+-- DO NOT MODIFY THIS FILE.
+
+-- IP VLNV: xilinx.com:ip:ddr4:2.2
+-- IP Revision: 8
+
+-- The following code must appear in the VHDL architecture header.
+
+------------- Begin Cut here for COMPONENT Declaration ------ COMP_TAG
+COMPONENT phy_ddr4
+ PORT (
+ c0_init_calib_complete : OUT STD_LOGIC;
+ dbg_clk : OUT STD_LOGIC;
+ c0_sys_clk_p : IN STD_LOGIC;
+ c0_sys_clk_n : IN STD_LOGIC;
+ dbg_bus : OUT STD_LOGIC_VECTOR(511 DOWNTO 0);
+ c0_ddr4_parity : OUT STD_LOGIC;
+ c0_ddr4_ui_clk : OUT STD_LOGIC;
+ c0_ddr4_ui_clk_sync_rst : OUT STD_LOGIC;
+ sys_rst : IN STD_LOGIC;
+ rdDataEn : OUT STD_LOGIC_VECTOR(0 DOWNTO 0);
+ rdDataEnd : OUT STD_LOGIC_VECTOR(0 DOWNTO 0);
+ per_rd_done : OUT STD_LOGIC_VECTOR(0 DOWNTO 0);
+ rmw_rd_done : OUT STD_LOGIC_VECTOR(0 DOWNTO 0);
+ wrDataEn : OUT STD_LOGIC_VECTOR(0 DOWNTO 0);
+ mc_ACT_n : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
+ mcCasSlot : IN STD_LOGIC_VECTOR(1 DOWNTO 0);
+ mcCasSlot2 : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
+ mcRdCAS : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
+ mcWrCAS : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
+ winInjTxn : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
+ winRmw : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
+ gt_data_ready : IN STD_LOGIC;
+ winRank : IN STD_LOGIC_VECTOR(1 DOWNTO 0);
+ tCWL : OUT STD_LOGIC_VECTOR(5 DOWNTO 0);
+ wrData : IN STD_LOGIC_VECTOR(575 DOWNTO 0);
+ rdData : OUT STD_LOGIC_VECTOR(575 DOWNTO 0);
+ mc_ADR : IN STD_LOGIC_VECTOR(135 DOWNTO 0);
+ mc_BA : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
+ mc_CKE : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
+ mc_CS_n : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
+ mc_ODT : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
+ dBufAdr : IN STD_LOGIC_VECTOR(4 DOWNTO 0);
+ rdDataAddr : OUT STD_LOGIC_VECTOR(4 DOWNTO 0);
+ wrDataAddr : OUT STD_LOGIC_VECTOR(4 DOWNTO 0);
+ winBuf : IN STD_LOGIC_VECTOR(4 DOWNTO 0);
+ ddr4_act_n : OUT STD_LOGIC;
+ ddr4_adr : OUT STD_LOGIC_VECTOR(16 DOWNTO 0);
+ ddr4_ba : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+ ddr4_bg : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+ ddr4_par : OUT STD_LOGIC;
+ ddr4_cke : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+ ddr4_odt : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+ ddr4_cs_n : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+ ddr4_ck_t : OUT STD_LOGIC;
+ ddr4_ck_c : OUT STD_LOGIC;
+ ddr4_reset_n : OUT STD_LOGIC;
+ ddr4_parity : OUT STD_LOGIC;
+ ddr4_dq : INOUT STD_LOGIC_VECTOR(71 DOWNTO 0);
+ ddr4_dqs_c : INOUT STD_LOGIC_VECTOR(17 DOWNTO 0);
+ ddr4_dqs_t : INOUT STD_LOGIC_VECTOR(17 DOWNTO 0);
+ mc_BG : IN STD_LOGIC_VECTOR(15 DOWNTO 0)
+ );
+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 : phy_ddr4
+ PORT MAP (
+ c0_init_calib_complete => c0_init_calib_complete,
+ dbg_clk => dbg_clk,
+ c0_sys_clk_p => c0_sys_clk_p,
+ c0_sys_clk_n => c0_sys_clk_n,
+ dbg_bus => dbg_bus,
+ c0_ddr4_parity => c0_ddr4_parity,
+ c0_ddr4_ui_clk => c0_ddr4_ui_clk,
+ c0_ddr4_ui_clk_sync_rst => c0_ddr4_ui_clk_sync_rst,
+ sys_rst => sys_rst,
+ rdDataEn => rdDataEn,
+ rdDataEnd => rdDataEnd,
+ per_rd_done => per_rd_done,
+ rmw_rd_done => rmw_rd_done,
+ wrDataEn => wrDataEn,
+ mc_ACT_n => mc_ACT_n,
+ mcCasSlot => mcCasSlot,
+ mcCasSlot2 => mcCasSlot2,
+ mcRdCAS => mcRdCAS,
+ mcWrCAS => mcWrCAS,
+ winInjTxn => winInjTxn,
+ winRmw => winRmw,
+ gt_data_ready => gt_data_ready,
+ winRank => winRank,
+ tCWL => tCWL,
+ wrData => wrData,
+ rdData => rdData,
+ mc_ADR => mc_ADR,
+ mc_BA => mc_BA,
+ mc_CKE => mc_CKE,
+ mc_CS_n => mc_CS_n,
+ mc_ODT => mc_ODT,
+ dBufAdr => dBufAdr,
+ rdDataAddr => rdDataAddr,
+ wrDataAddr => wrDataAddr,
+ winBuf => winBuf,
+ ddr4_act_n => ddr4_act_n,
+ ddr4_adr => ddr4_adr,
+ ddr4_ba => ddr4_ba,
+ ddr4_bg => ddr4_bg,
+ ddr4_par => ddr4_par,
+ ddr4_cke => ddr4_cke,
+ ddr4_odt => ddr4_odt,
+ ddr4_cs_n => ddr4_cs_n,
+ ddr4_ck_t => ddr4_ck_t,
+ ddr4_ck_c => ddr4_ck_c,
+ ddr4_reset_n => ddr4_reset_n,
+ ddr4_parity => ddr4_parity,
+ ddr4_dq => ddr4_dq,
+ ddr4_dqs_c => ddr4_dqs_c,
+ ddr4_dqs_t => ddr4_dqs_t,
+ mc_BG => mc_BG
+ );
+-- INST_TAG_END ------ End INSTANTIATION Template ---------
+
+-- You must compile the wrapper file phy_ddr4.vhd when simulating
+-- the core, phy_ddr4. When compiling the wrapper file, be sure to
+-- reference the VHDL simulation library.
+
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/phy_ddr4/phy_ddr4_stub.v b/projects/XUPVVH/XUPVVH.ip_user_files/ip/phy_ddr4/phy_ddr4_stub.v
new file mode 100644
index 0000000..856787d
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/phy_ddr4/phy_ddr4_stub.v
@@ -0,0 +1,75 @@
+// Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
+// --------------------------------------------------------------------------------
+// Tool Version: Vivado v.2019.2 (lin64) Build 2708876 Wed Nov 6 21:39:14 MST 2019
+// Date : Sun Oct 18 14:45:25 2020
+// Host : jalapeno running 64-bit Ubuntu 18.04.5 LTS
+// Command : write_verilog -force -mode synth_stub
+// /home/ataberk/SoftMC_DDR4/projects/XUPVVH/XUPVVH.srcs/sources_1/ip/phy_ddr4/phy_ddr4_stub.v
+// Design : phy_ddr4
+// Purpose : Stub declaration of top-level module interface
+// Device : xcvu37p-fsvh2892-2-e
+// --------------------------------------------------------------------------------
+
+// This empty module with port declaration file causes synthesis tools to infer a black box for IP.
+// The synthesis directives are for Synopsys Synplify support to prevent IO buffer insertion.
+// Please paste the declaration into a Verilog source file or add the file as an additional source.
+(* X_CORE_INFO = "ddr4_v2_2_8,Vivado 2019.2" *)
+module phy_ddr4(sys_rst, c0_sys_clk_p, c0_sys_clk_n,
+ c0_ddr4_ui_clk, c0_ddr4_ui_clk_sync_rst, dbg_clk, c0_ddr4_act_n, c0_ddr4_adr, c0_ddr4_ba,
+ c0_ddr4_bg, c0_ddr4_cke, c0_ddr4_odt, c0_ddr4_cs_n, c0_ddr4_ck_t, c0_ddr4_ck_c,
+ c0_ddr4_reset_n, c0_ddr4_parity, c0_ddr4_dq, c0_ddr4_dqs_c, c0_ddr4_dqs_t,
+ c0_init_calib_complete, dBufAdr, wrData, rdData, rdDataAddr, rdDataEn, rdDataEnd, per_rd_done,
+ rmw_rd_done, wrDataAddr, wrDataEn, mc_ACT_n, mc_ADR, mc_BA, mc_BG, mc_CKE, mc_CS_n, mc_ODT,
+ mcCasSlot, mcCasSlot2, mcRdCAS, mcWrCAS, winInjTxn, winRmw, gt_data_ready, winBuf, winRank, tCWL,
+ dbg_bus)
+/* synthesis syn_black_box black_box_pad_pin="sys_rst,c0_sys_clk_p,c0_sys_clk_n,c0_ddr4_ui_clk,c0_ddr4_ui_clk_sync_rst,dbg_clk,c0_ddr4_act_n,c0_ddr4_adr[16:0],c0_ddr4_ba[1:0],c0_ddr4_bg[1:0],c0_ddr4_cke[1:0],c0_ddr4_odt[1:0],c0_ddr4_cs_n[1:0],c0_ddr4_ck_t[0:0],c0_ddr4_ck_c[0:0],c0_ddr4_reset_n,c0_ddr4_parity,c0_ddr4_dq[71:0],c0_ddr4_dqs_c[17:0],c0_ddr4_dqs_t[17:0],c0_init_calib_complete,dBufAdr[4:0],wrData[575:0],rdData[575:0],rdDataAddr[4:0],rdDataEn[0:0],rdDataEnd[0:0],per_rd_done[0:0],rmw_rd_done[0:0],wrDataAddr[4:0],wrDataEn[0:0],mc_ACT_n[7:0],mc_ADR[135:0],mc_BA[15:0],mc_BG[15:0],mc_CKE[15:0],mc_CS_n[15:0],mc_ODT[15:0],mcCasSlot[1:0],mcCasSlot2[0:0],mcRdCAS[0:0],mcWrCAS[0:0],winInjTxn[0:0],winRmw[0:0],gt_data_ready,winBuf[4:0],winRank[1:0],tCWL[5:0],dbg_bus[511:0]" */;
+ input sys_rst;
+ input c0_sys_clk_p;
+ input c0_sys_clk_n;
+ output c0_ddr4_ui_clk;
+ output c0_ddr4_ui_clk_sync_rst;
+ output dbg_clk;
+ output c0_ddr4_act_n;
+ output [16:0]c0_ddr4_adr;
+ output [1:0]c0_ddr4_ba;
+ output [1:0]c0_ddr4_bg;
+ output [1:0]c0_ddr4_cke;
+ output [1:0]c0_ddr4_odt;
+ output [1:0]c0_ddr4_cs_n;
+ output [0:0]c0_ddr4_ck_t;
+ output [0:0]c0_ddr4_ck_c;
+ output c0_ddr4_reset_n;
+ output c0_ddr4_parity;
+ inout [71:0]c0_ddr4_dq;
+ inout [17:0]c0_ddr4_dqs_c;
+ inout [17:0]c0_ddr4_dqs_t;
+ output c0_init_calib_complete;
+ input [4:0]dBufAdr;
+ input [575:0]wrData;
+ output [575:0]rdData;
+ output [4:0]rdDataAddr;
+ output [0:0]rdDataEn;
+ output [0:0]rdDataEnd;
+ output [0:0]per_rd_done;
+ output [0:0]rmw_rd_done;
+ output [4:0]wrDataAddr;
+ output [0:0]wrDataEn;
+ input [7:0]mc_ACT_n;
+ input [135:0]mc_ADR;
+ input [15:0]mc_BA;
+ input [15:0]mc_BG;
+ input [15:0]mc_CKE;
+ input [15:0]mc_CS_n;
+ input [15:0]mc_ODT;
+ input [1:0]mcCasSlot;
+ input [0:0]mcCasSlot2;
+ input [0:0]mcRdCAS;
+ input [0:0]mcWrCAS;
+ input [0:0]winInjTxn;
+ input [0:0]winRmw;
+ input gt_data_ready;
+ input [4:0]winBuf;
+ input [1:0]winRank;
+ output [5:0]tCWL;
+ output [511:0]dbg_bus;
+endmodule
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/phy_ddr4/phy_ddr4_stub.vhdl b/projects/XUPVVH/XUPVVH.ip_user_files/ip/phy_ddr4/phy_ddr4_stub.vhdl
new file mode 100644
index 0000000..e5a1389
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/phy_ddr4/phy_ddr4_stub.vhdl
@@ -0,0 +1,78 @@
+-- Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
+-- --------------------------------------------------------------------------------
+-- Tool Version: Vivado v.2019.2 (lin64) Build 2708876 Wed Nov 6 21:39:14 MST 2019
+-- Date : Sun Oct 18 14:45:25 2020
+-- Host : jalapeno running 64-bit Ubuntu 18.04.5 LTS
+-- Command : write_vhdl -force -mode synth_stub
+-- /home/ataberk/SoftMC_DDR4/projects/XUPVVH/XUPVVH.srcs/sources_1/ip/phy_ddr4/phy_ddr4_stub.vhdl
+-- Design : phy_ddr4
+-- Purpose : Stub declaration of top-level module interface
+-- Device : xcvu37p-fsvh2892-2-e
+-- --------------------------------------------------------------------------------
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+entity phy_ddr4 is
+ Port (
+ sys_rst : in STD_LOGIC;
+ c0_sys_clk_p : in STD_LOGIC;
+ c0_sys_clk_n : in STD_LOGIC;
+ c0_ddr4_ui_clk : out STD_LOGIC;
+ c0_ddr4_ui_clk_sync_rst : out STD_LOGIC;
+ dbg_clk : out STD_LOGIC;
+ c0_ddr4_act_n : out STD_LOGIC;
+ c0_ddr4_adr : out STD_LOGIC_VECTOR ( 16 downto 0 );
+ c0_ddr4_ba : out STD_LOGIC_VECTOR ( 1 downto 0 );
+ c0_ddr4_bg : out STD_LOGIC_VECTOR ( 1 downto 0 );
+ c0_ddr4_cke : out STD_LOGIC_VECTOR ( 1 downto 0 );
+ c0_ddr4_odt : out STD_LOGIC_VECTOR ( 1 downto 0 );
+ c0_ddr4_cs_n : out STD_LOGIC_VECTOR ( 1 downto 0 );
+ c0_ddr4_ck_t : out STD_LOGIC_VECTOR ( 0 to 0 );
+ c0_ddr4_ck_c : out STD_LOGIC_VECTOR ( 0 to 0 );
+ c0_ddr4_reset_n : out STD_LOGIC;
+ c0_ddr4_parity : out STD_LOGIC;
+ c0_ddr4_dq : inout STD_LOGIC_VECTOR ( 71 downto 0 );
+ c0_ddr4_dqs_c : inout STD_LOGIC_VECTOR ( 17 downto 0 );
+ c0_ddr4_dqs_t : inout STD_LOGIC_VECTOR ( 17 downto 0 );
+ c0_init_calib_complete : out STD_LOGIC;
+ dBufAdr : in STD_LOGIC_VECTOR ( 4 downto 0 );
+ wrData : in STD_LOGIC_VECTOR ( 575 downto 0 );
+ rdData : out STD_LOGIC_VECTOR ( 575 downto 0 );
+ rdDataAddr : out STD_LOGIC_VECTOR ( 4 downto 0 );
+ rdDataEn : out STD_LOGIC_VECTOR ( 0 to 0 );
+ rdDataEnd : out STD_LOGIC_VECTOR ( 0 to 0 );
+ per_rd_done : out STD_LOGIC_VECTOR ( 0 to 0 );
+ rmw_rd_done : out STD_LOGIC_VECTOR ( 0 to 0 );
+ wrDataAddr : out STD_LOGIC_VECTOR ( 4 downto 0 );
+ wrDataEn : out STD_LOGIC_VECTOR ( 0 to 0 );
+ mc_ACT_n : in STD_LOGIC_VECTOR ( 7 downto 0 );
+ mc_ADR : in STD_LOGIC_VECTOR ( 135 downto 0 );
+ mc_BA : in STD_LOGIC_VECTOR ( 15 downto 0 );
+ mc_BG : in STD_LOGIC_VECTOR ( 15 downto 0 );
+ mc_CKE : in STD_LOGIC_VECTOR ( 15 downto 0 );
+ mc_CS_n : in STD_LOGIC_VECTOR ( 15 downto 0 );
+ mc_ODT : in STD_LOGIC_VECTOR ( 15 downto 0 );
+ mcCasSlot : in STD_LOGIC_VECTOR ( 1 downto 0 );
+ mcCasSlot2 : in STD_LOGIC_VECTOR ( 0 to 0 );
+ mcRdCAS : in STD_LOGIC_VECTOR ( 0 to 0 );
+ mcWrCAS : in STD_LOGIC_VECTOR ( 0 to 0 );
+ winInjTxn : in STD_LOGIC_VECTOR ( 0 to 0 );
+ winRmw : in STD_LOGIC_VECTOR ( 0 to 0 );
+ gt_data_ready : in STD_LOGIC;
+ winBuf : in STD_LOGIC_VECTOR ( 4 downto 0 );
+ winRank : in STD_LOGIC_VECTOR ( 1 downto 0 );
+ tCWL : out STD_LOGIC_VECTOR ( 5 downto 0 );
+ dbg_bus : out STD_LOGIC_VECTOR ( 511 downto 0 )
+ );
+
+end phy_ddr4;
+
+architecture stub of phy_ddr4 is
+attribute syn_black_box : boolean;
+attribute black_box_pad_pin : string;
+attribute syn_black_box of stub : architecture is true;
+attribute black_box_pad_pin of stub : architecture is "sys_rst,c0_sys_clk_p,c0_sys_clk_n,c0_ddr4_ui_clk,c0_ddr4_ui_clk_sync_rst,dbg_clk,c0_ddr4_act_n,c0_ddr4_adr[16:0],c0_ddr4_ba[1:0],c0_ddr4_bg[1:0],c0_ddr4_cke[1:0],c0_ddr4_odt[1:0],c0_ddr4_cs_n[1:0],c0_ddr4_ck_t[0:0],c0_ddr4_ck_c[0:0],c0_ddr4_reset_n,c0_ddr4_parity,c0_ddr4_dq[71:0],c0_ddr4_dqs_c[17:0],c0_ddr4_dqs_t[17:0],c0_init_calib_complete,dBufAdr[4:0],wrData[575:0],rdData[575:0],rdDataAddr[4:0],rdDataEn[0:0],rdDataEnd[0:0],per_rd_done[0:0],rmw_rd_done[0:0],wrDataAddr[4:0],wrDataEn[0:0],mc_ACT_n[7:0],mc_ADR[135:0],mc_BA[15:0],mc_BG[15:0],mc_CKE[15:0],mc_CS_n[15:0],mc_ODT[15:0],mcCasSlot[1:0],mcCasSlot2[0:0],mcRdCAS[0:0],mcWrCAS[0:0],winInjTxn[0:0],winRmw[0:0],gt_data_ready,winBuf[4:0],winRank[1:0],tCWL[5:0],dbg_bus[511:0]";
+attribute X_CORE_INFO : string;
+attribute X_CORE_INFO of stub : architecture is "ddr4_v2_2_8,Vivado 2019.2";
+begin
+end;
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/pr_read_mem/pr_read_mem.veo b/projects/XUPVVH/XUPVVH.ip_user_files/ip/pr_read_mem/pr_read_mem.veo
new file mode 100755
index 0000000..b4a3eae
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/pr_read_mem/pr_read_mem.veo
@@ -0,0 +1,70 @@
+// (c) Copyright 1995-2020 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.
+//
+// DO NOT MODIFY THIS FILE.
+
+// IP VLNV: xilinx.com:ip:blk_mem_gen:8.4
+// IP Revision: 4
+
+// The following must be inserted into your Verilog file for this
+// core to be instantiated. Change the instance name and port connections
+// (in parentheses) to your own signal names.
+
+//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
+pr_read_mem your_instance_name (
+ .clka(clka), // input wire clka
+ .ena(ena), // input wire ena
+ .wea(wea), // input wire [0 : 0] wea
+ .addra(addra), // input wire [3 : 0] addra
+ .dina(dina), // input wire [63 : 0] dina
+ .douta(douta) // output wire [63 : 0] douta
+);
+// INST_TAG_END ------ End INSTANTIATION Template ---------
+
+// You must compile the wrapper file pr_read_mem.v when simulating
+// the core, pr_read_mem. When compiling the wrapper file, be sure to
+// reference the Verilog simulation library.
+
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/pr_read_mem/pr_read_mem.vho b/projects/XUPVVH/XUPVVH.ip_user_files/ip/pr_read_mem/pr_read_mem.vho
new file mode 100755
index 0000000..2a5cfac
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/pr_read_mem/pr_read_mem.vho
@@ -0,0 +1,85 @@
+-- (c) Copyright 1995-2020 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.
+--
+-- DO NOT MODIFY THIS FILE.
+
+-- IP VLNV: xilinx.com:ip:blk_mem_gen:8.4
+-- IP Revision: 4
+
+-- The following code must appear in the VHDL architecture header.
+
+------------- Begin Cut here for COMPONENT Declaration ------ COMP_TAG
+COMPONENT pr_read_mem
+ PORT (
+ clka : IN STD_LOGIC;
+ ena : IN STD_LOGIC;
+ wea : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
+ addra : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
+ dina : IN STD_LOGIC_VECTOR(63 DOWNTO 0);
+ douta : OUT STD_LOGIC_VECTOR(63 DOWNTO 0)
+ );
+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 : pr_read_mem
+ PORT MAP (
+ clka => clka,
+ ena => ena,
+ wea => wea,
+ addra => addra,
+ dina => dina,
+ douta => douta
+ );
+-- INST_TAG_END ------ End INSTANTIATION Template ---------
+
+-- You must compile the wrapper file pr_read_mem.vhd when simulating
+-- the core, pr_read_mem. When compiling the wrapper file, be sure to
+-- reference the VHDL simulation library.
+
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/pr_read_mem/pr_read_mem_stub.v b/projects/XUPVVH/XUPVVH.ip_user_files/ip/pr_read_mem/pr_read_mem_stub.v
new file mode 100644
index 0000000..4c53748
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/pr_read_mem/pr_read_mem_stub.v
@@ -0,0 +1,25 @@
+// Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
+// --------------------------------------------------------------------------------
+// Tool Version: Vivado v.2019.2 (lin64) Build 2708876 Wed Nov 6 21:39:14 MST 2019
+// Date : Sun Oct 18 14:26:35 2020
+// Host : jalapeno running 64-bit Ubuntu 18.04.5 LTS
+// Command : write_verilog -force -mode synth_stub
+// /home/ataberk/SoftMC_DDR4/projects/XUPVVH/XUPVVH.srcs/sources_1/ip/pr_read_mem/pr_read_mem_stub.v
+// Design : pr_read_mem
+// Purpose : Stub declaration of top-level module interface
+// Device : xcvu37p-fsvh2892-2-e
+// --------------------------------------------------------------------------------
+
+// This empty module with port declaration file causes synthesis tools to infer a black box for IP.
+// The synthesis directives are for Synopsys Synplify support to prevent IO buffer insertion.
+// Please paste the declaration into a Verilog source file or add the file as an additional source.
+(* x_core_info = "blk_mem_gen_v8_4_4,Vivado 2019.2" *)
+module pr_read_mem(clka, ena, wea, addra, dina, douta)
+/* synthesis syn_black_box black_box_pad_pin="clka,ena,wea[0:0],addra[3:0],dina[63:0],douta[63:0]" */;
+ input clka;
+ input ena;
+ input [0:0]wea;
+ input [3:0]addra;
+ input [63:0]dina;
+ output [63:0]douta;
+endmodule
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/pr_read_mem/pr_read_mem_stub.vhdl b/projects/XUPVVH/XUPVVH.ip_user_files/ip/pr_read_mem/pr_read_mem_stub.vhdl
new file mode 100644
index 0000000..e705427
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/pr_read_mem/pr_read_mem_stub.vhdl
@@ -0,0 +1,35 @@
+-- Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
+-- --------------------------------------------------------------------------------
+-- Tool Version: Vivado v.2019.2 (lin64) Build 2708876 Wed Nov 6 21:39:14 MST 2019
+-- Date : Sun Oct 18 14:26:35 2020
+-- Host : jalapeno running 64-bit Ubuntu 18.04.5 LTS
+-- Command : write_vhdl -force -mode synth_stub
+-- /home/ataberk/SoftMC_DDR4/projects/XUPVVH/XUPVVH.srcs/sources_1/ip/pr_read_mem/pr_read_mem_stub.vhdl
+-- Design : pr_read_mem
+-- Purpose : Stub declaration of top-level module interface
+-- Device : xcvu37p-fsvh2892-2-e
+-- --------------------------------------------------------------------------------
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+entity pr_read_mem is
+ Port (
+ clka : in STD_LOGIC;
+ ena : in STD_LOGIC;
+ wea : in STD_LOGIC_VECTOR ( 0 to 0 );
+ addra : in STD_LOGIC_VECTOR ( 3 downto 0 );
+ dina : in STD_LOGIC_VECTOR ( 63 downto 0 );
+ douta : out STD_LOGIC_VECTOR ( 63 downto 0 )
+ );
+
+end pr_read_mem;
+
+architecture stub of pr_read_mem is
+attribute syn_black_box : boolean;
+attribute black_box_pad_pin : string;
+attribute syn_black_box of stub : architecture is true;
+attribute black_box_pad_pin of stub : architecture is "clka,ena,wea[0:0],addra[3:0],dina[63:0],douta[63:0]";
+attribute x_core_info : string;
+attribute x_core_info of stub : architecture is "blk_mem_gen_v8_4_4,Vivado 2019.2";
+begin
+end;
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/pr_ref_mem/pr_ref_mem.veo b/projects/XUPVVH/XUPVVH.ip_user_files/ip/pr_ref_mem/pr_ref_mem.veo
new file mode 100755
index 0000000..fe0ba53
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/pr_ref_mem/pr_ref_mem.veo
@@ -0,0 +1,70 @@
+// (c) Copyright 1995-2020 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.
+//
+// DO NOT MODIFY THIS FILE.
+
+// IP VLNV: xilinx.com:ip:blk_mem_gen:8.4
+// IP Revision: 4
+
+// The following must be inserted into your Verilog file for this
+// core to be instantiated. Change the instance name and port connections
+// (in parentheses) to your own signal names.
+
+//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
+pr_ref_mem your_instance_name (
+ .clka(clka), // input wire clka
+ .ena(ena), // input wire ena
+ .wea(wea), // input wire [0 : 0] wea
+ .addra(addra), // input wire [5 : 0] addra
+ .dina(dina), // input wire [63 : 0] dina
+ .douta(douta) // output wire [63 : 0] douta
+);
+// INST_TAG_END ------ End INSTANTIATION Template ---------
+
+// You must compile the wrapper file pr_ref_mem.v when simulating
+// the core, pr_ref_mem. When compiling the wrapper file, be sure to
+// reference the Verilog simulation library.
+
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/pr_ref_mem/pr_ref_mem.vho b/projects/XUPVVH/XUPVVH.ip_user_files/ip/pr_ref_mem/pr_ref_mem.vho
new file mode 100755
index 0000000..7a39465
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/pr_ref_mem/pr_ref_mem.vho
@@ -0,0 +1,85 @@
+-- (c) Copyright 1995-2020 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.
+--
+-- DO NOT MODIFY THIS FILE.
+
+-- IP VLNV: xilinx.com:ip:blk_mem_gen:8.4
+-- IP Revision: 4
+
+-- The following code must appear in the VHDL architecture header.
+
+------------- Begin Cut here for COMPONENT Declaration ------ COMP_TAG
+COMPONENT pr_ref_mem
+ PORT (
+ clka : IN STD_LOGIC;
+ ena : IN STD_LOGIC;
+ wea : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
+ addra : IN STD_LOGIC_VECTOR(5 DOWNTO 0);
+ dina : IN STD_LOGIC_VECTOR(63 DOWNTO 0);
+ douta : OUT STD_LOGIC_VECTOR(63 DOWNTO 0)
+ );
+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 : pr_ref_mem
+ PORT MAP (
+ clka => clka,
+ ena => ena,
+ wea => wea,
+ addra => addra,
+ dina => dina,
+ douta => douta
+ );
+-- INST_TAG_END ------ End INSTANTIATION Template ---------
+
+-- You must compile the wrapper file pr_ref_mem.vhd when simulating
+-- the core, pr_ref_mem. When compiling the wrapper file, be sure to
+-- reference the VHDL simulation library.
+
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/pr_ref_mem/pr_ref_mem_stub.v b/projects/XUPVVH/XUPVVH.ip_user_files/ip/pr_ref_mem/pr_ref_mem_stub.v
new file mode 100644
index 0000000..f0588dc
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/pr_ref_mem/pr_ref_mem_stub.v
@@ -0,0 +1,25 @@
+// Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
+// --------------------------------------------------------------------------------
+// Tool Version: Vivado v.2019.2 (lin64) Build 2708876 Wed Nov 6 21:39:14 MST 2019
+// Date : Sun Oct 18 14:26:30 2020
+// Host : jalapeno running 64-bit Ubuntu 18.04.5 LTS
+// Command : write_verilog -force -mode synth_stub
+// /home/ataberk/SoftMC_DDR4/projects/XUPVVH/XUPVVH.srcs/sources_1/ip/pr_ref_mem/pr_ref_mem_stub.v
+// Design : pr_ref_mem
+// Purpose : Stub declaration of top-level module interface
+// Device : xcvu37p-fsvh2892-2-e
+// --------------------------------------------------------------------------------
+
+// This empty module with port declaration file causes synthesis tools to infer a black box for IP.
+// The synthesis directives are for Synopsys Synplify support to prevent IO buffer insertion.
+// Please paste the declaration into a Verilog source file or add the file as an additional source.
+(* x_core_info = "blk_mem_gen_v8_4_4,Vivado 2019.2" *)
+module pr_ref_mem(clka, ena, wea, addra, dina, douta)
+/* synthesis syn_black_box black_box_pad_pin="clka,ena,wea[0:0],addra[5:0],dina[63:0],douta[63:0]" */;
+ input clka;
+ input ena;
+ input [0:0]wea;
+ input [5:0]addra;
+ input [63:0]dina;
+ output [63:0]douta;
+endmodule
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/pr_ref_mem/pr_ref_mem_stub.vhdl b/projects/XUPVVH/XUPVVH.ip_user_files/ip/pr_ref_mem/pr_ref_mem_stub.vhdl
new file mode 100644
index 0000000..82a647d
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/pr_ref_mem/pr_ref_mem_stub.vhdl
@@ -0,0 +1,35 @@
+-- Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
+-- --------------------------------------------------------------------------------
+-- Tool Version: Vivado v.2019.2 (lin64) Build 2708876 Wed Nov 6 21:39:14 MST 2019
+-- Date : Sun Oct 18 14:26:30 2020
+-- Host : jalapeno running 64-bit Ubuntu 18.04.5 LTS
+-- Command : write_vhdl -force -mode synth_stub
+-- /home/ataberk/SoftMC_DDR4/projects/XUPVVH/XUPVVH.srcs/sources_1/ip/pr_ref_mem/pr_ref_mem_stub.vhdl
+-- Design : pr_ref_mem
+-- Purpose : Stub declaration of top-level module interface
+-- Device : xcvu37p-fsvh2892-2-e
+-- --------------------------------------------------------------------------------
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+entity pr_ref_mem is
+ Port (
+ clka : in STD_LOGIC;
+ ena : in STD_LOGIC;
+ wea : in STD_LOGIC_VECTOR ( 0 to 0 );
+ addra : in STD_LOGIC_VECTOR ( 5 downto 0 );
+ dina : in STD_LOGIC_VECTOR ( 63 downto 0 );
+ douta : out STD_LOGIC_VECTOR ( 63 downto 0 )
+ );
+
+end pr_ref_mem;
+
+architecture stub of pr_ref_mem is
+attribute syn_black_box : boolean;
+attribute black_box_pad_pin : string;
+attribute syn_black_box of stub : architecture is true;
+attribute black_box_pad_pin of stub : architecture is "clka,ena,wea[0:0],addra[5:0],dina[63:0],douta[63:0]";
+attribute x_core_info : string;
+attribute x_core_info of stub : architecture is "blk_mem_gen_v8_4_4,Vivado 2019.2";
+begin
+end;
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/rdback_fifo/rdback_fifo.veo b/projects/XUPVVH/XUPVVH.ip_user_files/ip/rdback_fifo/rdback_fifo.veo
new file mode 100755
index 0000000..48604e9
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/rdback_fifo/rdback_fifo.veo
@@ -0,0 +1,77 @@
+// (c) Copyright 1995-2020 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.
+//
+// DO NOT MODIFY THIS FILE.
+
+// IP VLNV: xilinx.com:ip:fifo_generator:13.2
+// IP Revision: 5
+
+// The following must be inserted into your Verilog file for this
+// core to be instantiated. Change the instance name and port connections
+// (in parentheses) to your own signal names.
+
+//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
+rdback_fifo your_instance_name (
+ .clk(clk), // input wire clk
+ .srst(srst), // input wire srst
+ .din(din), // input wire [511 : 0] din
+ .wr_en(wr_en), // input wire wr_en
+ .rd_en(rd_en), // input wire rd_en
+ .dout(dout), // output wire [255 : 0] dout
+ .full(full), // output wire full
+ .empty(empty), // output wire empty
+ .valid(valid), // output wire valid
+ .prog_full(prog_full), // output wire prog_full
+ .prog_empty(prog_empty), // output wire prog_empty
+ .wr_rst_busy(wr_rst_busy), // output wire wr_rst_busy
+ .rd_rst_busy(rd_rst_busy) // output wire rd_rst_busy
+);
+// INST_TAG_END ------ End INSTANTIATION Template ---------
+
+// You must compile the wrapper file rdback_fifo.v when simulating
+// the core, rdback_fifo. When compiling the wrapper file, be sure to
+// reference the Verilog simulation library.
+
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/rdback_fifo/rdback_fifo.vho b/projects/XUPVVH/XUPVVH.ip_user_files/ip/rdback_fifo/rdback_fifo.vho
new file mode 100755
index 0000000..c48cbe0
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/rdback_fifo/rdback_fifo.vho
@@ -0,0 +1,99 @@
+-- (c) Copyright 1995-2020 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.
+--
+-- DO NOT MODIFY THIS FILE.
+
+-- IP VLNV: xilinx.com:ip:fifo_generator:13.2
+-- IP Revision: 5
+
+-- The following code must appear in the VHDL architecture header.
+
+------------- Begin Cut here for COMPONENT Declaration ------ COMP_TAG
+COMPONENT rdback_fifo
+ PORT (
+ clk : IN STD_LOGIC;
+ srst : IN STD_LOGIC;
+ din : IN STD_LOGIC_VECTOR(511 DOWNTO 0);
+ wr_en : IN STD_LOGIC;
+ rd_en : IN STD_LOGIC;
+ dout : OUT STD_LOGIC_VECTOR(255 DOWNTO 0);
+ full : OUT STD_LOGIC;
+ empty : OUT STD_LOGIC;
+ valid : OUT STD_LOGIC;
+ prog_full : OUT STD_LOGIC;
+ prog_empty : OUT STD_LOGIC;
+ wr_rst_busy : OUT STD_LOGIC;
+ rd_rst_busy : 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 : rdback_fifo
+ PORT MAP (
+ clk => clk,
+ srst => srst,
+ din => din,
+ wr_en => wr_en,
+ rd_en => rd_en,
+ dout => dout,
+ full => full,
+ empty => empty,
+ valid => valid,
+ prog_full => prog_full,
+ prog_empty => prog_empty,
+ wr_rst_busy => wr_rst_busy,
+ rd_rst_busy => rd_rst_busy
+ );
+-- INST_TAG_END ------ End INSTANTIATION Template ---------
+
+-- You must compile the wrapper file rdback_fifo.vhd when simulating
+-- the core, rdback_fifo. When compiling the wrapper file, be sure to
+-- reference the VHDL simulation library.
+
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/rdback_fifo/rdback_fifo_stub.v b/projects/XUPVVH/XUPVVH.ip_user_files/ip/rdback_fifo/rdback_fifo_stub.v
new file mode 100644
index 0000000..cad3ff7
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/rdback_fifo/rdback_fifo_stub.v
@@ -0,0 +1,33 @@
+// Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
+// --------------------------------------------------------------------------------
+// Tool Version: Vivado v.2019.2 (lin64) Build 2708876 Wed Nov 6 21:39:14 MST 2019
+// Date : Sun Oct 18 14:26:16 2020
+// Host : jalapeno running 64-bit Ubuntu 18.04.5 LTS
+// Command : write_verilog -force -mode synth_stub
+// /home/ataberk/SoftMC_DDR4/projects/XUPVVH/XUPVVH.srcs/sources_1/ip/rdback_fifo/rdback_fifo_stub.v
+// Design : rdback_fifo
+// Purpose : Stub declaration of top-level module interface
+// Device : xcvu37p-fsvh2892-2-e
+// --------------------------------------------------------------------------------
+
+// This empty module with port declaration file causes synthesis tools to infer a black box for IP.
+// The synthesis directives are for Synopsys Synplify support to prevent IO buffer insertion.
+// Please paste the declaration into a Verilog source file or add the file as an additional source.
+(* x_core_info = "fifo_generator_v13_2_5,Vivado 2019.2" *)
+module rdback_fifo(clk, srst, din, wr_en, rd_en, dout, full, empty, valid,
+ prog_full, prog_empty, wr_rst_busy, rd_rst_busy)
+/* synthesis syn_black_box black_box_pad_pin="clk,srst,din[511:0],wr_en,rd_en,dout[255:0],full,empty,valid,prog_full,prog_empty,wr_rst_busy,rd_rst_busy" */;
+ input clk;
+ input srst;
+ input [511:0]din;
+ input wr_en;
+ input rd_en;
+ output [255:0]dout;
+ output full;
+ output empty;
+ output valid;
+ output prog_full;
+ output prog_empty;
+ output wr_rst_busy;
+ output rd_rst_busy;
+endmodule
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/rdback_fifo/rdback_fifo_stub.vhdl b/projects/XUPVVH/XUPVVH.ip_user_files/ip/rdback_fifo/rdback_fifo_stub.vhdl
new file mode 100644
index 0000000..fcc0412
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/rdback_fifo/rdback_fifo_stub.vhdl
@@ -0,0 +1,42 @@
+-- Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
+-- --------------------------------------------------------------------------------
+-- Tool Version: Vivado v.2019.2 (lin64) Build 2708876 Wed Nov 6 21:39:14 MST 2019
+-- Date : Sun Oct 18 14:26:16 2020
+-- Host : jalapeno running 64-bit Ubuntu 18.04.5 LTS
+-- Command : write_vhdl -force -mode synth_stub
+-- /home/ataberk/SoftMC_DDR4/projects/XUPVVH/XUPVVH.srcs/sources_1/ip/rdback_fifo/rdback_fifo_stub.vhdl
+-- Design : rdback_fifo
+-- Purpose : Stub declaration of top-level module interface
+-- Device : xcvu37p-fsvh2892-2-e
+-- --------------------------------------------------------------------------------
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+entity rdback_fifo is
+ Port (
+ clk : in STD_LOGIC;
+ srst : in STD_LOGIC;
+ din : in STD_LOGIC_VECTOR ( 511 downto 0 );
+ wr_en : in STD_LOGIC;
+ rd_en : in STD_LOGIC;
+ dout : out STD_LOGIC_VECTOR ( 255 downto 0 );
+ full : out STD_LOGIC;
+ empty : out STD_LOGIC;
+ valid : out STD_LOGIC;
+ prog_full : out STD_LOGIC;
+ prog_empty : out STD_LOGIC;
+ wr_rst_busy : out STD_LOGIC;
+ rd_rst_busy : out STD_LOGIC
+ );
+
+end rdback_fifo;
+
+architecture stub of rdback_fifo is
+attribute syn_black_box : boolean;
+attribute black_box_pad_pin : string;
+attribute syn_black_box of stub : architecture is true;
+attribute black_box_pad_pin of stub : architecture is "clk,srst,din[511:0],wr_en,rd_en,dout[255:0],full,empty,valid,prog_full,prog_empty,wr_rst_busy,rd_rst_busy";
+attribute x_core_info : string;
+attribute x_core_info of stub : architecture is "fifo_generator_v13_2_5,Vivado 2019.2";
+begin
+end;
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/scratchpad/scratchpad.veo b/projects/XUPVVH/XUPVVH.ip_user_files/ip/scratchpad/scratchpad.veo
new file mode 100755
index 0000000..2763d0a
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/scratchpad/scratchpad.veo
@@ -0,0 +1,70 @@
+// (c) Copyright 1995-2020 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.
+//
+// DO NOT MODIFY THIS FILE.
+
+// IP VLNV: xilinx.com:ip:blk_mem_gen:8.4
+// IP Revision: 4
+
+// The following must be inserted into your Verilog file for this
+// core to be instantiated. Change the instance name and port connections
+// (in parentheses) to your own signal names.
+
+//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
+scratchpad your_instance_name (
+ .clka(clka), // input wire clka
+ .ena(ena), // input wire ena
+ .wea(wea), // input wire [0 : 0] wea
+ .addra(addra), // input wire [9 : 0] addra
+ .dina(dina), // input wire [31 : 0] dina
+ .douta(douta) // output wire [31 : 0] douta
+);
+// INST_TAG_END ------ End INSTANTIATION Template ---------
+
+// You must compile the wrapper file scratchpad.v when simulating
+// the core, scratchpad. When compiling the wrapper file, be sure to
+// reference the Verilog simulation library.
+
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/scratchpad/scratchpad.vho b/projects/XUPVVH/XUPVVH.ip_user_files/ip/scratchpad/scratchpad.vho
new file mode 100755
index 0000000..950ab8a
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/scratchpad/scratchpad.vho
@@ -0,0 +1,85 @@
+-- (c) Copyright 1995-2020 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.
+--
+-- DO NOT MODIFY THIS FILE.
+
+-- IP VLNV: xilinx.com:ip:blk_mem_gen:8.4
+-- IP Revision: 4
+
+-- The following code must appear in the VHDL architecture header.
+
+------------- Begin Cut here for COMPONENT Declaration ------ COMP_TAG
+COMPONENT scratchpad
+ PORT (
+ clka : IN STD_LOGIC;
+ ena : IN STD_LOGIC;
+ wea : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
+ addra : IN STD_LOGIC_VECTOR(9 DOWNTO 0);
+ dina : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
+ douta : OUT STD_LOGIC_VECTOR(31 DOWNTO 0)
+ );
+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 : scratchpad
+ PORT MAP (
+ clka => clka,
+ ena => ena,
+ wea => wea,
+ addra => addra,
+ dina => dina,
+ douta => douta
+ );
+-- INST_TAG_END ------ End INSTANTIATION Template ---------
+
+-- You must compile the wrapper file scratchpad.vhd when simulating
+-- the core, scratchpad. When compiling the wrapper file, be sure to
+-- reference the VHDL simulation library.
+
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/scratchpad/scratchpad_stub.v b/projects/XUPVVH/XUPVVH.ip_user_files/ip/scratchpad/scratchpad_stub.v
new file mode 100644
index 0000000..02597ec
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/scratchpad/scratchpad_stub.v
@@ -0,0 +1,25 @@
+// Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
+// --------------------------------------------------------------------------------
+// Tool Version: Vivado v.2019.2 (lin64) Build 2708876 Wed Nov 6 21:39:14 MST 2019
+// Date : Sun Oct 18 14:26:29 2020
+// Host : jalapeno running 64-bit Ubuntu 18.04.5 LTS
+// Command : write_verilog -force -mode synth_stub
+// /home/ataberk/SoftMC_DDR4/projects/XUPVVH/XUPVVH.srcs/sources_1/ip/scratchpad/scratchpad_stub.v
+// Design : scratchpad
+// Purpose : Stub declaration of top-level module interface
+// Device : xcvu37p-fsvh2892-2-e
+// --------------------------------------------------------------------------------
+
+// This empty module with port declaration file causes synthesis tools to infer a black box for IP.
+// The synthesis directives are for Synopsys Synplify support to prevent IO buffer insertion.
+// Please paste the declaration into a Verilog source file or add the file as an additional source.
+(* x_core_info = "blk_mem_gen_v8_4_4,Vivado 2019.2" *)
+module scratchpad(clka, ena, wea, addra, dina, douta)
+/* synthesis syn_black_box black_box_pad_pin="clka,ena,wea[0:0],addra[9:0],dina[31:0],douta[31:0]" */;
+ input clka;
+ input ena;
+ input [0:0]wea;
+ input [9:0]addra;
+ input [31:0]dina;
+ output [31:0]douta;
+endmodule
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/scratchpad/scratchpad_stub.vhdl b/projects/XUPVVH/XUPVVH.ip_user_files/ip/scratchpad/scratchpad_stub.vhdl
new file mode 100644
index 0000000..2293113
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/scratchpad/scratchpad_stub.vhdl
@@ -0,0 +1,35 @@
+-- Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
+-- --------------------------------------------------------------------------------
+-- Tool Version: Vivado v.2019.2 (lin64) Build 2708876 Wed Nov 6 21:39:14 MST 2019
+-- Date : Sun Oct 18 14:26:29 2020
+-- Host : jalapeno running 64-bit Ubuntu 18.04.5 LTS
+-- Command : write_vhdl -force -mode synth_stub
+-- /home/ataberk/SoftMC_DDR4/projects/XUPVVH/XUPVVH.srcs/sources_1/ip/scratchpad/scratchpad_stub.vhdl
+-- Design : scratchpad
+-- Purpose : Stub declaration of top-level module interface
+-- Device : xcvu37p-fsvh2892-2-e
+-- --------------------------------------------------------------------------------
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+entity scratchpad is
+ Port (
+ clka : in STD_LOGIC;
+ ena : in STD_LOGIC;
+ wea : in STD_LOGIC_VECTOR ( 0 to 0 );
+ addra : in STD_LOGIC_VECTOR ( 9 downto 0 );
+ dina : in STD_LOGIC_VECTOR ( 31 downto 0 );
+ douta : out STD_LOGIC_VECTOR ( 31 downto 0 )
+ );
+
+end scratchpad;
+
+architecture stub of scratchpad is
+attribute syn_black_box : boolean;
+attribute black_box_pad_pin : string;
+attribute syn_black_box of stub : architecture is true;
+attribute black_box_pad_pin of stub : architecture is "clka,ena,wea[0:0],addra[9:0],dina[31:0],douta[31:0]";
+attribute x_core_info : string;
+attribute x_core_info of stub : architecture is "blk_mem_gen_v8_4_4,Vivado 2019.2";
+begin
+end;
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/xdma/xdma.veo b/projects/XUPVVH/XUPVVH.ip_user_files/ip/xdma/xdma.veo
new file mode 100755
index 0000000..e9336e8
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/xdma/xdma.veo
@@ -0,0 +1,95 @@
+// (c) Copyright 1995-2020 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.
+//
+// DO NOT MODIFY THIS FILE.
+
+// IP VLNV: xilinx.com:ip:xdma:4.1
+// IP Revision: 4
+
+// The following must be inserted into your Verilog file for this
+// core to be instantiated. Change the instance name and port connections
+// (in parentheses) to your own signal names.
+
+//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
+xdma your_instance_name (
+ .sys_clk(sys_clk), // input wire sys_clk
+ .sys_clk_gt(sys_clk_gt), // input wire sys_clk_gt
+ .sys_rst_n(sys_rst_n), // input wire sys_rst_n
+ .user_lnk_up(user_lnk_up), // output wire user_lnk_up
+ .pci_exp_txp(pci_exp_txp), // output wire [7 : 0] pci_exp_txp
+ .pci_exp_txn(pci_exp_txn), // output wire [7 : 0] pci_exp_txn
+ .pci_exp_rxp(pci_exp_rxp), // input wire [7 : 0] pci_exp_rxp
+ .pci_exp_rxn(pci_exp_rxn), // input wire [7 : 0] pci_exp_rxn
+ .axi_aclk(axi_aclk), // output wire axi_aclk
+ .axi_aresetn(axi_aresetn), // output wire axi_aresetn
+ .usr_irq_req(usr_irq_req), // input wire [0 : 0] usr_irq_req
+ .usr_irq_ack(usr_irq_ack), // output wire [0 : 0] usr_irq_ack
+ .msi_enable(msi_enable), // output wire msi_enable
+ .msi_vector_width(msi_vector_width), // output wire [2 : 0] msi_vector_width
+ .cfg_mgmt_addr(cfg_mgmt_addr), // input wire [18 : 0] cfg_mgmt_addr
+ .cfg_mgmt_write(cfg_mgmt_write), // input wire cfg_mgmt_write
+ .cfg_mgmt_write_data(cfg_mgmt_write_data), // input wire [31 : 0] cfg_mgmt_write_data
+ .cfg_mgmt_byte_enable(cfg_mgmt_byte_enable), // input wire [3 : 0] cfg_mgmt_byte_enable
+ .cfg_mgmt_read(cfg_mgmt_read), // input wire cfg_mgmt_read
+ .cfg_mgmt_read_data(cfg_mgmt_read_data), // output wire [31 : 0] cfg_mgmt_read_data
+ .cfg_mgmt_read_write_done(cfg_mgmt_read_write_done), // output wire cfg_mgmt_read_write_done
+ .s_axis_c2h_tdata_0(s_axis_c2h_tdata_0), // input wire [255 : 0] s_axis_c2h_tdata_0
+ .s_axis_c2h_tlast_0(s_axis_c2h_tlast_0), // input wire s_axis_c2h_tlast_0
+ .s_axis_c2h_tvalid_0(s_axis_c2h_tvalid_0), // input wire s_axis_c2h_tvalid_0
+ .s_axis_c2h_tready_0(s_axis_c2h_tready_0), // output wire s_axis_c2h_tready_0
+ .s_axis_c2h_tkeep_0(s_axis_c2h_tkeep_0), // input wire [31 : 0] s_axis_c2h_tkeep_0
+ .m_axis_h2c_tdata_0(m_axis_h2c_tdata_0), // output wire [255 : 0] m_axis_h2c_tdata_0
+ .m_axis_h2c_tlast_0(m_axis_h2c_tlast_0), // output wire m_axis_h2c_tlast_0
+ .m_axis_h2c_tvalid_0(m_axis_h2c_tvalid_0), // output wire m_axis_h2c_tvalid_0
+ .m_axis_h2c_tready_0(m_axis_h2c_tready_0), // input wire m_axis_h2c_tready_0
+ .m_axis_h2c_tkeep_0(m_axis_h2c_tkeep_0) // output wire [31 : 0] m_axis_h2c_tkeep_0
+);
+// INST_TAG_END ------ End INSTANTIATION Template ---------
+
+// You must compile the wrapper file xdma.v when simulating
+// the core, xdma. When compiling the wrapper file, be sure to
+// reference the Verilog simulation library.
+
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/xdma/xdma.vho b/projects/XUPVVH/XUPVVH.ip_user_files/ip/xdma/xdma.vho
new file mode 100755
index 0000000..8d6a368
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/xdma/xdma.vho
@@ -0,0 +1,135 @@
+-- (c) Copyright 1995-2020 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.
+--
+-- DO NOT MODIFY THIS FILE.
+
+-- IP VLNV: xilinx.com:ip:xdma:4.1
+-- IP Revision: 4
+
+-- The following code must appear in the VHDL architecture header.
+
+------------- Begin Cut here for COMPONENT Declaration ------ COMP_TAG
+COMPONENT xdma
+ PORT (
+ sys_clk : IN STD_LOGIC;
+ sys_clk_gt : IN STD_LOGIC;
+ sys_rst_n : IN STD_LOGIC;
+ user_lnk_up : OUT STD_LOGIC;
+ pci_exp_txp : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
+ pci_exp_txn : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
+ pci_exp_rxp : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
+ pci_exp_rxn : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
+ axi_aclk : OUT STD_LOGIC;
+ axi_aresetn : OUT STD_LOGIC;
+ usr_irq_req : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
+ usr_irq_ack : OUT STD_LOGIC_VECTOR(0 DOWNTO 0);
+ msi_enable : OUT STD_LOGIC;
+ msi_vector_width : OUT STD_LOGIC_VECTOR(2 DOWNTO 0);
+ cfg_mgmt_addr : IN STD_LOGIC_VECTOR(18 DOWNTO 0);
+ cfg_mgmt_write : IN STD_LOGIC;
+ cfg_mgmt_write_data : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
+ cfg_mgmt_byte_enable : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
+ cfg_mgmt_read : IN STD_LOGIC;
+ cfg_mgmt_read_data : OUT STD_LOGIC_VECTOR(31 DOWNTO 0);
+ cfg_mgmt_read_write_done : OUT STD_LOGIC;
+ s_axis_c2h_tdata_0 : IN STD_LOGIC_VECTOR(255 DOWNTO 0);
+ s_axis_c2h_tlast_0 : IN STD_LOGIC;
+ s_axis_c2h_tvalid_0 : IN STD_LOGIC;
+ s_axis_c2h_tready_0 : OUT STD_LOGIC;
+ s_axis_c2h_tkeep_0 : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
+ m_axis_h2c_tdata_0 : OUT STD_LOGIC_VECTOR(255 DOWNTO 0);
+ m_axis_h2c_tlast_0 : OUT STD_LOGIC;
+ m_axis_h2c_tvalid_0 : OUT STD_LOGIC;
+ m_axis_h2c_tready_0 : IN STD_LOGIC;
+ m_axis_h2c_tkeep_0 : OUT STD_LOGIC_VECTOR(31 DOWNTO 0)
+ );
+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 : xdma
+ PORT MAP (
+ sys_clk => sys_clk,
+ sys_clk_gt => sys_clk_gt,
+ sys_rst_n => sys_rst_n,
+ user_lnk_up => user_lnk_up,
+ pci_exp_txp => pci_exp_txp,
+ pci_exp_txn => pci_exp_txn,
+ pci_exp_rxp => pci_exp_rxp,
+ pci_exp_rxn => pci_exp_rxn,
+ axi_aclk => axi_aclk,
+ axi_aresetn => axi_aresetn,
+ usr_irq_req => usr_irq_req,
+ usr_irq_ack => usr_irq_ack,
+ msi_enable => msi_enable,
+ msi_vector_width => msi_vector_width,
+ cfg_mgmt_addr => cfg_mgmt_addr,
+ cfg_mgmt_write => cfg_mgmt_write,
+ cfg_mgmt_write_data => cfg_mgmt_write_data,
+ cfg_mgmt_byte_enable => cfg_mgmt_byte_enable,
+ cfg_mgmt_read => cfg_mgmt_read,
+ cfg_mgmt_read_data => cfg_mgmt_read_data,
+ cfg_mgmt_read_write_done => cfg_mgmt_read_write_done,
+ s_axis_c2h_tdata_0 => s_axis_c2h_tdata_0,
+ s_axis_c2h_tlast_0 => s_axis_c2h_tlast_0,
+ s_axis_c2h_tvalid_0 => s_axis_c2h_tvalid_0,
+ s_axis_c2h_tready_0 => s_axis_c2h_tready_0,
+ s_axis_c2h_tkeep_0 => s_axis_c2h_tkeep_0,
+ m_axis_h2c_tdata_0 => m_axis_h2c_tdata_0,
+ m_axis_h2c_tlast_0 => m_axis_h2c_tlast_0,
+ m_axis_h2c_tvalid_0 => m_axis_h2c_tvalid_0,
+ m_axis_h2c_tready_0 => m_axis_h2c_tready_0,
+ m_axis_h2c_tkeep_0 => m_axis_h2c_tkeep_0
+ );
+-- INST_TAG_END ------ End INSTANTIATION Template ---------
+
+-- You must compile the wrapper file xdma.vhd when simulating
+-- the core, xdma. When compiling the wrapper file, be sure to
+-- reference the VHDL simulation library.
+
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/xdma/xdma_stub.v b/projects/XUPVVH/XUPVVH.ip_user_files/ip/xdma/xdma_stub.v
new file mode 100644
index 0000000..4ed4c76
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/xdma/xdma_stub.v
@@ -0,0 +1,56 @@
+// Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
+// --------------------------------------------------------------------------------
+// Tool Version: Vivado v.2019.2 (lin64) Build 2708876 Wed Nov 6 21:39:14 MST 2019
+// Date : Sun Oct 18 14:34:24 2020
+// Host : jalapeno running 64-bit Ubuntu 18.04.5 LTS
+// Command : write_verilog -force -mode synth_stub
+// /home/ataberk/SoftMC_DDR4/projects/XUPVVH/XUPVVH.srcs/sources_1/ip/xdma/xdma_stub.v
+// Design : xdma
+// Purpose : Stub declaration of top-level module interface
+// Device : xcvu37p-fsvh2892-2-e
+// --------------------------------------------------------------------------------
+
+// This empty module with port declaration file causes synthesis tools to infer a black box for IP.
+// The synthesis directives are for Synopsys Synplify support to prevent IO buffer insertion.
+// Please paste the declaration into a Verilog source file or add the file as an additional source.
+(* X_CORE_INFO = "xdma_core_top,Vivado 2019.2" *)
+module xdma(sys_clk, sys_clk_gt, sys_rst_n, user_lnk_up,
+ pci_exp_txp, pci_exp_txn, pci_exp_rxp, pci_exp_rxn, axi_aclk, axi_aresetn, usr_irq_req,
+ usr_irq_ack, msi_enable, msi_vector_width, cfg_mgmt_addr, cfg_mgmt_write,
+ cfg_mgmt_write_data, cfg_mgmt_byte_enable, cfg_mgmt_read, cfg_mgmt_read_data,
+ cfg_mgmt_read_write_done, s_axis_c2h_tdata_0, s_axis_c2h_tlast_0, s_axis_c2h_tvalid_0,
+ s_axis_c2h_tready_0, s_axis_c2h_tkeep_0, m_axis_h2c_tdata_0, m_axis_h2c_tlast_0,
+ m_axis_h2c_tvalid_0, m_axis_h2c_tready_0, m_axis_h2c_tkeep_0)
+/* synthesis syn_black_box black_box_pad_pin="sys_clk,sys_clk_gt,sys_rst_n,user_lnk_up,pci_exp_txp[7:0],pci_exp_txn[7:0],pci_exp_rxp[7:0],pci_exp_rxn[7:0],axi_aclk,axi_aresetn,usr_irq_req[0:0],usr_irq_ack[0:0],msi_enable,msi_vector_width[2:0],cfg_mgmt_addr[18:0],cfg_mgmt_write,cfg_mgmt_write_data[31:0],cfg_mgmt_byte_enable[3:0],cfg_mgmt_read,cfg_mgmt_read_data[31:0],cfg_mgmt_read_write_done,s_axis_c2h_tdata_0[255:0],s_axis_c2h_tlast_0,s_axis_c2h_tvalid_0,s_axis_c2h_tready_0,s_axis_c2h_tkeep_0[31:0],m_axis_h2c_tdata_0[255:0],m_axis_h2c_tlast_0,m_axis_h2c_tvalid_0,m_axis_h2c_tready_0,m_axis_h2c_tkeep_0[31:0]" */;
+ input sys_clk;
+ input sys_clk_gt;
+ input sys_rst_n;
+ output user_lnk_up;
+ output [7:0]pci_exp_txp;
+ output [7:0]pci_exp_txn;
+ input [7:0]pci_exp_rxp;
+ input [7:0]pci_exp_rxn;
+ output axi_aclk;
+ output axi_aresetn;
+ input [0:0]usr_irq_req;
+ output [0:0]usr_irq_ack;
+ output msi_enable;
+ output [2:0]msi_vector_width;
+ input [18:0]cfg_mgmt_addr;
+ input cfg_mgmt_write;
+ input [31:0]cfg_mgmt_write_data;
+ input [3:0]cfg_mgmt_byte_enable;
+ input cfg_mgmt_read;
+ output [31:0]cfg_mgmt_read_data;
+ output cfg_mgmt_read_write_done;
+ input [255:0]s_axis_c2h_tdata_0;
+ input s_axis_c2h_tlast_0;
+ input s_axis_c2h_tvalid_0;
+ output s_axis_c2h_tready_0;
+ input [31:0]s_axis_c2h_tkeep_0;
+ output [255:0]m_axis_h2c_tdata_0;
+ output m_axis_h2c_tlast_0;
+ output m_axis_h2c_tvalid_0;
+ input m_axis_h2c_tready_0;
+ output [31:0]m_axis_h2c_tkeep_0;
+endmodule
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/xdma/xdma_stub.vhdl b/projects/XUPVVH/XUPVVH.ip_user_files/ip/xdma/xdma_stub.vhdl
new file mode 100644
index 0000000..6c1b234
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/xdma/xdma_stub.vhdl
@@ -0,0 +1,60 @@
+-- Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
+-- --------------------------------------------------------------------------------
+-- Tool Version: Vivado v.2019.2 (lin64) Build 2708876 Wed Nov 6 21:39:14 MST 2019
+-- Date : Sun Oct 18 14:34:24 2020
+-- Host : jalapeno running 64-bit Ubuntu 18.04.5 LTS
+-- Command : write_vhdl -force -mode synth_stub
+-- /home/ataberk/SoftMC_DDR4/projects/XUPVVH/XUPVVH.srcs/sources_1/ip/xdma/xdma_stub.vhdl
+-- Design : xdma
+-- Purpose : Stub declaration of top-level module interface
+-- Device : xcvu37p-fsvh2892-2-e
+-- --------------------------------------------------------------------------------
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+entity xdma is
+ Port (
+ sys_clk : in STD_LOGIC;
+ sys_clk_gt : in STD_LOGIC;
+ sys_rst_n : in STD_LOGIC;
+ user_lnk_up : out STD_LOGIC;
+ pci_exp_txp : out STD_LOGIC_VECTOR ( 7 downto 0 );
+ pci_exp_txn : out STD_LOGIC_VECTOR ( 7 downto 0 );
+ pci_exp_rxp : in STD_LOGIC_VECTOR ( 7 downto 0 );
+ pci_exp_rxn : in STD_LOGIC_VECTOR ( 7 downto 0 );
+ axi_aclk : out STD_LOGIC;
+ axi_aresetn : out STD_LOGIC;
+ usr_irq_req : in STD_LOGIC_VECTOR ( 0 to 0 );
+ usr_irq_ack : out STD_LOGIC_VECTOR ( 0 to 0 );
+ msi_enable : out STD_LOGIC;
+ msi_vector_width : out STD_LOGIC_VECTOR ( 2 downto 0 );
+ cfg_mgmt_addr : in STD_LOGIC_VECTOR ( 18 downto 0 );
+ cfg_mgmt_write : in STD_LOGIC;
+ cfg_mgmt_write_data : in STD_LOGIC_VECTOR ( 31 downto 0 );
+ cfg_mgmt_byte_enable : in STD_LOGIC_VECTOR ( 3 downto 0 );
+ cfg_mgmt_read : in STD_LOGIC;
+ cfg_mgmt_read_data : out STD_LOGIC_VECTOR ( 31 downto 0 );
+ cfg_mgmt_read_write_done : out STD_LOGIC;
+ s_axis_c2h_tdata_0 : in STD_LOGIC_VECTOR ( 255 downto 0 );
+ s_axis_c2h_tlast_0 : in STD_LOGIC;
+ s_axis_c2h_tvalid_0 : in STD_LOGIC;
+ s_axis_c2h_tready_0 : out STD_LOGIC;
+ s_axis_c2h_tkeep_0 : in STD_LOGIC_VECTOR ( 31 downto 0 );
+ m_axis_h2c_tdata_0 : out STD_LOGIC_VECTOR ( 255 downto 0 );
+ m_axis_h2c_tlast_0 : out STD_LOGIC;
+ m_axis_h2c_tvalid_0 : out STD_LOGIC;
+ m_axis_h2c_tready_0 : in STD_LOGIC;
+ m_axis_h2c_tkeep_0 : out STD_LOGIC_VECTOR ( 31 downto 0 )
+ );
+
+end xdma;
+
+architecture stub of xdma is
+attribute syn_black_box : boolean;
+attribute black_box_pad_pin : string;
+attribute syn_black_box of stub : architecture is true;
+attribute black_box_pad_pin of stub : architecture is "sys_clk,sys_clk_gt,sys_rst_n,user_lnk_up,pci_exp_txp[7:0],pci_exp_txn[7:0],pci_exp_rxp[7:0],pci_exp_rxn[7:0],axi_aclk,axi_aresetn,usr_irq_req[0:0],usr_irq_ack[0:0],msi_enable,msi_vector_width[2:0],cfg_mgmt_addr[18:0],cfg_mgmt_write,cfg_mgmt_write_data[31:0],cfg_mgmt_byte_enable[3:0],cfg_mgmt_read,cfg_mgmt_read_data[31:0],cfg_mgmt_read_write_done,s_axis_c2h_tdata_0[255:0],s_axis_c2h_tlast_0,s_axis_c2h_tvalid_0,s_axis_c2h_tready_0,s_axis_c2h_tkeep_0[31:0],m_axis_h2c_tdata_0[255:0],m_axis_h2c_tlast_0,m_axis_h2c_tvalid_0,m_axis_h2c_tready_0,m_axis_h2c_tkeep_0[31:0]";
+attribute X_CORE_INFO : string;
+attribute X_CORE_INFO of stub : architecture is "xdma_core_top,Vivado 2019.2";
+begin
+end;
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/zq_calib_mem/zq_calib_mem.veo b/projects/XUPVVH/XUPVVH.ip_user_files/ip/zq_calib_mem/zq_calib_mem.veo
new file mode 100755
index 0000000..85b501d
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/zq_calib_mem/zq_calib_mem.veo
@@ -0,0 +1,70 @@
+// (c) Copyright 1995-2020 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.
+//
+// DO NOT MODIFY THIS FILE.
+
+// IP VLNV: xilinx.com:ip:blk_mem_gen:8.4
+// IP Revision: 4
+
+// The following must be inserted into your Verilog file for this
+// core to be instantiated. Change the instance name and port connections
+// (in parentheses) to your own signal names.
+
+//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
+zq_calib_mem your_instance_name (
+ .clka(clka), // input wire clka
+ .ena(ena), // input wire ena
+ .wea(wea), // input wire [0 : 0] wea
+ .addra(addra), // input wire [5 : 0] addra
+ .dina(dina), // input wire [63 : 0] dina
+ .douta(douta) // output wire [63 : 0] douta
+);
+// INST_TAG_END ------ End INSTANTIATION Template ---------
+
+// You must compile the wrapper file zq_calib_mem.v when simulating
+// the core, zq_calib_mem. When compiling the wrapper file, be sure to
+// reference the Verilog simulation library.
+
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/zq_calib_mem/zq_calib_mem.vho b/projects/XUPVVH/XUPVVH.ip_user_files/ip/zq_calib_mem/zq_calib_mem.vho
new file mode 100755
index 0000000..b6722f7
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/zq_calib_mem/zq_calib_mem.vho
@@ -0,0 +1,85 @@
+-- (c) Copyright 1995-2020 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.
+--
+-- DO NOT MODIFY THIS FILE.
+
+-- IP VLNV: xilinx.com:ip:blk_mem_gen:8.4
+-- IP Revision: 4
+
+-- The following code must appear in the VHDL architecture header.
+
+------------- Begin Cut here for COMPONENT Declaration ------ COMP_TAG
+COMPONENT zq_calib_mem
+ PORT (
+ clka : IN STD_LOGIC;
+ ena : IN STD_LOGIC;
+ wea : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
+ addra : IN STD_LOGIC_VECTOR(5 DOWNTO 0);
+ dina : IN STD_LOGIC_VECTOR(63 DOWNTO 0);
+ douta : OUT STD_LOGIC_VECTOR(63 DOWNTO 0)
+ );
+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 : zq_calib_mem
+ PORT MAP (
+ clka => clka,
+ ena => ena,
+ wea => wea,
+ addra => addra,
+ dina => dina,
+ douta => douta
+ );
+-- INST_TAG_END ------ End INSTANTIATION Template ---------
+
+-- You must compile the wrapper file zq_calib_mem.vhd when simulating
+-- the core, zq_calib_mem. When compiling the wrapper file, be sure to
+-- reference the VHDL simulation library.
+
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/zq_calib_mem/zq_calib_mem_stub.v b/projects/XUPVVH/XUPVVH.ip_user_files/ip/zq_calib_mem/zq_calib_mem_stub.v
new file mode 100644
index 0000000..9025619
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/zq_calib_mem/zq_calib_mem_stub.v
@@ -0,0 +1,25 @@
+// Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
+// --------------------------------------------------------------------------------
+// Tool Version: Vivado v.2019.2 (lin64) Build 2708876 Wed Nov 6 21:39:14 MST 2019
+// Date : Sun Oct 18 14:29:16 2020
+// Host : jalapeno running 64-bit Ubuntu 18.04.5 LTS
+// Command : write_verilog -force -mode synth_stub
+// /home/ataberk/SoftMC_DDR4/projects/XUPVVH/XUPVVH.srcs/sources_1/ip/zq_calib_mem/zq_calib_mem_stub.v
+// Design : zq_calib_mem
+// Purpose : Stub declaration of top-level module interface
+// Device : xcvu37p-fsvh2892-2-e
+// --------------------------------------------------------------------------------
+
+// This empty module with port declaration file causes synthesis tools to infer a black box for IP.
+// The synthesis directives are for Synopsys Synplify support to prevent IO buffer insertion.
+// Please paste the declaration into a Verilog source file or add the file as an additional source.
+(* x_core_info = "blk_mem_gen_v8_4_4,Vivado 2019.2" *)
+module zq_calib_mem(clka, ena, wea, addra, dina, douta)
+/* synthesis syn_black_box black_box_pad_pin="clka,ena,wea[0:0],addra[5:0],dina[63:0],douta[63:0]" */;
+ input clka;
+ input ena;
+ input [0:0]wea;
+ input [5:0]addra;
+ input [63:0]dina;
+ output [63:0]douta;
+endmodule
diff --git a/projects/XUPVVH/XUPVVH.ip_user_files/ip/zq_calib_mem/zq_calib_mem_stub.vhdl b/projects/XUPVVH/XUPVVH.ip_user_files/ip/zq_calib_mem/zq_calib_mem_stub.vhdl
new file mode 100644
index 0000000..fd42800
--- /dev/null
+++ b/projects/XUPVVH/XUPVVH.ip_user_files/ip/zq_calib_mem/zq_calib_mem_stub.vhdl
@@ -0,0 +1,35 @@
+-- Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
+-- --------------------------------------------------------------------------------
+-- Tool Version: Vivado v.2019.2 (lin64) Build 2708876 Wed Nov 6 21:39:14 MST 2019
+-- Date : Sun Oct 18 14:29:16 2020
+-- Host : jalapeno running 64-bit Ubuntu 18.04.5 LTS
+-- Command : write_vhdl -force -mode synth_stub
+-- /home/ataberk/SoftMC_DDR4/projects/XUPVVH/XUPVVH.srcs/sources_1/ip/zq_calib_mem/zq_calib_mem_stub.vhdl
+-- Design : zq_calib_mem
+-- Purpose : Stub declaration of top-level module interface
+-- Device : xcvu37p-fsvh2892-2-e
+-- --------------------------------------------------------------------------------
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+entity zq_calib_mem is
+ Port (
+ clka : in STD_LOGIC;
+ ena : in STD_LOGIC;
+ wea : in STD_LOGIC_VECTOR ( 0 to 0 );
+ addra : in STD_LOGIC_VECTOR ( 5 downto 0 );
+ dina : in STD_LOGIC_VECTOR ( 63 downto 0 );
+ douta : out STD_LOGIC_VECTOR ( 63 downto 0 )
+ );
+
+end zq_calib_mem;
+
+architecture stub of zq_calib_mem is
+attribute syn_black_box : boolean;
+attribute black_box_pad_pin : string;
+attribute syn_black_box of stub : architecture is true;
+attribute black_box_pad_pin of stub : architecture is "clka,ena,wea[0:0],addra[5:0],dina[63:0],douta[63:0]";
+attribute x_core_info : string;
+attribute x_core_info of stub : architecture is "blk_mem_gen_v8_4_4,Vivado 2019.2";
+begin
+end;