- FIFOs only use registered output DPRAMs
Committed on the Free edition of March Hare Software CVSNT Server. Upgrade to CVS Suite for more features and support: http://march-hare.com/cvsnt/ git-svn-id: http://moon:8086/svn/vhdl/trunk@944 cc03376c-175c-47c8-b038-4cd826a8556b
This commit is contained in:
@@ -3,7 +3,7 @@
|
|||||||
vlib work
|
vlib work
|
||||||
vcom -explicit -93 "../src/fifo_ctrl_pkg.vhd"
|
vcom -explicit -93 "../src/fifo_ctrl_pkg.vhd"
|
||||||
vcom -explicit -93 "../src/gray_counter.vhd"
|
vcom -explicit -93 "../src/gray_counter.vhd"
|
||||||
vcom -explicit -93 "../src/dpram_1w1r.vhd"
|
vcom -explicit -93 "../../rams/dpram_1w1r2c_ro_sim.vhd"
|
||||||
vcom -explicit -93 "../src/fifo_async_ctrl.vhd"
|
vcom -explicit -93 "../src/fifo_async_ctrl.vhd"
|
||||||
vcom -explicit -93 "../src/fifo_async.vhd"
|
vcom -explicit -93 "../src/fifo_async.vhd"
|
||||||
vcom -explicit -93 "../src/tb_fifo_async.vhd"
|
vcom -explicit -93 "../src/tb_fifo_async.vhd"
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
##
|
##
|
||||||
vlib work
|
vlib work
|
||||||
vcom -explicit -93 "../src/fifo_ctrl_pkg.vhd"
|
vcom -explicit -93 "../src/fifo_ctrl_pkg.vhd"
|
||||||
vcom -explicit -93 "../src/dpram_1w1r.vhd"
|
vcom -explicit -93 "../../rams/dpram_1w1r2c_ro_sim.vhd"
|
||||||
vcom -explicit -93 "../src/fifo_sync_ctrl.vhd"
|
vcom -explicit -93 "../src/fifo_sync_ctrl.vhd"
|
||||||
vcom -explicit -93 "../src/fifo_sync.vhd"
|
vcom -explicit -93 "../src/fifo_sync.vhd"
|
||||||
vcom -explicit -93 "../src/tb_fifo_sync.vhd"
|
vcom -explicit -93 "../src/tb_fifo_sync.vhd"
|
||||||
|
|||||||
+10
-10
@@ -31,13 +31,13 @@ use work.fifo_ctrl_pkg.all;
|
|||||||
entity fifo_async is
|
entity fifo_async is
|
||||||
Generic
|
Generic
|
||||||
(
|
(
|
||||||
addr_width : natural := 4;
|
addr_width : natural := 4;
|
||||||
data_width : natural := 8;
|
data_width : natural := 8;
|
||||||
almost_full_thresh : integer := 12;
|
almost_full_thresh : integer := 12;
|
||||||
almost_empty_thresh : integer := 4;
|
almost_empty_thresh : integer := 4;
|
||||||
allow_full_writes : boolean := false;
|
allow_full_writes : boolean := false;
|
||||||
allow_empty_reads : boolean := false;
|
allow_empty_reads : boolean := false;
|
||||||
do_last_read_update : boolean := true
|
do_last_read_update : boolean := true
|
||||||
);
|
);
|
||||||
Port
|
Port
|
||||||
(
|
(
|
||||||
@@ -102,15 +102,15 @@ begin
|
|||||||
|
|
||||||
);
|
);
|
||||||
|
|
||||||
inst_dpram_1w1r: entity work.dpram_1w1r
|
inst_dpram_1w1r2c: entity work.dpram_1w1r2c_ro
|
||||||
GENERIC MAP
|
GENERIC MAP
|
||||||
(
|
(
|
||||||
addr_width => addr_width,
|
addr_width => addr_width,
|
||||||
data_width => data_width
|
data_width => data_width
|
||||||
)
|
)
|
||||||
PORT MAP(
|
PORT MAP(
|
||||||
clka => clk_w,
|
clk_a => clk_w,
|
||||||
clkb => clk_r,
|
clk_b => clk_r,
|
||||||
en_a => '1',
|
en_a => '1',
|
||||||
en_b => mem_rd_en,
|
en_b => mem_rd_en,
|
||||||
we_a => mem_wr_en,
|
we_a => mem_wr_en,
|
||||||
|
|||||||
+10
-10
@@ -31,13 +31,13 @@ use work.fifo_ctrl_pkg.all;
|
|||||||
entity fifo_sync is
|
entity fifo_sync is
|
||||||
Generic
|
Generic
|
||||||
(
|
(
|
||||||
addr_width : natural := 4;
|
addr_width : natural := 4;
|
||||||
data_width : natural := 8;
|
data_width : natural := 8;
|
||||||
almost_full_thresh : integer := 12;
|
almost_full_thresh : integer := 12;
|
||||||
almost_empty_thresh : integer := 4;
|
almost_empty_thresh : integer := 4;
|
||||||
allow_full_writes : boolean := false;
|
allow_full_writes : boolean := false;
|
||||||
allow_empty_reads : boolean := false;
|
allow_empty_reads : boolean := false;
|
||||||
do_last_read_update : boolean := true
|
do_last_read_update : boolean := true
|
||||||
|
|
||||||
);
|
);
|
||||||
Port
|
Port
|
||||||
@@ -101,15 +101,15 @@ inst_fifo_sync_ctrl: entity work.fifo_sync_ctrl
|
|||||||
|
|
||||||
);
|
);
|
||||||
|
|
||||||
inst_dpram_1w1r: entity work.dpram_1w1r
|
inst_dpram_1w1r2c: entity work.dpram_1w1r2c_ro
|
||||||
GENERIC MAP
|
GENERIC MAP
|
||||||
(
|
(
|
||||||
addr_width => addr_width,
|
addr_width => addr_width,
|
||||||
data_width => data_width
|
data_width => data_width
|
||||||
)
|
)
|
||||||
PORT MAP(
|
PORT MAP(
|
||||||
clka => clk,
|
clk_a => clk,
|
||||||
clkb => clk,
|
clk_b => clk,
|
||||||
en_a => '1',
|
en_a => '1',
|
||||||
en_b => mem_rd_en,
|
en_b => mem_rd_en,
|
||||||
we_a => mem_wr_en,
|
we_a => mem_wr_en,
|
||||||
|
|||||||
@@ -68,13 +68,13 @@ BEGIN
|
|||||||
uut: entity work.fifo_async
|
uut: entity work.fifo_async
|
||||||
GENERIC MAP
|
GENERIC MAP
|
||||||
(
|
(
|
||||||
addr_width => ADDR_WIDTH,
|
addr_width => ADDR_WIDTH,
|
||||||
data_width => DATA_WIDTH,
|
data_width => DATA_WIDTH,
|
||||||
almost_full_thresh => 6,
|
almost_full_thresh => 6,
|
||||||
almost_empty_thresh => 2,
|
almost_empty_thresh => 2,
|
||||||
allow_full_writes => false,
|
allow_full_writes => false,
|
||||||
allow_empty_reads => false,
|
allow_empty_reads => false,
|
||||||
do_last_read_update => false
|
do_last_read_update => false
|
||||||
)
|
)
|
||||||
PORT MAP
|
PORT MAP
|
||||||
(
|
(
|
||||||
|
|||||||
@@ -66,10 +66,11 @@ BEGIN
|
|||||||
uut: entity work.fifo_sync
|
uut: entity work.fifo_sync
|
||||||
GENERIC MAP
|
GENERIC MAP
|
||||||
(
|
(
|
||||||
data_width => DATA_WIDTH,
|
data_width => DATA_WIDTH,
|
||||||
addr_width => ADDR_WIDTH,
|
addr_width => ADDR_WIDTH,
|
||||||
almost_full_thresh => 6,
|
almost_full_thresh => 6,
|
||||||
almost_empty_thresh => 2
|
almost_empty_thresh => 2,
|
||||||
|
do_last_read_update => false
|
||||||
)
|
)
|
||||||
PORT MAP
|
PORT MAP
|
||||||
(
|
(
|
||||||
|
|||||||
Reference in New Issue
Block a user