Forum: Mikrocontroller und Digitale Elektronik ROM-Baustein statt Logik


von Philipp H. (Firma: HTL WELS) (hackl4)


Angehängte Dateien:

Lesenswert?

Hallo,
Ich habe gerade eine Logikschaltung entworfen, diese überschreitet aber 
die 50 Bauteile in Pspice.
Ich muss jetzt auf ein ROM oder Ram zurückgreifen.
Meine Schaltung hat 4 Eingänge und 5 Ausgänge.
Im Anhang ist etwas ähnliches glaub ich.
Kann ich es so machen ?
Ich komme auf eine extreme Tabelle bei meinem Beispiel.
Bevor weiter mache, wollt ich Fragen, ob ich auf dem wichtigen Weg bin 
oder es leichter oder anders gehen würde ?
Zusätzlich ist im Anhang eine Excel Wahrheitstabelle, welche meine 4 
Eingänge ( a0..a3) und meine Ausgänge ( b0..b4 ) darstellt.
Die Wahrheitstabelle habe ich mit dem KV Diagramm aufgelöst, aber wie 
oben geschrieben benötig eine Logikschaltung zu viele Bauteile.
Mfg

von Philipp H. (Firma: HTL WELS) (hackl4)


Angehängte Dateien:

Lesenswert?

Noch das Beispiel...

von Martin S. (sirnails)


Lesenswert?

Klar, machen ROM Steuerwerke doch genauso. Dateneingänge auf die 
Adressleitungen legen und an die entsprechende Position das Datenwort 
mit den an den Ausgängen gesetzten Bits schreiben:

Adresse   Daten
0x00    0x1E
0x01    0x09
0x01    0x18
0x03    0x15
0x04    0x0A
0x05    0x0B
0x06    0x0D
0x07    0x0F
0x08    0x12
0x09    0x13
0x0A    0x16
0x0B    0x17
0x0C    0x1A
0x0D    0x1B
0x0E    0x1C
0x0F    0x1D

von Thomas L. (thomas_hx)


Lesenswert?

Oder eventuell ein cpld?

von krumeltee (Gast)


Lesenswert?

Excel Tabelle?

Lad das bitte als reine Textdatei hoch, kaum einer hat Lust 3 Minuten zu 
warten, bis er mal kurz in deine kleine Tabelle gucken kann.

Und ich hab keine Lust mir extra Excel/freie Pendats dafür zu 
installieren.

von Philipp H. (Firma: HTL WELS) (hackl4)


Angehängte Dateien:

Lesenswert?

Martin Schwaikert schrieb:
> Klar, machen ROM Steuerwerke doch genauso. Dateneingänge auf die
>
> Adressleitungen legen und an die entsprechende Position das Datenwort
>
> mit den an den Ausgängen gesetzten Bits schreiben:

Sorry aber das verstehe ich nicht wirklich
Ich habe noch nicht wirklich mit einem ROM gearbeitet
Kann ich so machen wie im Anhang von oben bzw. steht ja oben im Anhang
Programm EPROM, die Wert 0,0,4,4 usw- gehören auf die Eingänge oder ?
Was ist mit den beiden A,A ?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Philipp Hackl schrieb:
> Sorry aber das verstehe ich nicht wirklich
> Ich habe noch nicht wirklich mit einem ROM gearbeitet

Machs nicht komplizierter, als es ist. Deine Tabelle widerspricht 
erstmal dem hier:

Philipp Hackl schrieb:
> Meine Schaltung hat 4 Eingänge und 5 Ausgänge.

Was soll also in deiner Tabelle Eingang und was soll Ausgang sein?
Dann hat Martin doch schon ein Beispiel gemacht. Links stehen die 
Adressen, deren Binärwert an die Adressleitungen A0 bis A3 (4 Eingänge) 
gehen.
Rechts stehen die gewünschten Ausgangszustände, die du praktischerweise 
an den Datenleitungen D0 bis D4 (5 Ausgänge) abgreifst.
Alles, was du nun tun musst, ist dir eine übersichtliche Tabelle zu 
machen, wo rechts die Binärwerte der Adressen stehen (z.B. in der Form 
0010) und links der gewünschte Zustand der Ausgänge, z.B. 01010.
Das ist dann leicht (und vllt. sogar von Excel selber) in die zum 
Programmieren nötigen Hex Werte umzurechnen.
Beim realen Verkabeln denke nun nur noch daran, die unbenutzten 
Adressleitungen und sowohl /CE als auch /OE auf GND zu legen.

