blob: a4e4691979e0b3a2adaa24063469ad48429d24bc (
plain) (
blame)
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
|
1. fix hello.pal (in noncpu)
2. fix hello.pal (in multipdp8) (it only sees bytes with the lowest bit set)
+-----------+
+-----| Arbiter 1 |<--------------------------------------------+
| +-----------+ |
| ^ |
v | |
+--------+ +----------------+ +----------------+ +----------------+
| UART 0 |-->| Command Parser |-----+ | Off-chip DRAM | | Result Printer |
+--------+ +----------------+ | +----------------+ +----------------+
| ^ | ^
| | v |
+--------+ +-------+ | +----------------+ |
| UART 1 |-->| PDP-8 | v | RAM Controller | |
+--------+ +-------+ +-----------+ +----------------+ +-------------+
| Cache |--------->| Arbiter 2 |-->| Another Cache |-->| Broadcaster |
+-------+ +-----------+ +----------------+ +-------------+
^ |
| |
+-------------------------------------------------------------+
Arbiter 1: Trivial priority arbiter
Arbiter 2: Adds clog2(1 + number of PDP-8s) tag bits indicating which channel was selected
For inputs coming from a PDP-8 as opposed to the command parser, add the appropriate prefix to the memory address
Broadcaster: Removes clog2(1 + number of PDP-8s) tag bits to determine which channel to send to
For outputs going to a PDP-8 as opposed to the result printer, strip excess address bits
For the front panel:
We only have enough pins for a single front panel, so we need an arbiter to
control which PDP core is talking to the panel.
Maybe the command parser should have a command for controlling that arbiter?
Or we could repurpose some of the switches on the panel to control it? The
DF and IF switches are sort of an obvious choice here.
|