OpenCores
URL https://opencores.org/ocsvn/astron_fifo/astron_fifo/trunk

Subversion Repositories astron_fifo

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /
    from Rev 3 to Rev 4
    Reverse comparison

Rev 3 → Rev 4

/astron_fifo/trunk/common_fifo_dc.vhd
20,14 → 20,14
 
-- Purpose: Dual clock FIFO
 
LIBRARY IEEE, common_pkg_lib, common_components_lib, technology_lib, tech_fifo_lib;
LIBRARY IEEE, common_pkg_lib, common_components_lib;
USE IEEE.STD_LOGIC_1164.ALL;
USE common_pkg_lib.common_pkg.ALL;
USE technology_lib.technology_select_pkg.ALL;
--USE technology_lib.technology_select_pkg.ALL;
 
ENTITY common_fifo_dc IS
GENERIC (
g_technology : NATURAL := c_tech_select_default;
g_technology : NATURAL := 0; --c_tech_select_default;
g_note_is_ful : BOOLEAN := TRUE; -- when TRUE report NOTE when FIFO goes full, fifo overflow is always reported as FAILURE
g_fail_rd_emp : BOOLEAN := FALSE; -- when TRUE report FAILURE when read from an empty FIFO
g_dat_w : NATURAL := 36;
114,7 → 114,7
END IF;
END PROCESS;
u_fifo : ENTITY tech_fifo_lib.tech_fifo_dc
u_fifo : ENTITY work.tech_fifo_dc
GENERIC MAP (
g_technology => g_technology,
g_dat_w => g_dat_w,
/astron_fifo/trunk/common_fifo_sc.vhd
20,14 → 20,14
 
-- Purpose: Single clock FIFO
 
LIBRARY IEEE, common_pkg_lib, common_components_lib, technology_lib, tech_fifo_lib;
LIBRARY IEEE, common_pkg_lib, common_components_lib;
USE IEEE.STD_LOGIC_1164.ALL;
USE common_pkg_lib.common_pkg.ALL;
USE technology_lib.technology_select_pkg.ALL;
--USE technology_lib.technology_select_pkg.ALL;
 
ENTITY common_fifo_sc IS
GENERIC (
g_technology : NATURAL := c_tech_select_default;
g_technology : NATURAL := 0; --c_tech_select_default;
g_note_is_ful : BOOLEAN := TRUE; -- when TRUE report NOTE when FIFO goes full, fifo overflow is always reported as FAILURE
g_fail_rd_emp : BOOLEAN := FALSE; -- when TRUE report FAILURE when read from an empty FIFO
g_use_lut : BOOLEAN := FALSE; -- when TRUE then force using LUTs via Altera eab="OFF",
152,7 → 152,7
 
-- 0 < some threshold < usedw < g_nof_words can be used as FIFO almost_full
-- 0 < usedw < some threshold < g_nof_words can be used as FIFO almost_empty
u_fifo : ENTITY tech_fifo_lib.tech_fifo_sc
u_fifo : ENTITY work.tech_fifo_sc
GENERIC MAP (
g_technology => g_technology,
g_use_eab => c_use_eab,
/astron_fifo/trunk/dp_fifo_core.vhd
38,16 → 38,16
-- combinatorially connected, so this can ease the timing closure for the
-- ready signal.
 
LIBRARY IEEE, common_pkg_lib, dp_components_lib, common_fifo_lib, dp_pkg_lib, technology_lib;
LIBRARY IEEE, common_pkg_lib, dp_components_lib, dp_pkg_lib;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.numeric_std.ALL;
USE common_pkg_lib.common_pkg.ALL;
USE dp_pkg_lib.dp_stream_pkg.ALL;
USE technology_lib.technology_select_pkg.ALL;
--USE technology_lib.technology_select_pkg.ALL;
 
ENTITY dp_fifo_core IS
GENERIC (
g_technology : NATURAL := c_tech_select_default;
g_technology : NATURAL := 0;
g_note_is_ful : BOOLEAN := TRUE; -- when TRUE report NOTE when FIFO goes full, fifo overflow is always reported as FAILURE
g_use_dual_clock : BOOLEAN := FALSE;
g_use_lut_sc : BOOLEAN := FALSE; -- when TRUE then force using LUTs instead of block RAM for single clock FIFO (bot available for dual clock FIFO)
168,7 → 168,7
nxt_snk_out.ready <= '1' WHEN UNSIGNED(fifo_wr_usedw)<c_fifo_almost_full ELSE '0';
gen_common_fifo_sc : IF g_use_dual_clock=FALSE GENERATE
u_common_fifo_sc : ENTITY common_fifo_lib.common_fifo_sc
u_common_fifo_sc : ENTITY work.common_fifo_sc
GENERIC MAP (
g_technology => g_technology,
g_note_is_ful => g_note_is_ful,
193,7 → 193,7
END GENERATE;
gen_common_fifo_dc : IF g_use_dual_clock=TRUE GENERATE
u_common_fifo_dc : ENTITY common_fifo_lib.common_fifo_dc
u_common_fifo_dc : ENTITY work.common_fifo_dc
GENERIC MAP (
g_technology => g_technology,
g_dat_w => c_fifo_dat_w,
/astron_fifo/trunk/dp_fifo_dc.vhd
21,16 → 21,16
-- Purpose: DP FIFO for dual clock (= dc) domain wr and rd.
-- Description: See dp_fifo_core.vhd.
 
LIBRARY IEEE, common_pkg_lib, dp_pkg_lib, technology_lib;
LIBRARY IEEE, common_pkg_lib, dp_pkg_lib;
USE IEEE.std_logic_1164.ALL;
USE IEEE.numeric_std.ALL;
USE common_pkg_lib.common_pkg.ALL;
USE dp_pkg_lib.dp_stream_pkg.ALL;
USE technology_lib.technology_select_pkg.ALL;
--USE technology_lib.technology_select_pkg.ALL;
 
ENTITY dp_fifo_dc IS
GENERIC (
g_technology : NATURAL := c_tech_select_default;
g_technology : NATURAL := 0;
g_data_w : NATURAL := 16; -- Should be 2 times the c_complex_w if g_use_complex = TRUE
g_bsn_w : NATURAL := 1;
g_empty_w : NATURAL := 1;
/astron_fifo/trunk/dp_fifo_fill.vhd
24,16 → 24,16
-- This wrapper is for backwards compatibility, better use dp_fifo_fill_sc.vhd
-- for new designs.
 
LIBRARY IEEE, common_pkg_lib, dp_pkg_lib, technology_lib;
LIBRARY IEEE, common_pkg_lib, dp_pkg_lib;
USE IEEE.std_logic_1164.ALL;
USE IEEE.numeric_std.ALL;
USE common_pkg_lib.common_pkg.ALL;
USE dp_pkg_lib.dp_stream_pkg.ALL;
USE technology_lib.technology_select_pkg.ALL;
--USE technology_lib.technology_select_pkg.ALL;
 
ENTITY dp_fifo_fill IS
GENERIC (
g_technology : NATURAL := c_tech_select_default;
g_technology : NATURAL := 0;
g_data_w : NATURAL := 16;
g_bsn_w : NATURAL := 1;
g_empty_w : NATURAL := 1;
/astron_fifo/trunk/dp_fifo_fill_core.vhd
55,16 → 55,16
-- src_in.ready is often more clear to comprehend then using next_src_out
-- directly.
 
LIBRARY IEEE, common_pkg_lib, dp_pkg_lib, dp_components_lib, technology_lib;
LIBRARY IEEE, common_pkg_lib, dp_pkg_lib, dp_components_lib;
USE IEEE.std_logic_1164.ALL;
USE IEEE.numeric_std.ALL;
USE common_pkg_lib.common_pkg.ALL;
USE dp_pkg_lib.dp_stream_pkg.ALL;
USE technology_lib.technology_select_pkg.ALL;
--USE technology_lib.technology_select_pkg.ALL;
 
ENTITY dp_fifo_fill_core IS
GENERIC (
g_technology : NATURAL := c_tech_select_default;
g_technology : NATURAL := 0;
g_use_dual_clock : BOOLEAN := FALSE;
g_data_w : NATURAL := 16;
g_bsn_w : NATURAL := 1;
/astron_fifo/trunk/dp_fifo_fill_sc.vhd
22,16 → 22,16
-- been filled with more than g_fifo_fill words.
-- Description: See dp_fifo_fill_core.vhd.
 
LIBRARY IEEE, common_pkg_lib, dp_pkg_lib, technology_lib;
LIBRARY IEEE, common_pkg_lib, dp_pkg_lib;
USE IEEE.std_logic_1164.ALL;
USE IEEE.numeric_std.ALL;
USE common_pkg_lib.common_pkg.ALL;
USE dp_pkg_lib.dp_stream_pkg.ALL;
USE technology_lib.technology_select_pkg.ALL;
--USE technology_lib.technology_select_pkg.ALL;
 
ENTITY dp_fifo_fill_sc IS
GENERIC (
g_technology : NATURAL := c_tech_select_default;
g_technology : NATURAL := 0;
g_data_w : NATURAL := 16;
g_bsn_w : NATURAL := 1;
g_empty_w : NATURAL := 1;
/astron_fifo/trunk/dp_fifo_sc.vhd
21,16 → 21,16
-- Purpose: DP FIFO for single clock (= sc) domain wr and rd.
-- Description: See dp_fifo_core.vhd.
 
LIBRARY IEEE, common_pkg_lib, dp_pkg_lib, technology_lib;
LIBRARY IEEE, common_pkg_lib, dp_pkg_lib;
USE IEEE.std_logic_1164.ALL;
USE IEEE.numeric_std.ALL;
USE common_pkg_lib.common_pkg.ALL;
USE dp_pkg_lib.dp_stream_pkg.ALL;
USE technology_lib.technology_select_pkg.ALL;
--USE technology_lib.technology_select_pkg.ALL;
 
ENTITY dp_fifo_sc IS
GENERIC (
g_technology : NATURAL := c_tech_select_default;
g_technology : NATURAL := 0;
g_note_is_ful : BOOLEAN := TRUE; -- when TRUE report NOTE when FIFO goes full, fifo overflow is always reported as FAILURE
g_use_lut : BOOLEAN := FALSE; -- when TRUE then force using LUTs instead of block RAM
g_data_w : NATURAL := 16; -- Should be 2 times the c_complex_w if g_use_complex = TRUE
/astron_fifo/trunk/hdllib.cfg
1,10 → 1,10
hdl_lib_name = tech_fifo
hdl_library_clause_name = tech_fifo_lib
hdl_lib_uses_synth = technology ip_stratixiv_fifo
hdl_lib_name = astron_fifo
hdl_library_clause_name = astron_fifo_lib
hdl_lib_uses_synth = common_pkg common_components dp_pkg dp_components #ip_stratixiv_fifo
hdl_lib_uses_sim =
hdl_lib_technology =
hdl_lib_disclose_library_clause_names =
ip_stratixiv_fifo ip_stratixiv_fifo_lib
#hdl_lib_disclose_library_clause_names =
# ip_stratixiv_fifo ip_stratixiv_fifo_lib
 
synth_files =
tech_fifo_component_pkg.vhd
/astron_fifo/trunk/tech_fifo_component_pkg.vhd
20,9 → 20,10
 
-- Purpose: IP components declarations for various devices that get wrapped by the tech components
 
LIBRARY IEEE, technology_lib;
LIBRARY ieee, common_pkg_lib;
USE IEEE.STD_LOGIC_1164.ALL;
USE technology_lib.technology_pkg.ALL;
--USE technology_lib.technology_pkg.ALL;
USE common_pkg_lib.common_pkg.ALL;
 
PACKAGE tech_fifo_component_pkg IS
 
45,7 → 46,7
empty : OUT STD_LOGIC;
full : OUT STD_LOGIC;
q : OUT STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0);
usedw : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words)-1 DOWNTO 0)
usedw : OUT STD_LOGIC_VECTOR (ceil_log2(g_nof_words)-1 DOWNTO 0)
);
END COMPONENT;
63,9 → 64,9
wrreq : IN STD_LOGIC;
q : OUT STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0);
rdempty : OUT STD_LOGIC;
rdusedw : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words)-1 DOWNTO 0);
rdusedw : OUT STD_LOGIC_VECTOR (ceil_log2(g_nof_words)-1 DOWNTO 0);
wrfull : OUT STD_LOGIC;
wrusedw : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words)-1 DOWNTO 0)
wrusedw : OUT STD_LOGIC_VECTOR (ceil_log2(g_nof_words)-1 DOWNTO 0)
);
END COMPONENT;
84,9 → 85,9
wrreq : IN STD_LOGIC;
q : OUT STD_LOGIC_VECTOR (g_rddat_w-1 DOWNTO 0);
rdempty : OUT STD_LOGIC;
rdusedw : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words*g_wrdat_w/g_rddat_w)-1 DOWNTO 0);
rdusedw : OUT STD_LOGIC_VECTOR (ceil_log2(g_nof_words*g_wrdat_w/g_rddat_w)-1 DOWNTO 0);
wrfull : OUT STD_LOGIC;
wrusedw : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words)-1 DOWNTO 0)
wrusedw : OUT STD_LOGIC_VECTOR (ceil_log2(g_nof_words)-1 DOWNTO 0)
);
END COMPONENT;
110,7 → 111,7
-- empty : OUT STD_LOGIC ;
-- full : OUT STD_LOGIC ;
-- q : OUT STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0) ;
-- usedw : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words)-1 DOWNTO 0)
-- usedw : OUT STD_LOGIC_VECTOR (ceil_log2(g_nof_words)-1 DOWNTO 0)
-- );
-- END COMPONENT;
--
129,9 → 130,9
-- wrreq : IN STD_LOGIC ;
-- q : OUT STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0);
-- rdempty : OUT STD_LOGIC ;
-- rdusedw : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words)-1 DOWNTO 0);
-- rdusedw : OUT STD_LOGIC_VECTOR (ceil_log2(g_nof_words)-1 DOWNTO 0);
-- wrfull : OUT STD_LOGIC ;
-- wrusedw : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words)-1 DOWNTO 0)
-- wrusedw : OUT STD_LOGIC_VECTOR (ceil_log2(g_nof_words)-1 DOWNTO 0)
-- );
-- END COMPONENT;
--
150,9 → 151,9
-- wrreq : IN STD_LOGIC ;
-- q : OUT STD_LOGIC_VECTOR (g_rddat_w-1 DOWNTO 0);
-- rdempty : OUT STD_LOGIC ;
-- rdusedw : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words*g_wrdat_w/g_rddat_w)-1 DOWNTO 0);
-- rdusedw : OUT STD_LOGIC_VECTOR (ceil_log2(g_nof_words*g_wrdat_w/g_rddat_w)-1 DOWNTO 0);
-- wrfull : OUT STD_LOGIC ;
-- wrusedw : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words)-1 DOWNTO 0)
-- wrusedw : OUT STD_LOGIC_VECTOR (ceil_log2(g_nof_words)-1 DOWNTO 0)
-- );
-- END COMPONENT;
--
175,7 → 176,7
-- empty : OUT STD_LOGIC ;
-- full : OUT STD_LOGIC ;
-- q : OUT STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0) ;
-- usedw : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words)-1 DOWNTO 0)
-- usedw : OUT STD_LOGIC_VECTOR (ceil_log2(g_nof_words)-1 DOWNTO 0)
-- );
-- END COMPONENT;
--
194,9 → 195,9
-- wrreq : IN STD_LOGIC ;
-- q : OUT STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0);
-- rdempty : OUT STD_LOGIC ;
-- rdusedw : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words)-1 DOWNTO 0);
-- rdusedw : OUT STD_LOGIC_VECTOR (ceil_log2(g_nof_words)-1 DOWNTO 0);
-- wrfull : OUT STD_LOGIC ;
-- wrusedw : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words)-1 DOWNTO 0)
-- wrusedw : OUT STD_LOGIC_VECTOR (ceil_log2(g_nof_words)-1 DOWNTO 0)
-- );
-- END COMPONENT;
--
215,9 → 216,9
-- wrreq : IN STD_LOGIC ;
-- q : OUT STD_LOGIC_VECTOR (g_rddat_w-1 DOWNTO 0);
-- rdempty : OUT STD_LOGIC ;
-- rdusedw : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words*g_wrdat_w/g_rddat_w)-1 DOWNTO 0);
-- rdusedw : OUT STD_LOGIC_VECTOR (ceil_log2(g_nof_words*g_wrdat_w/g_rddat_w)-1 DOWNTO 0);
-- wrfull : OUT STD_LOGIC ;
-- wrusedw : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words)-1 DOWNTO 0)
-- wrusedw : OUT STD_LOGIC_VECTOR (ceil_log2(g_nof_words)-1 DOWNTO 0)
-- );
-- END COMPONENT;
--
240,7 → 241,7
-- empty : OUT STD_LOGIC ;
-- full : OUT STD_LOGIC ;
-- q : OUT STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0) ;
-- usedw : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words)-1 DOWNTO 0)
-- usedw : OUT STD_LOGIC_VECTOR (ceil_log2(g_nof_words)-1 DOWNTO 0)
-- );
-- END COMPONENT;
--
259,9 → 260,9
-- wrreq : IN STD_LOGIC ;
-- q : OUT STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0);
-- rdempty : OUT STD_LOGIC ;
-- rdusedw : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words)-1 DOWNTO 0);
-- rdusedw : OUT STD_LOGIC_VECTOR (ceil_log2(g_nof_words)-1 DOWNTO 0);
-- wrfull : OUT STD_LOGIC ;
-- wrusedw : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words)-1 DOWNTO 0)
-- wrusedw : OUT STD_LOGIC_VECTOR (ceil_log2(g_nof_words)-1 DOWNTO 0)
-- );
-- END COMPONENT;
--
280,9 → 281,9
-- wrreq : IN STD_LOGIC ;
-- q : OUT STD_LOGIC_VECTOR (g_rddat_w-1 DOWNTO 0);
-- rdempty : OUT STD_LOGIC ;
-- rdusedw : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words*g_wrdat_w/g_rddat_w)-1 DOWNTO 0);
-- rdusedw : OUT STD_LOGIC_VECTOR (ceil_log2(g_nof_words*g_wrdat_w/g_rddat_w)-1 DOWNTO 0);
-- wrfull : OUT STD_LOGIC ;
-- wrusedw : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words)-1 DOWNTO 0)
-- wrusedw : OUT STD_LOGIC_VECTOR (ceil_log2(g_nof_words)-1 DOWNTO 0)
-- );
-- END COMPONENT;
/astron_fifo/trunk/tech_fifo_dc.vhd
18,14 → 18,16
--
-------------------------------------------------------------------------------
 