von Philipp H. (Firma: HTL WELS) (hackl4)


Lesenswert?

Ok jetzt ist es mir klar, was ihr meint, danke.
Ich werde es mal probieren und ich hoffe es funktioniert!

Matthias Sch. schrieb:
> Beim realen Verkabeln denke nun nur noch daran, die unbenutzten
>
> Adressleitungen und sowohl /CE als auch /OE auf GND zu legen.

ja werde ich  machen danke !

von Johnny B. (johnnyb)


Lesenswert?

Philipp Hackl schrieb:
> Bevor weiter mache, wollt ich Fragen, ob ich auf dem wichtigen Weg bin
> oder es leichter oder anders gehen würde ?

Naja, Du kannst es schon mittels ROM machen und es wird auch 
funktionieren, sofern die Wahrheitstabelle richtig ist.

Aber "heutzutage" macht man sowas programmiertechnisch mittels einem 
Mikrocontroller oder CPLD und einigen wenigen Zeilen Code.
Natürlich muss dafür erst das entsprechende Know-How relativ langwierig 
erarbeitet/gelernt werden. Aber wenn Du vorhast noch einige Jahre in der 
Branche zu bleiben, sicherlich eine lohnenswerte Investition.

von Jürgen D. (poster)


Lesenswert?

Es war einmal vor langer Zeit in einer weit, weit entfernten Galaxie....
da hatten wir beim Studium eine DOS Software, ich glaube die dies LogIC 
oder so ähnlich.
Da konnte man eine Textdatei mit einer Logictabelle, oder mit den 
Gleichungen eingeben und "kompalieren" lassen.
Als Ausgebe konnte man da ein TTL Gatter Grab, die Daten für PALs/GAls 
oder auch den ROM Code für ein Eprom bekommen.
Bei Schaltwerken mit FFs wurden dann Datenbits des Eprom auf 
Adressleitungen zurückgeführt.
Sowas muß wohl mal durchaus üblich gewesen sein. Durch die langsammen 
Eproms war das ganze aber von der Geschwindigkeit kein vergleich mit den 
PALs.

von Gregor B. (Gast)


Lesenswert?

Johnny B. schrieb:
> Aber "heutzutage" macht man sowas programmiertechnisch mittels einem
> Mikrocontroller oder CPLD und einigen wenigen Zeilen Code.

Hast Du vor dem Schreiben überhaupt mal den Originalbeitrag gelesen?
Dort steht:

Philipp Hackl schrieb:
> Ich habe gerade eine Logikschaltung entworfen, diese überschreitet aber
> die 50 Bauteile in Pspice.

Offensichtlich geht es also um eine Simulation einer Digitalschaltung in 
PSpice, die die Grenzen von PSpice sprengt und daher per ROM nachgebaut 
werden soll.

Kannst Du Mikrocontroller bzw. CPLDs in PSpice simulieren?

Eben, also scheidet die Lösung aus.

von c-hater (Gast)


Lesenswert?

Gregor B. schrieb:

> Offensichtlich geht es also um eine Simulation einer Digitalschaltung in
> PSpice, die die Grenzen von PSpice sprengt und daher per ROM nachgebaut
> werden soll.

Das hört sich extrem unrealistisch an. Mit den Gattern von 50 
LSI/MSI-ICs kann man PSpice wohl kaum an seine Grenzen bringen.

von Helmut S. (helmuts)


Lesenswert?

c-hater schrieb:
> Gregor B. schrieb:
>
>> Offensichtlich geht es also um eine Simulation einer Digitalschaltung in
>> PSpice, die die Grenzen von PSpice sprengt und daher per ROM nachgebaut
>> werden soll.
>
> Das hört sich extrem unrealistisch an. Mit den Gattern von 50
> LSI/MSI-ICs kann man PSpice wohl kaum an seine Grenzen bringen.

Das Problem ist die Begrenzung der Demo-Version von PSPICE auf kleine 
Schaltungen. Die Vollversion würde ein paar Tausender kosten. So viel 
will man halt selten ausgeben.

von Philipp H. (Firma: HTL WELS) (hackl4)


Lesenswert?

Helmut S. schrieb:
> Das Problem ist die Begrenzung der Demo-Version von PSPICE auf kleine
>
> Schaltungen. Die Vollversion würde ein paar Tausender kosten. So viel
>
> will man halt selten ausgeben.

