-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathIntegrated.vhd
111 lines (93 loc) · 2 KB
/
Integrated.vhd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.std_logic_unsigned.all;
entity DP_C is
port(
clk: in std_logic;
rst: in std_logic
);
end entity;
architecture DP_C_arc of DP_C is
-- for datapath
signal result: std_logic_vector(31 downto 0);
signal instruction: std_logic_vector(31 downto 0);
-- out from datapath into controller
signal NZCV: std_logic_vector(3 downto 0):= "0000";
-- Control signals
-- Actrl
signal op: std_logic_vector(3 downto 0);
-- Bctrl
signal p:std_logic;
-- Main Controller
signal PW: std_logic;
signal IW: std_logic;
signal DW: std_logic;
signal AW: std_logic;
signal BW: std_logic;
signal resW: std_logic;
signal Fset: std_logic;
signal RW: std_logic;
signal MR: std_logic;
signal MW: std_logic;
signal IorD: std_logic;
signal Asrc1: std_logic;
signal Asrc2: std_logic_vector(1 downto 0);
signal Rsrc: std_logic;
signal M2R: std_logic;
signal I: std_logic;
signal M: std_logic;
begin
DP:
entity WORK.datapath port map(
clk=>clk,
rst=>rst,
op=>op,
p=>p,
PW=>PW,
IW=>IW,
DW=>DW,
AW=>AW,
BW=>BW,
resW=>resW,
Fset=>Fset,
RW=>RW,
MR=>MR,
MW=>MW,
IorD=>IorD,
Asrc1=>Asrc1,
Asrc2=>Asrc2,
Rsrc=>Rsrc,
M2R=>M2R,
I=>I,
M=>M,
out_flags=>NZCV,
instruction=>instruction,
result=>result
);
Controller:
entity WORK.Controller port map(
clk=>clk,
rst=>rst,
NZCV=>NZCV,
ins=>instruction,
op=>op,
p=>p,
PW=>PW,
IW=>IW,
DW=>DW,
AW=>AW,
BW=>BW,
resW=>resW,
Fset=>Fset,
RW=>RW,
MR=>MR,
MW=>MW,
IorD=>IorD,
Asrc1=>Asrc1,
Asrc2=>Asrc2,
Rsrc=>Rsrc,
M2R=>M2R,
I=>I,
M=>M
);
end architecture;