Logikai szimulátor
Főoldal
Osztályok
Fájl
Fájllista
Fájlelemek
Összes
Osztályok
Fájl
Függvények
Változók
logic.cpp
Ugrás a fájl dokumentációjához.
1
#include <iostream>
2
#include <list>
3
#include <vector>
4
#include <functional>
5
#include "
and_block.hpp
"
6
#include "
nand_block.hpp
"
7
#include "
or_block.hpp
"
8
#include "
inverter_block.hpp
"
9
#include "
logic_vm.hpp
"
10
11
int
main
() {
12
13
// Simple Flip-Flop
14
logic_vm
VM(
"FlipFlop"
);
15
16
VM.
add
(
new
nand_block
(
"nand1"
));
17
VM.
element
(
"nand1"
).
add_port
(
"A"
,
"input"
);
18
VM.
element
(
"nand1"
).
add_port
(
"B"
,
"input"
);
19
VM.
element
(
"nand1"
).
add_port
(
"Y1"
,
"output"
);
20
21
VM.
add
(
new
nand_block
(
"nand2"
));
22
VM.
element
(
"nand2"
).
add_port
(
"C"
,
"input"
);
23
VM.
element
(
"nand2"
).
add_port
(
"D"
,
"input"
);
24
VM.
element
(
"nand2"
).
add_port
(
"Y2"
,
"output"
);
25
26
VM.
element
(
"nand1"
).
connect
(
"Y1"
, VM.
element
(
"nand2"
),
"C"
);
27
VM.
element
(
"nand2"
).
connect
(
"Y2"
, VM.
element
(
"nand1"
),
"B"
);
28
VM.
element
(
"nand1"
).
set_port
(
"A"
,
true
);
29
VM.
run
(6);
30
VM.
element
(
"nand1"
).
set_port
(
"A"
,
false
);
31
VM.
element
(
"nand1"
).
set_port
(
"D"
,
true
);
32
VM.
run
(6);
33
VM.
info
();
34
35
// Ring osc.
36
logic_vm
VM2(
"Ringoszcillator"
);
37
VM2.
add
(
new
inverter_block
(
"inv1"
));
38
VM2.
element
(
"inv1"
).
add_port
(
"IN"
,
"input"
);
39
VM2.
element
(
"inv1"
).
add_port
(
"OUT"
,
"output"
);
40
VM2.
add
(
new
inverter_block
(
"inv2"
));
41
VM2.
element
(
"inv2"
).
add_port
(
"IN"
,
"input"
);
42
VM2.
element
(
"inv2"
).
add_port
(
"OUT"
,
"output"
);
43
VM2.
add
(
new
inverter_block
(
"inv3"
));
44
VM2.
element
(
"inv3"
).
add_port
(
"IN"
,
"input"
);
45
VM2.
element
(
"inv3"
).
add_port
(
"OUT"
,
"output"
);
46
VM2.
element
(
"inv1"
).
connect
(
"OUT"
, VM2.
element
(
"inv2"
),
"IN"
);
47
VM2.
element
(
"inv2"
).
connect
(
"OUT"
, VM2.
element
(
"inv3"
),
"IN"
);
48
VM2.
element
(
"inv3"
).
connect
(
"OUT"
, VM2.
element
(
"inv1"
),
"IN"
);
49
50
VM2.
element
(
"inv1"
).
set_port
(
"IN"
,
true
);
51
VM2.
run
(10);
52
VM2.
info
();
53
54
return
0;
55
}
logic.cpp
Projekt: Logikai szimulátor Készült: Mon Jun 24 2013 10:27:23 Készítette:
1.8.1.2