ja so ist es.
Ich habe gerade probiert das Rom zu beschreiben jedoch klappt es nicht 
wirklich, hat jemand sowas schon mal gemacht ?

von Helmut S. (helmuts)


Lesenswert?

Darfst du das auch mit LTspice machen?
Da hättest du kein Problem mit der Schaltplangröße, weil es dort keine 
Einschränkungen gibt.

von Reinhard Kern (Gast)


Lesenswert?

Philipp Hackl schrieb:
> Ich habe gerade probiert das Rom zu beschreiben jedoch klappt es nicht
> wirklich, hat jemand sowas schon mal gemacht ?

Deine Fehlerbeschreibung ist wieder mal von nicht zu überbietender 
Präzision. Was klappt nicht? Der Entwurf oder das "Brennen" eines 
Eproms/Flash?

Matthias hat das doch beschrieben, eine Wiederholung lohnt sich nicht. 
Mit einem Eprom 27C1001 oder Flash 29F010 kannst du jede statische Logik 
mit 10 Eingängen und 8 Ausgängen realisieren, indem du schlicht und 
einfach die Wahrheitstabelle ins ROM schreibst. Wenn du einen Programmer 
für solche ROMs hast, ist eine passende Software dabei (ein Hex Editor 
für den ROM-Inhalt).

Gruss Reinhard

von Philipp H. (Firma: HTL WELS) (hackl4)


Lesenswert?

Helmut S. schrieb:
> Darfst du das auch mit LTspice machen?
> Da hättest du kein Problem mit der Schaltplangröße, weil es dort keine
> Einschränkungen gibt.

Erlaubt ist es schon, jedoch:
1. ist dies nur ein kleiner Teil meines Projektes, welches ich alles auf 
Pspice gemacht habe
2. Habe ich mit LTSPice keine Erfahrung
3. Habe ich leider keine Zeit mehr auf LTspice umzusteigen

von Nase (Gast)


Lesenswert?

Jetzt benötigt er nur noch das PSPICE Model von dem Programmer.

Reinhard, es geht hier nur um simulierte Proms :)

von Martin S. (sirnails)


Lesenswert?

Ja schreib doch bitte noch etwas zum Rahmen der Problemstellung dazu. 
Das Dokument von Dir sah aus wie eine Übungsaufgabe, bei der Du nicht 
weiterkommst. Später liest man (von Dir?) etwas über eine reale 
Umsetzung.

ROM Steuerwerke sind ein legitimes Mittel und wurden (werden?) gerade in 
µProzessoren sehr gerne verwendet. Renommiertes Beispiel (mit dem man 
das auch am besten verstehen kann) ist der Nerdy. Zwar ein uralter 8-bit 
Zwerg, aber selbst bei so einem Winzling konnte bzw. wollte man das 
Steuerwerk nicht mehr in Logik auflösen.

Die Idee hinter dem ROM Steuerwerk (darauf will ja die Fragestellung des 
Angabenblattes auch hinaus) ist, dass man Logik "simuliert". Für die 
nachgeschaltete Elektronik / Logik ist es vollkommen egal, auf welchem 
Wege die Bitmuster am Eingang gewonnen wurden.

Mal als ganz einfaches Beispiel. Nimm einen 2Bit x 2 Bit Speicher. Das 
ergibt 4 Speicherzellen. Dieser Speicher hat 2 Adress- und 2 
Datenleitungen. In diesem steht jetzt folgendes hineingeschrieben:

Adresse    Wert
00         00
01         01
10         01
11         00

Jetzt legst Du an die beiden Adressleitungen deine beiden 
Eingangssignale an. Sind A0 und A1 jeweils 0, so wird an der 
Speicherzelle der Adresse 00 = 0x00 gelesen. Hier steht 00 = 0x00 
drinnen und dieser Wert wird auf den Datenbus gelegt (D0-D1). Liegt 
jetzt an A0 und A1 eine 0 und eine 1 an, wird auf die Adresse 0x01 
zugegriffen. Hier steht der Wert 0x01 drinnen und auf den Datenbus 
gelegt. Jetzt hast Du an D0 eine logische 1 anliegen.

Betrachtet man nun Ausgabe und Eingabe in Form einer Wahrheitstabelle, 
siehst Du, dass damit ein Exklusiv-Oder implementiert wurde.

