home *** CD-ROM | disk | FTP | other *** search
- /*
- /L Do not append sheet number to labels
- */
-
- /* VERSION="1.10 14-OCT-91"
- * - Added code for outputting missing pins on a part
- * - Added Version message
- *
- * Capacities:
- * - Part Names are not checked for length
- * - Module Names are not checked for length
- * - Reference Strings are not checked for length
- * - Node Names are not checked for length
- * - Pin Numbers are not checked for length
- *
- * Characters:
- * - All ASCII keyboard characters are legal
- */
-
- int prevpin;
- int currpin;
- int type;
-
- int sw_L;
-
- /*-----------------------*/
-
- Initialize()
- {
- WriteString(0, "Creating Netlist...");
- WriteCrLf(0);
-
- AddSymbol("FieldStr");
- AddSymbol("PinNumberStr");
- AddSymbol("PartNameStr");
- AddSymbol("Str");
-
- SetCharSet("0123456789");
- SetNumberWidth(5);
-
- sw_L = SwitchIsSet("L");
-
- WriteString(1, "|| ");
- CopySymbol(TitleString, Str);
- PadSpaces(Str, 46);
- WriteSymbol(1, Str);
- WriteString(1, "Revised: ");
- WriteSymbol(1, DateString);
- WriteCrLf(1);
- WriteString(1, "|| ");
- CopySymbol(DocumentNumber, Str);
- PadSpaces(Str, 46);
- WriteSymbol(1, Str);
- WriteString(1, "Revision: ");
- WriteSymbol(1, Revision);
- WriteCrLf(1);
- WriteString(1, "|| ");
- WriteSymbol(1, Organization);
- WriteCrLf(1);
- WriteString(1, "|| ");
- WriteSymbol(1, AddressLine1);
- WriteCrLf(1);
- WriteString(1, "|| ");
- WriteSymbol(1, AddressLine2);
- WriteCrLf(1);
- WriteString(1, "|| ");
- WriteSymbol(1, AddressLine3);
- WriteCrLf(1);
- WriteString(1, "|| ");
- WriteSymbol(1, AddressLine4);
- WriteCrLf(1);
- WriteString(1, "|| ");
- WriteCrLf(1);
- }
-
- /*-----------------------*/
-
- WriteHeader()
- {
- CreatePartDataBase();
- }
-
- /*-----------------------*/
-
- HandleNodeName()
- {
- AddSignalName();
- }
-
- /*-----------------------*/
-
- WriteNet()
- {
- RecordNode();
- }
-
- /*-----------------------*/
-
- WriteNetEnding()
- {
- }
-
- /*-----------------------*/
-
- ProcessFieldStrings()
- {
- }
-
- /*-----------------------*/
-
- WriteINBISignals()
- {
- int first;
- int len;
- int temp;
-
- len = 0;
-
- WriteString(1, "| Netlist: ");
-
- first = 1;
- SetFirst(SIGNALS);
- do {
- type = GetStandardSymbol(TypeCode);
-
- if (type == 'P')
- {
- type = GetStandardSymbol(SignalType);
- if (type == 2)
- {
- if (len > 55)
- {
- len = 0;
- first = 1;
-
- WriteString(1, ",");
- WriteCrLf(1);
- WriteString(1, "| ");
- }
-
- if (first != 1) { WriteString(1, ","); }
- WriteSymbol(1, SignalNameString);
- first = 0;
-
- temp = SymbolLength(SignalNameString);
- len = len + temp + 1;
- }
-
- if (type == 3)
- {
- if (len > 55)
- {
- len = 0;
- first = 1;
-
- WriteString(1, ",");
- WriteCrLf(1);
- WriteString(1, "| ");
- }
-
- if (first != 1) { WriteString(1, ","); }
- WriteSymbol(1, SignalNameString);
- first = 0;
-
- temp = SymbolLength(SignalNameString);
- len = len + temp + 1;
- }
- }
- } while (SetNext(SIGNALS));
- }
-
- /*-----------------------*/
-
- WriteOUTBISignals()
- {
- int first;
- int len;
- int temp;
-
- len = 0;
-
- WriteString(1, "| ");
-
- first = 1;
- SetFirst(SIGNALS);
- do {
- type = GetStandardSymbol(TypeCode);
- if (type == 'P')
- {
- type = GetStandardSymbol(SignalType);
- if (type == 1)
- {
- if (len > 55)
- {
- len = 0;
- first = 1;
-
- WriteString(1, ",");
- WriteCrLf(1);
- WriteString(1, "| ");
- }
-
- if (first != 1) { WriteString(1, ","); }
- WriteSymbol(1, SignalNameString);
- first = 0;
-
- temp = SymbolLength(SignalNameString);
- len = len + temp + 1;
- }
-
- if (type == 3)
- {
- if (len > 55)
- {
- len = 0;
- first = 1;
-
- WriteString(1, ",");
- WriteCrLf(1);
- WriteString(1, "| ");
- }
-
- if (first != 1) { WriteString(1, ","); }
- WriteSymbol(1, SignalNameString);
- first = 0;
-
- temp = SymbolLength(SignalNameString);
- len = len + temp + 1;
- }
- }
- } while (SetNext(SIGNALS));
- }
-
- /*-----------------------*/
-
- SetCurrentPinNumber()
- {
- int i;
- int len;
- int ch;
-
- currpin = 0;
- CopySymbol(PinNumberString, PinNumberStr);
-
- i = SymbolInCharSet(PinNumberStr);
- if (i == 1) {
- len = SymbolLength(PinNumberString);
-
- i = 0;
- do {
- ch = GetSymbolChar(i, PinNumberStr);
- currpin = (currpin * 10) + (ch - 48);
-
- i = i + 1;
- } while (i < len);
- }
- }
-
- /*-----------------------*/
-
- WriteNetListEnd()
- {
- int i;
- int first;
- int ch;
- int len;
- int temp;
-
- /* write the input and bidirectional signals */
- WriteINBISignals();
-
- WriteCrLf(1);
- WriteString(1, "| -> ");
- WriteCrLf(1);
-
- /* write the output and bidirectional signals */
- WriteOUTBISignals();
- WriteCrLf(1);
-
- WriteString(1, "| {");
- WriteCrLf(1);
-
- SetFirst(ALL);
- do {
- WriteString(1, "| ");
- CopySymbol(PartName, Str);
- temp = 0;
- ch = GetSymbolChar(temp, Str);
- /* if 'ch' is a number, then output an underscore before the PartName */
- if (ch >= 48)
- {
- if (ch <= 57)
- {
- WriteString(1, "_");
- }
- }
- WriteSymbol(1, PartName);
- WriteString(1, " (");
-
- len = 0;
- prevpin = 0;
- first = 1;
- SetFirst(NODES);
- do {
- /* write out any pins between the previous one and the current one */
- SetCurrentPinNumber();
-
- prevpin = prevpin + 1;
- if (currpin > prevpin) {
- if (currpin != 0) {
- while (currpin > prevpin) {
- if (first != 1) { WriteString(1, ","); }
- WriteString(1, "-");
-
- first = 0;
- prevpin = prevpin + 1;
- }
- }
- }
- prevpin = currpin;
-
- if (len > 55)
- {
- len = 0;
- first = 1;
-
- WriteString(1, ",");
- WriteCrLf(1);
- WriteString(1, "| ");
- }
-
- if (first != 1) { WriteString(1, ","); }
-
- type = GetStandardSymbol(TypeCode);
- if (type == 'L')
- {
- if (sw_L == 0)
- {
- SetNumberWidth(1);
- MakeLocalSignal("_");
- SetNumberWidth(5);
- WriteSymbol(1, LocalSignal);
- }
- else
- {
- WriteSymbol(1, SignalNameString);
- }
- }
- if (type == 'P')
- {
- WriteSymbol(1, SignalNameString);
-
- temp = SymbolLength(SignalNameString);
- len = len + temp + 1;
- }
- if (type == 'S')
- {
- WriteSymbol(1, SignalNameString);
-
- temp = SymbolLength(SignalNameString);
- len = len + temp + 1;
- }
- if (type == 'N')
- {
- WriteString(1, "N");
- WriteSymbol(1, NetNumber);
-
- len = len + 7;
- }
- if (type == 'U')
- {
- WriteString(1, "-");
-
- len = len + 2;
- }
-
- first = 0;
- } while (SetNext(NODES));
-
- /* write the reference */
- WriteString(1, ") | ");
- WriteSymbol(1, ReferenceString);
- WriteCrLf(1);
- } while (SetNext(ALL));
-
- WriteString(1, "| }");
- WriteCrLf(1);
-
- WriteString(0, "Done");
- WriteCrLf(0);
- }
-
-