Forum: Analoge Elektronik und Schaltungstechnik LT Spice modell


von Markus (Gast)


Lesenswert?

Hallo zusammen!

Ich bin hier gerade dabei für ein Schulprojekt eine Schaltung in LT 
Spice zu simulieren und brauche dafür einen 74HC148 als Spice Modell, 
was ich auch gefunden habe. Nun habe ich allerdings das Problem, dass 
ich es nicht einbinden kann. Habe bis jetzt mal ein Standart DIP16 
Gehäuse benutzt, Value 74HC148 eingegeben, sowie Spice Directive und 
.txt Datei erstellt. Allerdings passt das Spicemodell irgendwie nicht 
zum Programm und bringt andauernd Fehler... Kann mir jemand helfen?

Unten seht ihr noch das Modell! Vielleicht kann es mal jemand 
ausprobieren und sagen, ob und wie es funktioniert hat.

Bitte helft mir, bevor ich meinen PC an die Wand haue!

Gruß Markus
------------------------------------------------------------------------ 
---

* 74HC148  PRIORITY ENCODER 8-3 LINE
*
* HIGH-SPEED CMOS LOGIC DATA BOOK, AUG 1989, TI
* JLS   8-26-92   REMODELED USING LOGICEXP, PINDLY, AND CONSTRAINT 
DEVICES
*
.SUBCKT 74HC148   IN0_I IN1_I IN2_I IN3_I IN4_I IN5_I IN6_I IN7_I EI_I
+ A0_O A1_O A2_O GS_O EO_O
+ OPTIONAL: DPWR=$G_DPWR DGND=$G_DGND
+ PARAMS: MNTYMXDLY=0 IO_LEVEL=0
*
UHC148LOG LOGICEXP (9,14) DPWR DGND
+ IN0_I IN1_I IN2_I IN3_I IN4_I IN5_I IN6_I IN7_I EI_I
+ IN0   IN1   IN2   IN3   IN4   IN5   IN6   IN7   EI
+ A0 A1 A2 GS EO
+ D0_GATE IO_HC
+ IO_LEVEL={IO_LEVEL}
+
+ LOGIC:
+ IN0    = { IN0_I }
+ IN1    = { IN1_I }
+ IN2    = { IN2_I }
+ IN3    = { IN3_I }
+ IN4    = { IN4_I }
+ IN5    = { IN5_I }
+ IN6    = { IN6_I }
+ IN7    = { IN7_I }
+ EI     = { EI_I }
+ IN0BAR = { ~IN0 }
+ IN1BAR = { ~IN1 }
+ IN2BAR = { ~IN2 }
+ IN3BAR = { ~IN3 }
+ IN4BAR = { ~IN4 }
+ IN5BAR = { ~IN5 }
+ IN6BAR = { ~IN6 }
+ IN7BAR = { ~IN7 }
+ EIBAR  = { ~EI }
+
+ A0     = { ~(EIBAR & ((IN1BAR & IN2 & IN4 & IN6) |
+                       (IN3BAR & IN4 & IN6) | (IN5BAR & IN6) | IN7BAR)) 
}
+ A1     = { ~(EIBAR & ((IN2BAR & IN4 & IN5) |
+                       (IN3BAR & IN4 & IN5) | IN6BAR | IN7BAR)) }
+ A2     = { ~(EIBAR & (IN4BAR | IN5BAR | IN6BAR | IN7BAR)) }
+ EO     = { ~(IN0 & IN1 & IN2 & IN3 & IN4 & IN5 & IN6 & IN7 & EIBAR) }
+ GS     = { ~(EO & EIBAR) }
*
UHC148DLY PINDLY (5,0,9) DPWR DGND
+ A0 A1 A2 GS EO
+ IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7 EI
+ A0_O A1_O A2_O GS_O EO_O
+ IO_HC
+ MNTYMXDLY={MNTYMXDLY} IO_LEVEL={IO_LEVEL}
+
+ BOOLEAN:
+   DATAHI   = { IN7=='1 & IN6=='1 & IN5=='1 & IN4=='1 &
+                IN3=='1 & IN2=='1 & IN1=='1 & IN0=='1 }
+   ENABLE   = { CHANGED(EI,0) }
+
+ PINDLY:
+   A2_O A1_O A0_O = {
+     CASE (
+       ENABLE, DELAY(-1,26NS,49NS),
+       DELAY(-1,23NS,45NS)
+       )
+     }
+   GS_O = {
+     CASE (
+       ENABLE, DELAY(-1,19NS,36NS),
+       DELAY(-1,25NS,48NS)
+       )
+     }
+   EO_O = {
+     CASE (
+       ENABLE, DELAY(-1,22NS,41NS),
+       DELAY(-1,20NS,38NS)
+       )
+     }
*

