Skip to content

Commit 02bc380

Browse files
committed
Adder / subtractor module in ModelSim
1 parent 58e8075 commit 02bc380

File tree

5 files changed

+251
-0
lines changed

5 files changed

+251
-0
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
library ieee;
2+
use ieee.std_logic_1164.all;
3+
4+
entity four_bits_adder_subtractor is
5+
port (
6+
A, B : in std_logic_vector(3 downto 0);
7+
op : in std_logic;
8+
Res : out std_logic_vector(3 downto 0);
9+
ovf, cout : out std_logic
10+
);
11+
end entity;
12+
13+
architecture arch of four_bits_adder_subtractor is
14+
15+
component one_bit_adder is
16+
port (
17+
a, b : in std_logic;
18+
cin : in std_logic;
19+
s : out std_logic;
20+
cout : out std_logic
21+
);
22+
end component;
23+
24+
signal c : std_logic_vector(3 downto 0);
25+
signal nB : std_logic_vector(3 downto 0);
26+
27+
begin
28+
29+
nB <= (op & op & op & op) xor B;
30+
31+
r0: one_bit_adder port map (a => A(0), b => nB(0), cin => op, s => Res(0), cout => c(0));
32+
r1: one_bit_adder port map (a => A(1), b => nB(1), cin => c(0), s => Res(1), cout => c(1));
33+
r2: one_bit_adder port map (a => A(2), b => nB(2), cin => c(1), s => Res(2), cout => c(2));
34+
r3: one_bit_adder port map (a => A(3), b => nB(3), cin => c(2), s => Res(3), cout => c(3));
35+
36+
ovf <= c(3) xor c(2);
37+
cout <= c(3);
38+
39+
end architecture;
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
library ieee;
2+
use ieee.std_logic_1164.all;
3+
4+
entity four_bits_adder_subtractor_tb is
5+
end entity;
6+
7+
architecture sim of four_bits_adder_subtractor_tb is
8+
9+
component four_bits_adder_subtractor is
10+
port (
11+
A, B : in std_logic_vector(3 downto 0);
12+
op : in std_logic;
13+
Res : out std_logic_vector(3 downto 0);
14+
ovf, cout : out std_logic
15+
);
16+
end component;
17+
18+
signal A, B : std_logic_vector(3 downto 0);
19+
signal op : std_logic;
20+
signal Res : std_logic_vector(3 downto 0);
21+
signal ovf, cout : std_logic;
22+
23+
begin
24+
25+
DUT: four_bits_adder_subtractor port map (A, B, op, Res, ovf, cout);
26+
27+
process is
28+
begin
29+
30+
op <= '0'; --! ADDITION
31+
32+
A <= "0000"; B <= "0000";
33+
wait for 10 ns;
34+
35+
A <= "0100"; B <= "1001";
36+
wait for 10 ns;
37+
38+
A <= "1010"; B <= "0100";
39+
wait for 10 ns;
40+
41+
A <= "1111"; B <= "0001";
42+
wait for 10 ns;
43+
44+
A <= "1010"; B <= "1001";
45+
wait for 10 ns;
46+
47+
A <= "1000"; B <= "1001";
48+
wait for 10 ns;
49+
50+
op <= '1'; --! SUBTRACTION
51+
52+
A <= "0000"; B <= "0000";
53+
wait for 10 ns;
54+
55+
A <= "0100"; B <= "1001";
56+
wait for 10 ns;
57+
58+
A <= "1010"; B <= "0100";
59+
wait for 10 ns;
60+
61+
A <= "1111"; B <= "0001";
62+
wait for 10 ns;
63+
64+
A <= "1010"; B <= "1001";
65+
wait for 10 ns;
66+
67+
A <= "1000"; B <= "1001";
68+
wait for 10 ns;
69+
70+
wait;
71+
72+
end process;
73+
74+
end architecture;
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
library ieee;
2+
use ieee.std_logic_1164.all;
3+
4+
entity one_bit_adder is
5+
port (
6+
a, b : in std_logic;
7+
cin : in std_logic;
8+
s : out std_logic;
9+
cout : out std_logic
10+
);
11+
end entity;
12+
13+
architecture arch of one_bit_adder is
14+
begin
15+
16+
s <= a xor b xor cin;
17+
cout <= (a and b) or ((a xor b) and cin);
18+
19+
end architecture;
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
Compile of one_bit_adder.vhd was successful.
2+
vcom -work work -2002 -explicit -stats=none {C:/Users/Choaib ELMADI/Documents/D.I.F.Y/2. Electronics/2. FPGA/Getting Started with VHDL/Projects/ModelSim/FourBitsAdderSubtractor/four_bits_adder_subtractor.vhd}
3+
Model Technology ModelSim - Intel FPGA Edition vcom 2020.1 Compiler 2020.02 Feb 28 2020
4+
-- Loading package STANDARD
5+
-- Loading package TEXTIO
6+
-- Loading package std_logic_1164
7+
-- Compiling entity four_bits_adder_subtractor
8+
-- Compiling architecture arch of four_bits_adder_subtractor
9+
10+
11+
vcom -work work -2002 -explicit -stats=none {C:/Users/Choaib ELMADI/Documents/D.I.F.Y/2. Electronics/2. FPGA/Getting Started with VHDL/Projects/ModelSim/FourBitsAdderSubtractor/four_bits_adder_subtractor_tb.vhd}
12+
Model Technology ModelSim - Intel FPGA Edition vcom 2020.1 Compiler 2020.02 Feb 28 2020
13+
-- Loading package STANDARD
14+
-- Loading package TEXTIO
15+
-- Loading package std_logic_1164
16+
-- Compiling entity four_bits_adder_subtractor_tb
17+
-- Compiling architecture sim of four_bits_adder_subtractor_tb
18+
19+
20+
vsim -gui work.four_bits_adder_subtractor_tb
21+
vsim -gui work.four_bits_adder_subtractor_tb
22+
Start time: 08:48:27 on Nov 30,2024
23+
Loading std.standard
24+
Loading std.textio(body)
25+
Loading ieee.std_logic_1164(body)
26+
Loading work.four_bits_adder_subtractor_tb(sim)
27+
Loading work.four_bits_adder_subtractor(arch)
28+
Loading work.one_bit_adder(arch)
29+
add wave -position insertpoint \
30+
sim:/four_bits_adder_subtractor_tb/A \
31+
sim:/four_bits_adder_subtractor_tb/B \
32+
sim:/four_bits_adder_subtractor_tb/Sum \
33+
sim:/four_bits_adder_subtractor_tb/ovf \
34+
sim:/four_bits_adder_subtractor_tb/cout
35+
run
36+
vcom -work work -2002 -explicit -stats=none {C:/Users/Choaib ELMADI/Documents/D.I.F.Y/2. Electronics/2. FPGA/Getting Started with VHDL/Projects/ModelSim/FourBitsAdderSubtractor/four_bits_adder_subtractor.vhd}
37+
Model Technology ModelSim - Intel FPGA Edition vcom 2020.1 Compiler 2020.02 Feb 28 2020
38+
-- Loading package STANDARD
39+
-- Loading package TEXTIO
40+
-- Loading package std_logic_1164
41+
-- Compiling entity four_bits_adder_subtractor
42+
-- Compiling architecture arch of four_bits_adder_subtractor
43+
** Error: C:/Users/Choaib ELMADI/Documents/D.I.F.Y/2. Electronics/2. FPGA/Getting Started with VHDL/Projects/ModelSim/FourBitsAdderSubtractor/four_bits_adder_subtractor.vhd(29): Illegal concurrent statement.
44+
** Error: C:/Users/Choaib ELMADI/Documents/D.I.F.Y/2. Electronics/2. FPGA/Getting Started with VHDL/Projects/ModelSim/FourBitsAdderSubtractor/four_bits_adder_subtractor.vhd(35): (vcom-1136) Unknown identifier "Sum".
45+
** Error: C:/Users/Choaib ELMADI/Documents/D.I.F.Y/2. Electronics/2. FPGA/Getting Started with VHDL/Projects/ModelSim/FourBitsAdderSubtractor/four_bits_adder_subtractor.vhd(35): (vcom-1454) Formal "s" of mode OUT cannot be associated with an expression.
46+
** Error: C:/Users/Choaib ELMADI/Documents/D.I.F.Y/2. Electronics/2. FPGA/Getting Started with VHDL/Projects/ModelSim/FourBitsAdderSubtractor/four_bits_adder_subtractor.vhd(36): (vcom-1136) Unknown identifier "Sum".
47+
** Error: C:/Users/Choaib ELMADI/Documents/D.I.F.Y/2. Electronics/2. FPGA/Getting Started with VHDL/Projects/ModelSim/FourBitsAdderSubtractor/four_bits_adder_subtractor.vhd(36): (vcom-1454) Formal "s" of mode OUT cannot be associated with an expression.
48+
** Error: C:/Users/Choaib ELMADI/Documents/D.I.F.Y/2. Electronics/2. FPGA/Getting Started with VHDL/Projects/ModelSim/FourBitsAdderSubtractor/four_bits_adder_subtractor.vhd(37): (vcom-1136) Unknown identifier "Sum".
49+
** Error: C:/Users/Choaib ELMADI/Documents/D.I.F.Y/2. Electronics/2. FPGA/Getting Started with VHDL/Projects/ModelSim/FourBitsAdderSubtractor/four_bits_adder_subtractor.vhd(37): (vcom-1454) Formal "s" of mode OUT cannot be associated with an expression.
50+
** Error: C:/Users/Choaib ELMADI/Documents/D.I.F.Y/2. Electronics/2. FPGA/Getting Started with VHDL/Projects/ModelSim/FourBitsAdderSubtractor/four_bits_adder_subtractor.vhd(38): (vcom-1136) Unknown identifier "Sum".
51+
** Error: C:/Users/Choaib ELMADI/Documents/D.I.F.Y/2. Electronics/2. FPGA/Getting Started with VHDL/Projects/ModelSim/FourBitsAdderSubtractor/four_bits_adder_subtractor.vhd(38): (vcom-1454) Formal "s" of mode OUT cannot be associated with an expression.
52+
** Note: C:/Users/Choaib ELMADI/Documents/D.I.F.Y/2. Electronics/2. FPGA/Getting Started with VHDL/Projects/ModelSim/FourBitsAdderSubtractor/four_bits_adder_subtractor.vhd(43): VHDL Compiler exiting
53+
54+
55+
vcom -work work -2002 -explicit -stats=none {C:/Users/Choaib ELMADI/Documents/D.I.F.Y/2. Electronics/2. FPGA/Getting Started with VHDL/Projects/ModelSim/FourBitsAdderSubtractor/four_bits_adder_subtractor.vhd}
56+
Model Technology ModelSim - Intel FPGA Edition vcom 2020.1 Compiler 2020.02 Feb 28 2020
57+
-- Loading package STANDARD
58+
-- Loading package TEXTIO
59+
-- Loading package std_logic_1164
60+
-- Compiling entity four_bits_adder_subtractor
61+
-- Compiling architecture arch of four_bits_adder_subtractor
62+
** Error: C:/Users/Choaib ELMADI/Documents/D.I.F.Y/2. Electronics/2. FPGA/Getting Started with VHDL/Projects/ModelSim/FourBitsAdderSubtractor/four_bits_adder_subtractor.vhd(29): Illegal concurrent statement.
63+
** Note: C:/Users/Choaib ELMADI/Documents/D.I.F.Y/2. Electronics/2. FPGA/Getting Started with VHDL/Projects/ModelSim/FourBitsAdderSubtractor/four_bits_adder_subtractor.vhd(43): VHDL Compiler exiting
64+
65+
66+
vcom -work work -2002 -explicit -stats=none {C:/Users/Choaib ELMADI/Documents/D.I.F.Y/2. Electronics/2. FPGA/Getting Started with VHDL/Projects/ModelSim/FourBitsAdderSubtractor/four_bits_adder_subtractor.vhd}
67+
Model Technology ModelSim - Intel FPGA Edition vcom 2020.1 Compiler 2020.02 Feb 28 2020
68+
-- Loading package STANDARD
69+
-- Loading package TEXTIO
70+
-- Loading package std_logic_1164
71+
-- Compiling entity four_bits_adder_subtractor
72+
-- Compiling architecture arch of four_bits_adder_subtractor
73+
** Warning: C:/Users/Choaib ELMADI/Documents/D.I.F.Y/2. Electronics/2. FPGA/Getting Started with VHDL/Projects/ModelSim/FourBitsAdderSubtractor/four_bits_adder_subtractor.vhd(43): (vcom-1090) Possible infinite loop: Process contains no WAIT statement.
74+
75+
76+
vcom -work work -2002 -explicit -stats=none {C:/Users/Choaib ELMADI/Documents/D.I.F.Y/2. Electronics/2. FPGA/Getting Started with VHDL/Projects/ModelSim/FourBitsAdderSubtractor/four_bits_adder_subtractor.vhd}
77+
Model Technology ModelSim - Intel FPGA Edition vcom 2020.1 Compiler 2020.02 Feb 28 2020
78+
-- Loading package STANDARD
79+
-- Loading package TEXTIO
80+
-- Loading package std_logic_1164
81+
-- Compiling entity four_bits_adder_subtractor
82+
-- Compiling architecture arch of four_bits_adder_subtractor
83+
84+
85+
vcom -work work -2002 -explicit -stats=none {C:/Users/Choaib ELMADI/Documents/D.I.F.Y/2. Electronics/2. FPGA/Getting Started with VHDL/Projects/ModelSim/FourBitsAdderSubtractor/four_bits_adder_subtractor_tb.vhd}
86+
Model Technology ModelSim - Intel FPGA Edition vcom 2020.1 Compiler 2020.02 Feb 28 2020
87+
-- Loading package STANDARD
88+
-- Loading package TEXTIO
89+
-- Loading package std_logic_1164
90+
-- Compiling entity four_bits_adder_subtractor_tb
91+
-- Compiling architecture sim of four_bits_adder_subtractor_tb
92+
93+
94+
vsim -gui work.four_bits_adder_subtractor_tb
95+
End time: 09:11:41 on Nov 30,2024, Elapsed time: 0:23:14
96+
Errors: 0, Warnings: 15
97+
vsim -gui work.four_bits_adder_subtractor_tb
98+
Start time: 09:11:41 on Nov 30,2024
99+
Loading std.standard
100+
Loading std.textio(body)
101+
Loading ieee.std_logic_1164(body)
102+
Loading work.four_bits_adder_subtractor_tb(sim)
103+
Loading work.four_bits_adder_subtractor(arch)
104+
Loading work.one_bit_adder(arch)
105+
add wave -position insertpoint \
106+
sim:/four_bits_adder_subtractor_tb/A \
107+
sim:/four_bits_adder_subtractor_tb/B \
108+
sim:/four_bits_adder_subtractor_tb/op \
109+
sim:/four_bits_adder_subtractor_tb/Res \
110+
sim:/four_bits_adder_subtractor_tb/ovf \
111+
sim:/four_bits_adder_subtractor_tb/cout
112+
restart
113+
run
114+
GetModuleFileName: The specified module could not be found.
115+
116+
117+
quit -sim
118+
End time: 09:20:08 on Nov 30,2024, Elapsed time: 0:08:27
119+
Errors: 0, Warnings: 1
48 KB
Binary file not shown.

0 commit comments

Comments
 (0)