LIBRARY ieee, technology_lib;
LIBRARY ieee, common_pkg_lib;
USE ieee.std_logic_1164.all;
USE work.tech_fifo_component_pkg.ALL;
USE technology_lib.technology_pkg.ALL;
USE technology_lib.technology_select_pkg.ALL;
USE common_pkg_lib.common_pkg.ALL;
 
--USE technology_lib.technology_pkg.ALL;
--USE technology_lib.technology_select_pkg.ALL;
 
-- Declare IP libraries to ensure default binding in simulation. The IP library clause is ignored by synthesis.
LIBRARY ip_stratixiv_fifo_lib;
--LIBRARY ip_stratixiv_fifo_lib;
--LIBRARY ip_arria10_fifo_lib;
--LIBRARY ip_arria10_e3sge3_fifo_lib;
--LIBRARY ip_arria10_e1sg_fifo_lib;
32,7 → 34,7
 
ENTITY tech_fifo_dc IS
GENERIC (
g_technology : NATURAL := c_tech_select_default;
g_technology : NATURAL := 0; --c_tech_select_default;
g_use_eab : STRING := "ON";
g_dat_w : NATURAL;
g_nof_words : NATURAL
46,9 → 48,9
wrreq : IN STD_LOGIC;
q : OUT STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0);
rdempty : OUT STD_LOGIC;
rdusedw : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words)-1 DOWNTO 0);
rdusedw : OUT STD_LOGIC_VECTOR (ceil_log2(g_nof_words)-1 DOWNTO 0);
wrfull : OUT STD_LOGIC;
wrusedw : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words)-1 DOWNTO 0)
wrusedw : OUT STD_LOGIC_VECTOR (ceil_log2(g_nof_words)-1 DOWNTO 0)
);
END tech_fifo_dc;
 
