Merge branch 'master' into netgen-1.5
This commit is contained in:
commit
c1ed4ce49e
18
base/ext.c
18
base/ext.c
|
|
@ -462,11 +462,6 @@ void simCell(char *name, int filenum)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check procedure disabled because new extensions to .sim format
|
|
||||||
* allow 'x' records to represent low-level components that are
|
|
||||||
* modeled as SPICE subcircuits.
|
|
||||||
*/
|
|
||||||
#if 0
|
|
||||||
/* check to see that all children have been dumped */
|
/* check to see that all children have been dumped */
|
||||||
ob = tp->cell;
|
ob = tp->cell;
|
||||||
while (ob != NULL) {
|
while (ob != NULL) {
|
||||||
|
|
@ -478,7 +473,6 @@ void simCell(char *name, int filenum)
|
||||||
}
|
}
|
||||||
ob = ob->next;
|
ob = ob->next;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
SetExtension(FileName, name, SIM_EXTENSION);
|
SetExtension(FileName, name, SIM_EXTENSION);
|
||||||
if (!OpenFile(FileName, 0)) {
|
if (!OpenFile(FileName, 0)) {
|
||||||
|
|
@ -603,7 +597,7 @@ void simCell(char *name, int filenum)
|
||||||
FlushString(" %g\n", v);
|
FlushString(" %g\n", v);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CLASS_SUBCKT: case CLASS_MODULE:
|
case CLASS_MODULE:
|
||||||
*writeLine = 'x';
|
*writeLine = 'x';
|
||||||
*(writeLine + 1) = '\0';
|
*(writeLine + 1) = '\0';
|
||||||
mult = 1;
|
mult = 1;
|
||||||
|
|
@ -812,7 +806,7 @@ char *ReadPrm(char *fname, int *fnum)
|
||||||
PropertyDouble(devicename, filenum, "w", 0.01, 0.0);
|
PropertyDouble(devicename, filenum, "w", 0.01, 0.0);
|
||||||
PropertyInteger(devicename, filenum, "nf", 0, 1);
|
PropertyInteger(devicename, filenum, "nf", 0, 1);
|
||||||
PropertyInteger(devicename, filenum, "m", 0, 1);
|
PropertyInteger(devicename, filenum, "m", 0, 1);
|
||||||
SetClass(CLASS_SUBCKT);
|
SetClass(CLASS_MODULE);
|
||||||
EndCell();
|
EndCell();
|
||||||
ReopenCellDef(fname, filenum);
|
ReopenCellDef(fname, filenum);
|
||||||
}
|
}
|
||||||
|
|
@ -833,7 +827,7 @@ char *ReadPrm(char *fname, int *fnum)
|
||||||
PropertyDouble(devicename, filenum, "w", 0.01, 0.0);
|
PropertyDouble(devicename, filenum, "w", 0.01, 0.0);
|
||||||
PropertyInteger(devicename, filenum, "nf", 0, 1);
|
PropertyInteger(devicename, filenum, "nf", 0, 1);
|
||||||
PropertyInteger(devicename, filenum, "m", 0, 1);
|
PropertyInteger(devicename, filenum, "m", 0, 1);
|
||||||
SetClass(CLASS_SUBCKT);
|
SetClass(CLASS_MODULE);
|
||||||
EndCell();
|
EndCell();
|
||||||
ReopenCellDef(fname, filenum);
|
ReopenCellDef(fname, filenum);
|
||||||
}
|
}
|
||||||
|
|
@ -855,7 +849,7 @@ char *ReadPrm(char *fname, int *fnum)
|
||||||
PropertyDouble(devicename, filenum, "l", 0.01, 0.0);
|
PropertyDouble(devicename, filenum, "l", 0.01, 0.0);
|
||||||
PropertyDouble(devicename, filenum, "w", 0.01, 0.0);
|
PropertyDouble(devicename, filenum, "w", 0.01, 0.0);
|
||||||
PropertyInteger(devicename, filenum, "m", 0, 1);
|
PropertyInteger(devicename, filenum, "m", 0, 1);
|
||||||
SetClass(CLASS_SUBCKT);
|
SetClass(CLASS_MODULE);
|
||||||
EndCell();
|
EndCell();
|
||||||
ReopenCellDef(fname, filenum);
|
ReopenCellDef(fname, filenum);
|
||||||
}
|
}
|
||||||
|
|
@ -877,7 +871,7 @@ char *ReadPrm(char *fname, int *fnum)
|
||||||
PropertyDouble(devicename, filenum, "l", 0.01, 0.0);
|
PropertyDouble(devicename, filenum, "l", 0.01, 0.0);
|
||||||
PropertyDouble(devicename, filenum, "w", 0.01, 0.0);
|
PropertyDouble(devicename, filenum, "w", 0.01, 0.0);
|
||||||
PropertyInteger(devicename, filenum, "m", 0, 1);
|
PropertyInteger(devicename, filenum, "m", 0, 1);
|
||||||
SetClass(CLASS_SUBCKT);
|
SetClass(CLASS_MODULE);
|
||||||
EndCell();
|
EndCell();
|
||||||
ReopenCellDef(fname, filenum); /* Reopen */
|
ReopenCellDef(fname, filenum); /* Reopen */
|
||||||
}
|
}
|
||||||
|
|
@ -893,7 +887,7 @@ char *ReadPrm(char *fname, int *fnum)
|
||||||
Port("anode");
|
Port("anode");
|
||||||
Port("cathode");
|
Port("cathode");
|
||||||
PropertyInteger(devicename, filenum, "m", 0, 1);
|
PropertyInteger(devicename, filenum, "m", 0, 1);
|
||||||
SetClass(CLASS_SUBCKT);
|
SetClass(CLASS_MODULE);
|
||||||
EndCell();
|
EndCell();
|
||||||
ReopenCellDef(fname, filenum); /* Reopen */
|
ReopenCellDef(fname, filenum); /* Reopen */
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -136,17 +136,16 @@ void flattenCell(char *name, int file)
|
||||||
ob2 = ob2->next;
|
ob2 = ob2->next;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* delete all port elements from child */
|
/* delete all port elements from child */
|
||||||
while (IsPort(ChildObjList)) {
|
while (IsPort(ChildObjList)) {
|
||||||
/* delete all ports at beginning of list */
|
/* delete all ports at beginning of list */
|
||||||
if (Debug) Printf("deleting leading port from child\n");
|
if (Debug) Printf("deleting leading port from child\n");
|
||||||
tmp = ChildObjList->next;
|
tmp = ChildObjList->next;
|
||||||
FreeObjectAndHash(ChildObjList, ChildCell);
|
FreeObjectAndHash(ChildObjList, ChildCell);
|
||||||
ChildObjList = tmp;
|
if ((ChildObjList = tmp) == NULL) break;
|
||||||
}
|
}
|
||||||
tmp = ChildObjList;
|
tmp = ChildObjList;
|
||||||
while (tmp->next != NULL) {
|
while (tmp && (tmp->next != NULL)) {
|
||||||
if (IsPort(tmp->next)) {
|
if (IsPort(tmp->next)) {
|
||||||
ob2 = (tmp->next)->next;
|
ob2 = (tmp->next)->next;
|
||||||
if (Debug) Printf("deleting a port from child\n");
|
if (Debug) Printf("deleting a port from child\n");
|
||||||
|
|
|
||||||
|
|
@ -741,6 +741,19 @@ set auto_noexec 1 ;# don't EVER call UNIX commands w/o "shell" in front
|
||||||
# Cross-Application section
|
# Cross-Application section
|
||||||
#----------------------------------------------------------------------
|
#----------------------------------------------------------------------
|
||||||
|
|
||||||
|
# For use with open_pdks, set PDK_ROOT from the environment. If no
|
||||||
|
# such environment variable exists, check some common locations.
|
||||||
|
|
||||||
|
if {[catch {set PDK_ROOT $::env(PDK_ROOT)}]} {
|
||||||
|
if {[file isdir /usr/local/share/pdk] == 1} {
|
||||||
|
set PDK_ROOT /usr/local/share/pdk
|
||||||
|
} elseif {[file isdir /usr/share/pdk] == 1} {
|
||||||
|
set PDK_ROOT /usr/share/pdk
|
||||||
|
} elseif {[file isdir /foss/pdk] == 1} {
|
||||||
|
set PDK_ROOT /foss/pdk
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# Setup IRSIM assuming that the Tcl version is installed.
|
# Setup IRSIM assuming that the Tcl version is installed.
|
||||||
# We do not need to rename procedure irsim to NULL because it is
|
# We do not need to rename procedure irsim to NULL because it is
|
||||||
# redefined in a script, which simply overwrites the original.
|
# redefined in a script, which simply overwrites the original.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue