Forum: Mikrocontroller und Digitale Elektronik Benötige Tip zum Address kodieren.


von D.J. P. (djlinux)


Lesenswert?

Benötige einen Tip.

Ich habe in meiner IC Kiste einen alten MC6803 gefunden und auf dem 
Breadbooard in Betrieb genommen.
(Ich benutze einen weiteren MC als ROM Ersatz für den Resetvector ...)

Derzeit ended der Speicher bei 0x4FFF nun möchte ich 16K RAM am 16Bit 
Addressbus ab addresse 0x5000 "einblenden".

Erstes Problem die 16K RAM beginnen nicht ab 0x4000 sondern ab 0x5000
sonnst könnte ich ja die Bank Number 0-3 als Chip select auskodieren

So wie ich das im Moment sehe benötige ich alleine für /CS 6-7 
Logikgatter.
1
       AAAA   _ AA
2
       1111   C 11 16K RAM
3
       5432   S 32 
4
------|----|---------------
5
0x0000 0000|  1 --
6
0x1000 0001|  1 --
7
0x2000 0010|  1 --
8
0x3000 0011|  1 --
9
0x4000 0100|  1 --
10
0x5000 0101|  0 00
11
0x6000 0110|  0 01
12
0x7000 0111|  0 10
13
0x8000 1000|  0 11
14
0x9000 1001|  1 --
15
0xA000 1010|  1 --
16
0xB000 1011|  1 --
17
0xC000 1100|  1 --
18
0xD000 1101|  1 --
19
0xE000 1110|  1 --
20
0xF000 1111|  1 --
Wenn ich nun /CS aukodiert habe wie komme ich von
den bits A15-12 vom Adressbus zu A13-12 zum RAM ?
1
AAAA   AAAA
2
1111   1111
3
5432   5432
4
BUS -|- RAM
5
0101 | --00  0x5 -> 0x0
6
0110 | --01  0x6 -> 0x1
7
0111 | --10  0x7 -> 0x2
8
1000 | --11  0x8 -> 0x3
Ich möchte keine fertige Lösung sondern nur einen Tip wie ich mit 
möglicht wenigen Logikgattern auskomme.

Danke für einen Vorschlag.

(In Software wäre es ja nur eine Subtraction aber in Hardware!)

DJ

: Bearbeitet durch User
von Klaus (Gast)


Lesenswert?

Karnaugh-Diagramm. Meine Güte, das sind allerprimitivste Grundlagen der 
Informatik.

von user (Gast)


Lesenswert?

wenn die Daten im RAM "verwürfelt" sein dürfen

AAAA   AAAA
1111   1111
5432   5432
BUS -|- RAM
0101 | --01  0x1
0110 | --10  0x2
0111 | --11  0x3
1000 | --00  0x0

von Little B. (lil-b)


Lesenswert?

Wenn das RAM nicht zwingend bei 0x5000 anfangen muss, würde ich es 
verschieben auf z.B. 0x8000

von Peter D. (peda)


Lesenswert?

D.j. Peters schrieb:
> So wie ich das im Moment sehe benötige ich alleine für /CS 6-7
> Logikgatter.

Oje, Gatter hat dafür noch nie jemand genommen.

Adreßdekoder hat man früher mit 74HC688, 74HC138, 74HC139 gemacht.

von D.J. P. (djlinux)


Lesenswert?

@Klaus (Gast)
Danke für den Hinweis das geht aber auch etwas freundlicher

@user (Gast)
Prima stimmt hast recht der Ort der Speicherung ist ja egal
Hauptsache die Addresszuordnung stimmt.

Thank you so much.

@Little Basdart (lil-b)
Danke für den Tip mit der Speicherstückelung geht nur leider in diesem 
Fall nicht.
Der Speicherraum darf an dieser Stelle nicht unterbrochen werden.
(MC6847 VDG liest dort Pixel Daten) aber sonst wäre es eine Alternative.

@Peter Dannegger (peda)
Wegen eines fehlenden Bausteins muss man ja nicht sofort aufgeben.
Baustein bestellen 4 Tage warten wenn man NAND's, OR's & CO in der IC 
Kiste hat.

Es ist ja keine fertige Schaltung / Layout sondern nur der Versuch
auf dem Breadboard ein altes MC68xx Schätzchen mit MC6847 laufen zu 
lassen.

Ich habe ein MC-10 MC68xx und einen C64 Emulator programmiert
Inklusive aller Tools Assembler Disassembler ...

Nun wollte ich es mal von der Hardwareseite aus beleuchten und 
versuchen.

Einfach nur so aus Spass :-)

DJ

von D.J. P. (djlinux)


Lesenswert?

