Skip to content

Commit a4ab434

Browse files
committed
ALU 설계 - data processor
1 parent 6f3d7be commit a4ab434

File tree

2 files changed

+80
-0
lines changed

2 files changed

+80
-0
lines changed

lab_07/lab_7_data_processor.vhd

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
LIBRARY ieee;
2+
USE ieee.std_logic_1164.all;
3+
USE ieee.numeric_std.all;
4+
USE ieee.std_logic_unsigned.all;
5+
6+
ENTITY lab_7_data_processor IS
7+
PORT ( clk:INSTD_LOGIC;
8+
input:INSTD_LOGIC_VECTOR(3 DOWNTO 0);
9+
input_sel:INSTD_LOGIC;
10+
ac_load:INSTD_LOGIC;
11+
alu_sel:INSTD_LOGIC_VECTOR(2 DOWNTO 0);
12+
mar_in:INSTD_LOGIC_VECTOR(2 DOWNTO 0);
13+
mar_load:INSTD_LOGIC;
14+
ram_load:INSTD_LOGIC;
15+
mux_out_chk:OUTSTD_LOGIC_VECTOR(3 DOWNTO 0);
16+
output:OUTSTD_LOGIC_VECTOR(3 DOWNTO 0);--ac out
17+
data_chk:OUTSTD_LOGIC_VECTOR(3 DOWNTO 0);--alu out
18+
mar_out_chk:OUTSTD_LOGIC_VECTOR(2 DOWNTO 0);
19+
m1_out:OUTSTD_LOGIC_VECTOR(3 DOWNTO 0);--ram out
20+
m2_out:OUTSTD_LOGIC_VECTOR(3 DOWNTO 0)--ram out2
21+
);
22+
END lab_7_data_processor;
23+
----------------------------------------------------------------
24+
ARCHITECTURE structual OF lab_7_data_processor IS
25+
SIGNAL ac :STD_LOGIC_VECTOR(3 DOWNTO 0);
26+
SIGNAL mux_out :STD_LOGIC_VECTOR(3 DOWNTO 0);
27+
SIGNAL mar :STD_LOGIC_VECTOR(2 DOWNTO 0);
28+
SIGNAL ram_out :STD_LOGIC_VECTOR(3 DOWNTO 0);
29+
SIGNAL alu_out :STD_LOGIC_VECTOR(3 DOWNTO 0);
30+
31+
32+
----------------------------------------------------------------
33+
COMPONENT lab_7_asyncRAM
34+
PORT ( data_in: IN STD_LOGIC_VECTOR (3 DOWNTO 0);
35+
address: IN STD_LOGIC_VECTOR (2 DOWNTO 0);
36+
wr: IN STD_LOGIC;
37+
data_out:OUT STD_LOGIC_VECTOR (3 DOWNTO 0);
38+
m1_out:OUTSTD_LOGIC_VECTOR(3 DOWNTO 0);
39+
m2_out:OUTSTD_LOGIC_VECTOR(3 DOWNTO 0));
40+
END COMPONENT;
41+
42+
COMPONENT lab_7_simple_alu
43+
PORT ( op1, op2 : INSTD_LOGIC_VECTOR (3 DOWNTO 0);
44+
sel:IN STD_LOGIC_VECTOR (2 DOWNTO 0);
45+
alu_out: OUT STD_LOGIC_VECTOR (3 DOWNTO 0) );
46+
END COMPONENT;
47+
----------------------------------------------------------------
48+
BEGIN
49+
RAM: lab_7_asyncRAMPORT MAP(data_in=>alu_out,address=>mar,wr=>ram_load,data_out=>ram_out,m1_out=>m1_out,m2_out=>m2_out);
50+
ALU: lab_7_simple_aluPORT MAP(op1=>ac,op2=>ram_out,sel=>alu_sel,alu_out=>alu_out);
51+
----------------------------------------------------------------
52+
--MUX
53+
mux_out<=input WHEN input_sel='1' ELSE alu_out;
54+
----------------------------------------------------------------
55+
--AC
56+
PROCESS(clk,ac_load)
57+
BEGIN
58+
IF clk'EVENT AND clk='1' THEN --load
59+
IF ac_load='1' THEN
60+
ac<=mux_out;
61+
END IF;
62+
END IF;
63+
END PROCESS;
64+
----------------------------------------------------------------
65+
--MAR
66+
PROCESS(clk,mar_load)
67+
BEGIN
68+
IF clk'EVENT AND clk='1' THEN --load
69+
IF mar_load='1' THEN
70+
mar<=mar_in;
71+
END IF;
72+
END IF;
73+
END PROCESS;
74+
----------------------------------------------------------------
75+
output<=ac;
76+
data_chk<=alu_out;
77+
mux_out_chk<=mux_out;
78+
mar_out_chk<=mar;
79+
END structual;
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
d

0 commit comments

Comments
 (0)