diff --git a/libraries/base/common/src/vhdl/common_blockreg.vhd b/libraries/base/common/src/vhdl/common_blockreg.vhd index 919b24a16bddfadaf04b28f2f52ab90fbe6eb2ec..234a418e83ee6c6f7f22b02c2a6363293030a502 100755 --- a/libraries/base/common/src/vhdl/common_blockreg.vhd +++ b/libraries/base/common/src/vhdl/common_blockreg.vhd @@ -19,11 +19,6 @@ -- ------------------------------------------------------------------------------- -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE work.common_pkg.ALL; - -- Purpose: -- . 'Shift register' that shifts on block boundary instead of single -- word boundary: If the register is full, it shifts out an entire @@ -41,8 +36,15 @@ USE work.common_pkg.ALL; -- . the '+1' is caused by 'nxt_' register latency; always there (not -- valid-dependent like the rest). +LIBRARY IEEE, technology_lib; +USE IEEE.std_logic_1164.ALL; +USE IEEE.numeric_std.ALL; +USE work.common_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; + ENTITY common_blockreg IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; g_block_size : NATURAL; g_dat_w : NATURAL ); @@ -83,6 +85,7 @@ BEGIN u_fifo : ENTITY work.common_fifo_sc GENERIC MAP ( + g_technology => g_technology, g_note_is_ful => FALSE, g_dat_w => g_dat_w, g_nof_words => g_block_size+1 diff --git a/libraries/base/common/src/vhdl/common_paged_ram_crw_crw.vhd b/libraries/base/common/src/vhdl/common_paged_ram_crw_crw.vhd index 7f6d6e5220d2c4e626363f409584e33ba9239f36..6139a1658239c7e5719af0f7956c9dddf9552f7e 100644 --- a/libraries/base/common/src/vhdl/common_paged_ram_crw_crw.vhd +++ b/libraries/base/common/src/vhdl/common_paged_ram_crw_crw.vhd @@ -19,13 +19,6 @@ -- ------------------------------------------------------------------------------- -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -LIBRARY common_lib; -USE work.common_pkg.ALL; -USE work.common_mem_pkg.ALL; - -- Purpose: Multi page memory -- Description: -- When next_page_* pulses then the next access will occur in the next page. @@ -41,8 +34,17 @@ USE work.common_mem_pkg.ALL; -- pages are then mapped at subsequent addresses in the buf RAM. -- . The "use_adr" variant is optimal for speed, so that is set as default. +LIBRARY IEEE, technology_lib; +USE IEEE.std_logic_1164.ALL; +USE IEEE.numeric_std.ALL; +LIBRARY common_lib; +USE work.common_pkg.ALL; +USE work.common_mem_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; + ENTITY common_paged_ram_crw_crw IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; g_str : STRING := "use_adr"; g_data_w : NATURAL; g_nof_pages : NATURAL := 2; -- >= 2 @@ -226,6 +228,7 @@ BEGIN gen_pages : FOR I IN 0 TO g_nof_pages-1 GENERATE u_ram : ENTITY work.common_ram_crw_crw GENERIC MAP ( + g_technology => g_technology, g_ram => c_page_ram, g_init_file => "UNUSED", g_true_dual_port => g_true_dual_port @@ -276,6 +279,7 @@ BEGIN gen_adr : IF g_str = "use_adr" GENERATE u_mem : ENTITY work.common_ram_crw_crw GENERIC MAP ( + g_technology => g_technology, g_ram => c_mem_ram, g_init_file => "UNUSED", g_true_dual_port => g_true_dual_port @@ -309,6 +313,7 @@ BEGIN gen_ofs : IF g_str = "use_ofs" GENERATE u_buf : ENTITY work.common_ram_crw_crw GENERIC MAP ( + g_technology => g_technology, g_ram => c_buf_ram, g_init_file => "UNUSED", g_true_dual_port => g_true_dual_port diff --git a/libraries/base/common/src/vhdl/common_paged_ram_r_w.vhd b/libraries/base/common/src/vhdl/common_paged_ram_r_w.vhd index aee99711d43094156c458aa5c895218609f0e37c..a5dcdec09df39f03d2b9602f5a659c914a17922f 100644 --- a/libraries/base/common/src/vhdl/common_paged_ram_r_w.vhd +++ b/libraries/base/common/src/vhdl/common_paged_ram_r_w.vhd @@ -19,20 +19,22 @@ -- ------------------------------------------------------------------------------- -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -LIBRARY common_lib; -USE work.common_pkg.ALL; - -- Purpose: Multi page memory -- Description: -- When next_page_* pulses then the next access will occur in the next page. -- Remarks: -- . See common_paged_ram_crw_crw for details. +LIBRARY IEEE, technology_lib; +USE IEEE.std_logic_1164.ALL; +USE IEEE.numeric_std.ALL; +LIBRARY common_lib; +USE work.common_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; + ENTITY common_paged_ram_r_w IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; g_str : STRING := "use_adr"; g_data_w : NATURAL; g_nof_pages : NATURAL := 2; -- >= 2 @@ -64,6 +66,7 @@ BEGIN u_rw_rw : ENTITY work.common_paged_ram_rw_rw GENERIC MAP ( + g_technology => g_technology, g_str => g_str, g_data_w => g_data_w, g_nof_pages => g_nof_pages, diff --git a/libraries/base/common/src/vhdl/common_paged_ram_rw_rw.vhd b/libraries/base/common/src/vhdl/common_paged_ram_rw_rw.vhd index f9dc9b233c303822d5e61b5783668cbd0e1ebbaf..d7a41264d826ac419a3a86e3531f37f1c6198037 100644 --- a/libraries/base/common/src/vhdl/common_paged_ram_rw_rw.vhd +++ b/libraries/base/common/src/vhdl/common_paged_ram_rw_rw.vhd @@ -19,20 +19,22 @@ -- ------------------------------------------------------------------------------- -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -LIBRARY common_lib; -USE work.common_pkg.ALL; - -- Purpose: Multi page memory -- Description: -- When next_page_* pulses then the next access will occur in the next page. -- Remarks: -- . See common_paged_ram_crw_crw for details. +LIBRARY IEEE, technology_lib; +USE IEEE.std_logic_1164.ALL; +USE IEEE.numeric_std.ALL; +LIBRARY common_lib; +USE work.common_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; + ENTITY common_paged_ram_rw_rw IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; g_str : STRING := "use_adr"; g_data_w : NATURAL; g_nof_pages : NATURAL := 2; -- >= 2 @@ -70,6 +72,7 @@ BEGIN u_crw_crw : ENTITY work.common_paged_ram_crw_crw GENERIC MAP ( + g_technology => g_technology, g_str => g_str, g_data_w => g_data_w, g_nof_pages => g_nof_pages, diff --git a/libraries/base/common/src/vhdl/common_paged_ram_w_rr.vhd b/libraries/base/common/src/vhdl/common_paged_ram_w_rr.vhd index fb27ac5e45044fd7a70a763bbc192c2e02821ee7..15c12503228d82860bed366e7c4778423304b11e 100644 --- a/libraries/base/common/src/vhdl/common_paged_ram_w_rr.vhd +++ b/libraries/base/common/src/vhdl/common_paged_ram_w_rr.vhd @@ -19,18 +19,20 @@ -- ------------------------------------------------------------------------------- -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE work.common_pkg.ALL; - -- Purpose: Dual page memory with single wr in one page and dual rd in other page -- Description: -- When next_page pulses then the next access will occur in the other page. -- Remarks: -- Each page uses one or more RAM blocks. +LIBRARY IEEE, technology_lib; +USE IEEE.std_logic_1164.ALL; +USE work.common_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; + ENTITY common_paged_ram_w_rr IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; g_pipeline_in : NATURAL := 0; -- >= 0 g_pipeline_out : NATURAL := 0; -- >= 0 g_data_w : NATURAL; @@ -67,6 +69,7 @@ BEGIN u_ww_rr : ENTITY work.common_paged_ram_ww_rr GENERIC MAP ( + g_technology => g_technology, g_pipeline_in => g_pipeline_in, g_pipeline_out => g_pipeline_out, g_data_w => g_data_w, diff --git a/libraries/base/common/src/vhdl/common_paged_ram_ww_rr.vhd b/libraries/base/common/src/vhdl/common_paged_ram_ww_rr.vhd index 85bcaf4810ea07af117added7f2f1bd8964fe990..3256afa9d1f98a3500be0fa4e573f7870cb8e19b 100644 --- a/libraries/base/common/src/vhdl/common_paged_ram_ww_rr.vhd +++ b/libraries/base/common/src/vhdl/common_paged_ram_ww_rr.vhd @@ -19,20 +19,22 @@ -- ------------------------------------------------------------------------------- -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE work.common_pkg.ALL; -USE work.common_mem_pkg.ALL; -USE work.common_components_pkg.ALL; - -- Purpose: Dual page memory with dual wr in one page and dual rd in other page -- Description: -- When next_page pulses then the next access will occur in the other page. -- Remarks: -- Each page uses one or more RAM blocks. +LIBRARY IEEE, technology_lib; +USE IEEE.std_logic_1164.ALL; +USE work.common_pkg.ALL; +USE work.common_mem_pkg.ALL; +USE work.common_components_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; + ENTITY common_paged_ram_ww_rr IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; g_pipeline_in : NATURAL := 0; -- >= 0 g_pipeline_out : NATURAL := 0; -- >= 0 g_data_w : NATURAL; @@ -180,6 +182,7 @@ BEGIN u_page : ENTITY work.common_ram_rw_rw GENERIC MAP ( + g_technology => g_technology, g_ram => c_page_ram, g_init_file => "UNUSED" ) diff --git a/libraries/base/common/src/vhdl/common_shiftram.vhd b/libraries/base/common/src/vhdl/common_shiftram.vhd index 7b01723b7bb09794e780214e543291cd696e7337..fba9bf09c8b051861012dc14f923424e6f074e10 100644 --- a/libraries/base/common/src/vhdl/common_shiftram.vhd +++ b/libraries/base/common/src/vhdl/common_shiftram.vhd @@ -49,16 +49,18 @@ -- R = RAM I/O -- r0..r2 = register stages. -LIBRARY IEEE,common_lib; +LIBRARY IEEE, common_lib, technology_lib; USE IEEE.std_logic_1164.ALL; USE IEEE.numeric_std.ALL; USE common_lib.common_pkg.ALL; USE common_lib.common_mem_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; ENTITY common_shiftram IS GENERIC ( - g_data_w : NATURAL; - g_nof_words : NATURAL; -- Depth of RAM. Must be a power of two. + g_technology : NATURAL := c_tech_select_default; + g_data_w : NATURAL; + g_nof_words : NATURAL; -- Depth of RAM. Must be a power of two. g_output_invalid_during_shift_incr : BOOLEAN := FALSE; g_fixed_shift : BOOLEAN := FALSE -- If data_in_shift is constant, set to TRUE ); -- for better timing results @@ -261,6 +263,7 @@ BEGIN ----------------------------------------------------------------------------- u_common_ram_r_w: ENTITY common_lib.common_ram_r_w GENERIC MAP ( + g_technology => g_technology, g_ram => c_ram, g_init_file => "UNUSED", g_true_dual_port => FALSE diff --git a/libraries/base/dp/src/vhdl/dp_distribute.vhd b/libraries/base/dp/src/vhdl/dp_distribute.vhd index 079fa0faf6ef93351b8706a727fcad8f90763adc..f703d0954be58b83cce5bbd430b1c72e9c2105b6 100644 --- a/libraries/base/dp/src/vhdl/dp_distribute.vhd +++ b/libraries/base/dp/src/vhdl/dp_distribute.vhd @@ -19,13 +19,6 @@ -- -------------------------------------------------------------------------------- -LIBRARY IEEE,common_lib; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE common_lib.common_pkg.ALL; -USE work.dp_stream_pkg.ALL; - - -- Purpose: Distribute the frames from n input streams on to m output streams. -- Description: -- * First the n input streams are demultiplexed in n*m internal streams and @@ -82,8 +75,16 @@ USE work.dp_stream_pkg.ALL; -- . Thanks to the non-blocking dp_mux the distribution continuous when a frame -- gets lost or an input is not used. +LIBRARY IEEE,common_lib, technology_lib; +USE IEEE.std_logic_1164.ALL; +USE IEEE.numeric_std.ALL; +USE common_lib.common_pkg.ALL; +USE work.dp_stream_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; + ENTITY dp_distribute IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; -- Distribution IO g_tx : BOOLEAN; g_nof_input : NATURAL := 4; -- >= 1 @@ -161,6 +162,7 @@ BEGIN gen_input : FOR I IN 0 TO g_nof_input-1 GENERATE u_fifo : ENTITY work.dp_fifo_fill GENERIC MAP ( + g_technology => g_technology, g_bsn_w => g_bsn_w, g_data_w => g_data_w, g_empty_w => g_empty_w, diff --git a/libraries/base/dp/src/vhdl/dp_fifo_core.vhd b/libraries/base/dp/src/vhdl/dp_fifo_core.vhd index 308bf9f63497cf562832295d857d7d725783e638..aaebaa7fe6a593c2d0996c88107b749e66df703b 100644 --- a/libraries/base/dp/src/vhdl/dp_fifo_core.vhd +++ b/libraries/base/dp/src/vhdl/dp_fifo_core.vhd @@ -19,12 +19,6 @@ -- ------------------------------------------------------------------------------- -LIBRARY IEEE, common_lib; -USE IEEE.STD_LOGIC_1164.ALL; -USE IEEE.numeric_std.ALL; -USE common_lib.common_pkg.ALL; -USE work.dp_stream_pkg.ALL; - -- Purpose: -- Provide input ready control and use output ready control to the FIFO. -- Pass sop and eop along with the data through the FIFO if g_use_ctrl=TRUE. @@ -45,8 +39,16 @@ USE work.dp_stream_pkg.ALL; -- combinatorially connected, so this can ease the timing closure for the -- ready signal. +LIBRARY IEEE, common_lib, technology_lib; +USE IEEE.STD_LOGIC_1164.ALL; +USE IEEE.numeric_std.ALL; +USE common_lib.common_pkg.ALL; +USE work.dp_stream_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; + ENTITY dp_fifo_core IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; 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) g_data_w : NATURAL := 16; -- Should be 2 times the c_complex_w if g_use_complex = TRUE @@ -168,6 +170,7 @@ BEGIN gen_common_fifo_sc : IF g_use_dual_clock=FALSE GENERATE u_common_fifo_sc : ENTITY common_lib.common_fifo_sc GENERIC MAP ( + g_technology => g_technology, g_use_lut => g_use_lut_sc, g_dat_w => c_fifo_dat_w, g_nof_words => g_fifo_size @@ -191,6 +194,7 @@ BEGIN gen_common_fifo_dc : IF g_use_dual_clock=TRUE GENERATE u_common_fifo_dc : ENTITY common_lib.common_fifo_dc GENERIC MAP ( + g_technology => g_technology, g_dat_w => c_fifo_dat_w, g_nof_words => g_fifo_size ) diff --git a/libraries/base/dp/src/vhdl/dp_fifo_dc.vhd b/libraries/base/dp/src/vhdl/dp_fifo_dc.vhd index 83ca7d820a0995fb2566b6d8fa10d3419953585a..c421daa4c7752c4da19427d7dc638c3a35b23422 100644 --- a/libraries/base/dp/src/vhdl/dp_fifo_dc.vhd +++ b/libraries/base/dp/src/vhdl/dp_fifo_dc.vhd @@ -22,14 +22,16 @@ -- Purpose: DP FIFO for dual clock (= dc) domain wr and rd. -- Description: See dp_fifo_core.vhd. -LIBRARY IEEE,common_lib; +LIBRARY IEEE,common_lib, technology_lib; USE IEEE.std_logic_1164.ALL; USE IEEE.numeric_std.ALL; USE common_lib.common_pkg.ALL; USE work.dp_stream_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; ENTITY dp_fifo_dc IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; 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; @@ -71,6 +73,7 @@ BEGIN u_dp_fifo_core : ENTITY work.dp_fifo_core GENERIC MAP ( + g_technology => g_technology, g_use_dual_clock => TRUE, g_data_w => g_data_w, g_bsn_w => g_bsn_w, diff --git a/libraries/base/dp/src/vhdl/dp_fifo_dc_mixed_widths.vhd b/libraries/base/dp/src/vhdl/dp_fifo_dc_mixed_widths.vhd index 5e39f97f71b5c76c29015975f8c73aff1a2a3396..5b809003534f71183cafea90a0795368cd517104 100644 --- a/libraries/base/dp/src/vhdl/dp_fifo_dc_mixed_widths.vhd +++ b/libraries/base/dp/src/vhdl/dp_fifo_dc_mixed_widths.vhd @@ -18,13 +18,7 @@ -- along with this program. If not, see <http://www.gnu.org/licenses/>. -- ------------------------------------------------------------------------------- - -LIBRARY IEEE, common_lib; -USE IEEE.STD_LOGIC_1164.ALL; -USE IEEE.numeric_std.ALL; -USE common_lib.common_pkg.ALL; -USE work.dp_stream_pkg.ALL; - +-- -- Purpose: -- Provide input ready control and use output ready control to the mixed -- width FIFO. @@ -106,8 +100,16 @@ USE work.dp_stream_pkg.ALL; -- 4 Simulate with multi tb-tb test bench for regression tests -- . add this multi tb-tb test bench to tb_tb_tb_dp_backpressure.vhd +LIBRARY IEEE, common_lib, technology_lib; +USE IEEE.STD_LOGIC_1164.ALL; +USE IEEE.numeric_std.ALL; +USE common_lib.common_pkg.ALL; +USE work.dp_stream_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; + ENTITY dp_fifo_dc_mixed_widths IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; g_wr_data_w : NATURAL := 18; g_rd_data_w : NATURAL := 9; g_use_ctrl : BOOLEAN := TRUE; @@ -198,6 +200,7 @@ BEGIN gen_equal : IF c_nof_narrow = 1 GENERATE -- fall back to equal width FIFO u_dp_fifo_dc : ENTITY work.dp_fifo_dc GENERIC MAP ( + g_technology => g_technology, g_data_w => g_wr_data_w, g_empty_w => 1, g_channel_w => 1, @@ -263,6 +266,7 @@ BEGIN u_fifo_mw : ENTITY common_lib.common_fifo_dc_mixed_widths GENERIC MAP ( + g_technology => g_technology, g_nof_words => g_wr_fifo_size, -- FIFO size in nof wr_dat words g_wr_dat_w => c_fifo_wr_dat_w, g_rd_dat_w => c_fifo_rd_dat_w diff --git a/libraries/base/dp/src/vhdl/dp_fifo_fill.vhd b/libraries/base/dp/src/vhdl/dp_fifo_fill.vhd index 0df58b0a4741d2472ae9e07c4f6a10e5e7b4178e..d69e8d3e97834191cfa1721e565feb4fdbbf2355 100644 --- a/libraries/base/dp/src/vhdl/dp_fifo_fill.vhd +++ b/libraries/base/dp/src/vhdl/dp_fifo_fill.vhd @@ -21,13 +21,6 @@ -- Reuse from LOFAR rad_frame_scheduler.vhd and rad_frame_scheduler(rtl).vhd -LIBRARY IEEE,common_lib; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE common_lib.common_pkg.ALL; -USE work.dp_stream_pkg.ALL; - - -- Purpose: -- The FIFO starts outputting data when the output is ready and it has been -- filled with more than g_fifo_fill words. Given a fixed frame length, this @@ -62,8 +55,16 @@ USE work.dp_stream_pkg.ALL; -- invalid cycle at the output which means you cannot feed 100% valid data -- to this FIFO; a minimum of one dead cycle inbetween packets is required. +LIBRARY IEEE, common_lib, technology_lib; +USE IEEE.std_logic_1164.ALL; +USE IEEE.numeric_std.ALL; +USE common_lib.common_pkg.ALL; +USE work.dp_stream_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; + ENTITY dp_fifo_fill IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; g_data_w : NATURAL := 16; g_bsn_w : NATURAL := 1; g_empty_w : NATURAL := 1; @@ -135,6 +136,7 @@ BEGIN dp_fifo_sc : ENTITY work.dp_fifo_sc GENERIC MAP ( + g_technology => g_technology, g_data_w => g_data_w, g_bsn_w => g_bsn_w, g_empty_w => g_empty_w, diff --git a/libraries/base/dp/src/vhdl/dp_fifo_fill_core.vhd b/libraries/base/dp/src/vhdl/dp_fifo_fill_core.vhd index d1454b79e9097a8309686e1667e53f4c50ecebe8..1026b7c03b8c3813a8dd7d7cfec7636f0e3e81f0 100644 --- a/libraries/base/dp/src/vhdl/dp_fifo_fill_core.vhd +++ b/libraries/base/dp/src/vhdl/dp_fifo_fill_core.vhd @@ -51,14 +51,16 @@ -- src_in.ready is often more clear to comprehend then using next_src_out -- directly. -LIBRARY IEEE,common_lib; +LIBRARY IEEE, common_lib, technology_lib; USE IEEE.std_logic_1164.ALL; USE IEEE.numeric_std.ALL; USE common_lib.common_pkg.ALL; USE work.dp_stream_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; ENTITY dp_fifo_fill_core IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; g_use_dual_clock : BOOLEAN := FALSE; g_data_w : NATURAL := 16; g_bsn_w : NATURAL := 1; @@ -141,6 +143,7 @@ BEGIN gen_dp_fifo_sc : IF g_use_dual_clock=FALSE GENERATE u_dp_fifo_sc : ENTITY work.dp_fifo_sc GENERIC MAP ( + g_technology => g_technology, g_data_w => g_data_w, g_bsn_w => g_bsn_w, g_empty_w => g_empty_w, @@ -178,6 +181,7 @@ BEGIN gen_dp_fifo_dc : IF g_use_dual_clock=TRUE GENERATE u_dp_fifo_dc : ENTITY work.dp_fifo_dc GENERIC MAP ( + g_technology => g_technology, g_data_w => g_data_w, g_bsn_w => g_bsn_w, g_empty_w => g_empty_w, diff --git a/libraries/base/dp/src/vhdl/dp_fifo_fill_dc.vhd b/libraries/base/dp/src/vhdl/dp_fifo_fill_dc.vhd index b16f3ba2f095e5395ae96964d8a470d1c8dc9629..95e5e8568a5f67323f91fcbfd333ab1f1c274951 100644 --- a/libraries/base/dp/src/vhdl/dp_fifo_fill_dc.vhd +++ b/libraries/base/dp/src/vhdl/dp_fifo_fill_dc.vhd @@ -23,14 +23,16 @@ -- been filled with more than g_fifo_fill words. -- Description: See dp_fifo_fill_core.vhd. -LIBRARY IEEE,common_lib; +LIBRARY IEEE, common_lib, technology_lib; USE IEEE.std_logic_1164.ALL; USE IEEE.numeric_std.ALL; USE common_lib.common_pkg.ALL; USE work.dp_stream_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; ENTITY dp_fifo_fill_dc IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; g_data_w : NATURAL := 16; g_bsn_w : NATURAL := 1; g_empty_w : NATURAL := 1; @@ -72,6 +74,7 @@ BEGIN u_dp_fifo_fill_core : ENTITY work.dp_fifo_fill_core GENERIC MAP ( + g_technology => g_technology, g_use_dual_clock => TRUE, g_data_w => g_data_w, g_bsn_w => g_bsn_w, diff --git a/libraries/base/dp/src/vhdl/dp_fifo_fill_sc.vhd b/libraries/base/dp/src/vhdl/dp_fifo_fill_sc.vhd index 8ea990468d981fe5be110a54e0d599f8192b90fb..dc6fb88f5ad6d251ff88c8e09f9c1113bc5d8fd6 100644 --- a/libraries/base/dp/src/vhdl/dp_fifo_fill_sc.vhd +++ b/libraries/base/dp/src/vhdl/dp_fifo_fill_sc.vhd @@ -23,14 +23,16 @@ -- been filled with more than g_fifo_fill words. -- Description: See dp_fifo_fill_core.vhd. -LIBRARY IEEE,common_lib; +LIBRARY IEEE, common_lib, technology_lib; USE IEEE.std_logic_1164.ALL; USE IEEE.numeric_std.ALL; USE common_lib.common_pkg.ALL; USE work.dp_stream_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; ENTITY dp_fifo_fill_sc IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; g_data_w : NATURAL := 16; g_bsn_w : NATURAL := 1; g_empty_w : NATURAL := 1; @@ -71,6 +73,7 @@ BEGIN u_dp_fifo_fill_core : ENTITY work.dp_fifo_fill_core GENERIC MAP ( + g_technology => g_technology, g_use_dual_clock => FALSE, g_data_w => g_data_w, g_bsn_w => g_bsn_w, diff --git a/libraries/base/dp/src/vhdl/dp_fifo_info.vhd b/libraries/base/dp/src/vhdl/dp_fifo_info.vhd index e7fc9935b377848e8efb78927bb61d5ce86a4330..45d3c99b5bd1153636d19ee837c1dd21c259c0ab 100644 --- a/libraries/base/dp/src/vhdl/dp_fifo_info.vhd +++ b/libraries/base/dp/src/vhdl/dp_fifo_info.vhd @@ -19,12 +19,6 @@ -- ------------------------------------------------------------------------------- -LIBRARY IEEE, common_lib; -USE IEEE.STD_LOGIC_1164.ALL; -USE IEEE.numeric_std.ALL; -USE common_lib.common_pkg.ALL; -USE work.dp_stream_pkg.ALL; - -- Purpose: -- Realign the snk_in info with the snk_in data that got delayed -- Description: @@ -58,8 +52,16 @@ USE work.dp_stream_pkg.ALL; -- . The dp_fifo_info preserves the RL=1 but is does delay the data by one -- cycle. +LIBRARY IEEE, common_lib, technology_lib; +USE IEEE.STD_LOGIC_1164.ALL; +USE IEEE.numeric_std.ALL; +USE common_lib.common_pkg.ALL; +USE work.dp_stream_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; + ENTITY dp_fifo_info IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; g_use_sync : BOOLEAN := FALSE; g_use_bsn : BOOLEAN := FALSE; g_use_channel : BOOLEAN := FALSE; @@ -166,6 +168,7 @@ BEGIN u_common_fifo_sc : ENTITY common_lib.common_fifo_sc GENERIC MAP ( + g_technology => g_technology, g_note_is_ful => FALSE, -- when TRUE report NOTE when FIFO goes full, fifo overflow is always reported as FAILURE g_use_lut => TRUE, -- when TRUE then force using LUTs via Altera eab="OFF", g_dat_w => c_fifo_sop_dat_w, @@ -203,6 +206,7 @@ BEGIN u_common_fifo_sc : ENTITY common_lib.common_fifo_sc GENERIC MAP ( + g_technology => g_technology, g_note_is_ful => FALSE, -- when TRUE report NOTE when FIFO goes full, fifo overflow is always reported as FAILURE g_use_lut => TRUE, -- when TRUE then force using LUTs via Altera eab="OFF", g_dat_w => c_fifo_eop_dat_w, diff --git a/libraries/base/dp/src/vhdl/dp_fifo_sc.vhd b/libraries/base/dp/src/vhdl/dp_fifo_sc.vhd index 6568ed5a7cd1ab5c1d96ab1c8dff92246fdb66f6..caf411938dc7f4ff860cdf4509983e057dde1f60 100644 --- a/libraries/base/dp/src/vhdl/dp_fifo_sc.vhd +++ b/libraries/base/dp/src/vhdl/dp_fifo_sc.vhd @@ -22,14 +22,16 @@ -- Purpose: DP FIFO for single clock (= sc) domain wr and rd. -- Description: See dp_fifo_core.vhd. -LIBRARY IEEE,common_lib; +LIBRARY IEEE,common_lib, technology_lib; USE IEEE.std_logic_1164.ALL; USE IEEE.numeric_std.ALL; USE common_lib.common_pkg.ALL; USE work.dp_stream_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; ENTITY dp_fifo_sc IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; 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 g_bsn_w : NATURAL := 1; @@ -69,6 +71,7 @@ BEGIN u_dp_fifo_core : ENTITY work.dp_fifo_core GENERIC MAP ( + g_technology => g_technology, g_use_dual_clock => FALSE, g_use_lut_sc => g_use_lut, g_data_w => g_data_w, diff --git a/libraries/base/dp/src/vhdl/dp_frame_scheduler.vhd b/libraries/base/dp/src/vhdl/dp_frame_scheduler.vhd index 354a76e40a0d4ada08d15a4bc1af83412ea01637..11b2ef47f679429591579e31cc374d10c0c97902 100644 --- a/libraries/base/dp/src/vhdl/dp_frame_scheduler.vhd +++ b/libraries/base/dp/src/vhdl/dp_frame_scheduler.vhd @@ -21,13 +21,6 @@ -- Reuse from LOFAR rad_frame_scheduler.vhd and rad_frame_scheduler(rtl).vhd -LIBRARY IEEE,common_lib; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE common_lib.common_pkg.ALL; -USE work.dp_stream_pkg.ALL; - - -- Purpose: -- Schedule one or more input frames streams into one output stream. -- Description: @@ -47,8 +40,16 @@ USE work.dp_stream_pkg.ALL; -- dp_xonoff ensures that in_dis is applied during entire frames and before -- they are written into the input FIFO. +LIBRARY IEEE,common_lib, technology_lib; +USE IEEE.std_logic_1164.ALL; +USE IEEE.numeric_std.ALL; +USE common_lib.common_pkg.ALL; +USE work.dp_stream_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; + ENTITY dp_frame_scheduler IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; g_dat_w : NATURAL := 16; g_nof_input : NATURAL := 2; -- >= 1 g_fifo_rl : NATURAL := 1; -- for all input use 0 for look ahead FIFO, 1 for normal FIFO @@ -181,6 +182,7 @@ BEGIN u_fill : ENTITY work.dp_fifo_fill GENERIC MAP ( + g_technology => g_technology, g_data_w => g_dat_w, g_empty_w => 1, g_channel_w => 1, diff --git a/libraries/base/dp/src/vhdl/dp_mux.vhd b/libraries/base/dp/src/vhdl/dp_mux.vhd index 2f397cfb8df2b0f39f9ed86d21f5236cf3bc3c27..34ece06dc5e32c997adabd9309ada910a10e4d1b 100644 --- a/libraries/base/dp/src/vhdl/dp_mux.vhd +++ b/libraries/base/dp/src/vhdl/dp_mux.vhd @@ -19,13 +19,6 @@ -- -------------------------------------------------------------------------------- -LIBRARY IEEE,common_lib; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE common_lib.common_pkg.ALL; -USE work.dp_stream_pkg.ALL; - - -- Purpose: -- Multiplex frames from one or more input streams into one output stream. -- Description: @@ -85,8 +78,16 @@ USE work.dp_stream_pkg.ALL; -- . For multiplexing time series frames or sample it can be applicable to -- use g_append_channel_lo=FALSE in combination with g_mode=2. +LIBRARY IEEE,common_lib, technology_lib; +USE IEEE.std_logic_1164.ALL; +USE IEEE.numeric_std.ALL; +USE common_lib.common_pkg.ALL; +USE work.dp_stream_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; + ENTITY dp_mux IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; -- MUX g_mode : NATURAL := 0; g_nof_input : NATURAL := 2; -- >= 1 @@ -214,6 +215,7 @@ BEGIN gen_fifo : IF g_use_fifo=TRUE GENERATE u_fill : ENTITY work.dp_fifo_fill GENERIC MAP ( + g_technology => g_technology, g_bsn_w => g_bsn_w, g_data_w => g_data_w, g_empty_w => g_empty_w, diff --git a/libraries/base/dp/src/vhdl/dp_offload_tx.vhd b/libraries/base/dp/src/vhdl/dp_offload_tx.vhd index 29aec4185391e3710a620573c685fda000ec2972..c30227eaec51b811e21d4a33e2b8ae973828178a 100644 --- a/libraries/base/dp/src/vhdl/dp_offload_tx.vhd +++ b/libraries/base/dp/src/vhdl/dp_offload_tx.vhd @@ -35,16 +35,18 @@ -- overflow upstream. dp_plit should not do that, or better, something simpler such as dp_tail_remove -- should be used instead. -LIBRARY IEEE, common_lib, work, mm_lib; +LIBRARY IEEE, common_lib, technology_lib, mm_lib; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.NUMERIC_STD.ALL; USE common_lib.common_pkg.ALL; USE common_lib.common_mem_pkg.ALL; USE work.dp_stream_pkg.ALL; USE common_lib.common_field_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; ENTITY dp_offload_tx IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; g_nof_streams : NATURAL; g_data_w : NATURAL; g_use_complex : BOOLEAN; -- TRUE uses re(0..g_data_w/2 -1) & im(0..g_data_w/2-1) as input instead of data(0..g_data_w-1). @@ -254,6 +256,7 @@ BEGIN gen_dp_fifo_fill : FOR i IN 0 TO sel_a_b(g_use_post_split_fifo, g_nof_streams, 0)-1 GENERATE u_dp_fifo_fill : ENTITY work.dp_fifo_fill GENERIC MAP ( + g_technology => g_technology, g_data_w => g_data_w, g_fifo_fill => c_dp_fifo_fill, g_fifo_size => c_dp_fifo_size diff --git a/libraries/base/dp/src/vhdl/dp_ram_from_mm.vhd b/libraries/base/dp/src/vhdl/dp_ram_from_mm.vhd index 28525d8e9fc4a5b362b189f3e82bc896cae1a1f4..9430dc0903a54a10ddd8205cb264e0776e0d6c49 100644 --- a/libraries/base/dp/src/vhdl/dp_ram_from_mm.vhd +++ b/libraries/base/dp/src/vhdl/dp_ram_from_mm.vhd @@ -19,15 +19,17 @@ -- -------------------------------------------------------------------------------- -LIBRARY IEEE, common_lib; +LIBRARY IEEE, common_lib, technology_lib; USE IEEE.std_logic_1164.ALL; USE IEEE.numeric_std.ALL; USE common_lib.common_pkg.ALL; USE common_lib.common_mem_pkg.ALL; USE work.dp_stream_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; ENTITY dp_ram_from_mm IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; g_ram_wr_nof_words : NATURAL; g_ram_rd_dat_w : NATURAL; g_init_file : STRING := "UNUSED" @@ -154,6 +156,7 @@ BEGIN u_ram : ENTITY common_lib.common_ram_cr_cw_ratio GENERIC MAP ( + g_technology => g_technology, g_ram_wr => c_mm_ram_wr, g_ram_rd => c_mm_ram_rd, g_init_file => g_init_file diff --git a/libraries/base/dp/src/vhdl/dp_ram_to_mm.vhd b/libraries/base/dp/src/vhdl/dp_ram_to_mm.vhd index 04b4176472b154166272de2f254654c954d03ad9..a6aa70d926a2e221119ac2fae2af3aacda4c754b 100644 --- a/libraries/base/dp/src/vhdl/dp_ram_to_mm.vhd +++ b/libraries/base/dp/src/vhdl/dp_ram_to_mm.vhd @@ -19,15 +19,17 @@ -- -------------------------------------------------------------------------------- -LIBRARY IEEE, common_lib; +LIBRARY IEEE, common_lib, technology_lib; USE IEEE.std_logic_1164.ALL; USE IEEE.numeric_std.ALL; USE common_lib.common_pkg.ALL; USE common_lib.common_mem_pkg.ALL; USE work.dp_stream_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; ENTITY dp_ram_to_mm IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; g_ram_rd_nof_words : NATURAL; g_ram_wr_dat_w : NATURAL ); @@ -132,6 +134,7 @@ BEGIN u_ram : ENTITY common_lib.common_ram_cr_cw_ratio GENERIC MAP ( + g_technology => g_technology, g_ram_wr => c_mm_ram_wr, g_ram_rd => c_mm_ram_rd, g_init_file => "UNUSED" diff --git a/libraries/base/dp/src/vhdl/dp_shiftram.vhd b/libraries/base/dp/src/vhdl/dp_shiftram.vhd index 1e88fabcfd02bc1369111e39390d031f9887cb09..a7119e6d3d66e7b9f1158ad84651b4e849cb5def 100644 --- a/libraries/base/dp/src/vhdl/dp_shiftram.vhd +++ b/libraries/base/dp/src/vhdl/dp_shiftram.vhd @@ -22,16 +22,18 @@ -- Purpose: -- Description: -LIBRARY IEEE,common_lib, mm_lib; +LIBRARY IEEE, common_lib, technology_lib, mm_lib; USE IEEE.std_logic_1164.ALL; USE IEEE.numeric_std.ALL; USE common_lib.common_pkg.ALL; USE common_lib.common_mem_pkg.ALL; USE common_lib.common_field_pkg.ALL; USE work.dp_stream_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; ENTITY dp_shiftram IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; g_nof_streams : NATURAL; g_nof_words : NATURAL; g_data_w : NATURAL @@ -76,6 +78,7 @@ BEGIN gen_common_shiftram : FOR i IN 0 TO g_nof_streams-1 GENERATE u_common_shiftram : ENTITY common_lib.common_shiftram GENERIC MAP ( + g_technology => g_technology, g_data_w => g_data_w, g_nof_words => g_nof_words )