Error de especia: Muy pocos nodos

1

Estoy intentando simular un circuito utilizando la directiva .subckt en Ngspice-26 para definir la puerta NAND GATE y la puerta NOT.

Tengo dos archivos subckt separados para inv y nand como inv.txt y nand.txt que incluyo en mi archivo principal. Cuando ejecuto el código mencionado a continuación usando source file_name.cir en Ngspice, obtengo el siguiente promt en la terminal de Ngspice.

Warning: unknown device type: n
Error: too few nodes:  numparm__________00000013 

Lo leí y hubo un error en NgSpice, pero fue corregido en la versión actualizada 26 de Ngspice. Otro punto a destacar fue que este error ocurrió solo cuando se usa nand subckt y no da error cuando solo se usa inv. Además, la advertencia dice sobre un tipo de dispositivo n que no he usado en mi archivo cir en ningún lugar. Por favor, dime si estoy haciendo algo mal.

Esta parte del código es el archivo principal .cir.

** DUT Test for NAND **
.include nand.txt
.include inv.txt
.include models.txt

.PARAM Len = 0.4um 
.param nWid = 0.60um 
.PARAM pWid = 1.55826um 
.PARAM vdd = 3.3
.global vdd

vdd vdd 0 vdd
vs  6 0 vdd

xinv1 1 2 inv
xinv2 2 3 inv

xnand1 3 6 4 nand

xinv3 4 5 inv
xinv4 4 5 inv
xinv5 4 5 inv
xinv6 4 5 inv

c1 5 0 0.1pF

vin 1 0 dc PULSE(0 3.3V 0 0.1ps 0.1ps 4ns 12ns)
.tran 0.05ps 8ns
.control
run

plot v(3) 'vdd - v(4)'
.endc
.end

A continuación se muestra el código para el archivo subckt para nand gate

* Subcircuit for Minimum sized NAND Gate

* CONNECTIONS:   IN1
*                | IN2
*                | | OUTPUT
*                | | |
.SUBCKT nand     1 2 3

*Specifying NMOS in this manner-
*name drain gate source body modelname as in model file

m1 node1 1 0 0 cmosn L=Len W=nWid AD='2*nWid*Len' AS='2*nWid*Len' PD='2*(nWid+2*Len)' PS='2*(nWid+2*Len)' 
m2 3 2 node1 0 cmosn L=Len W=nWid AD='2*nWid*Len' AS='2*nWid*Len' PD='2*(nWid+2*Len)' PS='2*(nWid+2*Len)' 

m3 3 1 vdd vdd cmosp L=Len W=pWid AD='2*pWid*Len' AS='2*pWid*Len' PD='2*(pWid+2*Len)' PS='2*(pWid+2*Len)
'
m4 3 2 vdd vdd cmosp L=Len W=pWid AD='2*pWid*Len' AS='2*pWid*Len' PD='2*(pWid+2*Len)' PS='2*(pWid+2*Len)
' 
.ends nand

A continuación se muestra el código para el archivo subckt para el inversor

* Subcircuit for Minimum sized inverter

* CONNECTIONS:   INPUT
*                | OUTPUT
*                | | 
*                | | 
.SUBCKT inv      1 3 

*Specifying NMOS in this manner-
*name drain gate source body modelname as in model file

m1 3 1  0   0 cmosn L=Len W=nWid AD='2*nWid*Len' AS='2*nWid*Len' PD='2*(nWid+2*Len)' PS='2*(nWid+2*Len)' 
m2 3 1  vdd vdd cmosp L=Len W=pWid AD='2*pWid*Len' AS='2*pWid*Len' PD='2*(pWid+2*Len)' PS='2*(pWid+2*Len)' 
.ends inv

Enlace al archivo models.txt aquí Enlace al archivo inv.txt aquí.

Enlace al archivo nand.txt, reemplace inv.txt en la parte superior con nand.txt

    
pregunta Shashank

1 respuesta

1

Error de sintaxis. El cierre de comillas simples en las líneas 16 y 18 no debe estar en una línea nueva. Siempre mantenga un * en las líneas vacías entre el código.

    
respondido por el kabZX

Lea otras preguntas en las etiquetas