Alles, was Du jetzt machen musst, ist genau das gleiche nur in groß. Du 
hast halt mehrere Adressleitungen und mehrere Datenleitungen. Für jeden 
Wert der Ausgabe musst Du an die entsprechende Adresse (= 
Eingangskombination) deine logischen Ausgänge als Daten hinterlegen. 
Alle anderen ungenutzten Adressen kann man mit 00 füllen.

von Philipp H. (Firma: HTL WELS) (hackl4)


Angehängte Dateien:

Lesenswert?

Danke für die ausführliche Antwort, jedoch ist mir das alles schon klar 
und es ist eher ein PSpice Problem.
Es geht nur mehr um die Umsetzung.
Im Anhang zeige steht was ich meine und im Link ist ein Youtube Video, 
wo etwas ähnliches gemacht wird.
Ich hab es ausprobiert und es löscht mir immer die Tabelle wieder 
heraus.

http://www.youtube.com/watch?v=XhuRpyPX8Pg

von Reinhard Kern (Gast)


Lesenswert?

Philipp Hackl schrieb:
> Ich hab es ausprobiert und es löscht mir immer die Tabelle wieder
> heraus.

Vielleicht hat nase ja wirklich recht und du brauchst einen Programmer 
in PSpice...

Was hast du denn erstellt? eine Intel-Hex-Datei?

Gruss Reinhard

von Philipp H. (Firma: HTL WELS) (hackl4)


Lesenswert?

Reinhard Kern schrieb:
> Vielleicht hat nase ja wirklich recht und du brauchst einen Programmer
>
> in PSpice...

ich denke nicht...
ich habe die Tabelle eingegeben sowie im Video nur ist der unterschied, 
das es sich dort um keine Demo Version handelt.
Außerdem wurde so etwas schon mal bei uns gemacht, jedoch weiß ich nicht 
wer es gemacht hat...

hat jemand von euch ein Pspice Buch? dort müsst ein bsp beschrieben sein

von Reinhard Kern (Gast)


Lesenswert?

Philipp Hackl schrieb:
> dort müsst ein bsp beschrieben sein

Ich habe im Internet gesucht nach dem ROM subckt, dort stand im Beispiel 
die erwähnte Hex-Datei unter FILE=xxx.hex. Ob das eine Demobeschränkung 
ist wenn man da nichts angeben kann weiss ich allerdings nicht. Finden 
muss PSpice die Datei natürlich auch.

Gruss Reinhard

von Name (Gast)


Lesenswert?

Problem ist dass die Ausgänge beim EPROM beim Adresswechsel schön 
glitchen. Für viele Anwendungen kann man das also vergessen.

von Philipp H. (Firma: HTL WELS) (hackl4)


Lesenswert?

Reinhard Kern schrieb:
> Ich habe im Internet gesucht nach dem ROM subckt, dort stand im Beispiel
>
> die erwähnte Hex-Datei unter FILE=xxx.hex. Ob das eine Demobeschränkung
>
> ist wenn man da nichts angeben kann weiss ich allerdings nicht. Finden
>
> muss PSpice die Datei natürlich auch.

danke fürs suchen.
Ich kann ja etwas eingeben, jedoch nimmt er die Werte nicht an, was 
wahrscheinlich auf Grund eines fehlenden "," oder "$" ist.

von Reinhard Kern (Gast)


Lesenswert?

Philipp Hackl schrieb:
> Ich kann ja etwas eingeben, jedoch nimmt er die Werte nicht an, was
> wahrscheinlich auf Grund eines fehlenden "," oder "$" ist.

So ein totaler Blödsinn, der Dateiname enthält ebensowenig Komma oder 
Dollar wie das Hex File. Dir scheinen schon die Grundlagen der 
Grundlagen zu fehlen, dabei wird dein Problem z.B. hier besprochen:

http://se.asee.org/proceedings/ASEE2004/P2004052electDIL.pdf

Ich empfehle den Umstieg auf Theologie.

Gruss Reinhard

von Gregor B. (Gast)


Lesenswert?

Reinhard Kern schrieb:
> So ein totaler Blödsinn, der Dateiname enthält ebensowenig Komma oder
> Dollar wie das Hex File

Hör' auf Dich aufzuregen.
Es gibt mehr als eine Möglichkeit, den Inhalt eines ROMs in PSpice zu 
definieren. Erste Möglichkeit ist ein HEX-File, zweite Möglichkeit ist 
die Eingabe eines DATA-Felds in der Modell-Datei des Bausteins, 
vergleiche hier:

