@@ -0,0 +1,108 | |||||
|
1 | ------------------------------------------------------------------------------ | |||
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |||
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |||
|
4 | -- | |||
|
5 | -- This program is free software; you can redistribute it and/or modify | |||
|
6 | -- it under the terms of the GNU General Public License as published by | |||
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |||
|
8 | -- (at your option) any later version. | |||
|
9 | -- | |||
|
10 | -- This program is distributed in the hope that it will be useful, | |||
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
13 | -- GNU General Public License for more details. | |||
|
14 | -- | |||
|
15 | -- You should have received a copy of the GNU General Public License | |||
|
16 | -- along with this program; if not, write to the Free Software | |||
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
18 | ------------------------------------------------------------------------------- | |||
|
19 | -- Author : Jean-christophe Pellion | |||
|
20 | -- Mail : jean-christophe.pellion@lpp.polytechnique.fr | |||
|
21 | -- jean-christophe.pellion@easii-ic.com | |||
|
22 | ---------------------------------------------------------------------------- | |||
|
23 | ||||
|
24 | LIBRARY ieee; | |||
|
25 | USE ieee.std_logic_1164.ALL; | |||
|
26 | use ieee.math_real.all; | |||
|
27 | USE ieee.numeric_std.ALL; | |||
|
28 | ||||
|
29 | LIBRARY lpp; | |||
|
30 | USE lpp.general_purpose.ALL; | |||
|
31 | USE lpp.window_function_pkg.ALL; | |||
|
32 | ||||
|
33 | ENTITY WF_processing IS | |||
|
34 | GENERIC ( | |||
|
35 | SIZE_DATA : INTEGER := 16; | |||
|
36 | SIZE_PARAM : INTEGER := 10; | |||
|
37 | NB_POINT_BY_WINDOW : INTEGER := 256 | |||
|
38 | ); | |||
|
39 | ||||
|
40 | PORT ( | |||
|
41 | clk : IN STD_LOGIC; | |||
|
42 | rstn : IN STD_LOGIC; | |||
|
43 | --ctrl | |||
|
44 | restart_window : IN STD_LOGIC; | |||
|
45 | --data_in | |||
|
46 | data_in : IN STD_LOGIC_VECTOR(SIZE_DATA-1 DOWNTO 0); | |||
|
47 | data_in_valid : IN STD_LOGIC; | |||
|
48 | --data_out | |||
|
49 | data_out : OUT STD_LOGIC_VECTOR(SIZE_DATA-1 DOWNTO 0); | |||
|
50 | data_out_valid : OUT STD_LOGIC; | |||
|
51 | ||||
|
52 | --window parameter interface | |||
|
53 | param_in : IN STD_LOGIC_VECTOR(SIZE_PARAM-1 DOWNTO 0); | |||
|
54 | param_index : OUT INTEGER RANGE 0 TO NB_POINT_BY_WINDOW-1 | |||
|
55 | ); | |||
|
56 | ||||
|
57 | END WF_processing; | |||
|
58 | ||||
|
59 | ARCHITECTURE beh OF WF_processing IS | |||
|
60 | CONSTANT NB_BITS_COUNTER : INTEGER := INTEGER(ceil(log2(REAL(NB_POINT_BY_WINDOW)))); | |||
|
61 | ||||
|
62 | SIGNAL data_x_param : STD_LOGIC_VECTOR(SIZE_DATA + SIZE_PARAM - 1 DOWNTO 0); | |||
|
63 | SIGNAL windows_counter_s : STD_LOGIC_VECTOR(NB_BITS_COUNTER-1 DOWNTO 0); | |||
|
64 | ||||
|
65 | BEGIN | |||
|
66 | ||||
|
67 | WINDOWS_counter: general_counter | |||
|
68 | GENERIC MAP ( | |||
|
69 | CYCLIC => '1', | |||
|
70 | NB_BITS_COUNTER => NB_BITS_COUNTER, | |||
|
71 | RST_VALUE => 0) | |||
|
72 | PORT MAP ( | |||
|
73 | clk => clk, | |||
|
74 | rstn => rstn, | |||
|
75 | MAX_VALUE => STD_LOGIC_VECTOR(to_unsigned(NB_POINT_BY_WINDOW-1, NB_BITS_COUNTER)), | |||
|
76 | set => restart_window, | |||
|
77 | set_value => STD_LOGIC_VECTOR(to_unsigned(0, NB_BITS_COUNTER)), | |||
|
78 | add1 => data_in_valid, | |||
|
79 | counter => windows_counter_s); | |||
|
80 | ||||
|
81 | param_index <= to_integer(UNSIGNED(windows_counter_s)); | |||
|
82 | ||||
|
83 | WINDOWS_Multiplier : Multiplier | |||
|
84 | GENERIC MAP ( | |||
|
85 | Input_SZ_A => SIZE_DATA, | |||
|
86 | Input_SZ_B => SIZE_PARAM) | |||
|
87 | PORT MAP ( | |||
|
88 | clk => clk, | |||
|
89 | reset => rstn, | |||
|
90 | ||||
|
91 | mult => data_in_valid, | |||
|
92 | OP1 => data_in, | |||
|
93 | OP2 => param_in, | |||
|
94 | ||||
|
95 | RES => data_x_param); | |||
|
96 | ||||
|
97 | data_out <= data_x_param(SIZE_DATA + SIZE_PARAM-1 DOWNTO SIZE_PARAM); | |||
|
98 | ||||
|
99 | WINDOWS_REG: SYNC_FF | |||
|
100 | GENERIC MAP ( | |||
|
101 | NB_FF_OF_SYNC => 1) | |||
|
102 | PORT MAP ( | |||
|
103 | clk => clk, | |||
|
104 | rstn => rstn, | |||
|
105 | A => data_in_valid, | |||
|
106 | A_sync => data_out_valid); | |||
|
107 | ||||
|
108 | END beh; |
@@ -0,0 +1,96 | |||||
|
1 | ------------------------------------------------------------------------------ | |||
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |||
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |||
|
4 | -- | |||
|
5 | -- This program is free software; you can redistribute it and/or modify | |||
|
6 | -- it under the terms of the GNU General Public License as published by | |||
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |||
|
8 | -- (at your option) any later version. | |||
|
9 | -- | |||
|
10 | -- This program is distributed in the hope that it will be useful, | |||
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
13 | -- GNU General Public License for more details. | |||
|
14 | -- | |||
|
15 | -- You should have received a copy of the GNU General Public License | |||
|
16 | -- along with this program; if not, write to the Free Software | |||
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
18 | ------------------------------------------------------------------------------- | |||
|
19 | -- Author : Jean-christophe Pellion | |||
|
20 | -- Mail : jean-christophe.pellion@lpp.polytechnique.fr | |||
|
21 | -- jean-christophe.pellion@easii-ic.com | |||
|
22 | ---------------------------------------------------------------------------- | |||
|
23 | ||||
|
24 | LIBRARY ieee; | |||
|
25 | USE ieee.std_logic_1164.ALL; | |||
|
26 | USE ieee.numeric_std.ALL; | |||
|
27 | ||||
|
28 | LIBRARY lpp; | |||
|
29 | USE lpp.general_purpose.ALL; | |||
|
30 | USE lpp.window_function_pkg.ALL; | |||
|
31 | ||||
|
32 | ENTITY WF_rom IS | |||
|
33 | GENERIC ( | |||
|
34 | SIZE_PARAM : INTEGER := 10; | |||
|
35 | NB_POINT_BY_WINDOW : INTEGER := 256 | |||
|
36 | ); | |||
|
37 | PORT ( | |||
|
38 | data : OUT STD_LOGIC_VECTOR(SIZE_PARAM-1 DOWNTO 0); | |||
|
39 | index : IN INTEGER RANGE 0 TO NB_POINT_BY_WINDOW-1 | |||
|
40 | ); | |||
|
41 | END WF_rom; | |||
|
42 | ||||
|
43 | ARCHITECTURE beh OF WF_rom IS | |||
|
44 | ||||
|
45 | CONSTANT SIZE_ARRAY : INTEGER := 256; -- | |||
|
46 | CONSTANT SIZE_ARRAY_PARAM : INTEGER := 16; -- bits | |||
|
47 | TYPE array_std_logic_vector IS ARRAY (SIZE_ARRAY-1 DOWNTO 0) OF STD_LOGIC_VECTOR(SIZE_ARRAY_PARAM-1 DOWNTO 0); | |||
|
48 | CONSTANT ROM_array : array_std_logic_vector := ( | |||
|
49 | X"0000",X"0004",X"0013",X"002C",X"004F",X"007C",X"00B2",X"00F3", | |||
|
50 | X"013D",X"0191",X"01EE",X"0256",X"02C6",X"0341",X"03C5",X"0452", | |||
|
51 | X"04E8",X"0588",X"0631",X"06E2",X"079D",X"0860",X"092C",X"0A01", | |||
|
52 | X"0ADE",X"0BC3",X"0CB0",X"0DA5",X"0EA3",X"0FA7",X"10B4",X"11C7", | |||
|
53 | X"12E2",X"1404",X"152C",X"165C",X"1792",X"18CE",X"1A10",X"1B58", | |||
|
54 | X"1CA6",X"1DF9",X"1F51",X"20AF",X"2211",X"2379",X"24E4",X"2654", | |||
|
55 | X"27C8",X"293F",X"2ABA",X"2C39",X"2DBA",X"2F3E",X"30C5",X"324E", | |||
|
56 | X"33DA",X"3567",X"36F6",X"3886",X"3A18",X"3BAA",X"3D3D",X"3ED1", | |||
|
57 | X"4064",X"41F8",X"438B",X"451E",X"46B0",X"4841",X"49D1",X"4B5F", | |||
|
58 | X"4CEB",X"4E75",X"4FFE",X"5183",X"5306",X"5486",X"5603",X"577C", | |||
|
59 | X"58F2",X"5A64",X"5BD1",X"5D3B",X"5E9F",X"5FFF",X"615B",X"62B1", | |||
|
60 | X"6401",X"654C",X"6691",X"67D0",X"6909",X"6A3C",X"6B68",X"6C8D", | |||
|
61 | X"6DAB",X"6EC3",X"6FD2",X"70DB",X"71DC",X"72D5",X"73C6",X"74B0", | |||
|
62 | X"7591",X"7669",X"773A",X"7801",X"78C0",X"7977",X"7A24",X"7AC8", | |||
|
63 | X"7B63",X"7BF5",X"7C7D",X"7CFD",X"7D72",X"7DDE",X"7E41",X"7E99", | |||
|
64 | X"7EE9",X"7F2E",X"7F69",X"7F9B",X"7FC3",X"7FE0",X"7FF4",X"7FFE", | |||
|
65 | X"7FFE",X"7FF4",X"7FE0",X"7FC3",X"7F9B",X"7F69",X"7F2E",X"7EE9", | |||
|
66 | X"7E99",X"7E41",X"7DDE",X"7D72",X"7CFD",X"7C7D",X"7BF5",X"7B63", | |||
|
67 | X"7AC8",X"7A24",X"7977",X"78C0",X"7801",X"773A",X"7669",X"7591", | |||
|
68 | X"74B0",X"73C6",X"72D5",X"71DC",X"70DB",X"6FD2",X"6EC3",X"6DAB", | |||
|
69 | X"6C8D",X"6B68",X"6A3C",X"6909",X"67D0",X"6691",X"654C",X"6401", | |||
|
70 | X"62B1",X"615B",X"6000",X"5E9F",X"5D3B",X"5BD1",X"5A64",X"58F2", | |||
|
71 | X"577C",X"5603",X"5486",X"5306",X"5183",X"4FFE",X"4E75",X"4CEB", | |||
|
72 | X"4B5F",X"49D1",X"4841",X"46B0",X"451E",X"438B",X"41F8",X"4064", | |||
|
73 | X"3ED1",X"3D3D",X"3BAA",X"3A18",X"3886",X"36F6",X"3567",X"33DA", | |||
|
74 | X"324E",X"30C5",X"2F3E",X"2DBA",X"2C39",X"2ABA",X"293F",X"27C8", | |||
|
75 | X"2654",X"24E4",X"2379",X"2211",X"20AF",X"1F51",X"1DF9",X"1CA6", | |||
|
76 | X"1B58",X"1A10",X"18CE",X"1792",X"165C",X"152C",X"1404",X"12E2", | |||
|
77 | X"11C7",X"10B4",X"0FA7",X"0EA3",X"0DA5",X"0CB0",X"0BC3",X"0ADE", | |||
|
78 | X"0A01",X"092C",X"0860",X"079D",X"06E2",X"0631",X"0588",X"04E8", | |||
|
79 | X"0452",X"03C5",X"0341",X"02C6",X"0256",X"01EE",X"0191",X"013D", | |||
|
80 | X"00F3",X"00B2",X"007C",X"004F",X"002C",X"0013",X"0004",X"0000"); | |||
|
81 | ||||
|
82 | SIGNAL data_selected : STD_LOGIC_VECTOR(SIZE_ARRAY_PARAM-1 DOWNTO 0); | |||
|
83 | BEGIN | |||
|
84 | ||||
|
85 | ALL_PARAM_DEFINE: IF NB_POINT_BY_WINDOW < SIZE_ARRAY + 1 GENERATE | |||
|
86 | data_selected <= ROM_array(index); | |||
|
87 | END GENERATE ALL_PARAM_DEFINE; | |||
|
88 | ||||
|
89 | HALF_PARAM_DEFINE: IF NB_POINT_BY_WINDOW > SIZE_ARRAY AND NB_POINT_BY_WINDOW < 2 * SIZE_ARRAY + 1 GENERATE | |||
|
90 | data_selected <= ROM_array(index) WHEN index < SIZE_ARRAY ELSE | |||
|
91 | ROM_array(2*SIZE_ARRAY-1-index); | |||
|
92 | END GENERATE HALF_PARAM_DEFINE; | |||
|
93 | ||||
|
94 | data <= data_selected(SIZE_ARRAY_PARAM-1 DOWNTO SIZE_ARRAY_PARAM-SIZE_PARAM); | |||
|
95 | ||||
|
96 | END beh; |
@@ -1,2 +1,4 | |||||
1 | window_function_pkg.vhd |
|
1 | window_function_pkg.vhd | |
2 | window_function.vhd |
|
2 | window_function.vhd | |
|
3 | WF_processing.vhd | |||
|
4 | WF_rom.vhd |
@@ -26,93 +26,59 USE ieee.std_logic_1164.ALL; | |||||
26 | USE ieee.numeric_std.ALL; |
|
26 | USE ieee.numeric_std.ALL; | |
27 |
|
27 | |||
28 | LIBRARY lpp; |
|
28 | LIBRARY lpp; | |
29 | USE lpp.general_purpose.ALL; |
|
|||
30 | USE lpp.window_function_pkg.ALL; |
|
29 | USE lpp.window_function_pkg.ALL; | |
31 | USE lpp.data_type_pkg.ALL; |
|
|||
32 |
|
30 | |||
33 | ENTITY window_function IS |
|
31 | ENTITY window_function IS | |
34 | GENERIC ( |
|
32 | GENERIC ( | |
35 |
|
|
33 | SIZE_DATA : INTEGER := 16; | |
36 |
PARAM |
|
34 | SIZE_PARAM : INTEGER := 10; | |
37 | WINDOWS_PARAM : array_std_logic_vector_16b(0 TO 255) |
|
35 | NB_POINT_BY_WINDOW : INTEGER := 256 | |
38 | ); |
|
36 | ); | |
39 |
|
37 | |||
40 | PORT ( |
|
38 | PORT ( | |
41 | clk : IN STD_LOGIC; |
|
39 | clk : IN STD_LOGIC; | |
42 | rstn : IN STD_LOGIC; |
|
40 | rstn : IN STD_LOGIC; | |
43 |
|
41 | --ctrl | ||
44 | restart_window : IN STD_LOGIC; |
|
42 | restart_window : IN STD_LOGIC; | |
45 |
|
43 | --data_in | ||
46 |
data_in : IN STD_LOGIC_VECTOR( |
|
44 | data_in : IN STD_LOGIC_VECTOR(SIZE_DATA-1 DOWNTO 0); | |
47 | data_in_valid : IN STD_LOGIC; |
|
45 | data_in_valid : IN STD_LOGIC; | |
48 |
|
46 | --data_out | ||
49 |
data_out : OUT STD_LOGIC_VECTOR( |
|
47 | data_out : OUT STD_LOGIC_VECTOR(SIZE_DATA-1 DOWNTO 0); | |
50 | data_out_valid : OUT STD_LOGIC |
|
48 | data_out_valid : OUT STD_LOGIC | |
51 | ); |
|
49 | ); | |
52 |
|
50 | |||
53 | END window_function; |
|
51 | END window_function; | |
54 |
|
52 | |||
55 | ARCHITECTURE beh OF window_function IS |
|
53 | ARCHITECTURE beh OF window_function IS | |
56 | CONSTANT NB_POINT_BY_WINDOW : INTEGER := 256; |
|
|||
57 |
|
||||
58 | SIGNAL param_counter : INTEGER RANGE 0 TO NB_POINT_BY_WINDOW-1; |
|
|||
59 |
|
||||
60 | SIGNAL data_x_param : STD_LOGIC_VECTOR(DATA_SIZE + PARAM_SIZE - 1 DOWNTO 0); |
|
|||
61 |
|
54 | |||
62 |
SIGNAL |
|
55 | SIGNAL param_in : STD_LOGIC_VECTOR(SIZE_PARAM-1 DOWNTO 0); | |
63 | SIGNAL windows_param_selected : STD_LOGIC_VECTOR(PARAM_SIZE-1 DOWNTO 0); |
|
56 | SIGNAL param_index : INTEGER RANGE 0 TO NB_POINT_BY_WINDOW-1; | |
64 | SIGNAL data_in_valid_s : STD_LOGIC; |
|
57 | ||
65 | SIGNAL data_in_s : STD_LOGIC_VECTOR(DATA_SIZE-1 DOWNTO 0); |
|
|||
66 |
|
||||
67 | BEGIN |
|
58 | BEGIN | |
68 |
|
59 | |||
69 | PROCESS (clk, rstn) |
|
60 | WF_rom_1: WF_rom | |
70 | BEGIN -- PROCESS |
|
61 | GENERIC MAP ( | |
71 | IF rstn = '0' THEN -- asynchronous reset (active low) |
|
62 | SIZE_PARAM => SIZE_PARAM, | |
72 | param_counter <= 0; |
|
63 | NB_POINT_BY_WINDOW => NB_POINT_BY_WINDOW) | |
73 | ELSIF clk'EVENT AND clk = '1' THEN -- rising clock edge |
|
64 | PORT MAP ( | |
74 | IF restart_window = '1' THEN |
|
65 | data => param_in, | |
75 |
|
|
66 | index => param_index); | |
76 | ELSE |
|
67 | ||
77 | IF data_in_valid = '1' THEN |
|
68 | WF_processing_1: WF_processing | |
78 | IF param_counter < 255 THEN |
|
|||
79 | param_counter <= param_counter + 1; |
|
|||
80 | ELSE |
|
|||
81 | param_counter <= 0; |
|
|||
82 | END IF; |
|
|||
83 | END IF; |
|
|||
84 | END IF; |
|
|||
85 | END IF; |
|
|||
86 | END PROCESS; |
|
|||
87 |
|
||||
88 | data_in_valid_s <= data_in_valid; |
|
|||
89 | data_in_s <= data_in; |
|
|||
90 | windows_param_selected_s <= WINDOWS_PARAM(param_counter); |
|
|||
91 | windows_param_selected <= windows_param_selected_s(15 DOWNTO 16 - PARAM_SIZE); |
|
|||
92 |
|
||||
93 | WINDOWS_Multiplier : Multiplier |
|
|||
94 | GENERIC MAP ( |
|
69 | GENERIC MAP ( | |
95 | Input_SZ_A => DATA_SIZE, |
|
70 | SIZE_DATA => SIZE_DATA, | |
96 | Input_SZ_B => PARAM_SIZE) |
|
71 | SIZE_PARAM => SIZE_PARAM, | |
|
72 | NB_POINT_BY_WINDOW => NB_POINT_BY_WINDOW) | |||
97 | PORT MAP ( |
|
73 | PORT MAP ( | |
98 | clk => clk, |
|
74 | clk => clk, | |
99 |
r |
|
75 | rstn => rstn, | |
100 |
|
76 | restart_window => restart_window, | ||
101 |
|
|
77 | data_in => data_in, | |
102 |
|
|
78 | data_in_valid => data_in_valid, | |
103 | OP2 => windows_param_selected, |
|
79 | data_out => data_out, | |
104 |
|
80 | data_out_valid => data_out_valid, | ||
105 | RES => data_x_param); |
|
81 | param_in => param_in, | |
106 |
|
82 | param_index => param_index); | ||
107 | data_out <= data_x_param(DATA_SIZE + PARAM_SIZE-1 DOWNTO PARAM_SIZE); |
|
|||
108 |
|
||||
109 | PROCESS (clk, rstn) |
|
|||
110 | BEGIN -- PROCESS |
|
|||
111 | IF rstn = '0' THEN -- asynchronous reset (active low) |
|
|||
112 | data_out_valid <= '0'; |
|
|||
113 | ELSIF clk'EVENT AND clk = '1' THEN -- rising clock edge |
|
|||
114 | data_out_valid <= data_in_valid_s; |
|
|||
115 | END IF; |
|
|||
116 | END PROCESS; |
|
|||
117 |
|
83 | |||
118 | END beh; |
|
84 | END beh; |
@@ -24,26 +24,49 LIBRARY ieee; | |||||
24 | USE ieee.std_logic_1164.ALL; |
|
24 | USE ieee.std_logic_1164.ALL; | |
25 | USE IEEE.NUMERIC_STD.ALL; |
|
25 | USE IEEE.NUMERIC_STD.ALL; | |
26 |
|
26 | |||
27 | LIBRARY lpp; |
|
27 | PACKAGE window_function_pkg IS | |
28 | USE lpp.data_type_pkg.ALL; |
|
|||
29 |
|
28 | |||
30 | PACKAGE window_function_pkg IS |
|
|||
31 |
|
||||
32 | COMPONENT window_function |
|
29 | COMPONENT window_function | |
33 | GENERIC ( |
|
30 | GENERIC ( | |
34 |
|
|
31 | SIZE_DATA : INTEGER; | |
35 |
|
|
32 | SIZE_PARAM : INTEGER; | |
36 | WINDOWS_PARAM : array_std_logic_vector_16b(0 TO 255) |
|
33 | NB_POINT_BY_WINDOW : INTEGER); | |
37 | ); |
|
|||
38 | PORT ( |
|
34 | PORT ( | |
39 | clk : IN STD_LOGIC; |
|
35 | clk : IN STD_LOGIC; | |
40 | rstn : IN STD_LOGIC; |
|
36 | rstn : IN STD_LOGIC; | |
41 | restart_window : IN STD_LOGIC; |
|
37 | restart_window : IN STD_LOGIC; | |
42 |
data_in : IN STD_LOGIC_VECTOR( |
|
38 | data_in : IN STD_LOGIC_VECTOR(SIZE_DATA-1 DOWNTO 0); | |
43 | data_in_valid : IN STD_LOGIC; |
|
39 | data_in_valid : IN STD_LOGIC; | |
44 |
data_out : OUT STD_LOGIC_VECTOR( |
|
40 | data_out : OUT STD_LOGIC_VECTOR(SIZE_DATA-1 DOWNTO 0); | |
45 |
data_out_valid : OUT STD_LOGIC |
|
41 | data_out_valid : OUT STD_LOGIC | |
|
42 | ); | |||
46 | END COMPONENT; |
|
43 | END COMPONENT; | |
47 |
|
44 | |||
|
45 | COMPONENT WF_processing | |||
|
46 | GENERIC ( | |||
|
47 | SIZE_DATA : INTEGER; | |||
|
48 | SIZE_PARAM : INTEGER; | |||
|
49 | NB_POINT_BY_WINDOW : INTEGER); | |||
|
50 | PORT ( | |||
|
51 | clk : IN STD_LOGIC; | |||
|
52 | rstn : IN STD_LOGIC; | |||
|
53 | restart_window : IN STD_LOGIC; | |||
|
54 | data_in : IN STD_LOGIC_VECTOR(SIZE_DATA-1 DOWNTO 0); | |||
|
55 | data_in_valid : IN STD_LOGIC; | |||
|
56 | data_out : OUT STD_LOGIC_VECTOR(SIZE_DATA-1 DOWNTO 0); | |||
|
57 | data_out_valid : OUT STD_LOGIC; | |||
|
58 | param_in : IN STD_LOGIC_VECTOR(SIZE_PARAM-1 DOWNTO 0); | |||
|
59 | param_index : OUT INTEGER RANGE 0 TO NB_POINT_BY_WINDOW-1 | |||
|
60 | ); | |||
|
61 | END COMPONENT; | |||
|
62 | ||||
|
63 | COMPONENT WF_rom | |||
|
64 | GENERIC ( | |||
|
65 | SIZE_PARAM : INTEGER; | |||
|
66 | NB_POINT_BY_WINDOW : INTEGER); | |||
|
67 | PORT ( | |||
|
68 | data : OUT STD_LOGIC_VECTOR(SIZE_PARAM-1 DOWNTO 0); | |||
|
69 | index : IN INTEGER RANGE 0 TO NB_POINT_BY_WINDOW-1); | |||
|
70 | END COMPONENT; | |||
48 |
|
71 | |||
49 | END window_function_pkg; |
|
72 | END window_function_pkg; |
General Comments 0
You need to be logged in to leave comments.
Login now