ROM-Baustein statt Logik

OP (Firma: HTL WELS) #3190734
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
Angehängte Dateien:
#3190758
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
Gast #3190772
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.
OP (Firma: HTL WELS) #3190801
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 ?
Angehängte Dateien:
(Firma: matzetronics) #3190947
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.
#3190993
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.
#3191010
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.
Gast #3191026
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.
Gast #3191094
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.
#3191106
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.
Gast #3191348
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
OP (Firma: HTL WELS) #3191351
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
#3191595
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.
OP (Firma: HTL WELS) #3192430
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
Angehängte Dateien:
OP (Firma: HTL WELS) #3192709
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
Gast #3192818
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
OP (Firma: HTL WELS) #3192994
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.
Gast #3193020
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
Gast #3193134
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.
Gast #3193825
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
Gast #3193888
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
Gast #3194492
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren