Archived
first commit after restructuring
This commit is contained in:
Binary file not shown.
@@ -0,0 +1 @@
|
||||
The files in this directory structure are automatically generated and managed by Vivado. Editing these files is not recommended.
|
||||
@@ -0,0 +1,69 @@
|
||||
// (c) Copyright 1995-2023 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:cordic:6.0
|
||||
// IP Revision: 15
|
||||
|
||||
// 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
|
||||
atan2_16b your_instance_name (
|
||||
.aclk(aclk), // input wire aclk
|
||||
.s_axis_cartesian_tvalid(s_axis_cartesian_tvalid), // input wire s_axis_cartesian_tvalid
|
||||
.s_axis_cartesian_tdata(s_axis_cartesian_tdata), // input wire [31 : 0] s_axis_cartesian_tdata
|
||||
.m_axis_dout_tvalid(m_axis_dout_tvalid), // output wire m_axis_dout_tvalid
|
||||
.m_axis_dout_tdata(m_axis_dout_tdata) // output wire [15 : 0] m_axis_dout_tdata
|
||||
);
|
||||
// INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
|
||||
// You must compile the wrapper file atan2_16b.v when simulating
|
||||
// the core, atan2_16b. When compiling the wrapper file, be sure to
|
||||
// reference the Verilog simulation library.
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
-- (c) Copyright 1995-2023 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:cordic:6.0
|
||||
-- IP Revision: 15
|
||||
|
||||
-- The following code must appear in the VHDL architecture header.
|
||||
|
||||
------------- Begin Cut here for COMPONENT Declaration ------ COMP_TAG
|
||||
COMPONENT atan2_16b
|
||||
PORT (
|
||||
aclk : IN STD_LOGIC;
|
||||
s_axis_cartesian_tvalid : IN STD_LOGIC;
|
||||
s_axis_cartesian_tdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
|
||||
m_axis_dout_tvalid : OUT STD_LOGIC;
|
||||
m_axis_dout_tdata : OUT 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 : atan2_16b
|
||||
PORT MAP (
|
||||
aclk => aclk,
|
||||
s_axis_cartesian_tvalid => s_axis_cartesian_tvalid,
|
||||
s_axis_cartesian_tdata => s_axis_cartesian_tdata,
|
||||
m_axis_dout_tvalid => m_axis_dout_tvalid,
|
||||
m_axis_dout_tdata => m_axis_dout_tdata
|
||||
);
|
||||
-- INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
|
||||
-- You must compile the wrapper file atan2_16b.vhd when simulating
|
||||
-- the core, atan2_16b. When compiling the wrapper file, be sure to
|
||||
-- reference the VHDL simulation library.
|
||||
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
@@ -0,0 +1,25 @@
|
||||
// Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
// --------------------------------------------------------------------------------
|
||||
// Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
// Date : Sun Mar 19 11:34:38 2023
|
||||
// Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
// Command : write_verilog -force -mode synth_stub
|
||||
// D:/vivado-git/modules/xc7k410tffg900-2/multi_ch_cal/ip/managed_ip_project/managed_ip_project.runs/atan2_16b_synth_1/atan2_16b_stub.v
|
||||
// Design : atan2_16b
|
||||
// Purpose : Stub declaration of top-level module interface
|
||||
// Device : xc7k410tffg900-2
|
||||
// --------------------------------------------------------------------------------
|
||||
|
||||
// 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 = "cordic_v6_0_15,Vivado 2019.1.3" *)
|
||||
module atan2_16b(aclk, s_axis_cartesian_tvalid,
|
||||
s_axis_cartesian_tdata, m_axis_dout_tvalid, m_axis_dout_tdata)
|
||||
/* synthesis syn_black_box black_box_pad_pin="aclk,s_axis_cartesian_tvalid,s_axis_cartesian_tdata[31:0],m_axis_dout_tvalid,m_axis_dout_tdata[15:0]" */;
|
||||
input aclk;
|
||||
input s_axis_cartesian_tvalid;
|
||||
input [31:0]s_axis_cartesian_tdata;
|
||||
output m_axis_dout_tvalid;
|
||||
output [15:0]m_axis_dout_tdata;
|
||||
endmodule
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
-- Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
-- --------------------------------------------------------------------------------
|
||||
-- Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
-- Date : Sun Mar 19 11:34:38 2023
|
||||
-- Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
-- Command : write_vhdl -force -mode synth_stub
|
||||
-- D:/vivado-git/modules/xc7k410tffg900-2/multi_ch_cal/ip/managed_ip_project/managed_ip_project.runs/atan2_16b_synth_1/atan2_16b_stub.vhdl
|
||||
-- Design : atan2_16b
|
||||
-- Purpose : Stub declaration of top-level module interface
|
||||
-- Device : xc7k410tffg900-2
|
||||
-- --------------------------------------------------------------------------------
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
|
||||
entity atan2_16b is
|
||||
Port (
|
||||
aclk : in STD_LOGIC;
|
||||
s_axis_cartesian_tvalid : in STD_LOGIC;
|
||||
s_axis_cartesian_tdata : in STD_LOGIC_VECTOR ( 31 downto 0 );
|
||||
m_axis_dout_tvalid : out STD_LOGIC;
|
||||
m_axis_dout_tdata : out STD_LOGIC_VECTOR ( 15 downto 0 )
|
||||
);
|
||||
|
||||
end atan2_16b;
|
||||
|
||||
architecture stub of atan2_16b 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 "aclk,s_axis_cartesian_tvalid,s_axis_cartesian_tdata[31:0],m_axis_dout_tvalid,m_axis_dout_tdata[15:0]";
|
||||
attribute x_core_info : string;
|
||||
attribute x_core_info of stub : architecture is "cordic_v6_0_15,Vivado 2019.1.3";
|
||||
begin
|
||||
end;
|
||||
+376
@@ -0,0 +1,376 @@
|
||||
--------------------------------------------------------------------------------
|
||||
-- (c) Copyright 2011 - 2013 Xilinx, Inc. All rights reserved.
|
||||
--
|
||||
-- This file contains confidential and proprietary information
|
||||
-- of Xilinx, Inc. and is protected under U.S. and
|
||||
-- international copyright and other intellectual property
|
||||
-- laws.
|
||||
--
|
||||
-- DISCLAIMER
|
||||
-- This disclaimer is not a license and does not grant any
|
||||
-- rights to the materials distributed herewith. Except as
|
||||
-- otherwise provided in a valid license issued to you by
|
||||
-- Xilinx, and to the maximum extent permitted by applicable
|
||||
-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
-- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
-- (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
-- including negligence, or under any other theory of
|
||||
-- liability) for any loss or damage of any kind or nature
|
||||
-- related to, arising under or in connection with these
|
||||
-- materials, including for any direct, or any indirect,
|
||||
-- special, incidental, or consequential loss or damage
|
||||
-- (including loss of data, profits, goodwill, or any type of
|
||||
-- loss or damage suffered as a result of any action brought
|
||||
-- by a third party) even if such damage or loss was
|
||||
-- reasonably foreseeable or Xilinx had been advised of the
|
||||
-- possibility of the same.
|
||||
--
|
||||
-- CRITICAL APPLICATIONS
|
||||
-- Xilinx products are not designed or intended to be fail-
|
||||
-- safe, or for use in any application requiring fail-safe
|
||||
-- performance, such as life-support or safety devices or
|
||||
-- systems, Class III medical devices, nuclear facilities,
|
||||
-- applications related to the deployment of airbags, or any
|
||||
-- other applications that could lead to death, personal
|
||||
-- injury, or severe property or environmental damage
|
||||
-- (individually and collectively, "Critical
|
||||
-- Applications"). Customer assumes the sole risk and
|
||||
-- liability of any use of Xilinx products in Critical
|
||||
-- Applications, subject only to applicable laws and
|
||||
-- regulations governing limitations on product liability.
|
||||
--
|
||||
-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
-- PART OF THIS FILE AT ALL TIMES.
|
||||
--------------------------------------------------------------------------------
|
||||
-- Description:
|
||||
-- This is an example testbench for the CORDIC IP core.
|
||||
-- The testbench has been generated by Vivado to accompany the IP core
|
||||
-- instance you have generated.
|
||||
--
|
||||
-- This testbench is for demonstration purposes only. See note below for
|
||||
-- instructions on how to use it with your core.
|
||||
--
|
||||
-- See the CORDIC product guide for further information
|
||||
-- about this core.
|
||||
--
|
||||
--------------------------------------------------------------------------------
|
||||
-- Using this testbench
|
||||
--
|
||||
-- This testbench instantiates your generated CORDIC core
|
||||
-- instance named "atan2_16b".
|
||||
--
|
||||
-- Use Vivado's Run Simulation flow to run this testbench. See the Vivado
|
||||
-- documentation for details.
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
use ieee.numeric_std.all;
|
||||
use ieee.math_real.all;
|
||||
|
||||
entity tb_atan2_16b is
|
||||
end tb_atan2_16b;
|
||||
|
||||
architecture tb of tb_atan2_16b is
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Timing constants
|
||||
-----------------------------------------------------------------------
|
||||
constant CLOCK_PERIOD : time := 100 ns;
|
||||
constant T_HOLD : time := 10 ns;
|
||||
constant T_STROBE : time := CLOCK_PERIOD - (1 ns);
|
||||
constant TEST_CYCLES : integer := 3000;
|
||||
constant PHASE_CYCLES : integer := 1000;
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- DUT input signals
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
-- General inputs
|
||||
signal aclk : std_logic := '0'; -- the master clock
|
||||
|
||||
-- Slave channel CARTESIAN inputs
|
||||
signal s_axis_cartesian_tvalid : std_logic := '0'; -- TVALID for channel S_AXIS_CARTESIAN
|
||||
signal s_axis_cartesian_tdata : std_logic_vector(31 downto 0) := (others => 'X'); -- TDATA for channel S_AXIS_CARTESIAN
|
||||
|
||||
-- Slave channel PHASE inputs
|
||||
signal s_axis_phase_tvalid : std_logic := '0'; -- TVALID for channel S_AXIS_PHASE
|
||||
signal s_axis_phase_tdata : std_logic_vector(15 downto 0) := (others => 'X'); -- TDATA for channel S_AXIS_PHASE
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- DUT output signals
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
-- Master channel DOUT outputs
|
||||
signal m_axis_dout_tvalid : std_logic := '0'; -- TVALID for channel M_AXIS_DOUT
|
||||
signal m_axis_dout_tdata : std_logic_vector(15 downto 0) := (others => '0'); -- TDATA for channel M_AXIS_DOUT
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Aliases for AXI channel TDATA fields
|
||||
-- These are a convenience for viewing data in a simulator waveform viewer.
|
||||
-- If using ModelSim or Questa, add "-voptargs=+acc=n" to the vsim command
|
||||
-- to prevent the simulator optimizing away these signals.
|
||||
-----------------------------------------------------------------------
|
||||
signal s_axis_cartesian_tdata_real : std_logic_vector(15 downto 0) := (others => '0');
|
||||
signal s_axis_cartesian_tdata_imag : std_logic_vector(15 downto 0) := (others => '0');
|
||||
signal s_axis_phase_tdata_real : std_logic_vector(15 downto 0) := (others => '0');
|
||||
|
||||
signal m_axis_dout_tdata_real : std_logic_vector(15 downto 0) := (others => '0');
|
||||
signal m_axis_dout_tdata_imag : std_logic_vector(15 downto 0) := (others => '0');
|
||||
signal m_axis_dout_tdata_phase : std_logic_vector(15 downto 0) := (others => '0');
|
||||
-----------------------------------------------------------------------
|
||||
-- Testbench signals
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
signal cycles : integer := 0; -- Clock cycle counter
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Constants, types and functions to create input data
|
||||
-- The CORDIC is fed two sinusoids exp(+/-jwt) of different frequencies and amplitudes:
|
||||
-- channel CARTESIAN: exp(+jwt), frequency = clock / 30,
|
||||
-- channel PHASE: exp(-jwt), frequency = clock / 32,
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
constant IP_CARTESIAN_DEPTH : integer := 30;
|
||||
constant IP_CARTESIAN_WIDTH : integer := 16;
|
||||
constant IP_CARTESIAN_SHIFT : integer := 3; -- bit shift for amplitude
|
||||
constant IP_PHASE_DEPTH : integer := 32;
|
||||
constant IP_PHASE_WIDTH : integer := 16;
|
||||
constant IP_PHASE_SHIFT : integer := 0; -- no bit shift, max amplitude
|
||||
type T_IP_INT_ENTRY is record
|
||||
re : integer;
|
||||
im : integer;
|
||||
end record;
|
||||
type T_IP_CARTESIAN_ENTRY is record
|
||||
re : std_logic_vector(IP_CARTESIAN_WIDTH-1 downto 0);
|
||||
im : std_logic_vector(IP_CARTESIAN_WIDTH-1 downto 0);
|
||||
end record;
|
||||
type T_IP_PHASE_ENTRY is record
|
||||
re : std_logic_vector(IP_PHASE_WIDTH-1 downto 0);
|
||||
end record;
|
||||
type T_IP_CARTESIAN_TABLE is array (0 to IP_CARTESIAN_DEPTH-1) of T_IP_CARTESIAN_ENTRY;
|
||||
type T_IP_PHASE_TABLE is array (0 to IP_PHASE_DEPTH-1) of T_IP_PHASE_ENTRY;
|
||||
|
||||
-- Common function to calculate sine and cosine values
|
||||
function create_ip_entry(index, depth, width : integer) return T_IP_INT_ENTRY is
|
||||
variable result : T_IP_INT_ENTRY;
|
||||
variable theta : real;
|
||||
variable limited_width : integer := width - 2;
|
||||
begin
|
||||
if limited_width > 30 then
|
||||
limited_width := 30; --avoid integer overflow
|
||||
end if;
|
||||
theta := real(index) / real(depth) * 2.0 * MATH_PI;
|
||||
result.re := integer(round(cos(theta) * real(2**limited_width)));
|
||||
result.im := integer(round(sin(theta) * real(2**limited_width)));
|
||||
return result;
|
||||
end function create_ip_entry;
|
||||
|
||||
-- Use separate functions to calculate channel S_AXIS_CARTESIAN and S_AXIS_PHASE sinusoids as they return different types
|
||||
function create_ip_cartesian_table return T_IP_CARTESIAN_TABLE is
|
||||
variable result : T_IP_CARTESIAN_TABLE;
|
||||
variable entry_int : T_IP_INT_ENTRY;
|
||||
begin
|
||||
for i in 0 to IP_CARTESIAN_DEPTH-1 loop
|
||||
entry_int := create_ip_entry(i, IP_CARTESIAN_DEPTH, IP_CARTESIAN_WIDTH - IP_CARTESIAN_SHIFT);
|
||||
result(i).re := std_logic_vector(to_signed(entry_int.re, IP_CARTESIAN_WIDTH));
|
||||
result(i).im := std_logic_vector(to_signed(entry_int.im, IP_CARTESIAN_WIDTH));
|
||||
end loop;
|
||||
return result;
|
||||
end function create_ip_cartesian_table;
|
||||
|
||||
function create_ip_phase_table return T_IP_PHASE_TABLE is
|
||||
variable result : T_IP_PHASE_TABLE;
|
||||
variable entry_int : T_IP_INT_ENTRY;
|
||||
begin
|
||||
for i in 0 to IP_PHASE_DEPTH-1 loop
|
||||
entry_int := create_ip_entry(IP_PHASE_DEPTH-1-i, IP_PHASE_DEPTH, IP_PHASE_WIDTH - IP_PHASE_SHIFT); -- note rotation direction
|
||||
result(i).re := std_logic_vector(to_signed(entry_int.re, IP_PHASE_WIDTH));
|
||||
end loop;
|
||||
return result;
|
||||
end function create_ip_phase_table;
|
||||
|
||||
-- Call the functions to create the data
|
||||
constant IP_CARTESIAN_DATA : T_IP_CARTESIAN_TABLE := create_ip_cartesian_table;
|
||||
constant IP_PHASE_DATA : T_IP_PHASE_TABLE := create_ip_phase_table;
|
||||
|
||||
|
||||
begin
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Instantiate the DUT
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
dut : entity work.atan2_16b
|
||||
port map (
|
||||
aclk => aclk,
|
||||
s_axis_cartesian_tvalid => s_axis_cartesian_tvalid,
|
||||
s_axis_cartesian_tdata => s_axis_cartesian_tdata,
|
||||
m_axis_dout_tvalid => m_axis_dout_tvalid,
|
||||
m_axis_dout_tdata => m_axis_dout_tdata
|
||||
);
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Generate clock
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
clock_gen : process
|
||||
begin
|
||||
aclk <= '0';
|
||||
wait for CLOCK_PERIOD;
|
||||
loop
|
||||
cycles <= cycles + 1;
|
||||
aclk <= '0';
|
||||
wait for CLOCK_PERIOD/2;
|
||||
aclk <= '1';
|
||||
wait for CLOCK_PERIOD/2;
|
||||
if cycles >= TEST_CYCLES then
|
||||
report "Not a real failure. Simulation finished successfully. Test completed successfully" severity failure;
|
||||
wait;
|
||||
end if;
|
||||
end loop;
|
||||
end process clock_gen;
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Generate inputs
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
stimuli : process
|
||||
variable ip_cartesian_index : integer := 0;
|
||||
variable ip_phase_index : integer := 0;
|
||||
variable cartesian_tvalid_nxt : std_logic := '0';
|
||||
variable phase_tvalid_nxt : std_logic := '0';
|
||||
variable phase2_cycles : integer := 1;
|
||||
variable phase2_count : integer := 0;
|
||||
constant PHASE2_LIMIT : integer := 30;
|
||||
begin
|
||||
|
||||
-- Test is stopped in clock_gen process, use endless loop here
|
||||
loop
|
||||
|
||||
-- Drive inputs T_HOLD time after rising edge of clock
|
||||
wait until rising_edge(aclk);
|
||||
wait for T_HOLD;
|
||||
|
||||
-- Drive AXI TVALID signals to demonstrate different types of operation
|
||||
case cycles is -- do different types of operation at different phases of the test
|
||||
when 0 to PHASE_CYCLES * 1 - 1 =>
|
||||
-- Phase 1: inputs always valid, no missing input data
|
||||
cartesian_tvalid_nxt := '1';
|
||||
phase_tvalid_nxt := '1';
|
||||
when PHASE_CYCLES * 1 to PHASE_CYCLES * 2 - 1 =>
|
||||
-- Phase 2: deprive channel S_AXIS_CARTESIAN of valid transactions at an increasing rate
|
||||
phase_tvalid_nxt := '1';
|
||||
if phase2_count < phase2_cycles then
|
||||
cartesian_tvalid_nxt := '0';
|
||||
else
|
||||
cartesian_tvalid_nxt := '1';
|
||||
end if;
|
||||
phase2_count := phase2_count + 1;
|
||||
if phase2_count >= PHASE2_LIMIT then
|
||||
phase2_count := 0;
|
||||
phase2_cycles := phase2_cycles + 1;
|
||||
end if;
|
||||
when PHASE_CYCLES * 2 to PHASE_CYCLES * 3 - 1 =>
|
||||
-- Phase 3: deprive channel S_AXIS_CARTESIAN of 1 out of 2 transactions, and channel S_AXIS_PHASE of 1 out of 3 transactions
|
||||
if cycles mod 2 = 0 then
|
||||
cartesian_tvalid_nxt := '0';
|
||||
else
|
||||
cartesian_tvalid_nxt := '1';
|
||||
end if;
|
||||
if cycles mod 3 = 0 then
|
||||
phase_tvalid_nxt := '0';
|
||||
else
|
||||
phase_tvalid_nxt := '1';
|
||||
end if;
|
||||
when others =>
|
||||
-- Test will stop imminently - do nothing
|
||||
null;
|
||||
end case;
|
||||
|
||||
-- Drive handshake signals with local variable values
|
||||
s_axis_cartesian_tvalid <= cartesian_tvalid_nxt;
|
||||
s_axis_phase_tvalid <= phase_tvalid_nxt;
|
||||
|
||||
-- Drive AXI slave channel CARTESIAN payload
|
||||
-- Drive 'X's on payload signals when not valid
|
||||
if cartesian_tvalid_nxt /= '1' then
|
||||
s_axis_cartesian_tdata <= (others => 'X');
|
||||
else
|
||||
-- TDATA: Real and imaginary components are each 16 bits wide and byte-aligned at their LSBs
|
||||
s_axis_cartesian_tdata(15 downto 0) <= IP_CARTESIAN_DATA(ip_cartesian_index).re;
|
||||
s_axis_cartesian_tdata(31 downto 16) <= IP_CARTESIAN_DATA(ip_cartesian_index).im;
|
||||
|
||||
end if;
|
||||
|
||||
-- Drive AXI slave channel PHASE payload
|
||||
-- Drive 'X's on payload signals when not valid
|
||||
if phase_tvalid_nxt /= '1' then
|
||||
s_axis_phase_tdata <= (others => 'X');
|
||||
else
|
||||
-- TDATA: Real component is 16 bits wide and byte-aligned at its LSBs
|
||||
s_axis_phase_tdata(15 downto 0) <= IP_PHASE_DATA(ip_phase_index).re;
|
||||
end if;
|
||||
|
||||
-- Increment input data indices
|
||||
if cartesian_tvalid_nxt = '1' then
|
||||
ip_cartesian_index := ip_cartesian_index + 1;
|
||||
if ip_cartesian_index = IP_CARTESIAN_DEPTH then
|
||||
ip_cartesian_index := 0;
|
||||
end if;
|
||||
end if;
|
||||
if phase_tvalid_nxt = '1' then
|
||||
ip_phase_index := ip_phase_index + 1;
|
||||
if ip_phase_index = IP_PHASE_DEPTH then
|
||||
ip_phase_index := 0;
|
||||
end if;
|
||||
end if;
|
||||
|
||||
end loop;
|
||||
|
||||
end process stimuli;
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Check outputs
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
check_outputs : process
|
||||
variable check_ok : boolean := true;
|
||||
begin
|
||||
|
||||
-- Check outputs T_STROBE time after rising edge of clock
|
||||
wait until rising_edge(aclk);
|
||||
wait for T_STROBE;
|
||||
|
||||
-- Do not check the output payload values, as this requires the behavioral model
|
||||
-- which would make this demonstration testbench unwieldy.
|
||||
-- Instead, check the protocol of the DOUT channel:
|
||||
-- check that the payload is valid (not X) when TVALID is high
|
||||
|
||||
if m_axis_dout_tvalid = '1' then
|
||||
if is_x(m_axis_dout_tdata) then
|
||||
report "ERROR: m_axis_dout_tdata is invalid when m_axis_dout_tvalid is high" severity error;
|
||||
check_ok := false;
|
||||
end if;
|
||||
|
||||
end if;
|
||||
|
||||
assert check_ok
|
||||
report "ERROR: terminating test with failures." severity failure;
|
||||
|
||||
end process check_outputs;
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Assign TDATA fields to aliases, for easy simulator waveform viewing
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
s_axis_cartesian_tdata_real <= s_axis_cartesian_tdata(15 downto 0);
|
||||
s_axis_cartesian_tdata_imag <= s_axis_cartesian_tdata(31 downto 16);
|
||||
|
||||
m_axis_dout_tdata_phase <= m_axis_dout_tdata(15 downto 0);
|
||||
|
||||
end tb;
|
||||
|
||||
+186
@@ -0,0 +1,186 @@
|
||||
-- (c) Copyright 1995-2023 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:cordic:6.0
|
||||
-- IP Revision: 15
|
||||
|
||||
LIBRARY ieee;
|
||||
USE ieee.std_logic_1164.ALL;
|
||||
USE ieee.numeric_std.ALL;
|
||||
|
||||
LIBRARY cordic_v6_0_15;
|
||||
USE cordic_v6_0_15.cordic_v6_0_15;
|
||||
|
||||
ENTITY atan2_16b IS
|
||||
PORT (
|
||||
aclk : IN STD_LOGIC;
|
||||
s_axis_cartesian_tvalid : IN STD_LOGIC;
|
||||
s_axis_cartesian_tdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
|
||||
m_axis_dout_tvalid : OUT STD_LOGIC;
|
||||
m_axis_dout_tdata : OUT STD_LOGIC_VECTOR(15 DOWNTO 0)
|
||||
);
|
||||
END atan2_16b;
|
||||
|
||||
ARCHITECTURE atan2_16b_arch OF atan2_16b IS
|
||||
ATTRIBUTE DowngradeIPIdentifiedWarnings : STRING;
|
||||
ATTRIBUTE DowngradeIPIdentifiedWarnings OF atan2_16b_arch: ARCHITECTURE IS "yes";
|
||||
COMPONENT cordic_v6_0_15 IS
|
||||
GENERIC (
|
||||
C_ARCHITECTURE : INTEGER;
|
||||
C_CORDIC_FUNCTION : INTEGER;
|
||||
C_COARSE_ROTATE : INTEGER;
|
||||
C_DATA_FORMAT : INTEGER;
|
||||
C_XDEVICEFAMILY : STRING;
|
||||
C_HAS_ACLKEN : INTEGER;
|
||||
C_HAS_ACLK : INTEGER;
|
||||
C_HAS_S_AXIS_CARTESIAN : INTEGER;
|
||||
C_HAS_S_AXIS_PHASE : INTEGER;
|
||||
C_HAS_ARESETN : INTEGER;
|
||||
C_INPUT_WIDTH : INTEGER;
|
||||
C_ITERATIONS : INTEGER;
|
||||
C_OUTPUT_WIDTH : INTEGER;
|
||||
C_PHASE_FORMAT : INTEGER;
|
||||
C_PIPELINE_MODE : INTEGER;
|
||||
C_PRECISION : INTEGER;
|
||||
C_ROUND_MODE : INTEGER;
|
||||
C_SCALE_COMP : INTEGER;
|
||||
C_THROTTLE_SCHEME : INTEGER;
|
||||
C_TLAST_RESOLUTION : INTEGER;
|
||||
C_HAS_S_AXIS_PHASE_TUSER : INTEGER;
|
||||
C_HAS_S_AXIS_PHASE_TLAST : INTEGER;
|
||||
C_S_AXIS_PHASE_TDATA_WIDTH : INTEGER;
|
||||
C_S_AXIS_PHASE_TUSER_WIDTH : INTEGER;
|
||||
C_HAS_S_AXIS_CARTESIAN_TUSER : INTEGER;
|
||||
C_HAS_S_AXIS_CARTESIAN_TLAST : INTEGER;
|
||||
C_S_AXIS_CARTESIAN_TDATA_WIDTH : INTEGER;
|
||||
C_S_AXIS_CARTESIAN_TUSER_WIDTH : INTEGER;
|
||||
C_M_AXIS_DOUT_TDATA_WIDTH : INTEGER;
|
||||
C_M_AXIS_DOUT_TUSER_WIDTH : INTEGER
|
||||
);
|
||||
PORT (
|
||||
aclk : IN STD_LOGIC;
|
||||
aclken : IN STD_LOGIC;
|
||||
aresetn : IN STD_LOGIC;
|
||||
s_axis_phase_tvalid : IN STD_LOGIC;
|
||||
s_axis_phase_tready : OUT STD_LOGIC;
|
||||
s_axis_phase_tuser : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
|
||||
s_axis_phase_tlast : IN STD_LOGIC;
|
||||
s_axis_phase_tdata : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
|
||||
s_axis_cartesian_tvalid : IN STD_LOGIC;
|
||||
s_axis_cartesian_tready : OUT STD_LOGIC;
|
||||
s_axis_cartesian_tuser : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
|
||||
s_axis_cartesian_tlast : IN STD_LOGIC;
|
||||
s_axis_cartesian_tdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
|
||||
m_axis_dout_tvalid : OUT STD_LOGIC;
|
||||
m_axis_dout_tready : IN STD_LOGIC;
|
||||
m_axis_dout_tuser : OUT STD_LOGIC_VECTOR(0 DOWNTO 0);
|
||||
m_axis_dout_tlast : OUT STD_LOGIC;
|
||||
m_axis_dout_tdata : OUT STD_LOGIC_VECTOR(15 DOWNTO 0)
|
||||
);
|
||||
END COMPONENT cordic_v6_0_15;
|
||||
ATTRIBUTE X_INTERFACE_INFO : STRING;
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER : STRING;
|
||||
ATTRIBUTE X_INTERFACE_INFO OF m_axis_dout_tdata: SIGNAL IS "xilinx.com:interface:axis:1.0 M_AXIS_DOUT TDATA";
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER OF m_axis_dout_tvalid: SIGNAL IS "XIL_INTERFACENAME M_AXIS_DOUT, TDATA_NUM_BYTES 2, TDEST_WIDTH 0, TID_WIDTH 0, TUSER_WIDTH 0, HAS_TREADY 0, HAS_TSTRB 0, HAS_TKEEP 0, HAS_TLAST 0, FREQ_HZ 100000000, PHASE 0.000, LAYERED_METADATA undef, INSERT_VIP 0";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF m_axis_dout_tvalid: SIGNAL IS "xilinx.com:interface:axis:1.0 M_AXIS_DOUT TVALID";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF s_axis_cartesian_tdata: SIGNAL IS "xilinx.com:interface:axis:1.0 S_AXIS_CARTESIAN TDATA";
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER OF s_axis_cartesian_tvalid: SIGNAL IS "XIL_INTERFACENAME S_AXIS_CARTESIAN, TDATA_NUM_BYTES 4, TDEST_WIDTH 0, TID_WIDTH 0, TUSER_WIDTH 0, HAS_TREADY 0, HAS_TSTRB 0, HAS_TKEEP 0, HAS_TLAST 0, FREQ_HZ 100000000, PHASE 0.000, LAYERED_METADATA undef, INSERT_VIP 0";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF s_axis_cartesian_tvalid: SIGNAL IS "xilinx.com:interface:axis:1.0 S_AXIS_CARTESIAN TVALID";
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER OF aclk: SIGNAL IS "XIL_INTERFACENAME aclk_intf, ASSOCIATED_BUSIF M_AXIS_DOUT:S_AXIS_PHASE:S_AXIS_CARTESIAN, ASSOCIATED_RESET aresetn, ASSOCIATED_CLKEN aclken, FREQ_HZ 1000000, PHASE 0.000, INSERT_VIP 0";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF aclk: SIGNAL IS "xilinx.com:signal:clock:1.0 aclk_intf CLK";
|
||||
BEGIN
|
||||
U0 : cordic_v6_0_15
|
||||
GENERIC MAP (
|
||||
C_ARCHITECTURE => 2,
|
||||
C_CORDIC_FUNCTION => 3,
|
||||
C_COARSE_ROTATE => 1,
|
||||
C_DATA_FORMAT => 0,
|
||||
C_XDEVICEFAMILY => "kintex7",
|
||||
C_HAS_ACLKEN => 0,
|
||||
C_HAS_ACLK => 1,
|
||||
C_HAS_S_AXIS_CARTESIAN => 1,
|
||||
C_HAS_S_AXIS_PHASE => 0,
|
||||
C_HAS_ARESETN => 0,
|
||||
C_INPUT_WIDTH => 16,
|
||||
C_ITERATIONS => 0,
|
||||
C_OUTPUT_WIDTH => 16,
|
||||
C_PHASE_FORMAT => 1,
|
||||
C_PIPELINE_MODE => -2,
|
||||
C_PRECISION => 0,
|
||||
C_ROUND_MODE => 0,
|
||||
C_SCALE_COMP => 0,
|
||||
C_THROTTLE_SCHEME => 3,
|
||||
C_TLAST_RESOLUTION => 0,
|
||||
C_HAS_S_AXIS_PHASE_TUSER => 0,
|
||||
C_HAS_S_AXIS_PHASE_TLAST => 0,
|
||||
C_S_AXIS_PHASE_TDATA_WIDTH => 16,
|
||||
C_S_AXIS_PHASE_TUSER_WIDTH => 1,
|
||||
C_HAS_S_AXIS_CARTESIAN_TUSER => 0,
|
||||
C_HAS_S_AXIS_CARTESIAN_TLAST => 0,
|
||||
C_S_AXIS_CARTESIAN_TDATA_WIDTH => 32,
|
||||
C_S_AXIS_CARTESIAN_TUSER_WIDTH => 1,
|
||||
C_M_AXIS_DOUT_TDATA_WIDTH => 16,
|
||||
C_M_AXIS_DOUT_TUSER_WIDTH => 1
|
||||
)
|
||||
PORT MAP (
|
||||
aclk => aclk,
|
||||
aclken => '1',
|
||||
aresetn => '1',
|
||||
s_axis_phase_tvalid => '0',
|
||||
s_axis_phase_tuser => STD_LOGIC_VECTOR(TO_UNSIGNED(0, 1)),
|
||||
s_axis_phase_tlast => '0',
|
||||
s_axis_phase_tdata => STD_LOGIC_VECTOR(TO_UNSIGNED(0, 16)),
|
||||
s_axis_cartesian_tvalid => s_axis_cartesian_tvalid,
|
||||
s_axis_cartesian_tuser => STD_LOGIC_VECTOR(TO_UNSIGNED(0, 1)),
|
||||
s_axis_cartesian_tlast => '0',
|
||||
s_axis_cartesian_tdata => s_axis_cartesian_tdata,
|
||||
m_axis_dout_tvalid => m_axis_dout_tvalid,
|
||||
m_axis_dout_tready => '0',
|
||||
m_axis_dout_tdata => m_axis_dout_tdata
|
||||
);
|
||||
END atan2_16b_arch;
|
||||
+380
@@ -0,0 +1,380 @@
|
||||
--------------------------------------------------------------------------------
|
||||
-- (c) Copyright 2011 - 2013 Xilinx, Inc. All rights reserved.
|
||||
--
|
||||
-- This file contains confidential and proprietary information
|
||||
-- of Xilinx, Inc. and is protected under U.S. and
|
||||
-- international copyright and other intellectual property
|
||||
-- laws.
|
||||
--
|
||||
-- DISCLAIMER
|
||||
-- This disclaimer is not a license and does not grant any
|
||||
-- rights to the materials distributed herewith. Except as
|
||||
-- otherwise provided in a valid license issued to you by
|
||||
-- Xilinx, and to the maximum extent permitted by applicable
|
||||
-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
-- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
-- (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
-- including negligence, or under any other theory of
|
||||
-- liability) for any loss or damage of any kind or nature
|
||||
-- related to, arising under or in connection with these
|
||||
-- materials, including for any direct, or any indirect,
|
||||
-- special, incidental, or consequential loss or damage
|
||||
-- (including loss of data, profits, goodwill, or any type of
|
||||
-- loss or damage suffered as a result of any action brought
|
||||
-- by a third party) even if such damage or loss was
|
||||
-- reasonably foreseeable or Xilinx had been advised of the
|
||||
-- possibility of the same.
|
||||
--
|
||||
-- CRITICAL APPLICATIONS
|
||||
-- Xilinx products are not designed or intended to be fail-
|
||||
-- safe, or for use in any application requiring fail-safe
|
||||
-- performance, such as life-support or safety devices or
|
||||
-- systems, Class III medical devices, nuclear facilities,
|
||||
-- applications related to the deployment of airbags, or any
|
||||
-- other applications that could lead to death, personal
|
||||
-- injury, or severe property or environmental damage
|
||||
-- (individually and collectively, "Critical
|
||||
-- Applications"). Customer assumes the sole risk and
|
||||
-- liability of any use of Xilinx products in Critical
|
||||
-- Applications, subject only to applicable laws and
|
||||
-- regulations governing limitations on product liability.
|
||||
--
|
||||
-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
-- PART OF THIS FILE AT ALL TIMES.
|
||||
--------------------------------------------------------------------------------
|
||||
-- Description:
|
||||
-- This is an example testbench for the CORDIC IP core.
|
||||
-- The testbench has been generated by Vivado to accompany the IP core
|
||||
-- instance you have generated.
|
||||
--
|
||||
-- This testbench is for demonstration purposes only. See note below for
|
||||
-- instructions on how to use it with your core.
|
||||
--
|
||||
-- See the CORDIC product guide for further information
|
||||
-- about this core.
|
||||
--
|
||||
--------------------------------------------------------------------------------
|
||||
-- Using this testbench
|
||||
--
|
||||
-- This testbench instantiates your generated CORDIC core
|
||||
-- instance named "rotate_16b".
|
||||
--
|
||||
-- Use Vivado's Run Simulation flow to run this testbench. See the Vivado
|
||||
-- documentation for details.
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
use ieee.numeric_std.all;
|
||||
use ieee.math_real.all;
|
||||
|
||||
entity tb_rotate_16b is
|
||||
end tb_rotate_16b;
|
||||
|
||||
architecture tb of tb_rotate_16b is
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Timing constants
|
||||
-----------------------------------------------------------------------
|
||||
constant CLOCK_PERIOD : time := 100 ns;
|
||||
constant T_HOLD : time := 10 ns;
|
||||
constant T_STROBE : time := CLOCK_PERIOD - (1 ns);
|
||||
constant TEST_CYCLES : integer := 3000;
|
||||
constant PHASE_CYCLES : integer := 1000;
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- DUT input signals
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
-- General inputs
|
||||
signal aclk : std_logic := '0'; -- the master clock
|
||||
|
||||
-- Slave channel CARTESIAN inputs
|
||||
signal s_axis_cartesian_tvalid : std_logic := '0'; -- TVALID for channel S_AXIS_CARTESIAN
|
||||
signal s_axis_cartesian_tdata : std_logic_vector(31 downto 0) := (others => 'X'); -- TDATA for channel S_AXIS_CARTESIAN
|
||||
|
||||
-- Slave channel PHASE inputs
|
||||
signal s_axis_phase_tvalid : std_logic := '0'; -- TVALID for channel S_AXIS_PHASE
|
||||
signal s_axis_phase_tdata : std_logic_vector(15 downto 0) := (others => 'X'); -- TDATA for channel S_AXIS_PHASE
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- DUT output signals
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
-- Master channel DOUT outputs
|
||||
signal m_axis_dout_tvalid : std_logic := '0'; -- TVALID for channel M_AXIS_DOUT
|
||||
signal m_axis_dout_tdata : std_logic_vector(31 downto 0) := (others => '0'); -- TDATA for channel M_AXIS_DOUT
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Aliases for AXI channel TDATA fields
|
||||
-- These are a convenience for viewing data in a simulator waveform viewer.
|
||||
-- If using ModelSim or Questa, add "-voptargs=+acc=n" to the vsim command
|
||||
-- to prevent the simulator optimizing away these signals.
|
||||
-----------------------------------------------------------------------
|
||||
signal s_axis_cartesian_tdata_real : std_logic_vector(15 downto 0) := (others => '0');
|
||||
signal s_axis_cartesian_tdata_imag : std_logic_vector(15 downto 0) := (others => '0');
|
||||
signal s_axis_phase_tdata_real : std_logic_vector(15 downto 0) := (others => '0');
|
||||
|
||||
signal m_axis_dout_tdata_real : std_logic_vector(15 downto 0) := (others => '0');
|
||||
signal m_axis_dout_tdata_imag : std_logic_vector(15 downto 0) := (others => '0');
|
||||
signal m_axis_dout_tdata_phase : std_logic_vector(15 downto 0) := (others => '0');
|
||||
-----------------------------------------------------------------------
|
||||
-- Testbench signals
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
signal cycles : integer := 0; -- Clock cycle counter
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Constants, types and functions to create input data
|
||||
-- The CORDIC is fed two sinusoids exp(+/-jwt) of different frequencies and amplitudes:
|
||||
-- channel CARTESIAN: exp(+jwt), frequency = clock / 30,
|
||||
-- channel PHASE: exp(-jwt), frequency = clock / 32,
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
constant IP_CARTESIAN_DEPTH : integer := 30;
|
||||
constant IP_CARTESIAN_WIDTH : integer := 16;
|
||||
constant IP_CARTESIAN_SHIFT : integer := 3; -- bit shift for amplitude
|
||||
constant IP_PHASE_DEPTH : integer := 32;
|
||||
constant IP_PHASE_WIDTH : integer := 16;
|
||||
constant IP_PHASE_SHIFT : integer := 0; -- no bit shift, max amplitude
|
||||
type T_IP_INT_ENTRY is record
|
||||
re : integer;
|
||||
im : integer;
|
||||
end record;
|
||||
type T_IP_CARTESIAN_ENTRY is record
|
||||
re : std_logic_vector(IP_CARTESIAN_WIDTH-1 downto 0);
|
||||
im : std_logic_vector(IP_CARTESIAN_WIDTH-1 downto 0);
|
||||
end record;
|
||||
type T_IP_PHASE_ENTRY is record
|
||||
re : std_logic_vector(IP_PHASE_WIDTH-1 downto 0);
|
||||
end record;
|
||||
type T_IP_CARTESIAN_TABLE is array (0 to IP_CARTESIAN_DEPTH-1) of T_IP_CARTESIAN_ENTRY;
|
||||
type T_IP_PHASE_TABLE is array (0 to IP_PHASE_DEPTH-1) of T_IP_PHASE_ENTRY;
|
||||
|
||||
-- Common function to calculate sine and cosine values
|
||||
function create_ip_entry(index, depth, width : integer) return T_IP_INT_ENTRY is
|
||||
variable result : T_IP_INT_ENTRY;
|
||||
variable theta : real;
|
||||
variable limited_width : integer := width - 2;
|
||||
begin
|
||||
if limited_width > 30 then
|
||||
limited_width := 30; --avoid integer overflow
|
||||
end if;
|
||||
theta := real(index) / real(depth) * 2.0 * MATH_PI;
|
||||
result.re := integer(round(cos(theta) * real(2**limited_width)));
|
||||
result.im := integer(round(sin(theta) * real(2**limited_width)));
|
||||
return result;
|
||||
end function create_ip_entry;
|
||||
|
||||
-- Use separate functions to calculate channel S_AXIS_CARTESIAN and S_AXIS_PHASE sinusoids as they return different types
|
||||
function create_ip_cartesian_table return T_IP_CARTESIAN_TABLE is
|
||||
variable result : T_IP_CARTESIAN_TABLE;
|
||||
variable entry_int : T_IP_INT_ENTRY;
|
||||
begin
|
||||
for i in 0 to IP_CARTESIAN_DEPTH-1 loop
|
||||
entry_int := create_ip_entry(i, IP_CARTESIAN_DEPTH, IP_CARTESIAN_WIDTH - IP_CARTESIAN_SHIFT);
|
||||
result(i).re := std_logic_vector(to_signed(entry_int.re, IP_CARTESIAN_WIDTH));
|
||||
result(i).im := std_logic_vector(to_signed(entry_int.im, IP_CARTESIAN_WIDTH));
|
||||
end loop;
|
||||
return result;
|
||||
end function create_ip_cartesian_table;
|
||||
|
||||
function create_ip_phase_table return T_IP_PHASE_TABLE is
|
||||
variable result : T_IP_PHASE_TABLE;
|
||||
variable entry_int : T_IP_INT_ENTRY;
|
||||
begin
|
||||
for i in 0 to IP_PHASE_DEPTH-1 loop
|
||||
entry_int := create_ip_entry(IP_PHASE_DEPTH-1-i, IP_PHASE_DEPTH, IP_PHASE_WIDTH - IP_PHASE_SHIFT); -- note rotation direction
|
||||
result(i).re := std_logic_vector(to_signed(entry_int.re, IP_PHASE_WIDTH));
|
||||
end loop;
|
||||
return result;
|
||||
end function create_ip_phase_table;
|
||||
|
||||
-- Call the functions to create the data
|
||||
constant IP_CARTESIAN_DATA : T_IP_CARTESIAN_TABLE := create_ip_cartesian_table;
|
||||
constant IP_PHASE_DATA : T_IP_PHASE_TABLE := create_ip_phase_table;
|
||||
|
||||
|
||||
begin
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Instantiate the DUT
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
dut : entity work.rotate_16b
|
||||
port map (
|
||||
aclk => aclk,
|
||||
s_axis_cartesian_tvalid => s_axis_cartesian_tvalid,
|
||||
s_axis_cartesian_tdata => s_axis_cartesian_tdata,
|
||||
s_axis_phase_tvalid => s_axis_phase_tvalid,
|
||||
s_axis_phase_tdata => s_axis_phase_tdata,
|
||||
m_axis_dout_tvalid => m_axis_dout_tvalid,
|
||||
m_axis_dout_tdata => m_axis_dout_tdata
|
||||
);
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Generate clock
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
clock_gen : process
|
||||
begin
|
||||
aclk <= '0';
|
||||
wait for CLOCK_PERIOD;
|
||||
loop
|
||||
cycles <= cycles + 1;
|
||||
aclk <= '0';
|
||||
wait for CLOCK_PERIOD/2;
|
||||
aclk <= '1';
|
||||
wait for CLOCK_PERIOD/2;
|
||||
if cycles >= TEST_CYCLES then
|
||||
report "Not a real failure. Simulation finished successfully. Test completed successfully" severity failure;
|
||||
wait;
|
||||
end if;
|
||||
end loop;
|
||||
end process clock_gen;
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Generate inputs
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
stimuli : process
|
||||
variable ip_cartesian_index : integer := 0;
|
||||
variable ip_phase_index : integer := 0;
|
||||
variable cartesian_tvalid_nxt : std_logic := '0';
|
||||
variable phase_tvalid_nxt : std_logic := '0';
|
||||
variable phase2_cycles : integer := 1;
|
||||
variable phase2_count : integer := 0;
|
||||
constant PHASE2_LIMIT : integer := 30;
|
||||
begin
|
||||
|
||||
-- Test is stopped in clock_gen process, use endless loop here
|
||||
loop
|
||||
|
||||
-- Drive inputs T_HOLD time after rising edge of clock
|
||||
wait until rising_edge(aclk);
|
||||
wait for T_HOLD;
|
||||
|
||||
-- Drive AXI TVALID signals to demonstrate different types of operation
|
||||
case cycles is -- do different types of operation at different phases of the test
|
||||
when 0 to PHASE_CYCLES * 1 - 1 =>
|
||||
-- Phase 1: inputs always valid, no missing input data
|
||||
cartesian_tvalid_nxt := '1';
|
||||
phase_tvalid_nxt := '1';
|
||||
when PHASE_CYCLES * 1 to PHASE_CYCLES * 2 - 1 =>
|
||||
-- Phase 2: deprive channel S_AXIS_CARTESIAN of valid transactions at an increasing rate
|
||||
phase_tvalid_nxt := '1';
|
||||
if phase2_count < phase2_cycles then
|
||||
cartesian_tvalid_nxt := '0';
|
||||
else
|
||||
cartesian_tvalid_nxt := '1';
|
||||
end if;
|
||||
phase2_count := phase2_count + 1;
|
||||
if phase2_count >= PHASE2_LIMIT then
|
||||
phase2_count := 0;
|
||||
phase2_cycles := phase2_cycles + 1;
|
||||
end if;
|
||||
when PHASE_CYCLES * 2 to PHASE_CYCLES * 3 - 1 =>
|
||||
-- Phase 3: deprive channel S_AXIS_CARTESIAN of 1 out of 2 transactions, and channel S_AXIS_PHASE of 1 out of 3 transactions
|
||||
if cycles mod 2 = 0 then
|
||||
cartesian_tvalid_nxt := '0';
|
||||
else
|
||||
cartesian_tvalid_nxt := '1';
|
||||
end if;
|
||||
if cycles mod 3 = 0 then
|
||||
phase_tvalid_nxt := '0';
|
||||
else
|
||||
phase_tvalid_nxt := '1';
|
||||
end if;
|
||||
when others =>
|
||||
-- Test will stop imminently - do nothing
|
||||
null;
|
||||
end case;
|
||||
|
||||
-- Drive handshake signals with local variable values
|
||||
s_axis_cartesian_tvalid <= cartesian_tvalid_nxt;
|
||||
s_axis_phase_tvalid <= phase_tvalid_nxt;
|
||||
|
||||
-- Drive AXI slave channel CARTESIAN payload
|
||||
-- Drive 'X's on payload signals when not valid
|
||||
if cartesian_tvalid_nxt /= '1' then
|
||||
s_axis_cartesian_tdata <= (others => 'X');
|
||||
else
|
||||
-- TDATA: Real and imaginary components are each 16 bits wide and byte-aligned at their LSBs
|
||||
s_axis_cartesian_tdata(15 downto 0) <= IP_CARTESIAN_DATA(ip_cartesian_index).re;
|
||||
s_axis_cartesian_tdata(31 downto 16) <= IP_CARTESIAN_DATA(ip_cartesian_index).im;
|
||||
|
||||
end if;
|
||||
|
||||
-- Drive AXI slave channel PHASE payload
|
||||
-- Drive 'X's on payload signals when not valid
|
||||
if phase_tvalid_nxt /= '1' then
|
||||
s_axis_phase_tdata <= (others => 'X');
|
||||
else
|
||||
-- TDATA: Real component is 16 bits wide and byte-aligned at its LSBs
|
||||
s_axis_phase_tdata(15 downto 0) <= IP_PHASE_DATA(ip_phase_index).re;
|
||||
end if;
|
||||
|
||||
-- Increment input data indices
|
||||
if cartesian_tvalid_nxt = '1' then
|
||||
ip_cartesian_index := ip_cartesian_index + 1;
|
||||
if ip_cartesian_index = IP_CARTESIAN_DEPTH then
|
||||
ip_cartesian_index := 0;
|
||||
end if;
|
||||
end if;
|
||||
if phase_tvalid_nxt = '1' then
|
||||
ip_phase_index := ip_phase_index + 1;
|
||||
if ip_phase_index = IP_PHASE_DEPTH then
|
||||
ip_phase_index := 0;
|
||||
end if;
|
||||
end if;
|
||||
|
||||
end loop;
|
||||
|
||||
end process stimuli;
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Check outputs
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
check_outputs : process
|
||||
variable check_ok : boolean := true;
|
||||
begin
|
||||
|
||||
-- Check outputs T_STROBE time after rising edge of clock
|
||||
wait until rising_edge(aclk);
|
||||
wait for T_STROBE;
|
||||
|
||||
-- Do not check the output payload values, as this requires the behavioral model
|
||||
-- which would make this demonstration testbench unwieldy.
|
||||
-- Instead, check the protocol of the DOUT channel:
|
||||
-- check that the payload is valid (not X) when TVALID is high
|
||||
|
||||
if m_axis_dout_tvalid = '1' then
|
||||
if is_x(m_axis_dout_tdata) then
|
||||
report "ERROR: m_axis_dout_tdata is invalid when m_axis_dout_tvalid is high" severity error;
|
||||
check_ok := false;
|
||||
end if;
|
||||
|
||||
end if;
|
||||
|
||||
assert check_ok
|
||||
report "ERROR: terminating test with failures." severity failure;
|
||||
|
||||
end process check_outputs;
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- Assign TDATA fields to aliases, for easy simulator waveform viewing
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
s_axis_cartesian_tdata_real <= s_axis_cartesian_tdata(15 downto 0);
|
||||
s_axis_cartesian_tdata_imag <= s_axis_cartesian_tdata(31 downto 16);
|
||||
s_axis_phase_tdata_real <= s_axis_phase_tdata(15 downto 0);
|
||||
|
||||
m_axis_dout_tdata_real <= m_axis_dout_tdata(15 downto 0);
|
||||
m_axis_dout_tdata_imag <= m_axis_dout_tdata(31 downto 16);
|
||||
|
||||
end tb;
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
// (c) Copyright 1995-2023 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:cordic:6.0
|
||||
// IP Revision: 15
|
||||
|
||||
// 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
|
||||
rotate_16b your_instance_name (
|
||||
.aclk(aclk), // input wire aclk
|
||||
.s_axis_phase_tvalid(s_axis_phase_tvalid), // input wire s_axis_phase_tvalid
|
||||
.s_axis_phase_tdata(s_axis_phase_tdata), // input wire [15 : 0] s_axis_phase_tdata
|
||||
.s_axis_cartesian_tvalid(s_axis_cartesian_tvalid), // input wire s_axis_cartesian_tvalid
|
||||
.s_axis_cartesian_tdata(s_axis_cartesian_tdata), // input wire [31 : 0] s_axis_cartesian_tdata
|
||||
.m_axis_dout_tvalid(m_axis_dout_tvalid), // output wire m_axis_dout_tvalid
|
||||
.m_axis_dout_tdata(m_axis_dout_tdata) // output wire [31 : 0] m_axis_dout_tdata
|
||||
);
|
||||
// INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
|
||||
// You must compile the wrapper file rotate_16b.v when simulating
|
||||
// the core, rotate_16b. When compiling the wrapper file, be sure to
|
||||
// reference the Verilog simulation library.
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
-- (c) Copyright 1995-2023 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:cordic:6.0
|
||||
-- IP Revision: 15
|
||||
|
||||
-- The following code must appear in the VHDL architecture header.
|
||||
|
||||
------------- Begin Cut here for COMPONENT Declaration ------ COMP_TAG
|
||||
COMPONENT rotate_16b
|
||||
PORT (
|
||||
aclk : IN STD_LOGIC;
|
||||
s_axis_phase_tvalid : IN STD_LOGIC;
|
||||
s_axis_phase_tdata : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
|
||||
s_axis_cartesian_tvalid : IN STD_LOGIC;
|
||||
s_axis_cartesian_tdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
|
||||
m_axis_dout_tvalid : OUT STD_LOGIC;
|
||||
m_axis_dout_tdata : 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 : rotate_16b
|
||||
PORT MAP (
|
||||
aclk => aclk,
|
||||
s_axis_phase_tvalid => s_axis_phase_tvalid,
|
||||
s_axis_phase_tdata => s_axis_phase_tdata,
|
||||
s_axis_cartesian_tvalid => s_axis_cartesian_tvalid,
|
||||
s_axis_cartesian_tdata => s_axis_cartesian_tdata,
|
||||
m_axis_dout_tvalid => m_axis_dout_tvalid,
|
||||
m_axis_dout_tdata => m_axis_dout_tdata
|
||||
);
|
||||
-- INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
|
||||
-- You must compile the wrapper file rotate_16b.vhd when simulating
|
||||
-- the core, rotate_16b. When compiling the wrapper file, be sure to
|
||||
-- reference the VHDL simulation library.
|
||||
|
||||
BIN
Binary file not shown.
LFS
BIN
Binary file not shown.
+28
@@ -0,0 +1,28 @@
|
||||
// Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
// --------------------------------------------------------------------------------
|
||||
// Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
// Date : Sun Mar 19 11:34:40 2023
|
||||
// Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
// Command : write_verilog -force -mode synth_stub
|
||||
// D:/vivado-git/modules/xc7k410tffg900-2/multi_ch_cal/ip/managed_ip_project/managed_ip_project.runs/rotate_16b_synth_1/rotate_16b_stub.v
|
||||
// Design : rotate_16b
|
||||
// Purpose : Stub declaration of top-level module interface
|
||||
// Device : xc7k410tffg900-2
|
||||
// --------------------------------------------------------------------------------
|
||||
|
||||
// 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 = "cordic_v6_0_15,Vivado 2019.1.3" *)
|
||||
module rotate_16b(aclk, s_axis_phase_tvalid,
|
||||
s_axis_phase_tdata, s_axis_cartesian_tvalid, s_axis_cartesian_tdata,
|
||||
m_axis_dout_tvalid, m_axis_dout_tdata)
|
||||
/* synthesis syn_black_box black_box_pad_pin="aclk,s_axis_phase_tvalid,s_axis_phase_tdata[15:0],s_axis_cartesian_tvalid,s_axis_cartesian_tdata[31:0],m_axis_dout_tvalid,m_axis_dout_tdata[31:0]" */;
|
||||
input aclk;
|
||||
input s_axis_phase_tvalid;
|
||||
input [15:0]s_axis_phase_tdata;
|
||||
input s_axis_cartesian_tvalid;
|
||||
input [31:0]s_axis_cartesian_tdata;
|
||||
output m_axis_dout_tvalid;
|
||||
output [31:0]m_axis_dout_tdata;
|
||||
endmodule
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
-- Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
-- --------------------------------------------------------------------------------
|
||||
-- Tool Version: Vivado v.2019.1.3 (win64) Build 2644227 Wed Sep 4 09:45:24 MDT 2019
|
||||
-- Date : Sun Mar 19 11:34:40 2023
|
||||
-- Host : JOSH-ASUS-Z690 running 64-bit major release (build 9200)
|
||||
-- Command : write_vhdl -force -mode synth_stub
|
||||
-- D:/vivado-git/modules/xc7k410tffg900-2/multi_ch_cal/ip/managed_ip_project/managed_ip_project.runs/rotate_16b_synth_1/rotate_16b_stub.vhdl
|
||||
-- Design : rotate_16b
|
||||
-- Purpose : Stub declaration of top-level module interface
|
||||
-- Device : xc7k410tffg900-2
|
||||
-- --------------------------------------------------------------------------------
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
|
||||
entity rotate_16b is
|
||||
Port (
|
||||
aclk : in STD_LOGIC;
|
||||
s_axis_phase_tvalid : in STD_LOGIC;
|
||||
s_axis_phase_tdata : in STD_LOGIC_VECTOR ( 15 downto 0 );
|
||||
s_axis_cartesian_tvalid : in STD_LOGIC;
|
||||
s_axis_cartesian_tdata : in STD_LOGIC_VECTOR ( 31 downto 0 );
|
||||
m_axis_dout_tvalid : out STD_LOGIC;
|
||||
m_axis_dout_tdata : out STD_LOGIC_VECTOR ( 31 downto 0 )
|
||||
);
|
||||
|
||||
end rotate_16b;
|
||||
|
||||
architecture stub of rotate_16b 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 "aclk,s_axis_phase_tvalid,s_axis_phase_tdata[15:0],s_axis_cartesian_tvalid,s_axis_cartesian_tdata[31:0],m_axis_dout_tvalid,m_axis_dout_tdata[31:0]";
|
||||
attribute x_core_info : string;
|
||||
attribute x_core_info of stub : architecture is "cordic_v6_0_15,Vivado 2019.1.3";
|
||||
begin
|
||||
end;
|
||||
+191
@@ -0,0 +1,191 @@
|
||||
-- (c) Copyright 1995-2023 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:cordic:6.0
|
||||
-- IP Revision: 15
|
||||
|
||||
LIBRARY ieee;
|
||||
USE ieee.std_logic_1164.ALL;
|
||||
USE ieee.numeric_std.ALL;
|
||||
|
||||
LIBRARY cordic_v6_0_15;
|
||||
USE cordic_v6_0_15.cordic_v6_0_15;
|
||||
|
||||
ENTITY rotate_16b IS
|
||||
PORT (
|
||||
aclk : IN STD_LOGIC;
|
||||
s_axis_phase_tvalid : IN STD_LOGIC;
|
||||
s_axis_phase_tdata : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
|
||||
s_axis_cartesian_tvalid : IN STD_LOGIC;
|
||||
s_axis_cartesian_tdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
|
||||
m_axis_dout_tvalid : OUT STD_LOGIC;
|
||||
m_axis_dout_tdata : OUT STD_LOGIC_VECTOR(31 DOWNTO 0)
|
||||
);
|
||||
END rotate_16b;
|
||||
|
||||
ARCHITECTURE rotate_16b_arch OF rotate_16b IS
|
||||
ATTRIBUTE DowngradeIPIdentifiedWarnings : STRING;
|
||||
ATTRIBUTE DowngradeIPIdentifiedWarnings OF rotate_16b_arch: ARCHITECTURE IS "yes";
|
||||
COMPONENT cordic_v6_0_15 IS
|
||||
GENERIC (
|
||||
C_ARCHITECTURE : INTEGER;
|
||||
C_CORDIC_FUNCTION : INTEGER;
|
||||
C_COARSE_ROTATE : INTEGER;
|
||||
C_DATA_FORMAT : INTEGER;
|
||||
C_XDEVICEFAMILY : STRING;
|
||||
C_HAS_ACLKEN : INTEGER;
|
||||
C_HAS_ACLK : INTEGER;
|
||||
C_HAS_S_AXIS_CARTESIAN : INTEGER;
|
||||
C_HAS_S_AXIS_PHASE : INTEGER;
|
||||
C_HAS_ARESETN : INTEGER;
|
||||
C_INPUT_WIDTH : INTEGER;
|
||||
C_ITERATIONS : INTEGER;
|
||||
C_OUTPUT_WIDTH : INTEGER;
|
||||
C_PHASE_FORMAT : INTEGER;
|
||||
C_PIPELINE_MODE : INTEGER;
|
||||
C_PRECISION : INTEGER;
|
||||
C_ROUND_MODE : INTEGER;
|
||||
C_SCALE_COMP : INTEGER;
|
||||
C_THROTTLE_SCHEME : INTEGER;
|
||||
C_TLAST_RESOLUTION : INTEGER;
|
||||
C_HAS_S_AXIS_PHASE_TUSER : INTEGER;
|
||||
C_HAS_S_AXIS_PHASE_TLAST : INTEGER;
|
||||
C_S_AXIS_PHASE_TDATA_WIDTH : INTEGER;
|
||||
C_S_AXIS_PHASE_TUSER_WIDTH : INTEGER;
|
||||
C_HAS_S_AXIS_CARTESIAN_TUSER : INTEGER;
|
||||
C_HAS_S_AXIS_CARTESIAN_TLAST : INTEGER;
|
||||
C_S_AXIS_CARTESIAN_TDATA_WIDTH : INTEGER;
|
||||
C_S_AXIS_CARTESIAN_TUSER_WIDTH : INTEGER;
|
||||
C_M_AXIS_DOUT_TDATA_WIDTH : INTEGER;
|
||||
C_M_AXIS_DOUT_TUSER_WIDTH : INTEGER
|
||||
);
|
||||
PORT (
|
||||
aclk : IN STD_LOGIC;
|
||||
aclken : IN STD_LOGIC;
|
||||
aresetn : IN STD_LOGIC;
|
||||
s_axis_phase_tvalid : IN STD_LOGIC;
|
||||
s_axis_phase_tready : OUT STD_LOGIC;
|
||||
s_axis_phase_tuser : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
|
||||
s_axis_phase_tlast : IN STD_LOGIC;
|
||||
s_axis_phase_tdata : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
|
||||
s_axis_cartesian_tvalid : IN STD_LOGIC;
|
||||
s_axis_cartesian_tready : OUT STD_LOGIC;
|
||||
s_axis_cartesian_tuser : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
|
||||
s_axis_cartesian_tlast : IN STD_LOGIC;
|
||||
s_axis_cartesian_tdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
|
||||
m_axis_dout_tvalid : OUT STD_LOGIC;
|
||||
m_axis_dout_tready : IN STD_LOGIC;
|
||||
m_axis_dout_tuser : OUT STD_LOGIC_VECTOR(0 DOWNTO 0);
|
||||
m_axis_dout_tlast : OUT STD_LOGIC;
|
||||
m_axis_dout_tdata : OUT STD_LOGIC_VECTOR(31 DOWNTO 0)
|
||||
);
|
||||
END COMPONENT cordic_v6_0_15;
|
||||
ATTRIBUTE X_INTERFACE_INFO : STRING;
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER : STRING;
|
||||
ATTRIBUTE X_INTERFACE_INFO OF m_axis_dout_tdata: SIGNAL IS "xilinx.com:interface:axis:1.0 M_AXIS_DOUT TDATA";
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER OF m_axis_dout_tvalid: SIGNAL IS "XIL_INTERFACENAME M_AXIS_DOUT, TDATA_NUM_BYTES 4, TDEST_WIDTH 0, TID_WIDTH 0, TUSER_WIDTH 0, HAS_TREADY 0, HAS_TSTRB 0, HAS_TKEEP 0, HAS_TLAST 0, FREQ_HZ 100000000, PHASE 0.000, LAYERED_METADATA undef, INSERT_VIP 0";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF m_axis_dout_tvalid: SIGNAL IS "xilinx.com:interface:axis:1.0 M_AXIS_DOUT TVALID";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF s_axis_cartesian_tdata: SIGNAL IS "xilinx.com:interface:axis:1.0 S_AXIS_CARTESIAN TDATA";
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER OF s_axis_cartesian_tvalid: SIGNAL IS "XIL_INTERFACENAME S_AXIS_CARTESIAN, TDATA_NUM_BYTES 4, TDEST_WIDTH 0, TID_WIDTH 0, TUSER_WIDTH 0, HAS_TREADY 0, HAS_TSTRB 0, HAS_TKEEP 0, HAS_TLAST 0, FREQ_HZ 100000000, PHASE 0.000, LAYERED_METADATA undef, INSERT_VIP 0";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF s_axis_cartesian_tvalid: SIGNAL IS "xilinx.com:interface:axis:1.0 S_AXIS_CARTESIAN TVALID";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF s_axis_phase_tdata: SIGNAL IS "xilinx.com:interface:axis:1.0 S_AXIS_PHASE TDATA";
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER OF s_axis_phase_tvalid: SIGNAL IS "XIL_INTERFACENAME S_AXIS_PHASE, TDATA_NUM_BYTES 2, TDEST_WIDTH 0, TID_WIDTH 0, TUSER_WIDTH 0, HAS_TREADY 0, HAS_TSTRB 0, HAS_TKEEP 0, HAS_TLAST 0, FREQ_HZ 100000000, PHASE 0.000, LAYERED_METADATA undef, INSERT_VIP 0";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF s_axis_phase_tvalid: SIGNAL IS "xilinx.com:interface:axis:1.0 S_AXIS_PHASE TVALID";
|
||||
ATTRIBUTE X_INTERFACE_PARAMETER OF aclk: SIGNAL IS "XIL_INTERFACENAME aclk_intf, ASSOCIATED_BUSIF M_AXIS_DOUT:S_AXIS_PHASE:S_AXIS_CARTESIAN, ASSOCIATED_RESET aresetn, ASSOCIATED_CLKEN aclken, FREQ_HZ 1000000, PHASE 0.000, INSERT_VIP 0";
|
||||
ATTRIBUTE X_INTERFACE_INFO OF aclk: SIGNAL IS "xilinx.com:signal:clock:1.0 aclk_intf CLK";
|
||||
BEGIN
|
||||
U0 : cordic_v6_0_15
|
||||
GENERIC MAP (
|
||||
C_ARCHITECTURE => 2,
|
||||
C_CORDIC_FUNCTION => 0,
|
||||
C_COARSE_ROTATE => 1,
|
||||
C_DATA_FORMAT => 0,
|
||||
C_XDEVICEFAMILY => "kintex7",
|
||||
C_HAS_ACLKEN => 0,
|
||||
C_HAS_ACLK => 1,
|
||||
C_HAS_S_AXIS_CARTESIAN => 1,
|
||||
C_HAS_S_AXIS_PHASE => 1,
|
||||
C_HAS_ARESETN => 0,
|
||||
C_INPUT_WIDTH => 16,
|
||||
C_ITERATIONS => 0,
|
||||
C_OUTPUT_WIDTH => 16,
|
||||
C_PHASE_FORMAT => 1,
|
||||
C_PIPELINE_MODE => -2,
|
||||
C_PRECISION => 0,
|
||||
C_ROUND_MODE => 0,
|
||||
C_SCALE_COMP => 0,
|
||||
C_THROTTLE_SCHEME => 3,
|
||||
C_TLAST_RESOLUTION => 0,
|
||||
C_HAS_S_AXIS_PHASE_TUSER => 0,
|
||||
C_HAS_S_AXIS_PHASE_TLAST => 0,
|
||||
C_S_AXIS_PHASE_TDATA_WIDTH => 16,
|
||||
C_S_AXIS_PHASE_TUSER_WIDTH => 1,
|
||||
C_HAS_S_AXIS_CARTESIAN_TUSER => 0,
|
||||
C_HAS_S_AXIS_CARTESIAN_TLAST => 0,
|
||||
C_S_AXIS_CARTESIAN_TDATA_WIDTH => 32,
|
||||
C_S_AXIS_CARTESIAN_TUSER_WIDTH => 1,
|
||||
C_M_AXIS_DOUT_TDATA_WIDTH => 32,
|
||||
C_M_AXIS_DOUT_TUSER_WIDTH => 1
|
||||
)
|
||||
PORT MAP (
|
||||
aclk => aclk,
|
||||
aclken => '1',
|
||||
aresetn => '1',
|
||||
s_axis_phase_tvalid => s_axis_phase_tvalid,
|
||||
s_axis_phase_tuser => STD_LOGIC_VECTOR(TO_UNSIGNED(0, 1)),
|
||||
s_axis_phase_tlast => '0',
|
||||
s_axis_phase_tdata => s_axis_phase_tdata,
|
||||
s_axis_cartesian_tvalid => s_axis_cartesian_tvalid,
|
||||
s_axis_cartesian_tuser => STD_LOGIC_VECTOR(TO_UNSIGNED(0, 1)),
|
||||
s_axis_cartesian_tlast => '0',
|
||||
s_axis_cartesian_tdata => s_axis_cartesian_tdata,
|
||||
m_axis_dout_tvalid => m_axis_dout_tvalid,
|
||||
m_axis_dout_tready => '0',
|
||||
m_axis_dout_tdata => m_axis_dout_tdata
|
||||
);
|
||||
END rotate_16b_arch;
|
||||
+3821
File diff suppressed because it is too large
Load Diff
+5264
File diff suppressed because it is too large
Load Diff
+533
@@ -0,0 +1,533 @@
|
||||
`protect begin_protected
|
||||
`protect version = 1
|
||||
`protect encrypt_agent = "XILINX"
|
||||
`protect encrypt_agent_info = "Xilinx Encryption Tool 2019.1"
|
||||
`protect key_keyowner = "Cadence Design Systems.", key_keyname = "cds_rsa_key", key_method = "rsa"
|
||||
`protect encoding = (enctype = "BASE64", line_length = 76, bytes = 64)
|
||||
`protect key_block
|
||||
UujpFoYKoOQ7/Jw6owEbggI2AGOgzbHR6JXF4x/izP5Fh4WM0VoNKTT/CrUpcaxvPcEB3VSFIRdM
|
||||
zEjgl5GLbQ==
|
||||
|
||||
`protect key_keyowner = "Synopsys", key_keyname = "SNPS-VCS-RSA-2", key_method = "rsa"
|
||||
`protect encoding = (enctype = "BASE64", line_length = 76, bytes = 128)
|
||||
`protect key_block
|
||||
f5RyCaHb5HYoLsPpSBrPYpBu75i3LvPQ71qIEa/aoXsNX59UTv8AuKxtAPmKJn2lGzU85o93pPUz
|
||||
6IUTdlLhcarMbqU68e5TlXbOXaga3KUj4uXh5FkcNdjPsjNT76FRa5yaah1J4szu7iiw3tPnuQJ4
|
||||
sJ7X6wRWQIJF6RZJQ7M=
|
||||
|
||||
`protect key_keyowner = "Aldec", key_keyname = "ALDEC15_001", key_method = "rsa"
|
||||
`protect encoding = (enctype = "BASE64", line_length = 76, bytes = 256)
|
||||
`protect key_block
|
||||
vzUpOnYACJ0VEPnozBdDHNmglN8CrKvVmd7FT58A6TVLlrgZoYwyIPQMIh+Wfc+wTlVynnNf5/KC
|
||||
BJOYRsHDGsi5eQBIqFs4IO2s0YluOIEcuhjI1NL49HG90oDLDYg5vQsfvfkgIfXdSUeO4CWL1STz
|
||||
dN+bN5lJol2g3oFIppEAT76jtuKAX3VW+ZQrlhdFxRe2XfR61bUfZTyxy1sxEjh6zx1lNk15Bh6G
|
||||
TvDbeQpS3X3IwQkda126umKLhxhuzVYI/Dj5ubjHn9iROohcwaJUKVYfiSpg7OvIQh0dIocm/Pr8
|
||||
Jnq8RYOlltOXK63GToRwOuvaEVsyYwXPCsJhYw==
|
||||
|
||||
`protect key_keyowner = "ATRENTA", key_keyname = "ATR-SG-2015-RSA-3", key_method = "rsa"
|
||||
`protect encoding = (enctype = "BASE64", line_length = 76, bytes = 256)
|
||||
`protect key_block
|
||||
IqsYPmYfJRgqWcpVxxx5JKL2K5lwiA3+TGmGkzXMe1mM6wTat1h3LqSohdSynrSese1HtJw7NjBS
|
||||
R4sEHDCJLtLiIBXUDNOxs3/aFcfwI2ggGKVL7gj8LerPTvjancZ3CPrFi7suJ8va4ScDXJ2+AZpv
|
||||
1HkaXhquWtX+ecTMvlBUJ0kGRmT3QvqsqdoJvLaUtWmOb/zcl/Nh7cyBWKwOJ6JJUCsg2Ny6n0Mi
|
||||
CPGTsfurek7+yGad+10NV+Jdn5hHQLBf66QBRg5ezreuYSEBodVOIKAo3y+OLqpGrkjVyZP2Jekj
|
||||
3gAE3AlS23WF2E2B8gWcKlRCe5mstjPwmciAjQ==
|
||||
|
||||
`protect key_keyowner = "Xilinx", key_keyname = "xilinxt_2019_02", key_method = "rsa"
|
||||
`protect encoding = (enctype = "BASE64", line_length = 76, bytes = 256)
|
||||
`protect key_block
|
||||
SDlGuJ8/IFDM5qipR8lmqUiiSg8fMligX7gsobHkQDqRLsLrXijbx23aj4mkUAgF+oPb9moRXMT+
|
||||
ZQitvA5/h3W0YwLdK0P5IZuLURPqDlMwqENJrGM7d3xQu4APt2TsYcIWzy69vwDhvpVhiU2guQ2w
|
||||
RmJXF7B1uLONLo7iKhljzh08U3MalnpvLRgTyF13HjlkISLQE5uevFCzYB2in3CEPm7UvLorqhnJ
|
||||
57vVjcU+wSz1mFigbG2ffzUXycQttuY0ZXalTnSornuILhiF6Dz1ntTVIkPAsSmCzM2pkya326bi
|
||||
VR6/Ww0KJSGjMc9QAcY1dzerdA/O/FHc0wHRqg==
|
||||
|
||||
`protect key_keyowner = "Mentor Graphics Corporation", key_keyname = "MGC-VELOCE-RSA", key_method = "rsa"
|
||||
`protect encoding = (enctype = "BASE64", line_length = 76, bytes = 128)
|
||||
`protect key_block
|
||||
nv62qaAPOM1gKXHVylxNODJ0FORpIfmG0VU8DOE0VYy7QuPs1fSFKwqsmeCqLmk1iBF2iwzM4HaH
|
||||
n4NZzzSC9moQCnEWQQr7ujbbmsQhrn/tqwtWMSAdsDvskDzQxglQ6QGrybhxOmpv4ptOmwdiPiSh
|
||||
mzNT3tLbjqrWoFAIUD0=
|
||||
|
||||
`protect key_keyowner = "Mentor Graphics Corporation", key_keyname = "MGC-VERIF-SIM-RSA-2", key_method = "rsa"
|
||||
`protect encoding = (enctype = "BASE64", line_length = 76, bytes = 256)
|
||||
`protect key_block
|
||||
jF3d2E6CGZp/hS8coNep5TPowf3sa0SgNHwNmqsow9h+brgrP4csczpm7KBBcJ5v+YbOvx0z+gYy
|
||||
WBAxHAq2icNSvmrHAZTXOGdEJEE5hVch+yxypEclXFAnDShH7A6r+9IACIFI6vQ+UJJ84TGn2SDU
|
||||
MI/Rg/QIXumqkI7aPcOA1ytQg6cRR+iT/gU6b/7+TGQ21uUGNcdcFNGGw3MiCeeQAO453zksyf3f
|
||||
3q13lH5nspjdUO+EOyLip3iyWk1rVfZM5a6iueAPrsJM0H4hecXe3sh42f/VZjC7pKxZNTyNG0pY
|
||||
f73A6j6rB0cnGG9VyIOhkjLQ4APwBFMYDfhmYA==
|
||||
|
||||
`protect data_method = "AES128-CBC"
|
||||
`protect encoding = (enctype = "BASE64", line_length = 76, bytes = 26688)
|
||||
`protect data_block
|
||||
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
|
||||
5NHaal+6kSoUwvN0
|
||||
`protect end_protected
|
||||
+7657
File diff suppressed because it is too large
Load Diff
+17045
File diff suppressed because it is too large
Load Diff
+469
@@ -0,0 +1,469 @@
|
||||
`protect begin_protected
|
||||
`protect version = 1
|
||||
`protect encrypt_agent = "XILINX"
|
||||
`protect encrypt_agent_info = "Xilinx Encryption Tool 2019.1"
|
||||
`protect key_keyowner = "Cadence Design Systems.", key_keyname = "cds_rsa_key", key_method = "rsa"
|
||||
`protect encoding = (enctype = "BASE64", line_length = 76, bytes = 64)
|
||||
`protect key_block
|
||||
CpEgUTZRhjVFip7O+FhXu8rNFxDZDaM4T9YTiq4qMzJl5WjFFG2k8UpCddGe6qAyeN73FJ56IX0p
|
||||
xCsMRh9trA==
|
||||
|
||||
`protect key_keyowner = "Synopsys", key_keyname = "SNPS-VCS-RSA-2", key_method = "rsa"
|
||||
`protect encoding = (enctype = "BASE64", line_length = 76, bytes = 128)
|
||||
`protect key_block
|
||||
W124n4jTosh9cMXkZpMJbVt4FC58agi14/uVIDxZbr9/Wyxdbq+jUtbyb0Vp/Rinu7aHkbYDehCb
|
||||
cV1BvcBQbfc+T6GUqDtM0qpyd8lT+NBJgUxFDV2n97tx/9zs2QuwmlGwLoS3a09w3C2Gd/hckiNJ
|
||||
W99lcH4ayRjjpup8+6c=
|
||||
|
||||
`protect key_keyowner = "Aldec", key_keyname = "ALDEC15_001", key_method = "rsa"
|
||||
`protect encoding = (enctype = "BASE64", line_length = 76, bytes = 256)
|
||||
`protect key_block
|
||||
w0oPwspDuB+TKHfZmx8MkntC88JyNsq1yfrWDINAmZZvDeh3kyQgWhSwyuz5ZfYujn9s5tO++7m0
|
||||
OavRu9JAvqtmM3K/FclsuLtUZ3+HzKqy1aS/PBtLCvMf8w4ExVO5osVLLHR312i688+QC6umRX4K
|
||||
/zwmDqOYeOLUh/+RGCX6StPhxi0oXmvk+LrqMaJR85c7qcYRPg0OoDrT1hblWtAXNxBRcYuxQc82
|
||||
/CqCpjHvSTS79lPoqAKvtlHKTCxMDYumG7c1z0IyA8UxxnX6dDEWuxqUN6pcD8QLhQG+SghSSfTM
|
||||
hD4hPJB1zJwqZxxbvySdiPBeLApmobBUFUUGLQ==
|
||||
|
||||
`protect key_keyowner = "ATRENTA", key_keyname = "ATR-SG-2015-RSA-3", key_method = "rsa"
|
||||
`protect encoding = (enctype = "BASE64", line_length = 76, bytes = 256)
|
||||
`protect key_block
|
||||
cG3WV6bB162cO7nvDwaMEkqY5zMqrlfIoTWtAVrp1pvjmabsZWybfweNPsDIcZlHRLNJSJpyoaCD
|
||||
ohQXbn3fTn74PnVSdoDvdgKrdGQdUiYs3axj22G47OZdQpCG4t+D8sTqC2mei3lJZ6ngbXMNFdo4
|
||||
vch2Y6DW+nkpgpyK228VlnApQ5CZa63jgB9mEPbDt/AF2KvoZbzHc7TKehSLGpcaPdeFLbEnd8U9
|
||||
GwWg4m8yXza1Q16jY13PzNyCuTxsLB39GbUMN8NdhGYK8FFRWyWEvemo1YIBLMzlp/0FHxV3d5vv
|
||||
UPlzG+SUFKs5GxPu+jza16rLE3bp1qQru5qKkA==
|
||||
|
||||
`protect key_keyowner = "Xilinx", key_keyname = "xilinxt_2019_02", key_method = "rsa"
|
||||
`protect encoding = (enctype = "BASE64", line_length = 76, bytes = 256)
|
||||
`protect key_block
|
||||
X+SSwP3be+AKqv6E38pqiZoHUvwN5zrS6zZlnDNHrMAzgiH3SMuVihoJJRwiEM3fCYgsyrVMjO/7
|
||||
AhPTRAHNMEDuxAJz5S0fFywzqH/+krEhDmIjdmc1azH4Bi1OyuOS5DkveP6N1JWQCaHZG8GJUWs1
|
||||
qT42G0NRWF9t5M5ttCxcfj/eMiX7oox1Boy6yuolm/jDO5GvhFWC1zKbMsG5vCvLoswU3R3lnpug
|
||||
SmNOmMut/z95umqM69mzk6naScy81WxuLACZY+ZLzsa3W0EmoQpoFh6S0/TPaYHUmAqirxaweo9z
|
||||
eWnp+wy6dqi6Lbne6eReXH9h+5uGzHH41MPCMQ==
|
||||
|
||||
`protect key_keyowner = "Mentor Graphics Corporation", key_keyname = "MGC-VELOCE-RSA", key_method = "rsa"
|
||||
`protect encoding = (enctype = "BASE64", line_length = 76, bytes = 128)
|
||||
`protect key_block
|
||||
FqbxiWfZx+AlFcc4w0L0ZV1jO1U/zdk+xJK7UfNljYj/tFrikWSj4/YCABK63/BY9X6IqlWE29WE
|
||||
qXj+sG1yrKt12AuMYebT2k+SI3AjNYGTanoHD6o/+rlQrYh1HVya4vsXxWQHSPJuRxgf2xyyZmZl
|
||||
OXf2weJKsAdIRrrLpQc=
|
||||
|
||||
`protect key_keyowner = "Mentor Graphics Corporation", key_keyname = "MGC-VERIF-SIM-RSA-2", key_method = "rsa"
|
||||
`protect encoding = (enctype = "BASE64", line_length = 76, bytes = 256)
|
||||
`protect key_block
|
||||
AGj71Awj2B2Tw74FpkihWH+Sa5c7TMF3trJuuBFGZby7XIFX9KWSIdSq4LQbByQy4JzHRlXRo7B2
|
||||
89X/ZEdePYzlSYP13FUAoX3/9tvJGkFQuK8GswyOOYeHxAzlgjAEujTmHhDFmwUXu79c/fv3qhB5
|
||||
8JK/QbpCaS95IHLmqKlNRbPLipg1yit/ipGf6pe4mu/U/aJdsR6EJKw1ddaZnEzyEGiSJxY5J7IL
|
||||
bS76v1X8q1e+aEVU/C8nSk9or8ByIcsePvOZNKIU6ggznhI5fSFzh1WC9nenoB1hbjeqmC+lQ/L8
|
||||
0HJvaCrgSzLCcaNp3R//7PIaJTtOzXkL903AEA==
|
||||
|
||||
`protect data_method = "AES128-CBC"
|
||||
`protect encoding = (enctype = "BASE64", line_length = 76, bytes = 23056)
|
||||
`protect data_block
|
||||
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
|
||||
rH2Kxq7Ojjlzg/VzuZM90FdO6BzoeXNF3EfZeA==
|
||||
`protect end_protected
|
||||
+1367
File diff suppressed because it is too large
Load Diff
+1317
File diff suppressed because it is too large
Load Diff
+2403
File diff suppressed because it is too large
Load Diff
+418
@@ -0,0 +1,418 @@
|
||||
`protect begin_protected
|
||||
`protect version = 1
|
||||
`protect encrypt_agent = "XILINX"
|
||||
`protect encrypt_agent_info = "Xilinx Encryption Tool 2019.1"
|
||||
`protect key_keyowner = "Cadence Design Systems.", key_keyname = "cds_rsa_key", key_method = "rsa"
|
||||
`protect encoding = (enctype = "BASE64", line_length = 76, bytes = 64)
|
||||
`protect key_block
|
||||
IijDYFYeRdzkel5iYnZFe2NzgYX9UDO+g6PdWiHeOm5P1+m9Kt//ktx0y9l3PqUsSWKKIi5tWbDg
|
||||
OqtBZeM3zQ==
|
||||
|
||||
`protect key_keyowner = "Synopsys", key_keyname = "SNPS-VCS-RSA-2", key_method = "rsa"
|
||||
`protect encoding = (enctype = "BASE64", line_length = 76, bytes = 128)
|
||||
`protect key_block
|
||||
TXFD8G5gE6CUfZ/9/aBQvAaQuQ9Q6vcW5KJtFkYqsiROk19a5PsS1gCxUXtSJ+Xt20njQCTMz6jx
|
||||
UaSmsNRyiV6PuCAgdQYvfeJWiNmQq7kXQnkYSjycSJyNe/xoXEYIK0mHX7J2x9ouXxNx6jQFR5Lm
|
||||
jxY8fR7N9m3PTkCqNTI=
|
||||
|
||||
`protect key_keyowner = "Aldec", key_keyname = "ALDEC15_001", key_method = "rsa"
|
||||
`protect encoding = (enctype = "BASE64", line_length = 76, bytes = 256)
|
||||
`protect key_block
|
||||
0bdD7I2gr0nFDramUUXzPCEqtk/eE+vK1bghpNlKE+S5t5/NbqJI7gNd3XLwYh6qEIInU1StLpm1
|
||||
ZEERnCmEf4+rQBAW7x7u7nIsJjSOmPWtDc9DLn5S3e1Tg+IzLUqT0rFFh5TiwuYq9A6oIvI4ufWQ
|
||||
WwoeY/gITSdj6C0JQ3GFyIRhxG7psQKO9U4fj8El/Lb3YXG1+IGuXZsygyLPjjOU5LRXKo6kKsub
|
||||
X1PFDvdm4rWaB9AqoPLCqp654KCyKSCoufeM/jiWRTNXwf6kL56WQKDXuyAhrasBOno4KOT3c5VP
|
||||
WEHGNdGBSdU4oUFYiOmAKlCKGeUNCxMxx765QA==
|
||||
|
||||
`protect key_keyowner = "ATRENTA", key_keyname = "ATR-SG-2015-RSA-3", key_method = "rsa"
|
||||
`protect encoding = (enctype = "BASE64", line_length = 76, bytes = 256)
|
||||
`protect key_block
|
||||
ppkak8ss4yKmNiAZjxFq8nn58TDV/6CNcvQivN+uaaTC1viFh2EDUvJp8zqZ2dJOE2mTN9WJY0VD
|
||||
93fjF/bEPMptIxFj5D6ldjwJu+xdHqS9FJ9Wajnbu++DCTUtAQE+y05rqhCz8aZWKGNejsRfG8bE
|
||||
xGYNUIbFoZ9PYrDIdRcDSdZRUBadrAC+WcEM6+/HxxJq4Ly/w0BVbiEq22B0+4wVDXszrocC0mKJ
|
||||
RPXzPj9v5D5aBX2ijUGbICpT6JkVGAjlIEP7HZoc+Ooxppwgc01k8snVnPVI4IVVYOjjlTQgT/qU
|
||||
t0doYgFMU9nD5a1hefzXRkszYn9RHVZE5bl6NA==
|
||||
|
||||
`protect key_keyowner = "Xilinx", key_keyname = "xilinxt_2019_02", key_method = "rsa"
|
||||
`protect encoding = (enctype = "BASE64", line_length = 76, bytes = 256)
|
||||
`protect key_block
|
||||
KtmDUKyPqH21pzMoqq9CPc/SXFhh6Oz2JrLSFRZBS3mGc7ebGc8cQjlvJpJA0WNJlGqACicdvN1t
|
||||
A7mG3V1xKtoRdR+2MhucMQ7loisN8yDj3+zqgbM5bAdlz+62WovuGfaM4EK24l8CXSfBLVGQ35JP
|
||||
2zB0abBrel1cOw3DxvSIS/5wueR9/Ul+GoLmD6yF7cV2ne7eGwNXQ2OsCqdcb9wK8gNO1YfC3kE6
|
||||
WwdUtjutDvyXnV49wmg6nCC8RAPNWbIhHiMMtpDjux6E1Rkd3xdCMDrxrupZyNQNtVmzcN8ITAn5
|
||||
BYoTBON1CKVljCmLov84lxcdcXGcSaBAtLIiAg==
|
||||
|
||||
`protect key_keyowner = "Mentor Graphics Corporation", key_keyname = "MGC-VELOCE-RSA", key_method = "rsa"
|
||||
`protect encoding = (enctype = "BASE64", line_length = 76, bytes = 128)
|
||||
`protect key_block
|
||||
sjMrK19OPSOpuNhtGVc8GPvvQoA4nRSUShUtMXVan8pbxWL4SmeH0c+Lr407Kf0YXDBqUDDkheov
|
||||
bvkczAmQfT+dVPmRtr9F/s03c46gcXSPX3D/EHROl21MVjaptRm/lAFzU2JR3vIcBrSyn9KnB+G8
|
||||
cTUA3hZ8VcZWUlsE5EU=
|
||||
|
||||
`protect key_keyowner = "Mentor Graphics Corporation", key_keyname = "MGC-VERIF-SIM-RSA-2", key_method = "rsa"
|
||||
`protect encoding = (enctype = "BASE64", line_length = 76, bytes = 256)
|
||||
`protect key_block
|
||||
KDe/Bg6fHbQcPjNnYiQKwKjMy4sdSqf+Gty0JJ0Cl1tXsbqDCM+FOd30mp8wMVyuqAm1Cs7QT211
|
||||
JO6FwTQoTSe1+Ag2KZe6AMFgHaNj0EL+M24h7wdNN5Wj8M9n4Zw2cVNCAcQuMAGYbxaWpNTrYMXH
|
||||
BpdQ50EQ9/kLpocWC2JhjoxshWpofJ0tpp9WlfLUPTm7TftCudU0M3dMNjnbl+Mfa3yuTHWt8aDY
|
||||
6w/HgH82FHAd70Mwbh6CrcIChQUulExaSON/uCwutX0SehA5/ooAAlnWv19O8kXTawUeKwYKQikK
|
||||
PjngB0eHiTimSxjDCZaaor8VbS4WfO6DyMwmEg==
|
||||
|
||||
`protect data_method = "AES128-CBC"
|
||||
`protect encoding = (enctype = "BASE64", line_length = 76, bytes = 20128)
|
||||
`protect data_block
|
||||
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
|
||||
KnmRsadIXQ==
|
||||
`protect end_protected
|
||||
+2392
File diff suppressed because it is too large
Load Diff
+83
@@ -0,0 +1,83 @@
|
||||
################################################################################
|
||||
# Vivado (TM) v2019.1.3 (64-bit)
|
||||
#
|
||||
# README.txt: Please read the sections below to understand the steps required
|
||||
# to simulate the design for a simulator, the directory structure
|
||||
# and the generated exported files.
|
||||
#
|
||||
################################################################################
|
||||
|
||||
1. Simulate Design
|
||||
|
||||
To simulate design, cd to the simulator directory and execute the script.
|
||||
|
||||
For example:-
|
||||
|
||||
% cd questa
|
||||
% ./top.sh
|
||||
|
||||
The export simulation flow requires the Xilinx pre-compiled simulation library
|
||||
components for the target simulator. These components are referred using the
|
||||
'-lib_map_path' switch. If this switch is specified, then the export simulation
|
||||
will automatically set this library path in the generated script and update,
|
||||
copy the simulator setup file(s) in the exported directory.
|
||||
|
||||
If '-lib_map_path' is not specified, then the pre-compiled simulation library
|
||||
information will not be included in the exported scripts and that may cause
|
||||
simulation errors when running this script. Alternatively, you can provide the
|
||||
library information using this switch while executing the generated script.
|
||||
|
||||
For example:-
|
||||
|
||||
% ./top.sh -lib_map_path /design/questa/clibs
|
||||
|
||||
Please refer to the generated script header 'Prerequisite' section for more details.
|
||||
|
||||
2. Directory Structure
|
||||
|
||||
By default, if the -directory switch is not specified, export_simulation will
|
||||
create the following directory structure:-
|
||||
|
||||
<current_working_directory>/export_sim/<simulator>
|
||||
|
||||
For example, if the current working directory is /tmp/test, export_simulation
|
||||
will create the following directory path:-
|
||||
|
||||
/tmp/test/export_sim/questa
|
||||
|
||||
If -directory switch is specified, export_simulation will create a simulator
|
||||
sub-directory under the specified directory path.
|
||||
|
||||
For example, 'export_simulation -directory /tmp/test/my_test_area/func_sim'
|
||||
command will create the following directory:-
|
||||
|
||||
/tmp/test/my_test_area/func_sim/questa
|
||||
|
||||
By default, if -simulator is not specified, export_simulation will create a
|
||||
simulator sub-directory for each simulator and export the files for each simulator
|
||||
in this sub-directory respectively.
|
||||
|
||||
IMPORTANT: Please note that the simulation library path must be specified manually
|
||||
in the generated script for the respective simulator. Please refer to the generated
|
||||
script header 'Prerequisite' section for more details.
|
||||
|
||||
3. Exported script and files
|
||||
|
||||
Export simulation will create the driver shell script, setup files and copy the
|
||||
design sources in the output directory path.
|
||||
|
||||
By default, when the -script_name switch is not specified, export_simulation will
|
||||
create the following script name:-
|
||||
|
||||
<simulation_top>.sh (Unix)
|
||||
When exporting the files for an IP using the -of_objects switch, export_simulation
|
||||
will create the following script name:-
|
||||
|
||||
<ip-name>.sh (Unix)
|
||||
Export simulation will create the setup files for the target simulator specified
|
||||
with the -simulator switch.
|
||||
|
||||
For example, if the target simulator is "ies", export_simulation will create the
|
||||
'cds.lib', 'hdl.var' and design library diectories and mappings in the 'cds.lib'
|
||||
file.
|
||||
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
################################################################################
|
||||
# Vivado (TM) v2019.1.3 (64-bit)
|
||||
#
|
||||
# README.txt: Please read the sections below to understand the steps required to
|
||||
# run the exported script and information about the source files.
|
||||
#
|
||||
# Generated by export_simulation on Sun Mar 19 11:33:54 +0800 2023
|
||||
#
|
||||
################################################################################
|
||||
|
||||
1. How to run the generated simulation script:-
|
||||
|
||||
From the shell prompt in the current directory, issue the following command:-
|
||||
|
||||
./atan2_16b.sh
|
||||
|
||||
This command will launch the 'compile', 'elaborate' and 'simulate' functions
|
||||
implemented in the script file for the 3-step flow. These functions are called
|
||||
from the main 'run' function in the script file.
|
||||
|
||||
The 'run' function first executes the 'setup' function, the purpose of which is to
|
||||
create simulator specific setup files, create design library mappings and library
|
||||
directories and copy 'glbl.v' from the Vivado software install location into the
|
||||
current directory.
|
||||
|
||||
The 'setup' function is also used for removing the simulator generated data in
|
||||
order to reset the current directory to the original state when export_simulation
|
||||
was launched from Vivado. This generated data can be removed by specifying the
|
||||
'-reset_run' switch to the './atan2_16b.sh' script.
|
||||
|
||||
./atan2_16b.sh -reset_run
|
||||
|
||||
To keep the generated data from the previous run but regenerate the setup files and
|
||||
library directories, use the '-noclean_files' switch.
|
||||
|
||||
./atan2_16b.sh -noclean_files
|
||||
|
||||
For more information on the script, please type './atan2_16b.sh -help'.
|
||||
|
||||
2. Additional design information files:-
|
||||
|
||||
export_simulation generates following additional file that can be used for fetching
|
||||
the design files information or for integrating with external custom scripts.
|
||||
|
||||
Name : file_info.txt
|
||||
Purpose: This file contains detail design file information based on the compile order
|
||||
when export_simulation was executed from Vivado. The file contains information
|
||||
about the file type, name, whether it is part of the IP, associated library
|
||||
and the file path information.
|
||||
+154
@@ -0,0 +1,154 @@
|
||||
#!/bin/bash -f
|
||||
#*********************************************************************************************************
|
||||
# Vivado (TM) v2019.1.3 (64-bit)
|
||||
#
|
||||
# Filename : atan2_16b.sh
|
||||
# Simulator : Aldec Active-HDL Simulator
|
||||
# Description : Simulation script for compiling, elaborating and verifying the project source files.
|
||||
# The script will automatically create the design libraries sub-directories in the run
|
||||
# directory, add the library logical mappings in the simulator setup file, create default
|
||||
# 'do/prj' file, execute compilation, elaboration and simulation steps.
|
||||
#
|
||||
# Generated by Vivado on Sun Mar 19 11:33:54 +0800 2023
|
||||
# SW Build 2644227 on Wed Sep 4 09:45:24 MDT 2019
|
||||
#
|
||||
# Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
#
|
||||
# usage: atan2_16b.sh [-help]
|
||||
# usage: atan2_16b.sh [-lib_map_path]
|
||||
# usage: atan2_16b.sh [-noclean_files]
|
||||
# usage: atan2_16b.sh [-reset_run]
|
||||
#
|
||||
# Prerequisite:- To compile and run simulation, you must compile the Xilinx simulation libraries using the
|
||||
# 'compile_simlib' TCL command. For more information about this command, run 'compile_simlib -help' in the
|
||||
# Vivado Tcl Shell. Once the libraries have been compiled successfully, specify the -lib_map_path switch
|
||||
# that points to these libraries and rerun export_simulation. For more information about this switch please
|
||||
# type 'export_simulation -help' in the Tcl shell.
|
||||
#
|
||||
# You can also point to the simulation libraries by either replacing the <SPECIFY_COMPILED_LIB_PATH> in this
|
||||
# script with the compiled library directory path or specify this path with the '-lib_map_path' switch when
|
||||
# executing this script. Please type 'atan2_16b.sh -help' for more information.
|
||||
#
|
||||
# Additional references - 'Xilinx Vivado Design Suite User Guide:Logic simulation (UG900)'
|
||||
#
|
||||
#*********************************************************************************************************
|
||||
|
||||
|
||||
# Script info
|
||||
echo -e "atan2_16b.sh - Script generated by export_simulation (Vivado v2019.1.3 (64-bit)-id)\n"
|
||||
|
||||
# Main steps
|
||||
run()
|
||||
{
|
||||
check_args $# $1
|
||||
setup $1 $2
|
||||
compile
|
||||
simulate
|
||||
}
|
||||
|
||||
# RUN_STEP: <compile>
|
||||
compile()
|
||||
{
|
||||
# Compile design files
|
||||
source compile.do 2>&1 | tee -a compile.log
|
||||
|
||||
}
|
||||
|
||||
# RUN_STEP: <simulate>
|
||||
simulate()
|
||||
{
|
||||
runvsimsa -l simulate.log -do "do {simulate.do}"
|
||||
}
|
||||
|
||||
# STEP: setup
|
||||
setup()
|
||||
{
|
||||
case $1 in
|
||||
"-lib_map_path" )
|
||||
if [[ ($2 == "") ]]; then
|
||||
echo -e "ERROR: Simulation library directory path not specified (type \"./atan2_16b.sh -help\" for more information)\n"
|
||||
exit 1
|
||||
fi
|
||||
map_setup_file $2
|
||||
;;
|
||||
"-reset_run" )
|
||||
reset_run
|
||||
echo -e "INFO: Simulation run files deleted.\n"
|
||||
exit 0
|
||||
;;
|
||||
"-noclean_files" )
|
||||
# do not remove previous data
|
||||
;;
|
||||
* )
|
||||
map_setup_file $2
|
||||
esac
|
||||
|
||||
# Add any setup/initialization commands here:-
|
||||
|
||||
# <user specific commands>
|
||||
|
||||
}
|
||||
|
||||
# Map library.cfg file
|
||||
map_setup_file()
|
||||
{
|
||||
file="library.cfg"
|
||||
lib_map_path="<SPECIFY_COMPILED_LIB_PATH>"
|
||||
if [[ ($1 != "" && -e $1) ]]; then
|
||||
lib_map_path="$1"
|
||||
else
|
||||
echo -e "ERROR: Compiled simulation library directory path not specified or does not exist (type "./top.sh -help" for more information)\n"
|
||||
fi
|
||||
if [[ ($lib_map_path != "") ]]; then
|
||||
src_file="$lib_map_path/$file"
|
||||
if [[ -e $src_file ]]; then
|
||||
vmap -link $lib_map_path
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Delete generated data from the previous run
|
||||
reset_run()
|
||||
{
|
||||
files_to_remove=(compile.log elaboration.log simulate.log dataset.asdb work activehdl)
|
||||
for (( i=0; i<${#files_to_remove[*]}; i++ )); do
|
||||
file="${files_to_remove[i]}"
|
||||
if [[ -e $file ]]; then
|
||||
rm -rf $file
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Check command line arguments
|
||||
check_args()
|
||||
{
|
||||
if [[ ($1 == 1 ) && ($2 != "-lib_map_path" && $2 != "-noclean_files" && $2 != "-reset_run" && $2 != "-help" && $2 != "-h") ]]; then
|
||||
echo -e "ERROR: Unknown option specified '$2' (type \"./atan2_16b.sh -help\" for more information)\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ($2 == "-help" || $2 == "-h") ]]; then
|
||||
usage
|
||||
fi
|
||||
}
|
||||
|
||||
# Script usage
|
||||
usage()
|
||||
{
|
||||
msg="Usage: atan2_16b.sh [-help]\n\
|
||||
Usage: atan2_16b.sh [-lib_map_path]\n\
|
||||
Usage: atan2_16b.sh [-reset_run]\n\
|
||||
Usage: atan2_16b.sh [-noclean_files]\n\n\
|
||||
[-help] -- Print help information for this script\n\n\
|
||||
[-lib_map_path <path>] -- Compiled simulation library directory path. The simulation library is compiled\n\
|
||||
using the compile_simlib tcl command. Please see 'compile_simlib -help' for more information.\n\n\
|
||||
[-reset_run] -- Recreate simulator setup files and library mappings for a clean run. The generated files\n\
|
||||
from the previous run will be removed. If you don't want to remove the simulator generated files, use the\n\
|
||||
-noclean_files switch.\n\n\
|
||||
[-noclean_files] -- Reset previous run, but do not remove simulator generated files from the previous run.\n\n"
|
||||
echo -e $msg
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Launch script
|
||||
run $1 $2
|
||||
+66
@@ -0,0 +1,66 @@
|
||||
vlib work
|
||||
vlib activehdl
|
||||
|
||||
vlib activehdl/xbip_utils_v3_0_10
|
||||
vlib activehdl/c_reg_fd_v12_0_6
|
||||
vlib activehdl/xbip_dsp48_wrapper_v3_0_4
|
||||
vlib activehdl/xbip_pipe_v3_0_6
|
||||
vlib activehdl/xbip_dsp48_addsub_v3_0_6
|
||||
vlib activehdl/xbip_addsub_v3_0_6
|
||||
vlib activehdl/c_addsub_v12_0_13
|
||||
vlib activehdl/xbip_bram18k_v3_0_6
|
||||
vlib activehdl/mult_gen_v12_0_15
|
||||
vlib activehdl/axi_utils_v2_0_6
|
||||
vlib activehdl/cordic_v6_0_15
|
||||
vlib activehdl/xil_defaultlib
|
||||
|
||||
vmap xbip_utils_v3_0_10 activehdl/xbip_utils_v3_0_10
|
||||
vmap c_reg_fd_v12_0_6 activehdl/c_reg_fd_v12_0_6
|
||||
vmap xbip_dsp48_wrapper_v3_0_4 activehdl/xbip_dsp48_wrapper_v3_0_4
|
||||
vmap xbip_pipe_v3_0_6 activehdl/xbip_pipe_v3_0_6
|
||||
vmap xbip_dsp48_addsub_v3_0_6 activehdl/xbip_dsp48_addsub_v3_0_6
|
||||
vmap xbip_addsub_v3_0_6 activehdl/xbip_addsub_v3_0_6
|
||||
vmap c_addsub_v12_0_13 activehdl/c_addsub_v12_0_13
|
||||
vmap xbip_bram18k_v3_0_6 activehdl/xbip_bram18k_v3_0_6
|
||||
vmap mult_gen_v12_0_15 activehdl/mult_gen_v12_0_15
|
||||
vmap axi_utils_v2_0_6 activehdl/axi_utils_v2_0_6
|
||||
vmap cordic_v6_0_15 activehdl/cordic_v6_0_15
|
||||
vmap xil_defaultlib activehdl/xil_defaultlib
|
||||
|
||||
vcom -work xbip_utils_v3_0_10 -93 \
|
||||
"../../../ipstatic/hdl/xbip_utils_v3_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work c_reg_fd_v12_0_6 -93 \
|
||||
"../../../ipstatic/hdl/c_reg_fd_v12_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work xbip_dsp48_wrapper_v3_0_4 -93 \
|
||||
"../../../ipstatic/hdl/xbip_dsp48_wrapper_v3_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work xbip_pipe_v3_0_6 -93 \
|
||||
"../../../ipstatic/hdl/xbip_pipe_v3_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work xbip_dsp48_addsub_v3_0_6 -93 \
|
||||
"../../../ipstatic/hdl/xbip_dsp48_addsub_v3_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work xbip_addsub_v3_0_6 -93 \
|
||||
"../../../ipstatic/hdl/xbip_addsub_v3_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work c_addsub_v12_0_13 -93 \
|
||||
"../../../ipstatic/hdl/c_addsub_v12_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work xbip_bram18k_v3_0_6 -93 \
|
||||
"../../../ipstatic/hdl/xbip_bram18k_v3_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work mult_gen_v12_0_15 -93 \
|
||||
"../../../ipstatic/hdl/mult_gen_v12_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work axi_utils_v2_0_6 -93 \
|
||||
"../../../ipstatic/hdl/axi_utils_v2_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work cordic_v6_0_15 -93 \
|
||||
"../../../ipstatic/hdl/cordic_v6_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work xil_defaultlib -93 \
|
||||
"../../../ip/atan2_16b/sim/atan2_16b.vhd" \
|
||||
|
||||
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
xbip_utils_v3_0_vh_rfs.vhd,vhdl,xbip_utils_v3_0_10,../../../ipstatic/hdl/xbip_utils_v3_0_vh_rfs.vhd,
|
||||
c_reg_fd_v12_0_vh_rfs.vhd,vhdl,c_reg_fd_v12_0_6,../../../ipstatic/hdl/c_reg_fd_v12_0_vh_rfs.vhd,
|
||||
xbip_dsp48_wrapper_v3_0_vh_rfs.vhd,vhdl,xbip_dsp48_wrapper_v3_0_4,../../../ipstatic/hdl/xbip_dsp48_wrapper_v3_0_vh_rfs.vhd,
|
||||
xbip_pipe_v3_0_vh_rfs.vhd,vhdl,xbip_pipe_v3_0_6,../../../ipstatic/hdl/xbip_pipe_v3_0_vh_rfs.vhd,
|
||||
xbip_dsp48_addsub_v3_0_vh_rfs.vhd,vhdl,xbip_dsp48_addsub_v3_0_6,../../../ipstatic/hdl/xbip_dsp48_addsub_v3_0_vh_rfs.vhd,
|
||||
xbip_addsub_v3_0_vh_rfs.vhd,vhdl,xbip_addsub_v3_0_6,../../../ipstatic/hdl/xbip_addsub_v3_0_vh_rfs.vhd,
|
||||
c_addsub_v12_0_vh_rfs.vhd,vhdl,c_addsub_v12_0_13,../../../ipstatic/hdl/c_addsub_v12_0_vh_rfs.vhd,
|
||||
xbip_bram18k_v3_0_vh_rfs.vhd,vhdl,xbip_bram18k_v3_0_6,../../../ipstatic/hdl/xbip_bram18k_v3_0_vh_rfs.vhd,
|
||||
mult_gen_v12_0_vh_rfs.vhd,vhdl,mult_gen_v12_0_15,../../../ipstatic/hdl/mult_gen_v12_0_vh_rfs.vhd,
|
||||
axi_utils_v2_0_vh_rfs.vhd,vhdl,axi_utils_v2_0_6,../../../ipstatic/hdl/axi_utils_v2_0_vh_rfs.vhd,
|
||||
cordic_v6_0_vh_rfs.vhd,vhdl,cordic_v6_0_15,../../../ipstatic/hdl/cordic_v6_0_vh_rfs.vhd,
|
||||
atan2_16b.vhd,vhdl,xil_defaultlib,../../../ip/atan2_16b/sim/atan2_16b.vhd,
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
onbreak {quit -force}
|
||||
onerror {quit -force}
|
||||
|
||||
asim -t 1ps +access +r +m+atan2_16b -L xbip_utils_v3_0_10 -L c_reg_fd_v12_0_6 -L xbip_dsp48_wrapper_v3_0_4 -L xbip_pipe_v3_0_6 -L xbip_dsp48_addsub_v3_0_6 -L xbip_addsub_v3_0_6 -L c_addsub_v12_0_13 -L xbip_bram18k_v3_0_6 -L mult_gen_v12_0_15 -L axi_utils_v2_0_6 -L cordic_v6_0_15 -L xil_defaultlib -L secureip -O5 xil_defaultlib.atan2_16b
|
||||
|
||||
do {wave.do}
|
||||
|
||||
view wave
|
||||
view structure
|
||||
|
||||
do {atan2_16b.udo}
|
||||
|
||||
run -all
|
||||
|
||||
endsim
|
||||
|
||||
quit -force
|
||||
+1
@@ -0,0 +1 @@
|
||||
add wave *
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
################################################################################
|
||||
# Vivado (TM) v2019.1.3 (64-bit)
|
||||
#
|
||||
# README.txt: Please read the sections below to understand the steps required to
|
||||
# run the exported script and information about the source files.
|
||||
#
|
||||
# Generated by export_simulation on Sun Mar 19 11:33:54 +0800 2023
|
||||
#
|
||||
################################################################################
|
||||
|
||||
1. How to run the generated simulation script:-
|
||||
|
||||
From the shell prompt in the current directory, issue the following command:-
|
||||
|
||||
./atan2_16b.sh
|
||||
|
||||
This command will launch the 'execute' function for the single-step flow. This
|
||||
function is called from the main 'run' function in the script file.
|
||||
|
||||
The 'run' function first executes the 'setup' function, the purpose of which is to
|
||||
create simulator specific setup files, create design library mappings and library
|
||||
directories and copy 'glbl.v' from the Vivado software install location into the
|
||||
current directory.
|
||||
|
||||
The 'setup' function is also used for removing the simulator generated data in
|
||||
order to reset the current directory to the original state when export_simulation
|
||||
was launched from Vivado. This generated data can be removed by specifying the
|
||||
'-reset_run' switch to the './atan2_16b.sh' script.
|
||||
|
||||
./atan2_16b.sh -reset_run
|
||||
|
||||
To keep the generated data from the previous run but regenerate the setup files and
|
||||
library directories, use the '-noclean_files' switch.
|
||||
|
||||
./atan2_16b.sh -noclean_files
|
||||
|
||||
For more information on the script, please type './atan2_16b.sh -help'.
|
||||
|
||||
2. Additional design information files:-
|
||||
|
||||
export_simulation generates following additional file that can be used for fetching
|
||||
the design files information or for integrating with external custom scripts.
|
||||
|
||||
Name : file_info.txt
|
||||
Purpose: This file contains detail design file information based on the compile order
|
||||
when export_simulation was executed from Vivado. The file contains information
|
||||
about the file type, name, whether it is part of the IP, associated library
|
||||
and the file path information.
|
||||
+173
@@ -0,0 +1,173 @@
|
||||
#!/bin/bash -f
|
||||
#*********************************************************************************************************
|
||||
# Vivado (TM) v2019.1.3 (64-bit)
|
||||
#
|
||||
# Filename : atan2_16b.sh
|
||||
# Simulator : Cadence Incisive Enterprise Simulator
|
||||
# Description : Simulation script for compiling, elaborating and verifying the project source files.
|
||||
# The script will automatically create the design libraries sub-directories in the run
|
||||
# directory, add the library logical mappings in the simulator setup file, create default
|
||||
# 'do/prj' file, execute compilation, elaboration and simulation steps.
|
||||
#
|
||||
# Generated by Vivado on Sun Mar 19 11:33:54 +0800 2023
|
||||
# SW Build 2644227 on Wed Sep 4 09:45:24 MDT 2019
|
||||
#
|
||||
# Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
#
|
||||
# usage: atan2_16b.sh [-help]
|
||||
# usage: atan2_16b.sh [-lib_map_path]
|
||||
# usage: atan2_16b.sh [-noclean_files]
|
||||
# usage: atan2_16b.sh [-reset_run]
|
||||
#
|
||||
# Prerequisite:- To compile and run simulation, you must compile the Xilinx simulation libraries using the
|
||||
# 'compile_simlib' TCL command. For more information about this command, run 'compile_simlib -help' in the
|
||||
# Vivado Tcl Shell. Once the libraries have been compiled successfully, specify the -lib_map_path switch
|
||||
# that points to these libraries and rerun export_simulation. For more information about this switch please
|
||||
# type 'export_simulation -help' in the Tcl shell.
|
||||
#
|
||||
# You can also point to the simulation libraries by either replacing the <SPECIFY_COMPILED_LIB_PATH> in this
|
||||
# script with the compiled library directory path or specify this path with the '-lib_map_path' switch when
|
||||
# executing this script. Please type 'atan2_16b.sh -help' for more information.
|
||||
#
|
||||
# Additional references - 'Xilinx Vivado Design Suite User Guide:Logic simulation (UG900)'
|
||||
#
|
||||
#*********************************************************************************************************
|
||||
|
||||
# Directory path for design sources and include directories (if any) wrt this path
|
||||
ref_dir="."
|
||||
|
||||
# Override directory with 'export_sim_ref_dir' env path value if set in the shell
|
||||
if [[ (! -z "$export_sim_ref_dir") && ($export_sim_ref_dir != "") ]]; then
|
||||
ref_dir="$export_sim_ref_dir"
|
||||
fi
|
||||
|
||||
# Set the compiled library directory
|
||||
ref_lib_dir="."
|
||||
|
||||
# Command line options
|
||||
irun_opts="-64bit -v93 -relax -access +rwc -namemap_mixgen"
|
||||
|
||||
# Design libraries
|
||||
design_libs=(xbip_utils_v3_0_10 c_reg_fd_v12_0_6 xbip_dsp48_wrapper_v3_0_4 xbip_pipe_v3_0_6 xbip_dsp48_addsub_v3_0_6 xbip_addsub_v3_0_6 c_addsub_v12_0_13 xbip_bram18k_v3_0_6 mult_gen_v12_0_15 axi_utils_v2_0_6 cordic_v6_0_15 xil_defaultlib)
|
||||
|
||||
# Simulation root library directory
|
||||
sim_lib_dir="ies_lib"
|
||||
|
||||
# Script info
|
||||
echo -e "atan2_16b.sh - Script generated by export_simulation (Vivado v2019.1.3 (64-bit)-id)\n"
|
||||
|
||||
# Main steps
|
||||
run()
|
||||
{
|
||||
check_args $# $1
|
||||
setup $1 $2
|
||||
execute
|
||||
}
|
||||
|
||||
# RUN_STEP: <execute>
|
||||
execute()
|
||||
{
|
||||
irun $irun_opts \
|
||||
-reflib "$ref_lib_dir/unisim:unisim" \
|
||||
-reflib "$ref_lib_dir/unisims_ver:unisims_ver" \
|
||||
-reflib "$ref_lib_dir/secureip:secureip" \
|
||||
-reflib "$ref_lib_dir/unimacro:unimacro" \
|
||||
-reflib "$ref_lib_dir/unimacro_ver:unimacro_ver" \
|
||||
-top xil_defaultlib.atan2_16b \
|
||||
-f run.f
|
||||
}
|
||||
|
||||
# STEP: setup
|
||||
setup()
|
||||
{
|
||||
case $1 in
|
||||
"-lib_map_path" )
|
||||
if [[ ($2 == "") ]]; then
|
||||
echo -e "ERROR: Simulation library directory path not specified (type \"./atan2_16b.sh -help\" for more information)\n"
|
||||
exit 1
|
||||
else
|
||||
ref_lib_dir=$2
|
||||
fi
|
||||
;;
|
||||
"-reset_run" )
|
||||
reset_run
|
||||
echo -e "INFO: Simulation run files deleted.\n"
|
||||
exit 0
|
||||
;;
|
||||
"-noclean_files" )
|
||||
# do not remove previous data
|
||||
;;
|
||||
* )
|
||||
esac
|
||||
|
||||
create_lib_dir
|
||||
|
||||
# Add any setup/initialization commands here:-
|
||||
|
||||
# <user specific commands>
|
||||
|
||||
}
|
||||
|
||||
# Create design library directory paths
|
||||
create_lib_dir()
|
||||
{
|
||||
if [[ -e $sim_lib_dir ]]; then
|
||||
rm -rf $sim_lib_dir
|
||||
fi
|
||||
|
||||
for (( i=0; i<${#design_libs[*]}; i++ )); do
|
||||
lib="${design_libs[i]}"
|
||||
lib_dir="$sim_lib_dir/$lib"
|
||||
if [[ ! -e $lib_dir ]]; then
|
||||
mkdir -p $lib_dir
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Delete generated data from the previous run
|
||||
reset_run()
|
||||
{
|
||||
files_to_remove=(ncsim.key irun.key irun.log waves.shm irun.history .simvision INCA_libs)
|
||||
for (( i=0; i<${#files_to_remove[*]}; i++ )); do
|
||||
file="${files_to_remove[i]}"
|
||||
if [[ -e $file ]]; then
|
||||
rm -rf $file
|
||||
fi
|
||||
done
|
||||
|
||||
create_lib_dir
|
||||
}
|
||||
|
||||
# Check command line arguments
|
||||
check_args()
|
||||
{
|
||||
if [[ ($1 == 1 ) && ($2 != "-lib_map_path" && $2 != "-noclean_files" && $2 != "-reset_run" && $2 != "-help" && $2 != "-h") ]]; then
|
||||
echo -e "ERROR: Unknown option specified '$2' (type \"./atan2_16b.sh -help\" for more information)\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ($2 == "-help" || $2 == "-h") ]]; then
|
||||
usage
|
||||
fi
|
||||
}
|
||||
|
||||
# Script usage
|
||||
usage()
|
||||
{
|
||||
msg="Usage: atan2_16b.sh [-help]\n\
|
||||
Usage: atan2_16b.sh [-lib_map_path]\n\
|
||||
Usage: atan2_16b.sh [-reset_run]\n\
|
||||
Usage: atan2_16b.sh [-noclean_files]\n\n\
|
||||
[-help] -- Print help information for this script\n\n\
|
||||
[-lib_map_path <path>] -- Compiled simulation library directory path. The simulation library is compiled\n\
|
||||
using the compile_simlib tcl command. Please see 'compile_simlib -help' for more information.\n\n\
|
||||
[-reset_run] -- Recreate simulator setup files and library mappings for a clean run. The generated files\n\
|
||||
from the previous run will be removed. If you don't want to remove the simulator generated files, use the\n\
|
||||
-noclean_files switch.\n\n\
|
||||
[-noclean_files] -- Reset previous run, but do not remove simulator generated files from the previous run.\n\n"
|
||||
echo -e $msg
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Launch script
|
||||
run $1 $2
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
xbip_utils_v3_0_vh_rfs.vhd,vhdl,xbip_utils_v3_0_10,../../../ipstatic/hdl/xbip_utils_v3_0_vh_rfs.vhd,
|
||||
c_reg_fd_v12_0_vh_rfs.vhd,vhdl,c_reg_fd_v12_0_6,../../../ipstatic/hdl/c_reg_fd_v12_0_vh_rfs.vhd,
|
||||
xbip_dsp48_wrapper_v3_0_vh_rfs.vhd,vhdl,xbip_dsp48_wrapper_v3_0_4,../../../ipstatic/hdl/xbip_dsp48_wrapper_v3_0_vh_rfs.vhd,
|
||||
xbip_pipe_v3_0_vh_rfs.vhd,vhdl,xbip_pipe_v3_0_6,../../../ipstatic/hdl/xbip_pipe_v3_0_vh_rfs.vhd,
|
||||
xbip_dsp48_addsub_v3_0_vh_rfs.vhd,vhdl,xbip_dsp48_addsub_v3_0_6,../../../ipstatic/hdl/xbip_dsp48_addsub_v3_0_vh_rfs.vhd,
|
||||
xbip_addsub_v3_0_vh_rfs.vhd,vhdl,xbip_addsub_v3_0_6,../../../ipstatic/hdl/xbip_addsub_v3_0_vh_rfs.vhd,
|
||||
c_addsub_v12_0_vh_rfs.vhd,vhdl,c_addsub_v12_0_13,../../../ipstatic/hdl/c_addsub_v12_0_vh_rfs.vhd,
|
||||
xbip_bram18k_v3_0_vh_rfs.vhd,vhdl,xbip_bram18k_v3_0_6,../../../ipstatic/hdl/xbip_bram18k_v3_0_vh_rfs.vhd,
|
||||
mult_gen_v12_0_vh_rfs.vhd,vhdl,mult_gen_v12_0_15,../../../ipstatic/hdl/mult_gen_v12_0_vh_rfs.vhd,
|
||||
axi_utils_v2_0_vh_rfs.vhd,vhdl,axi_utils_v2_0_6,../../../ipstatic/hdl/axi_utils_v2_0_vh_rfs.vhd,
|
||||
cordic_v6_0_vh_rfs.vhd,vhdl,cordic_v6_0_15,../../../ipstatic/hdl/cordic_v6_0_vh_rfs.vhd,
|
||||
atan2_16b.vhd,vhdl,xil_defaultlib,../../../ip/atan2_16b/sim/atan2_16b.vhd,
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
-makelib ies_lib/xbip_utils_v3_0_10 \
|
||||
"../../../ipstatic/hdl/xbip_utils_v3_0_vh_rfs.vhd" \
|
||||
-endlib
|
||||
-makelib ies_lib/c_reg_fd_v12_0_6 \
|
||||
"../../../ipstatic/hdl/c_reg_fd_v12_0_vh_rfs.vhd" \
|
||||
-endlib
|
||||
-makelib ies_lib/xbip_dsp48_wrapper_v3_0_4 \
|
||||
"../../../ipstatic/hdl/xbip_dsp48_wrapper_v3_0_vh_rfs.vhd" \
|
||||
-endlib
|
||||
-makelib ies_lib/xbip_pipe_v3_0_6 \
|
||||
"../../../ipstatic/hdl/xbip_pipe_v3_0_vh_rfs.vhd" \
|
||||
-endlib
|
||||
-makelib ies_lib/xbip_dsp48_addsub_v3_0_6 \
|
||||
"../../../ipstatic/hdl/xbip_dsp48_addsub_v3_0_vh_rfs.vhd" \
|
||||
-endlib
|
||||
-makelib ies_lib/xbip_addsub_v3_0_6 \
|
||||
"../../../ipstatic/hdl/xbip_addsub_v3_0_vh_rfs.vhd" \
|
||||
-endlib
|
||||
-makelib ies_lib/c_addsub_v12_0_13 \
|
||||
"../../../ipstatic/hdl/c_addsub_v12_0_vh_rfs.vhd" \
|
||||
-endlib
|
||||
-makelib ies_lib/xbip_bram18k_v3_0_6 \
|
||||
"../../../ipstatic/hdl/xbip_bram18k_v3_0_vh_rfs.vhd" \
|
||||
-endlib
|
||||
-makelib ies_lib/mult_gen_v12_0_15 \
|
||||
"../../../ipstatic/hdl/mult_gen_v12_0_vh_rfs.vhd" \
|
||||
-endlib
|
||||
-makelib ies_lib/axi_utils_v2_0_6 \
|
||||
"../../../ipstatic/hdl/axi_utils_v2_0_vh_rfs.vhd" \
|
||||
-endlib
|
||||
-makelib ies_lib/cordic_v6_0_15 \
|
||||
"../../../ipstatic/hdl/cordic_v6_0_vh_rfs.vhd" \
|
||||
-endlib
|
||||
-makelib ies_lib/xil_defaultlib \
|
||||
"../../../ip/atan2_16b/sim/atan2_16b.vhd" \
|
||||
-endlib
|
||||
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
################################################################################
|
||||
# Vivado (TM) v2019.1.3 (64-bit)
|
||||
#
|
||||
# README.txt: Please read the sections below to understand the steps required to
|
||||
# run the exported script and information about the source files.
|
||||
#
|
||||
# Generated by export_simulation on Sun Mar 19 11:33:54 +0800 2023
|
||||
#
|
||||
################################################################################
|
||||
|
||||
1. How to run the generated simulation script:-
|
||||
|
||||
From the shell prompt in the current directory, issue the following command:-
|
||||
|
||||
./atan2_16b.sh
|
||||
|
||||
This command will launch the 'compile', 'elaborate' and 'simulate' functions
|
||||
implemented in the script file for the 3-step flow. These functions are called
|
||||
from the main 'run' function in the script file.
|
||||
|
||||
The 'run' function first executes the 'setup' function, the purpose of which is to
|
||||
create simulator specific setup files, create design library mappings and library
|
||||
directories and copy 'glbl.v' from the Vivado software install location into the
|
||||
current directory.
|
||||
|
||||
The 'setup' function is also used for removing the simulator generated data in
|
||||
order to reset the current directory to the original state when export_simulation
|
||||
was launched from Vivado. This generated data can be removed by specifying the
|
||||
'-reset_run' switch to the './atan2_16b.sh' script.
|
||||
|
||||
./atan2_16b.sh -reset_run
|
||||
|
||||
To keep the generated data from the previous run but regenerate the setup files and
|
||||
library directories, use the '-noclean_files' switch.
|
||||
|
||||
./atan2_16b.sh -noclean_files
|
||||
|
||||
For more information on the script, please type './atan2_16b.sh -help'.
|
||||
|
||||
2. Additional design information files:-
|
||||
|
||||
export_simulation generates following additional file that can be used for fetching
|
||||
the design files information or for integrating with external custom scripts.
|
||||
|
||||
Name : file_info.txt
|
||||
Purpose: This file contains detail design file information based on the compile order
|
||||
when export_simulation was executed from Vivado. The file contains information
|
||||
about the file type, name, whether it is part of the IP, associated library
|
||||
and the file path information.
|
||||
+167
@@ -0,0 +1,167 @@
|
||||
#!/bin/bash -f
|
||||
#*********************************************************************************************************
|
||||
# Vivado (TM) v2019.1.3 (64-bit)
|
||||
#
|
||||
# Filename : atan2_16b.sh
|
||||
# Simulator : Mentor Graphics ModelSim Simulator
|
||||
# Description : Simulation script for compiling, elaborating and verifying the project source files.
|
||||
# The script will automatically create the design libraries sub-directories in the run
|
||||
# directory, add the library logical mappings in the simulator setup file, create default
|
||||
# 'do/prj' file, execute compilation, elaboration and simulation steps.
|
||||
#
|
||||
# Generated by Vivado on Sun Mar 19 11:33:54 +0800 2023
|
||||
# SW Build 2644227 on Wed Sep 4 09:45:24 MDT 2019
|
||||
#
|
||||
# Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
#
|
||||
# usage: atan2_16b.sh [-help]
|
||||
# usage: atan2_16b.sh [-lib_map_path]
|
||||
# usage: atan2_16b.sh [-noclean_files]
|
||||
# usage: atan2_16b.sh [-reset_run]
|
||||
#
|
||||
# Prerequisite:- To compile and run simulation, you must compile the Xilinx simulation libraries using the
|
||||
# 'compile_simlib' TCL command. For more information about this command, run 'compile_simlib -help' in the
|
||||
# Vivado Tcl Shell. Once the libraries have been compiled successfully, specify the -lib_map_path switch
|
||||
# that points to these libraries and rerun export_simulation. For more information about this switch please
|
||||
# type 'export_simulation -help' in the Tcl shell.
|
||||
#
|
||||
# You can also point to the simulation libraries by either replacing the <SPECIFY_COMPILED_LIB_PATH> in this
|
||||
# script with the compiled library directory path or specify this path with the '-lib_map_path' switch when
|
||||
# executing this script. Please type 'atan2_16b.sh -help' for more information.
|
||||
#
|
||||
# Additional references - 'Xilinx Vivado Design Suite User Guide:Logic simulation (UG900)'
|
||||
#
|
||||
#*********************************************************************************************************
|
||||
|
||||
|
||||
# Script info
|
||||
echo -e "atan2_16b.sh - Script generated by export_simulation (Vivado v2019.1.3 (64-bit)-id)\n"
|
||||
|
||||
# Main steps
|
||||
run()
|
||||
{
|
||||
check_args $# $1
|
||||
setup $1 $2
|
||||
compile
|
||||
simulate
|
||||
}
|
||||
|
||||
# RUN_STEP: <compile>
|
||||
compile()
|
||||
{
|
||||
# Compile design files
|
||||
source compile.do 2>&1 | tee -a compile.log
|
||||
|
||||
}
|
||||
|
||||
# RUN_STEP: <simulate>
|
||||
simulate()
|
||||
{
|
||||
vsim -64 -c -do "do {simulate.do}" -l simulate.log
|
||||
}
|
||||
|
||||
# STEP: setup
|
||||
setup()
|
||||
{
|
||||
case $1 in
|
||||
"-lib_map_path" )
|
||||
if [[ ($2 == "") ]]; then
|
||||
echo -e "ERROR: Simulation library directory path not specified (type \"./atan2_16b.sh -help\" for more information)\n"
|
||||
exit 1
|
||||
fi
|
||||
copy_setup_file $2
|
||||
;;
|
||||
"-reset_run" )
|
||||
reset_run
|
||||
echo -e "INFO: Simulation run files deleted.\n"
|
||||
exit 0
|
||||
;;
|
||||
"-noclean_files" )
|
||||
# do not remove previous data
|
||||
;;
|
||||
* )
|
||||
copy_setup_file $2
|
||||
esac
|
||||
|
||||
create_lib_dir
|
||||
|
||||
# Add any setup/initialization commands here:-
|
||||
|
||||
# <user specific commands>
|
||||
|
||||
}
|
||||
|
||||
# Copy modelsim.ini file
|
||||
copy_setup_file()
|
||||
{
|
||||
file="modelsim.ini"
|
||||
if [[ ($1 != "") ]]; then
|
||||
lib_map_path="$1"
|
||||
else
|
||||
lib_map_path="C:/Mentor/CompLib/2019.1.3"
|
||||
fi
|
||||
if [[ ($lib_map_path != "") ]]; then
|
||||
src_file="$lib_map_path/$file"
|
||||
cp $src_file .
|
||||
fi
|
||||
}
|
||||
|
||||
# Create design library directory
|
||||
create_lib_dir()
|
||||
{
|
||||
lib_dir="modelsim_lib"
|
||||
if [[ -e $lib_dir ]]; then
|
||||
rm -rf $lib_dir
|
||||
fi
|
||||
|
||||
mkdir $lib_dir
|
||||
|
||||
}
|
||||
|
||||
# Delete generated data from the previous run
|
||||
reset_run()
|
||||
{
|
||||
files_to_remove=(compile.log elaborate.log simulate.log vsim.wlf modelsim_lib)
|
||||
for (( i=0; i<${#files_to_remove[*]}; i++ )); do
|
||||
file="${files_to_remove[i]}"
|
||||
if [[ -e $file ]]; then
|
||||
rm -rf $file
|
||||
fi
|
||||
done
|
||||
|
||||
create_lib_dir
|
||||
}
|
||||
|
||||
# Check command line arguments
|
||||
check_args()
|
||||
{
|
||||
if [[ ($1 == 1 ) && ($2 != "-lib_map_path" && $2 != "-noclean_files" && $2 != "-reset_run" && $2 != "-help" && $2 != "-h") ]]; then
|
||||
echo -e "ERROR: Unknown option specified '$2' (type \"./atan2_16b.sh -help\" for more information)\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ($2 == "-help" || $2 == "-h") ]]; then
|
||||
usage
|
||||
fi
|
||||
}
|
||||
|
||||
# Script usage
|
||||
usage()
|
||||
{
|
||||
msg="Usage: atan2_16b.sh [-help]\n\
|
||||
Usage: atan2_16b.sh [-lib_map_path]\n\
|
||||
Usage: atan2_16b.sh [-reset_run]\n\
|
||||
Usage: atan2_16b.sh [-noclean_files]\n\n\
|
||||
[-help] -- Print help information for this script\n\n\
|
||||
[-lib_map_path <path>] -- Compiled simulation library directory path. The simulation library is compiled\n\
|
||||
using the compile_simlib tcl command. Please see 'compile_simlib -help' for more information.\n\n\
|
||||
[-reset_run] -- Recreate simulator setup files and library mappings for a clean run. The generated files\n\
|
||||
from the previous run will be removed. If you don't want to remove the simulator generated files, use the\n\
|
||||
-noclean_files switch.\n\n\
|
||||
[-noclean_files] -- Reset previous run, but do not remove simulator generated files from the previous run.\n\n"
|
||||
echo -e $msg
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Launch script
|
||||
run $1 $2
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
vlib modelsim_lib/work
|
||||
vlib modelsim_lib/msim
|
||||
|
||||
vlib modelsim_lib/msim/xil_defaultlib
|
||||
|
||||
vmap xil_defaultlib modelsim_lib/msim/xil_defaultlib
|
||||
|
||||
vcom -work xil_defaultlib -64 -93 \
|
||||
"../../../ip/atan2_16b/sim/atan2_16b.vhd" \
|
||||
|
||||
|
||||
+1
@@ -0,0 +1 @@
|
||||
atan2_16b.vhd,vhdl,xil_defaultlib,../../../ip/atan2_16b/sim/atan2_16b.vhd,
|
||||
+2590
File diff suppressed because it is too large
Load Diff
+16
@@ -0,0 +1,16 @@
|
||||
onbreak {quit -f}
|
||||
onerror {quit -f}
|
||||
|
||||
vsim -voptargs="+acc" -t 1ps -L xbip_utils_v3_0_10 -L c_reg_fd_v12_0_6 -L xbip_dsp48_wrapper_v3_0_4 -L xbip_pipe_v3_0_6 -L xbip_dsp48_addsub_v3_0_6 -L xbip_addsub_v3_0_6 -L c_addsub_v12_0_13 -L xbip_bram18k_v3_0_6 -L mult_gen_v12_0_15 -L axi_utils_v2_0_6 -L cordic_v6_0_15 -L xil_defaultlib -L secureip -L xpm -lib xil_defaultlib xil_defaultlib.atan2_16b
|
||||
|
||||
do {wave.do}
|
||||
|
||||
view wave
|
||||
view structure
|
||||
view signals
|
||||
|
||||
do {atan2_16b.udo}
|
||||
|
||||
run -all
|
||||
|
||||
quit -force
|
||||
+1
@@ -0,0 +1 @@
|
||||
add wave *
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
################################################################################
|
||||
# Vivado (TM) v2019.1.3 (64-bit)
|
||||
#
|
||||
# README.txt: Please read the sections below to understand the steps required to
|
||||
# run the exported script and information about the source files.
|
||||
#
|
||||
# Generated by export_simulation on Sun Mar 19 11:33:54 +0800 2023
|
||||
#
|
||||
################################################################################
|
||||
|
||||
1. How to run the generated simulation script:-
|
||||
|
||||
From the shell prompt in the current directory, issue the following command:-
|
||||
|
||||
./atan2_16b.sh
|
||||
|
||||
This command will launch the 'compile', 'elaborate' and 'simulate' functions
|
||||
implemented in the script file for the 3-step flow. These functions are called
|
||||
from the main 'run' function in the script file.
|
||||
|
||||
The 'run' function first executes the 'setup' function, the purpose of which is to
|
||||
create simulator specific setup files, create design library mappings and library
|
||||
directories and copy 'glbl.v' from the Vivado software install location into the
|
||||
current directory.
|
||||
|
||||
The 'setup' function is also used for removing the simulator generated data in
|
||||
order to reset the current directory to the original state when export_simulation
|
||||
was launched from Vivado. This generated data can be removed by specifying the
|
||||
'-reset_run' switch to the './atan2_16b.sh' script.
|
||||
|
||||
./atan2_16b.sh -reset_run
|
||||
|
||||
To keep the generated data from the previous run but regenerate the setup files and
|
||||
library directories, use the '-noclean_files' switch.
|
||||
|
||||
./atan2_16b.sh -noclean_files
|
||||
|
||||
For more information on the script, please type './atan2_16b.sh -help'.
|
||||
|
||||
2. Additional design information files:-
|
||||
|
||||
export_simulation generates following additional file that can be used for fetching
|
||||
the design files information or for integrating with external custom scripts.
|
||||
|
||||
Name : file_info.txt
|
||||
Purpose: This file contains detail design file information based on the compile order
|
||||
when export_simulation was executed from Vivado. The file contains information
|
||||
about the file type, name, whether it is part of the IP, associated library
|
||||
and the file path information.
|
||||
+175
@@ -0,0 +1,175 @@
|
||||
#!/bin/bash -f
|
||||
#*********************************************************************************************************
|
||||
# Vivado (TM) v2019.1.3 (64-bit)
|
||||
#
|
||||
# Filename : atan2_16b.sh
|
||||
# Simulator : Mentor Graphics Questa Advanced Simulator
|
||||
# Description : Simulation script for compiling, elaborating and verifying the project source files.
|
||||
# The script will automatically create the design libraries sub-directories in the run
|
||||
# directory, add the library logical mappings in the simulator setup file, create default
|
||||
# 'do/prj' file, execute compilation, elaboration and simulation steps.
|
||||
#
|
||||
# Generated by Vivado on Sun Mar 19 11:33:54 +0800 2023
|
||||
# SW Build 2644227 on Wed Sep 4 09:45:24 MDT 2019
|
||||
#
|
||||
# Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
#
|
||||
# usage: atan2_16b.sh [-help]
|
||||
# usage: atan2_16b.sh [-lib_map_path]
|
||||
# usage: atan2_16b.sh [-noclean_files]
|
||||
# usage: atan2_16b.sh [-reset_run]
|
||||
#
|
||||
# Prerequisite:- To compile and run simulation, you must compile the Xilinx simulation libraries using the
|
||||
# 'compile_simlib' TCL command. For more information about this command, run 'compile_simlib -help' in the
|
||||
# Vivado Tcl Shell. Once the libraries have been compiled successfully, specify the -lib_map_path switch
|
||||
# that points to these libraries and rerun export_simulation. For more information about this switch please
|
||||
# type 'export_simulation -help' in the Tcl shell.
|
||||
#
|
||||
# You can also point to the simulation libraries by either replacing the <SPECIFY_COMPILED_LIB_PATH> in this
|
||||
# script with the compiled library directory path or specify this path with the '-lib_map_path' switch when
|
||||
# executing this script. Please type 'atan2_16b.sh -help' for more information.
|
||||
#
|
||||
# Additional references - 'Xilinx Vivado Design Suite User Guide:Logic simulation (UG900)'
|
||||
#
|
||||
#*********************************************************************************************************
|
||||
|
||||
|
||||
# Script info
|
||||
echo -e "atan2_16b.sh - Script generated by export_simulation (Vivado v2019.1.3 (64-bit)-id)\n"
|
||||
|
||||
# Main steps
|
||||
run()
|
||||
{
|
||||
check_args $# $1
|
||||
setup $1 $2
|
||||
compile
|
||||
elaborate
|
||||
simulate
|
||||
}
|
||||
|
||||
# RUN_STEP: <compile>
|
||||
compile()
|
||||
{
|
||||
# Compile design files
|
||||
source compile.do 2>&1 | tee -a compile.log
|
||||
|
||||
}
|
||||
|
||||
# RUN_STEP: <elaborate>
|
||||
elaborate()
|
||||
{
|
||||
source elaborate.do 2>&1 | tee -a elaborate.log
|
||||
}
|
||||
|
||||
# RUN_STEP: <simulate>
|
||||
simulate()
|
||||
{
|
||||
vsim -64 -c -do "do {simulate.do}" -l simulate.log
|
||||
}
|
||||
|
||||
# STEP: setup
|
||||
setup()
|
||||
{
|
||||
case $1 in
|
||||
"-lib_map_path" )
|
||||
if [[ ($2 == "") ]]; then
|
||||
echo -e "ERROR: Simulation library directory path not specified (type \"./atan2_16b.sh -help\" for more information)\n"
|
||||
exit 1
|
||||
fi
|
||||
copy_setup_file $2
|
||||
;;
|
||||
"-reset_run" )
|
||||
reset_run
|
||||
echo -e "INFO: Simulation run files deleted.\n"
|
||||
exit 0
|
||||
;;
|
||||
"-noclean_files" )
|
||||
# do not remove previous data
|
||||
;;
|
||||
* )
|
||||
copy_setup_file $2
|
||||
esac
|
||||
|
||||
create_lib_dir
|
||||
|
||||
# Add any setup/initialization commands here:-
|
||||
|
||||
# <user specific commands>
|
||||
|
||||
}
|
||||
|
||||
# Copy modelsim.ini file
|
||||
copy_setup_file()
|
||||
{
|
||||
file="modelsim.ini"
|
||||
lib_map_path="<SPECIFY_COMPILED_LIB_PATH>"
|
||||
if [[ ($1 != "" && -e $1) ]]; then
|
||||
lib_map_path="$1"
|
||||
else
|
||||
echo -e "ERROR: Compiled simulation library directory path not specified or does not exist (type "./top.sh -help" for more information)\n"
|
||||
fi
|
||||
if [[ ($lib_map_path != "") ]]; then
|
||||
src_file="$lib_map_path/$file"
|
||||
cp $src_file .
|
||||
fi
|
||||
}
|
||||
|
||||
# Create design library directory
|
||||
create_lib_dir()
|
||||
{
|
||||
lib_dir="questa_lib"
|
||||
if [[ -e $lib_dir ]]; then
|
||||
rm -rf $lib_dir
|
||||
fi
|
||||
|
||||
mkdir $lib_dir
|
||||
|
||||
}
|
||||
|
||||
# Delete generated data from the previous run
|
||||
reset_run()
|
||||
{
|
||||
files_to_remove=(compile.log elaborate.log simulate.log vsim.wlf questa_lib)
|
||||
for (( i=0; i<${#files_to_remove[*]}; i++ )); do
|
||||
file="${files_to_remove[i]}"
|
||||
if [[ -e $file ]]; then
|
||||
rm -rf $file
|
||||
fi
|
||||
done
|
||||
|
||||
create_lib_dir
|
||||
}
|
||||
|
||||
# Check command line arguments
|
||||
check_args()
|
||||
{
|
||||
if [[ ($1 == 1 ) && ($2 != "-lib_map_path" && $2 != "-noclean_files" && $2 != "-reset_run" && $2 != "-help" && $2 != "-h") ]]; then
|
||||
echo -e "ERROR: Unknown option specified '$2' (type \"./atan2_16b.sh -help\" for more information)\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ($2 == "-help" || $2 == "-h") ]]; then
|
||||
usage
|
||||
fi
|
||||
}
|
||||
|
||||
# Script usage
|
||||
usage()
|
||||
{
|
||||
msg="Usage: atan2_16b.sh [-help]\n\
|
||||
Usage: atan2_16b.sh [-lib_map_path]\n\
|
||||
Usage: atan2_16b.sh [-reset_run]\n\
|
||||
Usage: atan2_16b.sh [-noclean_files]\n\n\
|
||||
[-help] -- Print help information for this script\n\n\
|
||||
[-lib_map_path <path>] -- Compiled simulation library directory path. The simulation library is compiled\n\
|
||||
using the compile_simlib tcl command. Please see 'compile_simlib -help' for more information.\n\n\
|
||||
[-reset_run] -- Recreate simulator setup files and library mappings for a clean run. The generated files\n\
|
||||
from the previous run will be removed. If you don't want to remove the simulator generated files, use the\n\
|
||||
-noclean_files switch.\n\n\
|
||||
[-noclean_files] -- Reset previous run, but do not remove simulator generated files from the previous run.\n\n"
|
||||
echo -e $msg
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Launch script
|
||||
run $1 $2
|
||||
+66
@@ -0,0 +1,66 @@
|
||||
vlib questa_lib/work
|
||||
vlib questa_lib/msim
|
||||
|
||||
vlib questa_lib/msim/xbip_utils_v3_0_10
|
||||
vlib questa_lib/msim/c_reg_fd_v12_0_6
|
||||
vlib questa_lib/msim/xbip_dsp48_wrapper_v3_0_4
|
||||
vlib questa_lib/msim/xbip_pipe_v3_0_6
|
||||
vlib questa_lib/msim/xbip_dsp48_addsub_v3_0_6
|
||||
vlib questa_lib/msim/xbip_addsub_v3_0_6
|
||||
vlib questa_lib/msim/c_addsub_v12_0_13
|
||||
vlib questa_lib/msim/xbip_bram18k_v3_0_6
|
||||
vlib questa_lib/msim/mult_gen_v12_0_15
|
||||
vlib questa_lib/msim/axi_utils_v2_0_6
|
||||
vlib questa_lib/msim/cordic_v6_0_15
|
||||
vlib questa_lib/msim/xil_defaultlib
|
||||
|
||||
vmap xbip_utils_v3_0_10 questa_lib/msim/xbip_utils_v3_0_10
|
||||
vmap c_reg_fd_v12_0_6 questa_lib/msim/c_reg_fd_v12_0_6
|
||||
vmap xbip_dsp48_wrapper_v3_0_4 questa_lib/msim/xbip_dsp48_wrapper_v3_0_4
|
||||
vmap xbip_pipe_v3_0_6 questa_lib/msim/xbip_pipe_v3_0_6
|
||||
vmap xbip_dsp48_addsub_v3_0_6 questa_lib/msim/xbip_dsp48_addsub_v3_0_6
|
||||
vmap xbip_addsub_v3_0_6 questa_lib/msim/xbip_addsub_v3_0_6
|
||||
vmap c_addsub_v12_0_13 questa_lib/msim/c_addsub_v12_0_13
|
||||
vmap xbip_bram18k_v3_0_6 questa_lib/msim/xbip_bram18k_v3_0_6
|
||||
vmap mult_gen_v12_0_15 questa_lib/msim/mult_gen_v12_0_15
|
||||
vmap axi_utils_v2_0_6 questa_lib/msim/axi_utils_v2_0_6
|
||||
vmap cordic_v6_0_15 questa_lib/msim/cordic_v6_0_15
|
||||
vmap xil_defaultlib questa_lib/msim/xil_defaultlib
|
||||
|
||||
vcom -work xbip_utils_v3_0_10 -64 -93 \
|
||||
"../../../ipstatic/hdl/xbip_utils_v3_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work c_reg_fd_v12_0_6 -64 -93 \
|
||||
"../../../ipstatic/hdl/c_reg_fd_v12_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work xbip_dsp48_wrapper_v3_0_4 -64 -93 \
|
||||
"../../../ipstatic/hdl/xbip_dsp48_wrapper_v3_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work xbip_pipe_v3_0_6 -64 -93 \
|
||||
"../../../ipstatic/hdl/xbip_pipe_v3_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work xbip_dsp48_addsub_v3_0_6 -64 -93 \
|
||||
"../../../ipstatic/hdl/xbip_dsp48_addsub_v3_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work xbip_addsub_v3_0_6 -64 -93 \
|
||||
"../../../ipstatic/hdl/xbip_addsub_v3_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work c_addsub_v12_0_13 -64 -93 \
|
||||
"../../../ipstatic/hdl/c_addsub_v12_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work xbip_bram18k_v3_0_6 -64 -93 \
|
||||
"../../../ipstatic/hdl/xbip_bram18k_v3_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work mult_gen_v12_0_15 -64 -93 \
|
||||
"../../../ipstatic/hdl/mult_gen_v12_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work axi_utils_v2_0_6 -64 -93 \
|
||||
"../../../ipstatic/hdl/axi_utils_v2_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work cordic_v6_0_15 -64 -93 \
|
||||
"../../../ipstatic/hdl/cordic_v6_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work xil_defaultlib -64 -93 \
|
||||
"../../../ip/atan2_16b/sim/atan2_16b.vhd" \
|
||||
|
||||
|
||||
+1
@@ -0,0 +1 @@
|
||||
vopt -64 +acc -l elaborate.log -L xbip_utils_v3_0_10 -L c_reg_fd_v12_0_6 -L xbip_dsp48_wrapper_v3_0_4 -L xbip_pipe_v3_0_6 -L xbip_dsp48_addsub_v3_0_6 -L xbip_addsub_v3_0_6 -L c_addsub_v12_0_13 -L xbip_bram18k_v3_0_6 -L mult_gen_v12_0_15 -L axi_utils_v2_0_6 -L cordic_v6_0_15 -L xil_defaultlib -L secureip -work xil_defaultlib xil_defaultlib.atan2_16b -o atan2_16b_opt
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
xbip_utils_v3_0_vh_rfs.vhd,vhdl,xbip_utils_v3_0_10,../../../ipstatic/hdl/xbip_utils_v3_0_vh_rfs.vhd,
|
||||
c_reg_fd_v12_0_vh_rfs.vhd,vhdl,c_reg_fd_v12_0_6,../../../ipstatic/hdl/c_reg_fd_v12_0_vh_rfs.vhd,
|
||||
xbip_dsp48_wrapper_v3_0_vh_rfs.vhd,vhdl,xbip_dsp48_wrapper_v3_0_4,../../../ipstatic/hdl/xbip_dsp48_wrapper_v3_0_vh_rfs.vhd,
|
||||
xbip_pipe_v3_0_vh_rfs.vhd,vhdl,xbip_pipe_v3_0_6,../../../ipstatic/hdl/xbip_pipe_v3_0_vh_rfs.vhd,
|
||||
xbip_dsp48_addsub_v3_0_vh_rfs.vhd,vhdl,xbip_dsp48_addsub_v3_0_6,../../../ipstatic/hdl/xbip_dsp48_addsub_v3_0_vh_rfs.vhd,
|
||||
xbip_addsub_v3_0_vh_rfs.vhd,vhdl,xbip_addsub_v3_0_6,../../../ipstatic/hdl/xbip_addsub_v3_0_vh_rfs.vhd,
|
||||
c_addsub_v12_0_vh_rfs.vhd,vhdl,c_addsub_v12_0_13,../../../ipstatic/hdl/c_addsub_v12_0_vh_rfs.vhd,
|
||||
xbip_bram18k_v3_0_vh_rfs.vhd,vhdl,xbip_bram18k_v3_0_6,../../../ipstatic/hdl/xbip_bram18k_v3_0_vh_rfs.vhd,
|
||||
mult_gen_v12_0_vh_rfs.vhd,vhdl,mult_gen_v12_0_15,../../../ipstatic/hdl/mult_gen_v12_0_vh_rfs.vhd,
|
||||
axi_utils_v2_0_vh_rfs.vhd,vhdl,axi_utils_v2_0_6,../../../ipstatic/hdl/axi_utils_v2_0_vh_rfs.vhd,
|
||||
cordic_v6_0_vh_rfs.vhd,vhdl,cordic_v6_0_15,../../../ipstatic/hdl/cordic_v6_0_vh_rfs.vhd,
|
||||
atan2_16b.vhd,vhdl,xil_defaultlib,../../../ip/atan2_16b/sim/atan2_16b.vhd,
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
onbreak {quit -f}
|
||||
onerror {quit -f}
|
||||
|
||||
vsim -t 1ps -lib xil_defaultlib atan2_16b_opt
|
||||
|
||||
do {wave.do}
|
||||
|
||||
view wave
|
||||
view structure
|
||||
view signals
|
||||
|
||||
do {atan2_16b.udo}
|
||||
|
||||
run -all
|
||||
|
||||
quit -force
|
||||
+1
@@ -0,0 +1 @@
|
||||
add wave *
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
################################################################################
|
||||
# Vivado (TM) v2019.1.3 (64-bit)
|
||||
#
|
||||
# README.txt: Please read the sections below to understand the steps required to
|
||||
# run the exported script and information about the source files.
|
||||
#
|
||||
# Generated by export_simulation on Sun Mar 19 11:33:54 +0800 2023
|
||||
#
|
||||
################################################################################
|
||||
|
||||
1. How to run the generated simulation script:-
|
||||
|
||||
From the shell prompt in the current directory, issue the following command:-
|
||||
|
||||
./atan2_16b.sh
|
||||
|
||||
This command will launch the 'compile', 'elaborate' and 'simulate' functions
|
||||
implemented in the script file for the 3-step flow. These functions are called
|
||||
from the main 'run' function in the script file.
|
||||
|
||||
The 'run' function first executes the 'setup' function, the purpose of which is to
|
||||
create simulator specific setup files, create design library mappings and library
|
||||
directories and copy 'glbl.v' from the Vivado software install location into the
|
||||
current directory.
|
||||
|
||||
The 'setup' function is also used for removing the simulator generated data in
|
||||
order to reset the current directory to the original state when export_simulation
|
||||
was launched from Vivado. This generated data can be removed by specifying the
|
||||
'-reset_run' switch to the './atan2_16b.sh' script.
|
||||
|
||||
./atan2_16b.sh -reset_run
|
||||
|
||||
To keep the generated data from the previous run but regenerate the setup files and
|
||||
library directories, use the '-noclean_files' switch.
|
||||
|
||||
./atan2_16b.sh -noclean_files
|
||||
|
||||
For more information on the script, please type './atan2_16b.sh -help'.
|
||||
|
||||
2. Additional design information files:-
|
||||
|
||||
export_simulation generates following additional file that can be used for fetching
|
||||
the design files information or for integrating with external custom scripts.
|
||||
|
||||
Name : file_info.txt
|
||||
Purpose: This file contains detail design file information based on the compile order
|
||||
when export_simulation was executed from Vivado. The file contains information
|
||||
about the file type, name, whether it is part of the IP, associated library
|
||||
and the file path information.
|
||||
+154
@@ -0,0 +1,154 @@
|
||||
#!/bin/bash -f
|
||||
#*********************************************************************************************************
|
||||
# Vivado (TM) v2019.1.3 (64-bit)
|
||||
#
|
||||
# Filename : atan2_16b.sh
|
||||
# Simulator : Aldec Riviera-PRO Simulator
|
||||
# Description : Simulation script for compiling, elaborating and verifying the project source files.
|
||||
# The script will automatically create the design libraries sub-directories in the run
|
||||
# directory, add the library logical mappings in the simulator setup file, create default
|
||||
# 'do/prj' file, execute compilation, elaboration and simulation steps.
|
||||
#
|
||||
# Generated by Vivado on Sun Mar 19 11:33:54 +0800 2023
|
||||
# SW Build 2644227 on Wed Sep 4 09:45:24 MDT 2019
|
||||
#
|
||||
# Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
#
|
||||
# usage: atan2_16b.sh [-help]
|
||||
# usage: atan2_16b.sh [-lib_map_path]
|
||||
# usage: atan2_16b.sh [-noclean_files]
|
||||
# usage: atan2_16b.sh [-reset_run]
|
||||
#
|
||||
# Prerequisite:- To compile and run simulation, you must compile the Xilinx simulation libraries using the
|
||||
# 'compile_simlib' TCL command. For more information about this command, run 'compile_simlib -help' in the
|
||||
# Vivado Tcl Shell. Once the libraries have been compiled successfully, specify the -lib_map_path switch
|
||||
# that points to these libraries and rerun export_simulation. For more information about this switch please
|
||||
# type 'export_simulation -help' in the Tcl shell.
|
||||
#
|
||||
# You can also point to the simulation libraries by either replacing the <SPECIFY_COMPILED_LIB_PATH> in this
|
||||
# script with the compiled library directory path or specify this path with the '-lib_map_path' switch when
|
||||
# executing this script. Please type 'atan2_16b.sh -help' for more information.
|
||||
#
|
||||
# Additional references - 'Xilinx Vivado Design Suite User Guide:Logic simulation (UG900)'
|
||||
#
|
||||
#*********************************************************************************************************
|
||||
|
||||
|
||||
# Script info
|
||||
echo -e "atan2_16b.sh - Script generated by export_simulation (Vivado v2019.1.3 (64-bit)-id)\n"
|
||||
|
||||
# Main steps
|
||||
run()
|
||||
{
|
||||
check_args $# $1
|
||||
setup $1 $2
|
||||
compile
|
||||
simulate
|
||||
}
|
||||
|
||||
# RUN_STEP: <compile>
|
||||
compile()
|
||||
{
|
||||
# Compile design files
|
||||
source compile.do 2>&1 | tee -a compile.log
|
||||
|
||||
}
|
||||
|
||||
# RUN_STEP: <simulate>
|
||||
simulate()
|
||||
{
|
||||
runvsimsa -l simulate.log -do "do {simulate.do}"
|
||||
}
|
||||
|
||||
# STEP: setup
|
||||
setup()
|
||||
{
|
||||
case $1 in
|
||||
"-lib_map_path" )
|
||||
if [[ ($2 == "") ]]; then
|
||||
echo -e "ERROR: Simulation library directory path not specified (type \"./atan2_16b.sh -help\" for more information)\n"
|
||||
exit 1
|
||||
fi
|
||||
map_setup_file $2
|
||||
;;
|
||||
"-reset_run" )
|
||||
reset_run
|
||||
echo -e "INFO: Simulation run files deleted.\n"
|
||||
exit 0
|
||||
;;
|
||||
"-noclean_files" )
|
||||
# do not remove previous data
|
||||
;;
|
||||
* )
|
||||
map_setup_file $2
|
||||
esac
|
||||
|
||||
# Add any setup/initialization commands here:-
|
||||
|
||||
# <user specific commands>
|
||||
|
||||
}
|
||||
|
||||
# Map library.cfg file
|
||||
map_setup_file()
|
||||
{
|
||||
file="library.cfg"
|
||||
lib_map_path="<SPECIFY_COMPILED_LIB_PATH>"
|
||||
if [[ ($1 != "" && -e $1) ]]; then
|
||||
lib_map_path="$1"
|
||||
else
|
||||
echo -e "ERROR: Compiled simulation library directory path not specified or does not exist (type "./top.sh -help" for more information)\n"
|
||||
fi
|
||||
if [[ ($lib_map_path != "") ]]; then
|
||||
src_file="$lib_map_path/$file"
|
||||
if [[ -e $src_file ]]; then
|
||||
vmap -link $lib_map_path
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Delete generated data from the previous run
|
||||
reset_run()
|
||||
{
|
||||
files_to_remove=(compile.log elaboration.log simulate.log dataset.asdb work riviera)
|
||||
for (( i=0; i<${#files_to_remove[*]}; i++ )); do
|
||||
file="${files_to_remove[i]}"
|
||||
if [[ -e $file ]]; then
|
||||
rm -rf $file
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Check command line arguments
|
||||
check_args()
|
||||
{
|
||||
if [[ ($1 == 1 ) && ($2 != "-lib_map_path" && $2 != "-noclean_files" && $2 != "-reset_run" && $2 != "-help" && $2 != "-h") ]]; then
|
||||
echo -e "ERROR: Unknown option specified '$2' (type \"./atan2_16b.sh -help\" for more information)\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ($2 == "-help" || $2 == "-h") ]]; then
|
||||
usage
|
||||
fi
|
||||
}
|
||||
|
||||
# Script usage
|
||||
usage()
|
||||
{
|
||||
msg="Usage: atan2_16b.sh [-help]\n\
|
||||
Usage: atan2_16b.sh [-lib_map_path]\n\
|
||||
Usage: atan2_16b.sh [-reset_run]\n\
|
||||
Usage: atan2_16b.sh [-noclean_files]\n\n\
|
||||
[-help] -- Print help information for this script\n\n\
|
||||
[-lib_map_path <path>] -- Compiled simulation library directory path. The simulation library is compiled\n\
|
||||
using the compile_simlib tcl command. Please see 'compile_simlib -help' for more information.\n\n\
|
||||
[-reset_run] -- Recreate simulator setup files and library mappings for a clean run. The generated files\n\
|
||||
from the previous run will be removed. If you don't want to remove the simulator generated files, use the\n\
|
||||
-noclean_files switch.\n\n\
|
||||
[-noclean_files] -- Reset previous run, but do not remove simulator generated files from the previous run.\n\n"
|
||||
echo -e $msg
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Launch script
|
||||
run $1 $2
|
||||
+66
@@ -0,0 +1,66 @@
|
||||
vlib work
|
||||
vlib riviera
|
||||
|
||||
vlib riviera/xbip_utils_v3_0_10
|
||||
vlib riviera/c_reg_fd_v12_0_6
|
||||
vlib riviera/xbip_dsp48_wrapper_v3_0_4
|
||||
vlib riviera/xbip_pipe_v3_0_6
|
||||
vlib riviera/xbip_dsp48_addsub_v3_0_6
|
||||
vlib riviera/xbip_addsub_v3_0_6
|
||||
vlib riviera/c_addsub_v12_0_13
|
||||
vlib riviera/xbip_bram18k_v3_0_6
|
||||
vlib riviera/mult_gen_v12_0_15
|
||||
vlib riviera/axi_utils_v2_0_6
|
||||
vlib riviera/cordic_v6_0_15
|
||||
vlib riviera/xil_defaultlib
|
||||
|
||||
vmap xbip_utils_v3_0_10 riviera/xbip_utils_v3_0_10
|
||||
vmap c_reg_fd_v12_0_6 riviera/c_reg_fd_v12_0_6
|
||||
vmap xbip_dsp48_wrapper_v3_0_4 riviera/xbip_dsp48_wrapper_v3_0_4
|
||||
vmap xbip_pipe_v3_0_6 riviera/xbip_pipe_v3_0_6
|
||||
vmap xbip_dsp48_addsub_v3_0_6 riviera/xbip_dsp48_addsub_v3_0_6
|
||||
vmap xbip_addsub_v3_0_6 riviera/xbip_addsub_v3_0_6
|
||||
vmap c_addsub_v12_0_13 riviera/c_addsub_v12_0_13
|
||||
vmap xbip_bram18k_v3_0_6 riviera/xbip_bram18k_v3_0_6
|
||||
vmap mult_gen_v12_0_15 riviera/mult_gen_v12_0_15
|
||||
vmap axi_utils_v2_0_6 riviera/axi_utils_v2_0_6
|
||||
vmap cordic_v6_0_15 riviera/cordic_v6_0_15
|
||||
vmap xil_defaultlib riviera/xil_defaultlib
|
||||
|
||||
vcom -work xbip_utils_v3_0_10 -93 \
|
||||
"../../../ipstatic/hdl/xbip_utils_v3_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work c_reg_fd_v12_0_6 -93 \
|
||||
"../../../ipstatic/hdl/c_reg_fd_v12_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work xbip_dsp48_wrapper_v3_0_4 -93 \
|
||||
"../../../ipstatic/hdl/xbip_dsp48_wrapper_v3_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work xbip_pipe_v3_0_6 -93 \
|
||||
"../../../ipstatic/hdl/xbip_pipe_v3_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work xbip_dsp48_addsub_v3_0_6 -93 \
|
||||
"../../../ipstatic/hdl/xbip_dsp48_addsub_v3_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work xbip_addsub_v3_0_6 -93 \
|
||||
"../../../ipstatic/hdl/xbip_addsub_v3_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work c_addsub_v12_0_13 -93 \
|
||||
"../../../ipstatic/hdl/c_addsub_v12_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work xbip_bram18k_v3_0_6 -93 \
|
||||
"../../../ipstatic/hdl/xbip_bram18k_v3_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work mult_gen_v12_0_15 -93 \
|
||||
"../../../ipstatic/hdl/mult_gen_v12_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work axi_utils_v2_0_6 -93 \
|
||||
"../../../ipstatic/hdl/axi_utils_v2_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work cordic_v6_0_15 -93 \
|
||||
"../../../ipstatic/hdl/cordic_v6_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work xil_defaultlib -93 \
|
||||
"../../../ip/atan2_16b/sim/atan2_16b.vhd" \
|
||||
|
||||
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
xbip_utils_v3_0_vh_rfs.vhd,vhdl,xbip_utils_v3_0_10,../../../ipstatic/hdl/xbip_utils_v3_0_vh_rfs.vhd,
|
||||
c_reg_fd_v12_0_vh_rfs.vhd,vhdl,c_reg_fd_v12_0_6,../../../ipstatic/hdl/c_reg_fd_v12_0_vh_rfs.vhd,
|
||||
xbip_dsp48_wrapper_v3_0_vh_rfs.vhd,vhdl,xbip_dsp48_wrapper_v3_0_4,../../../ipstatic/hdl/xbip_dsp48_wrapper_v3_0_vh_rfs.vhd,
|
||||
xbip_pipe_v3_0_vh_rfs.vhd,vhdl,xbip_pipe_v3_0_6,../../../ipstatic/hdl/xbip_pipe_v3_0_vh_rfs.vhd,
|
||||
xbip_dsp48_addsub_v3_0_vh_rfs.vhd,vhdl,xbip_dsp48_addsub_v3_0_6,../../../ipstatic/hdl/xbip_dsp48_addsub_v3_0_vh_rfs.vhd,
|
||||
xbip_addsub_v3_0_vh_rfs.vhd,vhdl,xbip_addsub_v3_0_6,../../../ipstatic/hdl/xbip_addsub_v3_0_vh_rfs.vhd,
|
||||
c_addsub_v12_0_vh_rfs.vhd,vhdl,c_addsub_v12_0_13,../../../ipstatic/hdl/c_addsub_v12_0_vh_rfs.vhd,
|
||||
xbip_bram18k_v3_0_vh_rfs.vhd,vhdl,xbip_bram18k_v3_0_6,../../../ipstatic/hdl/xbip_bram18k_v3_0_vh_rfs.vhd,
|
||||
mult_gen_v12_0_vh_rfs.vhd,vhdl,mult_gen_v12_0_15,../../../ipstatic/hdl/mult_gen_v12_0_vh_rfs.vhd,
|
||||
axi_utils_v2_0_vh_rfs.vhd,vhdl,axi_utils_v2_0_6,../../../ipstatic/hdl/axi_utils_v2_0_vh_rfs.vhd,
|
||||
cordic_v6_0_vh_rfs.vhd,vhdl,cordic_v6_0_15,../../../ipstatic/hdl/cordic_v6_0_vh_rfs.vhd,
|
||||
atan2_16b.vhd,vhdl,xil_defaultlib,../../../ip/atan2_16b/sim/atan2_16b.vhd,
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
onbreak {quit -force}
|
||||
onerror {quit -force}
|
||||
|
||||
asim -t 1ps +access +r +m+atan2_16b -L xbip_utils_v3_0_10 -L c_reg_fd_v12_0_6 -L xbip_dsp48_wrapper_v3_0_4 -L xbip_pipe_v3_0_6 -L xbip_dsp48_addsub_v3_0_6 -L xbip_addsub_v3_0_6 -L c_addsub_v12_0_13 -L xbip_bram18k_v3_0_6 -L mult_gen_v12_0_15 -L axi_utils_v2_0_6 -L cordic_v6_0_15 -L xil_defaultlib -L secureip -O5 xil_defaultlib.atan2_16b
|
||||
|
||||
do {wave.do}
|
||||
|
||||
view wave
|
||||
view structure
|
||||
|
||||
do {atan2_16b.udo}
|
||||
|
||||
run -all
|
||||
|
||||
endsim
|
||||
|
||||
quit -force
|
||||
+1
@@ -0,0 +1 @@
|
||||
add wave *
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
################################################################################
|
||||
# Vivado (TM) v2019.1.3 (64-bit)
|
||||
#
|
||||
# README.txt: Please read the sections below to understand the steps required to
|
||||
# run the exported script and information about the source files.
|
||||
#
|
||||
# Generated by export_simulation on Sun Mar 19 11:33:54 +0800 2023
|
||||
#
|
||||
################################################################################
|
||||
|
||||
1. How to run the generated simulation script:-
|
||||
|
||||
From the shell prompt in the current directory, issue the following command:-
|
||||
|
||||
./atan2_16b.sh
|
||||
|
||||
This command will launch the 'compile', 'elaborate' and 'simulate' functions
|
||||
implemented in the script file for the 3-step flow. These functions are called
|
||||
from the main 'run' function in the script file.
|
||||
|
||||
The 'run' function first executes the 'setup' function, the purpose of which is to
|
||||
create simulator specific setup files, create design library mappings and library
|
||||
directories and copy 'glbl.v' from the Vivado software install location into the
|
||||
current directory.
|
||||
|
||||
The 'setup' function is also used for removing the simulator generated data in
|
||||
order to reset the current directory to the original state when export_simulation
|
||||
was launched from Vivado. This generated data can be removed by specifying the
|
||||
'-reset_run' switch to the './atan2_16b.sh' script.
|
||||
|
||||
./atan2_16b.sh -reset_run
|
||||
|
||||
To keep the generated data from the previous run but regenerate the setup files and
|
||||
library directories, use the '-noclean_files' switch.
|
||||
|
||||
./atan2_16b.sh -noclean_files
|
||||
|
||||
For more information on the script, please type './atan2_16b.sh -help'.
|
||||
|
||||
2. Additional design information files:-
|
||||
|
||||
export_simulation generates following additional file that can be used for fetching
|
||||
the design files information or for integrating with external custom scripts.
|
||||
|
||||
Name : file_info.txt
|
||||
Purpose: This file contains detail design file information based on the compile order
|
||||
when export_simulation was executed from Vivado. The file contains information
|
||||
about the file type, name, whether it is part of the IP, associated library
|
||||
and the file path information.
|
||||
+261
@@ -0,0 +1,261 @@
|
||||
#!/bin/bash -f
|
||||
#*********************************************************************************************************
|
||||
# Vivado (TM) v2019.1.3 (64-bit)
|
||||
#
|
||||
# Filename : atan2_16b.sh
|
||||
# Simulator : Synopsys Verilog Compiler Simulator
|
||||
# Description : Simulation script for compiling, elaborating and verifying the project source files.
|
||||
# The script will automatically create the design libraries sub-directories in the run
|
||||
# directory, add the library logical mappings in the simulator setup file, create default
|
||||
# 'do/prj' file, execute compilation, elaboration and simulation steps.
|
||||
#
|
||||
# Generated by Vivado on Sun Mar 19 11:33:54 +0800 2023
|
||||
# SW Build 2644227 on Wed Sep 4 09:45:24 MDT 2019
|
||||
#
|
||||
# Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
#
|
||||
# usage: atan2_16b.sh [-help]
|
||||
# usage: atan2_16b.sh [-lib_map_path]
|
||||
# usage: atan2_16b.sh [-noclean_files]
|
||||
# usage: atan2_16b.sh [-reset_run]
|
||||
#
|
||||
# Prerequisite:- To compile and run simulation, you must compile the Xilinx simulation libraries using the
|
||||
# 'compile_simlib' TCL command. For more information about this command, run 'compile_simlib -help' in the
|
||||
# Vivado Tcl Shell. Once the libraries have been compiled successfully, specify the -lib_map_path switch
|
||||
# that points to these libraries and rerun export_simulation. For more information about this switch please
|
||||
# type 'export_simulation -help' in the Tcl shell.
|
||||
#
|
||||
# You can also point to the simulation libraries by either replacing the <SPECIFY_COMPILED_LIB_PATH> in this
|
||||
# script with the compiled library directory path or specify this path with the '-lib_map_path' switch when
|
||||
# executing this script. Please type 'atan2_16b.sh -help' for more information.
|
||||
#
|
||||
# Additional references - 'Xilinx Vivado Design Suite User Guide:Logic simulation (UG900)'
|
||||
#
|
||||
#*********************************************************************************************************
|
||||
|
||||
# Directory path for design sources and include directories (if any) wrt this path
|
||||
ref_dir="."
|
||||
|
||||
# Override directory with 'export_sim_ref_dir' env path value if set in the shell
|
||||
if [[ (! -z "$export_sim_ref_dir") && ($export_sim_ref_dir != "") ]]; then
|
||||
ref_dir="$export_sim_ref_dir"
|
||||
fi
|
||||
|
||||
# Command line options
|
||||
vlogan_opts="-full64"
|
||||
vhdlan_opts="-full64"
|
||||
vcs_elab_opts="-full64 -debug_pp -t ps -licqueue -l elaborate.log"
|
||||
vcs_sim_opts="-ucli -licqueue -l simulate.log"
|
||||
|
||||
# Design libraries
|
||||
design_libs=(xbip_utils_v3_0_10 c_reg_fd_v12_0_6 xbip_dsp48_wrapper_v3_0_4 xbip_pipe_v3_0_6 xbip_dsp48_addsub_v3_0_6 xbip_addsub_v3_0_6 c_addsub_v12_0_13 xbip_bram18k_v3_0_6 mult_gen_v12_0_15 axi_utils_v2_0_6 cordic_v6_0_15 xil_defaultlib)
|
||||
|
||||
# Simulation root library directory
|
||||
sim_lib_dir="vcs_lib"
|
||||
|
||||
# Script info
|
||||
echo -e "atan2_16b.sh - Script generated by export_simulation (Vivado v2019.1.3 (64-bit)-id)\n"
|
||||
|
||||
# Main steps
|
||||
run()
|
||||
{
|
||||
check_args $# $1
|
||||
setup $1 $2
|
||||
compile
|
||||
elaborate
|
||||
simulate
|
||||
}
|
||||
|
||||
# RUN_STEP: <compile>
|
||||
compile()
|
||||
{
|
||||
# Compile design files
|
||||
vhdlan -work xbip_utils_v3_0_10 $vhdlan_opts \
|
||||
"$ref_dir/../../../ipstatic/hdl/xbip_utils_v3_0_vh_rfs.vhd" \
|
||||
2>&1 | tee -a vhdlan.log
|
||||
|
||||
vhdlan -work c_reg_fd_v12_0_6 $vhdlan_opts \
|
||||
"$ref_dir/../../../ipstatic/hdl/c_reg_fd_v12_0_vh_rfs.vhd" \
|
||||
2>&1 | tee -a vhdlan.log
|
||||
|
||||
vhdlan -work xbip_dsp48_wrapper_v3_0_4 $vhdlan_opts \
|
||||
"$ref_dir/../../../ipstatic/hdl/xbip_dsp48_wrapper_v3_0_vh_rfs.vhd" \
|
||||
2>&1 | tee -a vhdlan.log
|
||||
|
||||
vhdlan -work xbip_pipe_v3_0_6 $vhdlan_opts \
|
||||
"$ref_dir/../../../ipstatic/hdl/xbip_pipe_v3_0_vh_rfs.vhd" \
|
||||
2>&1 | tee -a vhdlan.log
|
||||
|
||||
vhdlan -work xbip_dsp48_addsub_v3_0_6 $vhdlan_opts \
|
||||
"$ref_dir/../../../ipstatic/hdl/xbip_dsp48_addsub_v3_0_vh_rfs.vhd" \
|
||||
2>&1 | tee -a vhdlan.log
|
||||
|
||||
vhdlan -work xbip_addsub_v3_0_6 $vhdlan_opts \
|
||||
"$ref_dir/../../../ipstatic/hdl/xbip_addsub_v3_0_vh_rfs.vhd" \
|
||||
2>&1 | tee -a vhdlan.log
|
||||
|
||||
vhdlan -work c_addsub_v12_0_13 $vhdlan_opts \
|
||||
"$ref_dir/../../../ipstatic/hdl/c_addsub_v12_0_vh_rfs.vhd" \
|
||||
2>&1 | tee -a vhdlan.log
|
||||
|
||||
vhdlan -work xbip_bram18k_v3_0_6 $vhdlan_opts \
|
||||
"$ref_dir/../../../ipstatic/hdl/xbip_bram18k_v3_0_vh_rfs.vhd" \
|
||||
2>&1 | tee -a vhdlan.log
|
||||
|
||||
vhdlan -work mult_gen_v12_0_15 $vhdlan_opts \
|
||||
"$ref_dir/../../../ipstatic/hdl/mult_gen_v12_0_vh_rfs.vhd" \
|
||||
2>&1 | tee -a vhdlan.log
|
||||
|
||||
vhdlan -work axi_utils_v2_0_6 $vhdlan_opts \
|
||||
"$ref_dir/../../../ipstatic/hdl/axi_utils_v2_0_vh_rfs.vhd" \
|
||||
2>&1 | tee -a vhdlan.log
|
||||
|
||||
vhdlan -work cordic_v6_0_15 $vhdlan_opts \
|
||||
"$ref_dir/../../../ipstatic/hdl/cordic_v6_0_vh_rfs.vhd" \
|
||||
2>&1 | tee -a vhdlan.log
|
||||
|
||||
vhdlan -work xil_defaultlib $vhdlan_opts \
|
||||
"$ref_dir/../../../ip/atan2_16b/sim/atan2_16b.vhd" \
|
||||
2>&1 | tee -a vhdlan.log
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
# RUN_STEP: <elaborate>
|
||||
elaborate()
|
||||
{
|
||||
vcs $vcs_elab_opts xil_defaultlib.atan2_16b -o atan2_16b_simv
|
||||
}
|
||||
|
||||
# RUN_STEP: <simulate>
|
||||
simulate()
|
||||
{
|
||||
./atan2_16b_simv $vcs_sim_opts -do simulate.do
|
||||
}
|
||||
|
||||
# STEP: setup
|
||||
setup()
|
||||
{
|
||||
case $1 in
|
||||
"-lib_map_path" )
|
||||
if [[ ($2 == "") ]]; then
|
||||
echo -e "ERROR: Simulation library directory path not specified (type \"./atan2_16b.sh -help\" for more information)\n"
|
||||
exit 1
|
||||
fi
|
||||
create_lib_mappings $2
|
||||
;;
|
||||
"-reset_run" )
|
||||
reset_run
|
||||
echo -e "INFO: Simulation run files deleted.\n"
|
||||
exit 0
|
||||
;;
|
||||
"-noclean_files" )
|
||||
# do not remove previous data
|
||||
;;
|
||||
* )
|
||||
create_lib_mappings $2
|
||||
esac
|
||||
|
||||
create_lib_dir
|
||||
|
||||
# Add any setup/initialization commands here:-
|
||||
|
||||
# <user specific commands>
|
||||
|
||||
}
|
||||
|
||||
# Define design library mappings
|
||||
create_lib_mappings()
|
||||
{
|
||||
file="synopsys_sim.setup"
|
||||
if [[ -e $file ]]; then
|
||||
if [[ ($1 == "") ]]; then
|
||||
return
|
||||
else
|
||||
rm -rf $file
|
||||
fi
|
||||
fi
|
||||
|
||||
touch $file
|
||||
|
||||
lib_map_path=""
|
||||
if [[ ($1 != "") ]]; then
|
||||
lib_map_path="$1"
|
||||
fi
|
||||
|
||||
for (( i=0; i<${#design_libs[*]}; i++ )); do
|
||||
lib="${design_libs[i]}"
|
||||
mapping="$lib:$sim_lib_dir/$lib"
|
||||
echo $mapping >> $file
|
||||
done
|
||||
|
||||
if [[ ($lib_map_path != "") ]]; then
|
||||
incl_ref="OTHERS=$lib_map_path/synopsys_sim.setup"
|
||||
echo $incl_ref >> $file
|
||||
fi
|
||||
}
|
||||
|
||||
# Create design library directory paths
|
||||
create_lib_dir()
|
||||
{
|
||||
if [[ -e $sim_lib_dir ]]; then
|
||||
rm -rf $sim_lib_dir
|
||||
fi
|
||||
|
||||
for (( i=0; i<${#design_libs[*]}; i++ )); do
|
||||
lib="${design_libs[i]}"
|
||||
lib_dir="$sim_lib_dir/$lib"
|
||||
if [[ ! -e $lib_dir ]]; then
|
||||
mkdir -p $lib_dir
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Delete generated data from the previous run
|
||||
reset_run()
|
||||
{
|
||||
files_to_remove=(ucli.key atan2_16b_simv vlogan.log vhdlan.log compile.log elaborate.log simulate.log .vlogansetup.env .vlogansetup.args .vcs_lib_lock scirocco_command.log 64 AN.DB csrc atan2_16b_simv.daidir)
|
||||
for (( i=0; i<${#files_to_remove[*]}; i++ )); do
|
||||
file="${files_to_remove[i]}"
|
||||
if [[ -e $file ]]; then
|
||||
rm -rf $file
|
||||
fi
|
||||
done
|
||||
|
||||
create_lib_dir
|
||||
}
|
||||
|
||||
# Check command line arguments
|
||||
check_args()
|
||||
{
|
||||
if [[ ($1 == 1 ) && ($2 != "-lib_map_path" && $2 != "-noclean_files" && $2 != "-reset_run" && $2 != "-help" && $2 != "-h") ]]; then
|
||||
echo -e "ERROR: Unknown option specified '$2' (type \"./atan2_16b.sh -help\" for more information)\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ($2 == "-help" || $2 == "-h") ]]; then
|
||||
usage
|
||||
fi
|
||||
}
|
||||
|
||||
# Script usage
|
||||
usage()
|
||||
{
|
||||
msg="Usage: atan2_16b.sh [-help]\n\
|
||||
Usage: atan2_16b.sh [-lib_map_path]\n\
|
||||
Usage: atan2_16b.sh [-reset_run]\n\
|
||||
Usage: atan2_16b.sh [-noclean_files]\n\n\
|
||||
[-help] -- Print help information for this script\n\n\
|
||||
[-lib_map_path <path>] -- Compiled simulation library directory path. The simulation library is compiled\n\
|
||||
using the compile_simlib tcl command. Please see 'compile_simlib -help' for more information.\n\n\
|
||||
[-reset_run] -- Recreate simulator setup files and library mappings for a clean run. The generated files\n\
|
||||
from the previous run will be removed. If you don't want to remove the simulator generated files, use the\n\
|
||||
-noclean_files switch.\n\n\
|
||||
[-noclean_files] -- Reset previous run, but do not remove simulator generated files from the previous run.\n\n"
|
||||
echo -e $msg
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Launch script
|
||||
run $1 $2
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
xbip_utils_v3_0_vh_rfs.vhd,vhdl,xbip_utils_v3_0_10,../../../ipstatic/hdl/xbip_utils_v3_0_vh_rfs.vhd,
|
||||
c_reg_fd_v12_0_vh_rfs.vhd,vhdl,c_reg_fd_v12_0_6,../../../ipstatic/hdl/c_reg_fd_v12_0_vh_rfs.vhd,
|
||||
xbip_dsp48_wrapper_v3_0_vh_rfs.vhd,vhdl,xbip_dsp48_wrapper_v3_0_4,../../../ipstatic/hdl/xbip_dsp48_wrapper_v3_0_vh_rfs.vhd,
|
||||
xbip_pipe_v3_0_vh_rfs.vhd,vhdl,xbip_pipe_v3_0_6,../../../ipstatic/hdl/xbip_pipe_v3_0_vh_rfs.vhd,
|
||||
xbip_dsp48_addsub_v3_0_vh_rfs.vhd,vhdl,xbip_dsp48_addsub_v3_0_6,../../../ipstatic/hdl/xbip_dsp48_addsub_v3_0_vh_rfs.vhd,
|
||||
xbip_addsub_v3_0_vh_rfs.vhd,vhdl,xbip_addsub_v3_0_6,../../../ipstatic/hdl/xbip_addsub_v3_0_vh_rfs.vhd,
|
||||
c_addsub_v12_0_vh_rfs.vhd,vhdl,c_addsub_v12_0_13,../../../ipstatic/hdl/c_addsub_v12_0_vh_rfs.vhd,
|
||||
xbip_bram18k_v3_0_vh_rfs.vhd,vhdl,xbip_bram18k_v3_0_6,../../../ipstatic/hdl/xbip_bram18k_v3_0_vh_rfs.vhd,
|
||||
mult_gen_v12_0_vh_rfs.vhd,vhdl,mult_gen_v12_0_15,../../../ipstatic/hdl/mult_gen_v12_0_vh_rfs.vhd,
|
||||
axi_utils_v2_0_vh_rfs.vhd,vhdl,axi_utils_v2_0_6,../../../ipstatic/hdl/axi_utils_v2_0_vh_rfs.vhd,
|
||||
cordic_v6_0_vh_rfs.vhd,vhdl,cordic_v6_0_15,../../../ipstatic/hdl/cordic_v6_0_vh_rfs.vhd,
|
||||
atan2_16b.vhd,vhdl,xil_defaultlib,../../../ip/atan2_16b/sim/atan2_16b.vhd,
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
run
|
||||
quit
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
################################################################################
|
||||
# Vivado (TM) v2019.1.3 (64-bit)
|
||||
#
|
||||
# README.txt: Please read the sections below to understand the steps required to
|
||||
# run the exported script and information about the source files.
|
||||
#
|
||||
# Generated by export_simulation on Sun Mar 19 11:33:54 +0800 2023
|
||||
#
|
||||
################################################################################
|
||||
|
||||
1. How to run the generated simulation script:-
|
||||
|
||||
From the shell prompt in the current directory, issue the following command:-
|
||||
|
||||
./atan2_16b.sh
|
||||
|
||||
This command will launch the 'execute' function for the single-step flow. This
|
||||
function is called from the main 'run' function in the script file.
|
||||
|
||||
The 'run' function first executes the 'setup' function, the purpose of which is to
|
||||
create simulator specific setup files, create design library mappings and library
|
||||
directories and copy 'glbl.v' from the Vivado software install location into the
|
||||
current directory.
|
||||
|
||||
The 'setup' function is also used for removing the simulator generated data in
|
||||
order to reset the current directory to the original state when export_simulation
|
||||
was launched from Vivado. This generated data can be removed by specifying the
|
||||
'-reset_run' switch to the './atan2_16b.sh' script.
|
||||
|
||||
./atan2_16b.sh -reset_run
|
||||
|
||||
To keep the generated data from the previous run but regenerate the setup files and
|
||||
library directories, use the '-noclean_files' switch.
|
||||
|
||||
./atan2_16b.sh -noclean_files
|
||||
|
||||
For more information on the script, please type './atan2_16b.sh -help'.
|
||||
|
||||
2. Additional design information files:-
|
||||
|
||||
export_simulation generates following additional file that can be used for fetching
|
||||
the design files information or for integrating with external custom scripts.
|
||||
|
||||
Name : file_info.txt
|
||||
Purpose: This file contains detail design file information based on the compile order
|
||||
when export_simulation was executed from Vivado. The file contains information
|
||||
about the file type, name, whether it is part of the IP, associated library
|
||||
and the file path information.
|
||||
+173
@@ -0,0 +1,173 @@
|
||||
#!/bin/bash -f
|
||||
#*********************************************************************************************************
|
||||
# Vivado (TM) v2019.1.3 (64-bit)
|
||||
#
|
||||
# Filename : atan2_16b.sh
|
||||
# Simulator : Cadence Xcelium Parallel Simulator
|
||||
# Description : Simulation script for compiling, elaborating and verifying the project source files.
|
||||
# The script will automatically create the design libraries sub-directories in the run
|
||||
# directory, add the library logical mappings in the simulator setup file, create default
|
||||
# 'do/prj' file, execute compilation, elaboration and simulation steps.
|
||||
#
|
||||
# Generated by Vivado on Sun Mar 19 11:33:54 +0800 2023
|
||||
# SW Build 2644227 on Wed Sep 4 09:45:24 MDT 2019
|
||||
#
|
||||
# Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
#
|
||||
# usage: atan2_16b.sh [-help]
|
||||
# usage: atan2_16b.sh [-lib_map_path]
|
||||
# usage: atan2_16b.sh [-noclean_files]
|
||||
# usage: atan2_16b.sh [-reset_run]
|
||||
#
|
||||
# Prerequisite:- To compile and run simulation, you must compile the Xilinx simulation libraries using the
|
||||
# 'compile_simlib' TCL command. For more information about this command, run 'compile_simlib -help' in the
|
||||
# Vivado Tcl Shell. Once the libraries have been compiled successfully, specify the -lib_map_path switch
|
||||
# that points to these libraries and rerun export_simulation. For more information about this switch please
|
||||
# type 'export_simulation -help' in the Tcl shell.
|
||||
#
|
||||
# You can also point to the simulation libraries by either replacing the <SPECIFY_COMPILED_LIB_PATH> in this
|
||||
# script with the compiled library directory path or specify this path with the '-lib_map_path' switch when
|
||||
# executing this script. Please type 'atan2_16b.sh -help' for more information.
|
||||
#
|
||||
# Additional references - 'Xilinx Vivado Design Suite User Guide:Logic simulation (UG900)'
|
||||
#
|
||||
#*********************************************************************************************************
|
||||
|
||||
# Directory path for design sources and include directories (if any) wrt this path
|
||||
ref_dir="."
|
||||
|
||||
# Override directory with 'export_sim_ref_dir' env path value if set in the shell
|
||||
if [[ (! -z "$export_sim_ref_dir") && ($export_sim_ref_dir != "") ]]; then
|
||||
ref_dir="$export_sim_ref_dir"
|
||||
fi
|
||||
|
||||
# Set the compiled library directory
|
||||
ref_lib_dir="."
|
||||
|
||||
# Command line options
|
||||
xrun_opts="-64bit -v93 -relax -access +rwc -namemap_mixgen"
|
||||
|
||||
# Design libraries
|
||||
design_libs=(xbip_utils_v3_0_10 c_reg_fd_v12_0_6 xbip_dsp48_wrapper_v3_0_4 xbip_pipe_v3_0_6 xbip_dsp48_addsub_v3_0_6 xbip_addsub_v3_0_6 c_addsub_v12_0_13 xbip_bram18k_v3_0_6 mult_gen_v12_0_15 axi_utils_v2_0_6 cordic_v6_0_15 xil_defaultlib)
|
||||
|
||||
# Simulation root library directory
|
||||
sim_lib_dir="xcelium_lib"
|
||||
|
||||
# Script info
|
||||
echo -e "atan2_16b.sh - Script generated by export_simulation (Vivado v2019.1.3 (64-bit)-id)\n"
|
||||
|
||||
# Main steps
|
||||
run()
|
||||
{
|
||||
check_args $# $1
|
||||
setup $1 $2
|
||||
execute
|
||||
}
|
||||
|
||||
# RUN_STEP: <execute>
|
||||
execute()
|
||||
{
|
||||
xrun $xrun_opts \
|
||||
-reflib "$ref_lib_dir/unisim:unisim" \
|
||||
-reflib "$ref_lib_dir/unisims_ver:unisims_ver" \
|
||||
-reflib "$ref_lib_dir/secureip:secureip" \
|
||||
-reflib "$ref_lib_dir/unimacro:unimacro" \
|
||||
-reflib "$ref_lib_dir/unimacro_ver:unimacro_ver" \
|
||||
-top xil_defaultlib.atan2_16b \
|
||||
-f run.f
|
||||
}
|
||||
|
||||
# STEP: setup
|
||||
setup()
|
||||
{
|
||||
case $1 in
|
||||
"-lib_map_path" )
|
||||
if [[ ($2 == "") ]]; then
|
||||
echo -e "ERROR: Simulation library directory path not specified (type \"./atan2_16b.sh -help\" for more information)\n"
|
||||
exit 1
|
||||
else
|
||||
ref_lib_dir=$2
|
||||
fi
|
||||
;;
|
||||
"-reset_run" )
|
||||
reset_run
|
||||
echo -e "INFO: Simulation run files deleted.\n"
|
||||
exit 0
|
||||
;;
|
||||
"-noclean_files" )
|
||||
# do not remove previous data
|
||||
;;
|
||||
* )
|
||||
esac
|
||||
|
||||
create_lib_dir
|
||||
|
||||
# Add any setup/initialization commands here:-
|
||||
|
||||
# <user specific commands>
|
||||
|
||||
}
|
||||
|
||||
# Create design library directory paths
|
||||
create_lib_dir()
|
||||
{
|
||||
if [[ -e $sim_lib_dir ]]; then
|
||||
rm -rf $sim_lib_dir
|
||||
fi
|
||||
|
||||
for (( i=0; i<${#design_libs[*]}; i++ )); do
|
||||
lib="${design_libs[i]}"
|
||||
lib_dir="$sim_lib_dir/$lib"
|
||||
if [[ ! -e $lib_dir ]]; then
|
||||
mkdir -p $lib_dir
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Delete generated data from the previous run
|
||||
reset_run()
|
||||
{
|
||||
files_to_remove=(xmsim.key xrun.key xrun.log waves.shm xrun.history .simvision xcelium.d xcelium)
|
||||
for (( i=0; i<${#files_to_remove[*]}; i++ )); do
|
||||
file="${files_to_remove[i]}"
|
||||
if [[ -e $file ]]; then
|
||||
rm -rf $file
|
||||
fi
|
||||
done
|
||||
|
||||
create_lib_dir
|
||||
}
|
||||
|
||||
# Check command line arguments
|
||||
check_args()
|
||||
{
|
||||
if [[ ($1 == 1 ) && ($2 != "-lib_map_path" && $2 != "-noclean_files" && $2 != "-reset_run" && $2 != "-help" && $2 != "-h") ]]; then
|
||||
echo -e "ERROR: Unknown option specified '$2' (type \"./atan2_16b.sh -help\" for more information)\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ($2 == "-help" || $2 == "-h") ]]; then
|
||||
usage
|
||||
fi
|
||||
}
|
||||
|
||||
# Script usage
|
||||
usage()
|
||||
{
|
||||
msg="Usage: atan2_16b.sh [-help]\n\
|
||||
Usage: atan2_16b.sh [-lib_map_path]\n\
|
||||
Usage: atan2_16b.sh [-reset_run]\n\
|
||||
Usage: atan2_16b.sh [-noclean_files]\n\n\
|
||||
[-help] -- Print help information for this script\n\n\
|
||||
[-lib_map_path <path>] -- Compiled simulation library directory path. The simulation library is compiled\n\
|
||||
using the compile_simlib tcl command. Please see 'compile_simlib -help' for more information.\n\n\
|
||||
[-reset_run] -- Recreate simulator setup files and library mappings for a clean run. The generated files\n\
|
||||
from the previous run will be removed. If you don't want to remove the simulator generated files, use the\n\
|
||||
-noclean_files switch.\n\n\
|
||||
[-noclean_files] -- Reset previous run, but do not remove simulator generated files from the previous run.\n\n"
|
||||
echo -e $msg
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Launch script
|
||||
run $1 $2
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
xbip_utils_v3_0_vh_rfs.vhd,vhdl,xbip_utils_v3_0_10,../../../ipstatic/hdl/xbip_utils_v3_0_vh_rfs.vhd,
|
||||
c_reg_fd_v12_0_vh_rfs.vhd,vhdl,c_reg_fd_v12_0_6,../../../ipstatic/hdl/c_reg_fd_v12_0_vh_rfs.vhd,
|
||||
xbip_dsp48_wrapper_v3_0_vh_rfs.vhd,vhdl,xbip_dsp48_wrapper_v3_0_4,../../../ipstatic/hdl/xbip_dsp48_wrapper_v3_0_vh_rfs.vhd,
|
||||
xbip_pipe_v3_0_vh_rfs.vhd,vhdl,xbip_pipe_v3_0_6,../../../ipstatic/hdl/xbip_pipe_v3_0_vh_rfs.vhd,
|
||||
xbip_dsp48_addsub_v3_0_vh_rfs.vhd,vhdl,xbip_dsp48_addsub_v3_0_6,../../../ipstatic/hdl/xbip_dsp48_addsub_v3_0_vh_rfs.vhd,
|
||||
xbip_addsub_v3_0_vh_rfs.vhd,vhdl,xbip_addsub_v3_0_6,../../../ipstatic/hdl/xbip_addsub_v3_0_vh_rfs.vhd,
|
||||
c_addsub_v12_0_vh_rfs.vhd,vhdl,c_addsub_v12_0_13,../../../ipstatic/hdl/c_addsub_v12_0_vh_rfs.vhd,
|
||||
xbip_bram18k_v3_0_vh_rfs.vhd,vhdl,xbip_bram18k_v3_0_6,../../../ipstatic/hdl/xbip_bram18k_v3_0_vh_rfs.vhd,
|
||||
mult_gen_v12_0_vh_rfs.vhd,vhdl,mult_gen_v12_0_15,../../../ipstatic/hdl/mult_gen_v12_0_vh_rfs.vhd,
|
||||
axi_utils_v2_0_vh_rfs.vhd,vhdl,axi_utils_v2_0_6,../../../ipstatic/hdl/axi_utils_v2_0_vh_rfs.vhd,
|
||||
cordic_v6_0_vh_rfs.vhd,vhdl,cordic_v6_0_15,../../../ipstatic/hdl/cordic_v6_0_vh_rfs.vhd,
|
||||
atan2_16b.vhd,vhdl,xil_defaultlib,../../../ip/atan2_16b/sim/atan2_16b.vhd,
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
-makelib xcelium_lib/xbip_utils_v3_0_10 \
|
||||
"../../../ipstatic/hdl/xbip_utils_v3_0_vh_rfs.vhd" \
|
||||
-endlib
|
||||
-makelib xcelium_lib/c_reg_fd_v12_0_6 \
|
||||
"../../../ipstatic/hdl/c_reg_fd_v12_0_vh_rfs.vhd" \
|
||||
-endlib
|
||||
-makelib xcelium_lib/xbip_dsp48_wrapper_v3_0_4 \
|
||||
"../../../ipstatic/hdl/xbip_dsp48_wrapper_v3_0_vh_rfs.vhd" \
|
||||
-endlib
|
||||
-makelib xcelium_lib/xbip_pipe_v3_0_6 \
|
||||
"../../../ipstatic/hdl/xbip_pipe_v3_0_vh_rfs.vhd" \
|
||||
-endlib
|
||||
-makelib xcelium_lib/xbip_dsp48_addsub_v3_0_6 \
|
||||
"../../../ipstatic/hdl/xbip_dsp48_addsub_v3_0_vh_rfs.vhd" \
|
||||
-endlib
|
||||
-makelib xcelium_lib/xbip_addsub_v3_0_6 \
|
||||
"../../../ipstatic/hdl/xbip_addsub_v3_0_vh_rfs.vhd" \
|
||||
-endlib
|
||||
-makelib xcelium_lib/c_addsub_v12_0_13 \
|
||||
"../../../ipstatic/hdl/c_addsub_v12_0_vh_rfs.vhd" \
|
||||
-endlib
|
||||
-makelib xcelium_lib/xbip_bram18k_v3_0_6 \
|
||||
"../../../ipstatic/hdl/xbip_bram18k_v3_0_vh_rfs.vhd" \
|
||||
-endlib
|
||||
-makelib xcelium_lib/mult_gen_v12_0_15 \
|
||||
"../../../ipstatic/hdl/mult_gen_v12_0_vh_rfs.vhd" \
|
||||
-endlib
|
||||
-makelib xcelium_lib/axi_utils_v2_0_6 \
|
||||
"../../../ipstatic/hdl/axi_utils_v2_0_vh_rfs.vhd" \
|
||||
-endlib
|
||||
-makelib xcelium_lib/cordic_v6_0_15 \
|
||||
"../../../ipstatic/hdl/cordic_v6_0_vh_rfs.vhd" \
|
||||
-endlib
|
||||
-makelib xcelium_lib/xil_defaultlib \
|
||||
"../../../ip/atan2_16b/sim/atan2_16b.vhd" \
|
||||
-endlib
|
||||
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
################################################################################
|
||||
# Vivado (TM) v2019.1.3 (64-bit)
|
||||
#
|
||||
# README.txt: Please read the sections below to understand the steps required to
|
||||
# run the exported script and information about the source files.
|
||||
#
|
||||
# Generated by export_simulation on Sun Mar 19 11:33:54 +0800 2023
|
||||
#
|
||||
################################################################################
|
||||
|
||||
1. How to run the generated simulation script:-
|
||||
|
||||
From the shell prompt in the current directory, issue the following command:-
|
||||
|
||||
./atan2_16b.sh
|
||||
|
||||
This command will launch the 'compile', 'elaborate' and 'simulate' functions
|
||||
implemented in the script file for the 3-step flow. These functions are called
|
||||
from the main 'run' function in the script file.
|
||||
|
||||
The 'run' function first executes the 'setup' function, the purpose of which is to
|
||||
create simulator specific setup files, create design library mappings and library
|
||||
directories and copy 'glbl.v' from the Vivado software install location into the
|
||||
current directory.
|
||||
|
||||
The 'setup' function is also used for removing the simulator generated data in
|
||||
order to reset the current directory to the original state when export_simulation
|
||||
was launched from Vivado. This generated data can be removed by specifying the
|
||||
'-reset_run' switch to the './atan2_16b.sh' script.
|
||||
|
||||
./atan2_16b.sh -reset_run
|
||||
|
||||
To keep the generated data from the previous run but regenerate the setup files and
|
||||
library directories, use the '-noclean_files' switch.
|
||||
|
||||
./atan2_16b.sh -noclean_files
|
||||
|
||||
For more information on the script, please type './atan2_16b.sh -help'.
|
||||
|
||||
2. Additional design information files:-
|
||||
|
||||
export_simulation generates following additional file that can be used for fetching
|
||||
the design files information or for integrating with external custom scripts.
|
||||
|
||||
Name : file_info.txt
|
||||
Purpose: This file contains detail design file information based on the compile order
|
||||
when export_simulation was executed from Vivado. The file contains information
|
||||
about the file type, name, whether it is part of the IP, associated library
|
||||
and the file path information.
|
||||
+212
@@ -0,0 +1,212 @@
|
||||
#!/bin/bash -f
|
||||
#*********************************************************************************************************
|
||||
# Vivado (TM) v2019.1.3 (64-bit)
|
||||
#
|
||||
# Filename : atan2_16b.sh
|
||||
# Simulator : Xilinx Vivado Simulator
|
||||
# Description : Simulation script for compiling, elaborating and verifying the project source files.
|
||||
# The script will automatically create the design libraries sub-directories in the run
|
||||
# directory, add the library logical mappings in the simulator setup file, create default
|
||||
# 'do/prj' file, execute compilation, elaboration and simulation steps.
|
||||
#
|
||||
# Generated by Vivado on Sun Mar 19 11:33:54 +0800 2023
|
||||
# SW Build 2644227 on Wed Sep 4 09:45:24 MDT 2019
|
||||
#
|
||||
# Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
#
|
||||
# usage: atan2_16b.sh [-help]
|
||||
# usage: atan2_16b.sh [-lib_map_path]
|
||||
# usage: atan2_16b.sh [-noclean_files]
|
||||
# usage: atan2_16b.sh [-reset_run]
|
||||
#
|
||||
#*********************************************************************************************************
|
||||
|
||||
# Command line options
|
||||
xv_boost_lib_path=C:/Xilinx/Vivado/2019.1/tps/boost_1_64_0
|
||||
xvhdl_opts="--relax"
|
||||
|
||||
|
||||
# Script info
|
||||
echo -e "atan2_16b.sh - Script generated by export_simulation (Vivado v2019.1.3 (64-bit)-id)\n"
|
||||
|
||||
# Main steps
|
||||
run()
|
||||
{
|
||||
check_args $# $1
|
||||
setup $1 $2
|
||||
compile
|
||||
elaborate
|
||||
simulate
|
||||
}
|
||||
|
||||
# RUN_STEP: <compile>
|
||||
compile()
|
||||
{
|
||||
# Compile design files
|
||||
xvhdl $xvhdl_opts -prj vhdl.prj 2>&1 | tee compile.log
|
||||
|
||||
}
|
||||
|
||||
# RUN_STEP: <elaborate>
|
||||
elaborate()
|
||||
{
|
||||
xelab --relax --debug typical --mt auto -L xbip_utils_v3_0_10 -L c_reg_fd_v12_0_6 -L xbip_dsp48_wrapper_v3_0_4 -L xbip_pipe_v3_0_6 -L xbip_dsp48_addsub_v3_0_6 -L xbip_addsub_v3_0_6 -L c_addsub_v12_0_13 -L xbip_bram18k_v3_0_6 -L mult_gen_v12_0_15 -L axi_utils_v2_0_6 -L cordic_v6_0_15 -L xil_defaultlib -L secureip -L xpm --snapshot atan2_16b xil_defaultlib.atan2_16b -log elaborate.log
|
||||
}
|
||||
|
||||
# RUN_STEP: <simulate>
|
||||
simulate()
|
||||
{
|
||||
xsim atan2_16b -key {Behavioral:sim_1:Functional:atan2_16b} -tclbatch cmd.tcl -log simulate.log
|
||||
}
|
||||
|
||||
# STEP: setup
|
||||
setup()
|
||||
{
|
||||
case $1 in
|
||||
"-lib_map_path" )
|
||||
if [[ ($2 == "") ]]; then
|
||||
echo -e "ERROR: Simulation library directory path not specified (type \"./atan2_16b.sh -help\" for more information)\n"
|
||||
exit 1
|
||||
fi
|
||||
copy_setup_file $2
|
||||
;;
|
||||
"-reset_run" )
|
||||
reset_run
|
||||
echo -e "INFO: Simulation run files deleted.\n"
|
||||
exit 0
|
||||
;;
|
||||
"-noclean_files" )
|
||||
# do not remove previous data
|
||||
;;
|
||||
* )
|
||||
copy_setup_file $2
|
||||
esac
|
||||
|
||||
# Add any setup/initialization commands here:-
|
||||
|
||||
# <user specific commands>
|
||||
|
||||
}
|
||||
|
||||
# Copy xsim.ini file
|
||||
copy_setup_file()
|
||||
{
|
||||
file="xsim.ini"
|
||||
lib_map_path="C:/Xilinx/Vivado/2019.1/data/xsim"
|
||||
if [[ ($1 != "") ]]; then
|
||||
lib_map_path="$1"
|
||||
fi
|
||||
if [[ ($lib_map_path != "") ]]; then
|
||||
src_file="$lib_map_path/$file"
|
||||
if [[ -e $src_file ]]; then
|
||||
cp $src_file .
|
||||
fi
|
||||
|
||||
# Map local design libraries to xsim.ini
|
||||
map_local_libs
|
||||
|
||||
fi
|
||||
}
|
||||
|
||||
# Map local design libraries
|
||||
map_local_libs()
|
||||
{
|
||||
updated_mappings=()
|
||||
local_mappings=()
|
||||
|
||||
# Local design libraries
|
||||
local_libs=()
|
||||
|
||||
if [[ 0 == ${#local_libs[@]} ]]; then
|
||||
return
|
||||
fi
|
||||
|
||||
file="xsim.ini"
|
||||
file_backup="xsim.ini.bak"
|
||||
|
||||
if [[ -e $file ]]; then
|
||||
rm -f $file_backup
|
||||
# Create a backup copy of the xsim.ini file
|
||||
cp $file $file_backup
|
||||
# Read libraries from backup file and search in local library collection
|
||||
while read -r line
|
||||
do
|
||||
IN=$line
|
||||
# Split mapping entry with '=' delimiter to fetch library name and mapping
|
||||
read lib_name mapping <<<$(IFS="="; echo $IN)
|
||||
# If local library found, then construct the local mapping and add to local mapping collection
|
||||
if `echo ${local_libs[@]} | grep -wq $lib_name` ; then
|
||||
line="$lib_name=xsim.dir/$lib_name"
|
||||
local_mappings+=("$lib_name")
|
||||
fi
|
||||
# Add to updated library mapping collection
|
||||
updated_mappings+=("$line")
|
||||
done < "$file_backup"
|
||||
# Append local libraries not found originally from xsim.ini
|
||||
for (( i=0; i<${#local_libs[*]}; i++ )); do
|
||||
lib_name="${local_libs[i]}"
|
||||
if `echo ${local_mappings[@]} | grep -wvq $lib_name` ; then
|
||||
line="$lib_name=xsim.dir/$lib_name"
|
||||
updated_mappings+=("$line")
|
||||
fi
|
||||
done
|
||||
# Write updated mappings in xsim.ini
|
||||
rm -f $file
|
||||
for (( i=0; i<${#updated_mappings[*]}; i++ )); do
|
||||
lib_name="${updated_mappings[i]}"
|
||||
echo $lib_name >> $file
|
||||
done
|
||||
else
|
||||
for (( i=0; i<${#local_libs[*]}; i++ )); do
|
||||
lib_name="${local_libs[i]}"
|
||||
mapping="$lib_name=xsim.dir/$lib_name"
|
||||
echo $mapping >> $file
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
# Delete generated data from the previous run
|
||||
reset_run()
|
||||
{
|
||||
files_to_remove=(xelab.pb xsim.jou xvhdl.log xvlog.log compile.log elaborate.log simulate.log xelab.log xsim.log run.log xvhdl.pb xvlog.pb atan2_16b.wdb xsim.dir)
|
||||
for (( i=0; i<${#files_to_remove[*]}; i++ )); do
|
||||
file="${files_to_remove[i]}"
|
||||
if [[ -e $file ]]; then
|
||||
rm -rf $file
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Check command line arguments
|
||||
check_args()
|
||||
{
|
||||
if [[ ($1 == 1 ) && ($2 != "-lib_map_path" && $2 != "-noclean_files" && $2 != "-reset_run" && $2 != "-help" && $2 != "-h") ]]; then
|
||||
echo -e "ERROR: Unknown option specified '$2' (type \"./atan2_16b.sh -help\" for more information)\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ($2 == "-help" || $2 == "-h") ]]; then
|
||||
usage
|
||||
fi
|
||||
}
|
||||
|
||||
# Script usage
|
||||
usage()
|
||||
{
|
||||
msg="Usage: atan2_16b.sh [-help]\n\
|
||||
Usage: atan2_16b.sh [-lib_map_path]\n\
|
||||
Usage: atan2_16b.sh [-reset_run]\n\
|
||||
Usage: atan2_16b.sh [-noclean_files]\n\n\
|
||||
[-help] -- Print help information for this script\n\n\
|
||||
[-lib_map_path <path>] -- Compiled simulation library directory path. The simulation library is compiled\n\
|
||||
using the compile_simlib tcl command. Please see 'compile_simlib -help' for more information.\n\n\
|
||||
[-reset_run] -- Recreate simulator setup files and library mappings for a clean run. The generated files\n\
|
||||
from the previous run will be removed. If you don't want to remove the simulator generated files, use the\n\
|
||||
-noclean_files switch.\n\n\
|
||||
[-noclean_files] -- Reset previous run, but do not remove simulator generated files from the previous run.\n\n"
|
||||
echo -e $msg
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Launch script
|
||||
run $1 $2
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
set curr_wave [current_wave_config]
|
||||
if { [string length $curr_wave] == 0 } {
|
||||
if { [llength [get_objects]] > 0} {
|
||||
add_wave /
|
||||
set_property needs_save false [current_wave_config]
|
||||
} else {
|
||||
send_msg_id Add_Wave-1 WARNING "No top level signals found. Simulator will start without a wave window. If you want to open a wave window go to 'File->New Waveform Configuration' or type 'create_wave_config' in the TCL console."
|
||||
}
|
||||
}
|
||||
|
||||
run -all
|
||||
quit
|
||||
+1
@@ -0,0 +1 @@
|
||||
--relax --debug typical --mt auto -L xbip_utils_v3_0_10 -L c_reg_fd_v12_0_6 -L xbip_dsp48_wrapper_v3_0_4 -L xbip_pipe_v3_0_6 -L xbip_dsp48_addsub_v3_0_6 -L xbip_addsub_v3_0_6 -L c_addsub_v12_0_13 -L xbip_bram18k_v3_0_6 -L mult_gen_v12_0_15 -L axi_utils_v2_0_6 -L cordic_v6_0_15 -L xil_defaultlib -L secureip -L xpm --snapshot atan2_16b xil_defaultlib.atan2_16b -log elaborate.log
|
||||
+1
@@ -0,0 +1 @@
|
||||
atan2_16b.vhd,vhdl,xil_defaultlib,../../../ip/atan2_16b/sim/atan2_16b.vhd,
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
vhdl xil_defaultlib \
|
||||
"../../../ip/atan2_16b/sim/atan2_16b.vhd" \
|
||||
|
||||
nosort
|
||||
+430
@@ -0,0 +1,430 @@
|
||||
std=$RDI_DATADIR/xsim/vhdl/std
|
||||
ieee=$RDI_DATADIR/xsim/vhdl/ieee
|
||||
ieee_proposed=$RDI_DATADIR/xsim/vhdl/ieee_proposed
|
||||
vl=$RDI_DATADIR/xsim/vhdl/vl
|
||||
synopsys=$RDI_DATADIR/xsim/vhdl/synopsys
|
||||
secureip=$RDI_DATADIR/xsim/verilog/secureip
|
||||
unisim=$RDI_DATADIR/xsim/vhdl/unisim
|
||||
unimacro=$RDI_DATADIR/xsim/vhdl/unimacro
|
||||
unifast=$RDI_DATADIR/xsim/vhdl/unifast
|
||||
unisims_ver=$RDI_DATADIR/xsim/verilog/unisims_ver
|
||||
unimacro_ver=$RDI_DATADIR/xsim/verilog/unimacro_ver
|
||||
unifast_ver=$RDI_DATADIR/xsim/verilog/unifast_ver
|
||||
simprims_ver=$RDI_DATADIR/xsim/verilog/simprims_ver
|
||||
system_cache_v4_0_6=$RDI_DATADIR/xsim/ip/system_cache_v4_0_6
|
||||
bsip_v1_1_0=$RDI_DATADIR/xsim/ip/bsip_v1_1_0
|
||||
g709_rs_decoder_v2_2_8=$RDI_DATADIR/xsim/ip/g709_rs_decoder_v2_2_8
|
||||
xtlm_simple_interconnect_v1_0=$RDI_DATADIR/xsim/ip/xtlm_simple_interconnect_v1_0
|
||||
mipi_dphy_v4_1_4=$RDI_DATADIR/xsim/ip/mipi_dphy_v4_1_4
|
||||
iomodule_v3_1_4=$RDI_DATADIR/xsim/ip/iomodule_v3_1_4
|
||||
ieee802d3_50g_rs_fec_v1_0_11=$RDI_DATADIR/xsim/ip/ieee802d3_50g_rs_fec_v1_0_11
|
||||
common_cpp_v1_0=$RDI_DATADIR/xsim/ip/common_cpp_v1_0
|
||||
lte_fft_v2_1_0=$RDI_DATADIR/xsim/ip/lte_fft_v2_1_0
|
||||
ieee802d3_50g_rs_fec_v2_0_1=$RDI_DATADIR/xsim/ip/ieee802d3_50g_rs_fec_v2_0_1
|
||||
convolution_v9_0_14=$RDI_DATADIR/xsim/ip/convolution_v9_0_14
|
||||
gtwizard_ultrascale_v1_5_4=$RDI_DATADIR/xsim/ip/gtwizard_ultrascale_v1_5_4
|
||||
v_cfa_v7_0_14=$RDI_DATADIR/xsim/ip/v_cfa_v7_0_14
|
||||
axi4svideo_bridge_v1_0_10=$RDI_DATADIR/xsim/ip/axi4svideo_bridge_v1_0_10
|
||||
pci64_v5_0_11=$RDI_DATADIR/xsim/ip/pci64_v5_0_11
|
||||
v_vscaler_v1_0_13=$RDI_DATADIR/xsim/ip/v_vscaler_v1_0_13
|
||||
xbip_accum_v3_0_6=$RDI_DATADIR/xsim/ip/xbip_accum_v3_0_6
|
||||
gigantic_mux=$RDI_DATADIR/xsim/ip/gigantic_mux
|
||||
ethernet_1_10_25g_v2_2_3=$RDI_DATADIR/xsim/ip/ethernet_1_10_25g_v2_2_3
|
||||
zynq_ultra_ps_e_v3_3_0=$RDI_DATADIR/xsim/ip/zynq_ultra_ps_e_v3_3_0
|
||||
v_cresample_v4_0_14=$RDI_DATADIR/xsim/ip/v_cresample_v4_0_14
|
||||
v_dual_splitter_v1_0_9=$RDI_DATADIR/xsim/ip/v_dual_splitter_v1_0_9
|
||||
v_scenechange_v1_0_1=$RDI_DATADIR/xsim/ip/v_scenechange_v1_0_1
|
||||
hdcp_keymngmt_blk_v1_0_0=$RDI_DATADIR/xsim/ip/hdcp_keymngmt_blk_v1_0_0
|
||||
ahblite_axi_bridge_v3_0_14=$RDI_DATADIR/xsim/ip/ahblite_axi_bridge_v3_0_14
|
||||
tri_mode_ethernet_mac_v9_0_14=$RDI_DATADIR/xsim/ip/tri_mode_ethernet_mac_v9_0_14
|
||||
blk_mem_gen_v8_4_3=$RDI_DATADIR/xsim/ip/blk_mem_gen_v8_4_3
|
||||
noc_mc_ddr4_phy_v1_0_0=$RDI_DATADIR/xsim/ip/noc_mc_ddr4_phy_v1_0_0
|
||||
axi_data_fifo_v2_1_18=$RDI_DATADIR/xsim/ip/axi_data_fifo_v2_1_18
|
||||
axi_vip_v1_1_5=$RDI_DATADIR/xsim/ip/axi_vip_v1_1_5
|
||||
ethernet_1_10_25g_v2_0_5=$RDI_DATADIR/xsim/ip/ethernet_1_10_25g_v2_0_5
|
||||
compact_gt_v1_0_5=$RDI_DATADIR/xsim/ip/compact_gt_v1_0_5
|
||||
axi_gpio_v2_0_21=$RDI_DATADIR/xsim/ip/axi_gpio_v2_0_21
|
||||
qdma_v3_0_2=$RDI_DATADIR/xsim/ip/qdma_v3_0_2
|
||||
viterbi_v9_1_11=$RDI_DATADIR/xsim/ip/viterbi_v9_1_11
|
||||
sim_rst_gen_v1_0_2=$RDI_DATADIR/xsim/ip/sim_rst_gen_v1_0_2
|
||||
ba317=$RDI_DATADIR/xsim/ip/ba317
|
||||
xbip_dsp48_wrapper_v3_0_4=$RDI_DATADIR/xsim/ip/xbip_dsp48_wrapper_v3_0_4
|
||||
fifo_generator_v13_2_4=$RDI_DATADIR/xsim/ip/fifo_generator_v13_2_4
|
||||
axi_bram_ctrl_v4_0_14=$RDI_DATADIR/xsim/ip/axi_bram_ctrl_v4_0_14
|
||||
vid_edid_v1_0_0=$RDI_DATADIR/xsim/ip/vid_edid_v1_0_0
|
||||
axi_emc_v3_0_19=$RDI_DATADIR/xsim/ip/axi_emc_v3_0_19
|
||||
cmac_v2_5_1=$RDI_DATADIR/xsim/ip/cmac_v2_5_1
|
||||
floating_point_v7_1_8=$RDI_DATADIR/xsim/ip/floating_point_v7_1_8
|
||||
xbip_addsub_v3_0_6=$RDI_DATADIR/xsim/ip/xbip_addsub_v3_0_6
|
||||
vid_phy_controller_v2_2_3=$RDI_DATADIR/xsim/ip/vid_phy_controller_v2_2_3
|
||||
common_rpc_v1=$RDI_DATADIR/xsim/ip/common_rpc_v1
|
||||
axi_firewall_v1_0_7=$RDI_DATADIR/xsim/ip/axi_firewall_v1_0_7
|
||||
util_vector_logic_v2_0_1=$RDI_DATADIR/xsim/ip/util_vector_logic_v2_0_1
|
||||
axis_accelerator_adapter_v2_1_15=$RDI_DATADIR/xsim/ip/axis_accelerator_adapter_v2_1_15
|
||||
tmr_comparator_v1_0_2=$RDI_DATADIR/xsim/ip/tmr_comparator_v1_0_2
|
||||
sd_fec_v1_0_2=$RDI_DATADIR/xsim/ip/sd_fec_v1_0_2
|
||||
tmr_manager_v1_0_4=$RDI_DATADIR/xsim/ip/tmr_manager_v1_0_4
|
||||
tsn_temac_v1_0_4=$RDI_DATADIR/xsim/ip/tsn_temac_v1_0_4
|
||||
usxgmii_v1_0_5=$RDI_DATADIR/xsim/ip/usxgmii_v1_0_5
|
||||
lte_dl_channel_encoder_v4_0_0=$RDI_DATADIR/xsim/ip/lte_dl_channel_encoder_v4_0_0
|
||||
ai_noc=$RDI_DATADIR/xsim/ip/ai_noc
|
||||
lte_3gpp_mimo_decoder_v3_0_15=$RDI_DATADIR/xsim/ip/lte_3gpp_mimo_decoder_v3_0_15
|
||||
v_uhdsdi_audio_v1_0_0=$RDI_DATADIR/xsim/ip/v_uhdsdi_audio_v1_0_0
|
||||
axi4stream_vip_v1_1_5=$RDI_DATADIR/xsim/ip/axi4stream_vip_v1_1_5
|
||||
cmac_usplus_v2_4_5=$RDI_DATADIR/xsim/ip/cmac_usplus_v2_4_5
|
||||
etrnic_v1_1_2=$RDI_DATADIR/xsim/ip/etrnic_v1_1_2
|
||||
floating_point_v7_0_16=$RDI_DATADIR/xsim/ip/floating_point_v7_0_16
|
||||
axi_dma_v7_1_20=$RDI_DATADIR/xsim/ip/axi_dma_v7_1_20
|
||||
jtag_axi=$RDI_DATADIR/xsim/ip/jtag_axi
|
||||
axi_traffic_gen_v3_0_5=$RDI_DATADIR/xsim/ip/axi_traffic_gen_v3_0_5
|
||||
emb_mem_gen_v1_0_1=$RDI_DATADIR/xsim/ip/emb_mem_gen_v1_0_1
|
||||
axi_amm_bridge_v1_0_9=$RDI_DATADIR/xsim/ip/axi_amm_bridge_v1_0_9
|
||||
axi_datamover_v5_1_21=$RDI_DATADIR/xsim/ip/axi_datamover_v5_1_21
|
||||
v_axi4s_vid_out_v4_0_10=$RDI_DATADIR/xsim/ip/v_axi4s_vid_out_v4_0_10
|
||||
jesd204_v7_2_6=$RDI_DATADIR/xsim/ip/jesd204_v7_2_6
|
||||
v_letterbox_v1_0_13=$RDI_DATADIR/xsim/ip/v_letterbox_v1_0_13
|
||||
interlaken_v2_4_3=$RDI_DATADIR/xsim/ip/interlaken_v2_4_3
|
||||
uhdsdi_gt_v2_0_0=$RDI_DATADIR/xsim/ip/uhdsdi_gt_v2_0_0
|
||||
axi_master_burst_v2_0_7=$RDI_DATADIR/xsim/ip/axi_master_burst_v2_0_7
|
||||
rst_vip_v1_0_3=$RDI_DATADIR/xsim/ip/rst_vip_v1_0_3
|
||||
audio_formatter_v1_0_1=$RDI_DATADIR/xsim/ip/audio_formatter_v1_0_1
|
||||
lte_3gpp_channel_estimator_v2_0_16=$RDI_DATADIR/xsim/ip/lte_3gpp_channel_estimator_v2_0_16
|
||||
v_tc_v6_1_13=$RDI_DATADIR/xsim/ip/v_tc_v6_1_13
|
||||
g709_fec_v2_3_5=$RDI_DATADIR/xsim/ip/g709_fec_v2_3_5
|
||||
xbip_dsp48_acc_v3_0_6=$RDI_DATADIR/xsim/ip/xbip_dsp48_acc_v3_0_6
|
||||
axi_chip2chip_v5_0_6=$RDI_DATADIR/xsim/ip/axi_chip2chip_v5_0_6
|
||||
fc32_rs_fec_v1_0_11=$RDI_DATADIR/xsim/ip/fc32_rs_fec_v1_0_11
|
||||
v_mix_v3_0_3=$RDI_DATADIR/xsim/ip/v_mix_v3_0_3
|
||||
multi_channel_25g_rs_fec_v1_0_5=$RDI_DATADIR/xsim/ip/multi_channel_25g_rs_fec_v1_0_5
|
||||
in_system_ibert_v1_0_9=$RDI_DATADIR/xsim/ip/in_system_ibert_v1_0_9
|
||||
ethernet_1_10_25g_v2_1_4=$RDI_DATADIR/xsim/ip/ethernet_1_10_25g_v2_1_4
|
||||
axis_broadcaster_v1_1_18=$RDI_DATADIR/xsim/ip/axis_broadcaster_v1_1_18
|
||||
axis_combiner_v1_1_17=$RDI_DATADIR/xsim/ip/axis_combiner_v1_1_17
|
||||
axi_apb_bridge_v3_0_15=$RDI_DATADIR/xsim/ip/axi_apb_bridge_v3_0_15
|
||||
displayport_v9_0_1=$RDI_DATADIR/xsim/ip/displayport_v9_0_1
|
||||
clk_vip_v1_0_2=$RDI_DATADIR/xsim/ip/clk_vip_v1_0_2
|
||||
hdcp22_rng_v1_0_1=$RDI_DATADIR/xsim/ip/hdcp22_rng_v1_0_1
|
||||
axi_register_slice_v2_1_19=$RDI_DATADIR/xsim/ip/axi_register_slice_v2_1_19
|
||||
vid_phy_controller_v2_1_5=$RDI_DATADIR/xsim/ip/vid_phy_controller_v2_1_5
|
||||
picxo=$RDI_DATADIR/xsim/ip/picxo
|
||||
usxgmii_v1_1_0=$RDI_DATADIR/xsim/ip/usxgmii_v1_1_0
|
||||
v_vcresampler_v1_0_13=$RDI_DATADIR/xsim/ip/v_vcresampler_v1_0_13
|
||||
bs_mux_v1_0_0=$RDI_DATADIR/xsim/ip/bs_mux_v1_0_0
|
||||
prc_v1_3_2=$RDI_DATADIR/xsim/ip/prc_v1_3_2
|
||||
axi_usb2_device_v5_0_20=$RDI_DATADIR/xsim/ip/axi_usb2_device_v5_0_20
|
||||
lte_3gpp_mimo_encoder_v4_0_14=$RDI_DATADIR/xsim/ip/lte_3gpp_mimo_encoder_v4_0_14
|
||||
l_ethernet_v2_5_2=$RDI_DATADIR/xsim/ip/l_ethernet_v2_5_2
|
||||
xdma_v4_1_3=$RDI_DATADIR/xsim/ip/xdma_v4_1_3
|
||||
axis_vio_v1_0_0=$RDI_DATADIR/xsim/ip/axis_vio_v1_0_0
|
||||
c_counter_binary_v12_0_13=$RDI_DATADIR/xsim/ip/c_counter_binary_v12_0_13
|
||||
noc_nps_v1_0_0=$RDI_DATADIR/xsim/ip/noc_nps_v1_0_0
|
||||
xbip_dsp48_macro_v3_0_17=$RDI_DATADIR/xsim/ip/xbip_dsp48_macro_v3_0_17
|
||||
c_accum_v12_0_13=$RDI_DATADIR/xsim/ip/c_accum_v12_0_13
|
||||
xbip_multadd_v3_0_14=$RDI_DATADIR/xsim/ip/xbip_multadd_v3_0_14
|
||||
axi_uartlite_v2_0_23=$RDI_DATADIR/xsim/ip/axi_uartlite_v2_0_23
|
||||
noc_nidb_v1_0_0=$RDI_DATADIR/xsim/ip/noc_nidb_v1_0_0
|
||||
axi_intc_v4_1_13=$RDI_DATADIR/xsim/ip/axi_intc_v4_1_13
|
||||
i2s_transmitter_v1_0_3=$RDI_DATADIR/xsim/ip/i2s_transmitter_v1_0_3
|
||||
pc_cfr_v6_0_8=$RDI_DATADIR/xsim/ip/pc_cfr_v6_0_8
|
||||
mutex_v2_1_10=$RDI_DATADIR/xsim/ip/mutex_v2_1_10
|
||||
c_reg_fd_v12_0_6=$RDI_DATADIR/xsim/ip/c_reg_fd_v12_0_6
|
||||
sid_v8_0_14=$RDI_DATADIR/xsim/ip/sid_v8_0_14
|
||||
fir_compiler_v5_2_6=$RDI_DATADIR/xsim/ip/fir_compiler_v5_2_6
|
||||
quadsgmii_v3_4_6=$RDI_DATADIR/xsim/ip/quadsgmii_v3_4_6
|
||||
microblaze_v11_0_1=$RDI_DATADIR/xsim/ip/microblaze_v11_0_1
|
||||
lib_bmg_v1_0_12=$RDI_DATADIR/xsim/ip/lib_bmg_v1_0_12
|
||||
dds_compiler_v6_0_18=$RDI_DATADIR/xsim/ip/dds_compiler_v6_0_18
|
||||
me_pl_v1_0=$RDI_DATADIR/xsim/ip/me_pl_v1_0
|
||||
gtwizard_ultrascale_v1_7_6=$RDI_DATADIR/xsim/ip/gtwizard_ultrascale_v1_7_6
|
||||
axis_clock_converter_v1_1_20=$RDI_DATADIR/xsim/ip/axis_clock_converter_v1_1_20
|
||||
nvmeha_v1_0_0=$RDI_DATADIR/xsim/ip/nvmeha_v1_0_0
|
||||
tmr_inject_v1_0_3=$RDI_DATADIR/xsim/ip/tmr_inject_v1_0_3
|
||||
axi_mcdma_v1_1_0=$RDI_DATADIR/xsim/ip/axi_mcdma_v1_1_0
|
||||
axi_hwicap_v3_0_23=$RDI_DATADIR/xsim/ip/axi_hwicap_v3_0_23
|
||||
v_vid_sdi_tx_bridge_v2_0_0=$RDI_DATADIR/xsim/ip/v_vid_sdi_tx_bridge_v2_0_0
|
||||
v_hdmi_tx_v3_0_0=$RDI_DATADIR/xsim/ip/v_hdmi_tx_v3_0_0
|
||||
canfd_v2_0_1=$RDI_DATADIR/xsim/ip/canfd_v2_0_1
|
||||
gig_ethernet_pcs_pma_v16_1_6=$RDI_DATADIR/xsim/ip/gig_ethernet_pcs_pma_v16_1_6
|
||||
lib_pkg_v1_0_2=$RDI_DATADIR/xsim/ip/lib_pkg_v1_0_2
|
||||
ieee802d3_rs_fec_v2_0_5=$RDI_DATADIR/xsim/ip/ieee802d3_rs_fec_v2_0_5
|
||||
ibert_lib_v1_0_6=$RDI_DATADIR/xsim/ip/ibert_lib_v1_0_6
|
||||
high_speed_selectio_wiz_v3_4_1=$RDI_DATADIR/xsim/ip/high_speed_selectio_wiz_v3_4_1
|
||||
xbip_dsp48_addsub_v3_0_6=$RDI_DATADIR/xsim/ip/xbip_dsp48_addsub_v3_0_6
|
||||
fec_5g_common_v1_0_1=$RDI_DATADIR/xsim/ip/fec_5g_common_v1_0_1
|
||||
tmr_voter_v1_0_2=$RDI_DATADIR/xsim/ip/tmr_voter_v1_0_2
|
||||
hdmi_gt_controller_v1_0_0=$RDI_DATADIR/xsim/ip/hdmi_gt_controller_v1_0_0
|
||||
axi_traffic_gen_v2_0_20=$RDI_DATADIR/xsim/ip/axi_traffic_gen_v2_0_20
|
||||
flexo_100g_rs_fec_v1_0_11=$RDI_DATADIR/xsim/ip/flexo_100g_rs_fec_v1_0_11
|
||||
v_smpte_uhdsdi_v1_0_7=$RDI_DATADIR/xsim/ip/v_smpte_uhdsdi_v1_0_7
|
||||
xbip_dsp48_multacc_v3_0_6=$RDI_DATADIR/xsim/ip/xbip_dsp48_multacc_v3_0_6
|
||||
fit_timer_v2_0_10=$RDI_DATADIR/xsim/ip/fit_timer_v2_0_10
|
||||
ieee802d3_rs_fec_v1_0_15=$RDI_DATADIR/xsim/ip/ieee802d3_rs_fec_v1_0_15
|
||||
axis_subset_converter_v1_1_19=$RDI_DATADIR/xsim/ip/axis_subset_converter_v1_1_19
|
||||
noc_nmu_v1_0_0=$RDI_DATADIR/xsim/ip/noc_nmu_v1_0_0
|
||||
duc_ddc_compiler_v3_0_15=$RDI_DATADIR/xsim/ip/duc_ddc_compiler_v3_0_15
|
||||
dist_mem_gen_v8_0_13=$RDI_DATADIR/xsim/ip/dist_mem_gen_v8_0_13
|
||||
mammoth_transcode_v1_0_0=$RDI_DATADIR/xsim/ip/mammoth_transcode_v1_0_0
|
||||
ieee802d3_200g_rs_fec_v1_0_7=$RDI_DATADIR/xsim/ip/ieee802d3_200g_rs_fec_v1_0_7
|
||||
sim_xdma_sc_v1=$RDI_DATADIR/xsim/ip/sim_xdma_sc_v1
|
||||
mrmac_v1_0_0=$RDI_DATADIR/xsim/ip/mrmac_v1_0_0
|
||||
sem_ultra_v3_1_11=$RDI_DATADIR/xsim/ip/sem_ultra_v3_1_11
|
||||
v_tpg_v8_0_1=$RDI_DATADIR/xsim/ip/v_tpg_v8_0_1
|
||||
axi_tft_v2_0_22=$RDI_DATADIR/xsim/ip/axi_tft_v2_0_22
|
||||
ecc_v2_0_13=$RDI_DATADIR/xsim/ip/ecc_v2_0_13
|
||||
switch_core_top_v1_0_7=$RDI_DATADIR/xsim/ip/switch_core_top_v1_0_7
|
||||
rama_v1_1_2_lib=$RDI_DATADIR/xsim/ip/rama_v1_1_2_lib
|
||||
v_hcresampler_v1_0_13=$RDI_DATADIR/xsim/ip/v_hcresampler_v1_0_13
|
||||
emb_fifo_gen_v1_0_1=$RDI_DATADIR/xsim/ip/emb_fifo_gen_v1_0_1
|
||||
hdcp_v1_0_3=$RDI_DATADIR/xsim/ip/hdcp_v1_0_3
|
||||
axis_data_fifo_v2_0_1=$RDI_DATADIR/xsim/ip/axis_data_fifo_v2_0_1
|
||||
hdcp22_cipher_dp_v1_0_0=$RDI_DATADIR/xsim/ip/hdcp22_cipher_dp_v1_0_0
|
||||
rwd_tlmmodel_v1=$RDI_DATADIR/xsim/ip/rwd_tlmmodel_v1
|
||||
displayport_v8_1_1=$RDI_DATADIR/xsim/ip/displayport_v8_1_1
|
||||
axi_mmu_v2_1_17=$RDI_DATADIR/xsim/ip/axi_mmu_v2_1_17
|
||||
proc_sys_reset_v5_0_13=$RDI_DATADIR/xsim/ip/proc_sys_reset_v5_0_13
|
||||
pc_cfr_v6_3_0=$RDI_DATADIR/xsim/ip/pc_cfr_v6_3_0
|
||||
v_osd_v6_0_16=$RDI_DATADIR/xsim/ip/v_osd_v6_0_16
|
||||
pci32_v5_0_12=$RDI_DATADIR/xsim/ip/pci32_v5_0_12
|
||||
xfft_v9_0_17=$RDI_DATADIR/xsim/ip/xfft_v9_0_17
|
||||
axi_cdma_v4_1_19=$RDI_DATADIR/xsim/ip/axi_cdma_v4_1_19
|
||||
audio_tpg_v1_0_0=$RDI_DATADIR/xsim/ip/audio_tpg_v1_0_0
|
||||
lib_fifo_v1_0_13=$RDI_DATADIR/xsim/ip/lib_fifo_v1_0_13
|
||||
v_enhance_v8_0_15=$RDI_DATADIR/xsim/ip/v_enhance_v8_0_15
|
||||
axi_clock_converter_v2_1_18=$RDI_DATADIR/xsim/ip/axi_clock_converter_v2_1_18
|
||||
xsdbm_v3_0_0=$RDI_DATADIR/xsim/ip/xsdbm_v3_0_0
|
||||
emc_common_v3_0_5=$RDI_DATADIR/xsim/ip/emc_common_v3_0_5
|
||||
axi_mm2s_mapper_v1_1_18=$RDI_DATADIR/xsim/ip/axi_mm2s_mapper_v1_1_18
|
||||
xfft_v7_2_9=$RDI_DATADIR/xsim/ip/xfft_v7_2_9
|
||||
pl_fileio_v1_0_0=$RDI_DATADIR/xsim/ip/pl_fileio_v1_0_0
|
||||
v_smpte_sdi_v3_0_8=$RDI_DATADIR/xsim/ip/v_smpte_sdi_v3_0_8
|
||||
fir_compiler_v7_2_12=$RDI_DATADIR/xsim/ip/fir_compiler_v7_2_12
|
||||
div_gen_v5_1_15=$RDI_DATADIR/xsim/ip/div_gen_v5_1_15
|
||||
mdm_v3_2_16=$RDI_DATADIR/xsim/ip/mdm_v3_2_16
|
||||
v_axi4s_remap_v1_0_11=$RDI_DATADIR/xsim/ip/v_axi4s_remap_v1_0_11
|
||||
xxv_ethernet_v2_5_3=$RDI_DATADIR/xsim/ip/xxv_ethernet_v2_5_3
|
||||
xlslice_v1_0_2=$RDI_DATADIR/xsim/ip/xlslice_v1_0_2
|
||||
ai_pl_trig=$RDI_DATADIR/xsim/ip/ai_pl_trig
|
||||
remote_port_sc_v4=$RDI_DATADIR/xsim/ip/remote_port_sc_v4
|
||||
pr_axi_shutdown_manager_v1_0_1=$RDI_DATADIR/xsim/ip/pr_axi_shutdown_manager_v1_0_1
|
||||
axi_jtag_v1_0_0=$RDI_DATADIR/xsim/ip/axi_jtag_v1_0_0
|
||||
smartconnect_v1_0=$RDI_DATADIR/xsim/ip/smartconnect_v1_0
|
||||
axi_tg_lib=$RDI_DATADIR/xsim/ip/axi_tg_lib
|
||||
axi_dwidth_converter_v2_1_19=$RDI_DATADIR/xsim/ip/axi_dwidth_converter_v2_1_19
|
||||
xlconstant_v1_1_6=$RDI_DATADIR/xsim/ip/xlconstant_v1_1_6
|
||||
tcc_decoder_3gpplte_v3_0_6=$RDI_DATADIR/xsim/ip/tcc_decoder_3gpplte_v3_0_6
|
||||
mdm_v3_2=$RDI_DATADIR/xsim/ip/mdm_v3_2
|
||||
v_uhdsdi_vidgen_v1_0_1=$RDI_DATADIR/xsim/ip/v_uhdsdi_vidgen_v1_0_1
|
||||
axi_fifo_mm_s_v4_2_1=$RDI_DATADIR/xsim/ip/axi_fifo_mm_s_v4_2_1
|
||||
util_idelay_ctrl_v1_0_1=$RDI_DATADIR/xsim/ip/util_idelay_ctrl_v1_0_1
|
||||
rs_toolbox_v9_0_7=$RDI_DATADIR/xsim/ip/rs_toolbox_v9_0_7
|
||||
v_hdmi_tx_v2_0_0=$RDI_DATADIR/xsim/ip/v_hdmi_tx_v2_0_0
|
||||
dsp_macro_v1_0_0=$RDI_DATADIR/xsim/ip/dsp_macro_v1_0_0
|
||||
pc_cfr_v6_2_2=$RDI_DATADIR/xsim/ip/pc_cfr_v6_2_2
|
||||
axi_timer_v2_0_21=$RDI_DATADIR/xsim/ip/axi_timer_v2_0_21
|
||||
high_speed_selectio_wiz_v3_3_1=$RDI_DATADIR/xsim/ip/high_speed_selectio_wiz_v3_3_1
|
||||
axi_sideband_util_v1_0_3=$RDI_DATADIR/xsim/ip/axi_sideband_util_v1_0_3
|
||||
sim_clk_gen_v1_0_2=$RDI_DATADIR/xsim/ip/sim_clk_gen_v1_0_2
|
||||
gmii_to_rgmii_v4_0_7=$RDI_DATADIR/xsim/ip/gmii_to_rgmii_v4_0_7
|
||||
xsdbs_v1_0_2=$RDI_DATADIR/xsim/ip/xsdbs_v1_0_2
|
||||
high_speed_selectio_wiz_v3_5_1=$RDI_DATADIR/xsim/ip/high_speed_selectio_wiz_v3_5_1
|
||||
axi_msg_v1_0_5=$RDI_DATADIR/xsim/ip/axi_msg_v1_0_5
|
||||
axi_ahblite_bridge_v3_0_16=$RDI_DATADIR/xsim/ip/axi_ahblite_bridge_v3_0_16
|
||||
v_rgb2ycrcb_v7_1_13=$RDI_DATADIR/xsim/ip/v_rgb2ycrcb_v7_1_13
|
||||
v_mix_v4_0_0=$RDI_DATADIR/xsim/ip/v_mix_v4_0_0
|
||||
axi_ethernetlite_v3_0_17=$RDI_DATADIR/xsim/ip/axi_ethernetlite_v3_0_17
|
||||
axi_uart16550_v2_0_21=$RDI_DATADIR/xsim/ip/axi_uart16550_v2_0_21
|
||||
axi_pmon_v1_0_0=$RDI_DATADIR/xsim/ip/axi_pmon_v1_0_0
|
||||
vfb_v1_0_13=$RDI_DATADIR/xsim/ip/vfb_v1_0_13
|
||||
advanced_io_wizard_phy_v1_0_0=$RDI_DATADIR/xsim/ip/advanced_io_wizard_phy_v1_0_0
|
||||
ats_switch_v1_0_2=$RDI_DATADIR/xsim/ip/ats_switch_v1_0_2
|
||||
interrupt_control_v3_1_4=$RDI_DATADIR/xsim/ip/interrupt_control_v3_1_4
|
||||
axi_dbg_hub=$RDI_DATADIR/xsim/ip/axi_dbg_hub
|
||||
cpri_v8_10_3=$RDI_DATADIR/xsim/ip/cpri_v8_10_3
|
||||
c_mux_bus_v12_0_6=$RDI_DATADIR/xsim/ip/c_mux_bus_v12_0_6
|
||||
v_hdmi_rx_v2_0_0=$RDI_DATADIR/xsim/ip/v_hdmi_rx_v2_0_0
|
||||
stm_v1_0=$RDI_DATADIR/xsim/ip/stm_v1_0
|
||||
rld3_pl_v1_0_1=$RDI_DATADIR/xsim/ip/rld3_pl_v1_0_1
|
||||
ltlib_v1_0_0=$RDI_DATADIR/xsim/ip/ltlib_v1_0_0
|
||||
lut_buffer_v2_0_0=$RDI_DATADIR/xsim/ip/lut_buffer_v2_0_0
|
||||
axi_epc_v2_0_22=$RDI_DATADIR/xsim/ip/axi_epc_v2_0_22
|
||||
g709_rs_encoder_v2_2_6=$RDI_DATADIR/xsim/ip/g709_rs_encoder_v2_2_6
|
||||
blk_mem_gen_v8_3_6=$RDI_DATADIR/xsim/ip/blk_mem_gen_v8_3_6
|
||||
tmr_sem_v1_0_9=$RDI_DATADIR/xsim/ip/tmr_sem_v1_0_9
|
||||
fifo_generator_v13_0_6=$RDI_DATADIR/xsim/ip/fifo_generator_v13_0_6
|
||||
axi_vdma_v6_3_7=$RDI_DATADIR/xsim/ip/axi_vdma_v6_3_7
|
||||
axis_data_fifo_v1_1_20=$RDI_DATADIR/xsim/ip/axis_data_fifo_v1_1_20
|
||||
xilinx_vip=$RDI_DATADIR/xsim/ip/xilinx_vip
|
||||
axi_ethernet_buffer_v2_0_20=$RDI_DATADIR/xsim/ip/axi_ethernet_buffer_v2_0_20
|
||||
rs_encoder_v9_0_15=$RDI_DATADIR/xsim/ip/rs_encoder_v9_0_15
|
||||
axi_infrastructure_v1_1_0=$RDI_DATADIR/xsim/ip/axi_infrastructure_v1_1_0
|
||||
ta_dma_v1_0_3=$RDI_DATADIR/xsim/ip/ta_dma_v1_0_3
|
||||
tcc_encoder_3gpp_v5_0_15=$RDI_DATADIR/xsim/ip/tcc_encoder_3gpp_v5_0_15
|
||||
axi_perf_mon_v5_0_21=$RDI_DATADIR/xsim/ip/axi_perf_mon_v5_0_21
|
||||
noc_sc_v1_0_0=$RDI_DATADIR/xsim/ip/noc_sc_v1_0_0
|
||||
sim_xdma_cpp_v1=$RDI_DATADIR/xsim/ip/sim_xdma_cpp_v1
|
||||
lib_cdc_v1_0_2=$RDI_DATADIR/xsim/ip/lib_cdc_v1_0_2
|
||||
v_csc_v1_0_13=$RDI_DATADIR/xsim/ip/v_csc_v1_0_13
|
||||
shell_utils_msp432_bsl_crc_gen_v1_0_0=$RDI_DATADIR/xsim/ip/shell_utils_msp432_bsl_crc_gen_v1_0_0
|
||||
lte_fft_v2_0_18=$RDI_DATADIR/xsim/ip/lte_fft_v2_0_18
|
||||
gtwizard_ultrascale_v1_6_11=$RDI_DATADIR/xsim/ip/gtwizard_ultrascale_v1_6_11
|
||||
amm_axi_bridge_v1_0_5=$RDI_DATADIR/xsim/ip/amm_axi_bridge_v1_0_5
|
||||
mii_to_rmii_v2_0_21=$RDI_DATADIR/xsim/ip/mii_to_rmii_v2_0_21
|
||||
videoaxi4s_bridge_v1_0_5=$RDI_DATADIR/xsim/ip/videoaxi4s_bridge_v1_0_5
|
||||
audio_clock_recovery_v1_0=$RDI_DATADIR/xsim/ip/audio_clock_recovery_v1_0
|
||||
cmac_v2_4_1=$RDI_DATADIR/xsim/ip/cmac_v2_4_1
|
||||
i2s_receiver_v1_0_3=$RDI_DATADIR/xsim/ip/i2s_receiver_v1_0_3
|
||||
v_sdi_rx_vid_bridge_v2_0_0=$RDI_DATADIR/xsim/ip/v_sdi_rx_vid_bridge_v2_0_0
|
||||
v_demosaic_v1_0_5=$RDI_DATADIR/xsim/ip/v_demosaic_v1_0_5
|
||||
remote_port_c_v4=$RDI_DATADIR/xsim/ip/remote_port_c_v4
|
||||
microblaze_v9_5_4=$RDI_DATADIR/xsim/ip/microblaze_v9_5_4
|
||||
hdcp22_cipher_v1_0_3=$RDI_DATADIR/xsim/ip/hdcp22_cipher_v1_0_3
|
||||
etrnic_v1_0_3=$RDI_DATADIR/xsim/ip/etrnic_v1_0_3
|
||||
xfft_v9_1_2=$RDI_DATADIR/xsim/ip/xfft_v9_1_2
|
||||
ddr4_pl_v1_0_2=$RDI_DATADIR/xsim/ip/ddr4_pl_v1_0_2
|
||||
xbip_counter_v3_0_6=$RDI_DATADIR/xsim/ip/xbip_counter_v3_0_6
|
||||
cmac_usplus_v2_5_3=$RDI_DATADIR/xsim/ip/cmac_usplus_v2_5_3
|
||||
jesd204c_v4_1_1=$RDI_DATADIR/xsim/ip/jesd204c_v4_1_1
|
||||
debug_tcp_server_v1=$RDI_DATADIR/xsim/ip/debug_tcp_server_v1
|
||||
axis_protocol_checker_v2_0_3=$RDI_DATADIR/xsim/ip/axis_protocol_checker_v2_0_3
|
||||
v_frmbuf_wr_v2_1_2=$RDI_DATADIR/xsim/ip/v_frmbuf_wr_v2_1_2
|
||||
v_vid_in_axi4s_v4_0_9=$RDI_DATADIR/xsim/ip/v_vid_in_axi4s_v4_0_9
|
||||
mipi_csi2_tx_ctrl_v1_0_4=$RDI_DATADIR/xsim/ip/mipi_csi2_tx_ctrl_v1_0_4
|
||||
lte_dl_channel_encoder_v3_0_15=$RDI_DATADIR/xsim/ip/lte_dl_channel_encoder_v3_0_15
|
||||
axi_protocol_converter_v2_1_19=$RDI_DATADIR/xsim/ip/axi_protocol_converter_v2_1_19
|
||||
xtlm_trace_model_v1_0=$RDI_DATADIR/xsim/ip/xtlm_trace_model_v1_0
|
||||
clk_gen_sim_v1_0_0=$RDI_DATADIR/xsim/ip/clk_gen_sim_v1_0_0
|
||||
axi_tg_sc_v1_0=$RDI_DATADIR/xsim/ip/axi_tg_sc_v1_0
|
||||
microblaze_v10_0_7=$RDI_DATADIR/xsim/ip/microblaze_v10_0_7
|
||||
cmpy_v6_0_17=$RDI_DATADIR/xsim/ip/cmpy_v6_0_17
|
||||
cmac_v2_3_5=$RDI_DATADIR/xsim/ip/cmac_v2_3_5
|
||||
ieee802d3_400g_rs_fec_v1_0_7=$RDI_DATADIR/xsim/ip/ieee802d3_400g_rs_fec_v1_0_7
|
||||
xxv_ethernet_v2_4_5=$RDI_DATADIR/xsim/ip/xxv_ethernet_v2_4_5
|
||||
axi_timebase_wdt_v3_0_11=$RDI_DATADIR/xsim/ip/axi_timebase_wdt_v3_0_11
|
||||
tcc_decoder_3gppmm_v2_0_18=$RDI_DATADIR/xsim/ip/tcc_decoder_3gppmm_v2_0_18
|
||||
v_deinterlacer_v5_0_13=$RDI_DATADIR/xsim/ip/v_deinterlacer_v5_0_13
|
||||
dft_v4_0_16=$RDI_DATADIR/xsim/ip/dft_v4_0_16
|
||||
axi_fifo_mm_s_v4_1_16=$RDI_DATADIR/xsim/ip/axi_fifo_mm_s_v4_1_16
|
||||
processing_system7_vip_v1_0_7=$RDI_DATADIR/xsim/ip/processing_system7_vip_v1_0_7
|
||||
g975_efec_i7_v2_0_18=$RDI_DATADIR/xsim/ip/g975_efec_i7_v2_0_18
|
||||
rs_decoder_v9_0_16=$RDI_DATADIR/xsim/ip/rs_decoder_v9_0_16
|
||||
c_shift_ram_v12_0_13=$RDI_DATADIR/xsim/ip/c_shift_ram_v12_0_13
|
||||
displayport_v7_0_11=$RDI_DATADIR/xsim/ip/displayport_v7_0_11
|
||||
v_hdmi_rx_v3_0_0=$RDI_DATADIR/xsim/ip/v_hdmi_rx_v3_0_0
|
||||
v_deinterlacer_v4_0_12=$RDI_DATADIR/xsim/ip/v_deinterlacer_v4_0_12
|
||||
sem_v4_1_12=$RDI_DATADIR/xsim/ip/sem_v4_1_12
|
||||
xaui_v12_3_6=$RDI_DATADIR/xsim/ip/xaui_v12_3_6
|
||||
ten_gig_eth_mac_v15_1_7=$RDI_DATADIR/xsim/ip/ten_gig_eth_mac_v15_1_7
|
||||
oddr_v1_0_0=$RDI_DATADIR/xsim/ip/oddr_v1_0_0
|
||||
c_addsub_v12_0_13=$RDI_DATADIR/xsim/ip/c_addsub_v12_0_13
|
||||
v_ccm_v6_0_15=$RDI_DATADIR/xsim/ip/v_ccm_v6_0_15
|
||||
zynq_ultra_ps_e_vip_v1_0_5=$RDI_DATADIR/xsim/ip/zynq_ultra_ps_e_vip_v1_0_5
|
||||
cic_compiler_v4_0_14=$RDI_DATADIR/xsim/ip/cic_compiler_v4_0_14
|
||||
c_mux_bit_v12_0_6=$RDI_DATADIR/xsim/ip/c_mux_bit_v12_0_6
|
||||
axi_memory_init_v1_0_0=$RDI_DATADIR/xsim/ip/axi_memory_init_v1_0_0
|
||||
pr_decoupler_v1_0_7=$RDI_DATADIR/xsim/ip/pr_decoupler_v1_0_7
|
||||
timer_sync_1588_v1_2_4=$RDI_DATADIR/xsim/ip/timer_sync_1588_v1_2_4
|
||||
lte_pucch_receiver_v2_0_16=$RDI_DATADIR/xsim/ip/lte_pucch_receiver_v2_0_16
|
||||
zynq_ultra_ps_e_v3_2_3=$RDI_DATADIR/xsim/ip/zynq_ultra_ps_e_v3_2_3
|
||||
v_gamma_lut_v1_0_5=$RDI_DATADIR/xsim/ip/v_gamma_lut_v1_0_5
|
||||
bs_switch_v1_0_0=$RDI_DATADIR/xsim/ip/bs_switch_v1_0_0
|
||||
pcie_jtag_v1_0_0=$RDI_DATADIR/xsim/ip/pcie_jtag_v1_0_0
|
||||
tcc_encoder_3gpplte_v4_0_15=$RDI_DATADIR/xsim/ip/tcc_encoder_3gpplte_v4_0_15
|
||||
polar_v1_0_3=$RDI_DATADIR/xsim/ip/polar_v1_0_3
|
||||
rxaui_v4_4_6=$RDI_DATADIR/xsim/ip/rxaui_v4_4_6
|
||||
xbip_bram18k_v3_0_6=$RDI_DATADIR/xsim/ip/xbip_bram18k_v3_0_6
|
||||
v_gamma_v7_0_15=$RDI_DATADIR/xsim/ip/v_gamma_v7_0_15
|
||||
ernic_v1_0_1=$RDI_DATADIR/xsim/ip/ernic_v1_0_1
|
||||
high_speed_selectio_wiz_v3_2_3=$RDI_DATADIR/xsim/ip/high_speed_selectio_wiz_v3_2_3
|
||||
mailbox_v2_1_11=$RDI_DATADIR/xsim/ip/mailbox_v2_1_11
|
||||
video_frame_crc_v1_0_1=$RDI_DATADIR/xsim/ip/video_frame_crc_v1_0_1
|
||||
axi_sg_v4_1_12=$RDI_DATADIR/xsim/ip/axi_sg_v4_1_12
|
||||
ddr4_pl_phy_v1_0_0=$RDI_DATADIR/xsim/ip/ddr4_pl_phy_v1_0_0
|
||||
lmb_bram_if_cntlr_v4_0_16=$RDI_DATADIR/xsim/ip/lmb_bram_if_cntlr_v4_0_16
|
||||
l_ethernet_v2_4_3=$RDI_DATADIR/xsim/ip/l_ethernet_v2_4_3
|
||||
dft_v4_1_1=$RDI_DATADIR/xsim/ip/dft_v4_1_1
|
||||
rld3_pl_phy_v1_0_0=$RDI_DATADIR/xsim/ip/rld3_pl_phy_v1_0_0
|
||||
axi_utils_v2_0_6=$RDI_DATADIR/xsim/ip/axi_utils_v2_0_6
|
||||
v_smpte_uhdsdi_rx_v1_0_0=$RDI_DATADIR/xsim/ip/v_smpte_uhdsdi_rx_v1_0_0
|
||||
stm_v1_0_0=$RDI_DATADIR/xsim/ip/stm_v1_0_0
|
||||
lmb_bram_if_cntlr_v4_0=$RDI_DATADIR/xsim/ip/lmb_bram_if_cntlr_v4_0
|
||||
uhdsdi_gt_v1_0_3=$RDI_DATADIR/xsim/ip/uhdsdi_gt_v1_0_3
|
||||
pc_cfr_v6_1_4=$RDI_DATADIR/xsim/ip/pc_cfr_v6_1_4
|
||||
lmb_v10_v3_0_9=$RDI_DATADIR/xsim/ip/lmb_v10_v3_0_9
|
||||
axis_interconnect_v1_1_17=$RDI_DATADIR/xsim/ip/axis_interconnect_v1_1_17
|
||||
cordic_v6_0_15=$RDI_DATADIR/xsim/ip/cordic_v6_0_15
|
||||
axis_register_slice_v1_1_19=$RDI_DATADIR/xsim/ip/axis_register_slice_v1_1_19
|
||||
axis_switch_v1_1_19=$RDI_DATADIR/xsim/ip/axis_switch_v1_1_19
|
||||
axi_interconnect_v1_7_16=$RDI_DATADIR/xsim/ip/axi_interconnect_v1_7_16
|
||||
mult_gen_v12_0_15=$RDI_DATADIR/xsim/ip/mult_gen_v12_0_15
|
||||
spdif_v2_0_21=$RDI_DATADIR/xsim/ip/spdif_v2_0_21
|
||||
v_hscaler_v1_0_13=$RDI_DATADIR/xsim/ip/v_hscaler_v1_0_13
|
||||
ethernet_1_10_25g_v2_3_3=$RDI_DATADIR/xsim/ip/ethernet_1_10_25g_v2_3_3
|
||||
xbip_pipe_v3_0_6=$RDI_DATADIR/xsim/ip/xbip_pipe_v3_0_6
|
||||
axi_quad_spi_v3_2_18=$RDI_DATADIR/xsim/ip/axi_quad_spi_v3_2_18
|
||||
axi_bram_ctrl_v4_1_1=$RDI_DATADIR/xsim/ip/axi_bram_ctrl_v4_1_1
|
||||
axi_lite_ipif_v3_0_4=$RDI_DATADIR/xsim/ip/axi_lite_ipif_v3_0_4
|
||||
axi_protocol_checker_v2_0_5=$RDI_DATADIR/xsim/ip/axi_protocol_checker_v2_0_5
|
||||
axi_lite_ipif_v3_0=$RDI_DATADIR/xsim/ip/axi_lite_ipif_v3_0
|
||||
mipi_dsi_tx_ctrl_v1_0_7=$RDI_DATADIR/xsim/ip/mipi_dsi_tx_ctrl_v1_0_7
|
||||
ieee802d3_25g_rs_fec_v1_0_13=$RDI_DATADIR/xsim/ip/ieee802d3_25g_rs_fec_v1_0_13
|
||||
aie_xtlm_v1_0_0=$RDI_DATADIR/xsim/ip/aie_xtlm_v1_0_0
|
||||
xtlm=$RDI_DATADIR/xsim/ip/xtlm
|
||||
iomodule_v3_0=$RDI_DATADIR/xsim/ip/iomodule_v3_0
|
||||
ieee802d3_clause74_fec_v1_0_4=$RDI_DATADIR/xsim/ip/ieee802d3_clause74_fec_v1_0_4
|
||||
xlconcat_v2_1_3=$RDI_DATADIR/xsim/ip/xlconcat_v2_1_3
|
||||
perf_axi_tg_v1_0_8=$RDI_DATADIR/xsim/ip/perf_axi_tg_v1_0_8
|
||||
axi_crossbar_v2_1_20=$RDI_DATADIR/xsim/ip/axi_crossbar_v2_1_20
|
||||
tsn_endpoint_ethernet_mac_block_v1_0_4=$RDI_DATADIR/xsim/ip/tsn_endpoint_ethernet_mac_block_v1_0_4
|
||||
v_ycrcb2rgb_v7_1_13=$RDI_DATADIR/xsim/ip/v_ycrcb2rgb_v7_1_13
|
||||
xhmc_v1_0_9=$RDI_DATADIR/xsim/ip/xhmc_v1_0_9
|
||||
dp_videoaxi4s_bridge_v1_0_0=$RDI_DATADIR/xsim/ip/dp_videoaxi4s_bridge_v1_0_0
|
||||
lte_ul_channel_decoder_v4_0_16=$RDI_DATADIR/xsim/ip/lte_ul_channel_decoder_v4_0_16
|
||||
soft_ecc_proxy_v1_0_0=$RDI_DATADIR/xsim/ip/soft_ecc_proxy_v1_0_0
|
||||
pr_bitstream_monitor_v1_0_1=$RDI_DATADIR/xsim/ip/pr_bitstream_monitor_v1_0_1
|
||||
sync_ip=$RDI_DATADIR/xsim/ip/sync_ip
|
||||
v_frmbuf_rd_v2_1_2=$RDI_DATADIR/xsim/ip/v_frmbuf_rd_v2_1_2
|
||||
c_compare_v12_0_6=$RDI_DATADIR/xsim/ip/c_compare_v12_0_6
|
||||
cmac_usplus_v2_6_2=$RDI_DATADIR/xsim/ip/cmac_usplus_v2_6_2
|
||||
axi_mcdma_v1_0_5=$RDI_DATADIR/xsim/ip/axi_mcdma_v1_0_5
|
||||
c_gate_bit_v12_0_6=$RDI_DATADIR/xsim/ip/c_gate_bit_v12_0_6
|
||||
g709_fec_v2_4_1=$RDI_DATADIR/xsim/ip/g709_fec_v2_4_1
|
||||
lut_buffer_v1_0_0=$RDI_DATADIR/xsim/ip/lut_buffer_v1_0_0
|
||||
ai_pl=$RDI_DATADIR/xsim/ip/ai_pl
|
||||
fifo_generator_v13_1_4=$RDI_DATADIR/xsim/ip/fifo_generator_v13_1_4
|
||||
v_uhdsdi_audio_v1_1_0=$RDI_DATADIR/xsim/ip/v_uhdsdi_audio_v1_1_0
|
||||
l_ethernet_v2_3_5=$RDI_DATADIR/xsim/ip/l_ethernet_v2_3_5
|
||||
microblaze_mcs_v2_3_6=$RDI_DATADIR/xsim/ip/microblaze_mcs_v2_3_6
|
||||
v_uhdsdi_audio_v2_0_1=$RDI_DATADIR/xsim/ip/v_uhdsdi_audio_v2_0_1
|
||||
ldpc_v2_0_3=$RDI_DATADIR/xsim/ip/ldpc_v2_0_3
|
||||
xbip_dsp48_mult_v3_0_6=$RDI_DATADIR/xsim/ip/xbip_dsp48_mult_v3_0_6
|
||||
xpm=$RDI_DATADIR/xsim/ip/xpm
|
||||
srio_gen2_v4_1_6=$RDI_DATADIR/xsim/ip/srio_gen2_v4_1_6
|
||||
g975_efec_i4_v1_0_17=$RDI_DATADIR/xsim/ip/g975_efec_i4_v1_0_17
|
||||
noc_na_v1_0_0=$RDI_DATADIR/xsim/ip/noc_na_v1_0_0
|
||||
roe_framer_v2_0_1=$RDI_DATADIR/xsim/ip/roe_framer_v2_0_1
|
||||
xbip_utils_v3_0_10=$RDI_DATADIR/xsim/ip/xbip_utils_v3_0_10
|
||||
generic_baseblocks_v2_1_0=$RDI_DATADIR/xsim/ip/generic_baseblocks_v2_1_0
|
||||
ten_gig_eth_pcs_pma_v6_0_15=$RDI_DATADIR/xsim/ip/ten_gig_eth_pcs_pma_v6_0_15
|
||||
can_v5_0_22=$RDI_DATADIR/xsim/ip/can_v5_0_22
|
||||
av_pat_gen_v1_0_0=$RDI_DATADIR/xsim/ip/av_pat_gen_v1_0_0
|
||||
fec_5g_common_v1_1_1=$RDI_DATADIR/xsim/ip/fec_5g_common_v1_1_1
|
||||
lmb_v10_v3_0=$RDI_DATADIR/xsim/ip/lmb_v10_v3_0
|
||||
axis_dwidth_converter_v1_1_18=$RDI_DATADIR/xsim/ip/axis_dwidth_converter_v1_1_18
|
||||
lte_rach_detector_v3_1_5=$RDI_DATADIR/xsim/ip/lte_rach_detector_v3_1_5
|
||||
xxv_ethernet_v3_0_3=$RDI_DATADIR/xsim/ip/xxv_ethernet_v3_0_3
|
||||
axi_iic_v2_0_22=$RDI_DATADIR/xsim/ip/axi_iic_v2_0_22
|
||||
axi_pcie_v2_9_1=$RDI_DATADIR/xsim/ip/axi_pcie_v2_9_1
|
||||
util_reduced_logic_v2_0_4=$RDI_DATADIR/xsim/ip/util_reduced_logic_v2_0_4
|
||||
sim_trig_top_v1_0=$RDI_DATADIR/xsim/ip/sim_trig_top_v1_0
|
||||
v_smpte_uhdsdi_tx_v1_0_0=$RDI_DATADIR/xsim/ip/v_smpte_uhdsdi_tx_v1_0_0
|
||||
v_tpg_v7_0_13=$RDI_DATADIR/xsim/ip/v_tpg_v7_0_13
|
||||
sd_fec_v1_1_3=$RDI_DATADIR/xsim/ip/sd_fec_v1_1_3
|
||||
xbip_dsp48_multadd_v3_0_6=$RDI_DATADIR/xsim/ip/xbip_dsp48_multadd_v3_0_6
|
||||
lib_srl_fifo_v1_0_2=$RDI_DATADIR/xsim/ip/lib_srl_fifo_v1_0_2
|
||||
v_multi_scaler_v1_0_1=$RDI_DATADIR/xsim/ip/v_multi_scaler_v1_0_1
|
||||
axis_infrastructure_v1_1_0=$RDI_DATADIR/xsim/ip/axis_infrastructure_v1_1_0
|
||||
advanced_io_wizard_v1_0_0=$RDI_DATADIR/xsim/ip/advanced_io_wizard_v1_0_0
|
||||
mipi_csi2_rx_ctrl_v1_0_8=$RDI_DATADIR/xsim/ip/mipi_csi2_rx_ctrl_v1_0_8
|
||||
axi_pcie3_v3_0_9=$RDI_DATADIR/xsim/ip/axi_pcie3_v3_0_9
|
||||
axi_vfifo_ctrl_v2_0_21=$RDI_DATADIR/xsim/ip/axi_vfifo_ctrl_v2_0_21
|
||||
xsdbm_v2_0_0=$RDI_DATADIR/xsim/ip/xsdbm_v2_0_0
|
||||
+83
@@ -0,0 +1,83 @@
|
||||
################################################################################
|
||||
# Vivado (TM) v2019.1.3 (64-bit)
|
||||
#
|
||||
# README.txt: Please read the sections below to understand the steps required
|
||||
# to simulate the design for a simulator, the directory structure
|
||||
# and the generated exported files.
|
||||
#
|
||||
################################################################################
|
||||
|
||||
1. Simulate Design
|
||||
|
||||
To simulate design, cd to the simulator directory and execute the script.
|
||||
|
||||
For example:-
|
||||
|
||||
% cd questa
|
||||
% ./top.sh
|
||||
|
||||
The export simulation flow requires the Xilinx pre-compiled simulation library
|
||||
components for the target simulator. These components are referred using the
|
||||
'-lib_map_path' switch. If this switch is specified, then the export simulation
|
||||
will automatically set this library path in the generated script and update,
|
||||
copy the simulator setup file(s) in the exported directory.
|
||||
|
||||
If '-lib_map_path' is not specified, then the pre-compiled simulation library
|
||||
information will not be included in the exported scripts and that may cause
|
||||
simulation errors when running this script. Alternatively, you can provide the
|
||||
library information using this switch while executing the generated script.
|
||||
|
||||
For example:-
|
||||
|
||||
% ./top.sh -lib_map_path /design/questa/clibs
|
||||
|
||||
Please refer to the generated script header 'Prerequisite' section for more details.
|
||||
|
||||
2. Directory Structure
|
||||
|
||||
By default, if the -directory switch is not specified, export_simulation will
|
||||
create the following directory structure:-
|
||||
|
||||
<current_working_directory>/export_sim/<simulator>
|
||||
|
||||
For example, if the current working directory is /tmp/test, export_simulation
|
||||
will create the following directory path:-
|
||||
|
||||
/tmp/test/export_sim/questa
|
||||
|
||||
If -directory switch is specified, export_simulation will create a simulator
|
||||
sub-directory under the specified directory path.
|
||||
|
||||
For example, 'export_simulation -directory /tmp/test/my_test_area/func_sim'
|
||||
command will create the following directory:-
|
||||
|
||||
/tmp/test/my_test_area/func_sim/questa
|
||||
|
||||
By default, if -simulator is not specified, export_simulation will create a
|
||||
simulator sub-directory for each simulator and export the files for each simulator
|
||||
in this sub-directory respectively.
|
||||
|
||||
IMPORTANT: Please note that the simulation library path must be specified manually
|
||||
in the generated script for the respective simulator. Please refer to the generated
|
||||
script header 'Prerequisite' section for more details.
|
||||
|
||||
3. Exported script and files
|
||||
|
||||
Export simulation will create the driver shell script, setup files and copy the
|
||||
design sources in the output directory path.
|
||||
|
||||
By default, when the -script_name switch is not specified, export_simulation will
|
||||
create the following script name:-
|
||||
|
||||
<simulation_top>.sh (Unix)
|
||||
When exporting the files for an IP using the -of_objects switch, export_simulation
|
||||
will create the following script name:-
|
||||
|
||||
<ip-name>.sh (Unix)
|
||||
Export simulation will create the setup files for the target simulator specified
|
||||
with the -simulator switch.
|
||||
|
||||
For example, if the target simulator is "ies", export_simulation will create the
|
||||
'cds.lib', 'hdl.var' and design library diectories and mappings in the 'cds.lib'
|
||||
file.
|
||||
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
################################################################################
|
||||
# Vivado (TM) v2019.1.3 (64-bit)
|
||||
#
|
||||
# README.txt: Please read the sections below to understand the steps required to
|
||||
# run the exported script and information about the source files.
|
||||
#
|
||||
# Generated by export_simulation on Sun Mar 19 11:33:55 +0800 2023
|
||||
#
|
||||
################################################################################
|
||||
|
||||
1. How to run the generated simulation script:-
|
||||
|
||||
From the shell prompt in the current directory, issue the following command:-
|
||||
|
||||
./rotate_16b.sh
|
||||
|
||||
This command will launch the 'compile', 'elaborate' and 'simulate' functions
|
||||
implemented in the script file for the 3-step flow. These functions are called
|
||||
from the main 'run' function in the script file.
|
||||
|
||||
The 'run' function first executes the 'setup' function, the purpose of which is to
|
||||
create simulator specific setup files, create design library mappings and library
|
||||
directories and copy 'glbl.v' from the Vivado software install location into the
|
||||
current directory.
|
||||
|
||||
The 'setup' function is also used for removing the simulator generated data in
|
||||
order to reset the current directory to the original state when export_simulation
|
||||
was launched from Vivado. This generated data can be removed by specifying the
|
||||
'-reset_run' switch to the './rotate_16b.sh' script.
|
||||
|
||||
./rotate_16b.sh -reset_run
|
||||
|
||||
To keep the generated data from the previous run but regenerate the setup files and
|
||||
library directories, use the '-noclean_files' switch.
|
||||
|
||||
./rotate_16b.sh -noclean_files
|
||||
|
||||
For more information on the script, please type './rotate_16b.sh -help'.
|
||||
|
||||
2. Additional design information files:-
|
||||
|
||||
export_simulation generates following additional file that can be used for fetching
|
||||
the design files information or for integrating with external custom scripts.
|
||||
|
||||
Name : file_info.txt
|
||||
Purpose: This file contains detail design file information based on the compile order
|
||||
when export_simulation was executed from Vivado. The file contains information
|
||||
about the file type, name, whether it is part of the IP, associated library
|
||||
and the file path information.
|
||||
+66
@@ -0,0 +1,66 @@
|
||||
vlib work
|
||||
vlib activehdl
|
||||
|
||||
vlib activehdl/xbip_utils_v3_0_10
|
||||
vlib activehdl/c_reg_fd_v12_0_6
|
||||
vlib activehdl/xbip_dsp48_wrapper_v3_0_4
|
||||
vlib activehdl/xbip_pipe_v3_0_6
|
||||
vlib activehdl/xbip_dsp48_addsub_v3_0_6
|
||||
vlib activehdl/xbip_addsub_v3_0_6
|
||||
vlib activehdl/c_addsub_v12_0_13
|
||||
vlib activehdl/xbip_bram18k_v3_0_6
|
||||
vlib activehdl/mult_gen_v12_0_15
|
||||
vlib activehdl/axi_utils_v2_0_6
|
||||
vlib activehdl/cordic_v6_0_15
|
||||
vlib activehdl/xil_defaultlib
|
||||
|
||||
vmap xbip_utils_v3_0_10 activehdl/xbip_utils_v3_0_10
|
||||
vmap c_reg_fd_v12_0_6 activehdl/c_reg_fd_v12_0_6
|
||||
vmap xbip_dsp48_wrapper_v3_0_4 activehdl/xbip_dsp48_wrapper_v3_0_4
|
||||
vmap xbip_pipe_v3_0_6 activehdl/xbip_pipe_v3_0_6
|
||||
vmap xbip_dsp48_addsub_v3_0_6 activehdl/xbip_dsp48_addsub_v3_0_6
|
||||
vmap xbip_addsub_v3_0_6 activehdl/xbip_addsub_v3_0_6
|
||||
vmap c_addsub_v12_0_13 activehdl/c_addsub_v12_0_13
|
||||
vmap xbip_bram18k_v3_0_6 activehdl/xbip_bram18k_v3_0_6
|
||||
vmap mult_gen_v12_0_15 activehdl/mult_gen_v12_0_15
|
||||
vmap axi_utils_v2_0_6 activehdl/axi_utils_v2_0_6
|
||||
vmap cordic_v6_0_15 activehdl/cordic_v6_0_15
|
||||
vmap xil_defaultlib activehdl/xil_defaultlib
|
||||
|
||||
vcom -work xbip_utils_v3_0_10 -93 \
|
||||
"../../../ipstatic/hdl/xbip_utils_v3_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work c_reg_fd_v12_0_6 -93 \
|
||||
"../../../ipstatic/hdl/c_reg_fd_v12_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work xbip_dsp48_wrapper_v3_0_4 -93 \
|
||||
"../../../ipstatic/hdl/xbip_dsp48_wrapper_v3_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work xbip_pipe_v3_0_6 -93 \
|
||||
"../../../ipstatic/hdl/xbip_pipe_v3_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work xbip_dsp48_addsub_v3_0_6 -93 \
|
||||
"../../../ipstatic/hdl/xbip_dsp48_addsub_v3_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work xbip_addsub_v3_0_6 -93 \
|
||||
"../../../ipstatic/hdl/xbip_addsub_v3_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work c_addsub_v12_0_13 -93 \
|
||||
"../../../ipstatic/hdl/c_addsub_v12_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work xbip_bram18k_v3_0_6 -93 \
|
||||
"../../../ipstatic/hdl/xbip_bram18k_v3_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work mult_gen_v12_0_15 -93 \
|
||||
"../../../ipstatic/hdl/mult_gen_v12_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work axi_utils_v2_0_6 -93 \
|
||||
"../../../ipstatic/hdl/axi_utils_v2_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work cordic_v6_0_15 -93 \
|
||||
"../../../ipstatic/hdl/cordic_v6_0_vh_rfs.vhd" \
|
||||
|
||||
vcom -work xil_defaultlib -93 \
|
||||
"../../../ip/rotate_16b/sim/rotate_16b.vhd" \
|
||||
|
||||
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
xbip_utils_v3_0_vh_rfs.vhd,vhdl,xbip_utils_v3_0_10,../../../ipstatic/hdl/xbip_utils_v3_0_vh_rfs.vhd,
|
||||
c_reg_fd_v12_0_vh_rfs.vhd,vhdl,c_reg_fd_v12_0_6,../../../ipstatic/hdl/c_reg_fd_v12_0_vh_rfs.vhd,
|
||||
xbip_dsp48_wrapper_v3_0_vh_rfs.vhd,vhdl,xbip_dsp48_wrapper_v3_0_4,../../../ipstatic/hdl/xbip_dsp48_wrapper_v3_0_vh_rfs.vhd,
|
||||
xbip_pipe_v3_0_vh_rfs.vhd,vhdl,xbip_pipe_v3_0_6,../../../ipstatic/hdl/xbip_pipe_v3_0_vh_rfs.vhd,
|
||||
xbip_dsp48_addsub_v3_0_vh_rfs.vhd,vhdl,xbip_dsp48_addsub_v3_0_6,../../../ipstatic/hdl/xbip_dsp48_addsub_v3_0_vh_rfs.vhd,
|
||||
xbip_addsub_v3_0_vh_rfs.vhd,vhdl,xbip_addsub_v3_0_6,../../../ipstatic/hdl/xbip_addsub_v3_0_vh_rfs.vhd,
|
||||
c_addsub_v12_0_vh_rfs.vhd,vhdl,c_addsub_v12_0_13,../../../ipstatic/hdl/c_addsub_v12_0_vh_rfs.vhd,
|
||||
xbip_bram18k_v3_0_vh_rfs.vhd,vhdl,xbip_bram18k_v3_0_6,../../../ipstatic/hdl/xbip_bram18k_v3_0_vh_rfs.vhd,
|
||||
mult_gen_v12_0_vh_rfs.vhd,vhdl,mult_gen_v12_0_15,../../../ipstatic/hdl/mult_gen_v12_0_vh_rfs.vhd,
|
||||
axi_utils_v2_0_vh_rfs.vhd,vhdl,axi_utils_v2_0_6,../../../ipstatic/hdl/axi_utils_v2_0_vh_rfs.vhd,
|
||||
cordic_v6_0_vh_rfs.vhd,vhdl,cordic_v6_0_15,../../../ipstatic/hdl/cordic_v6_0_vh_rfs.vhd,
|
||||
rotate_16b.vhd,vhdl,xil_defaultlib,../../../ip/rotate_16b/sim/rotate_16b.vhd,
|
||||
+154
@@ -0,0 +1,154 @@
|
||||
#!/bin/bash -f
|
||||
#*********************************************************************************************************
|
||||
# Vivado (TM) v2019.1.3 (64-bit)
|
||||
#
|
||||
# Filename : rotate_16b.sh
|
||||
# Simulator : Aldec Active-HDL Simulator
|
||||
# Description : Simulation script for compiling, elaborating and verifying the project source files.
|
||||
# The script will automatically create the design libraries sub-directories in the run
|
||||
# directory, add the library logical mappings in the simulator setup file, create default
|
||||
# 'do/prj' file, execute compilation, elaboration and simulation steps.
|
||||
#
|
||||
# Generated by Vivado on Sun Mar 19 11:33:55 +0800 2023
|
||||
# SW Build 2644227 on Wed Sep 4 09:45:24 MDT 2019
|
||||
#
|
||||
# Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
#
|
||||
# usage: rotate_16b.sh [-help]
|
||||
# usage: rotate_16b.sh [-lib_map_path]
|
||||
# usage: rotate_16b.sh [-noclean_files]
|
||||
# usage: rotate_16b.sh [-reset_run]
|
||||
#
|
||||
# Prerequisite:- To compile and run simulation, you must compile the Xilinx simulation libraries using the
|
||||
# 'compile_simlib' TCL command. For more information about this command, run 'compile_simlib -help' in the
|
||||
# Vivado Tcl Shell. Once the libraries have been compiled successfully, specify the -lib_map_path switch
|
||||
# that points to these libraries and rerun export_simulation. For more information about this switch please
|
||||
# type 'export_simulation -help' in the Tcl shell.
|
||||
#
|
||||
# You can also point to the simulation libraries by either replacing the <SPECIFY_COMPILED_LIB_PATH> in this
|
||||
# script with the compiled library directory path or specify this path with the '-lib_map_path' switch when
|
||||
# executing this script. Please type 'rotate_16b.sh -help' for more information.
|
||||
#
|
||||
# Additional references - 'Xilinx Vivado Design Suite User Guide:Logic simulation (UG900)'
|
||||
#
|
||||
#*********************************************************************************************************
|
||||
|
||||
|
||||
# Script info
|
||||
echo -e "rotate_16b.sh - Script generated by export_simulation (Vivado v2019.1.3 (64-bit)-id)\n"
|
||||
|
||||
# Main steps
|
||||
run()
|
||||
{
|
||||
check_args $# $1
|
||||
setup $1 $2
|
||||
compile
|
||||
simulate
|
||||
}
|
||||
|
||||
# RUN_STEP: <compile>
|
||||
compile()
|
||||
{
|
||||
# Compile design files
|
||||
source compile.do 2>&1 | tee -a compile.log
|
||||
|
||||
}
|
||||
|
||||
# RUN_STEP: <simulate>
|
||||
simulate()
|
||||
{
|
||||
runvsimsa -l simulate.log -do "do {simulate.do}"
|
||||
}
|
||||
|
||||
# STEP: setup
|
||||
setup()
|
||||
{
|
||||
case $1 in
|
||||
"-lib_map_path" )
|
||||
if [[ ($2 == "") ]]; then
|
||||
echo -e "ERROR: Simulation library directory path not specified (type \"./rotate_16b.sh -help\" for more information)\n"
|
||||
exit 1
|
||||
fi
|
||||
map_setup_file $2
|
||||
;;
|
||||
"-reset_run" )
|
||||
reset_run
|
||||
echo -e "INFO: Simulation run files deleted.\n"
|
||||
exit 0
|
||||
;;
|
||||
"-noclean_files" )
|
||||
# do not remove previous data
|
||||
;;
|
||||
* )
|
||||
map_setup_file $2
|
||||
esac
|
||||
|
||||
# Add any setup/initialization commands here:-
|
||||
|
||||
# <user specific commands>
|
||||
|
||||
}
|
||||
|
||||
# Map library.cfg file
|
||||
map_setup_file()
|
||||
{
|
||||
file="library.cfg"
|
||||
lib_map_path="<SPECIFY_COMPILED_LIB_PATH>"
|
||||
if [[ ($1 != "" && -e $1) ]]; then
|
||||
lib_map_path="$1"
|
||||
else
|
||||
echo -e "ERROR: Compiled simulation library directory path not specified or does not exist (type "./top.sh -help" for more information)\n"
|
||||
fi
|
||||
if [[ ($lib_map_path != "") ]]; then
|
||||
src_file="$lib_map_path/$file"
|
||||
if [[ -e $src_file ]]; then
|
||||
vmap -link $lib_map_path
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Delete generated data from the previous run
|
||||
reset_run()
|
||||
{
|
||||
files_to_remove=(compile.log elaboration.log simulate.log dataset.asdb work activehdl)
|
||||
for (( i=0; i<${#files_to_remove[*]}; i++ )); do
|
||||
file="${files_to_remove[i]}"
|
||||
if [[ -e $file ]]; then
|
||||
rm -rf $file
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Check command line arguments
|
||||
check_args()
|
||||
{
|
||||
if [[ ($1 == 1 ) && ($2 != "-lib_map_path" && $2 != "-noclean_files" && $2 != "-reset_run" && $2 != "-help" && $2 != "-h") ]]; then
|
||||
echo -e "ERROR: Unknown option specified '$2' (type \"./rotate_16b.sh -help\" for more information)\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ($2 == "-help" || $2 == "-h") ]]; then
|
||||
usage
|
||||
fi
|
||||
}
|
||||
|
||||
# Script usage
|
||||
usage()
|
||||
{
|
||||
msg="Usage: rotate_16b.sh [-help]\n\
|
||||
Usage: rotate_16b.sh [-lib_map_path]\n\
|
||||
Usage: rotate_16b.sh [-reset_run]\n\
|
||||
Usage: rotate_16b.sh [-noclean_files]\n\n\
|
||||
[-help] -- Print help information for this script\n\n\
|
||||
[-lib_map_path <path>] -- Compiled simulation library directory path. The simulation library is compiled\n\
|
||||
using the compile_simlib tcl command. Please see 'compile_simlib -help' for more information.\n\n\
|
||||
[-reset_run] -- Recreate simulator setup files and library mappings for a clean run. The generated files\n\
|
||||
from the previous run will be removed. If you don't want to remove the simulator generated files, use the\n\
|
||||
-noclean_files switch.\n\n\
|
||||
[-noclean_files] -- Reset previous run, but do not remove simulator generated files from the previous run.\n\n"
|
||||
echo -e $msg
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Launch script
|
||||
run $1 $2
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
onbreak {quit -force}
|
||||
onerror {quit -force}
|
||||
|
||||
asim -t 1ps +access +r +m+rotate_16b -L xbip_utils_v3_0_10 -L c_reg_fd_v12_0_6 -L xbip_dsp48_wrapper_v3_0_4 -L xbip_pipe_v3_0_6 -L xbip_dsp48_addsub_v3_0_6 -L xbip_addsub_v3_0_6 -L c_addsub_v12_0_13 -L xbip_bram18k_v3_0_6 -L mult_gen_v12_0_15 -L axi_utils_v2_0_6 -L cordic_v6_0_15 -L xil_defaultlib -L secureip -O5 xil_defaultlib.rotate_16b
|
||||
|
||||
do {wave.do}
|
||||
|
||||
view wave
|
||||
view structure
|
||||
|
||||
do {rotate_16b.udo}
|
||||
|
||||
run -all
|
||||
|
||||
endsim
|
||||
|
||||
quit -force
|
||||
+1
@@ -0,0 +1 @@
|
||||
add wave *
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
################################################################################
|
||||
# Vivado (TM) v2019.1.3 (64-bit)
|
||||
#
|
||||
# README.txt: Please read the sections below to understand the steps required to
|
||||
# run the exported script and information about the source files.
|
||||
#
|
||||
# Generated by export_simulation on Sun Mar 19 11:33:55 +0800 2023
|
||||
#
|
||||
################################################################################
|
||||
|
||||
1. How to run the generated simulation script:-
|
||||
|
||||
From the shell prompt in the current directory, issue the following command:-
|
||||
|
||||
./rotate_16b.sh
|
||||
|
||||
This command will launch the 'execute' function for the single-step flow. This
|
||||
function is called from the main 'run' function in the script file.
|
||||
|
||||
The 'run' function first executes the 'setup' function, the purpose of which is to
|
||||
create simulator specific setup files, create design library mappings and library
|
||||
directories and copy 'glbl.v' from the Vivado software install location into the
|
||||
current directory.
|
||||
|
||||
The 'setup' function is also used for removing the simulator generated data in
|
||||
order to reset the current directory to the original state when export_simulation
|
||||
was launched from Vivado. This generated data can be removed by specifying the
|
||||
'-reset_run' switch to the './rotate_16b.sh' script.
|
||||
|
||||
./rotate_16b.sh -reset_run
|
||||
|
||||
To keep the generated data from the previous run but regenerate the setup files and
|
||||
library directories, use the '-noclean_files' switch.
|
||||
|
||||
./rotate_16b.sh -noclean_files
|
||||
|
||||
For more information on the script, please type './rotate_16b.sh -help'.
|
||||
|
||||
2. Additional design information files:-
|
||||
|
||||
export_simulation generates following additional file that can be used for fetching
|
||||
the design files information or for integrating with external custom scripts.
|
||||
|
||||
Name : file_info.txt
|
||||
Purpose: This file contains detail design file information based on the compile order
|
||||
when export_simulation was executed from Vivado. The file contains information
|
||||
about the file type, name, whether it is part of the IP, associated library
|
||||
and the file path information.
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
xbip_utils_v3_0_vh_rfs.vhd,vhdl,xbip_utils_v3_0_10,../../../ipstatic/hdl/xbip_utils_v3_0_vh_rfs.vhd,
|
||||
c_reg_fd_v12_0_vh_rfs.vhd,vhdl,c_reg_fd_v12_0_6,../../../ipstatic/hdl/c_reg_fd_v12_0_vh_rfs.vhd,
|
||||
xbip_dsp48_wrapper_v3_0_vh_rfs.vhd,vhdl,xbip_dsp48_wrapper_v3_0_4,../../../ipstatic/hdl/xbip_dsp48_wrapper_v3_0_vh_rfs.vhd,
|
||||
xbip_pipe_v3_0_vh_rfs.vhd,vhdl,xbip_pipe_v3_0_6,../../../ipstatic/hdl/xbip_pipe_v3_0_vh_rfs.vhd,
|
||||
xbip_dsp48_addsub_v3_0_vh_rfs.vhd,vhdl,xbip_dsp48_addsub_v3_0_6,../../../ipstatic/hdl/xbip_dsp48_addsub_v3_0_vh_rfs.vhd,
|
||||
xbip_addsub_v3_0_vh_rfs.vhd,vhdl,xbip_addsub_v3_0_6,../../../ipstatic/hdl/xbip_addsub_v3_0_vh_rfs.vhd,
|
||||
c_addsub_v12_0_vh_rfs.vhd,vhdl,c_addsub_v12_0_13,../../../ipstatic/hdl/c_addsub_v12_0_vh_rfs.vhd,
|
||||
xbip_bram18k_v3_0_vh_rfs.vhd,vhdl,xbip_bram18k_v3_0_6,../../../ipstatic/hdl/xbip_bram18k_v3_0_vh_rfs.vhd,
|
||||
mult_gen_v12_0_vh_rfs.vhd,vhdl,mult_gen_v12_0_15,../../../ipstatic/hdl/mult_gen_v12_0_vh_rfs.vhd,
|
||||
axi_utils_v2_0_vh_rfs.vhd,vhdl,axi_utils_v2_0_6,../../../ipstatic/hdl/axi_utils_v2_0_vh_rfs.vhd,
|
||||
cordic_v6_0_vh_rfs.vhd,vhdl,cordic_v6_0_15,../../../ipstatic/hdl/cordic_v6_0_vh_rfs.vhd,
|
||||
rotate_16b.vhd,vhdl,xil_defaultlib,../../../ip/rotate_16b/sim/rotate_16b.vhd,
|
||||
+173
@@ -0,0 +1,173 @@
|
||||
#!/bin/bash -f
|
||||
#*********************************************************************************************************
|
||||
# Vivado (TM) v2019.1.3 (64-bit)
|
||||
#
|
||||
# Filename : rotate_16b.sh
|
||||
# Simulator : Cadence Incisive Enterprise Simulator
|
||||
# Description : Simulation script for compiling, elaborating and verifying the project source files.
|
||||
# The script will automatically create the design libraries sub-directories in the run
|
||||
# directory, add the library logical mappings in the simulator setup file, create default
|
||||
# 'do/prj' file, execute compilation, elaboration and simulation steps.
|
||||
#
|
||||
# Generated by Vivado on Sun Mar 19 11:33:55 +0800 2023
|
||||
# SW Build 2644227 on Wed Sep 4 09:45:24 MDT 2019
|
||||
#
|
||||
# Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
#
|
||||
# usage: rotate_16b.sh [-help]
|
||||
# usage: rotate_16b.sh [-lib_map_path]
|
||||
# usage: rotate_16b.sh [-noclean_files]
|
||||
# usage: rotate_16b.sh [-reset_run]
|
||||
#
|
||||
# Prerequisite:- To compile and run simulation, you must compile the Xilinx simulation libraries using the
|
||||
# 'compile_simlib' TCL command. For more information about this command, run 'compile_simlib -help' in the
|
||||
# Vivado Tcl Shell. Once the libraries have been compiled successfully, specify the -lib_map_path switch
|
||||
# that points to these libraries and rerun export_simulation. For more information about this switch please
|
||||
# type 'export_simulation -help' in the Tcl shell.
|
||||
#
|
||||
# You can also point to the simulation libraries by either replacing the <SPECIFY_COMPILED_LIB_PATH> in this
|
||||
# script with the compiled library directory path or specify this path with the '-lib_map_path' switch when
|
||||
# executing this script. Please type 'rotate_16b.sh -help' for more information.
|
||||
#
|
||||
# Additional references - 'Xilinx Vivado Design Suite User Guide:Logic simulation (UG900)'
|
||||
#
|
||||
#*********************************************************************************************************
|
||||
|
||||
# Directory path for design sources and include directories (if any) wrt this path
|
||||
ref_dir="."
|
||||
|
||||
# Override directory with 'export_sim_ref_dir' env path value if set in the shell
|
||||
if [[ (! -z "$export_sim_ref_dir") && ($export_sim_ref_dir != "") ]]; then
|
||||
ref_dir="$export_sim_ref_dir"
|
||||
fi
|
||||
|
||||
# Set the compiled library directory
|
||||
ref_lib_dir="."
|
||||
|
||||
# Command line options
|
||||
irun_opts="-64bit -v93 -relax -access +rwc -namemap_mixgen"
|
||||
|
||||
# Design libraries
|
||||
design_libs=(xbip_utils_v3_0_10 c_reg_fd_v12_0_6 xbip_dsp48_wrapper_v3_0_4 xbip_pipe_v3_0_6 xbip_dsp48_addsub_v3_0_6 xbip_addsub_v3_0_6 c_addsub_v12_0_13 xbip_bram18k_v3_0_6 mult_gen_v12_0_15 axi_utils_v2_0_6 cordic_v6_0_15 xil_defaultlib)
|
||||
|
||||
# Simulation root library directory
|
||||
sim_lib_dir="ies_lib"
|
||||
|
||||
# Script info
|
||||
echo -e "rotate_16b.sh - Script generated by export_simulation (Vivado v2019.1.3 (64-bit)-id)\n"
|
||||
|
||||
# Main steps
|
||||
run()
|
||||
{
|
||||
check_args $# $1
|
||||
setup $1 $2
|
||||
execute
|
||||
}
|
||||
|
||||
# RUN_STEP: <execute>
|
||||
execute()
|
||||
{
|
||||
irun $irun_opts \
|
||||
-reflib "$ref_lib_dir/unisim:unisim" \
|
||||
-reflib "$ref_lib_dir/unisims_ver:unisims_ver" \
|
||||
-reflib "$ref_lib_dir/secureip:secureip" \
|
||||
-reflib "$ref_lib_dir/unimacro:unimacro" \
|
||||
-reflib "$ref_lib_dir/unimacro_ver:unimacro_ver" \
|
||||
-top xil_defaultlib.rotate_16b \
|
||||
-f run.f
|
||||
}
|
||||
|
||||
# STEP: setup
|
||||
setup()
|
||||
{
|
||||
case $1 in
|
||||
"-lib_map_path" )
|
||||
if [[ ($2 == "") ]]; then
|
||||
echo -e "ERROR: Simulation library directory path not specified (type \"./rotate_16b.sh -help\" for more information)\n"
|
||||
exit 1
|
||||
else
|
||||
ref_lib_dir=$2
|
||||
fi
|
||||
;;
|
||||
"-reset_run" )
|
||||
reset_run
|
||||
echo -e "INFO: Simulation run files deleted.\n"
|
||||
exit 0
|
||||
;;
|
||||
"-noclean_files" )
|
||||
# do not remove previous data
|
||||
;;
|
||||
* )
|
||||
esac
|
||||
|
||||
create_lib_dir
|
||||
|
||||
# Add any setup/initialization commands here:-
|
||||
|
||||
# <user specific commands>
|
||||
|
||||
}
|
||||
|
||||
# Create design library directory paths
|
||||
create_lib_dir()
|
||||
{
|
||||
if [[ -e $sim_lib_dir ]]; then
|
||||
rm -rf $sim_lib_dir
|
||||
fi
|
||||
|
||||
for (( i=0; i<${#design_libs[*]}; i++ )); do
|
||||
lib="${design_libs[i]}"
|
||||
lib_dir="$sim_lib_dir/$lib"
|
||||
if [[ ! -e $lib_dir ]]; then
|
||||
mkdir -p $lib_dir
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Delete generated data from the previous run
|
||||
reset_run()
|
||||
{
|
||||
files_to_remove=(ncsim.key irun.key irun.log waves.shm irun.history .simvision INCA_libs)
|
||||
for (( i=0; i<${#files_to_remove[*]}; i++ )); do
|
||||
file="${files_to_remove[i]}"
|
||||
if [[ -e $file ]]; then
|
||||
rm -rf $file
|
||||
fi
|
||||
done
|
||||
|
||||
create_lib_dir
|
||||
}
|
||||
|
||||
# Check command line arguments
|
||||
check_args()
|
||||
{
|
||||
if [[ ($1 == 1 ) && ($2 != "-lib_map_path" && $2 != "-noclean_files" && $2 != "-reset_run" && $2 != "-help" && $2 != "-h") ]]; then
|
||||
echo -e "ERROR: Unknown option specified '$2' (type \"./rotate_16b.sh -help\" for more information)\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ($2 == "-help" || $2 == "-h") ]]; then
|
||||
usage
|
||||
fi
|
||||
}
|
||||
|
||||
# Script usage
|
||||
usage()
|
||||
{
|
||||
msg="Usage: rotate_16b.sh [-help]\n\
|
||||
Usage: rotate_16b.sh [-lib_map_path]\n\
|
||||
Usage: rotate_16b.sh [-reset_run]\n\
|
||||
Usage: rotate_16b.sh [-noclean_files]\n\n\
|
||||
[-help] -- Print help information for this script\n\n\
|
||||
[-lib_map_path <path>] -- Compiled simulation library directory path. The simulation library is compiled\n\
|
||||
using the compile_simlib tcl command. Please see 'compile_simlib -help' for more information.\n\n\
|
||||
[-reset_run] -- Recreate simulator setup files and library mappings for a clean run. The generated files\n\
|
||||
from the previous run will be removed. If you don't want to remove the simulator generated files, use the\n\
|
||||
-noclean_files switch.\n\n\
|
||||
[-noclean_files] -- Reset previous run, but do not remove simulator generated files from the previous run.\n\n"
|
||||
echo -e $msg
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Launch script
|
||||
run $1 $2
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
-makelib ies_lib/xbip_utils_v3_0_10 \
|
||||
"../../../ipstatic/hdl/xbip_utils_v3_0_vh_rfs.vhd" \
|
||||
-endlib
|
||||
-makelib ies_lib/c_reg_fd_v12_0_6 \
|
||||
"../../../ipstatic/hdl/c_reg_fd_v12_0_vh_rfs.vhd" \
|
||||
-endlib
|
||||
-makelib ies_lib/xbip_dsp48_wrapper_v3_0_4 \
|
||||
"../../../ipstatic/hdl/xbip_dsp48_wrapper_v3_0_vh_rfs.vhd" \
|
||||
-endlib
|
||||
-makelib ies_lib/xbip_pipe_v3_0_6 \
|
||||
"../../../ipstatic/hdl/xbip_pipe_v3_0_vh_rfs.vhd" \
|
||||
-endlib
|
||||
-makelib ies_lib/xbip_dsp48_addsub_v3_0_6 \
|
||||
"../../../ipstatic/hdl/xbip_dsp48_addsub_v3_0_vh_rfs.vhd" \
|
||||
-endlib
|
||||
-makelib ies_lib/xbip_addsub_v3_0_6 \
|
||||
"../../../ipstatic/hdl/xbip_addsub_v3_0_vh_rfs.vhd" \
|
||||
-endlib
|
||||
-makelib ies_lib/c_addsub_v12_0_13 \
|
||||
"../../../ipstatic/hdl/c_addsub_v12_0_vh_rfs.vhd" \
|
||||
-endlib
|
||||
-makelib ies_lib/xbip_bram18k_v3_0_6 \
|
||||
"../../../ipstatic/hdl/xbip_bram18k_v3_0_vh_rfs.vhd" \
|
||||
-endlib
|
||||
-makelib ies_lib/mult_gen_v12_0_15 \
|
||||
"../../../ipstatic/hdl/mult_gen_v12_0_vh_rfs.vhd" \
|
||||
-endlib
|
||||
-makelib ies_lib/axi_utils_v2_0_6 \
|
||||
"../../../ipstatic/hdl/axi_utils_v2_0_vh_rfs.vhd" \
|
||||
-endlib
|
||||
-makelib ies_lib/cordic_v6_0_15 \
|
||||
"../../../ipstatic/hdl/cordic_v6_0_vh_rfs.vhd" \
|
||||
-endlib
|
||||
-makelib ies_lib/xil_defaultlib \
|
||||
"../../../ip/rotate_16b/sim/rotate_16b.vhd" \
|
||||
-endlib
|
||||
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
################################################################################
|
||||
# Vivado (TM) v2019.1.3 (64-bit)
|
||||
#
|
||||
# README.txt: Please read the sections below to understand the steps required to
|
||||
# run the exported script and information about the source files.
|
||||
#
|
||||
# Generated by export_simulation on Sun Mar 19 11:33:55 +0800 2023
|
||||
#
|
||||
################################################################################
|
||||
|
||||
1. How to run the generated simulation script:-
|
||||
|
||||
From the shell prompt in the current directory, issue the following command:-
|
||||
|
||||
./rotate_16b.sh
|
||||
|
||||
This command will launch the 'compile', 'elaborate' and 'simulate' functions
|
||||
implemented in the script file for the 3-step flow. These functions are called
|
||||
from the main 'run' function in the script file.
|
||||
|
||||
The 'run' function first executes the 'setup' function, the purpose of which is to
|
||||
create simulator specific setup files, create design library mappings and library
|
||||
directories and copy 'glbl.v' from the Vivado software install location into the
|
||||
current directory.
|
||||
|
||||
The 'setup' function is also used for removing the simulator generated data in
|
||||
order to reset the current directory to the original state when export_simulation
|
||||
was launched from Vivado. This generated data can be removed by specifying the
|
||||
'-reset_run' switch to the './rotate_16b.sh' script.
|
||||
|
||||
./rotate_16b.sh -reset_run
|
||||
|
||||
To keep the generated data from the previous run but regenerate the setup files and
|
||||
library directories, use the '-noclean_files' switch.
|
||||
|
||||
./rotate_16b.sh -noclean_files
|
||||
|
||||
For more information on the script, please type './rotate_16b.sh -help'.
|
||||
|
||||
2. Additional design information files:-
|
||||
|
||||
export_simulation generates following additional file that can be used for fetching
|
||||
the design files information or for integrating with external custom scripts.
|
||||
|
||||
Name : file_info.txt
|
||||
Purpose: This file contains detail design file information based on the compile order
|
||||
when export_simulation was executed from Vivado. The file contains information
|
||||
about the file type, name, whether it is part of the IP, associated library
|
||||
and the file path information.
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
vlib modelsim_lib/work
|
||||
vlib modelsim_lib/msim
|
||||
|
||||
vlib modelsim_lib/msim/xil_defaultlib
|
||||
|
||||
vmap xil_defaultlib modelsim_lib/msim/xil_defaultlib
|
||||
|
||||
vcom -work xil_defaultlib -64 -93 \
|
||||
"../../../ip/rotate_16b/sim/rotate_16b.vhd" \
|
||||
|
||||
|
||||
+1
@@ -0,0 +1 @@
|
||||
rotate_16b.vhd,vhdl,xil_defaultlib,../../../ip/rotate_16b/sim/rotate_16b.vhd,
|
||||
+2590
File diff suppressed because it is too large
Load Diff
+167
@@ -0,0 +1,167 @@
|
||||
#!/bin/bash -f
|
||||
#*********************************************************************************************************
|
||||
# Vivado (TM) v2019.1.3 (64-bit)
|
||||
#
|
||||
# Filename : rotate_16b.sh
|
||||
# Simulator : Mentor Graphics ModelSim Simulator
|
||||
# Description : Simulation script for compiling, elaborating and verifying the project source files.
|
||||
# The script will automatically create the design libraries sub-directories in the run
|
||||
# directory, add the library logical mappings in the simulator setup file, create default
|
||||
# 'do/prj' file, execute compilation, elaboration and simulation steps.
|
||||
#
|
||||
# Generated by Vivado on Sun Mar 19 11:33:55 +0800 2023
|
||||
# SW Build 2644227 on Wed Sep 4 09:45:24 MDT 2019
|
||||
#
|
||||
# Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
|
||||
#
|
||||
# usage: rotate_16b.sh [-help]
|
||||
# usage: rotate_16b.sh [-lib_map_path]
|
||||
# usage: rotate_16b.sh [-noclean_files]
|
||||
# usage: rotate_16b.sh [-reset_run]
|
||||
#
|
||||
# Prerequisite:- To compile and run simulation, you must compile the Xilinx simulation libraries using the
|
||||
# 'compile_simlib' TCL command. For more information about this command, run 'compile_simlib -help' in the
|
||||
# Vivado Tcl Shell. Once the libraries have been compiled successfully, specify the -lib_map_path switch
|
||||
# that points to these libraries and rerun export_simulation. For more information about this switch please
|
||||
# type 'export_simulation -help' in the Tcl shell.
|
||||
#
|
||||
# You can also point to the simulation libraries by either replacing the <SPECIFY_COMPILED_LIB_PATH> in this
|
||||
# script with the compiled library directory path or specify this path with the '-lib_map_path' switch when
|
||||
# executing this script. Please type 'rotate_16b.sh -help' for more information.
|
||||
#
|
||||
# Additional references - 'Xilinx Vivado Design Suite User Guide:Logic simulation (UG900)'
|
||||
#
|
||||
#*********************************************************************************************************
|
||||
|
||||
|
||||
# Script info
|
||||
echo -e "rotate_16b.sh - Script generated by export_simulation (Vivado v2019.1.3 (64-bit)-id)\n"
|
||||
|
||||
# Main steps
|
||||
run()
|
||||
{
|
||||
check_args $# $1
|
||||
setup $1 $2
|
||||
compile
|
||||
simulate
|
||||
}
|
||||
|
||||
# RUN_STEP: <compile>
|
||||
compile()
|
||||
{
|
||||
# Compile design files
|
||||
source compile.do 2>&1 | tee -a compile.log
|
||||
|
||||
}
|
||||
|
||||
# RUN_STEP: <simulate>
|
||||
simulate()
|
||||
{
|
||||
vsim -64 -c -do "do {simulate.do}" -l simulate.log
|
||||
}
|
||||
|
||||
# STEP: setup
|
||||
setup()
|
||||
{
|
||||
case $1 in
|
||||
"-lib_map_path" )
|
||||
if [[ ($2 == "") ]]; then
|
||||
echo -e "ERROR: Simulation library directory path not specified (type \"./rotate_16b.sh -help\" for more information)\n"
|
||||
exit 1
|
||||
fi
|
||||
copy_setup_file $2
|
||||
;;
|
||||
"-reset_run" )
|
||||
reset_run
|
||||
echo -e "INFO: Simulation run files deleted.\n"
|
||||
exit 0
|
||||
;;
|
||||
"-noclean_files" )
|
||||
# do not remove previous data
|
||||
;;
|
||||
* )
|
||||
copy_setup_file $2
|
||||
esac
|
||||
|
||||
create_lib_dir
|
||||
|
||||
# Add any setup/initialization commands here:-
|
||||
|
||||
# <user specific commands>
|
||||
|
||||
}
|
||||
|
||||
# Copy modelsim.ini file
|
||||
copy_setup_file()
|
||||
{
|
||||
file="modelsim.ini"
|
||||
if [[ ($1 != "") ]]; then
|
||||
lib_map_path="$1"
|
||||
else
|
||||
lib_map_path="C:/Mentor/CompLib/2019.1.3"
|
||||
fi
|
||||
if [[ ($lib_map_path != "") ]]; then
|
||||
src_file="$lib_map_path/$file"
|
||||
cp $src_file .
|
||||
fi
|
||||
}
|
||||
|
||||
# Create design library directory
|
||||
create_lib_dir()
|
||||
{
|
||||
lib_dir="modelsim_lib"
|
||||
if [[ -e $lib_dir ]]; then
|
||||
rm -rf $lib_dir
|
||||
fi
|
||||
|
||||
mkdir $lib_dir
|
||||
|
||||
}
|
||||
|
||||
# Delete generated data from the previous run
|
||||
reset_run()
|
||||
{
|
||||
files_to_remove=(compile.log elaborate.log simulate.log vsim.wlf modelsim_lib)
|
||||
for (( i=0; i<${#files_to_remove[*]}; i++ )); do
|
||||
file="${files_to_remove[i]}"
|
||||
if [[ -e $file ]]; then
|
||||
rm -rf $file
|
||||
fi
|
||||
done
|
||||
|
||||
create_lib_dir
|
||||
}
|
||||
|
||||
# Check command line arguments
|
||||
check_args()
|
||||
{
|
||||
if [[ ($1 == 1 ) && ($2 != "-lib_map_path" && $2 != "-noclean_files" && $2 != "-reset_run" && $2 != "-help" && $2 != "-h") ]]; then
|
||||
echo -e "ERROR: Unknown option specified '$2' (type \"./rotate_16b.sh -help\" for more information)\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ($2 == "-help" || $2 == "-h") ]]; then
|
||||
usage
|
||||
fi
|
||||
}
|
||||
|
||||
# Script usage
|
||||
usage()
|
||||
{
|
||||
msg="Usage: rotate_16b.sh [-help]\n\
|
||||
Usage: rotate_16b.sh [-lib_map_path]\n\
|
||||
Usage: rotate_16b.sh [-reset_run]\n\
|
||||
Usage: rotate_16b.sh [-noclean_files]\n\n\
|
||||
[-help] -- Print help information for this script\n\n\
|
||||
[-lib_map_path <path>] -- Compiled simulation library directory path. The simulation library is compiled\n\
|
||||
using the compile_simlib tcl command. Please see 'compile_simlib -help' for more information.\n\n\
|
||||
[-reset_run] -- Recreate simulator setup files and library mappings for a clean run. The generated files\n\
|
||||
from the previous run will be removed. If you don't want to remove the simulator generated files, use the\n\
|
||||
-noclean_files switch.\n\n\
|
||||
[-noclean_files] -- Reset previous run, but do not remove simulator generated files from the previous run.\n\n"
|
||||
echo -e $msg
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Launch script
|
||||
run $1 $2
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
onbreak {quit -f}
|
||||
onerror {quit -f}
|
||||
|
||||
vsim -voptargs="+acc" -t 1ps -L xbip_utils_v3_0_10 -L c_reg_fd_v12_0_6 -L xbip_dsp48_wrapper_v3_0_4 -L xbip_pipe_v3_0_6 -L xbip_dsp48_addsub_v3_0_6 -L xbip_addsub_v3_0_6 -L c_addsub_v12_0_13 -L xbip_bram18k_v3_0_6 -L mult_gen_v12_0_15 -L axi_utils_v2_0_6 -L cordic_v6_0_15 -L xil_defaultlib -L secureip -L xpm -lib xil_defaultlib xil_defaultlib.rotate_16b
|
||||
|
||||
do {wave.do}
|
||||
|
||||
view wave
|
||||
view structure
|
||||
view signals
|
||||
|
||||
do {rotate_16b.udo}
|
||||
|
||||
run -all
|
||||
|
||||
quit -force
|
||||
+1
@@ -0,0 +1 @@
|
||||
add wave *
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
################################################################################
|
||||
# Vivado (TM) v2019.1.3 (64-bit)
|
||||
#
|
||||
# README.txt: Please read the sections below to understand the steps required to
|
||||
# run the exported script and information about the source files.
|
||||
#
|
||||
# Generated by export_simulation on Sun Mar 19 11:33:55 +0800 2023
|
||||
#
|
||||
################################################################################
|
||||
|
||||
1. How to run the generated simulation script:-
|
||||
|
||||
From the shell prompt in the current directory, issue the following command:-
|
||||
|
||||
./rotate_16b.sh
|
||||
|
||||
This command will launch the 'compile', 'elaborate' and 'simulate' functions
|
||||
implemented in the script file for the 3-step flow. These functions are called
|
||||
from the main 'run' function in the script file.
|
||||
|
||||
The 'run' function first executes the 'setup' function, the purpose of which is to
|
||||
create simulator specific setup files, create design library mappings and library
|
||||
directories and copy 'glbl.v' from the Vivado software install location into the
|
||||
current directory.
|
||||
|
||||
The 'setup' function is also used for removing the simulator generated data in
|
||||
order to reset the current directory to the original state when export_simulation
|
||||
was launched from Vivado. This generated data can be removed by specifying the
|
||||
'-reset_run' switch to the './rotate_16b.sh' script.
|
||||
|
||||
./rotate_16b.sh -reset_run
|
||||
|
||||
To keep the generated data from the previous run but regenerate the setup files and
|
||||
library directories, use the '-noclean_files' switch.
|
||||
|
||||
./rotate_16b.sh -noclean_files
|
||||
|
||||
For more information on the script, please type './rotate_16b.sh -help'.
|
||||
|
||||
2. Additional design information files:-
|
||||
|
||||
export_simulation generates following additional file that can be used for fetching
|
||||
the design files information or for integrating with external custom scripts.
|
||||
|
||||
Name : file_info.txt
|
||||
Purpose: This file contains detail design file information based on the compile order
|
||||
when export_simulation was executed from Vivado. The file contains information
|
||||
about the file type, name, whether it is part of the IP, associated library
|
||||
and the file path information.
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user