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, common_pkg_lib, common_counter_lib, common_ram_lib;
|
library ieee, common_pkg_lib, astron_counter_lib, astron_ram_lib;
|
use IEEE.std_logic_1164.all;
|
use IEEE.std_logic_1164.all;
|
use IEEE.numeric_std.all;
|
use IEEE.numeric_std.all;
|
use common_pkg_lib.common_pkg.all;
|
use common_pkg_lib.common_pkg.all;
|
use common_ram_lib.common_ram_pkg.all;
|
use astron_ram_lib.common_ram_pkg.all;
|
|
|
entity rTwoOrder is
|
entity rTwoOrder is
|
generic (
|
generic (
|
g_nof_points : natural := 8;
|
g_nof_points : natural := 8;
|
g_bit_flip : boolean := true;
|
g_bit_flip : boolean := true;
|
Line 103... |
Line 103... |
wr_adr <= adr_tot_cnt; -- do not flip the addresses for easier debugging with tb_rTwoOrder
|
wr_adr <= adr_tot_cnt; -- do not flip the addresses for easier debugging with tb_rTwoOrder
|
end generate;
|
end generate;
|
|
|
rd_adr <= adr_tot_cnt;
|
rd_adr <= adr_tot_cnt;
|
|
|
u_adr_point_cnt : entity common_counter_lib.common_counter
|
u_adr_point_cnt : entity astron_counter_lib.common_counter
|
generic map(
|
generic map(
|
g_latency => 1,
|
g_latency => 1,
|
g_init => 0,
|
g_init => 0,
|
g_width => ceil_log2(g_nof_points)
|
g_width => ceil_log2(g_nof_points)
|
)
|
)
|
Line 124... |
Line 124... |
end generate;
|
end generate;
|
more_chan : if c_nof_channels>1 generate
|
more_chan : if c_nof_channels>1 generate
|
cnt_ena <= '1' when in_val = '1' and TO_UINT(adr_chan_cnt) = c_nof_channels-1 else '0';
|
cnt_ena <= '1' when in_val = '1' and TO_UINT(adr_chan_cnt) = c_nof_channels-1 else '0';
|
end generate;
|
end generate;
|
|
|
u_adr_chan_cnt : entity common_counter_lib.common_counter
|
u_adr_chan_cnt : entity astron_counter_lib.common_counter
|
generic map(
|
generic map(
|
g_latency => 1,
|
g_latency => 1,
|
g_init => 0,
|
g_init => 0,
|
g_width => g_nof_chan
|
g_width => g_nof_chan
|
)
|
)
|
Line 137... |
Line 137... |
clk => clk,
|
clk => clk,
|
cnt_en => in_val,
|
cnt_en => in_val,
|
count => adr_chan_cnt
|
count => adr_chan_cnt
|
);
|
);
|
|
|
u_buff : ENTITY common_ram_lib.common_paged_ram_r_w
|
u_buff : ENTITY astron_ram_lib.common_paged_ram_r_w
|
GENERIC MAP (
|
GENERIC MAP (
|
g_str => "use_adr",
|
g_str => "use_adr",
|
g_data_w => c_dat_w,
|
g_data_w => c_dat_w,
|
g_nof_pages => 2,
|
g_nof_pages => 2,
|
g_page_sz => c_page_size,
|
g_page_sz => c_page_size,
|