http://webpages.eng.wayne.edu/cadence/ECE6570/Pspcref.pdf

S. 279ff.

Und da braucht man das $-Zeichen.

von Erich (Gast)


Lesenswert?

@ Jürgen D.  (poster)

Die Software hies Log/ic der Fa. Isdata (Karlsruhe).
Später wurde aus Log/ic  Logic2  (für Windows!)

Die schlechte Nachricht:
Leider ging die Fa. später in Konkurs.

Die gute Nachricht:
Die letzte Version von Logic2 ist FREI und KOSTENLOS verfügbar.


Weitere Info hier
http://www.fh-sw.de/sw/fachb/et/hauptseite/fakultaet/studisoft/
ab Wort:  Logiksynthese

Download-Link (indirekt)
http://www.fh-sw.de/sw/fachb/et/hauptseite/fakultaet/studisoft/logic2.htm

Eine Logik-Tabelle zu erstellen in in ein GAL (als Jedec) oder 
(F)(EP)ROM (als .HEX) zu erzeugen, das geht mit dieser Software Logic2.

Beispiel hier: Beitrag "Log/IC 2 - *FUNCTION-TABLE"

Wer was ganz "zu Fuß" machen will, hier zur Übung
http://ee.hawaii.edu/~sasaki/EE260/truthtable.html



Die Syntax von Logic2 wird etwas "gewöhnungsbedürftig", wenn 
State-Machine machen will, also das Bild  state8.gif  bei 
http://www.aqdi.com/state.htm   ca. Mitte der Seite)

Aber auch das kann Logic2, egal ob für GAL oder EPROM (z.B. 2716, 
27256).
Z.B. ein Zähler (nicht nur Decoder) der von "0"-"9" oder "0"-"F", der 
direkt den Segmentcode für 7-Segment-Anzeige erzeugt. Auch mit 
Steuereingang "vorwärts" / "rückwärts" und "enable" / "disable".
Oder eine Ampelsteuerung mit 6 LEDs die direkt in rot-gelb-grün korrekt 
weiterschalten.

Gruss

von Reinhard Kern (Gast)


Lesenswert?

Gregor B. schrieb:
> Und da braucht man das $-Zeichen.

Ok, mag sein, obwohl ich das bei einm grösseren ROM nicht gern so machen 
würde. Aber hauptsächlich finde ich, 25 Posts ohne jeden Fortschritt 
sind zuviel für so ein einfaches Problem - ROM-Logik konnten schon 
unsere primitiven Vorfahren im vorigen Jahrhundert.

Gruss Reinhard

von Philipp H. (Firma: HTL WELS) (hackl4)


Lesenswert?

Mir ist schon klar, das es 2 Möglichkeiten gibt, jedoch ist es mit einem 
File viel aufwendiger.
Kann ja nicht so schwer sein eine kleine Wahrheitstabelle in Data 
reinzuschrieben.

von Erich (Gast)


Lesenswert?

@Philipp Hackl (Firma: HTL WELS) (hackl4)

>Kann ja nicht so schwer sein eine kleine Wahrheitstabelle
>in Data reinzuschrieben.

Naja, DEINE Tabelle musste wohl schon SELBST erstellen!

Mache das einfach nach dem Schema in Beispiel hier: 
Beitrag "Log/IC 2 - *FUNCTION-TABLE"

Also so:

; EINGÄNGE                    :  AUSGÄNGE
  0 0 0 0 0 0 - - - 0 0 0 0 1 : 0 0 1 1 1 1 1 1 ;

Zulässig für den Bereich der Eingänge (links vom :) sind die Werte "0" , 
"1" sowie "-" für don't care (unwichtig, egal).
Bei den Ausgänge ist nur "0"  und "1" zulässig.

Wenn die deine Tabelle (widersprichsfrei!) hier reinstellt (als 
Dateianhang bitte, .txt Format mit Blanks, keine Tabs) so kann ich dir 
das mit o.g. Logic2 Programm in eine .HEX Datei für ein Eprom (2716, 
27256) bringen.

2716:  bis 11 Eingänge ,  8 Ausgänge
27256: bis zu 15 Eing. ,  8 Ausgänge

Bei mehr als 8 Ausgängen müssten 2 Eproms (bzw. eines mit 16-Bit-Daten) 
eingesetzt werden ; dazu bitte erst Rücksprache halten!

Gruss

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.