@@ -0,0 +1,80 | |||
|
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 : Martin Morlot | |
|
20 | -- Mail : martin.morlot@lpp.polytechnique.fr | |
|
21 | ------------------------------------------------------------------------------- | |
|
22 | library IEEE; | |
|
23 | use IEEE.numeric_std.all; | |
|
24 | use IEEE.std_logic_1164.all; | |
|
25 | ||
|
26 | entity ReUse_CTRLR is | |
|
27 | port( | |
|
28 | clk : in std_logic; | |
|
29 | reset : in std_logic; | |
|
30 | ||
|
31 | SetReUse : in std_logic_vector(4 downto 0); | |
|
32 | Statu : in std_logic_vector(3 downto 0); | |
|
33 | ||
|
34 | ReUse : out std_logic_vector(4 downto 0) | |
|
35 | ); | |
|
36 | end entity; | |
|
37 | ||
|
38 | ||
|
39 | architecture ar_ReUse_CTRLR of ReUse_CTRLR is | |
|
40 | ||
|
41 | signal ResetReUse : std_logic_vector(4 downto 0); | |
|
42 | signal MatrixParam : integer; | |
|
43 | signal MatrixParam_Reg : integer; | |
|
44 | ||
|
45 | begin | |
|
46 | ||
|
47 | ||
|
48 | ||
|
49 | process (clk,reset) | |
|
50 | -- variable MatrixParam : integer; | |
|
51 | begin | |
|
52 | -- MatrixParam := to_integer(unsigned(Statu)); | |
|
53 | ||
|
54 | if(reset='0')then | |
|
55 | ResetReUse <= (others => '1'); | |
|
56 | MatrixParam_Reg <= 0; | |
|
57 | ||
|
58 | ||
|
59 | elsif(clk' event and clk='1')then | |
|
60 | MatrixParam_Reg <= MatrixParam; | |
|
61 | ||
|
62 | if(MatrixParam_Reg = 7 and MatrixParam = 8)then -- On videra FIFO(B1) a sa derni�re utilisation PARAM = 11 | |
|
63 | ResetReUse(0) <= '0'; | |
|
64 | elsif(MatrixParam_Reg = 8 and MatrixParam = 9)then -- On videra FIFO(B2) a sa derni�re utilisation PARAM = 12 | |
|
65 | ResetReUse(1) <= '0'; | |
|
66 | elsif(MatrixParam_Reg = 9 and MatrixParam = 10)then -- On videra FIFO(B3) a sa derni�re utilisation PARAM = 13 | |
|
67 | ResetReUse(2) <= '0'; | |
|
68 | elsif(MatrixParam_Reg = 10 and MatrixParam = 11)then -- On videra FIFO(E1) a sa derni�re utilisation PARAM = 14 | |
|
69 | ResetReUse(3) <= '0'; | |
|
70 | elsif(MatrixParam_Reg = 14 and MatrixParam = 15)then -- On videra FIFO(E2) a sa derni�re utilisation PARAM = 15 | |
|
71 | ResetReUse(4) <= '0'; | |
|
72 | end if; | |
|
73 | ||
|
74 | end if; | |
|
75 | end process; | |
|
76 | ||
|
77 | MatrixParam <= to_integer(unsigned(Statu)); | |
|
78 | ReUse <= SetReUse and ResetReUse; | |
|
79 | ||
|
80 | end architecture; No newline at end of file |
@@ -22,10 +22,6 | |||
|
22 | 22 | LIBRARY IEEE; |
|
23 | 23 | USE IEEE.numeric_std.ALL; |
|
24 | 24 | USE IEEE.std_logic_1164.ALL; |
|
25 | LIBRARY lpp; | |
|
26 | USE lpp.general_purpose.ALL; | |
|
27 | ||
|
28 | ||
|
29 | 25 | |
|
30 | 26 | ENTITY Adder IS |
|
31 | 27 | GENERIC( |
@@ -22,9 +22,6 | |||
|
22 | 22 | library IEEE; |
|
23 | 23 | use IEEE.numeric_std.all; |
|
24 | 24 | use IEEE.std_logic_1164.all; |
|
25 | library lpp; | |
|
26 | use lpp.general_purpose.all; | |
|
27 | ||
|
28 | 25 | |
|
29 | 26 | --IDLE =00 MAC =01 MULT =10 ADD =11 |
|
30 | 27 |
@@ -22,10 +22,6 | |||
|
22 | 22 | library IEEE; |
|
23 | 23 | use IEEE.numeric_std.all; |
|
24 | 24 | use IEEE.std_logic_1164.all; |
|
25 | library lpp; | |
|
26 | use lpp.general_purpose.all; | |
|
27 | ||
|
28 | ||
|
29 | 25 | |
|
30 | 26 | entity MAC_MUX is |
|
31 | 27 | generic( |
@@ -22,9 +22,6 | |||
|
22 | 22 | library IEEE; |
|
23 | 23 | use IEEE.numeric_std.all; |
|
24 | 24 | use IEEE.std_logic_1164.all; |
|
25 | library lpp; | |
|
26 | use lpp.general_purpose.all; | |
|
27 | ||
|
28 | 25 | |
|
29 | 26 | |
|
30 | 27 | entity MAC_MUX2 is |
@@ -22,10 +22,6 | |||
|
22 | 22 | library IEEE; |
|
23 | 23 | use IEEE.numeric_std.all; |
|
24 | 24 | use IEEE.std_logic_1164.all; |
|
25 | library lpp; | |
|
26 | use lpp.general_purpose.all; | |
|
27 | ||
|
28 | ||
|
29 | 25 | |
|
30 | 26 | entity MAC_REG is |
|
31 | 27 | generic(size : integer := 16); |
@@ -23,11 +23,6 library IEEE; | |||
|
23 | 23 | use IEEE.numeric_std.all; |
|
24 | 24 | use IEEE.std_logic_1164.all; |
|
25 | 25 | |
|
26 | library lpp; | |
|
27 | use lpp.general_purpose.all; | |
|
28 | ||
|
29 | ||
|
30 | ||
|
31 | 26 | entity Multiplier is |
|
32 | 27 | generic( |
|
33 | 28 | Input_SZ_A : integer := 16; |
@@ -22,7 +22,6 | |||
|
22 | 22 | library IEEE; |
|
23 | 23 | use IEEE.numeric_std.all; |
|
24 | 24 | use IEEE.std_logic_1164.all; |
|
25 | library lpp; | |
|
26 | 25 | use lpp.general_purpose.all; |
|
27 | 26 | |
|
28 | 27 | --! Driver de l'ALU |
@@ -22,8 +22,8 | |||
|
22 | 22 | library IEEE; |
|
23 | 23 | use IEEE.std_logic_1164.all; |
|
24 | 24 | use IEEE.numeric_std.all; |
|
25 | library lpp; | |
|
26 | use lpp.lpp_matrix.all; | |
|
25 | --library lpp; | |
|
26 | --use lpp.lpp_matrix.all; | |
|
27 | 27 | |
|
28 | 28 | entity MatriceSpectrale is |
|
29 | 29 | generic( |
@@ -34,14 +34,17 entity MatriceSpectrale is | |||
|
34 | 34 | rstn : in std_logic; |
|
35 | 35 | |
|
36 | 36 | FifoIN_Full : in std_logic_vector(4 downto 0); |
|
37 | SetReUse : in std_logic_vector(4 downto 0); | |
|
37 | 38 | FifoOUT_Full : in std_logic_vector(1 downto 0); |
|
38 |
Data_IN : in std_logic_vector( |
|
|
39 | Data_IN : in std_logic_vector((5*Input_SZ)-1 downto 0); | |
|
39 | 40 | ACQ : in std_logic; |
|
40 | 41 | FlagError : out std_logic; |
|
41 | 42 | Pong : out std_logic; |
|
43 | Statu : out std_logic_vector(3 downto 0); | |
|
42 | 44 | Write : out std_logic_vector(1 downto 0); |
|
43 | 45 | Read : out std_logic_vector(4 downto 0); |
|
44 |
|
|
|
46 | ReUse : out std_logic_vector(4 downto 0); | |
|
47 | Data_OUT : out std_logic_vector((2*Result_SZ)-1 downto 0) | |
|
45 | 48 | ); |
|
46 | 49 | end entity; |
|
47 | 50 | |
@@ -59,18 +62,23 signal TopSM_Data2 : std_logic_vect | |||
|
59 | 62 | |
|
60 | 63 | begin |
|
61 | 64 | |
|
62 | TopSM : TopSpecMatrix | |
|
65 | CTRL0 : entity work.ReUse_CTRLR | |
|
66 | port map(clkm,rstn,SetReUse,TopSM_Statu,ReUse); | |
|
67 | ||
|
68 | ||
|
69 | TopSM : entity work.TopSpecMatrix | |
|
63 | 70 | generic map (Input_SZ) |
|
64 | 71 | port map(clkm,rstn,Matrix_Write,Matrix_Read,FifoIN_Full,Data_IN,TopSM_Start,Read,TopSM_Statu,TopSM_Data1,TopSM_Data2); |
|
65 | 72 | |
|
66 | SM : SpectralMatrix | |
|
73 | SM : entity work.SpectralMatrix | |
|
67 | 74 | generic map (Input_SZ,Result_SZ) |
|
68 | 75 | port map(clkm,rstn,TopSM_Start,TopSM_Data1,TopSM_Data2,TopSM_Statu,Matrix_Read,Matrix_Write,Matrix_Result); |
|
69 | 76 | |
|
70 | DISP : Dispatch | |
|
77 | DISP : entity work.Dispatch | |
|
71 | 78 | generic map(Result_SZ) |
|
72 | 79 | port map(clkm,rstn,ACQ,Matrix_Result,Matrix_Write,FifoOUT_Full,Data_OUT,Write,Pong,FlagError); |
|
73 | 80 | |
|
81 | Statu <= TopSM_Statu; | |
|
74 | 82 | |
|
75 | 83 | end architecture; |
|
76 | 84 |
@@ -65,14 +65,17 component MatriceSpectrale is | |||
|
65 | 65 | rstn : in std_logic; |
|
66 | 66 | |
|
67 | 67 | FifoIN_Full : in std_logic_vector(4 downto 0); |
|
68 | SetReUse : in std_logic_vector(4 downto 0); | |
|
68 | 69 | FifoOUT_Full : in std_logic_vector(1 downto 0); |
|
69 |
Data_IN : in std_logic_vector( |
|
|
70 | Data_IN : in std_logic_vector((5*Input_SZ)-1 downto 0); | |
|
70 | 71 | ACQ : in std_logic; |
|
71 | 72 | FlagError : out std_logic; |
|
72 | 73 | Pong : out std_logic; |
|
74 | Statu : out std_logic_vector(3 downto 0); | |
|
73 | 75 | Write : out std_logic_vector(1 downto 0); |
|
74 | 76 | Read : out std_logic_vector(4 downto 0); |
|
75 |
|
|
|
77 | ReUse : out std_logic_vector(4 downto 0); | |
|
78 | Data_OUT : out std_logic_vector((2*Result_SZ)-1 downto 0) | |
|
76 | 79 | ); |
|
77 | 80 | end component; |
|
78 | 81 | |
@@ -250,4 +253,14 component ALU_Driver is | |||
|
250 | 253 | ); |
|
251 | 254 | end component; |
|
252 | 255 | |
|
256 | component ReUse_CTRLR is | |
|
257 | port( | |
|
258 | clk : in std_logic; | |
|
259 | reset : in std_logic; | |
|
260 | SetReUse : in std_logic_vector(4 downto 0); | |
|
261 | Statu : in std_logic_vector(3 downto 0); | |
|
262 | ReUse : out std_logic_vector(4 downto 0) | |
|
263 | ); | |
|
264 | end component; | |
|
265 | ||
|
253 | 266 | end; No newline at end of file |
General Comments 0
You need to be logged in to leave comments.
Login now