57,7 → 59,7
 
BEGIN
 
gen_ip_stratixiv : IF g_technology=c_tech_stratixiv GENERATE
gen_ip_stratixiv : IF g_technology=0 GENERATE
u0 : ip_stratixiv_fifo_dc
GENERIC MAP (g_dat_w, g_nof_words)
PORT MAP (aclr, data, rdclk, rdreq, wrclk, wrreq, q, rdempty, rdusedw, wrfull, wrusedw);
/astron_fifo/trunk/tech_fifo_dc_mixed_widths.vhd
18,14 → 18,16
--
-------------------------------------------------------------------------------
 
LIBRARY ieee, technology_lib;
LIBRARY ieee, common_pkg_lib;
USE ieee.std_logic_1164.all;
USE work.tech_fifo_component_pkg.ALL;
USE technology_lib.technology_pkg.ALL;
USE technology_lib.technology_select_pkg.ALL;
USE common_pkg_lib.common_pkg.ALL;
 
--USE technology_lib.technology_pkg.ALL;
--USE technology_lib.technology_select_pkg.ALL;
 
-- Declare IP libraries to ensure default binding in simulation. The IP library clause is ignored by synthesis.
LIBRARY ip_stratixiv_fifo_lib;
--LIBRARY ip_stratixiv_fifo_lib;
--LIBRARY ip_arria10_fifo_lib;
--LIBRARY ip_arria10_e3sge3_fifo_lib;
--LIBRARY ip_arria10_e1sg_fifo_lib;
32,7 → 34,7
 
