diff --git a/ips/hw/scalp_aurora_phy_rx_fifo/src/hdl/scalp_aurora_phy_rx_fifo.vhd b/ips/hw/scalp_aurora_phy_rx_fifo/src/hdl/scalp_aurora_phy_rx_fifo.vhd new file mode 100644 index 0000000000000000000000000000000000000000..b7bff2d8a315cdebbaea08f0058891f0315cbb22 --- /dev/null +++ b/ips/hw/scalp_aurora_phy_rx_fifo/src/hdl/scalp_aurora_phy_rx_fifo.vhd @@ -0,0 +1,257 @@ +---------------------------------------------------------------------------------- +-- _ _ +-- | |_ ___ _ __(_)__ _ +-- | ' \/ -_) '_ \ / _` | +-- |_||_\___| .__/_\__,_| +-- |_| +-- +---------------------------------------------------------------------------------- +-- +-- Company: hepia +-- Author: Joachim Schmidt <joachim.schmidt@hesge.ch +-- +-- Module Name: scalp_aurora_phy_rx_fifo - arch +-- Target Device: SCALP xc7z015clg485-2 +-- Tool version: 2019.2 +-- Description: scalp_aurora_phy_rx_fifo +-- +-- Last update: 2020-11-07 +-- +--------------------------------------------------------------------------------- + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +use work.axi4_pkg.all; + +entity scalp_aurora_phy_rx_fifo is + + port ( + -- Clocks and Reset + RXClkxCI : in std_ulogic; + TXClkxCI : in std_ulogic; + RXRstxRANI : in std_ulogic; + -- North + -- RX Data + NorthRXM2SxDI : in t_axi4m2s; + NorthRXS2MxDO : out t_axi4s2m; + -- TX Data + NorthTXM2SxDO : out t_axi4m2s; + NorthTXS2MxDI : in t_axi4s2m; + -- Fifo Status + NorthFifoStatusxDO : out t_axi4fifo_status; + -- East + -- RX Data + EastRXM2SxDI : in t_axi4m2s; + EastRXS2MxDO : out t_axi4s2m; + -- TX Data + EastTXM2SxDO : out t_axi4m2s; + EastTXS2MxDI : in t_axi4s2m; + -- Fifo Status + EastFifoStatusxDO : out t_axi4fifo_status; + -- South + -- RX Data + SouthRXM2SxDI : in t_axi4m2s; + SouthRXS2MxDO : out t_axi4s2m; + -- TX Data + SouthTXM2SxDO : out t_axi4m2s; + SouthTXS2MxDI : in t_axi4s2m; + -- Fifo Status + SouthFifoStatusxDO : out t_axi4fifo_status; + -- West + -- RX Data + WestRXM2SxDI : in t_axi4m2s; + WestRXS2MxDO : out t_axi4s2m; + -- TX Data + WestTXM2SxDO : out t_axi4m2s; + WestTXS2MxDI : in t_axi4s2m; + -- Fifo Status + WestFifoStatusxDO : out t_axi4fifo_status); + +end scalp_aurora_phy_rx_fifo; + +architecture arch of scalp_aurora_phy_rx_fifo is + + component axis_data_fifo + port ( + s_axis_aresetn : in std_logic; + s_axis_aclk : in std_logic; + s_axis_tvalid : in std_logic; + s_axis_tready : out std_logic; + s_axis_tdata : in std_logic_vector((C_AXI4_DATA_SIZE - 1) downto 0); + s_axis_tkeep : in std_logic_vector((C_AXI4_KEEP_SIZE - 1) downto 0); + s_axis_tlast : in std_logic; + m_axis_aclk : in std_logic; + m_axis_tvalid : out std_logic; + m_axis_tready : in std_logic; + m_axis_tdata : out std_logic_vector((C_AXI4_DATA_SIZE - 1) downto 0); + m_axis_tkeep : out std_logic_vector((C_AXI4_KEEP_SIZE - 1) downto 0); + m_axis_tlast : out std_logic; + axis_wr_data_count : out std_logic_vector((C_AXI4_DATA_SIZE - 1) downto 0); + axis_rd_data_count : out std_logic_vector((C_AXI4_DATA_SIZE - 1) downto 0); + prog_empty : out std_logic; + prog_full : out std_logic); + end component; + + signal RXClkxC : std_ulogic := '0'; + signal TXClkxC : std_ulogic := '0'; + signal RXRstxRAN : std_ulogic := '0'; + -- North + signal NorthRXM2SxD : t_axi4m2s := C_NO_AXI4_M2S; + signal NorthRXS2MxD : t_axi4s2m := C_NO_AXI4_S2M; + signal NorthTXM2SxD : t_axi4m2s := C_NO_AXI4_M2S; + signal NorthTXS2MxD : t_axi4s2m := C_NO_AXI4_S2M; + signal NorthFifoStatusxD : t_axi4fifo_status := C_NO_AXI4_FIFO_STATUS; + -- East + signal EastRXM2SxD : t_axi4m2s := C_NO_AXI4_M2S; + signal EastRXS2MxD : t_axi4s2m := C_NO_AXI4_S2M; + signal EastTXM2SxD : t_axi4m2s := C_NO_AXI4_M2S; + signal EastTXS2MxD : t_axi4s2m := C_NO_AXI4_S2M; + signal EastFifoStatusxD : t_axi4fifo_status := C_NO_AXI4_FIFO_STATUS; + -- South + signal SouthRXM2SxD : t_axi4m2s := C_NO_AXI4_M2S; + signal SouthRXS2MxD : t_axi4s2m := C_NO_AXI4_S2M; + signal SouthTXM2SxD : t_axi4m2s := C_NO_AXI4_M2S; + signal SouthTXS2MxD : t_axi4s2m := C_NO_AXI4_S2M; + signal SouthFifoStatusxD : t_axi4fifo_status := C_NO_AXI4_FIFO_STATUS; + -- West + signal WestRXM2SxD : t_axi4m2s := C_NO_AXI4_M2S; + signal WestRXS2MxD : t_axi4s2m := C_NO_AXI4_S2M; + signal WestTXM2SxD : t_axi4m2s := C_NO_AXI4_M2S; + signal WestTXS2MxD : t_axi4s2m := C_NO_AXI4_S2M; + signal WestFifoStatusxD : t_axi4fifo_status := C_NO_AXI4_FIFO_STATUS; + +begin + + AxisDataFifoxB : block is + begin -- block AxisDataFifoxB + + EntityIOxB : block is + begin -- block EntityIOxB + + RXClkxAS : RXClkxC <= RXClkxCI; + TXClkxAS : TXClkxC <= TXClkxCI; + RXRstxAS : RXRstxRAN <= RXRstxRANI; + -- North + NorthRXM2SxAS : NorthRXM2SxD <= NorthRXM2SxDI; + NorthRXS2MxAS : NorthRXS2MxDO <= NorthRXS2MxD; + NorthTXM2SxAS : NorthTXM2SxDO <= NorthTXM2SxD; + NorthTXS2MxAS : NorthTXS2MxD <= NorthTXS2MxDI; + NorthFifoStatusxAS : NorthFifoStatusxDO <= NorthFifoStatusxD; + -- East + EastRXM2SxAS : EastRXM2SxD <= EastRXM2SxDI; + EastRXS2MxAS : EastRXS2MxDO <= EastRXS2MxD; + EastTXM2SxAS : EastTXM2SxDO <= EastTXM2SxD; + EastTXS2MxAS : EastTXS2MxD <= EastTXS2MxDI; + EastFifoStatusxAS : EastFifoStatusxDO <= EastFifoStatusxD; + -- South + SouthRXM2SxAS : SouthRXM2SxD <= SouthRXM2SxDI; + SouthRXS2MxAS : SouthRXS2MxDO <= SouthRXS2MxD; + SouthTXM2SxAS : SouthTXM2SxDO <= SouthTXM2SxD; + SouthTXS2MxAS : SouthTXS2MxD <= SouthTXS2MxDI; + SouthFifoStatusxAS : SouthFifoStatusxDO <= SouthFifoStatusxD; + -- West + WestRXM2SxAS : WestRXM2SxD <= WestRXM2SxDI; + WestRXS2MxAS : WestRXS2MxDO <= WestRXS2MxD; + WestTXM2SxAS : WestTXM2SxDO <= WestTXM2SxD; + WestTXS2MxAS : WestTXS2MxD <= WestTXS2MxDI; + WestFifoStatusxAS : WestFifoStatusxDO <= WestFifoStatusxD; + + end block EntityIOxB; + + NorthAxisDataFifoxI : axis_data_fifo + port map ( + -- Slave side + s_axis_aresetn => RXRstxRAN, + s_axis_aclk => RXClkxC, + s_axis_tdata => NorthRXM2SxD.DataxD, + s_axis_tkeep => NorthRXM2SxD.KeepxD, + s_axis_tlast => NorthRXM2SxD.LastxS, + s_axis_tvalid => NorthRXM2SxD.ValidxS, + s_axis_tready => NorthRXS2MxD.ReadyxS, + -- Master side + m_axis_aclk => TXClkxC, + m_axis_tdata => NorthTXM2SxD.DataxD, + m_axis_tkeep => NorthTXM2SxD.KeepxD, + m_axis_tlast => NorthTXM2SxD.LastxS, + m_axis_tvalid => NorthTXM2SxD.ValidxS, + m_axis_tready => NorthTXS2MxD.ReadyxS, + -- Status + axis_wr_data_count => NorthFifoStatusxD.WrDataCntxD, + axis_rd_data_count => NorthFifoStatusxD.RdDataCntxD, + prog_empty => NorthFifoStatusxD.ProgEmptyxS, + prog_full => NorthFifoStatusxD.ProgFullxS); + + EastAxisDataFifoxI : axis_data_fifo + port map ( + -- Slave side + s_axis_aresetn => RXRstxRAN, + s_axis_aclk => RXClkxC, + s_axis_tdata => EastRXM2SxD.DataxD, + s_axis_tkeep => EastRXM2SxD.KeepxD, + s_axis_tlast => EastRXM2SxD.LastxS, + s_axis_tvalid => EastRXM2SxD.ValidxS, + s_axis_tready => EastRXS2MxD.ReadyxS, + -- Master side + m_axis_aclk => TXClkxC, + m_axis_tdata => EastTXM2SxD.DataxD, + m_axis_tkeep => EastTXM2SxD.KeepxD, + m_axis_tlast => EastTXM2SxD.LastxS, + m_axis_tvalid => EastTXM2SxD.ValidxS, + m_axis_tready => EastTXS2MxD.ReadyxS, + -- Status + axis_wr_data_count => EastFifoStatusxD.WrDataCntxD, + axis_rd_data_count => EastFifoStatusxD.RdDataCntxD, + prog_empty => EastFifoStatusxD.ProgEmptyxS, + prog_full => EastFifoStatusxD.ProgFullxS); + + SouthAxisDataFifoxI : axis_data_fifo + port map ( + -- Slave side + s_axis_aresetn => RXRstxRAN, + s_axis_aclk => RXClkxC, + s_axis_tdata => SouthRXM2SxD.DataxD, + s_axis_tkeep => SouthRXM2SxD.KeepxD, + s_axis_tlast => SouthRXM2SxD.LastxS, + s_axis_tvalid => SouthRXM2SxD.ValidxS, + s_axis_tready => SouthRXS2MxD.ReadyxS, + -- Master side + m_axis_aclk => TXClkxC, + m_axis_tdata => SouthTXM2SxD.DataxD, + m_axis_tkeep => SouthTXM2SxD.KeepxD, + m_axis_tlast => SouthTXM2SxD.LastxS, + m_axis_tvalid => SouthTXM2SxD.ValidxS, + m_axis_tready => SouthTXS2MxD.ReadyxS, + -- Status + axis_wr_data_count => SouthFifoStatusxD.WrDataCntxD, + axis_rd_data_count => SouthFifoStatusxD.RdDataCntxD, + prog_empty => SouthFifoStatusxD.ProgEmptyxS, + prog_full => SouthFifoStatusxD.ProgFullxS); + + WestAxisDataFifoxI : axis_data_fifo + port map ( + -- Slave side + s_axis_aresetn => RXRstxRAN, + s_axis_aclk => RXClkxC, + s_axis_tdata => WestRXM2SxD.DataxD, + s_axis_tkeep => WestRXM2SxD.KeepxD, + s_axis_tlast => WestRXM2SxD.LastxS, + s_axis_tvalid => WestRXM2SxD.ValidxS, + s_axis_tready => WestRXS2MxD.ReadyxS, + -- Master side + m_axis_aclk => TXClkxC, + m_axis_tdata => WestTXM2SxD.DataxD, + m_axis_tkeep => WestTXM2SxD.KeepxD, + m_axis_tlast => WestTXM2SxD.LastxS, + m_axis_tvalid => WestTXM2SxD.ValidxS, + m_axis_tready => WestTXS2MxD.ReadyxS, + -- Status + axis_wr_data_count => WestFifoStatusxD.WrDataCntxD, + axis_rd_data_count => WestFifoStatusxD.RdDataCntxD, + prog_empty => WestFifoStatusxD.ProgEmptyxS, + prog_full => WestFifoStatusxD.ProgFullxS); + + end block AxisDataFifoxB; + +end arch; diff --git a/ips/hw/scalp_aurora_phy_rx_fifo/src/ip_core/axis_data_fifo/axis_data_fifo.xci b/ips/hw/scalp_aurora_phy_rx_fifo/src/ip_core/axis_data_fifo/axis_data_fifo.xci new file mode 100644 index 0000000000000000000000000000000000000000..5888e06b9a68d2fabcc53e259943d51a5bd835e0 --- /dev/null +++ b/ips/hw/scalp_aurora_phy_rx_fifo/src/ip_core/axis_data_fifo/axis_data_fifo.xci @@ -0,0 +1,142 @@ +<?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>axis_data_fifo</spirit:instanceName> + <spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="axis_data_fifo" spirit:version="2.0"/> + <spirit:configurableElementValues> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.CLK_DOMAIN"/> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.FREQ_HZ">100000000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.HAS_TKEEP">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.HAS_TLAST">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.HAS_TREADY">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.HAS_TSTRB">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.INSERT_VIP">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.LAYERED_METADATA">undef</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.TDATA_NUM_BYTES">4</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.TDEST_WIDTH">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.TID_WIDTH">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.TUSER_WIDTH">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_CLKENIF.POLARITY">ACTIVE_LOW</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_CLKIF.ASSOCIATED_RESET"/> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_CLKIF.CLK_DOMAIN"/> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_CLKIF.FREQ_HZ">100000000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_CLKIF.INSERT_VIP">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_CLKIF.PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.CLK_DOMAIN"/> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.FREQ_HZ">100000000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.HAS_TKEEP">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.HAS_TLAST">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.HAS_TREADY">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.HAS_TSTRB">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.INSERT_VIP">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.LAYERED_METADATA">undef</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.TDATA_NUM_BYTES">4</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.TDEST_WIDTH">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.TID_WIDTH">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.TUSER_WIDTH">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_CLKENIF.POLARITY">ACTIVE_LOW</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_CLKIF.ASSOCIATED_RESET"/> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_CLKIF.CLK_DOMAIN"/> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_CLKIF.FREQ_HZ">100000000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_CLKIF.INSERT_VIP">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_CLKIF.PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_RSTIF.INSERT_VIP">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_RSTIF.POLARITY">ACTIVE_LOW</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ACLKEN_CONV_MODE">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXIS_SIGNAL_SET">0b00000000000000000000000000011011</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXIS_TDATA_WIDTH">32</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXIS_TDEST_WIDTH">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXIS_TID_WIDTH">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXIS_TUSER_WIDTH">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ECC_MODE">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_FAMILY">zynq</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_FIFO_DEPTH">1024</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_FIFO_MEMORY_TYPE">block</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_FIFO_MODE">2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_IS_ACLK_ASYNC">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_EMPTY_THRESH">100</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PROG_FULL_THRESH">920</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SYNCHRONIZER_STAGE">3</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_ADV_FEATURES">826617925</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ACLKEN_CONV_MODE">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">axis_data_fifo</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_ECC">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_DEPTH">1024</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_MEMORY_TYPE">block</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_MODE">2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_AEMPTY">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_AFULL">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_ECC_ERR_INJECT">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_PROG_EMPTY">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_PROG_FULL">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_RD_DATA_COUNT">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_TKEEP">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_TLAST">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_TREADY">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_TSTRB">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_WR_DATA_COUNT">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.IS_ACLK_ASYNC">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PROG_EMPTY_THRESH">100</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PROG_FULL_THRESH">920</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SYNCHRONIZATION_STAGES">3</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TDATA_NUM_BYTES">4</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TDEST_WIDTH">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TID_WIDTH">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TUSER_WIDTH">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.ARCHITECTURE">zynq</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.BASE_BOARD_PART"/> + <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.BOARD_CONNECTIONS"/> + <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.DEVICE">xc7z015</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PACKAGE">clg485</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PREFHDL">VHDL</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SILICON_REVISION"/> + <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SIMULATOR_LANGUAGE">MIXED</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SPEEDGRADE">-2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.STATIC_POWER"/> + <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.TEMPERATURE_GRADE"/> + <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_CUSTOMIZATION">TRUE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_GENERATION">TRUE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPCONTEXT">IP_Flow</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPREVISION">2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.MANAGED">TRUE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">.</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2019.2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue> + </spirit:configurableElementValues> + <spirit:vendorExtensions> + <xilinx:componentInstanceExtensions> + <xilinx:configElementInfos> + <xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.M_AXIS.HAS_TKEEP" xilinx:valueSource="auto"/> + <xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.M_AXIS.HAS_TLAST" xilinx:valueSource="auto"/> + <xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.M_AXIS.TDATA_NUM_BYTES" xilinx:valueSource="auto"/> + <xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.S_AXIS.HAS_TKEEP" xilinx:valueSource="auto"/> + <xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.S_AXIS.HAS_TLAST" xilinx:valueSource="auto"/> + <xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.S_AXIS.TDATA_NUM_BYTES" xilinx:valueSource="auto"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.FIFO_DEPTH" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.FIFO_MEMORY_TYPE" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.FIFO_MODE" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.HAS_PROG_EMPTY" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.HAS_PROG_FULL" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.HAS_RD_DATA_COUNT" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.HAS_TKEEP" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.HAS_TLAST" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.HAS_WR_DATA_COUNT" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.IS_ACLK_ASYNC" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.PROG_EMPTY_THRESH" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.PROG_FULL_THRESH" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.TDATA_NUM_BYTES" xilinx:valueSource="user"/> + </xilinx:configElementInfos> + </xilinx:componentInstanceExtensions> + </spirit:vendorExtensions> + </spirit:componentInstance> + </spirit:componentInstances> +</spirit:design> diff --git a/ips/hw/scalp_aurora_phy_rx_fifo/src/sim/tb_scalp_aurora_phy_rx_fifo.vhd b/ips/hw/scalp_aurora_phy_rx_fifo/src/sim/tb_scalp_aurora_phy_rx_fifo.vhd new file mode 100644 index 0000000000000000000000000000000000000000..d5c8fc63af20a4e8d9d76cf605249954963ceb12 --- /dev/null +++ b/ips/hw/scalp_aurora_phy_rx_fifo/src/sim/tb_scalp_aurora_phy_rx_fifo.vhd @@ -0,0 +1,34 @@ +---------------------------------------------------------------------------------- +-- _ _ +-- | |_ ___ _ __(_)__ _ +-- | ' \/ -_) '_ \ / _` | +-- |_||_\___| .__/_\__,_| +-- |_| +-- +---------------------------------------------------------------------------------- +-- +-- Company: hepia +-- Author: Joachim Schmidt <joachim.schmidt@hesge.ch +-- +-- Module Name: tb_scalp_aurora_phy_rx_fifo - arch +-- Target Device: SCALP xc7z015clg485-2 +-- Tool version: 2019.2 +-- Description: Testbench for scalp_aurora_phy_rx_fifo +-- +-- Last update: 2020-11-07 08:30:46 +-- +--------------------------------------------------------------------------------- + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +entity tb_scalp_aurora_phy_rx_fifo is +end tb_scalp_aurora_phy_rx_fifo; + + +architecture behavioral of tb_scalp_aurora_phy_rx_fifo is + +begin + +end behavioral; diff --git a/ips/vivado/scalp_aurora_phy_rx_fifo/2019.2/lin64/.scripts/.prompt_colors.tcl b/ips/vivado/scalp_aurora_phy_rx_fifo/2019.2/lin64/.scripts/.prompt_colors.tcl new file mode 100644 index 0000000000000000000000000000000000000000..cc7b6c6820fa7a790a5e0efd00d633dbffaed326 --- /dev/null +++ b/ips/vivado/scalp_aurora_phy_rx_fifo/2019.2/lin64/.scripts/.prompt_colors.tcl @@ -0,0 +1,37 @@ +################################################################################## +# _ _ +# | |_ ___ _ __(_)__ _ +# | ' \/ -_) '_ \ / _` | +# |_||_\___| .__/_\__,_| +# |_| +# +################################################################################## +# +# Company: hepia +# Author: Joachim Schmidt <joachim.schmidt@hesge.ch +# +# Project Name: scalp_aurora_phy_rx_fifo +# Target Device: SCALP xc7z015clg485-2 +# Tool version: 2019.2 +# Description: Console color print utility +# +# Last update: 2020-11-07 08:30:46 +# +################################################################################## + +# Text attributes +set RESET [exec tput sgr0] +set BOLD [exec tput bold] +set ITALIC [exec tput sitm] +set BLINK [exec tput blink] +set HIGHL [exec tput smso] + +# Text colors +set RED [exec tput setaf 1] +set GREEN [exec tput setaf 2] +set YELLOW [exec tput setaf 3] +set BLUE [exec tput setaf 4] +set MAGENTA [exec tput setaf 5] +set CYAN [exec tput setaf 6] +set WHITE [exec tput setaf 7] + diff --git a/ips/vivado/scalp_aurora_phy_rx_fifo/2019.2/lin64/.scripts/clean_prj_scalp_aurora_phy_rx_fifo.sh b/ips/vivado/scalp_aurora_phy_rx_fifo/2019.2/lin64/.scripts/clean_prj_scalp_aurora_phy_rx_fifo.sh new file mode 100755 index 0000000000000000000000000000000000000000..291a1d53e4d37f28e0ec8c57c6ff97e32fc7be7c --- /dev/null +++ b/ips/vivado/scalp_aurora_phy_rx_fifo/2019.2/lin64/.scripts/clean_prj_scalp_aurora_phy_rx_fifo.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +################################################################################## +# _ _ +# | |_ ___ _ __(_)__ _ +# | ' \/ -_) '_ \ / _` | +# |_||_\___| .__/_\__,_| +# |_| +# +################################################################################## +# +# Company: hepia +# Author: Joachim Schmidt <joachim.schmidt@hesge.ch +# +# Project Name: scalp_aurora_phy_rx_fifo +# Target Device: SCALP xc7z015clg485-2 +# Tool version: 2019.2 +# Description: Cleanup project directory +# +# Last update: 2020-11-07 08:30:46 +# +################################################################################## + +echo "> Cleanup project directory..." + +PRJ_DIR=.. + +# Clean current directory +rm -rf ${PRJ_DIR}/.Xil/ 2> /dev/null + +# Remove generated project directory +rm -rf ${PRJ_DIR}/scalp_aurora_phy_rx_fifo/ 2> /dev/null + +# Clean app directory +rm ${PRJ_DIR}/app/*.h 2> /dev/null +rm ${PRJ_DIR}/app/*.c 2> /dev/null +rm ${PRJ_DIR}/app/*.html 2> /dev/null + +echo "> Done" + diff --git a/ips/vivado/scalp_aurora_phy_rx_fifo/2019.2/lin64/.scripts/create_prj_scalp_aurora_phy_rx_fifo.sh b/ips/vivado/scalp_aurora_phy_rx_fifo/2019.2/lin64/.scripts/create_prj_scalp_aurora_phy_rx_fifo.sh new file mode 100755 index 0000000000000000000000000000000000000000..17e56393a5a99fc427be6a5947cdac9c6e95f390 --- /dev/null +++ b/ips/vivado/scalp_aurora_phy_rx_fifo/2019.2/lin64/.scripts/create_prj_scalp_aurora_phy_rx_fifo.sh @@ -0,0 +1,27 @@ +#!/bin/sh + +################################################################################## +# _ _ +# | |_ ___ _ __(_)__ _ +# | ' \/ -_) '_ \ / _` | +# |_||_\___| .__/_\__,_| +# |_| +# +################################################################################## +# +# Company: hepia +# Author: Joachim Schmidt <joachim.schmidt@hesge.ch +# +# Project Name: scalp_aurora_phy_rx_fifo +# Target Device: SCALP xc7z015clg485-2 +# Tool version: 2019.2 +# Description: Create Vivado project +# +# Last update: 2020-11-07 08:30:46 +# +################################################################################## + +echo "> Create Vivado project..." +vivado -nojournal -nolog -mode tcl -source create_prj_scalp_aurora_phy_rx_fifo.tcl -notrace +echo "> Done" + diff --git a/ips/vivado/scalp_aurora_phy_rx_fifo/2019.2/lin64/.scripts/create_prj_scalp_aurora_phy_rx_fifo.tcl b/ips/vivado/scalp_aurora_phy_rx_fifo/2019.2/lin64/.scripts/create_prj_scalp_aurora_phy_rx_fifo.tcl new file mode 100644 index 0000000000000000000000000000000000000000..c3eb878c22998c9f455750d2dde1fa2b031eccbc --- /dev/null +++ b/ips/vivado/scalp_aurora_phy_rx_fifo/2019.2/lin64/.scripts/create_prj_scalp_aurora_phy_rx_fifo.tcl @@ -0,0 +1,155 @@ +################################################################################## +# _ _ +# | |_ ___ _ __(_)__ _ +# | ' \/ -_) '_ \ / _` | +# |_||_\___| .__/_\__,_| +# |_| +# +################################################################################## +# +# Company: hepia +# Author: Joachim Schmidt <joachim.schmidt@hesge.ch +# +# Project Name: scalp_aurora_phy_rx_fifo +# Target Device: SCALP xc7z015clg485-2 +# Tool version: 2019.2 +# Description: TCL script for re-creating Vivado project 'scalp_aurora_phy_rx_fifo' +# +# Last update: 2020-11-07 08:30:46 +# +################################################################################## + +# Include files +source utils.tcl + +set PRJ_DIR ".." +set prj_name "scalp_aurora_phy_rx_fifo" +set PKG_DIR "${PRJ_DIR}/../../../../../packages" +set SOC_DIR "${PRJ_DIR}/../../../../../soc/" + +# Set project type +set PRJ_TYPE "COMP_PRJ_TYPE" + +# Create a variable to store the start time +set start_time [clock format [clock seconds] -format {%b. %d, %Y %I:%M:%S %p}] + +# Set the original project directory path for adding/importing sources in the new project +set src_dir "${PRJ_DIR}/../src" +set ip_dir "${PRJ_DIR}/../../../../../ips/hw" +set comp_dir "${ip_dir}/$prj_name" +set comp_src_dir "${comp_dir}/src" +set pkg_src_dir "${PKG_DIR}/hw" +set soc_src_dir "${SOC_DIR}/hw" +print_status "Set directory paths" "OK" + +# Create the project +create_project $prj_name ${PRJ_DIR}/$prj_name -part xc7z015clg485-2 +#set_property board_part SCALP [current_project] +set_property target_language VHDL [current_project] +print_status "Create project" "OK" + +# Map the IP Repository so that custom IP is included +set_property ip_repo_paths $ip_dir [current_fileset] +update_ip_catalog + +#---------------------------------------------------------------- +# Add project sources +#---------------------------------------------------------------- + +if {$PRJ_TYPE == "DESIGN_PRJ_TYPE"} { + # add HDL sources + set vhdl_src_file_list [findFiles $src_dir/hdl *.vhd] + set verilog_src_file_list [findFiles $src_dir/hdl *.v] + set hdl_src_file_list [list {*}$vhdl_src_file_list {*}$verilog_src_file_list] + add_files -norecurse $hdl_src_file_list + # add the constraints file (XDC) + add_files -fileset constrs_1 -norecurse $src_dir/constrs/${prj_name}.xdc + set_property is_enabled true [get_files $src_dir/constrs/${prj_name}.xdc] + + # add IPs source file + + #read_ip $src_dir/custom_ip/ip_0/ip_0.xci +} elseif {$PRJ_TYPE == "COMP_PRJ_TYPE"} { + # components sources are stored in an external directory + # add the project component + set vhdl_src_file_list [findFiles $comp_src_dir/hdl *.vhd] + set verilog_src_file_list [findFiles $comp_src_dir/hdl *.v] + set hdl_src_file_list [list {*}$vhdl_src_file_list {*}$verilog_src_file_list] + add_files -norecurse $hdl_src_file_list + # add IPs source file + #read_ip $comp_src_dir/ip_core/ip_0/ip_0.xci + read_ip $comp_src_dir/ip_core/axis_data_fifo/axis_data_fifo.xci + + # add IP-XACT source file + #add_files -norecurse $comp_dir/component.xml +} +print_status "Add project sources" "OK" + +foreach j $vhdl_src_file_list { + set_property file_type {VHDL 2008} [get_files $j] + print_status "VHDL 2008 mode configured for the file $j" "OK" +} +print_status "VHDL 2008 mode configured for project sources" "OK" + +#---------------------------------------------------------------- +# Add constraints files +#---------------------------------------------------------------- + + +# Set packages libraries if any +#set_property library library_name [get_files $src_dir/hdl/package_name.vhd] +#update_compile_order -fileset sources_1 + +# Create the IP Integrator portion of the design +#create_bd_design "axi_design" +#update_compile_order -fileset sources_1 + +# launch the TCL script to generate the IPI design +source $src_dir/ipi_tcl/${prj_name}_ipi.tcl +print_status "Add IPI design" "OK" + +# Set the top level design +set_property top $prj_name [current_fileset] +update_compile_order -fileset sources_1 + +# Add testbench sources +if {$PRJ_TYPE == "DESIGN_PRJ_TYPE"} { + set vhdl_sim_file_list [findFiles $src_dir/sim *.vhd] + set verilog_sim_file_list [findFiles $src_dir/sim *.v] +} elseif {$PRJ_TYPE == "COMP_PRJ_TYPE"} { + set vhdl_sim_file_list [findFiles $comp_src_dir/sim *.vhd] + set verilog_sim_file_list [findFiles $comp_src_dir/sim *.v] +} +set hdl_sim_file_list [list {*}$vhdl_sim_file_list {*}$verilog_sim_file_list] +add_files -fileset sim_1 -norecurse $hdl_sim_file_list +update_compile_order -fileset sim_1 +print_status "Add testbench sources" "OK" + +foreach j $vhdl_sim_file_list { + set_property file_type {VHDL 2008} [get_files $j] + print_status "VHDL 2008 mode configured for the file $j" "OK" +} +print_status "VHDL 2008 mode configured for testbench sources" "OK" + +# Add packages sources + set vhdl_pkg_file_list [findFiles ${PRJ_DIR}/../../../../../packages/hw/axi4_pkg/src/hdl *.vhd] + add_files -norecurse $vhdl_pkg_file_list + foreach j $vhdl_pkg_file_list { + set_property file_type {VHDL 2008} [get_files $j] + print_status "VHDL 2008 mode configured for the file $j" "OK" + set_property is_enabled true [get_files $j] + } +print_status "Add packages sources" "OK" +print_status "VHDL 2008 mode configured for packages sources" "OK" + +# Add SoC wrapper sources files + + +# Set the completion time +set end_time [clock format [clock seconds] -format {%b. %d, %Y %I:%M:%S %p}] + +# Display the start and end time to the screen +puts $start_time +puts $end_time + +exit diff --git a/ips/vivado/scalp_aurora_phy_rx_fifo/2019.2/lin64/.scripts/open_prj_scalp_aurora_phy_rx_fifo.sh b/ips/vivado/scalp_aurora_phy_rx_fifo/2019.2/lin64/.scripts/open_prj_scalp_aurora_phy_rx_fifo.sh new file mode 100755 index 0000000000000000000000000000000000000000..a1a7840cf96782ca45b092808db7b7bc978f260a --- /dev/null +++ b/ips/vivado/scalp_aurora_phy_rx_fifo/2019.2/lin64/.scripts/open_prj_scalp_aurora_phy_rx_fifo.sh @@ -0,0 +1,25 @@ +#!/bin/sh + +################################################################################## +# _ _ +# | |_ ___ _ __(_)__ _ +# | ' \/ -_) '_ \ / _` | +# |_||_\___| .__/_\__,_| +# |_| +# +################################################################################## +# +# Company: hepia +# Author: Joachim Schmidt <joachim.schmidt@hesge.ch +# +# Project Name: scalp_aurora_phy_rx_fifo +# Target Device: SCALP xc7z015clg485-2 +# Tool version: 2019.2 +# Description: Create Vivado project +# +# Last update: 2020-11-07 08:30:46 +# +################################################################################## + +echo "> Open Vivado GUI..." +vivado -nojournal -nolog -notrace ../scalp_aurora_phy_rx_fifo/scalp_aurora_phy_rx_fifo.xpr diff --git a/ips/vivado/scalp_aurora_phy_rx_fifo/2019.2/lin64/.scripts/utils.tcl b/ips/vivado/scalp_aurora_phy_rx_fifo/2019.2/lin64/.scripts/utils.tcl new file mode 100644 index 0000000000000000000000000000000000000000..6a82a5996b8ed98fe14b6429fd201867c2108327 --- /dev/null +++ b/ips/vivado/scalp_aurora_phy_rx_fifo/2019.2/lin64/.scripts/utils.tcl @@ -0,0 +1,62 @@ +################################################################################## +# _ _ +# | |_ ___ _ __(_)__ _ +# | ' \/ -_) '_ \ / _` | +# |_||_\___| .__/_\__,_| +# |_| +# +################################################################################## +# +# Company: hepia +# Author: Joachim Schmidt <joachim.schmidt@hesge.ch +# +# Project Name: scalp_aurora_phy_rx_fifo +# Target Device: SCALP xc7z015clg485-2 +# Tool version: 2019.2 +# Description: Project management utilities +# +# Last update: 2020-11-07 08:30:46 +# +################################################################################## + +# findFiles +# basedir - the directory to start looking in +# pattern - A pattern, as defined by the glob command, that the files must match +proc findFiles { basedir pattern } { + + # Fix the directory name, this ensures the directory name is in the + # native format for the platform and contains a final directory seperator + set basedir [string trimright [file join [file normalize $basedir] { }]] + set fileList {} + + # Look in the current directory for matching files, -type {f r} + # means ony readable normal files are looked at, -nocomplain stops + # an error being thrown if the returned list is empty + foreach fileName [glob -nocomplain -type {f r} -path $basedir $pattern] { + lappend fileList $fileName + } + + # Now look for any sub direcories in the current directory + foreach dirName [glob -nocomplain -type {d r} -path $basedir *] { + # Recusively call the routine on the sub directory and append any + # new files to the results + set subDirList [findFiles $dirName $pattern] + if { [llength $subDirList] > 0 } { + foreach subDirFile $subDirList { + lappend fileList $subDirFile + } + } + } + return $fileList +} + + +# Print a progress status +# str The string describing the current status +# status The status as a string (eg. "OK", "FAILED") +proc print_status {str status} { + set MAX_STR_LENGTH 70 + source .prompt_colors.tcl + puts "${CYAN}>${YELLOW} $str [string repeat " " [expr {$MAX_STR_LENGTH - [string length $str]}]]\[${GREEN}${status}${YELLOW}\]${RESET}" +} + diff --git a/ips/vivado/scalp_aurora_phy_rx_fifo/2019.2/lin64/setup.sh b/ips/vivado/scalp_aurora_phy_rx_fifo/2019.2/lin64/setup.sh new file mode 100755 index 0000000000000000000000000000000000000000..d0c15e0b88918bf972194dff24ba02eb7fdbb970 --- /dev/null +++ b/ips/vivado/scalp_aurora_phy_rx_fifo/2019.2/lin64/setup.sh @@ -0,0 +1,30 @@ +################################################################################## +# _ _ +# | |_ ___ _ __(_)__ _ +# | ' \/ -_) '_ \ / _` | +# |_||_\___| .__/_\__,_| +# |_| +# +################################################################################## +# +# Company: hepia +# Author: Joachim Schmidt <joachim.schmidt@hesge.ch +# +# Project Name: scalp_aurora_phy_rx_fifo +# Target Device: SCALP xc7z015clg485-2 +# Tool version: 2019.2 +# Description: TCL script creating aliases for Vivado project management scripts +# +# Last update: 2020-11-07 08:30:46 +# +################################################################################## + +# Create aliases +alias create_project='cd .scripts && ./create_prj_scalp_aurora_phy_rx_fifo.sh && cd ..' +alias clean_project='cd .scripts && ./clean_prj_scalp_aurora_phy_rx_fifo.sh && cd ..' +alias export_hw='cd .scripts && ./export_hw_scalp_aurora_phy_rx_fifo.sh && cd ..' +alias gen_bitstream='cd .scripts && ./gen_bitstream_scalp_aurora_phy_rx_fifo.sh && cd ..' +alias load_bitstream='cd .scripts && ./load_bitstream_scalp_aurora_phy_rx_fifo.sh && cd ..' +alias gen_sw_apps='cd .scripts && ./gen_sw_apps_scalp_aurora_phy_rx_fifo.sh && cd ..' +alias load_sw_app='cd .scripts && ./load_sw_app_scalp_aurora_phy_rx_fifo.sh && cd ..' +alias open_gui='cd .scripts && ./open_prj_scalp_aurora_phy_rx_fifo.sh && cd ..'