Line 16... |
Line 16... |
-- See the License for the specific language governing permissions and
|
-- See the License for the specific language governing permissions and
|
-- limitations under the License.
|
-- limitations under the License.
|
--
|
--
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
|
|
LIBRARY ieee, technology_lib;
|
LIBRARY ieee, common_pkg_lib;
|
USE ieee.std_logic_1164.all;
|
USE ieee.std_logic_1164.all;
|
USE work.tech_fifo_component_pkg.ALL;
|
USE work.tech_fifo_component_pkg.ALL;
|
USE technology_lib.technology_pkg.ALL;
|
USE common_pkg_lib.common_pkg.ALL;
|
USE technology_lib.technology_select_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.
|
-- 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_fifo_lib;
|
--LIBRARY ip_arria10_e3sge3_fifo_lib;
|
--LIBRARY ip_arria10_e3sge3_fifo_lib;
|
--LIBRARY ip_arria10_e1sg_fifo_lib;
|
--LIBRARY ip_arria10_e1sg_fifo_lib;
|
|
|
ENTITY tech_fifo_dc_mixed_widths IS
|
ENTITY tech_fifo_dc_mixed_widths IS
|
GENERIC (
|
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_nof_words : NATURAL; -- FIFO size in nof wr_dat words
|
g_wrdat_w : NATURAL;
|
g_wrdat_w : NATURAL;
|
g_rddat_w : NATURAL
|
g_rddat_w : NATURAL
|
);
|
);
|
PORT (
|
PORT (
|
Line 44... |
Line 46... |
rdreq : IN STD_LOGIC;
|
rdreq : IN STD_LOGIC;
|
wrclk : IN STD_LOGIC;
|
wrclk : IN STD_LOGIC;
|
wrreq : IN STD_LOGIC;
|
wrreq : IN STD_LOGIC;
|
q : OUT STD_LOGIC_VECTOR (g_rddat_w-1 DOWNTO 0);
|
q : OUT STD_LOGIC_VECTOR (g_rddat_w-1 DOWNTO 0);
|
rdempty : OUT STD_LOGIC;
|
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;
|
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;
|
END tech_fifo_dc_mixed_widths;
|
|
|
|
|
ARCHITECTURE str OF tech_fifo_dc_mixed_widths IS
|
ARCHITECTURE str OF tech_fifo_dc_mixed_widths IS
|
|
|
BEGIN
|
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
|
u0 : ip_stratixiv_fifo_dc_mixed_widths
|
GENERIC MAP (g_nof_words, g_wrdat_w, g_rddat_w)
|
GENERIC MAP (g_nof_words, g_wrdat_w, g_rddat_w)
|
PORT MAP (aclr, data, rdclk, rdreq, wrclk, wrreq, q, rdempty, rdusedw, wrfull, wrusedw);
|
PORT MAP (aclr, data, rdclk, rdreq, wrclk, wrreq, q, rdempty, rdusedw, wrfull, wrusedw);
|
END GENERATE;
|
END GENERATE;
|
|
|