added hdmi-out demo
parent
70e67299f8
commit
556b36bdad
Binary file not shown.
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit 7a5edbe128009522608a67c76e5346edbcf95d95
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,189 @@
|
||||||
|
-- file: DCM.vhd
|
||||||
|
--
|
||||||
|
-- (c) Copyright 2008 - 2011 Xilinx, Inc. All rights reserved.
|
||||||
|
--
|
||||||
|
-- This file contains confidential and proprietary information
|
||||||
|
-- of Xilinx, Inc. and is protected under U.S. and
|
||||||
|
-- international copyright and other intellectual property
|
||||||
|
-- laws.
|
||||||
|
--
|
||||||
|
-- DISCLAIMER
|
||||||
|
-- This disclaimer is not a license and does not grant any
|
||||||
|
-- rights to the materials distributed herewith. Except as
|
||||||
|
-- otherwise provided in a valid license issued to you by
|
||||||
|
-- Xilinx, and to the maximum extent permitted by applicable
|
||||||
|
-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||||
|
-- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||||
|
-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||||
|
-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||||
|
-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||||
|
-- (2) Xilinx shall not be liable (whether in contract or tort,
|
||||||
|
-- including negligence, or under any other theory of
|
||||||
|
-- liability) for any loss or damage of any kind or nature
|
||||||
|
-- related to, arising under or in connection with these
|
||||||
|
-- materials, including for any direct, or any indirect,
|
||||||
|
-- special, incidental, or consequential loss or damage
|
||||||
|
-- (including loss of data, profits, goodwill, or any type of
|
||||||
|
-- loss or damage suffered as a result of any action brought
|
||||||
|
-- by a third party) even if such damage or loss was
|
||||||
|
-- reasonably foreseeable or Xilinx had been advised of the
|
||||||
|
-- possibility of the same.
|
||||||
|
--
|
||||||
|
-- CRITICAL APPLICATIONS
|
||||||
|
-- Xilinx products are not designed or intended to be fail-
|
||||||
|
-- safe, or for use in any application requiring fail-safe
|
||||||
|
-- performance, such as life-support or safety devices or
|
||||||
|
-- systems, Class III medical devices, nuclear facilities,
|
||||||
|
-- applications related to the deployment of airbags, or any
|
||||||
|
-- other applications that could lead to death, personal
|
||||||
|
-- injury, or severe property or environmental damage
|
||||||
|
-- (individually and collectively, "Critical
|
||||||
|
-- Applications"). Customer assumes the sole risk and
|
||||||
|
-- liability of any use of Xilinx products in Critical
|
||||||
|
-- Applications, subject only to applicable laws and
|
||||||
|
-- regulations governing limitations on product liability.
|
||||||
|
--
|
||||||
|
-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||||
|
-- PART OF THIS FILE AT ALL TIMES.
|
||||||
|
--
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
-- User entered comments
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
-- None
|
||||||
|
--
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
-- "Output Output Phase Duty Pk-to-Pk Phase"
|
||||||
|
-- "Clock Freq (MHz) (degrees) Cycle (%) Jitter (ps) Error (ps)"
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
-- CLK_OUT1____12.289______0.000______50.0______335.213____300.046
|
||||||
|
--
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
-- "Input Clock Freq (MHz) Input Jitter (UI)"
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
-- __primary_________100.000____________0.010
|
||||||
|
|
||||||
|
library ieee;
|
||||||
|
use ieee.std_logic_1164.all;
|
||||||
|
use ieee.std_logic_unsigned.all;
|
||||||
|
use ieee.std_logic_arith.all;
|
||||||
|
use ieee.numeric_std.all;
|
||||||
|
|
||||||
|
library unisim;
|
||||||
|
use unisim.vcomponents.all;
|
||||||
|
|
||||||
|
entity DCM is
|
||||||
|
port
|
||||||
|
(-- Clock in ports
|
||||||
|
CLK_100 : in std_logic;
|
||||||
|
-- Clock out ports
|
||||||
|
CLK_12_288 : out std_logic;
|
||||||
|
-- Status and control signals
|
||||||
|
RESET : in std_logic;
|
||||||
|
LOCKED : out std_logic
|
||||||
|
);
|
||||||
|
end DCM;
|
||||||
|
|
||||||
|
architecture xilinx of DCM is
|
||||||
|
attribute CORE_GENERATION_INFO : string;
|
||||||
|
attribute CORE_GENERATION_INFO of xilinx : architecture is "DCM,clk_wiz_v3_6,{component_name=DCM,use_phase_alignment=true,use_min_o_jitter=false,use_max_i_jitter=false,use_dyn_phase_shift=false,use_inclk_switchover=false,use_dyn_reconfig=false,feedback_source=FDBK_AUTO,primtype_sel=MMCM_ADV,num_out_clk=1,clkin1_period=10.000,clkin2_period=10.000,use_power_down=false,use_reset=true,use_locked=true,use_inclk_stopped=false,use_status=false,use_freeze=false,use_clk_valid=false,feedback_type=SINGLE,clock_mgr_type=MANUAL,manual_override=false}";
|
||||||
|
-- Input clock buffering / unused connectors
|
||||||
|
signal clkin1 : std_logic;
|
||||||
|
-- Output clock buffering / unused connectors
|
||||||
|
signal clkfbout : std_logic;
|
||||||
|
signal clkfbout_buf : std_logic;
|
||||||
|
signal clkfboutb_unused : std_logic;
|
||||||
|
signal clkout0 : std_logic;
|
||||||
|
signal clkout0b_unused : std_logic;
|
||||||
|
signal clkout1_unused : std_logic;
|
||||||
|
signal clkout1b_unused : std_logic;
|
||||||
|
signal clkout2_unused : std_logic;
|
||||||
|
signal clkout2b_unused : std_logic;
|
||||||
|
signal clkout3_unused : std_logic;
|
||||||
|
signal clkout3b_unused : std_logic;
|
||||||
|
signal clkout4_unused : std_logic;
|
||||||
|
signal clkout5_unused : std_logic;
|
||||||
|
signal clkout6_unused : std_logic;
|
||||||
|
-- Dynamic programming unused signals
|
||||||
|
signal do_unused : std_logic_vector(15 downto 0);
|
||||||
|
signal drdy_unused : std_logic;
|
||||||
|
-- Dynamic phase shift unused signals
|
||||||
|
signal psdone_unused : std_logic;
|
||||||
|
-- Unused status signals
|
||||||
|
signal clkfbstopped_unused : std_logic;
|
||||||
|
signal clkinstopped_unused : std_logic;
|
||||||
|
begin
|
||||||
|
|
||||||
|
|
||||||
|
-- Input buffering
|
||||||
|
--------------------------------------
|
||||||
|
clkin1 <= CLK_100;
|
||||||
|
|
||||||
|
|
||||||
|
-- Clocking primitive
|
||||||
|
--------------------------------------
|
||||||
|
-- Instantiation of the MMCM primitive
|
||||||
|
-- * Unused inputs are tied off
|
||||||
|
-- * Unused outputs are labeled unused
|
||||||
|
plle2_adv_inst : PLLE2_ADV
|
||||||
|
generic map
|
||||||
|
(BANDWIDTH => "OPTIMIZED",
|
||||||
|
COMPENSATION => "ZHOLD",
|
||||||
|
DIVCLK_DIVIDE => 5,
|
||||||
|
CLKFBOUT_MULT => 51,
|
||||||
|
CLKFBOUT_PHASE => 0.000,
|
||||||
|
CLKOUT0_DIVIDE => 83,
|
||||||
|
CLKOUT0_PHASE => 0.000,
|
||||||
|
CLKOUT0_DUTY_CYCLE => 0.500,
|
||||||
|
CLKIN1_PERIOD => 10.000,
|
||||||
|
REF_JITTER1 => 0.010)
|
||||||
|
port map
|
||||||
|
-- Output clocks
|
||||||
|
(CLKFBOUT => clkfbout,
|
||||||
|
CLKOUT0 => clkout0,
|
||||||
|
CLKOUT1 => clkout1_unused,
|
||||||
|
CLKOUT2 => clkout2_unused,
|
||||||
|
CLKOUT3 => clkout3_unused,
|
||||||
|
CLKOUT4 => clkout4_unused,
|
||||||
|
CLKOUT5 => clkout5_unused,
|
||||||
|
-- Input clock control
|
||||||
|
CLKFBIN => clkfbout,
|
||||||
|
CLKIN1 => clkin1,
|
||||||
|
CLKIN2 => '0',
|
||||||
|
-- Tied to always select the primary input clock
|
||||||
|
CLKINSEL => '1',
|
||||||
|
-- Ports for dynamic reconfiguration
|
||||||
|
DADDR => (others => '0'),
|
||||||
|
DCLK => '0',
|
||||||
|
DEN => '0',
|
||||||
|
DI => (others => '0'),
|
||||||
|
DO => do_unused,
|
||||||
|
DRDY => drdy_unused,
|
||||||
|
DWE => '0',
|
||||||
|
-- Other control and status signals
|
||||||
|
LOCKED => LOCKED,
|
||||||
|
PWRDWN => '0',
|
||||||
|
RST => RESET);
|
||||||
|
|
||||||
|
-- Output buffering
|
||||||
|
-------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
-- -- Output buffering
|
||||||
|
-- -------------------------------------
|
||||||
|
-- clkf_buf : BUFG
|
||||||
|
-- port map
|
||||||
|
-- (O => clkfbout_buf,
|
||||||
|
-- I => clkfbout);
|
||||||
|
--
|
||||||
|
--
|
||||||
|
clkout1_buf : BUFG
|
||||||
|
port map
|
||||||
|
(O => CLK_12_288,
|
||||||
|
I => clkout0);
|
||||||
|
|
||||||
|
--clkfbout_buf <= clkfbout;
|
||||||
|
--CLK_12_288 <= clkout0;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
end xilinx;
|
|
@ -0,0 +1,66 @@
|
||||||
|
----------------------------------------------------------------------------------
|
||||||
|
-- Company:
|
||||||
|
-- Engineer:
|
||||||
|
--
|
||||||
|
-- Create Date: 15:49:17 04/02/2014
|
||||||
|
-- Design Name:
|
||||||
|
-- Module Name: Div_by_4 - Behavioral
|
||||||
|
-- Project Name:
|
||||||
|
-- Target Devices:
|
||||||
|
-- Tool versions:
|
||||||
|
-- Description:
|
||||||
|
--
|
||||||
|
-- Dependencies:
|
||||||
|
--
|
||||||
|
-- Revision:
|
||||||
|
-- Revision 0.01 - File Created
|
||||||
|
-- Additional Comments:
|
||||||
|
--
|
||||||
|
----------------------------------------------------------------------------------
|
||||||
|
library IEEE;
|
||||||
|
use IEEE.STD_LOGIC_1164.ALL;
|
||||||
|
|
||||||
|
-- Uncomment the following library declaration if using
|
||||||
|
-- arithmetic functions with Signed or Unsigned values
|
||||||
|
--use IEEE.NUMERIC_STD.ALL;
|
||||||
|
|
||||||
|
-- Uncomment the following library declaration if instantiating
|
||||||
|
-- any Xilinx primitives in this code.
|
||||||
|
--library UNISIM;
|
||||||
|
--use UNISIM.VComponents.all;
|
||||||
|
|
||||||
|
entity Div_by_4 is
|
||||||
|
Port
|
||||||
|
(
|
||||||
|
CE_I : in STD_LOGIC;
|
||||||
|
CLK_I : in STD_LOGIC;
|
||||||
|
DIV_O : out STD_LOGIC
|
||||||
|
);
|
||||||
|
end Div_by_4;
|
||||||
|
|
||||||
|
architecture Behavioral of Div_by_4 is
|
||||||
|
|
||||||
|
signal cnt : integer range 0 to 2 :=0;
|
||||||
|
signal clk_div : STD_LOGIC := '0';
|
||||||
|
|
||||||
|
begin
|
||||||
|
|
||||||
|
process (CLK_I)
|
||||||
|
begin
|
||||||
|
if (CLK_I'event and CLK_I = '1') then
|
||||||
|
if (CE_I = '1') then
|
||||||
|
cnt <= cnt + 1;
|
||||||
|
if cnt = 2 then
|
||||||
|
cnt <= 0;
|
||||||
|
clk_div <= not clk_div;
|
||||||
|
end if;
|
||||||
|
else
|
||||||
|
cnt <= 0;
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
end process;
|
||||||
|
|
||||||
|
DIV_O <= clk_div;
|
||||||
|
|
||||||
|
end Behavioral;
|
||||||
|
|
|
@ -0,0 +1,61 @@
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
-- COPYRIGHT (C) 2012, Digilent RO. All rights reserved
|
||||||
|
--
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- FILE NAME : Sync_ff.vhd
|
||||||
|
-- MODULE NAME : Synchornisation Flip-Flops
|
||||||
|
-- AUTHOR : Hegbeli Ciprian
|
||||||
|
-- AUTHOR'S EMAIL : ciprian.hegbeli@digilent.ro
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- REVISION HISTORY
|
||||||
|
-- VERSION DATE AUTHOR DESCRIPTION
|
||||||
|
-- 1.0 2014-04-02 CiprianH Created
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- KEYWORDS : Sync
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
library IEEE;
|
||||||
|
use IEEE.STD_LOGIC_1164.ALL;
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Module Declaration
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
entity Sync_ff is
|
||||||
|
Port (
|
||||||
|
-- Input Clock
|
||||||
|
CLK : in STD_LOGIC;
|
||||||
|
-- Asynchorn signal
|
||||||
|
D_I : in STD_LOGIC;
|
||||||
|
-- Sync signal
|
||||||
|
Q_O : out STD_LOGIC
|
||||||
|
);
|
||||||
|
end Sync_ff;
|
||||||
|
|
||||||
|
architecture Behavioral of Sync_ff is
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Signal Declarations
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
signal sreg : std_logic_vector(1 downto 0);
|
||||||
|
|
||||||
|
attribute ASYNC_REG : string;
|
||||||
|
attribute ASYNC_REG of sreg : signal is "TRUE";
|
||||||
|
|
||||||
|
attribute TIG : string;
|
||||||
|
attribute TIG of D_I: signal is "TRUE";
|
||||||
|
|
||||||
|
begin
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Output synchro with second CLK
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
sync_b_proc_2: process(CLK)
|
||||||
|
begin
|
||||||
|
if rising_edge(CLK) then
|
||||||
|
Q_O <= sreg(1);
|
||||||
|
sreg <= sreg(0) & D_I;
|
||||||
|
end if;
|
||||||
|
end process;
|
||||||
|
|
||||||
|
end Behavioral;
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
set_false_path -through [get_pins -filter {NAME =~ */Inst_I2sCtl/Inst_SyncBit_*/sreg_reg[0]/D} -hier]
|
||||||
|
set_false_path -through [get_pins -filter {NAME =~ */Inst_I2sCtl/Inst_Rst_Sync*/FDRE_inst_*/PRE} -hier]
|
||||||
|
|
||||||
|
set_property ASYNC_REG true [get_cells -filter {NAME =~ */Inst_I2sCtl/Inst_Rst_Sync*} -hier]
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,204 @@
|
||||||
|
library ieee;
|
||||||
|
use ieee.std_logic_1164.all;
|
||||||
|
use ieee.std_logic_arith.all;
|
||||||
|
use ieee.std_logic_unsigned.all;
|
||||||
|
|
||||||
|
entity d_axi_i2s_audio_v2_0 is
|
||||||
|
generic (
|
||||||
|
C_DATA_WIDTH : integer := 24;
|
||||||
|
|
||||||
|
-- AXI4-Stream parameter
|
||||||
|
C_AXI_STREAM_DATA_WIDTH : integer := 32;
|
||||||
|
|
||||||
|
-- Parameters of Axi Slave Bus Interface AXI_L
|
||||||
|
C_AXI_L_DATA_WIDTH : integer := 32;
|
||||||
|
C_AXI_L_ADDR_WIDTH : integer := 6
|
||||||
|
);
|
||||||
|
port (
|
||||||
|
-- I2S
|
||||||
|
BCLK_O : out std_logic;
|
||||||
|
BCLK_I : in std_logic;
|
||||||
|
BCLK_T : out std_logic;
|
||||||
|
LRCLK_O : out std_logic;
|
||||||
|
LRCLK_I : in std_logic;
|
||||||
|
LRCLK_T : out std_logic;
|
||||||
|
MCLK_O : out std_logic;
|
||||||
|
SDATA_I : in std_logic;
|
||||||
|
SDATA_O : out std_logic;
|
||||||
|
CLK_100MHZ_I : in std_logic;
|
||||||
|
|
||||||
|
-- AXI4-Stream
|
||||||
|
S_AXIS_MM2S_ACLK : in std_logic;
|
||||||
|
S_AXIS_MM2S_ARESETN : in std_logic;
|
||||||
|
S_AXIS_MM2S_TREADY : out std_logic;
|
||||||
|
S_AXIS_MM2S_TDATA : in std_logic_vector(C_AXI_STREAM_DATA_WIDTH-1 downto 0);
|
||||||
|
S_AXIS_MM2S_TKEEP : in std_logic_vector((C_AXI_STREAM_DATA_WIDTH/8)-1 downto 0);
|
||||||
|
S_AXIS_MM2S_TLAST : in std_logic;
|
||||||
|
S_AXIS_MM2S_TVALID : in std_logic;
|
||||||
|
|
||||||
|
M_AXIS_S2MM_ACLK : in std_logic;
|
||||||
|
M_AXIS_S2MM_ARESETN : in std_logic;
|
||||||
|
M_AXIS_S2MM_TVALID : out std_logic;
|
||||||
|
M_AXIS_S2MM_TDATA : out std_logic_vector(C_AXI_STREAM_DATA_WIDTH-1 downto 0);
|
||||||
|
M_AXIS_S2MM_TKEEP : out std_logic_vector((C_AXI_STREAM_DATA_WIDTH/8)-1 downto 0);
|
||||||
|
M_AXIS_S2MM_TLAST : out std_logic;
|
||||||
|
M_AXIS_S2MM_TREADY : in std_logic;
|
||||||
|
|
||||||
|
|
||||||
|
-- Ports of Axi Slave Bus Interface AXI_L
|
||||||
|
AXI_L_aclk : in std_logic;
|
||||||
|
AXI_L_aresetn : in std_logic;
|
||||||
|
AXI_L_awaddr : in std_logic_vector(C_AXI_L_ADDR_WIDTH-1 downto 0);
|
||||||
|
AXI_L_awprot : in std_logic_vector(2 downto 0);
|
||||||
|
AXI_L_awvalid : in std_logic;
|
||||||
|
AXI_L_awready : out std_logic;
|
||||||
|
AXI_L_wdata : in std_logic_vector(C_AXI_L_DATA_WIDTH-1 downto 0);
|
||||||
|
AXI_L_wstrb : in std_logic_vector((C_AXI_L_DATA_WIDTH/8)-1 downto 0);
|
||||||
|
AXI_L_wvalid : in std_logic;
|
||||||
|
AXI_L_wready : out std_logic;
|
||||||
|
AXI_L_bresp : out std_logic_vector(1 downto 0);
|
||||||
|
AXI_L_bvalid : out std_logic;
|
||||||
|
AXI_L_bready : in std_logic;
|
||||||
|
AXI_L_araddr : in std_logic_vector(C_AXI_L_ADDR_WIDTH-1 downto 0);
|
||||||
|
AXI_L_arprot : in std_logic_vector(2 downto 0);
|
||||||
|
AXI_L_arvalid : in std_logic;
|
||||||
|
AXI_L_arready : out std_logic;
|
||||||
|
AXI_L_rdata : out std_logic_vector(C_AXI_L_DATA_WIDTH-1 downto 0);
|
||||||
|
AXI_L_rresp : out std_logic_vector(1 downto 0);
|
||||||
|
AXI_L_rvalid : out std_logic;
|
||||||
|
AXI_L_rready : in std_logic
|
||||||
|
);
|
||||||
|
end d_axi_i2s_audio_v2_0;
|
||||||
|
|
||||||
|
architecture arch_imp of d_axi_i2s_audio_v2_0 is
|
||||||
|
|
||||||
|
-- component declaration
|
||||||
|
component d_axi_i2s_audio_v2_0_AXI_L is
|
||||||
|
generic (
|
||||||
|
-- Stream width constant
|
||||||
|
C_AXI_STREAM_DATA_WIDTH : integer := 32;
|
||||||
|
-- audio data width constant
|
||||||
|
C_DATA_WIDTH : integer := 24;
|
||||||
|
C_S_AXI_DATA_WIDTH : integer := 32;
|
||||||
|
C_S_AXI_ADDR_WIDTH : integer := 6
|
||||||
|
);
|
||||||
|
port (
|
||||||
|
-- I2S
|
||||||
|
BCLK_O : out std_logic;
|
||||||
|
BCLK_I : in std_logic;
|
||||||
|
BCLK_T : out std_logic;
|
||||||
|
LRCLK_O : out std_logic;
|
||||||
|
LRCLK_I : in std_logic;
|
||||||
|
LRCLK_T : out std_logic;
|
||||||
|
MCLK_O : out std_logic;
|
||||||
|
SDATA_I : in std_logic;
|
||||||
|
SDATA_O : out std_logic;
|
||||||
|
CLK_100MHZ_I : in std_logic;
|
||||||
|
|
||||||
|
-- AXI4-Stream
|
||||||
|
S_AXIS_MM2S_ACLK : in std_logic;
|
||||||
|
S_AXIS_MM2S_ARESETN : in std_logic;
|
||||||
|
S_AXIS_MM2S_TREADY : out std_logic;
|
||||||
|
S_AXIS_MM2S_TDATA : in std_logic_vector(C_AXI_STREAM_DATA_WIDTH-1 downto 0);
|
||||||
|
S_AXIS_MM2S_TKEEP : in std_logic_vector((C_AXI_STREAM_DATA_WIDTH/8)-1 downto 0);
|
||||||
|
S_AXIS_MM2S_TLAST : in std_logic;
|
||||||
|
S_AXIS_MM2S_TVALID : in std_logic;
|
||||||
|
|
||||||
|
M_AXIS_S2MM_ACLK : in std_logic;
|
||||||
|
M_AXIS_S2MM_ARESETN : in std_logic;
|
||||||
|
M_AXIS_S2MM_TVALID : out std_logic;
|
||||||
|
M_AXIS_S2MM_TDATA : out std_logic_vector(C_AXI_STREAM_DATA_WIDTH-1 downto 0);
|
||||||
|
M_AXIS_S2MM_TKEEP : out std_logic_vector((C_AXI_STREAM_DATA_WIDTH/8)-1 downto 0);
|
||||||
|
M_AXIS_S2MM_TLAST : out std_logic;
|
||||||
|
M_AXIS_S2MM_TREADY : in std_logic;
|
||||||
|
|
||||||
|
S_AXI_ACLK : in std_logic;
|
||||||
|
S_AXI_ARESETN : in std_logic;
|
||||||
|
S_AXI_AWADDR : in std_logic_vector(C_S_AXI_ADDR_WIDTH-1 downto 0);
|
||||||
|
S_AXI_AWPROT : in std_logic_vector(2 downto 0);
|
||||||
|
S_AXI_AWVALID : in std_logic;
|
||||||
|
S_AXI_AWREADY : out std_logic;
|
||||||
|
S_AXI_WDATA : in std_logic_vector(C_S_AXI_DATA_WIDTH-1 downto 0);
|
||||||
|
S_AXI_WSTRB : in std_logic_vector((C_S_AXI_DATA_WIDTH/8)-1 downto 0);
|
||||||
|
S_AXI_WVALID : in std_logic;
|
||||||
|
S_AXI_WREADY : out std_logic;
|
||||||
|
S_AXI_BRESP : out std_logic_vector(1 downto 0);
|
||||||
|
S_AXI_BVALID : out std_logic;
|
||||||
|
S_AXI_BREADY : in std_logic;
|
||||||
|
S_AXI_ARADDR : in std_logic_vector(C_S_AXI_ADDR_WIDTH-1 downto 0);
|
||||||
|
S_AXI_ARPROT : in std_logic_vector(2 downto 0);
|
||||||
|
S_AXI_ARVALID : in std_logic;
|
||||||
|
S_AXI_ARREADY : out std_logic;
|
||||||
|
S_AXI_RDATA : out std_logic_vector(C_S_AXI_DATA_WIDTH-1 downto 0);
|
||||||
|
S_AXI_RRESP : out std_logic_vector(1 downto 0);
|
||||||
|
S_AXI_RVALID : out std_logic;
|
||||||
|
S_AXI_RREADY : in std_logic
|
||||||
|
);
|
||||||
|
end component d_axi_i2s_audio_v2_0_AXI_L;
|
||||||
|
|
||||||
|
begin
|
||||||
|
|
||||||
|
-- Instantiation of Axi Bus Interface AXI_L
|
||||||
|
d_axi_i2s_audio_v2_0_AXI_L_inst : d_axi_i2s_audio_v2_0_AXI_L
|
||||||
|
generic map (
|
||||||
|
C_DATA_WIDTH => C_DATA_WIDTH,
|
||||||
|
C_AXI_STREAM_DATA_WIDTH => C_AXI_STREAM_DATA_WIDTH,
|
||||||
|
C_S_AXI_DATA_WIDTH => C_AXI_L_DATA_WIDTH,
|
||||||
|
C_S_AXI_ADDR_WIDTH => C_AXI_L_ADDR_WIDTH
|
||||||
|
)
|
||||||
|
port map (
|
||||||
|
BCLK_O => BCLK_O,
|
||||||
|
BCLK_I => BCLK_I,
|
||||||
|
BCLK_T => BCLK_T,
|
||||||
|
LRCLK_O => LRCLK_O,
|
||||||
|
LRCLK_I => LRCLK_I,
|
||||||
|
LRCLK_T => LRCLK_T,
|
||||||
|
MCLK_O => MCLK_O,
|
||||||
|
SDATA_I => SDATA_I,
|
||||||
|
SDATA_O => SDATA_O,
|
||||||
|
CLK_100MHZ_I => CLK_100MHZ_I,
|
||||||
|
|
||||||
|
S_AXIS_MM2S_ACLK => S_AXIS_MM2S_ACLK,
|
||||||
|
S_AXIS_MM2S_ARESETN => S_AXIS_MM2S_ARESETN,
|
||||||
|
S_AXIS_MM2S_TREADY => S_AXIS_MM2S_TREADY,
|
||||||
|
S_AXIS_MM2S_TDATA => S_AXIS_MM2S_TDATA,
|
||||||
|
S_AXIS_MM2S_TKEEP => S_AXIS_MM2S_TKEEP,
|
||||||
|
S_AXIS_MM2S_TLAST => S_AXIS_MM2S_TLAST,
|
||||||
|
S_AXIS_MM2S_TVALID => S_AXIS_MM2S_TVALID,
|
||||||
|
|
||||||
|
M_AXIS_S2MM_ACLK => M_AXIS_S2MM_ACLK,
|
||||||
|
M_AXIS_S2MM_ARESETN => M_AXIS_S2MM_ARESETN,
|
||||||
|
M_AXIS_S2MM_TDATA => M_AXIS_S2MM_TDATA,
|
||||||
|
M_AXIS_S2MM_TLAST => M_AXIS_S2MM_TLAST,
|
||||||
|
M_AXIS_S2MM_TREADY => M_AXIS_S2MM_TREADY,
|
||||||
|
M_AXIS_S2MM_TKEEP => M_AXIS_S2MM_TKEEP,
|
||||||
|
M_AXIS_S2MM_TVALID => M_AXIS_S2MM_TVALID,
|
||||||
|
|
||||||
|
S_AXI_ACLK => AXI_L_aclk,
|
||||||
|
S_AXI_ARESETN => AXI_L_aresetn,
|
||||||
|
S_AXI_AWADDR => AXI_L_awaddr,
|
||||||
|
S_AXI_AWPROT => AXI_L_awprot,
|
||||||
|
S_AXI_AWVALID => AXI_L_awvalid,
|
||||||
|
S_AXI_AWREADY => AXI_L_awready,
|
||||||
|
S_AXI_WDATA => AXI_L_wdata,
|
||||||
|
S_AXI_WSTRB => AXI_L_wstrb,
|
||||||
|
S_AXI_WVALID => AXI_L_wvalid,
|
||||||
|
S_AXI_WREADY => AXI_L_wready,
|
||||||
|
S_AXI_BRESP => AXI_L_bresp,
|
||||||
|
S_AXI_BVALID => AXI_L_bvalid,
|
||||||
|
S_AXI_BREADY => AXI_L_bready,
|
||||||
|
S_AXI_ARADDR => AXI_L_araddr,
|
||||||
|
S_AXI_ARPROT => AXI_L_arprot,
|
||||||
|
S_AXI_ARVALID => AXI_L_arvalid,
|
||||||
|
S_AXI_ARREADY => AXI_L_arready,
|
||||||
|
S_AXI_RDATA => AXI_L_rdata,
|
||||||
|
S_AXI_RRESP => AXI_L_rresp,
|
||||||
|
S_AXI_RVALID => AXI_L_rvalid,
|
||||||
|
S_AXI_RREADY => AXI_L_rready
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Add user logic here
|
||||||
|
|
||||||
|
-- User logic ends
|
||||||
|
|
||||||
|
end arch_imp;
|
|
@ -0,0 +1,781 @@
|
||||||
|
library ieee;
|
||||||
|
use ieee.std_logic_1164.all;
|
||||||
|
use ieee.std_logic_arith.all;
|
||||||
|
use ieee.std_logic_unsigned.all;
|
||||||
|
|
||||||
|
entity d_axi_i2s_audio_v2_0_AXI_L is
|
||||||
|
generic (
|
||||||
|
-- Stream width constant
|
||||||
|
C_AXI_STREAM_DATA_WIDTH : integer := 32;
|
||||||
|
-- audio data width constant
|
||||||
|
C_DATA_WIDTH : integer := 24;
|
||||||
|
-- Width of S_AXI data bus
|
||||||
|
C_S_AXI_DATA_WIDTH : integer := 32;
|
||||||
|
-- Width of S_AXI address bus
|
||||||
|
C_S_AXI_ADDR_WIDTH : integer := 6
|
||||||
|
);
|
||||||
|
port (
|
||||||
|
|
||||||
|
-- I2S
|
||||||
|
BCLK_O : out std_logic;
|
||||||
|
BCLK_I : in std_logic;
|
||||||
|
BCLK_T : out std_logic;
|
||||||
|
LRCLK_O : out std_logic;
|
||||||
|
LRCLK_I : in std_logic;
|
||||||
|
LRCLK_T : out std_logic;
|
||||||
|
MCLK_O : out std_logic;
|
||||||
|
SDATA_I : in std_logic;
|
||||||
|
SDATA_O : out std_logic;
|
||||||
|
CLK_100MHZ_I : in std_logic;
|
||||||
|
|
||||||
|
-- AXI4-Stream
|
||||||
|
S_AXIS_MM2S_ACLK : in std_logic;
|
||||||
|
S_AXIS_MM2S_ARESETN : in std_logic;
|
||||||
|
S_AXIS_MM2S_TREADY : out std_logic;
|
||||||
|
S_AXIS_MM2S_TDATA : in std_logic_vector(C_AXI_STREAM_DATA_WIDTH-1 downto 0);
|
||||||
|
S_AXIS_MM2S_TKEEP : in std_logic_vector((C_AXI_STREAM_DATA_WIDTH/8)-1 downto 0);
|
||||||
|
S_AXIS_MM2S_TLAST : in std_logic;
|
||||||
|
S_AXIS_MM2S_TVALID : in std_logic;
|
||||||
|
|
||||||
|
M_AXIS_S2MM_ACLK : in std_logic;
|
||||||
|
M_AXIS_S2MM_ARESETN : in std_logic;
|
||||||
|
M_AXIS_S2MM_TVALID : out std_logic;
|
||||||
|
M_AXIS_S2MM_TDATA : out std_logic_vector(C_AXI_STREAM_DATA_WIDTH-1 downto 0);
|
||||||
|
M_AXIS_S2MM_TKEEP : out std_logic_vector((C_AXI_STREAM_DATA_WIDTH/8)-1 downto 0);
|
||||||
|
M_AXIS_S2MM_TLAST : out std_logic;
|
||||||
|
M_AXIS_S2MM_TREADY : in std_logic;
|
||||||
|
|
||||||
|
-- Global Clock Signal
|
||||||
|
S_AXI_ACLK : in std_logic;
|
||||||
|
-- Global Reset Signal. This Signal is Active LOW
|
||||||
|
S_AXI_ARESETN : in std_logic;
|
||||||
|
-- Write address (issued by master, acceped by Slave)
|
||||||
|
S_AXI_AWADDR : in std_logic_vector(C_S_AXI_ADDR_WIDTH-1 downto 0);
|
||||||
|
-- Write channel Protection type. This signal indicates the
|
||||||
|
-- privilege and security level of the transaction, and whether
|
||||||
|
-- the transaction is a data access or an instruction access.
|
||||||
|
S_AXI_AWPROT : in std_logic_vector(2 downto 0);
|
||||||
|
-- Write address valid. This signal indicates that the master signaling
|
||||||
|
-- valid write address and control information.
|
||||||
|
S_AXI_AWVALID : in std_logic;
|
||||||
|
-- Write address ready. This signal indicates that the slave is ready
|
||||||
|
-- to accept an address and associated control signals.
|
||||||
|
S_AXI_AWREADY : out std_logic;
|
||||||
|
-- Write data (issued by master, acceped by Slave)
|
||||||
|
S_AXI_WDATA : in std_logic_vector(C_S_AXI_DATA_WIDTH-1 downto 0);
|
||||||
|
-- Write strobes. This signal indicates which byte lanes hold
|
||||||
|
-- valid data. There is one write strobe bit for each eight
|
||||||
|
-- bits of the write data bus.
|
||||||
|
S_AXI_WSTRB : in std_logic_vector((C_S_AXI_DATA_WIDTH/8)-1 downto 0);
|
||||||
|
-- Write valid. This signal indicates that valid write
|
||||||
|
-- data and strobes are available.
|
||||||
|
S_AXI_WVALID : in std_logic;
|
||||||
|
-- Write ready. This signal indicates that the slave
|
||||||
|
-- can accept the write data.
|
||||||
|
S_AXI_WREADY : out std_logic;
|
||||||
|
-- Write response. This signal indicates the status
|
||||||
|
-- of the write transaction.
|
||||||
|
S_AXI_BRESP : out std_logic_vector(1 downto 0);
|
||||||
|
-- Write response valid. This signal indicates that the channel
|
||||||
|
-- is signaling a valid write response.
|
||||||
|
S_AXI_BVALID : out std_logic;
|
||||||
|
-- Response ready. This signal indicates that the master
|
||||||
|
-- can accept a write response.
|
||||||
|
S_AXI_BREADY : in std_logic;
|
||||||
|
-- Read address (issued by master, acceped by Slave)
|
||||||
|
S_AXI_ARADDR : in std_logic_vector(C_S_AXI_ADDR_WIDTH-1 downto 0);
|
||||||
|
-- Protection type. This signal indicates the privilege
|
||||||
|
-- and security level of the transaction, and whether the
|
||||||
|
-- transaction is a data access or an instruction access.
|
||||||
|
S_AXI_ARPROT : in std_logic_vector(2 downto 0);
|
||||||
|
-- Read address valid. This signal indicates that the channel
|
||||||
|
-- is signaling valid read address and control information.
|
||||||
|
S_AXI_ARVALID : in std_logic;
|
||||||
|
-- Read address ready. This signal indicates that the slave is
|
||||||
|
-- ready to accept an address and associated control signals.
|
||||||
|
S_AXI_ARREADY : out std_logic;
|
||||||
|
-- Read data (issued by slave)
|
||||||
|
S_AXI_RDATA : out std_logic_vector(C_S_AXI_DATA_WIDTH-1 downto 0);
|
||||||
|
-- Read response. This signal indicates the status of the
|
||||||
|
-- read transfer.
|
||||||
|
S_AXI_RRESP : out std_logic_vector(1 downto 0);
|
||||||
|
-- Read valid. This signal indicates that the channel is
|
||||||
|
-- signaling the required read data.
|
||||||
|
S_AXI_RVALID : out std_logic;
|
||||||
|
-- Read ready. This signal indicates that the master can
|
||||||
|
-- accept the read data and response information.
|
||||||
|
S_AXI_RREADY : in std_logic
|
||||||
|
);
|
||||||
|
end d_axi_i2s_audio_v2_0_AXI_L;
|
||||||
|
|
||||||
|
architecture arch_imp of d_axi_i2s_audio_v2_0_AXI_L is
|
||||||
|
|
||||||
|
-- Them main control component of the I2S protocol
|
||||||
|
component i2s_rx_tx
|
||||||
|
generic(
|
||||||
|
C_DATA_WIDTH : integer := 24);
|
||||||
|
port(
|
||||||
|
CLK_I : in std_logic;
|
||||||
|
RST_I : in std_logic;
|
||||||
|
TX_RS_I : in std_logic;
|
||||||
|
RX_RS_I : in std_logic;
|
||||||
|
TX_FIFO_RST_I : in std_logic;
|
||||||
|
TX_FIFO_D_I : in std_logic_vector(C_DATA_WIDTH-1 downto 0);
|
||||||
|
TX_FIFO_WR_EN_I : in std_logic;
|
||||||
|
RX_FIFO_RST_I : in std_logic;
|
||||||
|
RX_FIFO_D_O : out std_logic_vector(C_DATA_WIDTH-1 downto 0);
|
||||||
|
RX_FIFO_RD_EN_I : in std_logic;
|
||||||
|
TX_FIFO_EMPTY_O : out std_logic;
|
||||||
|
TX_FIFO_FULL_O : out std_logic;
|
||||||
|
RX_FIFO_EMPTY_O : out std_logic;
|
||||||
|
RX_FIFO_FULL_O : out std_logic;
|
||||||
|
CLK_100MHZ_I : in std_logic;
|
||||||
|
CTL_MASTER_MODE_I : in std_logic;
|
||||||
|
|
||||||
|
-- DBG
|
||||||
|
DBG_TX_FIFO_RST_I : out std_logic;
|
||||||
|
DBG_TX_FIFO_RD_EN_I : out std_logic;
|
||||||
|
DBG_TX_FIFO_WR_EN_I : out std_logic;
|
||||||
|
DBG_TX_FIFO_EMPTY_O : out std_logic;
|
||||||
|
DBG_TX_FIFO_FULL_O : out std_logic;
|
||||||
|
DBG_TX_FIFO_D_I : out std_logic_vector(C_DATA_WIDTH-1 downto 0);
|
||||||
|
DBG_TX_FIFO_D_O : out std_logic_vector(C_DATA_WIDTH-1 downto 0);
|
||||||
|
DBG_TX_RS_I : out std_logic;
|
||||||
|
|
||||||
|
DBG_RX_FIFO_RST_I : out std_logic;
|
||||||
|
DBG_RX_FIFO_WR_EN_I : out std_logic;
|
||||||
|
DBG_RX_FIFO_RD_EN_I : out std_logic;
|
||||||
|
DBG_RX_FIFO_FULL_O : out std_logic;
|
||||||
|
DBG_RX_FIFO_EMPTY_O : out std_logic;
|
||||||
|
DBG_RX_FIFO_D_O : out std_logic_vector(C_DATA_WIDTH-1 downto 0);
|
||||||
|
DBG_RX_FIFO_D_I : out std_logic_vector(C_DATA_WIDTH-1 downto 0);
|
||||||
|
DBG_RX_RS_I : out std_logic;
|
||||||
|
|
||||||
|
SAMPLING_RATE_I : in std_logic_vector(3 downto 0);
|
||||||
|
BCLK_O : out std_logic;
|
||||||
|
BCLK_I : in std_logic;
|
||||||
|
BCLK_T : out std_logic;
|
||||||
|
LRCLK_O : out std_logic;
|
||||||
|
LRCLK_I : in std_logic;
|
||||||
|
LRCLK_T : out std_logic;
|
||||||
|
MCLK_O : out std_logic;
|
||||||
|
SDATA_I : in std_logic;
|
||||||
|
SDATA_O : out std_logic);
|
||||||
|
end component;
|
||||||
|
|
||||||
|
-- the stream module which controls the reciving and transmiting of data
|
||||||
|
-- on the AXI stream
|
||||||
|
component i2s_stream
|
||||||
|
generic(
|
||||||
|
C_AXI_STREAM_DATA_WIDTH : integer := 32;
|
||||||
|
C_DATA_WIDTH : integer := 24
|
||||||
|
|
||||||
|
);
|
||||||
|
port(
|
||||||
|
TX_FIFO_FULL_I : in std_logic;
|
||||||
|
RX_FIFO_EMPTY_I : in std_logic;
|
||||||
|
TX_FIFO_D_O : out std_logic_vector(C_DATA_WIDTH-1 downto 0);
|
||||||
|
RX_FIFO_D_I : in std_logic_vector(C_DATA_WIDTH-1 downto 0);
|
||||||
|
NR_OF_SMPL_I : in std_logic_vector(20 downto 0);
|
||||||
|
TX_STREAM_EN_I : in std_logic;
|
||||||
|
RX_STREAM_EN_I : in std_logic;
|
||||||
|
S_AXIS_MM2S_ACLK_I : in std_logic;
|
||||||
|
S_AXIS_MM2S_ARESETN : in std_logic;
|
||||||
|
S_AXIS_MM2S_TREADY_O : out std_logic;
|
||||||
|
S_AXIS_MM2S_TDATA_I : in std_logic_vector(C_AXI_STREAM_DATA_WIDTH-1 downto 0);
|
||||||
|
S_AXIS_MM2S_TLAST_I : in std_logic;
|
||||||
|
S_AXIS_MM2S_TVALID_I : in std_logic;
|
||||||
|
M_AXIS_S2MM_ACLK_I : in std_logic;
|
||||||
|
M_AXIS_S2MM_ARESETN : in std_logic;
|
||||||
|
M_AXIS_S2MM_TDATA_O : out std_logic_vector(C_AXI_STREAM_DATA_WIDTH-1 downto 0);
|
||||||
|
M_AXIS_S2MM_TLAST_O : out std_logic;
|
||||||
|
M_AXIS_S2MM_TVALID_O : out std_logic;
|
||||||
|
M_AXIS_S2MM_TREADY_I : in std_logic;
|
||||||
|
M_AXIS_S2MM_TKEEP_O : out std_logic_vector((C_AXI_STREAM_DATA_WIDTH/8)-1 downto 0)
|
||||||
|
);
|
||||||
|
end component;
|
||||||
|
|
||||||
|
-- Main AXI stream CLK divider (by 4) for generating the TX_FIFO_WR_EN_I signal
|
||||||
|
component Div_by_4
|
||||||
|
port(
|
||||||
|
CE_I : in STD_LOGIC;
|
||||||
|
CLK_I : in STD_LOGIC;
|
||||||
|
DIV_O : out STD_LOGIC
|
||||||
|
);
|
||||||
|
end component;
|
||||||
|
|
||||||
|
------------------------------------------
|
||||||
|
-- Signals for user logic slave model s/w accessible register example
|
||||||
|
------------------------------------------
|
||||||
|
|
||||||
|
-- I2S control signals
|
||||||
|
signal I2S_RST_I : std_logic;
|
||||||
|
signal TX_RS_I : std_logic;
|
||||||
|
signal RX_RS_I : std_logic;
|
||||||
|
|
||||||
|
-- TX_FIFO siganals
|
||||||
|
signal TX_FIFO_RST_I : std_logic;
|
||||||
|
signal TX_FIFO_WR_EN_I : std_logic;
|
||||||
|
signal TX_FIFO_D_I : std_logic_vector(C_DATA_WIDTH-1 downto 0);
|
||||||
|
signal TX_FIFO_D_O : std_logic_vector(C_DATA_WIDTH-1 downto 0);
|
||||||
|
signal TX_FIFO_EMPTY_O : std_logic;
|
||||||
|
signal TX_FIFO_FULL_O : std_logic;
|
||||||
|
|
||||||
|
-- RX_FIFO siganals
|
||||||
|
signal RX_FIFO_RST_I : std_logic;
|
||||||
|
signal RX_FIFO_RD_EN_I : std_logic;
|
||||||
|
signal RX_FIFO_D_O : std_logic_vector(C_DATA_WIDTH-1 downto 0);
|
||||||
|
signal RX_FIFO_EMPTY_O : std_logic;
|
||||||
|
signal RX_FIFO_FULL_O : std_logic;
|
||||||
|
|
||||||
|
-- Clock control signals (BCLK/LRCLK)
|
||||||
|
signal CTL_MASTER_MODE_I : std_logic;
|
||||||
|
signal SAMPLING_RATE_I : std_logic_vector(3 downto 0);
|
||||||
|
|
||||||
|
--Stream specific signals
|
||||||
|
signal NR_OF_SMPL_I : std_logic_vector(20 downto 0);
|
||||||
|
signal DIV_CE : std_logic;
|
||||||
|
signal TX_FIFO_WR_EN_STREAM_O : std_logic;
|
||||||
|
signal TX_STREAM_EN_I : std_logic;
|
||||||
|
signal RX_STREAM_EN_I : std_logic;
|
||||||
|
|
||||||
|
|
||||||
|
signal RxFifoRdEn : std_logic;
|
||||||
|
signal RxFifoRdEn_dly : std_logic;
|
||||||
|
signal TxFifoWrEn : std_logic;
|
||||||
|
signal TxFifoWrEn_dly : std_logic;
|
||||||
|
signal M_AXIS_S2MM_TVALID_int : std_logic;
|
||||||
|
|
||||||
|
-- DBG
|
||||||
|
signal DBG_TX_FIFO_RST_I : std_logic;
|
||||||
|
signal DBG_TX_FIFO_RD_EN_I : std_logic;
|
||||||
|
signal DBG_TX_FIFO_WR_EN_I : std_logic;
|
||||||
|
signal DBG_TX_FIFO_EMPTY_O : std_logic;
|
||||||
|
signal DBG_TX_FIFO_FULL_O : std_logic;
|
||||||
|
signal DBG_TX_FIFO_D_O : std_logic_vector(C_DATA_WIDTH-1 downto 0);
|
||||||
|
signal DBG_TX_FIFO_D_I : std_logic_vector(C_DATA_WIDTH-1 downto 0);
|
||||||
|
|
||||||
|
signal DBG_RX_FIFO_RST_I : std_logic;
|
||||||
|
signal DBG_RX_FIFO_WR_EN_I : std_logic;
|
||||||
|
signal DBG_RX_FIFO_RD_EN_I : std_logic;
|
||||||
|
signal DBG_RX_FIFO_FULL_O : std_logic;
|
||||||
|
signal DBG_RX_FIFO_EMPTY_O : std_logic;
|
||||||
|
signal DBG_RX_FIFO_D_O : std_logic_vector(C_DATA_WIDTH-1 downto 0);
|
||||||
|
signal DBG_RX_FIFO_D_I : std_logic_vector(C_DATA_WIDTH-1 downto 0);
|
||||||
|
|
||||||
|
signal DBG_TX_RS_I : std_logic;
|
||||||
|
signal DBG_RX_RS_I : std_logic;
|
||||||
|
|
||||||
|
-- AXI4LITE signals
|
||||||
|
signal axi_awaddr : std_logic_vector(C_S_AXI_ADDR_WIDTH-1 downto 0);
|
||||||
|
signal axi_awready : std_logic;
|
||||||
|
signal axi_wready : std_logic;
|
||||||
|
signal axi_bresp : std_logic_vector(1 downto 0);
|
||||||
|
signal axi_bvalid : std_logic;
|
||||||
|
signal axi_araddr : std_logic_vector(C_S_AXI_ADDR_WIDTH-1 downto 0);
|
||||||
|
signal axi_arready : std_logic;
|
||||||
|
signal axi_rdata : std_logic_vector(C_S_AXI_DATA_WIDTH-1 downto 0);
|
||||||
|
signal axi_rresp : std_logic_vector(1 downto 0);
|
||||||
|
signal axi_rvalid : std_logic;
|
||||||
|
|
||||||
|
-- Example-specific design signals
|
||||||
|
-- local parameter for addressing 32 bit / 64 bit C_S_AXI_DATA_WIDTH
|
||||||
|
-- ADDR_LSB is used for addressing 32/64 bit registers/memories
|
||||||
|
-- ADDR_LSB = 2 for 32 bits (n downto 2)
|
||||||
|
-- ADDR_LSB = 3 for 64 bits (n downto 3)
|
||||||
|
constant ADDR_LSB : integer := (C_S_AXI_DATA_WIDTH/32)+ 1;
|
||||||
|
constant OPT_MEM_ADDR_BITS : integer := 3;
|
||||||
|
------------------------------------------------
|
||||||
|
---- Signals for user logic register space example
|
||||||
|
--------------------------------------------------
|
||||||
|
---- Number of Slave Registers 10
|
||||||
|
signal I2S_RESET_REG :std_logic_vector(C_S_AXI_DATA_WIDTH-1 downto 0);
|
||||||
|
signal I2S_TRANSFER_CONTROL_REG :std_logic_vector(C_S_AXI_DATA_WIDTH-1 downto 0);
|
||||||
|
signal I2S_FIFO_CONTROL_REG :std_logic_vector(C_S_AXI_DATA_WIDTH-1 downto 0);
|
||||||
|
signal I2S_DATA_IN_REG :std_logic_vector(C_S_AXI_DATA_WIDTH-1 downto 0);
|
||||||
|
signal I2S_DATA_OUT_REG :std_logic_vector(C_S_AXI_DATA_WIDTH-1 downto 0);
|
||||||
|
signal I2S_STATUS_REG :std_logic_vector(C_S_AXI_DATA_WIDTH-1 downto 0);
|
||||||
|
signal I2S_CLOCK_CONTROL_REG :std_logic_vector(C_S_AXI_DATA_WIDTH-1 downto 0);
|
||||||
|
signal I2S_PERIOD_COUNT_REG :std_logic_vector(C_S_AXI_DATA_WIDTH-1 downto 0);
|
||||||
|
signal I2S_STREAM_CONTROL_REG :std_logic_vector(C_S_AXI_DATA_WIDTH-1 downto 0);
|
||||||
|
signal slv_reg9 :std_logic_vector(C_S_AXI_DATA_WIDTH-1 downto 0);
|
||||||
|
signal slv_reg_rden : std_logic;
|
||||||
|
signal slv_reg_wren : std_logic;
|
||||||
|
signal reg_data_out :std_logic_vector(C_S_AXI_DATA_WIDTH-1 downto 0);
|
||||||
|
signal byte_index : integer;
|
||||||
|
|
||||||
|
attribute KEEP : string;
|
||||||
|
|
||||||
|
attribute KEEP of DBG_TX_FIFO_RST_I : signal is "TRUE";
|
||||||
|
attribute KEEP of DBG_TX_FIFO_WR_EN_I : signal is "TRUE";
|
||||||
|
attribute KEEP of DBG_TX_FIFO_RD_EN_I : signal is "TRUE";
|
||||||
|
attribute KEEP of DBG_TX_FIFO_EMPTY_O : signal is "TRUE";
|
||||||
|
attribute KEEP of DBG_TX_FIFO_FULL_O : signal is "TRUE";
|
||||||
|
attribute KEEP of DBG_TX_FIFO_D_I : signal is "TRUE";
|
||||||
|
attribute KEEP of DBG_TX_FIFO_D_O : signal is "TRUE";
|
||||||
|
|
||||||
|
attribute KEEP of DBG_RX_FIFO_RST_I : signal is "TRUE";
|
||||||
|
attribute KEEP of DBG_RX_FIFO_WR_EN_I : signal is "TRUE";
|
||||||
|
attribute KEEP of DBG_RX_FIFO_RD_EN_I : signal is "TRUE";
|
||||||
|
attribute KEEP of DBG_RX_FIFO_FULL_O : signal is "TRUE";
|
||||||
|
attribute KEEP of DBG_RX_FIFO_EMPTY_O : signal is "TRUE";
|
||||||
|
attribute KEEP of DBG_RX_FIFO_D_I : signal is "TRUE";
|
||||||
|
attribute KEEP of DBG_RX_FIFO_D_O : signal is "TRUE";
|
||||||
|
|
||||||
|
attribute KEEP of DBG_TX_RS_I : signal is "TRUE";
|
||||||
|
attribute KEEP of DBG_RX_RS_I : signal is "TRUE";
|
||||||
|
|
||||||
|
begin
|
||||||
|
-- I/O Connections assignments
|
||||||
|
|
||||||
|
S_AXI_AWREADY <= axi_awready;
|
||||||
|
S_AXI_WREADY <= axi_wready;
|
||||||
|
S_AXI_BRESP <= axi_bresp;
|
||||||
|
S_AXI_BVALID <= axi_bvalid;
|
||||||
|
S_AXI_ARREADY <= axi_arready;
|
||||||
|
S_AXI_RDATA <= axi_rdata;
|
||||||
|
S_AXI_RRESP <= axi_rresp;
|
||||||
|
S_AXI_RVALID <= axi_rvalid;
|
||||||
|
|
||||||
|
I2S_RST_I <= I2S_RESET_REG(0);
|
||||||
|
TX_RS_I <= I2S_TRANSFER_CONTROL_REG(0);
|
||||||
|
RX_RS_I <= I2S_TRANSFER_CONTROL_REG(1);
|
||||||
|
TX_FIFO_WR_EN_I <= not TX_FIFO_FULL_O when (RX_STREAM_EN_I = '1' and S_AXIS_MM2S_TVALID = '1') else
|
||||||
|
TxFifoWrEn when (RX_STREAM_EN_I = '0') else
|
||||||
|
'0';
|
||||||
|
RX_FIFO_RD_EN_I <= not RX_FIFO_EMPTY_O when (TX_STREAM_EN_I = '1' and M_AXIS_S2MM_TREADY = '1' and M_AXIS_S2MM_TVALID_int = '1') else
|
||||||
|
RxFifoRdEn when (TX_STREAM_EN_I = '0') else
|
||||||
|
'0';
|
||||||
|
TX_FIFO_RST_I <= (not S_AXIS_MM2S_ARESETN) or I2S_FIFO_CONTROL_REG(30);
|
||||||
|
RX_FIFO_RST_I <= (not M_AXIS_S2MM_ARESETN) or I2S_FIFO_CONTROL_REG(31);
|
||||||
|
TX_FIFO_D_I <= TX_FIFO_D_O when RX_STREAM_EN_I = '1' else
|
||||||
|
I2S_DATA_IN_REG(C_DATA_WIDTH-1 downto 0);
|
||||||
|
SAMPLING_RATE_I <= I2S_CLOCK_CONTROL_REG(3 downto 0);
|
||||||
|
CTL_MASTER_MODE_I <= I2S_CLOCK_CONTROL_REG(16);
|
||||||
|
NR_OF_SMPL_I <= I2S_PERIOD_COUNT_REG(20 downto 0);
|
||||||
|
TX_STREAM_EN_I <= I2S_STREAM_CONTROL_REG(0);
|
||||||
|
RX_STREAM_EN_I <= I2S_STREAM_CONTROL_REG(1);
|
||||||
|
DIV_CE <= RX_STREAM_EN_I and (S_AXIS_MM2S_TVALID and not TX_FIFO_FULL_O);
|
||||||
|
|
||||||
|
-- DBG_RX_FIFO_D_O <= I2S_DATA_OUT_REG(C_DATA_WIDTH-1 downto 0);
|
||||||
|
|
||||||
|
M_AXIS_S2MM_TVALID <= M_AXIS_S2MM_TVALID_int;
|
||||||
|
|
||||||
|
RDWR_PULSE: process(S_AXI_ACLK)
|
||||||
|
begin
|
||||||
|
if rising_edge(S_AXI_ACLK) then
|
||||||
|
RxFifoRdEn_dly <= I2S_FIFO_CONTROL_REG(1);
|
||||||
|
TxFifoWrEn_dly <= I2S_FIFO_CONTROL_REG(0);
|
||||||
|
end if;
|
||||||
|
end process RDWR_PULSE;
|
||||||
|
|
||||||
|
RxFifoRdEn <= I2S_FIFO_CONTROL_REG(1) and not RxFifoRdEn_dly;
|
||||||
|
TxFifoWrEn <= I2S_FIFO_CONTROL_REG(0) and not TxFifoWrEn_dly;
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Instantiaton of the I2S controler
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
Inst_I2sCtl: i2s_rx_tx
|
||||||
|
generic map(
|
||||||
|
C_DATA_WIDTH => C_DATA_WIDTH)
|
||||||
|
port map(
|
||||||
|
CLK_I => S_AXI_ACLK,
|
||||||
|
RST_I => I2S_RST_I,
|
||||||
|
TX_RS_I => TX_RS_I,
|
||||||
|
RX_RS_I => RX_RS_I,
|
||||||
|
TX_FIFO_RST_I => TX_FIFO_RST_I,
|
||||||
|
TX_FIFO_D_I => TX_FIFO_D_I,
|
||||||
|
TX_FIFO_WR_EN_I => TX_FIFO_WR_EN_I,
|
||||||
|
RX_FIFO_RST_I => RX_FIFO_RST_I,
|
||||||
|
RX_FIFO_D_O => RX_FIFO_D_O,
|
||||||
|
RX_FIFO_RD_EN_I => RX_FIFO_RD_EN_I,
|
||||||
|
TX_FIFO_EMPTY_O => TX_FIFO_EMPTY_O,
|
||||||
|
TX_FIFO_FULL_O => TX_FIFO_FULL_O,
|
||||||
|
RX_FIFO_EMPTY_O => RX_FIFO_EMPTY_O,
|
||||||
|
RX_FIFO_FULL_O => RX_FIFO_FULL_O,
|
||||||
|
CLK_100MHZ_I => CLK_100MHZ_I,
|
||||||
|
CTL_MASTER_MODE_I => CTL_MASTER_MODE_I,
|
||||||
|
|
||||||
|
-- DBG
|
||||||
|
DBG_TX_FIFO_RST_I => DBG_TX_FIFO_RST_I,
|
||||||
|
DBG_TX_FIFO_RD_EN_I => DBG_TX_FIFO_RD_EN_I,
|
||||||
|
DBG_TX_FIFO_WR_EN_I => DBG_TX_FIFO_WR_EN_I,
|
||||||
|
DBG_TX_FIFO_EMPTY_O => DBG_TX_FIFO_EMPTY_O,
|
||||||
|
DBG_TX_FIFO_FULL_O => DBG_TX_FIFO_FULL_O,
|
||||||
|
DBG_TX_FIFO_D_O => DBG_TX_FIFO_D_O,
|
||||||
|
DBG_TX_FIFO_D_I => DBG_TX_FIFO_D_I,
|
||||||
|
DBG_TX_RS_I => DBG_TX_RS_I,
|
||||||
|
|
||||||
|
DBG_RX_FIFO_RST_I => DBG_RX_FIFO_RST_I,
|
||||||
|
DBG_RX_FIFO_WR_EN_I => DBG_RX_FIFO_WR_EN_I,
|
||||||
|
DBG_RX_FIFO_RD_EN_I => DBG_RX_FIFO_RD_EN_I,
|
||||||
|
DBG_RX_FIFO_FULL_O => DBG_RX_FIFO_FULL_O,
|
||||||
|
DBG_RX_FIFO_EMPTY_O => DBG_RX_FIFO_EMPTY_O,
|
||||||
|
DBG_RX_FIFO_D_I => DBG_RX_FIFO_D_I,
|
||||||
|
DBG_RX_FIFO_D_O => DBG_RX_FIFO_D_O,
|
||||||
|
DBG_RX_RS_I => DBG_RX_RS_I,
|
||||||
|
|
||||||
|
SAMPLING_RATE_I => SAMPLING_RATE_I,
|
||||||
|
BCLK_O => BCLK_O,
|
||||||
|
BCLK_I => BCLK_I,
|
||||||
|
BCLK_T => BCLK_T,
|
||||||
|
LRCLK_O => LRCLK_O,
|
||||||
|
LRCLK_I => LRCLK_I,
|
||||||
|
LRCLK_T => LRCLK_T,
|
||||||
|
MCLK_O => MCLK_O,
|
||||||
|
SDATA_I => SDATA_I,
|
||||||
|
SDATA_O => SDATA_O);
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Instantiaton of the AXI stream controler
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
Inst_I2sStream: i2s_stream
|
||||||
|
generic map(
|
||||||
|
C_AXI_STREAM_DATA_WIDTH => C_AXI_STREAM_DATA_WIDTH,
|
||||||
|
C_DATA_WIDTH => C_DATA_WIDTH
|
||||||
|
)
|
||||||
|
port map(
|
||||||
|
TX_FIFO_FULL_I => TX_FIFO_FULL_O,
|
||||||
|
RX_FIFO_EMPTY_I => RX_FIFO_EMPTY_O,
|
||||||
|
TX_FIFO_D_O => TX_FIFO_D_O,
|
||||||
|
RX_FIFO_D_I => RX_FIFO_D_O,
|
||||||
|
NR_OF_SMPL_I => NR_OF_SMPL_I,
|
||||||
|
TX_STREAM_EN_I => TX_STREAM_EN_I,
|
||||||
|
RX_STREAM_EN_I => RX_STREAM_EN_I,
|
||||||
|
S_AXIS_MM2S_ACLK_I => S_AXIS_MM2S_ACLK,
|
||||||
|
S_AXIS_MM2S_ARESETN => S_AXIS_MM2S_ARESETN,
|
||||||
|
S_AXIS_MM2S_TREADY_O => S_AXIS_MM2S_TREADY,
|
||||||
|
S_AXIS_MM2S_TDATA_I => S_AXIS_MM2S_TDATA,
|
||||||
|
S_AXIS_MM2S_TLAST_I => S_AXIS_MM2S_TLAST,
|
||||||
|
S_AXIS_MM2S_TVALID_I => S_AXIS_MM2S_TVALID,
|
||||||
|
M_AXIS_S2MM_ACLK_I => M_AXIS_S2MM_ACLK,
|
||||||
|
M_AXIS_S2MM_ARESETN => M_AXIS_S2MM_ARESETN,
|
||||||
|
M_AXIS_S2MM_TDATA_O => M_AXIS_S2MM_TDATA,
|
||||||
|
M_AXIS_S2MM_TLAST_O => M_AXIS_S2MM_TLAST,
|
||||||
|
M_AXIS_S2MM_TREADY_I => M_AXIS_S2MM_TREADY,
|
||||||
|
M_AXIS_S2MM_TKEEP_O => M_AXIS_S2MM_TKEEP,
|
||||||
|
M_AXIS_S2MM_TVALID_O => M_AXIS_S2MM_TVALID_int
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Implement axi_awready generation
|
||||||
|
-- axi_awready is asserted for one S_AXI_ACLK clock cycle when both
|
||||||
|
-- S_AXI_AWVALID and S_AXI_WVALID are asserted. axi_awready is
|
||||||
|
-- de-asserted when reset is low.
|
||||||
|
|
||||||
|
process (S_AXI_ACLK)
|
||||||
|
begin
|
||||||
|
if rising_edge(S_AXI_ACLK) then
|
||||||
|
if S_AXI_ARESETN = '0' then
|
||||||
|
axi_awready <= '0';
|
||||||
|
else
|
||||||
|
if (axi_awready = '0' and S_AXI_AWVALID = '1' and S_AXI_WVALID = '1') then
|
||||||
|
-- slave is ready to accept write address when
|
||||||
|
-- there is a valid write address and write data
|
||||||
|
-- on the write address and data bus. This design
|
||||||
|
-- expects no outstanding transactions.
|
||||||
|
axi_awready <= '1';
|
||||||
|
else
|
||||||
|
axi_awready <= '0';
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
end process;
|
||||||
|
|
||||||
|
-- Implement axi_awaddr latching
|
||||||
|
-- This process is used to latch the address when both
|
||||||
|
-- S_AXI_AWVALID and S_AXI_WVALID are valid.
|
||||||
|
|
||||||
|
process (S_AXI_ACLK)
|
||||||
|
begin
|
||||||
|
if rising_edge(S_AXI_ACLK) then
|
||||||
|
if S_AXI_ARESETN = '0' then
|
||||||
|
axi_awaddr <= (others => '0');
|
||||||
|
else
|
||||||
|
if (axi_awready = '0' and S_AXI_AWVALID = '1' and S_AXI_WVALID = '1') then
|
||||||
|
-- Write Address latching
|
||||||
|
axi_awaddr <= S_AXI_AWADDR;
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
end process;
|
||||||
|
|
||||||
|
-- Implement axi_wready generation
|
||||||
|
-- axi_wready is asserted for one S_AXI_ACLK clock cycle when both
|
||||||
|
-- S_AXI_AWVALID and S_AXI_WVALID are asserted. axi_wready is
|
||||||
|
-- de-asserted when reset is low.
|
||||||
|
|
||||||
|
process (S_AXI_ACLK)
|
||||||
|
begin
|
||||||
|
if rising_edge(S_AXI_ACLK) then
|
||||||
|
if S_AXI_ARESETN = '0' then
|
||||||
|
axi_wready <= '0';
|
||||||
|
else
|
||||||
|
if (axi_wready = '0' and S_AXI_WVALID = '1' and S_AXI_AWVALID = '1') then
|
||||||
|
-- slave is ready to accept write data when
|
||||||
|
-- there is a valid write address and write data
|
||||||
|
-- on the write address and data bus. This design
|
||||||
|
-- expects no outstanding transactions.
|
||||||
|
axi_wready <= '1';
|
||||||
|
else
|
||||||
|
axi_wready <= '0';
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
end process;
|
||||||
|
|
||||||
|
-- Implement memory mapped register select and write logic generation
|
||||||
|
-- The write data is accepted and written to memory mapped registers when
|
||||||
|
-- axi_awready, S_AXI_WVALID, axi_wready and S_AXI_WVALID are asserted. Write strobes are used to
|
||||||
|
-- select byte enables of slave registers while writing.
|
||||||
|
-- These registers are cleared when reset (active low) is applied.
|
||||||
|
-- Slave register write enable is asserted when valid address and data are available
|
||||||
|
-- and the slave is ready to accept the write address and write data.
|
||||||
|
slv_reg_wren <= axi_wready and S_AXI_WVALID and axi_awready and S_AXI_AWVALID ;
|
||||||
|
|
||||||
|
process (S_AXI_ACLK)
|
||||||
|
variable loc_addr :std_logic_vector(OPT_MEM_ADDR_BITS downto 0);
|
||||||
|
begin
|
||||||
|
if rising_edge(S_AXI_ACLK) then
|
||||||
|
if S_AXI_ARESETN = '0' then
|
||||||
|
I2S_RESET_REG <= (others => '0');
|
||||||
|
I2S_TRANSFER_CONTROL_REG <= (others => '0');
|
||||||
|
I2S_FIFO_CONTROL_REG <= (others => '0');
|
||||||
|
I2S_DATA_IN_REG <= (others => '0');
|
||||||
|
I2S_DATA_OUT_REG <= (others => '0');
|
||||||
|
I2S_STATUS_REG <= (others => '0');
|
||||||
|
I2S_CLOCK_CONTROL_REG <= (others => '0');
|
||||||
|
I2S_PERIOD_COUNT_REG <= (others => '0');
|
||||||
|
I2S_STREAM_CONTROL_REG <= (others => '0');
|
||||||
|
slv_reg9 <= (others => '0');
|
||||||
|
else
|
||||||
|
loc_addr := axi_awaddr(ADDR_LSB + OPT_MEM_ADDR_BITS downto ADDR_LSB);
|
||||||
|
if (slv_reg_wren = '1') then
|
||||||
|
case loc_addr is
|
||||||
|
when b"0000" =>
|
||||||
|
for byte_index in 0 to (C_S_AXI_DATA_WIDTH/8-1) loop
|
||||||
|
if ( S_AXI_WSTRB(byte_index) = '1' ) then
|
||||||
|
-- Respective byte enables are asserted as per write strobes
|
||||||
|
-- slave registor 0
|
||||||
|
I2S_RESET_REG(byte_index*8+7 downto byte_index*8) <= S_AXI_WDATA(byte_index*8+7 downto byte_index*8);
|
||||||
|
end if;
|
||||||
|
end loop;
|
||||||
|
when b"0001" =>
|
||||||
|
for byte_index in 0 to (C_S_AXI_DATA_WIDTH/8-1) loop
|
||||||
|
if ( S_AXI_WSTRB(byte_index) = '1' ) then
|
||||||
|
-- Respective byte enables are asserted as per write strobes
|
||||||
|
-- slave registor 1
|
||||||
|
I2S_TRANSFER_CONTROL_REG(byte_index*8+7 downto byte_index*8) <= S_AXI_WDATA(byte_index*8+7 downto byte_index*8);
|
||||||
|
end if;
|
||||||
|
end loop;
|
||||||
|
when b"0010" =>
|
||||||
|
for byte_index in 0 to (C_S_AXI_DATA_WIDTH/8-1) loop
|
||||||
|
if ( S_AXI_WSTRB(byte_index) = '1' ) then
|
||||||
|
-- Respective byte enables are asserted as per write strobes
|
||||||
|
-- slave registor 2
|
||||||
|
I2S_FIFO_CONTROL_REG(byte_index*8+7 downto byte_index*8) <= S_AXI_WDATA(byte_index*8+7 downto byte_index*8);
|
||||||
|
end if;
|
||||||
|
end loop;
|
||||||
|
when b"0011" =>
|
||||||
|
for byte_index in 0 to (C_S_AXI_DATA_WIDTH/8-1) loop
|
||||||
|
if ( S_AXI_WSTRB(byte_index) = '1' ) then
|
||||||
|
-- Respective byte enables are asserted as per write strobes
|
||||||
|
-- slave registor 3
|
||||||
|
I2S_DATA_IN_REG(byte_index*8+7 downto byte_index*8) <= S_AXI_WDATA(byte_index*8+7 downto byte_index*8);
|
||||||
|
end if;
|
||||||
|
end loop;
|
||||||
|
when b"0110" =>
|
||||||
|
for byte_index in 0 to (C_S_AXI_DATA_WIDTH/8-1) loop
|
||||||
|
if ( S_AXI_WSTRB(byte_index) = '1' ) then
|
||||||
|
-- Respective byte enables are asserted as per write strobes
|
||||||
|
-- slave registor 6
|
||||||
|
I2S_CLOCK_CONTROL_REG(byte_index*8+7 downto byte_index*8) <= S_AXI_WDATA(byte_index*8+7 downto byte_index*8);
|
||||||
|
end if;
|
||||||
|
end loop;
|
||||||
|
when b"0111" =>
|
||||||
|
for byte_index in 0 to (C_S_AXI_DATA_WIDTH/8-1) loop
|
||||||
|
if ( S_AXI_WSTRB(byte_index) = '1' ) then
|
||||||
|
-- Respective byte enables are asserted as per write strobes
|
||||||
|
-- slave registor 7
|
||||||
|
I2S_PERIOD_COUNT_REG(byte_index*8+7 downto byte_index*8) <= S_AXI_WDATA(byte_index*8+7 downto byte_index*8);
|
||||||
|
end if;
|
||||||
|
end loop;
|
||||||
|
when b"1000" =>
|
||||||
|
for byte_index in 0 to (C_S_AXI_DATA_WIDTH/8-1) loop
|
||||||
|
if ( S_AXI_WSTRB(byte_index) = '1' ) then
|
||||||
|
-- Respective byte enables are asserted as per write strobes
|
||||||
|
-- slave registor 8
|
||||||
|
I2S_STREAM_CONTROL_REG(byte_index*8+7 downto byte_index*8) <= S_AXI_WDATA(byte_index*8+7 downto byte_index*8);
|
||||||
|
end if;
|
||||||
|
end loop;
|
||||||
|
when b"1001" =>
|
||||||
|
for byte_index in 0 to (C_S_AXI_DATA_WIDTH/8-1) loop
|
||||||
|
if ( S_AXI_WSTRB(byte_index) = '1' ) then
|
||||||
|
-- Respective byte enables are asserted as per write strobes
|
||||||
|
-- slave registor 9
|
||||||
|
slv_reg9(byte_index*8+7 downto byte_index*8) <= S_AXI_WDATA(byte_index*8+7 downto byte_index*8);
|
||||||
|
end if;
|
||||||
|
end loop;
|
||||||
|
when others =>
|
||||||
|
I2S_DATA_OUT_REG(31 downto 31-C_DATA_WIDTH) <= (others => '0');
|
||||||
|
I2S_DATA_OUT_REG(C_DATA_WIDTH-1 downto 0) <= RX_FIFO_D_O;
|
||||||
|
I2S_STATUS_REG(0) <= TX_FIFO_EMPTY_O;
|
||||||
|
I2S_STATUS_REG(1) <= TX_FIFO_FULL_O;
|
||||||
|
I2S_STATUS_REG(15 downto 2) <= (others => '0');
|
||||||
|
I2S_STATUS_REG(16) <= RX_FIFO_EMPTY_O;
|
||||||
|
I2S_STATUS_REG(17) <= RX_FIFO_FULL_O;
|
||||||
|
I2S_STATUS_REG(31 downto 18) <= (others => '0');
|
||||||
|
end case;
|
||||||
|
end if;
|
||||||
|
I2S_DATA_OUT_REG(31 downto 31-C_DATA_WIDTH) <= (others => '0');
|
||||||
|
I2S_DATA_OUT_REG(C_DATA_WIDTH-1 downto 0) <= RX_FIFO_D_O;
|
||||||
|
I2S_STATUS_REG(0) <= TX_FIFO_EMPTY_O;
|
||||||
|
I2S_STATUS_REG(1) <= TX_FIFO_FULL_O;
|
||||||
|
I2S_STATUS_REG(15 downto 2) <= (others => '0');
|
||||||
|
I2S_STATUS_REG(16) <= RX_FIFO_EMPTY_O;
|
||||||
|
I2S_STATUS_REG(17) <= RX_FIFO_FULL_O;
|
||||||
|
I2S_STATUS_REG(31 downto 18) <= (others => '0');
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
end process;
|
||||||
|
|
||||||
|
-- Implement write response logic generation
|
||||||
|
-- The write response and response valid signals are asserted by the slave
|
||||||
|
-- when axi_wready, S_AXI_WVALID, axi_wready and S_AXI_WVALID are asserted.
|
||||||
|
-- This marks the acceptance of address and indicates the status of
|
||||||
|
-- write transaction.
|
||||||
|
|
||||||
|
process (S_AXI_ACLK)
|
||||||
|
begin
|
||||||
|
if rising_edge(S_AXI_ACLK) then
|
||||||
|
if S_AXI_ARESETN = '0' then
|
||||||
|
axi_bvalid <= '0';
|
||||||
|
axi_bresp <= "00"; --need to work more on the responses
|
||||||
|
else
|
||||||
|
if (axi_awready = '1' and S_AXI_AWVALID = '1' and axi_wready = '1' and S_AXI_WVALID = '1' and axi_bvalid = '0' ) then
|
||||||
|
axi_bvalid <= '1';
|
||||||
|
axi_bresp <= "00";
|
||||||
|
elsif (S_AXI_BREADY = '1' and axi_bvalid = '1') then --check if bready is asserted while bvalid is high)
|
||||||
|
axi_bvalid <= '0'; -- (there is a possibility that bready is always asserted high)
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
end process;
|
||||||
|
|
||||||
|
-- Implement axi_arready generation
|
||||||
|
-- axi_arready is asserted for one S_AXI_ACLK clock cycle when
|
||||||
|
-- S_AXI_ARVALID is asserted. axi_awready is
|
||||||
|
-- de-asserted when reset (active low) is asserted.
|
||||||
|
-- The read address is also latched when S_AXI_ARVALID is
|
||||||
|
-- asserted. axi_araddr is reset to zero on reset assertion.
|
||||||
|
|
||||||
|
process (S_AXI_ACLK)
|
||||||
|
begin
|
||||||
|
if rising_edge(S_AXI_ACLK) then
|
||||||
|
if S_AXI_ARESETN = '0' then
|
||||||
|
axi_arready <= '0';
|
||||||
|
axi_araddr <= (others => '1');
|
||||||
|
else
|
||||||
|
if (axi_arready = '0' and S_AXI_ARVALID = '1') then
|
||||||
|
-- indicates that the slave has acceped the valid read address
|
||||||
|
axi_arready <= '1';
|
||||||
|
-- Read Address latching
|
||||||
|
axi_araddr <= S_AXI_ARADDR;
|
||||||
|
else
|
||||||
|
axi_arready <= '0';
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
end process;
|
||||||
|
|
||||||
|
-- Implement axi_arvalid generation
|
||||||
|
-- axi_rvalid is asserted for one S_AXI_ACLK clock cycle when both
|
||||||
|
-- S_AXI_ARVALID and axi_arready are asserted. The slave registers
|
||||||
|
-- data are available on the axi_rdata bus at this instance. The
|
||||||
|
-- assertion of axi_rvalid marks the validity of read data on the
|
||||||
|
-- bus and axi_rresp indicates the status of read transaction.axi_rvalid
|
||||||
|
-- is deasserted on reset (active low). axi_rresp and axi_rdata are
|
||||||
|
-- cleared to zero on reset (active low).
|
||||||
|
process (S_AXI_ACLK)
|
||||||
|
begin
|
||||||
|
if rising_edge(S_AXI_ACLK) then
|
||||||
|
if S_AXI_ARESETN = '0' then
|
||||||
|
axi_rvalid <= '0';
|
||||||
|
axi_rresp <= "00";
|
||||||
|
else
|
||||||
|
if (axi_arready = '1' and S_AXI_ARVALID = '1' and axi_rvalid = '0') then
|
||||||
|
-- Valid read data is available at the read data bus
|
||||||
|
axi_rvalid <= '1';
|
||||||
|
axi_rresp <= "00"; -- 'OKAY' response
|
||||||
|
elsif (axi_rvalid = '1' and S_AXI_RREADY = '1') then
|
||||||
|
-- Read data is accepted by the master
|
||||||
|
axi_rvalid <= '0';
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
end process;
|
||||||
|
|
||||||
|
-- Implement memory mapped register select and read logic generation
|
||||||
|
-- Slave register read enable is asserted when valid address is available
|
||||||
|
-- and the slave is ready to accept the read address.
|
||||||
|
slv_reg_rden <= axi_arready and S_AXI_ARVALID and (not axi_rvalid) ;
|
||||||
|
|
||||||
|
process (I2S_RESET_REG, I2S_TRANSFER_CONTROL_REG, I2S_FIFO_CONTROL_REG, I2S_DATA_IN_REG, I2S_DATA_OUT_REG, I2S_CLOCK_CONTROL_REG, I2S_STATUS_REG, I2S_PERIOD_COUNT_REG, I2S_STREAM_CONTROL_REG, slv_reg9, axi_araddr, S_AXI_ARESETN, slv_reg_rden)
|
||||||
|
variable loc_addr :std_logic_vector(OPT_MEM_ADDR_BITS downto 0);
|
||||||
|
begin
|
||||||
|
if S_AXI_ARESETN = '0' then
|
||||||
|
reg_data_out <= (others => '1');
|
||||||
|
else
|
||||||
|
-- Address decoding for reading registers
|
||||||
|
loc_addr := axi_araddr(ADDR_LSB + OPT_MEM_ADDR_BITS downto ADDR_LSB);
|
||||||
|
case loc_addr is
|
||||||
|
when b"0000" =>
|
||||||
|
reg_data_out <= I2S_RESET_REG;
|
||||||
|
when b"0001" =>
|
||||||
|
reg_data_out <= I2S_TRANSFER_CONTROL_REG;
|
||||||
|
when b"0010" =>
|
||||||
|
reg_data_out <= I2S_FIFO_CONTROL_REG;
|
||||||
|
when b"0011" =>
|
||||||
|
reg_data_out <= I2S_DATA_IN_REG;
|
||||||
|
when b"0100" =>
|
||||||
|
reg_data_out <= I2S_DATA_OUT_REG;
|
||||||
|
when b"0101" =>
|
||||||
|
reg_data_out <= I2S_STATUS_REG;
|
||||||
|
when b"0110" =>
|
||||||
|
reg_data_out <= I2S_CLOCK_CONTROL_REG;
|
||||||
|
when b"0111" =>
|
||||||
|
reg_data_out <= I2S_PERIOD_COUNT_REG;
|
||||||
|
when b"1000" =>
|
||||||
|
reg_data_out <= I2S_STREAM_CONTROL_REG;
|
||||||
|
when b"1001" =>
|
||||||
|
reg_data_out <= slv_reg9;
|
||||||
|
when others =>
|
||||||
|
reg_data_out <= (others => '0');
|
||||||
|
end case;
|
||||||
|
end if;
|
||||||
|
end process;
|
||||||
|
|
||||||
|
-- Output register or memory read data
|
||||||
|
process( S_AXI_ACLK ) is
|
||||||
|
begin
|
||||||
|
if (rising_edge (S_AXI_ACLK)) then
|
||||||
|
if ( S_AXI_ARESETN = '0' ) then
|
||||||
|
axi_rdata <= (others => '0');
|
||||||
|
else
|
||||||
|
if (slv_reg_rden = '1') then
|
||||||
|
-- When there is a valid read address (S_AXI_ARVALID) with
|
||||||
|
-- acceptance of read address by the slave (axi_arready),
|
||||||
|
-- output the read dada
|
||||||
|
-- Read address mux
|
||||||
|
axi_rdata <= reg_data_out; -- register read data
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
end process;
|
||||||
|
|
||||||
|
|
||||||
|
-- Add user logic here
|
||||||
|
|
||||||
|
-- User logic ends
|
||||||
|
|
||||||
|
end arch_imp;
|
|
@ -0,0 +1,395 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<spirit:design xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
|
<spirit:vendor>xilinx.com</spirit:vendor>
|
||||||
|
<spirit:library>xci</spirit:library>
|
||||||
|
<spirit:name>unknown</spirit:name>
|
||||||
|
<spirit:version>1.0</spirit:version>
|
||||||
|
<spirit:componentInstances>
|
||||||
|
<spirit:componentInstance>
|
||||||
|
<spirit:instanceName>fifo_32</spirit:instanceName>
|
||||||
|
<spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="fifo_generator" spirit:version="12.0"/>
|
||||||
|
<spirit:configurableElementValues>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">fifo_32</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Fifo_Implementation">Independent_Clocks_Block_RAM</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.synchronization_stages">2</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.synchronization_stages_axi">2</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERFACE_TYPE">Native</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Performance_Options">Standard_FIFO</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.asymmetric_port_width">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Input_Data_Width">24</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Input_Depth">4096</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Data_Width">24</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Depth">4096</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_ECC">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_Embedded_Registers">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Pin">true</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_Reset_Synchronization">true</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Type">Asynchronous_Reset</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Full_Flags_Reset_Value">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_Dout_Reset">true</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Dout_Reset_Value">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.dynamic_power_saving">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Almost_Full_Flag">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Almost_Empty_Flag">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Valid_Flag">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Valid_Sense">Active_High</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Underflow_Flag">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Underflow_Sense">Active_High</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Acknowledge_Flag">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Acknowledge_Sense">Active_High</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Overflow_Flag">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Overflow_Sense">Active_High</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Inject_Sbit_Error">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Inject_Dbit_Error">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ecc_pipeline_reg">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_Extra_Logic">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Data_Count">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Data_Count_Width">12</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Data_Count">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Data_Count_Width">12</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Read_Data_Count">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Read_Data_Count_Width">12</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Disable_Timing_Violations">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Read_Clock_Frequency">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Clock_Frequency">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Programmable_Full_Type">No_Programmable_Full_Threshold</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Full_Threshold_Assert_Value">4093</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Full_Threshold_Negate_Value">4092</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Programmable_Empty_Type">No_Programmable_Empty_Threshold</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Empty_Threshold_Assert_Value">2</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Empty_Threshold_Negate_Value">3</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PROTOCOL">AXI4</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Clock_Type_AXI">Common_Clock</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_ACLKEN">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Clock_Enable_Type">Slave_Interface_Clock_Enable</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_WRITE_MODE">READ_WRITE</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ID_WIDTH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ADDRESS_WIDTH">32</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DATA_WIDTH">64</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AWUSER_Width">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WUSER_Width">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.BUSER_Width">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ARUSER_Width">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RUSER_Width">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TDATA_NUM_BYTES">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TID_WIDTH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TDEST_WIDTH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TUSER_WIDTH">4</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_TREADY">true</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_TLAST">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_TSTRB">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TSTRB_WIDTH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_TKEEP">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TKEEP_WIDTH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.wach_type">FIFO</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_Implementation_wach">Common_Clock_Block_RAM</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_Application_Type_wach">Data_FIFO</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_ECC_wach">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Inject_Sbit_Error_wach">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Inject_Dbit_Error_wach">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Input_Depth_wach">16</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_Data_Counts_wach">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Programmable_Full_Type_wach">No_Programmable_Full_Threshold</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Full_Threshold_Assert_Value_wach">1023</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Programmable_Empty_Type_wach">No_Programmable_Empty_Threshold</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Empty_Threshold_Assert_Value_wach">1022</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.wdch_type">FIFO</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_Implementation_wdch">Common_Clock_Block_RAM</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_Application_Type_wdch">Data_FIFO</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_ECC_wdch">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Inject_Sbit_Error_wdch">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Inject_Dbit_Error_wdch">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Input_Depth_wdch">1024</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_Data_Counts_wdch">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Programmable_Full_Type_wdch">No_Programmable_Full_Threshold</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Full_Threshold_Assert_Value_wdch">1023</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Programmable_Empty_Type_wdch">No_Programmable_Empty_Threshold</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Empty_Threshold_Assert_Value_wdch">1022</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.wrch_type">FIFO</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_Implementation_wrch">Common_Clock_Block_RAM</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_Application_Type_wrch">Data_FIFO</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_ECC_wrch">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Inject_Sbit_Error_wrch">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Inject_Dbit_Error_wrch">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Input_Depth_wrch">16</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_Data_Counts_wrch">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Programmable_Full_Type_wrch">No_Programmable_Full_Threshold</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Full_Threshold_Assert_Value_wrch">1023</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Programmable_Empty_Type_wrch">No_Programmable_Empty_Threshold</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Empty_Threshold_Assert_Value_wrch">1022</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.rach_type">FIFO</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_Implementation_rach">Common_Clock_Block_RAM</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_Application_Type_rach">Data_FIFO</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_ECC_rach">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Inject_Sbit_Error_rach">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Inject_Dbit_Error_rach">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Input_Depth_rach">16</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_Data_Counts_rach">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Programmable_Full_Type_rach">No_Programmable_Full_Threshold</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Full_Threshold_Assert_Value_rach">1023</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Programmable_Empty_Type_rach">No_Programmable_Empty_Threshold</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Empty_Threshold_Assert_Value_rach">1022</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.rdch_type">FIFO</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_Implementation_rdch">Common_Clock_Block_RAM</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_Application_Type_rdch">Data_FIFO</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_ECC_rdch">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Inject_Sbit_Error_rdch">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Inject_Dbit_Error_rdch">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Input_Depth_rdch">1024</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_Data_Counts_rdch">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Programmable_Full_Type_rdch">No_Programmable_Full_Threshold</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Full_Threshold_Assert_Value_rdch">1023</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Programmable_Empty_Type_rdch">No_Programmable_Empty_Threshold</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Empty_Threshold_Assert_Value_rdch">1022</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.axis_type">FIFO</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_Implementation_axis">Common_Clock_Block_RAM</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_Application_Type_axis">Data_FIFO</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_ECC_axis">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Inject_Sbit_Error_axis">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Inject_Dbit_Error_axis">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Input_Depth_axis">1024</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_Data_Counts_axis">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Programmable_Full_Type_axis">No_Programmable_Full_Threshold</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Full_Threshold_Assert_Value_axis">1023</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Programmable_Empty_Type_axis">No_Programmable_Empty_Threshold</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Empty_Threshold_Assert_Value_axis">1022</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_Slice_Mode_wach">Fully_Registered</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_Slice_Mode_wdch">Fully_Registered</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_Slice_Mode_wrch">Fully_Registered</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_Slice_Mode_rach">Fully_Registered</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_Slice_Mode_rdch">Fully_Registered</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_Slice_Mode_axis">Fully_Registered</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Underflow_Flag_AXI">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Underflow_Sense_AXI">Active_High</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Overflow_Flag_AXI">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Overflow_Sense_AXI">Active_High</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Disable_Timing_Violations_AXI">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Add_NGC_Constraint_AXI">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_Common_Underflow">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_Common_Overflow">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.enable_read_pointer_increment_by2">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_Embedded_Registers_axis">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.enable_low_latency">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.use_dout_register">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COMMON_CLOCK">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COUNT_TYPE">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DATA_COUNT_WIDTH">12</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DEFAULT_VALUE">BlankString</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DIN_WIDTH">24</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DOUT_RST_VAL">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DOUT_WIDTH">24</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ENABLE_RLOCS">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_FAMILY">artix7</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_FULL_FLAGS_RST_VAL">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_ALMOST_EMPTY">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_ALMOST_FULL">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_BACKUP">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_DATA_COUNT">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_INT_CLK">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MEMINIT_FILE">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_OVERFLOW">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_RD_DATA_COUNT">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_RD_RST">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_RST">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_SRST">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_UNDERFLOW">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_VALID">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_WR_ACK">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_WR_DATA_COUNT">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_WR_RST">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_IMPLEMENTATION_TYPE">2</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INIT_WR_PNTR_VAL">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MEMORY_TYPE">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MIF_FILE_NAME">BlankString</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OPTIMIZATION_MODE">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OVERFLOW_LOW">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRELOAD_LATENCY">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRELOAD_REGS">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_FIFO_TYPE">4kx9</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_EMPTY_THRESH_ASSERT_VAL">2</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_EMPTY_THRESH_NEGATE_VAL">3</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_EMPTY_TYPE">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_FULL_THRESH_ASSERT_VAL">4093</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_FULL_THRESH_NEGATE_VAL">4092</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_FULL_TYPE">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RD_DATA_COUNT_WIDTH">12</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RD_DEPTH">4096</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RD_FREQ">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RD_PNTR_WIDTH">12</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_UNDERFLOW_LOW">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_DOUT_RST">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_ECC">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_EMBEDDED_REG">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_PIPELINE_REG">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_POWER_SAVING_MODE">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_FIFO16_FLAGS">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_FWFT_DATA_COUNT">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_VALID_LOW">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_ACK_LOW">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_DATA_COUNT_WIDTH">12</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_DEPTH">4096</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_FREQ">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_PNTR_WIDTH">12</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_RESPONSE_LATENCY">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MSGON_VAL">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ENABLE_RST_SYNC">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ERROR_INJECTION_TYPE">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SYNCHRONIZER_STAGE">2</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INTERFACE_TYPE">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_TYPE">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXI_WR_CHANNEL">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXI_RD_CHANNEL">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_SLAVE_CE">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MASTER_CE">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ADD_NGC_CONSTRAINT">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_COMMON_OVERFLOW">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_COMMON_UNDERFLOW">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_DEFAULT_SETTINGS">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_ID_WIDTH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_ADDR_WIDTH">32</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_DATA_WIDTH">64</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_LEN_WIDTH">8</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_LOCK_WIDTH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXI_ID">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXI_AWUSER">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXI_WUSER">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXI_BUSER">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXI_ARUSER">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXI_RUSER">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_ARUSER_WIDTH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_AWUSER_WIDTH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_WUSER_WIDTH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_BUSER_WIDTH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_RUSER_WIDTH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXIS_TDATA">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXIS_TID">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXIS_TDEST">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXIS_TUSER">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXIS_TREADY">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXIS_TLAST">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXIS_TSTRB">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXIS_TKEEP">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXIS_TDATA_WIDTH">8</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXIS_TID_WIDTH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXIS_TDEST_WIDTH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXIS_TUSER_WIDTH">4</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXIS_TSTRB_WIDTH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXIS_TKEEP_WIDTH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WACH_TYPE">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WDCH_TYPE">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRCH_TYPE">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RACH_TYPE">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RDCH_TYPE">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXIS_TYPE">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_IMPLEMENTATION_TYPE_WACH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_IMPLEMENTATION_TYPE_WDCH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_IMPLEMENTATION_TYPE_WRCH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_IMPLEMENTATION_TYPE_RACH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_IMPLEMENTATION_TYPE_RDCH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_IMPLEMENTATION_TYPE_AXIS">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_APPLICATION_TYPE_WACH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_APPLICATION_TYPE_WDCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_APPLICATION_TYPE_WRCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_APPLICATION_TYPE_RACH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_APPLICATION_TYPE_RDCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_APPLICATION_TYPE_AXIS">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_FIFO_TYPE_WACH">512x36</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_FIFO_TYPE_WDCH">1kx36</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_FIFO_TYPE_WRCH">512x36</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_FIFO_TYPE_RACH">512x36</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_FIFO_TYPE_RDCH">1kx36</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_FIFO_TYPE_AXIS">1kx18</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_ECC_WACH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_ECC_WDCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_ECC_WRCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_ECC_RACH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_ECC_RDCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_ECC_AXIS">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ERROR_INJECTION_TYPE_WACH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ERROR_INJECTION_TYPE_WDCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ERROR_INJECTION_TYPE_WRCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ERROR_INJECTION_TYPE_RACH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ERROR_INJECTION_TYPE_RDCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ERROR_INJECTION_TYPE_AXIS">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DIN_WIDTH_WACH">32</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DIN_WIDTH_WDCH">64</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DIN_WIDTH_WRCH">2</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DIN_WIDTH_RACH">32</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DIN_WIDTH_RDCH">64</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DIN_WIDTH_AXIS">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_DEPTH_WACH">16</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_DEPTH_WDCH">1024</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_DEPTH_WRCH">16</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_DEPTH_RACH">16</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_DEPTH_RDCH">1024</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_DEPTH_AXIS">1024</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_PNTR_WIDTH_WACH">4</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_PNTR_WIDTH_WDCH">10</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_PNTR_WIDTH_WRCH">4</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_PNTR_WIDTH_RACH">4</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_PNTR_WIDTH_RDCH">10</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_PNTR_WIDTH_AXIS">10</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_DATA_COUNTS_WACH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_DATA_COUNTS_WDCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_DATA_COUNTS_WRCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_DATA_COUNTS_RACH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_DATA_COUNTS_RDCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_DATA_COUNTS_AXIS">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_PROG_FLAGS_WACH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_PROG_FLAGS_WDCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_PROG_FLAGS_WRCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_PROG_FLAGS_RACH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_PROG_FLAGS_RDCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_PROG_FLAGS_AXIS">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_FULL_TYPE_WACH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_FULL_TYPE_WDCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_FULL_TYPE_WRCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_FULL_TYPE_RACH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_FULL_TYPE_RDCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_FULL_TYPE_AXIS">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_FULL_THRESH_ASSERT_VAL_WACH">1023</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_FULL_THRESH_ASSERT_VAL_WDCH">1023</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_FULL_THRESH_ASSERT_VAL_WRCH">1023</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_FULL_THRESH_ASSERT_VAL_RACH">1023</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_FULL_THRESH_ASSERT_VAL_RDCH">1023</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_FULL_THRESH_ASSERT_VAL_AXIS">1023</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_EMPTY_TYPE_WACH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_EMPTY_TYPE_WDCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_EMPTY_TYPE_WRCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_EMPTY_TYPE_RACH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_EMPTY_TYPE_RDCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_EMPTY_TYPE_AXIS">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_EMPTY_THRESH_ASSERT_VAL_WACH">1022</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_EMPTY_THRESH_ASSERT_VAL_WDCH">1022</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_EMPTY_THRESH_ASSERT_VAL_WRCH">1022</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_EMPTY_THRESH_ASSERT_VAL_RACH">1022</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_EMPTY_THRESH_ASSERT_VAL_RDCH">1022</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_EMPTY_THRESH_ASSERT_VAL_AXIS">1022</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_REG_SLICE_MODE_WACH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_REG_SLICE_MODE_WDCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_REG_SLICE_MODE_WRCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_REG_SLICE_MODE_RACH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_REG_SLICE_MODE_RDCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_REG_SLICE_MODE_AXIS">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.ARCHITECTURE">artix7</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.DEVICE">xc7a200t</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PACKAGE">sbg484</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SPEEDGRADE">-1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.TEMPERATURE_GRADE">C</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SILICON_REVISION"/>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PREFHDL">VERILOG</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SIMULATOR_LANGUAGE">MIXED</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_CUSTOMIZATION">TRUE</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_GENERATION">TRUE</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.BOARD"/>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.MANAGED">TRUE</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2014.3.1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPREVISION">2</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">.</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue>
|
||||||
|
</spirit:configurableElementValues>
|
||||||
|
</spirit:componentInstance>
|
||||||
|
</spirit:componentInstances>
|
||||||
|
</spirit:design>
|
|
@ -0,0 +1,395 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<spirit:design xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
|
<spirit:vendor>xilinx.com</spirit:vendor>
|
||||||
|
<spirit:library>xci</spirit:library>
|
||||||
|
<spirit:name>unknown</spirit:name>
|
||||||
|
<spirit:version>1.0</spirit:version>
|
||||||
|
<spirit:componentInstances>
|
||||||
|
<spirit:componentInstance>
|
||||||
|
<spirit:instanceName>fifo_4</spirit:instanceName>
|
||||||
|
<spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="fifo_generator" spirit:version="12.0"/>
|
||||||
|
<spirit:configurableElementValues>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">fifo_4</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Fifo_Implementation">Independent_Clocks_Block_RAM</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.synchronization_stages">2</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.synchronization_stages_axi">2</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERFACE_TYPE">Native</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Performance_Options">Standard_FIFO</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.asymmetric_port_width">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Input_Data_Width">4</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Input_Depth">16</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Data_Width">4</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Depth">16</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_ECC">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_Embedded_Registers">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Pin">true</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_Reset_Synchronization">true</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Type">Asynchronous_Reset</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Full_Flags_Reset_Value">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_Dout_Reset">true</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Dout_Reset_Value">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.dynamic_power_saving">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Almost_Full_Flag">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Almost_Empty_Flag">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Valid_Flag">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Valid_Sense">Active_High</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Underflow_Flag">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Underflow_Sense">Active_High</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Acknowledge_Flag">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Acknowledge_Sense">Active_High</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Overflow_Flag">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Overflow_Sense">Active_High</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Inject_Sbit_Error">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Inject_Dbit_Error">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ecc_pipeline_reg">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_Extra_Logic">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Data_Count">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Data_Count_Width">4</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Data_Count">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Data_Count_Width">4</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Read_Data_Count">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Read_Data_Count_Width">4</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Disable_Timing_Violations">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Read_Clock_Frequency">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Clock_Frequency">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Programmable_Full_Type">No_Programmable_Full_Threshold</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Full_Threshold_Assert_Value">13</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Full_Threshold_Negate_Value">12</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Programmable_Empty_Type">No_Programmable_Empty_Threshold</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Empty_Threshold_Assert_Value">2</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Empty_Threshold_Negate_Value">3</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PROTOCOL">AXI4</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Clock_Type_AXI">Common_Clock</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_ACLKEN">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Clock_Enable_Type">Slave_Interface_Clock_Enable</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_WRITE_MODE">READ_WRITE</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ID_WIDTH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ADDRESS_WIDTH">32</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DATA_WIDTH">64</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AWUSER_Width">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WUSER_Width">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.BUSER_Width">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ARUSER_Width">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RUSER_Width">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TDATA_NUM_BYTES">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TID_WIDTH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TDEST_WIDTH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TUSER_WIDTH">4</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_TREADY">true</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_TLAST">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_TSTRB">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TSTRB_WIDTH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_TKEEP">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TKEEP_WIDTH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.wach_type">FIFO</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_Implementation_wach">Common_Clock_Block_RAM</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_Application_Type_wach">Data_FIFO</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_ECC_wach">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Inject_Sbit_Error_wach">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Inject_Dbit_Error_wach">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Input_Depth_wach">16</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_Data_Counts_wach">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Programmable_Full_Type_wach">No_Programmable_Full_Threshold</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Full_Threshold_Assert_Value_wach">1023</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Programmable_Empty_Type_wach">No_Programmable_Empty_Threshold</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Empty_Threshold_Assert_Value_wach">1022</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.wdch_type">FIFO</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_Implementation_wdch">Common_Clock_Block_RAM</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_Application_Type_wdch">Data_FIFO</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_ECC_wdch">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Inject_Sbit_Error_wdch">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Inject_Dbit_Error_wdch">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Input_Depth_wdch">1024</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_Data_Counts_wdch">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Programmable_Full_Type_wdch">No_Programmable_Full_Threshold</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Full_Threshold_Assert_Value_wdch">1023</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Programmable_Empty_Type_wdch">No_Programmable_Empty_Threshold</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Empty_Threshold_Assert_Value_wdch">1022</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.wrch_type">FIFO</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_Implementation_wrch">Common_Clock_Block_RAM</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_Application_Type_wrch">Data_FIFO</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_ECC_wrch">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Inject_Sbit_Error_wrch">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Inject_Dbit_Error_wrch">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Input_Depth_wrch">16</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_Data_Counts_wrch">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Programmable_Full_Type_wrch">No_Programmable_Full_Threshold</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Full_Threshold_Assert_Value_wrch">1023</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Programmable_Empty_Type_wrch">No_Programmable_Empty_Threshold</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Empty_Threshold_Assert_Value_wrch">1022</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.rach_type">FIFO</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_Implementation_rach">Common_Clock_Block_RAM</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_Application_Type_rach">Data_FIFO</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_ECC_rach">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Inject_Sbit_Error_rach">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Inject_Dbit_Error_rach">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Input_Depth_rach">16</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_Data_Counts_rach">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Programmable_Full_Type_rach">No_Programmable_Full_Threshold</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Full_Threshold_Assert_Value_rach">1023</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Programmable_Empty_Type_rach">No_Programmable_Empty_Threshold</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Empty_Threshold_Assert_Value_rach">1022</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.rdch_type">FIFO</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_Implementation_rdch">Common_Clock_Block_RAM</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_Application_Type_rdch">Data_FIFO</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_ECC_rdch">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Inject_Sbit_Error_rdch">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Inject_Dbit_Error_rdch">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Input_Depth_rdch">1024</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_Data_Counts_rdch">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Programmable_Full_Type_rdch">No_Programmable_Full_Threshold</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Full_Threshold_Assert_Value_rdch">1023</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Programmable_Empty_Type_rdch">No_Programmable_Empty_Threshold</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Empty_Threshold_Assert_Value_rdch">1022</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.axis_type">FIFO</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_Implementation_axis">Common_Clock_Block_RAM</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_Application_Type_axis">Data_FIFO</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_ECC_axis">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Inject_Sbit_Error_axis">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Inject_Dbit_Error_axis">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Input_Depth_axis">1024</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_Data_Counts_axis">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Programmable_Full_Type_axis">No_Programmable_Full_Threshold</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Full_Threshold_Assert_Value_axis">1023</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Programmable_Empty_Type_axis">No_Programmable_Empty_Threshold</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Empty_Threshold_Assert_Value_axis">1022</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_Slice_Mode_wach">Fully_Registered</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_Slice_Mode_wdch">Fully_Registered</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_Slice_Mode_wrch">Fully_Registered</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_Slice_Mode_rach">Fully_Registered</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_Slice_Mode_rdch">Fully_Registered</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_Slice_Mode_axis">Fully_Registered</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Underflow_Flag_AXI">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Underflow_Sense_AXI">Active_High</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Overflow_Flag_AXI">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Overflow_Sense_AXI">Active_High</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Disable_Timing_Violations_AXI">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Add_NGC_Constraint_AXI">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_Common_Underflow">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_Common_Overflow">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.enable_read_pointer_increment_by2">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_Embedded_Registers_axis">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.enable_low_latency">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.use_dout_register">false</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COMMON_CLOCK">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COUNT_TYPE">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DATA_COUNT_WIDTH">4</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DEFAULT_VALUE">BlankString</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DIN_WIDTH">4</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DOUT_RST_VAL">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DOUT_WIDTH">4</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ENABLE_RLOCS">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_FAMILY">artix7</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_FULL_FLAGS_RST_VAL">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_ALMOST_EMPTY">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_ALMOST_FULL">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_BACKUP">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_DATA_COUNT">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_INT_CLK">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MEMINIT_FILE">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_OVERFLOW">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_RD_DATA_COUNT">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_RD_RST">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_RST">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_SRST">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_UNDERFLOW">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_VALID">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_WR_ACK">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_WR_DATA_COUNT">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_WR_RST">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_IMPLEMENTATION_TYPE">2</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INIT_WR_PNTR_VAL">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MEMORY_TYPE">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MIF_FILE_NAME">BlankString</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OPTIMIZATION_MODE">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OVERFLOW_LOW">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRELOAD_LATENCY">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRELOAD_REGS">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_FIFO_TYPE">512x36</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_EMPTY_THRESH_ASSERT_VAL">2</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_EMPTY_THRESH_NEGATE_VAL">3</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_EMPTY_TYPE">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_FULL_THRESH_ASSERT_VAL">13</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_FULL_THRESH_NEGATE_VAL">12</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_FULL_TYPE">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RD_DATA_COUNT_WIDTH">4</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RD_DEPTH">16</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RD_FREQ">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RD_PNTR_WIDTH">4</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_UNDERFLOW_LOW">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_DOUT_RST">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_ECC">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_EMBEDDED_REG">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_PIPELINE_REG">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_POWER_SAVING_MODE">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_FIFO16_FLAGS">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_FWFT_DATA_COUNT">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_VALID_LOW">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_ACK_LOW">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_DATA_COUNT_WIDTH">4</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_DEPTH">16</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_FREQ">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_PNTR_WIDTH">4</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_RESPONSE_LATENCY">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MSGON_VAL">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ENABLE_RST_SYNC">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ERROR_INJECTION_TYPE">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SYNCHRONIZER_STAGE">2</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INTERFACE_TYPE">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_TYPE">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXI_WR_CHANNEL">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXI_RD_CHANNEL">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_SLAVE_CE">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MASTER_CE">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ADD_NGC_CONSTRAINT">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_COMMON_OVERFLOW">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_COMMON_UNDERFLOW">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_DEFAULT_SETTINGS">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_ID_WIDTH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_ADDR_WIDTH">32</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_DATA_WIDTH">64</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_LEN_WIDTH">8</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_LOCK_WIDTH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXI_ID">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXI_AWUSER">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXI_WUSER">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXI_BUSER">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXI_ARUSER">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXI_RUSER">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_ARUSER_WIDTH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_AWUSER_WIDTH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_WUSER_WIDTH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_BUSER_WIDTH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_RUSER_WIDTH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXIS_TDATA">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXIS_TID">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXIS_TDEST">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXIS_TUSER">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXIS_TREADY">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXIS_TLAST">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXIS_TSTRB">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXIS_TKEEP">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXIS_TDATA_WIDTH">8</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXIS_TID_WIDTH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXIS_TDEST_WIDTH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXIS_TUSER_WIDTH">4</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXIS_TSTRB_WIDTH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXIS_TKEEP_WIDTH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WACH_TYPE">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WDCH_TYPE">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRCH_TYPE">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RACH_TYPE">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RDCH_TYPE">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXIS_TYPE">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_IMPLEMENTATION_TYPE_WACH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_IMPLEMENTATION_TYPE_WDCH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_IMPLEMENTATION_TYPE_WRCH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_IMPLEMENTATION_TYPE_RACH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_IMPLEMENTATION_TYPE_RDCH">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_IMPLEMENTATION_TYPE_AXIS">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_APPLICATION_TYPE_WACH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_APPLICATION_TYPE_WDCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_APPLICATION_TYPE_WRCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_APPLICATION_TYPE_RACH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_APPLICATION_TYPE_RDCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_APPLICATION_TYPE_AXIS">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_FIFO_TYPE_WACH">512x36</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_FIFO_TYPE_WDCH">1kx36</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_FIFO_TYPE_WRCH">512x36</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_FIFO_TYPE_RACH">512x36</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_FIFO_TYPE_RDCH">1kx36</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_FIFO_TYPE_AXIS">1kx18</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_ECC_WACH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_ECC_WDCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_ECC_WRCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_ECC_RACH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_ECC_RDCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_ECC_AXIS">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ERROR_INJECTION_TYPE_WACH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ERROR_INJECTION_TYPE_WDCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ERROR_INJECTION_TYPE_WRCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ERROR_INJECTION_TYPE_RACH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ERROR_INJECTION_TYPE_RDCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ERROR_INJECTION_TYPE_AXIS">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DIN_WIDTH_WACH">32</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DIN_WIDTH_WDCH">64</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DIN_WIDTH_WRCH">2</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DIN_WIDTH_RACH">32</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DIN_WIDTH_RDCH">64</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DIN_WIDTH_AXIS">1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_DEPTH_WACH">16</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_DEPTH_WDCH">1024</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_DEPTH_WRCH">16</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_DEPTH_RACH">16</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_DEPTH_RDCH">1024</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_DEPTH_AXIS">1024</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_PNTR_WIDTH_WACH">4</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_PNTR_WIDTH_WDCH">10</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_PNTR_WIDTH_WRCH">4</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_PNTR_WIDTH_RACH">4</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_PNTR_WIDTH_RDCH">10</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WR_PNTR_WIDTH_AXIS">10</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_DATA_COUNTS_WACH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_DATA_COUNTS_WDCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_DATA_COUNTS_WRCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_DATA_COUNTS_RACH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_DATA_COUNTS_RDCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_DATA_COUNTS_AXIS">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_PROG_FLAGS_WACH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_PROG_FLAGS_WDCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_PROG_FLAGS_WRCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_PROG_FLAGS_RACH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_PROG_FLAGS_RDCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_PROG_FLAGS_AXIS">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_FULL_TYPE_WACH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_FULL_TYPE_WDCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_FULL_TYPE_WRCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_FULL_TYPE_RACH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_FULL_TYPE_RDCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_FULL_TYPE_AXIS">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_FULL_THRESH_ASSERT_VAL_WACH">1023</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_FULL_THRESH_ASSERT_VAL_WDCH">1023</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_FULL_THRESH_ASSERT_VAL_WRCH">1023</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_FULL_THRESH_ASSERT_VAL_RACH">1023</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_FULL_THRESH_ASSERT_VAL_RDCH">1023</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_FULL_THRESH_ASSERT_VAL_AXIS">1023</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_EMPTY_TYPE_WACH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_EMPTY_TYPE_WDCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_EMPTY_TYPE_WRCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_EMPTY_TYPE_RACH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_EMPTY_TYPE_RDCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_EMPTY_TYPE_AXIS">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_EMPTY_THRESH_ASSERT_VAL_WACH">1022</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_EMPTY_THRESH_ASSERT_VAL_WDCH">1022</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_EMPTY_THRESH_ASSERT_VAL_WRCH">1022</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_EMPTY_THRESH_ASSERT_VAL_RACH">1022</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_EMPTY_THRESH_ASSERT_VAL_RDCH">1022</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_EMPTY_THRESH_ASSERT_VAL_AXIS">1022</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_REG_SLICE_MODE_WACH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_REG_SLICE_MODE_WDCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_REG_SLICE_MODE_WRCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_REG_SLICE_MODE_RACH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_REG_SLICE_MODE_RDCH">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_REG_SLICE_MODE_AXIS">0</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.ARCHITECTURE">artix7</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.DEVICE">xc7a200t</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PACKAGE">sbg484</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SPEEDGRADE">-1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.TEMPERATURE_GRADE">C</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SILICON_REVISION"/>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PREFHDL">VERILOG</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SIMULATOR_LANGUAGE">MIXED</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_CUSTOMIZATION">TRUE</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_GENERATION">TRUE</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.BOARD"/>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.MANAGED">TRUE</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2014.3.1</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPREVISION">2</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">.</spirit:configurableElementValue>
|
||||||
|
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue>
|
||||||
|
</spirit:configurableElementValues>
|
||||||
|
</spirit:componentInstance>
|
||||||
|
</spirit:componentInstances>
|
||||||
|
</spirit:design>
|
|
@ -0,0 +1,325 @@
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
-- COPYRIGHT (C) 2012, Digilent RO. All rights reserved
|
||||||
|
--
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- FILE NAME : i2s_ctl.vhd
|
||||||
|
-- MODULE NAME : I2S Control
|
||||||
|
-- AUTHOR : Mihaita Nagy
|
||||||
|
-- AUTHOR'S EMAIL : mihaita.nagy@digilent.ro
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- REVISION HISTORY
|
||||||
|
-- VERSION DATE AUTHOR DESCRIPTION
|
||||||
|
-- 1.0 2012-25-01 Mihaita Nagy Created
|
||||||
|
-- 2.0 2012-02-04 Mihaita Nagy Remade the i2s_transmitter.vhd and
|
||||||
|
-- i2s_receiver.vhd into one new module.
|
||||||
|
-- 3.0 2014-12-02 HegbeliC Implemented edge detection for the
|
||||||
|
-- master mode and the division rate
|
||||||
|
-- for the different sampling rates
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- KEYWORDS : I2S
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- DESCRIPTION : This module implements the I2S transmitter and receiver
|
||||||
|
-- interface, with a 32-bit Stereo data transmission. Parameter
|
||||||
|
-- C_DATA_WIDTH sets the width of the data to be transmitted,
|
||||||
|
-- with a maximum value of 32 bits. If a smaller width size is
|
||||||
|
-- used (i.e. 24) than the remaining bits that needs to be
|
||||||
|
-- transmitted to complete the 32-bit length, are automaticaly
|
||||||
|
-- set to 0.
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
library IEEE;
|
||||||
|
use IEEE.STD_LOGIC_1164.ALL;
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Module Declaration
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
entity i2s_ctl is
|
||||||
|
generic (
|
||||||
|
-- Width of one Slot (24/20/18/16-bit wide)
|
||||||
|
C_DATA_WIDTH: integer := 24
|
||||||
|
);
|
||||||
|
port (
|
||||||
|
CLK_I : in std_logic; -- System clock (100 MHz)
|
||||||
|
RST_I : in std_logic; -- System reset
|
||||||
|
EN_TX_I : in std_logic; -- Transmit enable
|
||||||
|
EN_RX_I : in std_logic; -- Receive enable
|
||||||
|
FS_I : in std_logic_vector(3 downto 0); -- Sampling rate slector
|
||||||
|
MM_I : in std_logic; -- Audio controler Master Mode delcetor
|
||||||
|
D_L_I : in std_logic_vector(C_DATA_WIDTH-1 downto 0); -- Left channel data
|
||||||
|
D_R_I : in std_logic_vector(C_DATA_WIDTH-1 downto 0); -- Right channel data
|
||||||
|
OE_L_O : out std_logic; -- Left channel data output enable pulse
|
||||||
|
OE_R_O : out std_logic; -- Right channel data output enable pulse
|
||||||
|
WE_L_O : out std_logic; -- Left channel data write enable pulse
|
||||||
|
WE_R_O : out std_logic; -- Right channel data write enable pulse
|
||||||
|
D_L_O : out std_logic_vector(C_DATA_WIDTH-1 downto 0); -- Left channel data
|
||||||
|
D_R_O : out std_logic_vector(C_DATA_WIDTH-1 downto 0); -- Right channel data
|
||||||
|
BCLK_O : out std_logic; -- serial CLK
|
||||||
|
BCLK_I : in std_logic; -- serial CLK
|
||||||
|
BCLK_T : out std_logic; -- serial CLK
|
||||||
|
LRCLK_O : out std_logic; -- channel CLK
|
||||||
|
LRCLK_I : in std_logic; -- channel CLK
|
||||||
|
LRCLK_T : out std_logic; -- channel CLK
|
||||||
|
SDATA_O : out std_logic; -- Output serial data
|
||||||
|
SDATA_I : in std_logic -- Input serial data
|
||||||
|
);
|
||||||
|
end i2s_ctl;
|
||||||
|
|
||||||
|
architecture Behavioral of i2s_ctl is
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Signal Declarations
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Counter for the clock divider
|
||||||
|
signal Cnt_Bclk : integer range 0 to 31;
|
||||||
|
|
||||||
|
-- Counter for the L/R clock divider
|
||||||
|
signal Cnt_Lrclk : integer range 0 to 31;
|
||||||
|
|
||||||
|
-- Rising and Falling edge impulses of the serial clock
|
||||||
|
signal BCLK_Fall, BCLK_Rise : std_logic;
|
||||||
|
signal BCLK_Fall_int, BCLK_Rise_int : std_logic;
|
||||||
|
signal BCLK_Fall_shot, BCLK_Rise_shot : std_logic;
|
||||||
|
|
||||||
|
-- Synchronisation signals for Rising and Falling edge
|
||||||
|
signal Q1R, Q2R, Q3R : std_logic;
|
||||||
|
signal Q1F, Q2F, Q3F : std_logic;
|
||||||
|
|
||||||
|
-- Internal synchronous BCLK signal
|
||||||
|
signal BCLK_int : std_logic;
|
||||||
|
|
||||||
|
-- Internal synchronous LRCLK signal
|
||||||
|
signal LRCLK_int : std_logic;
|
||||||
|
signal LRCLK : std_logic;
|
||||||
|
|
||||||
|
--
|
||||||
|
signal Data_Out_int : std_logic_vector(31 downto 0);
|
||||||
|
|
||||||
|
--
|
||||||
|
signal Data_In_int : std_logic_vector(31 downto 0);
|
||||||
|
|
||||||
|
--
|
||||||
|
signal D_L_O_int : std_logic_vector(C_DATA_WIDTH-1 downto 0);
|
||||||
|
|
||||||
|
--
|
||||||
|
signal D_R_O_int : std_logic_vector(C_DATA_WIDTH-1 downto 0);
|
||||||
|
|
||||||
|
--Internal synchronous OE signals
|
||||||
|
signal OE_R_int, OE_L_int : std_logic;
|
||||||
|
|
||||||
|
--Internal synchronous WE signals
|
||||||
|
signal WE_R_int, WE_L_int : std_logic;
|
||||||
|
|
||||||
|
-- Division rate for the BCLK and LRCLK
|
||||||
|
signal DIV_RATE : natural := 4;
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Module Implementation
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
begin
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Sampling frequency and data width decoder (DIV_RATE, C_DATA_WIDTH)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
BIT_FS: process(CLK_I)
|
||||||
|
begin
|
||||||
|
if rising_edge(CLK_I) then
|
||||||
|
case (FS_I) is
|
||||||
|
when x"0" => DIV_RATE <= 24;
|
||||||
|
when x"1" => DIV_RATE <= 16;
|
||||||
|
when x"2" => DIV_RATE <= 12;
|
||||||
|
when x"3" => DIV_RATE <= 8;
|
||||||
|
when x"4" => DIV_RATE <= 6;
|
||||||
|
when x"5" => DIV_RATE <= 4;
|
||||||
|
when x"6" => DIV_RATE <= 2;
|
||||||
|
when others => DIV_RATE <= 4;
|
||||||
|
end case;
|
||||||
|
end if;
|
||||||
|
end process;
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Serial clock generator (BCLK_O, BCLK_Fall, BCLK_Rise)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
SER_CLK: process(CLK_I)
|
||||||
|
begin
|
||||||
|
if rising_edge(CLK_I) then
|
||||||
|
if RST_I = '1' then
|
||||||
|
Cnt_Bclk <= 0;
|
||||||
|
BCLK_int <= '0';
|
||||||
|
elsif Cnt_Bclk = ((DIV_RATE/2)-1) then
|
||||||
|
Cnt_Bclk <= 0;
|
||||||
|
BCLK_int <= not BCLK_int;
|
||||||
|
else
|
||||||
|
Cnt_Bclk <= Cnt_Bclk + 1;
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
end process SER_CLK;
|
||||||
|
|
||||||
|
-- Rising and Falling edges when in Slave mode
|
||||||
|
BCLK_Fall_int <= '1' when Cnt_Bclk = ((DIV_RATE/2)-1) and BCLK_int = '1' and (EN_RX_I = '1' or EN_TX_I = '1') else '0';
|
||||||
|
BCLK_Rise_int <= '1' when Cnt_Bclk = ((DIV_RATE/2)-1) and BCLK_int = '0' and (EN_RX_I = '1' or EN_TX_I = '1') else '0';
|
||||||
|
|
||||||
|
-- Rising edge detection when in Master Mode (BCLK_I active)
|
||||||
|
OneShotRise: process(CLK_I)
|
||||||
|
begin
|
||||||
|
if rising_edge(CLK_I) then
|
||||||
|
Q1R<=BCLK_I;
|
||||||
|
Q2R<=Q1R;
|
||||||
|
Q3R<=Q2R;
|
||||||
|
end if;
|
||||||
|
end process;
|
||||||
|
|
||||||
|
BCLK_Rise_shot <= BCLK_I and (not Q3R);
|
||||||
|
|
||||||
|
-- Falling edge detection when in Master Mode (BCLK_I active)
|
||||||
|
OneShotFall: process(CLK_I)
|
||||||
|
begin
|
||||||
|
if rising_edge(CLK_I) then
|
||||||
|
Q1F<=not BCLK_I;
|
||||||
|
Q2F<=Q1F;
|
||||||
|
Q3F<=Q2F;
|
||||||
|
end if;
|
||||||
|
end process;
|
||||||
|
|
||||||
|
BCLK_Fall_shot <= not BCLK_I and (not Q3F);
|
||||||
|
|
||||||
|
-- Falling edge selection with respect to Master Mode bit
|
||||||
|
BCLK_Fall <= BCLK_Fall_int when MM_I = '0' else
|
||||||
|
BCLK_Fall_shot;
|
||||||
|
|
||||||
|
-- Risesing edge selection with respect to Master Mode bit
|
||||||
|
BCLK_Rise <= BCLK_Rise_int when MM_I = '0' else
|
||||||
|
BCLK_Rise_shot;
|
||||||
|
|
||||||
|
-- Serial clock output
|
||||||
|
BCLK_O <= BCLK_int when EN_RX_I = '1' or EN_TX_I = '1' else '1';
|
||||||
|
BCLK_T <= MM_I;
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Left/Right clock generator (LRCLK_O, LRCLK_Pls)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
LRCLK_GEN: process(CLK_I)
|
||||||
|
begin
|
||||||
|
if rising_edge(CLK_I) then
|
||||||
|
if RST_I = '1' then
|
||||||
|
Cnt_Lrclk <= 0;
|
||||||
|
LRCLK <= '0'; -- Left channel active by default
|
||||||
|
elsif BCLK_Fall = '1' then
|
||||||
|
if Cnt_Lrclk = 31 then -- half of frame (64 bits)
|
||||||
|
Cnt_Lrclk <= 0;
|
||||||
|
LRCLK <= not LRCLK;
|
||||||
|
else
|
||||||
|
Cnt_Lrclk <= Cnt_Lrclk + 1;
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
end process LRCLK_GEN;
|
||||||
|
|
||||||
|
-- L/R clock output
|
||||||
|
LRCLK_O <= LRCLK when EN_TX_I = '1' or EN_RX_I = '1' else '0';
|
||||||
|
LRCLK_int <= LRCLK when MM_I = '0' else LRCLK_I;
|
||||||
|
LRCLK_T <= MM_I;
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Load in paralled data, shift out serial data (SDATA_O)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
SER_DATA_O: process(CLK_I)
|
||||||
|
begin
|
||||||
|
if rising_edge(CLK_I) then
|
||||||
|
if RST_I = '1' then
|
||||||
|
Data_Out_int(31) <= '0';
|
||||||
|
Data_Out_int(30 downto 31-C_DATA_WIDTH) <= D_L_I; -- Left channel data by default
|
||||||
|
Data_Out_int(30-C_DATA_WIDTH downto 0) <= (others => '0');
|
||||||
|
elsif Cnt_Lrclk = 0 and BCLK_Rise = '1' then -- load par. data
|
||||||
|
if LRCLK_int = '1' then
|
||||||
|
Data_Out_int(31) <= '0';
|
||||||
|
Data_Out_int(30 downto 31-C_DATA_WIDTH) <= D_R_I;
|
||||||
|
Data_Out_int(30-C_DATA_WIDTH downto 0) <= (others => '0');
|
||||||
|
else
|
||||||
|
Data_Out_int(31) <= '0';
|
||||||
|
Data_Out_int(30 downto 31-C_DATA_WIDTH) <= D_L_I;
|
||||||
|
Data_Out_int(30-C_DATA_WIDTH downto 0) <= (others => '0');
|
||||||
|
end if;
|
||||||
|
elsif BCLK_Fall = '1' then -- shift out ser. data
|
||||||
|
Data_Out_int <= Data_Out_int(30 downto 0) & '0';
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
end process SER_DATA_O;
|
||||||
|
|
||||||
|
-- Serial data output
|
||||||
|
SDATA_O <= Data_Out_int(31) when EN_TX_I = '1' else '0';
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Shift in serial data, load out parallel data (SDATA_I)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
SER_DATA_I: process(CLK_I)
|
||||||
|
begin
|
||||||
|
if rising_edge(CLK_I) then
|
||||||
|
if RST_I = '1' then
|
||||||
|
Data_In_int <= (others => '0');
|
||||||
|
D_L_O_int <= (others => '0');
|
||||||
|
D_R_O_int <= (others => '0');
|
||||||
|
elsif Cnt_Lrclk = 0 and BCLK_Fall = '1' then -- load par. data
|
||||||
|
if LRCLK_int = '1' then
|
||||||
|
D_L_O_int <= Data_In_int(31 downto 32-C_DATA_WIDTH);
|
||||||
|
Data_In_int <= (others => '0');
|
||||||
|
else
|
||||||
|
D_R_O_int <= Data_In_int(31 downto 32-C_DATA_WIDTH);
|
||||||
|
Data_In_int <= (others => '0');
|
||||||
|
end if;
|
||||||
|
elsif BCLK_Rise = '1' then -- shift in ser. data
|
||||||
|
Data_In_int <= Data_In_int(30 downto 0) & SDATA_I;
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
end process SER_DATA_I;
|
||||||
|
|
||||||
|
D_L_O <= D_L_O_int;
|
||||||
|
D_R_O <= D_R_O_int;
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Output Enable signals (for FIFO)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
OE_GEN: process(CLK_I)
|
||||||
|
begin
|
||||||
|
if rising_edge(CLK_I) then
|
||||||
|
if Cnt_Lrclk = 31 and BCLK_Fall = '1' then
|
||||||
|
if LRCLK_int = '1' then -- Right channel
|
||||||
|
OE_R_int <= '1';
|
||||||
|
else -- Left channel
|
||||||
|
OE_L_int <= '1';
|
||||||
|
end if;
|
||||||
|
else
|
||||||
|
OE_R_int <= '0';
|
||||||
|
OE_L_int <= '0';
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
end process OE_GEN;
|
||||||
|
|
||||||
|
OE_R_O <= OE_R_int when EN_TX_I = '1' else '0';
|
||||||
|
OE_L_O <= OE_L_int when EN_TX_I = '1' else '0';
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Write Enable signals (for FIFO)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
WE_GEN: process(CLK_I)
|
||||||
|
begin
|
||||||
|
if rising_edge(CLK_I) then
|
||||||
|
if Cnt_Lrclk = 1 and BCLK_Rise = '1' then
|
||||||
|
if LRCLK_int = '1' then -- Right channel
|
||||||
|
WE_R_int <= '1';
|
||||||
|
else -- Left channel
|
||||||
|
WE_L_int <= '1';
|
||||||
|
end if;
|
||||||
|
else
|
||||||
|
WE_R_int <= '0';
|
||||||
|
WE_L_int <= '0';
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
end process WE_GEN;
|
||||||
|
|
||||||
|
WE_R_O <= WE_R_int when EN_RX_I = '1' else '0';
|
||||||
|
WE_L_O <= WE_L_int when EN_RX_I = '1' else '0';
|
||||||
|
|
||||||
|
end Behavioral;
|
||||||
|
|
|
@ -0,0 +1,436 @@
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
-- COPYRIGHT (C) 2012, Digilent RO. All rights reserved
|
||||||
|
--
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- FILE NAME : i2s_rx_tx.vhd
|
||||||
|
-- MODULE NAME : I2S Tranceiver
|
||||||
|
-- AUTHOR : Mihaita Nagy
|
||||||
|
-- AUTHOR'S EMAIL : mihaita.nagy@digilent.ro
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- REVISION HISTORY
|
||||||
|
-- VERSION DATE AUTHOR DESCRIPTION
|
||||||
|
-- 1.0 2012-25-01 MihaitaN Created
|
||||||
|
-- 2.0 ? MihaitaN ?
|
||||||
|
-- 3.0 2014-12-02 HegbeliC Integration of the MCLK and Master Mode
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- KEYWORDS : I2S
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
library ieee;
|
||||||
|
use ieee.std_logic_1164.all;
|
||||||
|
library unisim;
|
||||||
|
use unisim.VComponents.all;
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Module Declaration
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
entity i2s_rx_tx is
|
||||||
|
generic (
|
||||||
|
-- Width of left/right channel data buses
|
||||||
|
C_DATA_WIDTH : integer := 24
|
||||||
|
);
|
||||||
|
port (
|
||||||
|
-- Global signals
|
||||||
|
CLK_I : in std_logic;
|
||||||
|
RST_I : in std_logic;
|
||||||
|
|
||||||
|
-- Control signals
|
||||||
|
TX_RS_I : in std_logic;
|
||||||
|
RX_RS_I : in std_logic;
|
||||||
|
|
||||||
|
-- CLK input for MCLK rendering
|
||||||
|
CLK_100MHZ_I : in std_logic;
|
||||||
|
|
||||||
|
-- Control signal for setting the sampeling rate
|
||||||
|
SAMPLING_RATE_I : in std_logic_vector (3 downto 0);
|
||||||
|
|
||||||
|
-- Flag for when the Controller is in master mode
|
||||||
|
CTL_MASTER_MODE_I : in std_logic;
|
||||||
|
|
||||||
|
-- DBG
|
||||||
|
DBG_TX_FIFO_RST_I : out std_logic;
|
||||||
|
DBG_TX_FIFO_WR_EN_I : out std_logic;
|
||||||
|
DBG_TX_FIFO_RD_EN_I : out std_logic;
|
||||||
|
DBG_TX_FIFO_EMPTY_O : out std_logic;
|
||||||
|
DBG_TX_FIFO_FULL_O : out std_logic;
|
||||||
|
DBG_TX_FIFO_D_I : out std_logic_vector(C_DATA_WIDTH-1 downto 0);
|
||||||
|
DBG_TX_FIFO_D_O : out std_logic_vector(C_DATA_WIDTH-1 downto 0);
|
||||||
|
DBG_TX_RS_I : out std_logic;
|
||||||
|
|
||||||
|
DBG_RX_FIFO_RST_I : out std_logic;
|
||||||
|
DBG_RX_FIFO_WR_EN_I : out std_logic;
|
||||||
|
DBG_RX_FIFO_RD_EN_I : out std_logic;
|
||||||
|
DBG_RX_FIFO_FULL_O : out std_logic;
|
||||||
|
DBG_RX_FIFO_EMPTY_O : out std_logic;
|
||||||
|
DBG_RX_FIFO_D_O : out std_logic_vector(C_DATA_WIDTH-1 downto 0);
|
||||||
|
DBG_RX_FIFO_D_I : out std_logic_vector(C_DATA_WIDTH-1 downto 0);
|
||||||
|
DBG_RX_RS_I : out std_logic;
|
||||||
|
|
||||||
|
-- Tx FIFO Control signals
|
||||||
|
TX_FIFO_RST_I : in std_logic;
|
||||||
|
TX_FIFO_D_I : in std_logic_vector(C_DATA_WIDTH-1 downto 0);
|
||||||
|
TX_FIFO_WR_EN_I : in std_logic;
|
||||||
|
|
||||||
|
-- Rx FIFO Control signals
|
||||||
|
RX_FIFO_RST_I : in std_logic;
|
||||||
|
RX_FIFO_RD_EN_I : in std_logic;
|
||||||
|
RX_FIFO_D_O : out std_logic_vector(C_DATA_WIDTH-1 downto 0);
|
||||||
|
|
||||||
|
-- Tx FIFO Flags
|
||||||
|
TX_FIFO_EMPTY_O : out std_logic;
|
||||||
|
TX_FIFO_FULL_O : out std_logic;
|
||||||
|
|
||||||
|
-- Rx FIFO Flags
|
||||||
|
RX_FIFO_EMPTY_O : out std_logic;
|
||||||
|
RX_FIFO_FULL_O : out std_logic;
|
||||||
|
|
||||||
|
-- I2S interface signals
|
||||||
|
BCLK_O : out std_logic;
|
||||||
|
BCLK_I : in std_logic;
|
||||||
|
BCLK_T : out std_logic;
|
||||||
|
LRCLK_O : out std_logic;
|
||||||
|
LRCLK_I : in std_logic;
|
||||||
|
LRCLK_T : out std_logic;
|
||||||
|
MCLK_O : out std_logic;
|
||||||
|
SDATA_I : in std_logic;
|
||||||
|
SDATA_O : out std_logic
|
||||||
|
);
|
||||||
|
end i2s_rx_tx;
|
||||||
|
|
||||||
|
architecture Behavioral of i2s_rx_tx is
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Signal Declarations
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
signal StartTransaction : std_logic;
|
||||||
|
signal StopTransaction : std_logic;
|
||||||
|
signal RxEn : std_logic;
|
||||||
|
signal TxEn : std_logic;
|
||||||
|
signal LRCLK_Int : std_logic;
|
||||||
|
signal LR : std_logic;
|
||||||
|
signal Rnw : std_logic;
|
||||||
|
signal RxFifoDataIn : std_logic_vector(C_DATA_WIDTH-1 downto 0);
|
||||||
|
signal RxFifoDataInL : std_logic_vector(C_DATA_WIDTH-1 downto 0);
|
||||||
|
signal RxFifoDataInR : std_logic_vector(C_DATA_WIDTH-1 downto 0);
|
||||||
|
signal RxFifoWrEn : std_logic;
|
||||||
|
signal RxFifoWrEnL : std_logic;
|
||||||
|
signal RxFifoWrEnR : std_logic;
|
||||||
|
signal TxFifoDataOut : std_logic_vector(C_DATA_WIDTH-1 downto 0);
|
||||||
|
signal TxFifoRdEn : std_logic;
|
||||||
|
signal TxFifoRdEnL : std_logic;
|
||||||
|
signal TxFifoRdEnR : std_logic;
|
||||||
|
signal TxFifoEmpty : std_logic;
|
||||||
|
signal RxFifoFull : std_logic;
|
||||||
|
signal SamplingFrequncy : std_logic_vector(3 downto 0);
|
||||||
|
signal Rst_Int : std_logic;
|
||||||
|
signal Rst_Int_sync : std_logic;
|
||||||
|
signal MM_Int : std_logic;
|
||||||
|
signal Rst_interior : std_logic;
|
||||||
|
-- DCM signals
|
||||||
|
signal RstDcm : std_logic;
|
||||||
|
signal LockDcm : std_logic;
|
||||||
|
signal CLK_12 : std_logic;
|
||||||
|
|
||||||
|
signal TxFifoReset : std_logic;
|
||||||
|
signal RxFifoReset : std_logic;
|
||||||
|
|
||||||
|
signal TX_FIFO_FULL_int : std_logic;
|
||||||
|
signal RX_FIFO_EMPTY_int : std_logic;
|
||||||
|
signal RX_FIFO_D_int : std_logic_vector(C_DATA_WIDTH-1 downto 0);
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Component Declarations
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
component i2s_ctl
|
||||||
|
generic (
|
||||||
|
C_DATA_WIDTH: integer := 24);
|
||||||
|
port (
|
||||||
|
CLK_I : in std_logic;
|
||||||
|
RST_I : in std_logic;
|
||||||
|
EN_TX_I : in std_logic;
|
||||||
|
EN_RX_I : in std_logic;
|
||||||
|
OE_L_O : out std_logic;
|
||||||
|
OE_R_O : out std_logic;
|
||||||
|
WE_L_O : out std_logic;
|
||||||
|
WE_R_O : out std_logic;
|
||||||
|
D_L_I : in std_logic_vector(C_DATA_WIDTH-1 downto 0);
|
||||||
|
D_R_I : in std_logic_vector(C_DATA_WIDTH-1 downto 0);
|
||||||
|
D_L_O : out std_logic_vector(C_DATA_WIDTH-1 downto 0);
|
||||||
|
D_R_O : out std_logic_vector(C_DATA_WIDTH-1 downto 0);
|
||||||
|
MM_I : in std_logic;
|
||||||
|
FS_I : in std_logic_vector(3 downto 0);
|
||||||
|
BCLK_O : out std_logic;
|
||||||
|
BCLK_I : in std_logic;
|
||||||
|
BCLK_T : out std_logic;
|
||||||
|
LRCLK_O : out std_logic;
|
||||||
|
LRCLK_I : in std_logic;
|
||||||
|
LRCLK_T : out std_logic;
|
||||||
|
SDATA_O : out std_logic;
|
||||||
|
SDATA_I : in std_logic);
|
||||||
|
end component;
|
||||||
|
|
||||||
|
-- the FIFO used for sample rate bus
|
||||||
|
|
||||||
|
component fifo_4
|
||||||
|
port (
|
||||||
|
rst : in std_logic;
|
||||||
|
wr_clk : in std_logic;
|
||||||
|
rd_clk : in std_logic;
|
||||||
|
din : in std_logic_vector(3 downto 0);
|
||||||
|
wr_en : in std_logic;
|
||||||
|
rd_en : in std_logic;
|
||||||
|
dout : out std_logic_vector(3 downto 0);
|
||||||
|
full : out std_logic;
|
||||||
|
empty : out std_logic
|
||||||
|
);
|
||||||
|
end component;
|
||||||
|
|
||||||
|
-- the FIFO, used for Rx and Tx
|
||||||
|
component fifo_32
|
||||||
|
port (
|
||||||
|
wr_clk : in std_logic;
|
||||||
|
rd_clk : in std_logic;
|
||||||
|
rst : in std_logic;
|
||||||
|
din : in std_logic_vector(23 downto 0);
|
||||||
|
wr_en : in std_logic;
|
||||||
|
rd_en : in std_logic;
|
||||||
|
dout : out std_logic_vector(23 downto 0);
|
||||||
|
full : out std_logic;
|
||||||
|
empty : out std_logic);
|
||||||
|
end component;
|
||||||
|
|
||||||
|
-- the DCM for generating 12.288 MHz
|
||||||
|
component DCM
|
||||||
|
port(
|
||||||
|
CLK_100 : in std_logic;
|
||||||
|
CLK_12_288 : out std_logic;
|
||||||
|
RESET : in std_logic;
|
||||||
|
LOCKED : out std_logic
|
||||||
|
);
|
||||||
|
end component;
|
||||||
|
|
||||||
|
-- the synchronisation unite for the two CLK domains
|
||||||
|
component Sync_ff
|
||||||
|
port(
|
||||||
|
CLK : in std_logic;
|
||||||
|
D_I : in std_logic;
|
||||||
|
Q_O : out std_logic
|
||||||
|
);
|
||||||
|
end component;
|
||||||
|
|
||||||
|
component rst_sync
|
||||||
|
Port (
|
||||||
|
RST_I : in STD_LOGIC;
|
||||||
|
CLK : in STD_LOGIC;
|
||||||
|
Q_O : out STD_LOGIC
|
||||||
|
);
|
||||||
|
end component;
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Module Implementation
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
begin
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Instantiate the I2S transmitter module
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
Inst_I2sRxTx: i2s_ctl
|
||||||
|
generic map(
|
||||||
|
C_DATA_WIDTH => C_DATA_WIDTH)
|
||||||
|
port map(
|
||||||
|
CLK_I => CLK_12,
|
||||||
|
RST_I => Rst_Int_sync,
|
||||||
|
EN_TX_I => TxEn,
|
||||||
|
EN_RX_I => RxEn,
|
||||||
|
OE_L_O => TxFifoRdEnL,
|
||||||
|
OE_R_O => TxFifoRdEnR,
|
||||||
|
WE_L_O => RxFifoWrEnL,
|
||||||
|
WE_R_O => RxFifoWrEnR,
|
||||||
|
D_L_I => TxFifoDataOut,
|
||||||
|
D_R_I => TxFifoDataOut,
|
||||||
|
D_L_O => RxFifoDataInL,
|
||||||
|
D_R_O => RxFifoDataInR,
|
||||||
|
MM_I => MM_Int,
|
||||||
|
FS_I => SamplingFrequncy,
|
||||||
|
BCLK_O => BCLK_O,
|
||||||
|
BCLK_I => BCLK_I,
|
||||||
|
BCLK_T => BCLK_T,
|
||||||
|
LRCLK_O => LRCLK_Int,
|
||||||
|
LRCLK_I => LRCLK_I,
|
||||||
|
LRCLK_T => LRCLK_T,
|
||||||
|
SDATA_O => SDATA_O,
|
||||||
|
SDATA_I => SDATA_I);
|
||||||
|
|
||||||
|
TxFifoRdEn <= TxFifoRdEnL or TxFifoRdEnR;
|
||||||
|
RxFifoWrEn <= RxFifoWrEnL or RxFifoWrEnR;
|
||||||
|
LRCLK_O <= LRCLK_Int;
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Instantiate the transmitter fifo
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
Inst_Sampling: fifo_4
|
||||||
|
port map (
|
||||||
|
rst => RST_I,
|
||||||
|
wr_clk => CLK_I,
|
||||||
|
rd_clk => CLK_12,
|
||||||
|
din => SAMPLING_RATE_I,
|
||||||
|
wr_en => '1',
|
||||||
|
rd_en => '1',
|
||||||
|
dout => SamplingFrequncy,
|
||||||
|
full => open,
|
||||||
|
empty => open);
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Instantiate the transmitter fifo
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
Inst_I2sTxFifo: fifo_32
|
||||||
|
port map(
|
||||||
|
wr_clk => CLK_I,
|
||||||
|
rd_clk => CLK_12,
|
||||||
|
rst => TxFifoReset,
|
||||||
|
din => TX_FIFO_D_I,
|
||||||
|
wr_en => TX_FIFO_WR_EN_I,
|
||||||
|
rd_en => TxFifoRdEn,
|
||||||
|
dout => TxFifoDataOut,
|
||||||
|
full => TX_FIFO_FULL_int,
|
||||||
|
empty => TxFifoEmpty);
|
||||||
|
|
||||||
|
DBG_TX_FIFO_RST_I <= TxFifoReset;
|
||||||
|
DBG_TX_FIFO_RD_EN_I <= TxFifoRdEn;
|
||||||
|
DBG_TX_FIFO_WR_EN_I <= TX_FIFO_WR_EN_I;
|
||||||
|
DBG_TX_FIFO_FULL_O <= TX_FIFO_FULL_int;
|
||||||
|
DBG_TX_FIFO_EMPTY_O <= TxFifoEmpty;
|
||||||
|
DBG_TX_FIFO_D_I <= TX_FIFO_D_I;
|
||||||
|
DBG_TX_FIFO_D_O <= TxFifoDataOut;
|
||||||
|
DBG_TX_RS_I <= TxEn;
|
||||||
|
|
||||||
|
-- TX_FIFO_EMPTY_O <= TxFifoEmpty;
|
||||||
|
TX_FIFO_FULL_O <= TX_FIFO_FULL_int;
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Instantiate the receiver fifo
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
Inst_I2sRxFifo: fifo_32
|
||||||
|
port map(
|
||||||
|
wr_clk => CLK_12,
|
||||||
|
rd_clk => CLK_I,
|
||||||
|
rst => RX_FIFO_RST_I,
|
||||||
|
din => RxFifoDataIn,
|
||||||
|
wr_en => RxFifoWrEn,
|
||||||
|
rd_en => RX_FIFO_RD_EN_I,
|
||||||
|
dout => RX_FIFO_D_int,
|
||||||
|
full => RxFifoFull,
|
||||||
|
empty => RX_FIFO_EMPTY_int);
|
||||||
|
|
||||||
|
DBG_RX_FIFO_RST_I <= RX_FIFO_RST_I;
|
||||||
|
DBG_RX_FIFO_WR_EN_I <= RxFifoWrEn;
|
||||||
|
DBG_RX_FIFO_RD_EN_I <= RX_FIFO_RD_EN_I;
|
||||||
|
DBG_RX_FIFO_EMPTY_O <=RX_FIFO_EMPTY_int;
|
||||||
|
DBG_RX_FIFO_D_O <= RX_FIFO_D_int;
|
||||||
|
DBG_RX_FIFO_D_I <= RxFifoDataIn;
|
||||||
|
DBG_RX_RS_I <= RxEn;
|
||||||
|
|
||||||
|
|
||||||
|
RX_FIFO_EMPTY_O <= RX_FIFO_EMPTY_int;
|
||||||
|
-- RX_FIFO_FULL_O <= RxFifoFull;
|
||||||
|
RX_FIFO_D_O <= RX_FIFO_D_int;
|
||||||
|
|
||||||
|
-- input selct between audio controler in master or in slave
|
||||||
|
LR <= LRCLK_Int when MM_Int = '0' else LRCLK_I;
|
||||||
|
RxFifoDataIn <= RxFifoDataInR when LR = '1' else RxFifoDataInL;
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Instantiate DCM
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
Inst_Dcm : DCM
|
||||||
|
port map(
|
||||||
|
CLK_100 => CLK_100MHZ_I,
|
||||||
|
CLK_12_288 => CLK_12,
|
||||||
|
RESET => Rst_Int,
|
||||||
|
LOCKED => LockDcm);
|
||||||
|
|
||||||
|
Rst_Int <= RST_I and not LockDcm;
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Instantiate BusSync for the sample rate read out (100 -> 12)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
Inst_SyncBit_RX_RS: Sync_ff
|
||||||
|
port map(
|
||||||
|
CLK => CLK_12,
|
||||||
|
D_I => RX_RS_I,
|
||||||
|
Q_O => RxEn);
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Instantiate BusSync for the sample rate read out (100 -> 12)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
Inst_SyncBit_TX_RS: Sync_ff
|
||||||
|
port map(
|
||||||
|
CLK => CLK_12,
|
||||||
|
D_I => TX_RS_I,
|
||||||
|
Q_O => TxEn);
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Instantiate BusSync for the sample rate read out (100 -> 12)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
Inst_SyncBit_CTL_MM: Sync_ff
|
||||||
|
port map(
|
||||||
|
CLK => CLK_12,
|
||||||
|
D_I => CTL_MASTER_MODE_I,
|
||||||
|
Q_O => MM_Int);
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Instantiate BusSync for the sample rate read out (100 -> 12)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
Inst_Rst_Sync_TX_RST: rst_sync
|
||||||
|
port map(
|
||||||
|
CLK => CLK_12,
|
||||||
|
RST_I => TX_FIFO_RST_I,
|
||||||
|
Q_O => TxFifoReset);
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Instantiate BusSync for the sample rate read out (100 -> 12)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
Inst_Rst_Sync_RST: rst_sync
|
||||||
|
port map(
|
||||||
|
CLK => CLK_12,
|
||||||
|
RST_I => Rst_Int,
|
||||||
|
Q_O => Rst_Int_sync);
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Instantiate BusSync for the sample rate read out (100 -> 12)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
Inst_SyncBit_Tx_Empty: Sync_ff
|
||||||
|
port map(
|
||||||
|
CLK => CLK_I,
|
||||||
|
D_I => TxFifoEmpty,
|
||||||
|
Q_O => TX_FIFO_EMPTY_O);
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Instantiate BusSync for the sample rate read out (100 -> 12)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
Inst_SyncBit_Rx_Full: Sync_ff
|
||||||
|
port map(
|
||||||
|
CLK => CLK_I,
|
||||||
|
D_I => RxFifoFull,
|
||||||
|
Q_O => RX_FIFO_FULL_O);
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Instantiaton of the ODDR for the Output MCLK
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
ODDR_inst : ODDR
|
||||||
|
generic map(
|
||||||
|
DDR_CLK_EDGE => "OPPOSITE_EDGE", -- "OPPOSITE_EDGE" or "SAME_EDGE"
|
||||||
|
INIT => '0', -- Initial value for Q port ('1' or '0')
|
||||||
|
SRTYPE => "SYNC") -- Reset Type ("ASYNC" or "SYNC")
|
||||||
|
port map (
|
||||||
|
Q => MCLK_O, -- 1-bit DDR output
|
||||||
|
C => CLK_12, -- 1-bit clock input
|
||||||
|
CE => '1', -- 1-bit clock enable input
|
||||||
|
D1 => '1', -- 1-bit data input (positive edge)
|
||||||
|
D2 => '0', -- 1-bit data input (negative edge)
|
||||||
|
R => '0', -- 1-bit reset input
|
||||||
|
S => '0'); -- 1-bit set input
|
||||||
|
|
||||||
|
end Behavioral;
|
|
@ -0,0 +1,158 @@
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
-- COPYRIGHT (C) 2014, Digilent RO. All rights reserved
|
||||||
|
--
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- FILE NAME : i2s_stream.vhd
|
||||||
|
-- MODULE NAME : I2S Stream
|
||||||
|
-- AUTHOR : Hegbeli Ciprian
|
||||||
|
-- AUTHOR'S EMAIL : ciprian.hegbeli@digilent.com
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- REVISION HISTORY
|
||||||
|
-- VERSION DATE AUTHOR DESCRIPTION
|
||||||
|
-- 1.0 2014-28-03 Hegbeli Ciprian Created
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- KEYWORDS : Stream
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- DESCRIPTION : This module implements the Stream protocol for sending the
|
||||||
|
-- incomming I2S data to the DMA. It implements both the S2MM
|
||||||
|
-- and the MM2S allowing for a full duplex comunication
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
library IEEE;
|
||||||
|
use IEEE.STD_LOGIC_1164.ALL;
|
||||||
|
|
||||||
|
use IEEE.NUMERIC_STD.ALL;
|
||||||
|
use ieee.std_logic_unsigned.all;
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Module Declaration
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
entity i2s_stream is
|
||||||
|
generic (
|
||||||
|
-- Stream data width (must be multiple of 8)
|
||||||
|
C_AXI_STREAM_DATA_WIDTH : integer := 32;
|
||||||
|
-- Width of one Slot (24/20/18/16-bit wide)
|
||||||
|
C_DATA_WIDTH : integer := 24
|
||||||
|
);
|
||||||
|
port (
|
||||||
|
|
||||||
|
-- Tx FIFO Flags
|
||||||
|
TX_FIFO_FULL_I : in std_logic;
|
||||||
|
|
||||||
|
-- Rx FIFO Flags
|
||||||
|
RX_FIFO_EMPTY_I : in std_logic;
|
||||||
|
|
||||||
|
-- Tx FIFO Control signals
|
||||||
|
TX_FIFO_D_O : out std_logic_vector(C_DATA_WIDTH-1 downto 0);
|
||||||
|
|
||||||
|
-- Rx FIFO Control signals
|
||||||
|
RX_FIFO_D_I : in std_logic_vector(C_DATA_WIDTH-1 downto 0);
|
||||||
|
|
||||||
|
NR_OF_SMPL_I : in std_logic_vector(20 downto 0);
|
||||||
|
|
||||||
|
TX_STREAM_EN_I : in std_logic;
|
||||||
|
RX_STREAM_EN_I : in std_logic;
|
||||||
|
|
||||||
|
-- AXI4-Stream
|
||||||
|
-- Slave
|
||||||
|
S_AXIS_MM2S_ACLK_I : in std_logic;
|
||||||
|
S_AXIS_MM2S_ARESETN : in std_logic;
|
||||||
|
S_AXIS_MM2S_TREADY_O : out std_logic;
|
||||||
|
S_AXIS_MM2S_TDATA_I : in std_logic_vector(C_AXI_STREAM_DATA_WIDTH-1 downto 0);
|
||||||
|
S_AXIS_MM2S_TLAST_I : in std_logic;
|
||||||
|
S_AXIS_MM2S_TVALID_I : in std_logic;
|
||||||
|
|
||||||
|
-- Master
|
||||||
|
M_AXIS_S2MM_ACLK_I : in std_logic;
|
||||||
|
M_AXIS_S2MM_ARESETN : in std_logic;
|
||||||
|
M_AXIS_S2MM_TDATA_O : out std_logic_vector(C_AXI_STREAM_DATA_WIDTH-1 downto 0);
|
||||||
|
M_AXIS_S2MM_TLAST_O : out std_logic;
|
||||||
|
M_AXIS_S2MM_TVALID_O : out std_logic;
|
||||||
|
M_AXIS_S2MM_TREADY_I : in std_logic;
|
||||||
|
M_AXIS_S2MM_TKEEP_O : out std_logic_vector((C_AXI_STREAM_DATA_WIDTH/8)-1 downto 0)
|
||||||
|
|
||||||
|
);
|
||||||
|
end i2s_stream;
|
||||||
|
|
||||||
|
architecture Behavioral of i2s_stream is
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Signal Declarations
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
signal nr_of_rd, nr_of_wr : std_logic_vector (20 downto 0);
|
||||||
|
signal tlast : std_logic;
|
||||||
|
signal ready : std_logic;
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Module Implementation
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
begin
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- MM2S protocol imnplementation
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
S_Control: process (S_AXIS_MM2S_ACLK_I)
|
||||||
|
begin
|
||||||
|
if (S_AXIS_MM2S_ACLK_I'event and S_AXIS_MM2S_ACLK_I = '0') then
|
||||||
|
if (S_AXIS_MM2S_ARESETN = '0') then
|
||||||
|
nr_of_rd <= NR_OF_SMPL_I;
|
||||||
|
elsif (RX_STREAM_EN_I = '1') then
|
||||||
|
if (nr_of_rd > 0) then
|
||||||
|
if (S_AXIS_MM2S_TVALID_I = '1' and ready = '1') then
|
||||||
|
TX_FIFO_D_O <= S_AXIS_MM2S_TDATA_I(C_DATA_WIDTH-1 downto 0);
|
||||||
|
nr_of_rd <= nr_of_rd-1;
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
else
|
||||||
|
nr_of_rd <= NR_OF_SMPL_I;
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
end process;
|
||||||
|
|
||||||
|
-- ready signal decalaration
|
||||||
|
ready <= not TX_FIFO_FULL_I when RX_STREAM_EN_I = '1' else
|
||||||
|
'0';
|
||||||
|
S_AXIS_MM2S_TREADY_O <= ready;
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- S2MM protocol implementation
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
M_Control: process (M_AXIS_S2MM_ACLK_I)
|
||||||
|
begin
|
||||||
|
if (M_AXIS_S2MM_ACLK_I'event and M_AXIS_S2MM_ACLK_I = '1') then
|
||||||
|
if (M_AXIS_S2MM_ARESETN = '0') THEN
|
||||||
|
tlast <= '0';
|
||||||
|
nr_of_wr <= NR_OF_SMPL_I;
|
||||||
|
elsif (TX_STREAM_EN_I = '1') then
|
||||||
|
if (nr_of_wr > 0) then
|
||||||
|
if (M_AXIS_S2MM_TREADY_I = '1' and RX_FIFO_EMPTY_I = '0') then
|
||||||
|
nr_of_wr <= nr_of_wr-1;
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
if (nr_of_wr = 0) then
|
||||||
|
tlast <= '0';
|
||||||
|
end if;
|
||||||
|
if (nr_of_wr = 1) then
|
||||||
|
tlast <= '1';
|
||||||
|
end if;
|
||||||
|
else
|
||||||
|
tlast <= '0';
|
||||||
|
nr_of_wr <= NR_OF_SMPL_I;
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
end process;
|
||||||
|
|
||||||
|
-- S2MM Data signals
|
||||||
|
M_AXIS_S2MM_TDATA_O(C_AXI_STREAM_DATA_WIDTH-1 downto C_DATA_WIDTH) <= (others => '0');
|
||||||
|
M_AXIS_S2MM_TDATA_O(C_DATA_WIDTH-1 downto 0) <= RX_FIFO_D_I;
|
||||||
|
-- S2MM valid signal only active when strea is enabled and not EOL
|
||||||
|
M_AXIS_S2MM_TVALID_O <= not RX_FIFO_EMPTY_I when (nr_of_wr > 0 and TX_STREAM_EN_I = '1') else
|
||||||
|
'0';
|
||||||
|
M_AXIS_S2MM_TLAST_O <= tlast;
|
||||||
|
-- Kepp all incomming samples
|
||||||
|
M_AXIS_S2MM_TKEEP_O <= (others => '1');
|
||||||
|
|
||||||
|
end Behavioral;
|
||||||
|
|
|
@ -0,0 +1,73 @@
|
||||||
|
----------------------------------------------------------------------------------
|
||||||
|
-- Company:
|
||||||
|
-- Engineer:
|
||||||
|
--
|
||||||
|
-- Create Date: 10/29/2014 12:36:46 PM
|
||||||
|
-- Design Name:
|
||||||
|
-- Module Name: rst_sync - Behavioral
|
||||||
|
-- Project Name:
|
||||||
|
-- Target Devices:
|
||||||
|
-- Tool Versions:
|
||||||
|
-- Description:
|
||||||
|
--
|
||||||
|
-- Dependencies:
|
||||||
|
--
|
||||||
|
-- Revision:
|
||||||
|
-- Revision 0.01 - File Created
|
||||||
|
-- Additional Comments:
|
||||||
|
--
|
||||||
|
----------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
library IEEE;
|
||||||
|
use IEEE.STD_LOGIC_1164.ALL;
|
||||||
|
|
||||||
|
Library UNISIM;
|
||||||
|
use UNISIM.vcomponents.all;
|
||||||
|
|
||||||
|
-- Uncomment the following library declaration if using
|
||||||
|
-- arithmetic functions with Signed or Unsigned values
|
||||||
|
--use IEEE.NUMERIC_STD.ALL;
|
||||||
|
|
||||||
|
-- Uncomment the following library declaration if instantiating
|
||||||
|
-- any Xilinx leaf cells in this code.
|
||||||
|
--library UNISIM;
|
||||||
|
--use UNISIM.VComponents.all;
|
||||||
|
|
||||||
|
entity rst_sync is
|
||||||
|
Port ( RST_I : in STD_LOGIC;
|
||||||
|
CLK : in STD_LOGIC;
|
||||||
|
Q_O : out STD_LOGIC);
|
||||||
|
end rst_sync;
|
||||||
|
|
||||||
|
architecture Behavioral of rst_sync is
|
||||||
|
|
||||||
|
signal d_int: std_logic;
|
||||||
|
signal q_int: std_logic;
|
||||||
|
|
||||||
|
begin
|
||||||
|
|
||||||
|
FDRE_inst_1 : FDPE
|
||||||
|
generic map (
|
||||||
|
INIT => '0') -- Initial value of register ('0' or '1')
|
||||||
|
port map (
|
||||||
|
Q => d_int, -- Data output
|
||||||
|
C => CLK, -- Clock input
|
||||||
|
CE => '1', -- Clock enable input
|
||||||
|
PRE => RST_I, -- Synchronous reset input
|
||||||
|
D => '0' -- Data input
|
||||||
|
);
|
||||||
|
|
||||||
|
FDRE_inst_2 : FDPE
|
||||||
|
generic map (
|
||||||
|
INIT => '0') -- Initial value of register ('0' or '1')
|
||||||
|
port map (
|
||||||
|
Q => q_int, -- Data output
|
||||||
|
C => CLK, -- Clock input
|
||||||
|
CE => '1', -- Clock enable input
|
||||||
|
PRE => RST_I, -- Synchronous reset input
|
||||||
|
D => d_int -- Data input
|
||||||
|
);
|
||||||
|
|
||||||
|
Q_O <= q_int;
|
||||||
|
end Behavioral;
|
|
@ -0,0 +1,109 @@
|
||||||
|
# Definitional proc to organize widgets for parameters.
|
||||||
|
proc init_gui { IPINST } {
|
||||||
|
ipgui::add_param $IPINST -name "Component_Name"
|
||||||
|
#Adding Page
|
||||||
|
set Page_0 [ipgui::add_page $IPINST -name "Page 0"]
|
||||||
|
set_property tooltip {Page 0} ${Page_0}
|
||||||
|
ipgui::add_param $IPINST -name "C_DATA_WIDTH" -parent ${Page_0}
|
||||||
|
ipgui::add_param $IPINST -name "C_AXI_STREAM_DATA_WIDTH" -parent ${Page_0}
|
||||||
|
ipgui::add_param $IPINST -name "C_AXI_L_DATA_WIDTH" -parent ${Page_0}
|
||||||
|
ipgui::add_param $IPINST -name "C_AXI_L_ADDR_WIDTH" -parent ${Page_0}
|
||||||
|
ipgui::add_param $IPINST -name "ENABLE_STREAM" -parent ${Page_0}
|
||||||
|
ipgui::add_param $IPINST -name "BIDIRECTIONAL_CLK" -parent ${Page_0}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
proc update_PARAM_VALUE.BIDIRECTIONAL_CLK { PARAM_VALUE.BIDIRECTIONAL_CLK } {
|
||||||
|
# Procedure called to update BIDIRECTIONAL_CLK when any of the dependent parameters in the arguments change
|
||||||
|
}
|
||||||
|
|
||||||
|
proc validate_PARAM_VALUE.BIDIRECTIONAL_CLK { PARAM_VALUE.BIDIRECTIONAL_CLK } {
|
||||||
|
# Procedure called to validate BIDIRECTIONAL_CLK
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
proc update_PARAM_VALUE.C_AXI_L_ADDR_WIDTH { PARAM_VALUE.C_AXI_L_ADDR_WIDTH } {
|
||||||
|
# Procedure called to update C_AXI_L_ADDR_WIDTH when any of the dependent parameters in the arguments change
|
||||||
|
}
|
||||||
|
|
||||||
|
proc validate_PARAM_VALUE.C_AXI_L_ADDR_WIDTH { PARAM_VALUE.C_AXI_L_ADDR_WIDTH } {
|
||||||
|
# Procedure called to validate C_AXI_L_ADDR_WIDTH
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
proc update_PARAM_VALUE.C_AXI_L_DATA_WIDTH { PARAM_VALUE.C_AXI_L_DATA_WIDTH } {
|
||||||
|
# Procedure called to update C_AXI_L_DATA_WIDTH when any of the dependent parameters in the arguments change
|
||||||
|
}
|
||||||
|
|
||||||
|
proc validate_PARAM_VALUE.C_AXI_L_DATA_WIDTH { PARAM_VALUE.C_AXI_L_DATA_WIDTH } {
|
||||||
|
# Procedure called to validate C_AXI_L_DATA_WIDTH
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
proc update_PARAM_VALUE.C_AXI_STREAM_DATA_WIDTH { PARAM_VALUE.C_AXI_STREAM_DATA_WIDTH } {
|
||||||
|
# Procedure called to update C_AXI_STREAM_DATA_WIDTH when any of the dependent parameters in the arguments change
|
||||||
|
}
|
||||||
|
|
||||||
|
proc validate_PARAM_VALUE.C_AXI_STREAM_DATA_WIDTH { PARAM_VALUE.C_AXI_STREAM_DATA_WIDTH } {
|
||||||
|
# Procedure called to validate C_AXI_STREAM_DATA_WIDTH
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
proc update_PARAM_VALUE.C_DATA_WIDTH { PARAM_VALUE.C_DATA_WIDTH } {
|
||||||
|
# Procedure called to update C_DATA_WIDTH when any of the dependent parameters in the arguments change
|
||||||
|
}
|
||||||
|
|
||||||
|
proc validate_PARAM_VALUE.C_DATA_WIDTH { PARAM_VALUE.C_DATA_WIDTH } {
|
||||||
|
# Procedure called to validate C_DATA_WIDTH
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
proc update_PARAM_VALUE.ENABLE_STREAM { PARAM_VALUE.ENABLE_STREAM } {
|
||||||
|
# Procedure called to update ENABLE_STREAM when any of the dependent parameters in the arguments change
|
||||||
|
}
|
||||||
|
|
||||||
|
proc validate_PARAM_VALUE.ENABLE_STREAM { PARAM_VALUE.ENABLE_STREAM } {
|
||||||
|
# Procedure called to validate ENABLE_STREAM
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
proc update_PARAM_VALUE.C_AXI_L_BASEADDR { PARAM_VALUE.C_AXI_L_BASEADDR } {
|
||||||
|
# Procedure called to update C_AXI_L_BASEADDR when any of the dependent parameters in the arguments change
|
||||||
|
}
|
||||||
|
|
||||||
|
proc validate_PARAM_VALUE.C_AXI_L_BASEADDR { PARAM_VALUE.C_AXI_L_BASEADDR } {
|
||||||
|
# Procedure called to validate C_AXI_L_BASEADDR
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
proc update_PARAM_VALUE.C_AXI_L_HIGHADDR { PARAM_VALUE.C_AXI_L_HIGHADDR } {
|
||||||
|
# Procedure called to update C_AXI_L_HIGHADDR when any of the dependent parameters in the arguments change
|
||||||
|
}
|
||||||
|
|
||||||
|
proc validate_PARAM_VALUE.C_AXI_L_HIGHADDR { PARAM_VALUE.C_AXI_L_HIGHADDR } {
|
||||||
|
# Procedure called to validate C_AXI_L_HIGHADDR
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
proc update_MODELPARAM_VALUE.C_DATA_WIDTH { MODELPARAM_VALUE.C_DATA_WIDTH PARAM_VALUE.C_DATA_WIDTH } {
|
||||||
|
# Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value
|
||||||
|
set_property value [get_property value ${PARAM_VALUE.C_DATA_WIDTH}] ${MODELPARAM_VALUE.C_DATA_WIDTH}
|
||||||
|
}
|
||||||
|
|
||||||
|
proc update_MODELPARAM_VALUE.C_AXI_STREAM_DATA_WIDTH { MODELPARAM_VALUE.C_AXI_STREAM_DATA_WIDTH PARAM_VALUE.C_AXI_STREAM_DATA_WIDTH } {
|
||||||
|
# Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value
|
||||||
|
set_property value [get_property value ${PARAM_VALUE.C_AXI_STREAM_DATA_WIDTH}] ${MODELPARAM_VALUE.C_AXI_STREAM_DATA_WIDTH}
|
||||||
|
}
|
||||||
|
|
||||||
|
proc update_MODELPARAM_VALUE.C_AXI_L_DATA_WIDTH { MODELPARAM_VALUE.C_AXI_L_DATA_WIDTH PARAM_VALUE.C_AXI_L_DATA_WIDTH } {
|
||||||
|
# Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value
|
||||||
|
set_property value [get_property value ${PARAM_VALUE.C_AXI_L_DATA_WIDTH}] ${MODELPARAM_VALUE.C_AXI_L_DATA_WIDTH}
|
||||||
|
}
|
||||||
|
|
||||||
|
proc update_MODELPARAM_VALUE.C_AXI_L_ADDR_WIDTH { MODELPARAM_VALUE.C_AXI_L_ADDR_WIDTH PARAM_VALUE.C_AXI_L_ADDR_WIDTH } {
|
||||||
|
# Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value
|
||||||
|
set_property value [get_property value ${PARAM_VALUE.C_AXI_L_ADDR_WIDTH}] ${MODELPARAM_VALUE.C_AXI_L_ADDR_WIDTH}
|
||||||
|
}
|
||||||
|
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
@ -0,0 +1,85 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
//#include "platform.h"
|
||||||
|
#include "xil_printf.h"
|
||||||
|
#include "xv_tpg.h"
|
||||||
|
#include "xvtc.h"
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
//init_platform();
|
||||||
|
|
||||||
|
int Status;
|
||||||
|
XV_tpg tpg_inst; // Instance of the TPG core
|
||||||
|
XVtc VtcInst; // Instance of the VTC core
|
||||||
|
|
||||||
|
print("--- hdmi-out-test ---\n\r");
|
||||||
|
|
||||||
|
//--( TPG Initialization
|
||||||
|
print("TPG Initialization\n\r");
|
||||||
|
Status = XV_tpg_Initialize(&tpg_inst, XPAR_XV_TPG_0_DEVICE_ID);
|
||||||
|
if(Status!= XST_SUCCESS)
|
||||||
|
{
|
||||||
|
xil_printf("TPG configuration failed\r\n");
|
||||||
|
return(XST_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set Resolution to 1280x720
|
||||||
|
XV_tpg_Set_height(&tpg_inst, 720);
|
||||||
|
XV_tpg_Set_width(&tpg_inst, 1280);
|
||||||
|
|
||||||
|
// Set Color Space to RGB
|
||||||
|
XV_tpg_Set_colorFormat(&tpg_inst, 0x0);
|
||||||
|
|
||||||
|
//Set pattern to color bar
|
||||||
|
XV_tpg_Set_bckgndId(&tpg_inst, XTPG_BKGND_COLOR_BARS);
|
||||||
|
|
||||||
|
//Start the TPG
|
||||||
|
XV_tpg_EnableAutoRestart(&tpg_inst);
|
||||||
|
XV_tpg_Start(&tpg_inst);
|
||||||
|
xil_printf("TPG started!\r\n");
|
||||||
|
//--)
|
||||||
|
|
||||||
|
//--( VTC Initialization
|
||||||
|
print("VTC Initialization\n\r");
|
||||||
|
XVtc_Config *Config;
|
||||||
|
XVtc_Timing ti;
|
||||||
|
XVtc_Signal si;
|
||||||
|
XVtc_HoriOffsets ho;
|
||||||
|
XVtc_Polarity po;
|
||||||
|
|
||||||
|
//Initialize the VTC driver so that it's ready to use look up
|
||||||
|
//configuration in the config table, then initialize it.
|
||||||
|
Config = XVtc_LookupConfig(XPAR_VTC_0_DEVICE_ID);
|
||||||
|
if (NULL == Config) {
|
||||||
|
return (XST_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Initialize the VTC core
|
||||||
|
Status = XVtc_CfgInitialize(&VtcInst, Config, Config->BaseAddress);
|
||||||
|
if (Status != (XST_SUCCESS)) {
|
||||||
|
return (XST_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Perform a self-test
|
||||||
|
Status = XVtc_SelfTest(&VtcInst);
|
||||||
|
if (Status != (XST_SUCCESS)) {
|
||||||
|
return (XST_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Set our configuration as 1280x720
|
||||||
|
XVtc_ConvVideoMode2Timing(&VtcInst, XVTC_VMODE_720P, &ti);
|
||||||
|
XVtc_ConvTiming2Signal(&VtcInst, &ti, &si, &ho, &po);
|
||||||
|
XVtc_SetGenerator(&VtcInst, &si);
|
||||||
|
|
||||||
|
//Enable the vtc
|
||||||
|
XVtc_Enable(&VtcInst);
|
||||||
|
xil_printf("VTC enabled!\r\n");
|
||||||
|
//--)
|
||||||
|
|
||||||
|
|
||||||
|
while(1){
|
||||||
|
}
|
||||||
|
|
||||||
|
cleanup_platform();
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -0,0 +1,373 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!-- Product Version: Vivado v2021.2 (64-bit) -->
|
||||||
|
<!-- -->
|
||||||
|
<!-- Copyright 1986-2021 Xilinx, Inc. All Rights Reserved. -->
|
||||||
|
|
||||||
|
<Project Version="7" Minor="56" Path="/home/neyko/DEV/git/PYNQ-Z2_demos/hdmi-out-test/hdmi-out-test.xpr">
|
||||||
|
<DefaultLaunch Dir="$PRUNDIR"/>
|
||||||
|
<Configuration>
|
||||||
|
<Option Name="Id" Val="5c156bcd3bc547d9bbfae9bc18edebc6"/>
|
||||||
|
<Option Name="Part" Val="xc7z020clg400-1"/>
|
||||||
|
<Option Name="CompiledLibDir" Val="$PCACHEDIR/compile_simlib"/>
|
||||||
|
<Option Name="CompiledLibDirXSim" Val=""/>
|
||||||
|
<Option Name="CompiledLibDirModelSim" Val="$PCACHEDIR/compile_simlib/modelsim"/>
|
||||||
|
<Option Name="CompiledLibDirQuesta" Val="$PCACHEDIR/compile_simlib/questa"/>
|
||||||
|
<Option Name="CompiledLibDirXcelium" Val="$PCACHEDIR/compile_simlib/xcelium"/>
|
||||||
|
<Option Name="CompiledLibDirVCS" Val="$PCACHEDIR/compile_simlib/vcs"/>
|
||||||
|
<Option Name="CompiledLibDirRiviera" Val="$PCACHEDIR/compile_simlib/riviera"/>
|
||||||
|
<Option Name="CompiledLibDirActivehdl" Val="$PCACHEDIR/compile_simlib/activehdl"/>
|
||||||
|
<Option Name="SimulatorInstallDirModelSim" Val=""/>
|
||||||
|
<Option Name="SimulatorInstallDirQuesta" Val=""/>
|
||||||
|
<Option Name="SimulatorInstallDirXcelium" Val=""/>
|
||||||
|
<Option Name="SimulatorInstallDirVCS" Val=""/>
|
||||||
|
<Option Name="SimulatorInstallDirRiviera" Val=""/>
|
||||||
|
<Option Name="SimulatorInstallDirActiveHdl" Val=""/>
|
||||||
|
<Option Name="SimulatorGccInstallDirModelSim" Val=""/>
|
||||||
|
<Option Name="SimulatorGccInstallDirQuesta" Val=""/>
|
||||||
|
<Option Name="SimulatorGccInstallDirXcelium" Val=""/>
|
||||||
|
<Option Name="SimulatorGccInstallDirVCS" Val=""/>
|
||||||
|
<Option Name="SimulatorGccInstallDirRiviera" Val=""/>
|
||||||
|
<Option Name="SimulatorGccInstallDirActiveHdl" Val=""/>
|
||||||
|
<Option Name="SimulatorVersionXsim" Val="2021.2"/>
|
||||||
|
<Option Name="SimulatorVersionModelSim" Val="2020.4"/>
|
||||||
|
<Option Name="SimulatorVersionQuesta" Val="2020.4"/>
|
||||||
|
<Option Name="SimulatorVersionXcelium" Val="20.09.006"/>
|
||||||
|
<Option Name="SimulatorVersionVCS" Val="R-2020.12"/>
|
||||||
|
<Option Name="SimulatorVersionRiviera" Val="2020.10"/>
|
||||||
|
<Option Name="SimulatorVersionActiveHdl" Val="12.0"/>
|
||||||
|
<Option Name="SimulatorGccVersionXsim" Val="6.2.0"/>
|
||||||
|
<Option Name="SimulatorGccVersionModelSim" Val="5.3.0"/>
|
||||||
|
<Option Name="SimulatorGccVersionQuesta" Val="5.3.0"/>
|
||||||
|
<Option Name="SimulatorGccVersionXcelium" Val="6.3"/>
|
||||||
|
<Option Name="SimulatorGccVersionVCS" Val="6.2.0"/>
|
||||||
|
<Option Name="SimulatorGccVersionRiviera" Val="6.2.0"/>
|
||||||
|
<Option Name="SimulatorGccVersionActiveHdl" Val="6.2.0"/>
|
||||||
|
<Option Name="BoardPart" Val="tul.com.tw:pynq-z2:part0:1.0"/>
|
||||||
|
<Option Name="ActiveSimSet" Val="sim_1"/>
|
||||||
|
<Option Name="DefaultLib" Val="xil_defaultlib"/>
|
||||||
|
<Option Name="ProjectType" Val="Default"/>
|
||||||
|
<Option Name="IPRepoPath" Val="$PPRDIR/hdmi-out-test.ipdefs"/>
|
||||||
|
<Option Name="IPRepoPath" Val="$PPRDIR/digilent.ipdefs"/>
|
||||||
|
<Option Name="IPOutputRepo" Val="$PCACHEDIR/ip"/>
|
||||||
|
<Option Name="IPDefaultOutputPath" Val="$PGENDIR/sources_1"/>
|
||||||
|
<Option Name="IPCachePermission" Val="read"/>
|
||||||
|
<Option Name="IPCachePermission" Val="write"/>
|
||||||
|
<Option Name="EnableCoreContainer" Val="FALSE"/>
|
||||||
|
<Option Name="CreateRefXciForCoreContainers" Val="FALSE"/>
|
||||||
|
<Option Name="IPUserFilesDir" Val="$PIPUSERFILESDIR"/>
|
||||||
|
<Option Name="IPStaticSourceDir" Val="$PIPUSERFILESDIR/ipstatic"/>
|
||||||
|
<Option Name="EnableBDX" Val="FALSE"/>
|
||||||
|
<Option Name="DSABoardId" Val="pynq-z2"/>
|
||||||
|
<Option Name="WTXSimLaunchSim" Val="0"/>
|
||||||
|
<Option Name="WTModelSimLaunchSim" Val="0"/>
|
||||||
|
<Option Name="WTQuestaLaunchSim" Val="0"/>
|
||||||
|
<Option Name="WTIesLaunchSim" Val="0"/>
|
||||||
|
<Option Name="WTVcsLaunchSim" Val="0"/>
|
||||||
|
<Option Name="WTRivieraLaunchSim" Val="0"/>
|
||||||
|
<Option Name="WTActivehdlLaunchSim" Val="0"/>
|
||||||
|
<Option Name="WTXSimExportSim" Val="2"/>
|
||||||
|
<Option Name="WTModelSimExportSim" Val="2"/>
|
||||||
|
<Option Name="WTQuestaExportSim" Val="2"/>
|
||||||
|
<Option Name="WTIesExportSim" Val="0"/>
|
||||||
|
<Option Name="WTVcsExportSim" Val="2"/>
|
||||||
|
<Option Name="WTRivieraExportSim" Val="2"/>
|
||||||
|
<Option Name="WTActivehdlExportSim" Val="2"/>
|
||||||
|
<Option Name="GenerateIPUpgradeLog" Val="TRUE"/>
|
||||||
|
<Option Name="XSimRadix" Val="hex"/>
|
||||||
|
<Option Name="XSimTimeUnit" Val="ns"/>
|
||||||
|
<Option Name="XSimArrayDisplayLimit" Val="1024"/>
|
||||||
|
<Option Name="XSimTraceLimit" Val="65536"/>
|
||||||
|
<Option Name="SimTypes" Val="rtl"/>
|
||||||
|
<Option Name="SimTypes" Val="bfm"/>
|
||||||
|
<Option Name="SimTypes" Val="tlm"/>
|
||||||
|
<Option Name="SimTypes" Val="tlm_dpi"/>
|
||||||
|
<Option Name="MEMEnableMemoryMapGeneration" Val="TRUE"/>
|
||||||
|
<Option Name="DcpsUptoDate" Val="TRUE"/>
|
||||||
|
<Option Name="ClassicSocBoot" Val="FALSE"/>
|
||||||
|
</Configuration>
|
||||||
|
<FileSets Version="1" Minor="31">
|
||||||
|
<FileSet Name="sources_1" Type="DesignSrcs" RelSrcDir="$PSRCDIR/sources_1" RelGenDir="$PGENDIR/sources_1">
|
||||||
|
<Filter Type="Srcs"/>
|
||||||
|
<File Path="$PSRCDIR/sources_1/bd/design_1/design_1.bd">
|
||||||
|
<FileInfo>
|
||||||
|
<Attr Name="ImportPath" Val="$PPRDIR/../ARM_DMA_audio/Zedboard-DMA/Zedboard-DMA.srcs/sources_1/bd/design_1/design_1.bd"/>
|
||||||
|
<Attr Name="ImportTime" Val="1712656797"/>
|
||||||
|
<Attr Name="UsedIn" Val="synthesis"/>
|
||||||
|
<Attr Name="UsedIn" Val="implementation"/>
|
||||||
|
<Attr Name="UsedIn" Val="simulation"/>
|
||||||
|
</FileInfo>
|
||||||
|
<CompFileExtendedInfo CompFileName="design_1.bd" FileRelPathName="ip/design_1_processing_system7_0_0/design_1_processing_system7_0_0.xci">
|
||||||
|
<Proxy FileSetName="design_1_processing_system7_0_0"/>
|
||||||
|
</CompFileExtendedInfo>
|
||||||
|
<CompFileExtendedInfo CompFileName="design_1.bd" FileRelPathName="ip/design_1_v_tc_0_0/design_1_v_tc_0_0.xci">
|
||||||
|
<Proxy FileSetName="design_1_v_tc_0_0"/>
|
||||||
|
</CompFileExtendedInfo>
|
||||||
|
<CompFileExtendedInfo CompFileName="design_1.bd" FileRelPathName="ip/design_1_rst_processing_system7_0_100M_1/design_1_rst_processing_system7_0_100M_1.xci">
|
||||||
|
<Proxy FileSetName="design_1_rst_processing_system7_0_100M_1"/>
|
||||||
|
</CompFileExtendedInfo>
|
||||||
|
</File>
|
||||||
|
<File Path="$PGENDIR/sources_1/bd/design_1/hdl/design_1_wrapper.v">
|
||||||
|
<FileInfo>
|
||||||
|
<Attr Name="UsedIn" Val="synthesis"/>
|
||||||
|
<Attr Name="UsedIn" Val="implementation"/>
|
||||||
|
<Attr Name="UsedIn" Val="simulation"/>
|
||||||
|
</FileInfo>
|
||||||
|
</File>
|
||||||
|
<Config>
|
||||||
|
<Option Name="DesignMode" Val="RTL"/>
|
||||||
|
<Option Name="TopModule" Val="design_1_wrapper"/>
|
||||||
|
<Option Name="TopAutoSet" Val="TRUE"/>
|
||||||
|
</Config>
|
||||||
|
</FileSet>
|
||||||
|
<FileSet Name="constrs_1" Type="Constrs" RelSrcDir="$PSRCDIR/constrs_1" RelGenDir="$PGENDIR/constrs_1">
|
||||||
|
<Filter Type="Constrs"/>
|
||||||
|
<File Path="$PPRDIR/xdc/pynqz2.xdc">
|
||||||
|
<FileInfo>
|
||||||
|
<Attr Name="UsedIn" Val="synthesis"/>
|
||||||
|
<Attr Name="UsedIn" Val="implementation"/>
|
||||||
|
</FileInfo>
|
||||||
|
</File>
|
||||||
|
<Config>
|
||||||
|
<Option Name="ConstrsType" Val="XDC"/>
|
||||||
|
</Config>
|
||||||
|
</FileSet>
|
||||||
|
<FileSet Name="sim_1" Type="SimulationSrcs" RelSrcDir="$PSRCDIR/sim_1" RelGenDir="$PGENDIR/sim_1">
|
||||||
|
<Filter Type="Srcs"/>
|
||||||
|
<Config>
|
||||||
|
<Option Name="DesignMode" Val="RTL"/>
|
||||||
|
<Option Name="TopModule" Val="design_1_wrapper"/>
|
||||||
|
<Option Name="TopLib" Val="xil_defaultlib"/>
|
||||||
|
<Option Name="TopAutoSet" Val="TRUE"/>
|
||||||
|
<Option Name="TransportPathDelay" Val="0"/>
|
||||||
|
<Option Name="TransportIntDelay" Val="0"/>
|
||||||
|
<Option Name="SelectedSimModel" Val="rtl"/>
|
||||||
|
<Option Name="PamDesignTestbench" Val=""/>
|
||||||
|
<Option Name="PamDutBypassFile" Val="xil_dut_bypass"/>
|
||||||
|
<Option Name="PamSignalDriverFile" Val="xil_bypass_driver"/>
|
||||||
|
<Option Name="PamPseudoTop" Val="pseudo_tb"/>
|
||||||
|
<Option Name="SrcSet" Val="sources_1"/>
|
||||||
|
</Config>
|
||||||
|
</FileSet>
|
||||||
|
<FileSet Name="utils_1" Type="Utils" RelSrcDir="$PSRCDIR/utils_1" RelGenDir="$PGENDIR/utils_1">
|
||||||
|
<Filter Type="Utils"/>
|
||||||
|
<File Path="$PSRCDIR/utils_1/imports/synth_2/design_1_wrapper.dcp">
|
||||||
|
<FileInfo>
|
||||||
|
<Attr Name="UsedIn" Val="synthesis"/>
|
||||||
|
<Attr Name="UsedIn" Val="implementation"/>
|
||||||
|
<Attr Name="UsedInSteps" Val="synth_2"/>
|
||||||
|
<Attr Name="AutoDcp" Val="1"/>
|
||||||
|
</FileInfo>
|
||||||
|
</File>
|
||||||
|
<File Path="$PSRCDIR/utils_1/imports/synth_1/design_1_wrapper.dcp">
|
||||||
|
<FileInfo>
|
||||||
|
<Attr Name="UsedIn" Val="synthesis"/>
|
||||||
|
<Attr Name="UsedIn" Val="implementation"/>
|
||||||
|
<Attr Name="UsedInSteps" Val="synth_1"/>
|
||||||
|
<Attr Name="AutoDcp" Val="1"/>
|
||||||
|
</FileInfo>
|
||||||
|
</File>
|
||||||
|
<Config>
|
||||||
|
<Option Name="TopAutoSet" Val="TRUE"/>
|
||||||
|
</Config>
|
||||||
|
</FileSet>
|
||||||
|
<FileSet Name="design_1_processing_system7_0_0" Type="BlockSrcs" RelSrcDir="$PSRCDIR/design_1_processing_system7_0_0" RelGenDir="$PGENDIR/design_1_processing_system7_0_0">
|
||||||
|
<Config>
|
||||||
|
<Option Name="TopModule" Val="design_1_processing_system7_0_0"/>
|
||||||
|
<Option Name="UseBlackboxStub" Val="1"/>
|
||||||
|
</Config>
|
||||||
|
</FileSet>
|
||||||
|
<FileSet Name="design_1_rst_processing_system7_0_100M_1" Type="BlockSrcs" RelSrcDir="$PSRCDIR/design_1_rst_processing_system7_0_100M_1" RelGenDir="$PGENDIR/design_1_rst_processing_system7_0_100M_1">
|
||||||
|
<Config>
|
||||||
|
<Option Name="TopModule" Val="design_1_rst_processing_system7_0_100M_1"/>
|
||||||
|
<Option Name="UseBlackboxStub" Val="1"/>
|
||||||
|
</Config>
|
||||||
|
</FileSet>
|
||||||
|
<FileSet Name="design_1_v_tc_0_0" Type="BlockSrcs" RelSrcDir="$PSRCDIR/design_1_v_tc_0_0" RelGenDir="$PGENDIR/design_1_v_tc_0_0">
|
||||||
|
<Config>
|
||||||
|
<Option Name="TopModule" Val="design_1_v_tc_0_0"/>
|
||||||
|
<Option Name="UseBlackboxStub" Val="1"/>
|
||||||
|
</Config>
|
||||||
|
</FileSet>
|
||||||
|
</FileSets>
|
||||||
|
<Simulators>
|
||||||
|
<Simulator Name="XSim">
|
||||||
|
<Option Name="Description" Val="Vivado Simulator"/>
|
||||||
|
<Option Name="CompiledLib" Val="0"/>
|
||||||
|
</Simulator>
|
||||||
|
<Simulator Name="ModelSim">
|
||||||
|
<Option Name="Description" Val="ModelSim Simulator"/>
|
||||||
|
</Simulator>
|
||||||
|
<Simulator Name="Questa">
|
||||||
|
<Option Name="Description" Val="Questa Advanced Simulator"/>
|
||||||
|
</Simulator>
|
||||||
|
<Simulator Name="Xcelium">
|
||||||
|
<Option Name="Description" Val="Xcelium Parallel Simulator"/>
|
||||||
|
</Simulator>
|
||||||
|
<Simulator Name="VCS">
|
||||||
|
<Option Name="Description" Val="Verilog Compiler Simulator (VCS)"/>
|
||||||
|
</Simulator>
|
||||||
|
<Simulator Name="Riviera">
|
||||||
|
<Option Name="Description" Val="Riviera-PRO Simulator"/>
|
||||||
|
</Simulator>
|
||||||
|
</Simulators>
|
||||||
|
<Runs Version="1" Minor="15">
|
||||||
|
<Run Id="synth_2" Type="Ft3:Synth" SrcSet="sources_1" Part="xc7z020clg400-1" ConstrsSet="constrs_1" Description="Vivado Synthesis Defaults" AutoIncrementalCheckpoint="true" IncrementalCheckpoint="$PSRCDIR/utils_1/imports/synth_2/design_1_wrapper.dcp" WriteIncrSynthDcp="false" State="current" Dir="$PRUNDIR/synth_2" IncludeInArchive="true" IsChild="false" AutoIncrementalDir="$PSRCDIR/utils_1/imports/synth_2">
|
||||||
|
<Strategy Version="1" Minor="2">
|
||||||
|
<StratHandle Name="Vivado Synthesis Defaults" Flow="Vivado Synthesis 2021"/>
|
||||||
|
<Step Id="synth_design"/>
|
||||||
|
</Strategy>
|
||||||
|
<GeneratedRun Dir="$PRUNDIR" File="gen_run.xml"/>
|
||||||
|
<ReportStrategy Name="Vivado Synthesis Default Reports" Flow="Vivado Synthesis 2021"/>
|
||||||
|
<Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/>
|
||||||
|
<RQSFiles/>
|
||||||
|
</Run>
|
||||||
|
<Run Id="synth_1" Type="Ft3:Synth" SrcSet="sources_1" Part="xc7z020clg400-1" ConstrsSet="constrs_1" Description="Vivado Synthesis Defaults" AutoIncrementalCheckpoint="true" IncrementalCheckpoint="$PSRCDIR/utils_1/imports/synth_1/design_1_wrapper.dcp" WriteIncrSynthDcp="false" Dir="$PRUNDIR/synth_1" IncludeInArchive="true" IsChild="false" AutoIncrementalDir="$PSRCDIR/utils_1/imports/synth_1">
|
||||||
|
<Strategy Version="1" Minor="2">
|
||||||
|
<StratHandle Name="Vivado Synthesis Defaults" Flow="Vivado Synthesis 2021"/>
|
||||||
|
<Step Id="synth_design"/>
|
||||||
|
</Strategy>
|
||||||
|
<GeneratedRun Dir="$PRUNDIR" File="gen_run.xml"/>
|
||||||
|
<ReportStrategy Name="Vivado Synthesis Default Reports" Flow="Vivado Synthesis 2021"/>
|
||||||
|
<Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/>
|
||||||
|
<RQSFiles/>
|
||||||
|
</Run>
|
||||||
|
<Run Id="design_1_processing_system7_0_0_synth_1" Type="Ft3:Synth" SrcSet="design_1_processing_system7_0_0" Part="xc7z020clg400-1" ConstrsSet="design_1_processing_system7_0_0" Description="Vivado Synthesis Defaults" AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" Dir="$PRUNDIR/design_1_processing_system7_0_0_synth_1" IncludeInArchive="true" IsChild="false" AutoIncrementalDir="$PSRCDIR/utils_1/imports/design_1_processing_system7_0_0_synth_1">
|
||||||
|
<Strategy Version="1" Minor="2">
|
||||||
|
<StratHandle Name="Vivado Synthesis Defaults" Flow="Vivado Synthesis 2021"/>
|
||||||
|
<Step Id="synth_design"/>
|
||||||
|
</Strategy>
|
||||||
|
<GeneratedRun Dir="$PRUNDIR" File="gen_run.xml"/>
|
||||||
|
<ReportStrategy Name="Vivado Synthesis Default Reports" Flow="Vivado Synthesis 2021"/>
|
||||||
|
<Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/>
|
||||||
|
<RQSFiles/>
|
||||||
|
</Run>
|
||||||
|
<Run Id="design_1_rst_processing_system7_0_100M_1_synth_1" Type="Ft3:Synth" SrcSet="design_1_rst_processing_system7_0_100M_1" Part="xc7z020clg400-1" ConstrsSet="design_1_rst_processing_system7_0_100M_1" Description="Vivado Synthesis Defaults" AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" Dir="$PRUNDIR/design_1_rst_processing_system7_0_100M_1_synth_1" IncludeInArchive="true" IsChild="false" AutoIncrementalDir="$PSRCDIR/utils_1/imports/design_1_rst_processing_system7_0_100M_1_synth_1">
|
||||||
|
<Strategy Version="1" Minor="2">
|
||||||
|
<StratHandle Name="Vivado Synthesis Defaults" Flow="Vivado Synthesis 2021"/>
|
||||||
|
<Step Id="synth_design"/>
|
||||||
|
</Strategy>
|
||||||
|
<GeneratedRun Dir="$PRUNDIR" File="gen_run.xml"/>
|
||||||
|
<ReportStrategy Name="Vivado Synthesis Default Reports" Flow="Vivado Synthesis 2021"/>
|
||||||
|
<Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/>
|
||||||
|
<RQSFiles/>
|
||||||
|
</Run>
|
||||||
|
<Run Id="design_1_v_tc_0_0_synth_1" Type="Ft3:Synth" SrcSet="design_1_v_tc_0_0" Part="xc7z020clg400-1" ConstrsSet="design_1_v_tc_0_0" Description="Vivado Synthesis Defaults" AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" Dir="$PRUNDIR/design_1_v_tc_0_0_synth_1" IncludeInArchive="true" IsChild="false" AutoIncrementalDir="$PSRCDIR/utils_1/imports/design_1_v_tc_0_0_synth_1">
|
||||||
|
<Strategy Version="1" Minor="2">
|
||||||
|
<StratHandle Name="Vivado Synthesis Defaults" Flow="Vivado Synthesis 2021"/>
|
||||||
|
<Step Id="synth_design"/>
|
||||||
|
</Strategy>
|
||||||
|
<GeneratedRun Dir="$PRUNDIR" File="gen_run.xml"/>
|
||||||
|
<ReportStrategy Name="Vivado Synthesis Default Reports" Flow="Vivado Synthesis 2021"/>
|
||||||
|
<Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/>
|
||||||
|
<RQSFiles/>
|
||||||
|
</Run>
|
||||||
|
<Run Id="impl_2" Type="Ft2:EntireDesign" Part="xc7z020clg400-1" ConstrsSet="constrs_1" Description="Default settings for Implementation." AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" State="current" Dir="$PRUNDIR/impl_2" SynthRun="synth_2" IncludeInArchive="true" IsChild="false" GenFullBitstream="true" AutoIncrementalDir="$PSRCDIR/utils_1/imports/impl_2">
|
||||||
|
<Strategy Version="1" Minor="2">
|
||||||
|
<StratHandle Name="Vivado Implementation Defaults" Flow="Vivado Implementation 2021"/>
|
||||||
|
<Step Id="init_design"/>
|
||||||
|
<Step Id="opt_design"/>
|
||||||
|
<Step Id="power_opt_design"/>
|
||||||
|
<Step Id="place_design"/>
|
||||||
|
<Step Id="post_place_power_opt_design"/>
|
||||||
|
<Step Id="phys_opt_design"/>
|
||||||
|
<Step Id="route_design"/>
|
||||||
|
<Step Id="post_route_phys_opt_design"/>
|
||||||
|
<Step Id="write_bitstream"/>
|
||||||
|
</Strategy>
|
||||||
|
<GeneratedRun Dir="$PRUNDIR" File="gen_run.xml"/>
|
||||||
|
<ReportStrategy Name="Vivado Implementation Default Reports" Flow="Vivado Implementation 2021"/>
|
||||||
|
<Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/>
|
||||||
|
<RQSFiles/>
|
||||||
|
</Run>
|
||||||
|
<Run Id="impl_1" Type="Ft2:EntireDesign" Part="xc7z020clg400-1" ConstrsSet="constrs_1" Description="Default settings for Implementation." AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" Dir="$PRUNDIR/impl_1" SynthRun="synth_1" IncludeInArchive="true" IsChild="false" GenFullBitstream="true" AutoIncrementalDir="$PSRCDIR/utils_1/imports/impl_1">
|
||||||
|
<Strategy Version="1" Minor="2">
|
||||||
|
<StratHandle Name="Vivado Implementation Defaults" Flow="Vivado Implementation 2021"/>
|
||||||
|
<Step Id="init_design"/>
|
||||||
|
<Step Id="opt_design"/>
|
||||||
|
<Step Id="power_opt_design"/>
|
||||||
|
<Step Id="place_design"/>
|
||||||
|
<Step Id="post_place_power_opt_design"/>
|
||||||
|
<Step Id="phys_opt_design"/>
|
||||||
|
<Step Id="route_design"/>
|
||||||
|
<Step Id="post_route_phys_opt_design"/>
|
||||||
|
<Step Id="write_bitstream"/>
|
||||||
|
</Strategy>
|
||||||
|
<GeneratedRun Dir="$PRUNDIR" File="gen_run.xml"/>
|
||||||
|
<ReportStrategy Name="Vivado Implementation Default Reports" Flow="Vivado Implementation 2021"/>
|
||||||
|
<Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/>
|
||||||
|
<RQSFiles/>
|
||||||
|
</Run>
|
||||||
|
<Run Id="design_1_processing_system7_0_0_impl_1" Type="Ft2:EntireDesign" Part="xc7z020clg400-1" ConstrsSet="design_1_processing_system7_0_0" Description="Default settings for Implementation." AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" SynthRun="design_1_processing_system7_0_0_synth_1" IncludeInArchive="false" IsChild="false" GenFullBitstream="true" AutoIncrementalDir="$PSRCDIR/utils_1/imports/design_1_processing_system7_0_0_impl_1">
|
||||||
|
<Strategy Version="1" Minor="2">
|
||||||
|
<StratHandle Name="Vivado Implementation Defaults" Flow="Vivado Implementation 2021"/>
|
||||||
|
<Step Id="init_design"/>
|
||||||
|
<Step Id="opt_design"/>
|
||||||
|
<Step Id="power_opt_design"/>
|
||||||
|
<Step Id="place_design"/>
|
||||||
|
<Step Id="post_place_power_opt_design"/>
|
||||||
|
<Step Id="phys_opt_design"/>
|
||||||
|
<Step Id="route_design"/>
|
||||||
|
<Step Id="post_route_phys_opt_design"/>
|
||||||
|
<Step Id="write_bitstream"/>
|
||||||
|
</Strategy>
|
||||||
|
<ReportStrategy Name="Vivado Implementation Default Reports" Flow="Vivado Implementation 2021"/>
|
||||||
|
<Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/>
|
||||||
|
<RQSFiles/>
|
||||||
|
</Run>
|
||||||
|
<Run Id="design_1_rst_processing_system7_0_100M_1_impl_1" Type="Ft2:EntireDesign" Part="xc7z020clg400-1" ConstrsSet="design_1_rst_processing_system7_0_100M_1" Description="Default settings for Implementation." AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" SynthRun="design_1_rst_processing_system7_0_100M_1_synth_1" IncludeInArchive="false" IsChild="false" GenFullBitstream="true" AutoIncrementalDir="$PSRCDIR/utils_1/imports/design_1_rst_processing_system7_0_100M_1_impl_1">
|
||||||
|
<Strategy Version="1" Minor="2">
|
||||||
|
<StratHandle Name="Vivado Implementation Defaults" Flow="Vivado Implementation 2021"/>
|
||||||
|
<Step Id="init_design"/>
|
||||||
|
<Step Id="opt_design"/>
|
||||||
|
<Step Id="power_opt_design"/>
|
||||||
|
<Step Id="place_design"/>
|
||||||
|
<Step Id="post_place_power_opt_design"/>
|
||||||
|
<Step Id="phys_opt_design"/>
|
||||||
|
<Step Id="route_design"/>
|
||||||
|
<Step Id="post_route_phys_opt_design"/>
|
||||||
|
<Step Id="write_bitstream"/>
|
||||||
|
</Strategy>
|
||||||
|
<ReportStrategy Name="Vivado Implementation Default Reports" Flow="Vivado Implementation 2021"/>
|
||||||
|
<Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/>
|
||||||
|
<RQSFiles/>
|
||||||
|
</Run>
|
||||||
|
<Run Id="design_1_v_tc_0_0_impl_1" Type="Ft2:EntireDesign" Part="xc7z020clg400-1" ConstrsSet="design_1_v_tc_0_0" Description="Default settings for Implementation." AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" SynthRun="design_1_v_tc_0_0_synth_1" IncludeInArchive="false" IsChild="false" GenFullBitstream="true" AutoIncrementalDir="$PSRCDIR/utils_1/imports/design_1_v_tc_0_0_impl_1">
|
||||||
|
<Strategy Version="1" Minor="2">
|
||||||
|
<StratHandle Name="Vivado Implementation Defaults" Flow="Vivado Implementation 2021"/>
|
||||||
|
<Step Id="init_design"/>
|
||||||
|
<Step Id="opt_design"/>
|
||||||
|
<Step Id="power_opt_design"/>
|
||||||
|
<Step Id="place_design"/>
|
||||||
|
<Step Id="post_place_power_opt_design"/>
|
||||||
|
<Step Id="phys_opt_design"/>
|
||||||
|
<Step Id="route_design"/>
|
||||||
|
<Step Id="post_route_phys_opt_design"/>
|
||||||
|
<Step Id="write_bitstream"/>
|
||||||
|
</Strategy>
|
||||||
|
<ReportStrategy Name="Vivado Implementation Default Reports" Flow="Vivado Implementation 2021"/>
|
||||||
|
<Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/>
|
||||||
|
<RQSFiles/>
|
||||||
|
</Run>
|
||||||
|
</Runs>
|
||||||
|
<Board>
|
||||||
|
<Jumpers/>
|
||||||
|
</Board>
|
||||||
|
<DashboardSummary Version="1" Minor="0">
|
||||||
|
<Dashboards>
|
||||||
|
<Dashboard Name="default_dashboard">
|
||||||
|
<Gadgets>
|
||||||
|
<Gadget Name="drc_1" Type="drc" Version="1" Row="2" Column="0"/>
|
||||||
|
<Gadget Name="methodology_1" Type="methodology" Version="1" Row="2" Column="1"/>
|
||||||
|
<Gadget Name="power_1" Type="power" Version="1" Row="1" Column="0"/>
|
||||||
|
<Gadget Name="timing_1" Type="timing" Version="1" Row="0" Column="1"/>
|
||||||
|
<Gadget Name="utilization_1" Type="utilization" Version="1" Row="0" Column="0">
|
||||||
|
<GadgetParam Name="RUN.STEP" Type="string" Value="synth_design"/>
|
||||||
|
<GadgetParam Name="RUN.TYPE" Type="string" Value="synthesis"/>
|
||||||
|
</Gadget>
|
||||||
|
<Gadget Name="utilization_2" Type="utilization" Version="1" Row="1" Column="1"/>
|
||||||
|
</Gadgets>
|
||||||
|
</Dashboard>
|
||||||
|
<CurrentDashboard>default_dashboard</CurrentDashboard>
|
||||||
|
</Dashboards>
|
||||||
|
</DashboardSummary>
|
||||||
|
</Project>
|
|
@ -0,0 +1,266 @@
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {btns_4bits_tri_i_0}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {btns_4bits_tri_i_1}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {btns_4bits_tri_i_2}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {btns_4bits_tri_i_3}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {leds_4bits_tri_o_0}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {leds_4bits_tri_o_1}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {leds_4bits_tri_o_2}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {leds_4bits_tri_o_3}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {sws_2bits_tri_i_0}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {sws_2bits_tri_i_1}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {sys_clk}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {JA1}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {JA2}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {JA3}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {JA4}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {JA7}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {JA8}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {JA9}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {JA10}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {JB1}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {JB2}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {JB3}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {JB4}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {JB7}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {JB8}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {JB9}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {JB10}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {i2c_scl_i}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {i2c_sda_i}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {rgb_led_tri_o_0}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {rgb_led_tri_o_1}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {rgb_led_tri_o_2}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {rgb_led_tri_o_3}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {rgb_led_tri_o_4}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {rgb_led_tri_o_5}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {arduino_a0_a13_tri_i_0}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {arduino_a0_a13_tri_i_1}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {arduino_a0_a13_tri_i_2}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {arduino_a0_a13_tri_i_3}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {arduino_a0_a13_tri_i_4}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {arduino_a0_a13_tri_i_5}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {arduino_a0_a13_tri_i_6}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {arduino_a0_a13_tri_i_7}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {arduino_a0_a13_tri_i_8}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {arduino_a0_a13_tri_i_9}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {arduino_a0_a13_tri_i_10}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {arduino_a0_a13_tri_i_11}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {arduino_a0_a13_tri_i_12}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {arduino_a0_a13_tri_i_13}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {raspberry_pi_tri_i_0}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {raspberry_pi_tri_i_1}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {raspberry_pi_tri_i_2}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {raspberry_pi_tri_i_3}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {raspberry_pi_tri_i_4}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {raspberry_pi_tri_i_5}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {raspberry_pi_tri_i_6}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {raspberry_pi_tri_i_7}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {raspberry_pi_tri_i_8}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {raspberry_pi_tri_i_9}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {raspberry_pi_tri_i_10}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {raspberry_pi_tri_i_11}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {raspberry_pi_tri_i_12}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {raspberry_pi_tri_i_13}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {raspberry_pi_tri_i_14}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {raspberry_pi_tri_i_15}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {raspberry_pi_tri_i_16}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {raspberry_pi_tri_i_17}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {raspberry_pi_tri_i_18}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {raspberry_pi_tri_i_19}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {raspberry_pi_tri_i_20}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {raspberry_pi_tri_i_21}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {raspberry_pi_tri_i_22}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {raspberry_pi_tri_i_23}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {raspberry_pi_tri_i_24}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {spi_miso_i}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {spi_mosi_i}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {spi_sclk_i}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {spi_ss_i}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {hdmi_rx_hpd}]
|
||||||
|
#set_property IOSTANDARD TMDS_33 [get_ports {TMDS_IN_clk_p}]
|
||||||
|
#set_property IOSTANDARD TMDS_33 [get_ports {TMDS_IN_clk_n}]
|
||||||
|
#set_property IOSTANDARD TMDS_33 [get_ports {TMDS_IN_data_p_0}]
|
||||||
|
#set_property IOSTANDARD TMDS_33 [get_ports {TMDS_IN_data_p_1}]
|
||||||
|
#set_property IOSTANDARD TMDS_33 [get_ports {TMDS_IN_data_p_2}]
|
||||||
|
#set_property IOSTANDARD TMDS_33 [get_ports {TMDS_IN_data_n_0}]
|
||||||
|
#set_property IOSTANDARD TMDS_33 [get_ports {TMDS_IN_data_n_1}]
|
||||||
|
#set_property IOSTANDARD TMDS_33 [get_ports {TMDS_IN_data_n_2}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {hdmi_tx_hpd}]
|
||||||
|
set_property IOSTANDARD TMDS_33 [get_ports {TMDS_Clk_n_0}]
|
||||||
|
set_property IOSTANDARD TMDS_33 [get_ports {TMDS_Clk_p_0}]
|
||||||
|
set_property IOSTANDARD TMDS_33 [get_ports {TMDS_Data_p_0[0]}]
|
||||||
|
set_property IOSTANDARD TMDS_33 [get_ports {TMDS_Data_p_0[1]}]
|
||||||
|
set_property IOSTANDARD TMDS_33 [get_ports {TMDS_Data_p_0[2]}]
|
||||||
|
set_property IOSTANDARD TMDS_33 [get_ports {TMDS_Data_n_0[0]}]
|
||||||
|
set_property IOSTANDARD TMDS_33 [get_ports {TMDS_Data_n_0[1]}]
|
||||||
|
set_property IOSTANDARD TMDS_33 [get_ports {TMDS_Data_n_0[2]}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {hdmi_in_ddc_scl}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {hdmi_in_ddc_sda}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {respberry_sd_i}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {respberry_sc_i}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {hdmi_tx_cec}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {arduino_a0}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {arduino_a1}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {arduino_a2}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {arduino_a3}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {arduino_a4}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {arduino_a5}]
|
||||||
|
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {audio_sd_i}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {audio_sc_i}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {audio_adr_0}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {audio_adr_1}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {audio_clk}]
|
||||||
|
#
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {bclk_i}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {wclk_i}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {sdada_out_i}]
|
||||||
|
#set_property IOSTANDARD LVCMOS33 [get_ports {sdata_in_i}]
|
||||||
|
|
||||||
|
#set_property PACKAGE_PIN D19 [get_ports {btns_4bits_tri_i_0}]
|
||||||
|
#set_property PACKAGE_PIN D20 [get_ports {btns_4bits_tri_i_1}]
|
||||||
|
#set_property PACKAGE_PIN L20 [get_ports {btns_4bits_tri_i_2}]
|
||||||
|
#set_property PACKAGE_PIN L19 [get_ports {btns_4bits_tri_i_3}]
|
||||||
|
#set_property PACKAGE_PIN R14 [get_ports {leds_4bits_tri_o_0}]
|
||||||
|
#set_property PACKAGE_PIN P14 [get_ports {leds_4bits_tri_o_1}]
|
||||||
|
#set_property PACKAGE_PIN N16 [get_ports {leds_4bits_tri_o_2}]
|
||||||
|
#set_property PACKAGE_PIN M14 [get_ports {leds_4bits_tri_o_3}]
|
||||||
|
#set_property PACKAGE_PIN M20 [get_ports {sws_2bits_tri_i_0}]
|
||||||
|
#set_property PACKAGE_PIN M19 [get_ports {sws_2bits_tri_i_1}]
|
||||||
|
#set_property PACKAGE_PIN H16 [get_ports {sys_clk}]
|
||||||
|
#set_property PACKAGE_PIN Y18 [get_ports {JA1}]
|
||||||
|
#set_property PACKAGE_PIN Y19 [get_ports {JA2}]
|
||||||
|
#set_property PACKAGE_PIN Y16 [get_ports {JA3}]
|
||||||
|
#set_property PACKAGE_PIN Y17 [get_ports {JA4}]
|
||||||
|
#set_property PACKAGE_PIN U18 [get_ports {JA7}]
|
||||||
|
#set_property PACKAGE_PIN U19 [get_ports {JA8}]
|
||||||
|
#set_property PACKAGE_PIN W18 [get_ports {JA9}]
|
||||||
|
#set_property PACKAGE_PIN W19 [get_ports {JA10}]
|
||||||
|
#set_property PACKAGE_PIN W14 [get_ports {JB1}]
|
||||||
|
#set_property PACKAGE_PIN Y14 [get_ports {JB2}]
|
||||||
|
#set_property PACKAGE_PIN T11 [get_ports {JB3}]
|
||||||
|
#set_property PACKAGE_PIN T10 [get_ports {JB4}]
|
||||||
|
#set_property PACKAGE_PIN V16 [get_ports {JB7}]
|
||||||
|
#set_property PACKAGE_PIN W16 [get_ports {JB8}]
|
||||||
|
#set_property PACKAGE_PIN V12 [get_ports {JB9}]
|
||||||
|
#set_property PACKAGE_PIN W13 [get_ports {JB10}]
|
||||||
|
#set_property PACKAGE_PIN P15 [get_ports {i2c_scl_i}]
|
||||||
|
#set_property PACKAGE_PIN P16 [get_ports {i2c_sda_i}]
|
||||||
|
#set_property PACKAGE_PIN L15 [get_ports {rgb_led_tri_o_0}]
|
||||||
|
#set_property PACKAGE_PIN G17 [get_ports {rgb_led_tri_o_1}]
|
||||||
|
#set_property PACKAGE_PIN N15 [get_ports {rgb_led_tri_o_2}]
|
||||||
|
#set_property PACKAGE_PIN G14 [get_ports {rgb_led_tri_o_3}]
|
||||||
|
#set_property PACKAGE_PIN L14 [get_ports {rgb_led_tri_o_4}]
|
||||||
|
#set_property PACKAGE_PIN M15 [get_ports {rgb_led_tri_o_5}]
|
||||||
|
#set_property PACKAGE_PIN T14 [get_ports {arduino_a0_a13_tri_i_0}]
|
||||||
|
#set_property PACKAGE_PIN U12 [get_ports {arduino_a0_a13_tri_i_1}]
|
||||||
|
#set_property PACKAGE_PIN U13 [get_ports {arduino_a0_a13_tri_i_2}]
|
||||||
|
#set_property PACKAGE_PIN V13 [get_ports {arduino_a0_a13_tri_i_3}]
|
||||||
|
#set_property PACKAGE_PIN V15 [get_ports {arduino_a0_a13_tri_i_4}]
|
||||||
|
#set_property PACKAGE_PIN T15 [get_ports {arduino_a0_a13_tri_i_5}]
|
||||||
|
#set_property PACKAGE_PIN R16 [get_ports {arduino_a0_a13_tri_i_6}]
|
||||||
|
#set_property PACKAGE_PIN U17 [get_ports {arduino_a0_a13_tri_i_7}]
|
||||||
|
#set_property PACKAGE_PIN V17 [get_ports {arduino_a0_a13_tri_i_8}]
|
||||||
|
#set_property PACKAGE_PIN V18 [get_ports {arduino_a0_a13_tri_i_9}]
|
||||||
|
#set_property PACKAGE_PIN T16 [get_ports {arduino_a0_a13_tri_i_10}]
|
||||||
|
#set_property PACKAGE_PIN R17 [get_ports {arduino_a0_a13_tri_i_11}]
|
||||||
|
#set_property PACKAGE_PIN P18 [get_ports {arduino_a0_a13_tri_i_12}]
|
||||||
|
#set_property PACKAGE_PIN N17 [get_ports {arduino_a0_a13_tri_i_13}]
|
||||||
|
#set_property PACKAGE_PIN W18 [get_ports {raspberry_pi_tri_i_0}]
|
||||||
|
#set_property PACKAGE_PIN W19 [get_ports {raspberry_pi_tri_i_1}]
|
||||||
|
#set_property PACKAGE_PIN Y18 [get_ports {raspberry_pi_tri_i_2}]
|
||||||
|
#set_property PACKAGE_PIN Y19 [get_ports {raspberry_pi_tri_i_3}]
|
||||||
|
#set_property PACKAGE_PIN U18 [get_ports {raspberry_pi_tri_i_4}]
|
||||||
|
#set_property PACKAGE_PIN U19 [get_ports {raspberry_pi_tri_i_5}]
|
||||||
|
#set_property PACKAGE_PIN F19 [get_ports {raspberry_pi_tri_i_6}]
|
||||||
|
#set_property PACKAGE_PIN V10 [get_ports {raspberry_pi_tri_i_7}]
|
||||||
|
#set_property PACKAGE_PIN V8 [get_ports {raspberry_pi_tri_i_8}]
|
||||||
|
#set_property PACKAGE_PIN W10 [get_ports {raspberry_pi_tri_i_9}]
|
||||||
|
#set_property PACKAGE_PIN B20 [get_ports {raspberry_pi_tri_i_10}]
|
||||||
|
#set_property PACKAGE_PIN W8 [get_ports {raspberry_pi_tri_i_11}]
|
||||||
|
#set_property PACKAGE_PIN V6 [get_ports {raspberry_pi_tri_i_12}]
|
||||||
|
#set_property PACKAGE_PIN Y6 [get_ports {raspberry_pi_tri_i_13}]
|
||||||
|
#set_property PACKAGE_PIN B19 [get_ports {raspberry_pi_tri_i_14}]
|
||||||
|
#set_property PACKAGE_PIN U7 [get_ports {raspberry_pi_tri_i_15}]
|
||||||
|
#set_property PACKAGE_PIN C20 [get_ports {raspberry_pi_tri_i_16}]
|
||||||
|
#set_property PACKAGE_PIN Y8 [get_ports {raspberry_pi_tri_i_17}]
|
||||||
|
#set_property PACKAGE_PIN A20 [get_ports {raspberry_pi_tri_i_18}]
|
||||||
|
#set_property PACKAGE_PIN Y9 [get_ports {raspberry_pi_tri_i_19}]
|
||||||
|
#set_property PACKAGE_PIN U8 [get_ports {raspberry_pi_tri_i_20}]
|
||||||
|
#set_property PACKAGE_PIN W6 [get_ports {raspberry_pi_tri_i_21}]
|
||||||
|
#set_property PACKAGE_PIN Y7 [get_ports {raspberry_pi_tri_i_22}]
|
||||||
|
#set_property PACKAGE_PIN F20 [get_ports {raspberry_pi_tri_i_23}]
|
||||||
|
#set_property PACKAGE_PIN W9 [get_ports {raspberry_pi_tri_i_24}]
|
||||||
|
#set_property PACKAGE_PIN W15 [get_ports {spi_miso_i}]
|
||||||
|
#set_property PACKAGE_PIN T12 [get_ports {spi_mosi_i}]
|
||||||
|
#set_property PACKAGE_PIN H15 [get_ports {spi_sclk_i}]
|
||||||
|
#set_property PACKAGE_PIN F16 [get_ports {spi_ss_i}]
|
||||||
|
#set_property PACKAGE_PIN T19 [get_ports {hdmi_rx_hpd}]
|
||||||
|
#set_property PACKAGE_PIN N18 [get_ports {TMDS_IN_clk_p}]
|
||||||
|
#set_property PACKAGE_PIN P19 [get_ports {TMDS_IN_clk_n}]
|
||||||
|
#set_property PACKAGE_PIN V20 [get_ports {TMDS_IN_data_p_0}]
|
||||||
|
#set_property PACKAGE_PIN T20 [get_ports {TMDS_IN_data_p_1}]
|
||||||
|
#set_property PACKAGE_PIN N20 [get_ports {TMDS_IN_data_p_2}]
|
||||||
|
#set_property PACKAGE_PIN W20 [get_ports {TMDS_IN_data_n_0}]
|
||||||
|
#set_property PACKAGE_PIN U20 [get_ports {TMDS_IN_data_n_1}]
|
||||||
|
#set_property PACKAGE_PIN P20 [get_ports {TMDS_IN_data_n_2}]
|
||||||
|
#set_property PACKAGE_PIN R19 [get_ports {hdmi_tx_hpd}]
|
||||||
|
|
||||||
|
set_property PACKAGE_PIN L16 [get_ports {TMDS_Clk_p_0}]
|
||||||
|
set_property PACKAGE_PIN L17 [get_ports {TMDS_Clk_n_0}]
|
||||||
|
set_property PACKAGE_PIN K17 [get_ports {TMDS_Data_p_0[0]}]
|
||||||
|
set_property PACKAGE_PIN K19 [get_ports {TMDS_Data_p_0[1]}]
|
||||||
|
set_property PACKAGE_PIN J18 [get_ports {TMDS_Data_p_0[2]}]
|
||||||
|
set_property PACKAGE_PIN K18 [get_ports {TMDS_Data_n_0[0]}]
|
||||||
|
set_property PACKAGE_PIN J19 [get_ports {TMDS_Data_n_0[1]}]
|
||||||
|
set_property PACKAGE_PIN H18 [get_ports {TMDS_Data_n_0[2]}]
|
||||||
|
#set_property PACKAGE_PIN U14 [get_ports {hdmi_in_ddc_scl}]
|
||||||
|
#set_property PACKAGE_PIN U15 [get_ports {hdmi_in_ddc_sda}]
|
||||||
|
#set_property PACKAGE_PIN Y16 [get_ports {respberry_sd_i}]
|
||||||
|
#set_property PACKAGE_PIN Y17 [get_ports {respberry_sc_i}]
|
||||||
|
#set_property PACKAGE_PIN G15 [get_ports {hdmi_tx_cec}]
|
||||||
|
#set_property PACKAGE_PIN Y11 [get_ports {arduino_a0}]
|
||||||
|
#set_property PACKAGE_PIN Y12 [get_ports {arduino_a1}]
|
||||||
|
#set_property PACKAGE_PIN W11 [get_ports {arduino_a2}]
|
||||||
|
#set_property PACKAGE_PIN V11 [get_ports {arduino_a3}]
|
||||||
|
#set_property PACKAGE_PIN T5 [get_ports {arduino_a4}]
|
||||||
|
#set_property PACKAGE_PIN U10 [get_ports {arduino_a5}]
|
||||||
|
|
||||||
|
#AU_SDA_R AU_SCL_R ADR0 ADR1 AU_MCLK_R
|
||||||
|
#set_property PACKAGE_PIN T9 [get_ports {audio_sd_i}]
|
||||||
|
#set_property PACKAGE_PIN U9 [get_ports {audio_sc_i}]
|
||||||
|
#set_property PACKAGE_PIN M17 [get_ports {audio_adr_0}]
|
||||||
|
#set_property PACKAGE_PIN M18 [get_ports {audio_adr_1}]
|
||||||
|
#set_property PACKAGE_PIN U5 [get_ports {audio_clk}]
|
||||||
|
#AU_BCLK_R AU_WCLK_R AU_DIN_R AU_DOUT_R
|
||||||
|
#set_property PACKAGE_PIN R18 [get_ports {bclk_i}]
|
||||||
|
#set_property PACKAGE_PIN T17 [get_ports {wclk_i}]
|
||||||
|
#set_property PACKAGE_PIN G18 [get_ports {sdada_out_i}]
|
||||||
|
#set_property PACKAGE_PIN F17 [get_ports {sdata_in_i}]
|
||||||
|
|
||||||
|
#AU_SDA
|
||||||
|
#AU_SCL
|
||||||
|
#ADR0
|
||||||
|
#ADR1
|
||||||
|
#AU_MCLK
|
||||||
|
|
||||||
|
#AU_BCLK
|
||||||
|
#AU_WCLK
|
||||||
|
#AU_DOUT
|
||||||
|
#AU_DIN
|
||||||
|
|
||||||
|
set_property PACKAGE_PIN G18 [get_ports {SDATA_O}]
|
||||||
|
set_property PACKAGE_PIN F17 [get_ports {SDATA_I}]
|
||||||
|
set_property PACKAGE_PIN R18 [get_ports {BCLK_O}]
|
||||||
|
set_property PACKAGE_PIN T17 [get_ports {LRCLK_O}]
|
||||||
|
set_property PACKAGE_PIN U5 [get_ports {MCLK_O}]
|
||||||
|
set_property PACKAGE_PIN U9 [get_ports {iic_rtl_scl_io}]
|
||||||
|
set_property PACKAGE_PIN T9 [get_ports {iic_rtl_sda_io}]
|
||||||
|
|
||||||
|
set_property IOSTANDARD LVCMOS33 [get_ports {SDATA_O}]
|
||||||
|
set_property IOSTANDARD LVCMOS33 [get_ports {SDATA_I}]
|
||||||
|
set_property IOSTANDARD LVCMOS33 [get_ports {BCLK_O}]
|
||||||
|
set_property IOSTANDARD LVCMOS33 [get_ports {LRCLK_O}]
|
||||||
|
set_property IOSTANDARD LVCMOS33 [get_ports {MCLK_O}]
|
||||||
|
set_property IOSTANDARD LVCMOS33 [get_ports {iic_rtl_scl_io}]
|
||||||
|
set_property IOSTANDARD LVCMOS33 [get_ports {iic_rtl_sda_io}]
|
Loading…
Reference in New Issue