ENTITY tech_fifo_dc_mixed_widths IS
GENERIC (
g_technology : NATURAL := c_tech_select_default;
g_technology : NATURAL := 0; --c_tech_select_default;
g_nof_words : NATURAL; -- FIFO size in nof wr_dat words
g_wrdat_w : NATURAL;
g_rddat_w : NATURAL
46,9 → 48,9
wrreq : IN STD_LOGIC;
q : OUT STD_LOGIC_VECTOR (g_rddat_w-1 DOWNTO 0);
rdempty : OUT STD_LOGIC;
rdusedw : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words*g_wrdat_w/g_rddat_w)-1 DOWNTO 0);
rdusedw : OUT STD_LOGIC_VECTOR (ceil_log2(g_nof_words*g_wrdat_w/g_rddat_w)-1 DOWNTO 0);
wrfull : OUT STD_LOGIC;
wrusedw : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words)-1 DOWNTO 0)
wrusedw : OUT STD_LOGIC_VECTOR (ceil_log2(g_nof_words)-1 DOWNTO 0)
);
END tech_fifo_dc_mixed_widths;
 
57,7 → 59,7
 
BEGIN
 
gen_ip_stratixiv : IF g_technology=c_tech_stratixiv GENERATE
gen_ip_stratixiv : IF g_technology=0 GENERATE
u0 : ip_stratixiv_fifo_dc_mixed_widths
GENERIC MAP (g_nof_words, g_wrdat_w, g_rddat_w)
PORT MAP (aclr, data, rdclk, rdreq, wrclk, wrreq, q, rdempty, rdusedw, wrfull, wrusedw);
/astron_fifo/trunk/tech_fifo_sc.vhd
18,14 → 18,16
--
-------------------------------------------------------------------------------
 
