source: PROJECT_CORE_MPI/MPI_HCL/TRUNK/CORE_MPI/MPI_CORE_SCHEDULER.vhd @ 100

Last change on this file since 100 was 100, checked in by rolagamo, 10 years ago
File size: 3.3 KB
Line 
1----------------------------------------------------------------------------------
2-- Company:
3-- Engineer:
4--
5-- Create Date:    12:16:03 06/13/2011
6-- Design Name:
7-- Module Name:    MPI_CORE_SCHEDULER - Behavioral
8-- Project Name:
9-- Target Devices:
10-- Tool versions:
11-- Description:
12--
13-- Dependencies:
14--
15-- Revision:
16-- Revision 0.01 - File Created
17-- Additional Comments:
18--
19----------------------------------------------------------------------------------
20library IEEE;
21use IEEE.STD_LOGIC_1164.ALL;
22use IEEE.STD_LOGIC_ARITH.ALL;
23use IEEE.STD_LOGIC_UNSIGNED.ALL;
24
25---- Uncomment the following library declaration if instantiating
26---- any Xilinx primitives in this code.
27--library UNISIM;
28--use UNISIM.VComponents.all;
29
30entity MPI_CORE_SCHEDULER is
31    Port ( clk : in  STD_LOGIC;
32           reset : in  STD_LOGIC;
33           priority_rotation : in  STD_LOGIC;
34           instruction_fifo_empty : in  STD_LOGIC;
35           instruction_fifo_data : in  STD_LOGIC_VECTOR (7 downto 0);
36           instruction_available : out  STD_LOGIC;
37                         
38                          get_request_fifo_data : in  STD_LOGIC_VECTOR (7 downto 0);
39                          get_request_fifo_empty : in  STD_LOGIC;
40           instruction_fifo_rd_en : out  STD_LOGIC;
41           get_request_fifo_rd_en : out  STD_LOGIC;
42                                 
43           fifo_selected : out  STD_LOGIC;
44           fifo_empty : out  STD_LOGIC;
45           fifo_rd_en : in  STD_LOGIC;
46           data_out : out  STD_LOGIC_VECTOR (7 downto 0)
47                          );
48end MPI_CORE_SCHEDULER;
49
50architecture Behavioral of MPI_CORE_SCHEDULER is
51
52signal sel_signal : std_logic;
53-- declaration des composants du scheduler
54COMPONENT CDEMUX1
55        PORT(
56                di : IN std_logic;
57                sel : IN std_logic;         
58                do1 : OUT std_logic;
59                do2 : OUT std_logic
60                );
61        END COMPONENT;
62       
63COMPONENT CMUXP1
64        PORT(
65                di1 : IN std_logic;
66                di2 : IN std_logic;
67                sel : IN std_logic;         
68                do : OUT std_logic
69                );
70        END COMPONENT;
71
72COMPONENT CMUX8
73        PORT(
74                di1 : IN std_logic_vector(7 downto 0);
75                di2 : IN std_logic_vector(7 downto 0);
76                sel : IN std_logic;         
77                do : OUT std_logic_vector(7 downto 0)
78                );
79        END COMPONENT;
80       
81COMPONENT round_robbin_machine
82        PORT(
83                get_request_fifo_empty : IN std_logic;
84                instruction_fifo_empty : IN std_logic;
85                priority_rotation : IN std_logic;
86                clk : IN std_logic;
87                reset : IN std_logic;         
88                fifo_selected : OUT std_logic;
89                instruction_available : OUT std_logic;
90                mux_sel : OUT std_logic
91                );
92END COMPONENT;
93begin
94-- instances des composants
95
96
97mpi_core_rr_machine: round_robbin_machine PORT MAP(
98                get_request_fifo_empty => get_request_fifo_empty,
99                instruction_fifo_empty => instruction_fifo_empty,
100                priority_rotation => priority_rotation ,
101                clk => clk,
102                fifo_selected => fifo_selected,
103                instruction_available => instruction_available ,
104                reset => reset,
105                mux_sel => sel_signal
106        );
107
108
109Fifo_empty_MUX: CMUXP1 PORT MAP(
110                di1 => instruction_fifo_empty ,
111                di2 => get_request_fifo_empty,
112                do => fifo_empty,
113                sel => sel_signal
114        );
115       
116       
117
118rd_en_demux: CDEMUX1 PORT MAP(
119                di => fifo_rd_en ,
120                sel => sel_signal,
121                do1 => instruction_fifo_rd_en,
122                do2 => get_request_fifo_rd_en
123        );
124       
125data_MUX8: CMUX8 PORT MAP(
126                di1 => instruction_fifo_data ,
127                di2 => get_request_fifo_data,
128                sel => sel_signal,
129                do => data_out
130        );
131
132
133
134end Behavioral;
135
Note: See TracBrowser for help on using the repository browser.