NgSPICE Muy pocos parámetros error

0

He estado intentando simular un ADC flash en NGSPICE usando el paquete gEDA. Había utilizado el codificador 74148 8 a 3 y el UA741 OpAmp en el modelo. También había incluido los archivos de modelo de especias requeridos. Sin embargo, cuando compilo el netlist en ngspice, me sale el error:

Muy pocos parámetros para el subcircuito tipo "74f148" (instancia: xx2)

¿Puede alguien ayudarme aquí?

* gnetlist -g spice-sdb flash_Adc_NationalInstruments_eignd.sch
*********************************************************
* Spice file generated by gnetlist                      *
* spice-sdb version 4.28.2007 by SDB --                 *
* provides advanced spice netlisting capability.        *
* Documentation at http://www.brorson.com/gEDA/SPICE/   *
*********************************************************
*==============  Begin SPICE netlist of main design ============
*UA741 Signetics-TI Corporation
.INCLUDE ./models/UA741.inc
.INCLUDE ./models/74f.lib
R26 6 0 100  
R24 4 0 100  
R22 0 13 100  
R20 2 0 100  
R18 0 12 100  
V4 0 22 SIN(0 10 100kHz)
V2 21 0 100
X34 22 14 Vcc Vee 11 UA741
X32 22 15 Vcc Vee 10 UA741
X30 22 16 Vcc Vee 9 UA741
X28 22 17 Vcc Vee 8 UA741
X26 22 18 Vcc Vee 7 UA741
X24 22 19 Vcc Vee 5 UA741
X22 22 20 Vcc Vee 3 UA741
X20 22 21 Vcc Vee 1 UA741
R16 20 21 100  
R14 19 20 100  
R12 18 19 100  
R10 17 18 100  
R8 16 17 100  
R6 15 16 100  
R4 14 15 100  
R2 0 14 100  
X2 0 1 2 3 4 5 6 7 8 9 10 11 12 0 13 74F148
.end
* 74F148  PRIORITY ENCODER 8-3 LINE
*
* FAST TTL LOGIC SERIES, 1990, PHILIPS SEMICONDUCTORS
* Freescale 2010 Model SN74148
* JLS   8-26-92   REMODELED USING LOGICEXP, PINDLY, AND CONSTRAINT DEVICES
*
.SUBCKT 74F148   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
*
UF148LOG 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_F
+ 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) }
*
UF148DLY 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_F
+ 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 & TRN_LH, DELAY(3.5NS,6.0NS, 9.5NS),
+       ENABLE & TRN_HL, DELAY(3.0NS,5.5NS, 9.0NS),
+                TRN_LH, DELAY(3.5NS,6.0NS,10.0NS),
+                TRN_HL, DELAY(4.0NS,6.0NS,12.0NS),
+       DELAY(4.0NS,6.0NS,12.0NS)
+       )
+     }
+   GS_O = {
+     CASE (
+       ENABLE & TRN_LH, DELAY(2.5NS,4.5NS, 8.0NS),
+       ENABLE & TRN_HL, DELAY(3.0NS,5.5NS, 8.5NS),
+                TRN_LH, DELAY(2.0NS,4.0NS,10.0NS),
+                TRN_HL, DELAY(2.0NS,6.0NS, 9.0NS),
+       DELAY(3.0NS,6.0NS,10.0NS)
+       )
+     }
+   EO_O = {
+     CASE (
+       ENABLE & TRN_LH, DELAY(3.0NS,5.0NS, 8.0NS),
+       ENABLE & TRN_HL, DELAY(4.5NS,7.0NS,12.0NS),
+                TRN_LH, DELAY(2.0NS,3.5NS, 7.5NS),
+                TRN_HL, DELAY(2.5NS,4.5NS, 8.5NS),
+       DELAY(4.5NS,7.0NS,12.0NS)
+       )
+     }
*
.ENDS
*
*$
    

2 respuestas

1

Tu subcircuito comienza con esta tarjeta:

.SUBCKT 74F148   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

Observe que hay 14 nodos de conexión, que comienzan con IN0_1 y terminan con E0_0 .

Pero cuando crea una instancia del subcircuito, utiliza esta tarjeta X:

X2 0 1 2 3 4 5 6 7 8 9 10 11 12 0 13 74F148

Esta tarjeta intenta realizar 15 conexiones al subcircuito, comenzando con 0 y terminando con 13 (el nodo 0 está conectado dos veces).

El número de nodos asignados en la creación de instancias (tarjeta X) debe coincidir con el número de conexiones requeridas por la definición del subcircuito.

    
respondido por el The Photon
0

No creo que su modelo 74F148 sea un modelo SPICE genérico, parece que podría ser específico para PSPICE. Debería consultar los manuales de ngspice para ver si son compatibles con las ecuaciones lógicas y las declaraciones de retardo.

    
respondido por el Joe Hass

Lea otras preguntas en las etiquetas