LIBRARY ieee, technology_lib;
LIBRARY ieee, common_pkg_lib;
USE ieee.std_logic_1164.all;
USE work.tech_fifo_component_pkg.ALL;
USE technology_lib.technology_pkg.ALL;
USE technology_lib.technology_select_pkg.ALL;
USE common_pkg_lib.common_pkg.ALL;
 
--USE technology_lib.technology_pkg.ALL;
--USE technology_lib.technology_select_pkg.ALL;
 
-- Declare IP libraries to ensure default binding in simulation. The IP library clause is ignored by synthesis.
LIBRARY ip_stratixiv_fifo_lib;
--LIBRARY ip_stratixiv_fifo_lib;
--LIBRARY ip_arria10_fifo_lib;
--LIBRARY ip_arria10_e3sge3_fifo_lib;
--LIBRARY ip_arria10_e1sg_fifo_lib;
32,7 → 34,7
 
ENTITY tech_fifo_sc IS
GENERIC (
g_technology : NATURAL := c_tech_select_default;
g_technology : NATURAL := 0; --c_tech_select_default;
g_use_eab : STRING := "ON";
g_dat_w : NATURAL;
g_nof_words : NATURAL
46,7 → 48,7
empty : OUT STD_LOGIC;
full : OUT STD_LOGIC;
q : OUT STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0);
usedw : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words)-1 DOWNTO 0)
usedw : OUT STD_LOGIC_VECTOR (ceil_log2(g_nof_words)-1 DOWNTO 0)
);
END tech_fifo_sc;
 
55,7 → 57,7
 
BEGIN
 
gen_ip_stratixiv : IF g_technology=c_tech_stratixiv GENERATE
gen_ip_stratixiv : IF g_technology=0 GENERATE
u0 : ip_stratixiv_fifo_sc
GENERIC MAP (g_use_eab, g_dat_w, g_nof_words)
PORT MAP (aclr, clock, data, rdreq, wrreq, empty, full, q, usedw);

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.