diff --git a/libraries/base/reorder/src/vhdl/reorder_sequencer.vhd b/libraries/base/reorder/src/vhdl/reorder_sequencer.vhd index 28a481a4e52213b62ff5b009a60cff97f99a82de..ebf9607be729b2e41c71133a983618436d05951c 100644 --- a/libraries/base/reorder/src/vhdl/reorder_sequencer.vhd +++ b/libraries/base/reorder/src/vhdl/reorder_sequencer.vhd @@ -58,51 +58,58 @@ -- rd_interval : POSITIVE := 2; -- gapsize : NATURAL := 0; -- nof_blocks : POSITIVE := 5; - --- WR RD --- -------- -------- --- |0 | |0,0 | rd_chunksize --- wr_chunksize | | -------- --- | | |2,1 | --- -------- -------- --- gapsize | | | | --- -------- -------- --- |1 | |1,1 | --- | | -------- --- | | |4,0 | --- -------- -------- --- | | | | +-- wr rd +-- chunk chunk +-- WR RD index index -- -------- -------- --- |2 | |0,1 | --- | | -------- --- | | |3,0 | --- -------- -------- --- | | | | --- -------- -------- --- |3 | |2,0 | --- | | -------- --- | | |4,1 | --- -------- -------- --- | | | | --- -------- -------- --- |4 | |1,0 | --- | | -------- --- | | |3,1 | +-- |0 | |0,0 | rd_chunksize 0 0 +-- wr_chunksize | | -------- +-- | | |2,1 | rd_chunksize 5 +-- -------- -------- +-- gapsize | | | | gapsize +-- -------- -------- +-- |1 | |1,1 | 1 3 +-- | | -------- +-- | | |4,0 | 8 +-- -------- -------- +-- | | | | +-- -------- -------- +-- |2 | |0,1 | 2 1 +-- | | -------- +-- | | |3,0 | 6 +-- -------- -------- +-- | | | | +-- -------- -------- +-- |3 | |2,0 | 3 4 +-- | | -------- +-- | | |4,1 | 9 +-- -------- -------- +-- | | | | +-- -------- -------- +-- |4 | |1,0 | 4 2 +-- | | -------- +-- | | |3,1 | 7 -- -------- -------- -- | | | | -- -------- -------- -- page 0 page 1 --- --- The index in the write page indicate the write period(0-4) --- The first index in the read page indicates the read period(0-4) --- The second index in the read page indicates the chunknumber(0-1) --- One can see the influence of rd_interval = 2in the fact there is a gap --- of 2 blocks in between two consecutive chunks that ar read. The first --- chunck (0,0) is read from the block 0. The second chunk (0,1) is read --- from block 2. The third chunk (1,0) is read from block 4. +-- +-- Alternately after every single write access of wr_chunksize to one page there are rd_nof_chunks read accesses of rd_chunksize to the other page. +-- A write block has size wr_chunksize + gapsize. +-- A page contains nof_blocks, so nof_blocks write accesses of wr_chunksize write a page and nof_blocks*rd_nof_chunks read accesses of rd_chunksize read a page. +-- When the last rd_chunksize is read the write acces pages and read access page swap. +-- The index in the write page indicate the write period(0-4) given by range nof_blocks +-- The first index in the read page indicates the read period(0-4) given by range nof_blocks +-- The second index in the read page indicates the chunknumber(0-1) given by range rd_nof_chunks within a block +-- Together the first and second index in the read page indicate the read order (0-9) of the chunks given by range nof_blocks*rd_nof_chunks. +-- One can see the influence of rd_interval = 2 in the fact that there is a gap of 2 blocks in between two consecutive chunks that are read. +-- The first chunck (0,0) = 0 is read from the block 0. The second chunk (0,1) = 1 is read from block 2. The third chunk (1,0) = 2 is read from block 4 and the last +-- chunk (4,1) = 9 is read from block 3. -- --- Remarks: If the g_data_w_ratio is used, be sure that the generics wr_chunksize, --- rd_chunksize, rd_nof_chunks and gapsize are divisible by g_data_w_ratio. +-- Remarks: 1) If the g_data_w_ratio is used, be sure that the generics wr_chunksize, +-- rd_chunksize, rd_nof_chunks and gapsize are divisible by g_data_w_ratio. +-- 2) wr_chunksize = rd_chunksize*rd_nof_chunks, so write one big chunk and read small chunks. +-- It is not supported to write small chunks and read one big chunk. LIBRARY IEEE, common_lib;