LT Spice modell

Gast #2457007
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)
+       )
+     }
*
Gast #2457259
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
#2457439
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.
Gast #2457961
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
Gast #2459070
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
Gast #2459094
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.

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