Hier die Lösungen der Komputer braucht 2 Sekunden (3.2MHz) um alle 
Möglichkeiten zu Ermitteln.
Da würde ich also per Hand ca. 2 Stunden brauchen.

Meine geschätzten 7 Logikgatter für /chip select kommt fast hin.

DJ

PS. Das benutzte Programm QMC ist wirklich prima.
1
Quine Mc Cluskey 3.34    (c)89-13 by http://www.iapetus.ch/software
2
-----------------------------------------------------------------------
3
 Errechnete minimalisierte disjunktive Form(en) fuer   1. Ausgang:
4
5
▪A15
6
│ ▪A14
7
│ │ ▪A13
8
│ │ │ ▪A12
9
│ │ │ │    ┌─────┐      
10
│ ├─┼─┼────┤  &  ├─────┐
11
├─┼─┼─┼────┤     │     │
12
│ │ │ │    └─────┘     │
13
│ │ │ │    ┌─────┐     │
14
│ │ │ ├────┤  &  ├────┐│
15
│ ├─┼─┼───o│     │    ││ ┌─────┐  
16
│ │ │ │    └─────┘    │└─┤ >=1 │  
17
│ │ │ │    ┌─────┐    └──┤     ├────▪/CS
18
│ │ ├─┼────┤  &  ├───────┤     │  
19
│ └─┼─┼───o│     │     ┌─┤     │  
20
│   │ │    └─────┘     │ └─────┘  
21
│   │ │    ┌─────┐     │
22
│   │ └───o│  &  │     │
23
│   └─────o│     ├─────┘
24
└─────────o│     │      
25
           └─────┘      
26
27
▪A15
28
│ ▪A14
29
│ │ ▪A13
30
│ │ │ ▪A12
31
│ │ │ │    ┌─────┐      
32
│ ├─┼─┼───o│  &  ├─────┐
33
├─┼─┼─┼───o│     │     │
34
│ │ │ │    └─────┘     │
35
│ │ │ │    ┌─────┐     │
36
│ │ │ ├────┤  &  ├────┐│
37
├─┼─┼─┼────┤     │    ││ ┌─────┐  
38
│ │ │ │    └─────┘    │└─┤ >=1 │  
39
│ │ │ │    ┌─────┐    └──┤     ├────▪/CS
40
│ │ ├─┼────┤  &  ├───────┤     │  
41
└─┼─┼─┼────┤     │     ┌─┤     │  
42
  │ │ │    └─────┘     │ └─────┘  
43
  │ │ │    ┌─────┐     │
44
  │ │ └───o│  &  │     │
45
  │ └─────o│     ├─────┘
46
  └────────┤     │      
47
           └─────┘      
48
49
50
 Keine weiteren Lösungen für   1. Ausgang
51
-----------------------------------------------------------------------
52
53
54
Quine Mc Cluskey 3.34    (c)89-13 by http://www.iapetus.ch/software
55
-----------------------------------------------------------------------
56
 Errechnete minimalisierte disjunktive Form(en) fuer   2. Ausgang:
57
58
▪A14
59
│ ▪A13
60
│ │ ▪A12
61
│ │ │    ┌─────┐    
62
│ │ └────┤  &  ├───┐
63
│ └──────┤     │   │ ┌─────┐  
64
│        └─────┘   └─┤ >=1 ├────▪A13
65
│        ┌─────┐   ┌─┤     │  
66
└────────┤  1  │o──┘ └─────┘  
67
         └─────┘    
68
69
▪A15
70
│ ▪A13
71
│ │ ▪A12
72
└─┼─┼──────────────┐
73
  │ │    ┌─────┐   │ ┌─────┐  
74
  │ └────┤  &  ├──┐└─┤ >=1 ├────▪A13
75
  └──────┤     │  └──┤     │  
76
         └─────┘     └─────┘  
77
78
79
 Keine weiteren Lösungen für   2. Ausgang
80
-----------------------------------------------------------------------
81
82
83
Quine Mc Cluskey 3.34    (c)89-13 by http://www.iapetus.ch/software
84
-----------------------------------------------------------------------
85
 Errechnete minimalisierte disjunktive Form(en) fuer   3. Ausgang:
86
87
▪A12
88
│    ┌─────┐   
89
└────┤  1  │o─────▪A12
90
     └─────┘   
91
92
93
 Keine weiteren Lösungen für   3. Ausgang
94
-----------------------------------------------------------------------

: Bearbeitet durch User
von Christoph db1uq K. (christoph_kessler)


Lesenswert?

einen TTL-Addierer könnte man sicher auch nutzbringend einsetzen. Aber 
da sind die Laufzeiten größer als mit einzelnen Gattern

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.