diff --git a/libraries/base/diag/src/vhdl/diag_data_buffer.vhd b/libraries/base/diag/src/vhdl/diag_data_buffer.vhd index 90c80916629dd01d7b4a814b90959a24f8c91cc5..6b98600c5b131133b8ba48d5c4d14728417d74fb 100644 --- a/libraries/base/diag/src/vhdl/diag_data_buffer.vhd +++ b/libraries/base/diag/src/vhdl/diag_data_buffer.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 common_lib.common_mem_pkg.ALL; -USE work.diag_pkg.ALL; - -- Purpose : Capture a block of streaming data for analysis via MM access -- Description : -- The first g_nof_data valid streaming data input words are stored in the @@ -50,8 +43,17 @@ USE work.diag_pkg.ALL; -- power of 2 multiple of 32b the user can enforce using splitting the data -- a c_word_w parts. +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.diag_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; + ENTITY diag_data_buffer IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; g_data_w : NATURAL := 32; g_nof_data : NATURAL := 1024; g_use_in_sync : BOOLEAN := FALSE -- when TRUE start filling the buffer at the in_sync, else after the last word was read @@ -191,6 +193,7 @@ BEGIN u_buf : ENTITY common_lib.common_ram_crw_crw_ratio GENERIC MAP ( + g_technology => g_technology, g_ram_a => c_buf_mm, g_ram_b => c_buf_st, g_init_file => "UNUSED" diff --git a/libraries/base/diag/src/vhdl/diag_wg.vhd b/libraries/base/diag/src/vhdl/diag_wg.vhd index 49969fea16d501b8e66e1f00c2eae6e9ce988461..30cc28f31758c79c33ad3bcbaa973bb036ed90cf 100644 --- a/libraries/base/diag/src/vhdl/diag_wg.vhd +++ b/libraries/base/diag/src/vhdl/diag_wg.vhd @@ -21,14 +21,16 @@ -- Based on diag_waveproc from LOFAR -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.diag_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; ENTITY diag_wg IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; g_buf_dat_w : NATURAL := 18; -- Use >= g_calc_dat_w and typically <= DSP multiply 18x18 element g_buf_addr_w : NATURAL := 11; -- Waveform buffer size 2**g_buf_addr_w nof samples -- . in calc mode fill the entire buffer with one sinus wave, ctrl.phase and ctrl.freq will map on the entire range diff --git a/libraries/base/diag/src/vhdl/diag_wg_wideband.vhd b/libraries/base/diag/src/vhdl/diag_wg_wideband.vhd index 61e77a2ab422547da4a294d6e58e709a98c6ea32..ed54b8918282257088d23ad95f2d4321cfb36bc8 100644 --- a/libraries/base/diag/src/vhdl/diag_wg_wideband.vhd +++ b/libraries/base/diag/src/vhdl/diag_wg_wideband.vhd @@ -24,15 +24,17 @@ -- Remarks: -- . For g_wideband_factor=1 this diag_wg_wideband defaults to diag_wg. -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.diag_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; ENTITY diag_wg_wideband IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; -- Use g_buf_dir to be able to have different path to waveform file for sim and for synth g_buf_dir : STRING := "../../../src/data/"; @@ -109,6 +111,7 @@ BEGIN -- Waveform buffer u_buf : ENTITY common_lib.common_ram_crw_crw GENERIC MAP ( + g_technology => g_technology, g_ram => c_buf, g_init_file => c_buf_file ) @@ -134,6 +137,7 @@ BEGIN -- Waveform generator u_wg : ENTITY work.diag_wg GENERIC MAP ( + g_technology => g_technology, g_buf_dat_w => g_buf_dat_w, g_buf_addr_w => g_buf_addr_w, g_rate_factor => g_wideband_factor, diff --git a/libraries/base/diag/src/vhdl/mms_diag_block_gen.vhd b/libraries/base/diag/src/vhdl/mms_diag_block_gen.vhd index 1a6857d42572b1eae8ef943f0c6f3c12c0de37ca..051b6cbe9f0a93e04e7e8f79ecffb236e7227b4c 100644 --- a/libraries/base/diag/src/vhdl/mms_diag_block_gen.vhd +++ b/libraries/base/diag/src/vhdl/mms_diag_block_gen.vhd @@ -93,16 +93,18 @@ -- . A nice new feature would be to support a BG burst of N blocks. -LIBRARY IEEE, common_lib, dp_lib; +LIBRARY IEEE, common_lib, technology_lib, dp_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 dp_lib.dp_stream_pkg.ALL; USE work.diag_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; ENTITY mms_diag_block_gen IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; -- Generate configurations g_use_usr_input : BOOLEAN := FALSE; g_use_bg : BOOLEAN := TRUE; @@ -241,6 +243,7 @@ BEGIN gen_buffer_ram : IF g_use_bg_buffer_ram=TRUE GENERATE u_buffer_ram : ENTITY common_lib.common_ram_crw_crw GENERIC MAP ( + g_technology => g_technology, g_ram => c_buf, -- Sequence number and ".hex" extension are added to the relative path in case a ram file is provided. g_init_file => sel_a_b(g_file_name_prefix = "UNUSED", g_file_name_prefix, g_file_name_prefix & "_" & NATURAL'IMAGE(g_file_index_arr(I)) & c_post_buf_file) @@ -336,6 +339,7 @@ BEGIN u_dp_mux : ENTITY dp_lib.dp_mux GENERIC MAP ( + g_technology => g_technology, -- MUX g_mode => 4, -- g_mode=4 for framed input select via sel_ctrl g_nof_input => c_mux_nof_input, -- >= 1 diff --git a/libraries/base/diag/src/vhdl/mms_diag_data_buffer.vhd b/libraries/base/diag/src/vhdl/mms_diag_data_buffer.vhd index e6d4af85a16f8c84f2ccbaad35445d772d99352e..2c3c6fbcc057640e3e4062341a9d0ecf69e9fa0e 100644 --- a/libraries/base/diag/src/vhdl/mms_diag_data_buffer.vhd +++ b/libraries/base/diag/src/vhdl/mms_diag_data_buffer.vhd @@ -57,16 +57,18 @@ -- detects an error. By delaying the trigger somewhat it the DB can then -- capture some data before and after the trigger event. -LIBRARY IEEE, common_lib, dp_lib; +LIBRARY IEEE, common_lib, technology_lib, dp_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 dp_lib.dp_stream_pkg.ALL; USE work.diag_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; ENTITY mms_diag_data_buffer IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; -- Generate configurations g_use_db : BOOLEAN := TRUE; g_use_rx_seq : BOOLEAN := FALSE; @@ -163,6 +165,7 @@ BEGIN u_diag_data_buffer : ENTITY work.diag_data_buffer GENERIC MAP ( + g_technology => g_technology, g_data_w => g_data_w, g_nof_data => g_buf_nof_data, g_use_in_sync => g_buf_use_sync -- when TRUE start filling the buffer at the in_sync, else after the last word was read diff --git a/libraries/base/diag/src/vhdl/mms_diag_wg_wideband.vhd b/libraries/base/diag/src/vhdl/mms_diag_wg_wideband.vhd index a83c1efefdc62cd27efbb61aa46b84b05275b48a..89b3fc07fe74fee3cb7ade797f2b234b8031c8aa 100644 --- a/libraries/base/diag/src/vhdl/mms_diag_wg_wideband.vhd +++ b/libraries/base/diag/src/vhdl/mms_diag_wg_wideband.vhd @@ -26,15 +26,17 @@ -- . For g_wideband_factor=1 this diag_wg_wideband defaults to diag_wg. Hence -- no need to make a mms_diag_wg.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 common_lib.common_mem_pkg.ALL; USE work.diag_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; ENTITY mms_diag_wg_wideband IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; -- Use FALSE when mm_clk and st_clk are the same, else use TRUE to cross the clock domain g_cross_clock_domain : BOOLEAN := TRUE; @@ -102,6 +104,7 @@ BEGIN u_wg_wideband : ENTITY work.diag_wg_wideband GENERIC MAP ( + g_technology => g_technology, -- Use g_buf_dir to be able to have different path to waveform file for sim and for synth g_buf_dir => g_buf_dir, diff --git a/libraries/base/diagnostics/src/vhdl/mm_rx_logger.vhd b/libraries/base/diagnostics/src/vhdl/mm_rx_logger.vhd index 5a5dc379b1c4a2445c3061112b404cc59f444d8d..0d994f17fe07d7599dc3bac6219d681149ecaf29 100644 --- a/libraries/base/diagnostics/src/vhdl/mm_rx_logger.vhd +++ b/libraries/base/diagnostics/src/vhdl/mm_rx_logger.vhd @@ -20,16 +20,18 @@ -- -------------------------------------------------------------------------------- -LIBRARY IEEE, common_lib, dp_lib, diag_lib; +LIBRARY IEEE, common_lib, technology_lib, dp_lib, diag_lib; USE IEEE.std_logic_1164.ALL; USE IEEE.numeric_std.ALL; USE common_lib.common_pkg.ALL; USE common_lib.common_lfsr_sequences_pkg.ALL; USE dp_lib.dp_stream_pkg.ALL; USE common_lib.common_mem_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; ENTITY mm_rx_logger IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; g_dat_w : NATURAL; g_fifo_wr_depth : NATURAL := 128 -- Only put powers of 2 here. ); @@ -144,6 +146,7 @@ BEGIN -- that to flush the FIFO on the src side. u_data_log_fifo : ENTITY dp_lib.dp_fifo_sc GENERIC MAP ( + g_technology => g_technology, g_data_w => g_dat_w, g_use_ctrl => FALSE, g_fifo_size => g_fifo_wr_depth @@ -188,6 +191,7 @@ BEGIN u_data_dpmm_fifo : ENTITY dp_lib.dp_fifo_dc_mixed_widths GENERIC MAP ( + g_technology => g_technology, g_wr_data_w => g_dat_w, g_rd_data_w => c_word_w, g_use_ctrl => FALSE, diff --git a/libraries/base/diagnostics/src/vhdl/mm_tx_framer.vhd b/libraries/base/diagnostics/src/vhdl/mm_tx_framer.vhd index de0163d8ecdf1e2665382404812c32ce34ead1b0..0fd8c8587d466015202bd193693904d3c8c7931a 100644 --- a/libraries/base/diagnostics/src/vhdl/mm_tx_framer.vhd +++ b/libraries/base/diagnostics/src/vhdl/mm_tx_framer.vhd @@ -20,15 +20,17 @@ -- -------------------------------------------------------------------------------- -LIBRARY IEEE, common_lib, dp_lib; +LIBRARY IEEE, common_lib, technology_lib, dp_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 dp_lib.dp_stream_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; ENTITY mm_tx_framer IS GENERIC( + g_technology : NATURAL := c_tech_select_default; g_dat_out_w : NATURAL; g_rd_fifo_depth : NATURAL := 128 ); @@ -92,6 +94,7 @@ BEGIN u_mm_to_dp_fifo : ENTITY dp_lib.dp_fifo_dc_mixed_widths GENERIC MAP ( + g_technology => g_technology, g_wr_data_w => c_word_w, g_rd_data_w => g_dat_out_w, g_use_ctrl => FALSE, diff --git a/libraries/base/reorder/src/vhdl/reorder_col.vhd b/libraries/base/reorder/src/vhdl/reorder_col.vhd index f280a7d5acb97242aa950f0ff45bfb02c1173d54..8755636c570395267b8c1c7ed950d323586c4a1c 100644 --- a/libraries/base/reorder/src/vhdl/reorder_col.vhd +++ b/libraries/base/reorder/src/vhdl/reorder_col.vhd @@ -19,13 +19,6 @@ -- ------------------------------------------------------------------------------- -LIBRARY IEEE, common_lib, dp_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 dp_lib.dp_stream_pkg.ALL; - -- Purpose: Reorder packet -- Description: -- Select g_nof_ch_sel complex samples from an input block of g_nof_ch_in @@ -57,8 +50,17 @@ USE dp_lib.dp_stream_pkg.ALL; -- is assumed that the reorder_col source is always fast enough. The reorder_col sink could -- support the input_siso signal, e.g. based on store_done and retrieve_done. +LIBRARY IEEE, common_lib, technology_lib, dp_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 dp_lib.dp_stream_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; + ENTITY reorder_col IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; g_use_output_rl_adapter : BOOLEAN := FALSE; -- when true adapt output RL to 1 else the output RL is equal to c_retrieve_lat=2 which is fine if no flow control is needed. g_dsp_data_w : NATURAL := 18; g_nof_ch_in : NATURAL := 512; @@ -165,6 +167,7 @@ BEGIN u_store_buf : ENTITY common_lib.common_paged_ram_r_w GENERIC MAP ( + g_technology => g_technology, g_str => "use_adr", g_data_w => c_store_buf.dat_w, g_nof_pages => c_data_nof_pages, @@ -189,6 +192,7 @@ BEGIN u_select_buf : ENTITY common_lib.common_ram_crw_crw GENERIC MAP ( + g_technology => g_technology, g_ram => c_select_buf, g_init_file => g_select_file_name ) diff --git a/libraries/base/reorder/src/vhdl/reorder_col_wide.vhd b/libraries/base/reorder/src/vhdl/reorder_col_wide.vhd index e011101e24a48f94ce9971d5ee7ee8ca8ba9a2a7..90ae619edfbcd00c7e8415c4429d4585d72f0e47 100644 --- a/libraries/base/reorder/src/vhdl/reorder_col_wide.vhd +++ b/libraries/base/reorder/src/vhdl/reorder_col_wide.vhd @@ -19,13 +19,6 @@ -- ------------------------------------------------------------------------------- -LIBRARY IEEE, common_lib, dp_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 dp_lib.dp_stream_pkg.ALL; - -- Purpose: Select and/or reorder data on multiple streams. -- -- Description: @@ -38,8 +31,17 @@ USE dp_lib.dp_stream_pkg.ALL; -- Remarks: -- +LIBRARY IEEE, common_lib, technology_lib, dp_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 dp_lib.dp_stream_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; + ENTITY reorder_col_wide IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; g_wb_factor : NATURAL := 4; g_dsp_data_w : NATURAL := 18; g_nof_ch_in : NATURAL := 256; @@ -100,6 +102,7 @@ BEGIN gen_ss_singles : FOR I IN 0 TO g_wb_factor-1 GENERATE u_single_ss : ENTITY work.reorder_col GENERIC MAP ( + g_technology => g_technology, g_dsp_data_w => g_dsp_data_w, g_nof_ch_in => c_nof_ch_in, g_nof_ch_sel => c_nof_ch_sel, diff --git a/libraries/base/reorder/src/vhdl/reorder_matrix.vhd b/libraries/base/reorder/src/vhdl/reorder_matrix.vhd index 5457aa8e80cdce1ddfec0e62a3ba9d50949d7bb8..4f8a4f764f64b2499b7d101387ac551d230b732c 100644 --- a/libraries/base/reorder/src/vhdl/reorder_matrix.vhd +++ b/libraries/base/reorder/src/vhdl/reorder_matrix.vhd @@ -19,13 +19,6 @@ -- ------------------------------------------------------------------------------- -LIBRARY IEEE, common_lib, dp_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 dp_lib.dp_stream_pkg.ALL; - -- Purpose: Select a subset of the input data. Reorder the input data. Redistribute data over multiple outputs. -- -- Description: This unit creates a parallel set of output streams where each @@ -53,8 +46,17 @@ USE dp_lib.dp_stream_pkg.ALL; -- Remarks: -- +LIBRARY IEEE, common_lib, technology_lib, dp_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 dp_lib.dp_stream_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; + ENTITY reorder_matrix IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; g_nof_inputs : NATURAL := 24; g_nof_internals : NATURAL := 64; g_nof_outputs : NATURAL := 64; @@ -116,6 +118,7 @@ BEGIN ----------------------------------------------------------------------------- u_input_reorder : ENTITY work.reorder_row GENERIC MAP( + g_technology => g_technology, g_nof_inputs => g_nof_inputs, g_nof_outputs => g_nof_internals, g_dsp_data_w => g_dsp_data_w, @@ -145,6 +148,7 @@ BEGIN ----------------------------------------------------------------------------- u_ss_wide : ENTITY work.reorder_col_wide GENERIC MAP ( + g_technology => g_technology, g_wb_factor => g_nof_internals, g_dsp_data_w => g_dsp_data_w, g_nof_ch_in => g_frame_size_in, @@ -172,6 +176,7 @@ BEGIN ----------------------------------------------------------------------------- u_output_reorder : ENTITY work.reorder_row GENERIC MAP( + g_technology => g_technology, g_nof_inputs => g_nof_internals, g_nof_outputs => g_nof_outputs, g_dsp_data_w => g_dsp_data_w, diff --git a/libraries/base/reorder/src/vhdl/reorder_row.vhd b/libraries/base/reorder/src/vhdl/reorder_row.vhd index 917296eac505ff7b6e244654a5970aab397d0607..2a23f5a48b2f5a0a72b4b38d4ab6b3aed7bd5f21 100644 --- a/libraries/base/reorder/src/vhdl/reorder_row.vhd +++ b/libraries/base/reorder/src/vhdl/reorder_row.vhd @@ -19,13 +19,6 @@ -- ------------------------------------------------------------------------------- -LIBRARY IEEE, common_lib, dp_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 dp_lib.dp_stream_pkg.ALL; - -- Purpose: Subband Select Reordering. -- -- Description: For every clock cycle within a frame a different output @@ -38,8 +31,17 @@ USE dp_lib.dp_stream_pkg.ALL; -- Remarks: -- +LIBRARY IEEE, common_lib, technology_lib, dp_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 dp_lib.dp_stream_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; + ENTITY reorder_row IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; g_dsp_data_w : NATURAL := 16; g_frame_size : NATURAL := 256; g_nof_inputs : NATURAL := 8; @@ -152,6 +154,7 @@ BEGIN --------------------------------------------------------------- u_select_buf : ENTITY common_lib.common_ram_crw_crw_ratio GENERIC MAP( + g_technology => g_technology, g_ram_a => c_select_buf_mm, g_ram_b => c_select_buf_dp, g_init_file => g_ram_init_file diff --git a/libraries/base/reorder/src/vhdl/reorder_transpose.vhd b/libraries/base/reorder/src/vhdl/reorder_transpose.vhd index f16e931abf1a6171cdb4acb83beb7c596693ada7..f205bb92faa087e5613b3e8b910031c422e98612 100644 --- a/libraries/base/reorder/src/vhdl/reorder_transpose.vhd +++ b/libraries/base/reorder/src/vhdl/reorder_transpose.vhd @@ -63,17 +63,18 @@ -- -- Remarks: - -LIBRARY IEEE, common_lib, dp_lib; +LIBRARY IEEE, common_lib, technology_lib, dp_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 dp_lib.dp_stream_pkg.ALL; USE work.reorder_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; ENTITY reorder_transpose IS GENERIC( + g_technology : NATURAL := c_tech_select_default; g_nof_streams : NATURAL := 4; g_in_dat_w : NATURAL := 8; g_frame_size_in : NATURAL := 256; @@ -221,6 +222,7 @@ BEGIN u_single_ss : ENTITY work.reorder_col GENERIC MAP ( + g_technology => g_technology, g_dsp_data_w => c_data_w_pre, g_nof_ch_in => c_nof_ch_in, g_nof_ch_sel => c_nof_ch_sel, @@ -288,6 +290,7 @@ BEGIN u_sync_bsn_fifo : ENTITY common_lib.common_fifo_sc GENERIC MAP ( + g_technology => g_technology, g_use_lut => TRUE, -- Make this FIFO in logic, since it's only 2 words deep. g_reset => FALSE, g_init => FALSE, diff --git a/libraries/base/ss/src/vhdl/ss.vhd b/libraries/base/ss/src/vhdl/ss.vhd index 17e7f250adc886339589667041a0e7bfc31020b1..f9d70c483df9d5d3ecb0134291891d1cb7a409eb 100644 --- a/libraries/base/ss/src/vhdl/ss.vhd +++ b/libraries/base/ss/src/vhdl/ss.vhd @@ -19,13 +19,6 @@ -- ------------------------------------------------------------------------------- -LIBRARY IEEE, common_lib, dp_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 dp_lib.dp_stream_pkg.ALL; - -- Purpose: Subband select -- Description: -- Select g_nof_ch_sel complex samples from an input block of g_nof_ch_in @@ -57,8 +50,17 @@ USE dp_lib.dp_stream_pkg.ALL; -- is assumed that the SS source is always fast enough. The SS sink could -- support the input_siso signal, e.g. based on store_done and retrieve_done. +LIBRARY IEEE, common_lib, technology_lib, dp_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 dp_lib.dp_stream_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; + ENTITY ss IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; g_use_output_rl_adapter : BOOLEAN := FALSE; -- when true adapt output RL to 1 else the output RL is equal to c_retrieve_lat=2 which is fine if no flow control is needed. g_dsp_data_w : NATURAL := 18; g_nof_ch_in : NATURAL := 512; @@ -165,6 +167,7 @@ BEGIN u_store_buf : ENTITY common_lib.common_paged_ram_r_w GENERIC MAP ( + g_technology => g_technology, g_str => "use_adr", g_data_w => c_store_buf.dat_w, g_nof_pages => c_data_nof_pages, @@ -189,6 +192,7 @@ BEGIN u_select_buf : ENTITY common_lib.common_ram_crw_crw GENERIC MAP ( + g_technology => g_technology, g_ram => c_select_buf, g_init_file => g_select_file_name ) diff --git a/libraries/base/ss/src/vhdl/ss_parallel.vhd b/libraries/base/ss/src/vhdl/ss_parallel.vhd index ffab5c993ebf6bf202be54cdd37eb183ced721d5..990a35c7ef3778b33dd30fb26c536c86dfdb471a 100644 --- a/libraries/base/ss/src/vhdl/ss_parallel.vhd +++ b/libraries/base/ss/src/vhdl/ss_parallel.vhd @@ -19,13 +19,6 @@ -- ------------------------------------------------------------------------------- -LIBRARY IEEE, common_lib, dp_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 dp_lib.dp_stream_pkg.ALL; - -- Purpose: Select a subset of the input data. Reorder the input data. Redistribute data over multiple outputs. -- -- Description: This unit creates a parallel set of output streams where each @@ -53,8 +46,17 @@ USE dp_lib.dp_stream_pkg.ALL; -- Remarks: -- +LIBRARY IEEE, common_lib, technology_lib, dp_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 dp_lib.dp_stream_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; + ENTITY ss_parallel IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; g_nof_inputs : NATURAL := 8; g_nof_internals : NATURAL := 16; g_nof_outputs : NATURAL := 16; @@ -116,6 +118,7 @@ BEGIN ----------------------------------------------------------------------------- u_input_reorder : ENTITY work.ss_reorder GENERIC MAP( + g_technology => g_technology, g_nof_inputs => g_nof_inputs, g_nof_outputs => g_nof_internals, g_dsp_data_w => g_dsp_data_w, @@ -145,6 +148,7 @@ BEGIN ----------------------------------------------------------------------------- u_ss_wide : ENTITY work.ss_wide GENERIC MAP ( + g_technology => g_technology, g_wb_factor => g_nof_internals, g_dsp_data_w => g_dsp_data_w, g_nof_ch_in => g_frame_size_in, @@ -172,6 +176,7 @@ BEGIN ----------------------------------------------------------------------------- u_output_reorder : ENTITY work.ss_reorder GENERIC MAP( + g_technology => g_technology, g_nof_inputs => g_nof_internals, g_nof_outputs => g_nof_outputs, g_dsp_data_w => g_dsp_data_w, diff --git a/libraries/base/ss/src/vhdl/ss_reorder.vhd b/libraries/base/ss/src/vhdl/ss_reorder.vhd index ecbf0fc6ca957c13752347aeeb6b46ccb5aedb57..65868b94c9d857656f88d88718ae4949109e58a1 100644 --- a/libraries/base/ss/src/vhdl/ss_reorder.vhd +++ b/libraries/base/ss/src/vhdl/ss_reorder.vhd @@ -19,13 +19,6 @@ -- ------------------------------------------------------------------------------- -LIBRARY IEEE, common_lib, dp_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 dp_lib.dp_stream_pkg.ALL; - -- Purpose: Subband Select Reordering. -- -- Description: For every clock cycle within a frame a different output @@ -38,8 +31,17 @@ USE dp_lib.dp_stream_pkg.ALL; -- Remarks: -- +LIBRARY IEEE, common_lib, technology_lib, dp_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 dp_lib.dp_stream_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; + ENTITY ss_reorder IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; g_dsp_data_w : NATURAL := 16; g_frame_size : NATURAL := 256; g_nof_inputs : NATURAL := 8; @@ -151,6 +153,7 @@ BEGIN --------------------------------------------------------------- u_select_buf : ENTITY common_lib.common_ram_crw_crw_ratio GENERIC MAP( + g_technology => g_technology, g_ram_a => c_select_buf_mm, g_ram_b => c_select_buf_dp, g_init_file => g_ram_init_file diff --git a/libraries/base/ss/src/vhdl/ss_wide.vhd b/libraries/base/ss/src/vhdl/ss_wide.vhd index 263ea831b676d53a3d46829431e2cfc60c19bd8b..f9b23dee974a08252eb45c8cce8cd14b94da374d 100644 --- a/libraries/base/ss/src/vhdl/ss_wide.vhd +++ b/libraries/base/ss/src/vhdl/ss_wide.vhd @@ -19,13 +19,6 @@ -- ------------------------------------------------------------------------------- -LIBRARY IEEE, common_lib, dp_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 dp_lib.dp_stream_pkg.ALL; - -- Purpose: Select and/or reorder data on multiple streams. -- -- Description: @@ -38,8 +31,17 @@ USE dp_lib.dp_stream_pkg.ALL; -- Remarks: -- +LIBRARY IEEE, common_lib, technology_lib, dp_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 dp_lib.dp_stream_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; + ENTITY ss_wide IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; g_wb_factor : NATURAL := 4; g_dsp_data_w : NATURAL := 18; g_nof_ch_in : NATURAL := 256; @@ -100,6 +102,7 @@ BEGIN gen_ss_singles : FOR I IN 0 TO g_wb_factor-1 GENERATE u_single_ss : ENTITY work.ss GENERIC MAP ( + g_technology => g_technology, g_dsp_data_w => g_dsp_data_w, g_nof_ch_in => c_nof_ch_in, g_nof_ch_sel => c_nof_ch_sel, diff --git a/libraries/base/uth/src/vhdl/uth_terminal_bidir.vhd b/libraries/base/uth/src/vhdl/uth_terminal_bidir.vhd index 5234411a43e5375054c9a64574d7f44fc36f9183..6222e1a79024277683fcc38f8d8c1b5a146b1a28 100644 --- a/libraries/base/uth/src/vhdl/uth_terminal_bidir.vhd +++ b/libraries/base/uth/src/vhdl/uth_terminal_bidir.vhd @@ -29,16 +29,18 @@ -- application needs so. -LIBRARY IEEE, common_lib, dp_lib, uth_lib; +LIBRARY IEEE, common_lib, technology_lib, dp_lib, uth_lib; USE IEEE.std_logic_1164.ALL; USE IEEE.numeric_std.ALL; USE common_lib.common_pkg.ALL; USE dp_lib.dp_stream_pkg.ALL; USE dp_lib.dp_packet_pkg.ALL; USE work.uth_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; ENTITY uth_terminal_bidir IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; -- User g_usr_nof_streams : NATURAL := 4; -- number of user streams per bus g_usr_use_complex : BOOLEAN := FALSE; -- when TRUE transport sosi im & re fields via DP data, else transport sosi data via DP data @@ -124,6 +126,7 @@ BEGIN gen_tx : IF g_use_tx=TRUE GENERATE u_uth_terminal_tx : ENTITY work.uth_terminal_tx GENERIC MAP ( + g_technology => g_technology, -- Terminal IO g_nof_input => g_usr_nof_streams, g_nof_output => g_phy_nof_serial, @@ -171,6 +174,7 @@ BEGIN gen_rx : IF g_use_rx=TRUE GENERATE u_uth_terminal_rx : ENTITY work.uth_terminal_rx GENERIC MAP ( + g_technology => g_technology, -- Terminal IO g_nof_input => g_phy_nof_serial, g_nof_output => g_usr_nof_streams, diff --git a/libraries/base/uth/src/vhdl/uth_terminal_rx.vhd b/libraries/base/uth/src/vhdl/uth_terminal_rx.vhd index 3d529c7f576a42dda176df20a93553eb718e3628..63494118585037ac104fd604eb68ccdc4ffb5617 100644 --- a/libraries/base/uth/src/vhdl/uth_terminal_rx.vhd +++ b/libraries/base/uth/src/vhdl/uth_terminal_rx.vhd @@ -19,14 +19,6 @@ -- -------------------------------------------------------------------------------- -LIBRARY IEEE, common_lib, dp_lib; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE common_lib.common_pkg.ALL; -USE dp_lib.dp_stream_pkg.ALL; -USE work.uth_pkg.ALL; - - -- Purpose: Receive UTH frames from n = g_nof_input input streams via m = -- g_nof_output SOSI data output streams. -- Description: @@ -47,8 +39,17 @@ USE work.uth_pkg.ALL; -- . The g_use_uth_err can be used to insert the UTH rx error bit (based on -- the CRC) in the original DP packet err field at bit index g_uth_err_bi. +LIBRARY IEEE, common_lib, technology_lib, dp_lib; +USE IEEE.std_logic_1164.ALL; +USE IEEE.numeric_std.ALL; +USE common_lib.common_pkg.ALL; +USE dp_lib.dp_stream_pkg.ALL; +USE work.uth_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; + ENTITY uth_terminal_rx IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; -- Terminal IO g_nof_input : NATURAL := 4; -- >= 1 g_nof_output : NATURAL := 3; -- >= 1 @@ -128,6 +129,7 @@ BEGIN -- Input FIFO passes DP/Uthernet packets, so the sosi control fields (sync, bsn, empty, channel and error) are encoded in the packet data u_fifo_fill : ENTITY dp_lib.dp_fifo_fill GENERIC MAP ( + g_technology => g_technology, g_data_w => g_packet_data_w, g_fifo_fill => g_input_fifo_fill, g_fifo_af_margin => g_input_fifo_af_margin, @@ -184,6 +186,7 @@ BEGIN u_distribute : ENTITY dp_lib.dp_distribute GENERIC MAP ( + g_technology => g_technology, -- Distribution IO g_tx => FALSE, g_nof_input => g_nof_input, @@ -223,6 +226,7 @@ BEGIN -- However if g_use_uth_err=TRUE then the Uthernet CRC error status is passed on via the sosi error field using 1 bit. u_fifo_fill : ENTITY dp_lib.dp_fifo_fill GENERIC MAP ( + g_technology => g_technology, g_data_w => g_packet_data_w, g_error_w => c_uth_crc_err_w, -- = 1, one bit CRC error status from uth_rx g_use_error => g_use_uth_err, diff --git a/libraries/base/uth/src/vhdl/uth_terminal_tx.vhd b/libraries/base/uth/src/vhdl/uth_terminal_tx.vhd index b2e82a193b2a59c90239a6054bd8316c876a2db0..c2c49bdca62d781651a11f44f6fa42587be3dcb4 100644 --- a/libraries/base/uth/src/vhdl/uth_terminal_tx.vhd +++ b/libraries/base/uth/src/vhdl/uth_terminal_tx.vhd @@ -19,13 +19,6 @@ -- -------------------------------------------------------------------------------- -LIBRARY IEEE, common_lib, dp_lib; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE common_lib.common_pkg.ALL; -USE dp_lib.dp_stream_pkg.ALL; - - -- Purpose: Transmit SOSI data from n input streams via m UTH output streams. -- Description: -- Data flow: @@ -45,9 +38,16 @@ USE dp_lib.dp_stream_pkg.ALL; -- By filling the FIFO sufficiently it can be ensured that the UTH packets -- are then output without data not valid gaps during the packet. +LIBRARY IEEE, common_lib, technology_lib, dp_lib; +USE IEEE.std_logic_1164.ALL; +USE IEEE.numeric_std.ALL; +USE common_lib.common_pkg.ALL; +USE dp_lib.dp_stream_pkg.ALL; +USE technology_lib.technology_select_pkg.ALL; ENTITY uth_terminal_tx IS GENERIC ( + g_technology : NATURAL := c_tech_select_default; -- Terminal IO g_nof_input : NATURAL := 4; -- >= 1 g_nof_output : NATURAL := 3; -- >= 1 @@ -139,6 +139,7 @@ BEGIN gen_fifo : IF g_input_use_fifo=TRUE GENERATE u_fifo_fill : ENTITY dp_lib.dp_fifo_fill GENERIC MAP ( + g_technology => g_technology, g_data_w => g_data_w, g_bsn_w => g_input_bsn_w, g_empty_w => g_input_empty_w, @@ -195,6 +196,7 @@ BEGIN ------------------------------------------------------------------------------ u_distribute : ENTITY dp_lib.dp_distribute GENERIC MAP ( + g_technology => g_technology, -- Distribution IO g_tx => TRUE, g_nof_input => g_nof_input, @@ -256,6 +258,7 @@ BEGIN -- Output FIFO passes DP/Uthernet packets, so the sosi control fields (sync, bsn, empty, channel and error) are encoded in the packet data u_fifo_fill : ENTITY dp_lib.dp_fifo_fill GENERIC MAP ( + g_technology => g_technology, g_data_w => g_packet_data_w, g_fifo_fill => g_output_fifo_fill, g_fifo_size => g_output_fifo_size,