-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathREADME.TXT
117 lines (77 loc) · 3.87 KB
/
README.TXT
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
112
113
114
115
116
117
////////////////////////////////////////////////////////////////////////////////
// GTLSIM
// A TINY LOGIC CIRCUIT SIMULATOR
// (C) 2020 BY ARMCODER - [email protected]
//
// https://github.com/ARMCoderBR/gtlsim
//
// THIS PROGRAM IS FREE SOFTWARE
// SEE LICENSE AT https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
////////////////////////////////////////////////////////////////////////////////
Version 1.1.3
July 08, 2020
INTRO
~~~~~
Hi folks!
GTLSim is a follow-up to TLSIM, a pet project that I decided to build after
discovering Ben Eater's YouTube channel. At his channel, Ben holds a series of
videos where he teaches how to build a very simple computer using just TTL ICs,
switches, LEDs and other discrete parts.
For reference, the playlist with the complete tutorial is here:
https://www.youtube.com/playlist?list=PLowKtXNTBypGqImE405J2565dvjafglHU
Just for the record, I'm not affiliated with Ben Eater in any way, this is
simply a software inspired by his work, although I definitely recommend to check
his YouTube channel. He's a great teacher in the field of electronics, IMO.
Like TLSIM, this project aims to accurately simulate Ben's implementation
through software. The difference here is that GTLSIM is built over GTK, whilst
TLSIM was built on the old text-based NCurses library.
The old TLSIM project is no longer supported, except for bugfixes that may
be needed, and can be found at:
https://github.com/ARMCoderBR/tlsim
ENVIRONMENT
~~~~~~~~~~~
This is (for now) a Linux-only project, since it was only tested in Ubuntu
20.04. I used Eclipse 2019-09 over OpenJDK 11, and the 'gtk-3' and 'pthread'
additional libraries are required to build.
However, in order to Eclipse build the project properly, I needed to install
the 'pkg-config' plugin and then check the 'gtk+-3.0' box in the page made
available by the plugin. Without the plugin, the build configuration can become
very difficult.
BEN'S COMPUTER VARIANTS
~~~~~~~~~~~~~~~~~~~~~~~
Some fans created hardware projects that extended the functionality beyond
the original design (more instructions, more memory, etc). They are easy to find
on Youtube. I have no plans, for now, to cater to these variants.
QUICKSTART
~~~~~~~~~~
The EEPROM's microcode is pre-initialized, and the RAM contents is
automatically initialized by the 'exmachina.c' module that fires a thread that
simulates the needed user inputs to fill the RAM with a sample program.
After that the computer is started, but can be stopped and the RAM program
can be edited by the user through the UI using the mouse to flip the 'dip
switches' on the board.
How each module works is explained in detail in the Ben's videos, I have
replicated them quite faithfully in the UI.
The bottom row in the UI interface has 4 buttons, they are:
* Pause/Step Clock
* Unpause/Slower Clock
* Unpause/Faster Clock
* Exit
That's for now.
Stay tuned and have fun!
CHANGELOG
~~~~~~~~~
V1.1.0 - July 01, 2020:
- Gtlsim 1.1.0!
V1.1.1 - July 05, 2020:
- A more realistic pushbutton for the "Write RAM" function, improved board
layout, other aesthetic improvements.
V1.1.2 - July 05, 2020:
- Created a gate array (with ORs) that resets the T0~tN cycle counters
faster, yielding a greater execution speed (more instructions per clock).
This is my first improvement over Ben's design. I included a TURBO switch
in the Control Unit module, so this accelerator can be enabled or disabled
(it's disabled by default).
V1.1.3 - July 08, 2020:
- Eliminated stray NCurses dependence; corrected launch problem that
prevented more than one instance of GTLSIM from running at one time.