|
|
Die Netzliste wird im Bartels AutoEngineer üblicherweise mit dem Stromlauf-Editor erzeugt. Es besteht daneben aber auch die Möglichkeit, (in Fremdsystemen erzeugte) ASCII-Netzlisten in den AutoEngineer einzuspielen. Der Bartels AutoEngineer enthält die nachfolgend aufgeführten Utilityprogramme (genaue Beschreibung dieser Utilities siehe Kapitel 7), mit deren Hilfe Netzlisten verschiedener Formate eingelesen bzw. ausgegeben werden können. 3.4.1 Einlesen logischer NetzlistenSofern logische, ungepackte Netzlisten in den AutoEngineer eingespielt werden, ist anschließend ein Packager-Lauf durchzuführen, bevor das Layout erstellt werden kann. Dies setzt natürlich das Vorhandensein einer Bibliothek mit den vom Packager benötigten Informationen voraus. D.h., ggf. ist vor dem Packager-Lauf eine DDB-Datei mit allen benötigten Layoutsymbolen und loglib-Einträgen zu erstellen. Das Programm netconv (Logical Netlist Conversion Utility) dient dazu, logische (d.h. ungepackte) Netzlisten in den Bartels AutoEngineer zu übertragen. 3.4.2 Einlesen physikalischer NetzlistenBei der Umsetzung bereits gepackter Netzlisten in den AutoEngineer erübrigt sich der Packager-Lauf. Allerdings wird das Vorhandensein einer Bibliothek mit den vom Layout benötigten Informationen vorausgesetzt. D.h., ggf. ist vor der Netzlistenumsetzung eine DDB-Datei mit allen benötigten Layoutsymbolen zu erstellen. Das Programm conconv (Connections Conversion Utility) erlaubt die Übertragung von ASCII-Netzlisten im Bartels-, CALAY-, MARCONI- oder RACAL-Format in den AutoEngineer. Das Programm redasc (REDAC ASCII Input Interface) erlaubt die Übernahme von Layoutdaten des Redac-MAXI-Systems, d.h. sowohl die Transformation von Layoutsymbolen, als auch die Übertragung der Bauteilliste, der Netzliste, sowie ggf. der Platzierung im MAXI-CDI-Format in den AutoEngineer. 3.4.3 NetzlistenausgabeDie Ausgabe von Netzlisten beliebiger Formate ist z.B. mit Hilfe des Programms
userlist möglich. Hierzu ist die Definition eines
userlist-Scripts notwendig. Dieses Script wird vom Programm
userlist interpretiert, und es wird entsprechend den Vorgaben im Script eine ASCII-Ausgabedatei generiert. Erstellen Sie mit Ihrem Editor das
userlist-Script
EXTENSION = ".nl"; PRINT("NETLIST ",PROJECTNAME,";",CR); FOR (ALL PARTS) { PRINT(PARTNAME:-5,"(",$plname:-8,") : "); CLEARCOUNTER; FOR (ALL PINS) { IF (NETPINCOUNT > 1) { PRINT(PINNAME,"(",NETNAME,")"); COUNTUP; IF (COUNTVALUE > 4) { PRINT(CR,TAB);CLEARCOUNTER; } } } PRINT(";",CR); } ENDSPEC Nun können Sie mit folgendem
userlist-Aufruf die in
Nach erfolgreichem
userlist-Lauf sollte die Datei
NETLIST board; c100 (chip1210) : 1(vss)2(vdd); c101 (chip1206) : 1(vss)2(net); ic10 (dil14 ) : 1(@7)10(@9)11(@2)12(@3)13(@9)14(vdd)2(net) 3(@6)4(@4)5(@5)6(@6)7(vss)8(@11)9(@4); k1 (relais ) : a1(vdd)a2(@14)c1(vdd)c2(vdd)nc1(bus.out1) nc2(bus.out3)no1(bus.out0)no2(bus.out2); r100 (r04a25 ) : 1(@7)2(@6); r101 (r04a25 ) : 1(@5)2(@4); r102 (r04a25 ) : 1(@11)2(@9); r103 (r04a25 ) : 1(@3)2(@2); r104 (minimelf) : 1(@2)2(@8); r105 (chip1206) : 1(net)2(vdd); s1000(s1dilo ) : 1(@7)2(net); s1001(s1dilo ) : 1(@5)2(net); s1002(s1dilo ) : 1(@11)2(net); s1003(s1dilo ) : 1(@3)2(net); s1004(s1dilo ) : 1(net)2(vss); s1005(s1dilo ) : 1(net)2(vss); s1006(s1dilo ) : 1(net)2(vss); s1007(s1dilo ) : 1(net)2(vss); s1008(s1dilo ) : 1(net)2(vss); s1009(s1dilo ) : 1(net)2(vss); v1 (to92 ) : 1(vss)2(@8)3(@14); v1000(d04a25 ) : a(@14)k(vdd); x1000(xsubd9bl) : 1(vss)4(bus.out0)5(bus.out1)6(bus.out2)7(bus.out3) 9(vdd); Mit folgendem
userlist-Aufruf lässt sich die in
Nach erfolgreichem
userlist-Lauf sollte die Datei
NETLIST board_log; c100 (c ) : 1(vss)2(vdd); c101 (c ) : 1(vss)2(net); ic10 (cd4081 ) : a(@7)b(net)y(@6); ic11 (cd4081 ) : a(@5)b(@6)y(@4); ic12 (cd4081 ) : a(@11)b(@4)y(@9); ic13 (cd4081 ) : a(@3)b(@9)y(@2); k10 (rels ) : a1(vdd)a2(@14); kk100(relc ) : c(vdd)nc(bus.out1)no(bus.out0); kk101(relc ) : c(vdd)nc(bus.out3)no(bus.out2); r100 (r ) : 1(@7)2(@6); r101 (r ) : 1(@5)2(@4); r102 (r ) : 1(@11)2(@9); r103 (r ) : 1(@3)2(@2); r104 (r ) : 1(@2)2(@8); r105 (r ) : 1(net)2(vdd); s1000(s_1dil ) : 1(@7)2(net); s1001(s_1dil ) : 1(@5)2(net); s1002(s_1dil ) : 1(@11)2(net); s1003(s_1dil ) : 1(@3)2(net); s1004(s_1dil ) : 1(net)2(vss); s1005(s_1dil ) : 1(net)2(vss); s1006(s_1dil ) : 1(net)2(vss); s1007(s_1dil ) : 1(net)2(vss); s1008(s_1dil ) : 1(net)2(vss); s1009(s_1dil ) : 1(net)2(vss); v1 (tr_bc517) : b(@8)c(@14)e(vss); v1000(d ) : a(@14)k(vdd); x1000(x_subd9b) : 1(vss)4(bus.out0)5(bus.out1)6(bus.out2)7(bus.out3) 9(vdd); 3.4.4 NetzattributeIm Packager sind Funktionen zur Übernahme beliebiger netzspezifischer Attribute integriert. Diese Netzattribute können im Stromlaufplan an speziellen Netzattributsymbolen definiert werden (Funktion im Menü ). Damit der Packager diese Information in die physikalische Netzliste übertragen kann, ist zusätzlich ein entsprechender Eintrag in der Logischen Bibliothek erforderlich. Abbildung 3-3 zeigt ein Beispiel für die Definition und Verwendung von Netzattributsymbolen mit den entsprechenden Loglib-Definitionen (siehe hierzu auch die Beschreibung des Utilityprogramms loglib im Kapitel 7.11 dieses Handbuchs).
Utilities zur Netzlistenverarbeitung |
|