von Yalu X. (yalu) (Moderator)


Lesenswert?

Die Logikbeschreibungen mit LOGIC, LOGICEXP, PINDLY usw. sind kein
gewöhnliches Spice. Bist du sicher, dass LTspice diese Erweiterungen
beherrscht? Das Modell ist wohl eher für PSpice gemacht.

von Markus (Gast)


Lesenswert?

Zunächst mal danke für deine Antwort!
Sicher bin ich leider nicht. Hab nur nach Spice modellen gesucht und 
wußte nicht, dass es einen Unterschied zwischen PSpice un LT gibt...
Kannst du mir vielleicht sagen, wo ich so einen 74HC148 für LTSpice 
bekomme?
Hab bisher nur nach Spice modell gegoogelt und alles was ich gefunden 
habe sah genauso aus...

Gruß  Markus

von Helmut S. (helmuts)


Lesenswert?

Die SPICE-Programme sind "nur" bezüglich anaoger ICs/Bauteile 
kompatibel.
Digitale Elemente sind leider in jedem SPICE-Programm anders definiert.

Male einfach diese Schaltung mit LTspice ab und nenne sie 74HC148.asc. 
So kompliziert ist die nicht.
http://www.classiccmp.org/rtellason/chipdata/mm74hc148.pdf
Dann machst du ein Symbol mit dem Namen 74HC148.asy.
Beide Dateine kopierst du in das Verzeichnis in dem den der Top-level 
Schltplan ist. Dort kannst du jetzt dein Symbol 74HC148 einügen und 
damit simulieren.

von Markus (Gast)


Lesenswert?

Danke für die Info,
aber was heißt einfach abmalen?

Ich muss doch auch irgendwo die Funktion genau definieren?
Hat jemand einen Link für mich, wo ich genau lesen kann, wie man sowas 
genau aus einem Datasheet umsetzt?

Gruß Markus

von Helmut S. (helmuts)


Lesenswert?

Da ist das Schaltbild mit NAND und Invertern drin.
http://www.classiccmp.org/rtellason/chipdata/mm74hc148.pdf

Die benötigten Grundelemnte gibt es in LTspice im Ordner [Digiltal].
Ich habe da schon kompliziertere Schaltungen abgezeichnet.

von Markus (Gast)


Lesenswert?

Werd ich gleich mal versuchen. Dankeschön :-)

von Yalu X. (yalu) (Moderator)


Lesenswert?

Helmut S. schrieb:
> Die benötigten Grundelemnte gibt es in LTspice im Ordner [Digiltal].

Was bei denen im Vergleich zum Modell im Originalpost ein wenig fehlt,
ist das Timing. Wenn ich das richtig sehe, haben die LTspice-Gatter
keine Verzögerungszeit. Oder kann man die vielleicht irgendwo als
Parameter angeben?

von HildeK (Gast)


Lesenswert?

Yalu X. schrieb:
> Oder kann man die vielleicht irgendwo als
> Parameter angeben?

Kann man. Und noch viel mehr.
Aus dem Manual:
1
Name    Default    Description   
2
Vhigh     1        Logic high level
3
Vlow      0        Logic low level
4
Trise     0        Rise time
5
Tfall   Trise      Fall time
6
Tau       0        Output RC time constant
7
Cout      0        Output capacitance
8
Rout      1        Output impedance
9
Rhigh   Rout       Logic high level impedance
10
Rlow    Rout       Logic low level impedance

von Yalu X. (yalu) (Moderator)


Lesenswert?

HildeK schrieb:
> Kann man. Und noch viel mehr.

Ah, vielen Dank für den Hinweis. Das klingt interessant.

> Aus dem Manual:

Ja, das hätte ich vielleicht erst mal aufschlagen sollen.
Asche auf mein Haupt :-(

von Sven P. (Gast)


Lesenswert?

Fairerweise sollte man aber erwähnen, dass auch LTSpice für den 
Mixedmode-Krams ein eigenes Modell ('A') eingeführt hat. Auch der 
Varistor ist damit modelliert.

Mittlerweile ist dieses A-Modell etwas besser im Handbuch dokumentiert, 
früher wurde darum ein größeres Geschiss veranstaltet... Es wird aber 
immer noch davon abgeraten, A-Modelle direkt zu benutzen, weil die sich 
scheinbar öfter mal ändern zwischen den Programmversionen.

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.