Skip to content
 

gEDA: netlister – srdce gEDA Suite

Všetko čo sme doteraz robili – kreslili schémy, nastavovali atribúty – smerovalo k jednému cieľu – k použitiu netlisteru. Netlister je nástroj, ktorý dokáže s našou schémou urobiť niečo užitočné. Vytvoreniu DPS sa budeme venovať na inom mieste, tu si popíšeme princíp netlistera a jeho použitie k niektorým každodenným úlohám.

Koncept netlister

Netlister je nástroj, ktorý vezme jednu alebo viac schém, spracuje ich a vytvorí užitočný výstup. Netlister je koncipovaný ako univerzálny nástroj – jednotlivé funkcie (nazývané backend) sú vytvorené ako skripty vo funkcionálnom jazyku scheme a je možné kedykoľvek pridať ďalší typ spracovania alebo výstupu.

Netlister (gnetlist) má v súčasnosti definovaných 37 výstupov. Niektoré z nich samostatne nemajú veľký význam a iba spolu s ďalšími výstupmi vytvárajú zmysluplný výstup. Napríklad program gsch2pcb využíva tri výstupy na prípravu PCB: PCB na vytvorenie netlistu, pcbpins na vytvorenie príkazového súboru na premenovanie vývodov a gsch2pcb na vytvorenie predlohy DPS.

Nebudeme sa venovať všetkým. Väčšina z nich je zdokumentovaná (viac alebo menej) na http://www.geda.seul.org/wiki/geda:documentation. Tu sa pozrieme iba na možnosť kontroly správnosti našej schémy a na prípravu zoznamu súčiastok. Ako príklad použijeme nasledujúcu (dosť nezmyselnú) schému:

Kontrola správnosti schémy

Prvým typom kontroly je kontrola, či sú prepojené všetky súčiastky tak, ako majú byť. Pri tejto kontrole môžme netlister využiť na to, aby nám vytvoril netlist v čitateľnej a zrozumiteľnej podobe. V tomto netliste môžme skontrolovať zapojenie, môžme skontrolovať či sú prepojené správne siete a či náhodou nie sú prepojené aj siete, ktoré nemajú byť prepojené.

Netlister spustíme príkazom:

gnetlist -g geda -o test.log  test.sch

Parametrom -g geda určujeme typ výstupu – v tomto prípade typ geda predstavuje netlist určený pre ľudské oko. Parameter -o test.log určuje výstupný súbor, do ktorého sa výstup zapíše. Ak neurčíme výstupný súbor, vytvorí sa výstupný súbor s názvom output.net. Nakoniec vymenujeme všetky súbory, ktoré tvoria schému. Netlister spracováva viac vymenovaných súborov ako by to bola jedna schéma.

Takto vyzerá výstup, vytvorený z našej schémy (kompletný výpis súboru test.log):

START header

gEDA's netlist format
Created specifically for testing of gnetlist

END header

START components

U1 device=7400
Q1 device=BC847
R4 device=R0217
R3 device=R0805
R2 device=R0805
R1 device=R0805

END components

START renamed-nets

NET1 -> NET2

END renamed-nets

START nets

NET4 : U1 9, U1 4
NET3 : U1 6, U1 3
GND : U1 7, Q1 1, R4 2
Vcc : U1 14, Q1 3, R3 2
unnamed_net1 : R2 1, R1 1
NET2 : U1 2, U1 5, U1 10, Q1 2, R4 1, R2 2, R3 1, R1 2

END nets

Kontrola elektrickej správnosti

Druhým typom kontroly je kontrola elektrickej správnosti (DRC – Design Rule Check). Táto kontrola preverí, či nedochádza k elektrickým konfliktom v zapojení. Tento typ kontroly vyžaduje precízne pripravené symboly, hlavne piny musia mať správne nastavený atribút pintype. Ďalej táto kontrola odhalí nezapojené piny, siete kde sú všetky piny vstupné a podobne.

Kontrolu je možné čiastočne ovplyvniť špeciálnymi symbolmi, ktoré majú nastavený atribút device=DRC_Directive. Viac o týchto symboloch nájdete v článku gEDA: Tvorba symbolov pre gEDA.

Kontrolu spustíme príkazom:

gnetlist -g drc2 -o test.log  test.sch

A takto vyzerá výstup (opäť kompletný výpis súboru test.log):

Checking non-numbered parts...

Checking duplicated references...

Checking nets with only one connection...

Checking pins without the 'pintype' attribute...

Checking type of pins connected to a net...
ERROR: Net NET4 is not driven.
ERROR: Pin(s) with pintype 'output': U1:6 U1:3
are connected by net 'NET3'
to pin(s) with pintype 'output': U1:6 U1:3

Checking unconnected pins...
ERROR: Unconnected pin U1:1
ERROR: Unconnected pin U1:8

Checking slots...

Checking duplicated slots...

Checking unused slots...
WARNING: Unused slot 4 of uref U1

Found 1 warnings.
Found 4 errors.

Vidíme, že v našej schéme máme veľa chýb:

  • Sieť NET4 prepája iba vstupné symboly
  • Máme natvrdo spojené výstupy hradiel (sieť NET3)
  • Máme niekoľko nezapojených vstupov a výstupov
  • Zo súčiastky, ktorá má 4 sloty sme použili iba 3 – pri návrhu DPS bude toto mať hradlo nepripojené vstupy a výstupy

Samozrejme, žiadna kontrola nám neodhalí zlý návrh – napríklad v našej schéme (odhliadnuc od jej celkovej nezmyselnosti) chýba prívod napájania (nejaký konektor alebo terminály).

Zoznam súčiastok

Najprv musíme zadefinovať, ktoré atribúty sa majú do zoznamu súčiastok zahrnúť. Okrem štandardných zdokumentovaných atribútov môžme do zoznamu zahrnúť aj atribúty, ktoré sme si zadefinovali sami, napríklad skladové číslo, objednávacie číslo, dodávateľa, triedu presnosti a podobne.

Atribúty, ktoré chceme zahrnúť do zoznamu uvedieme v súbore attribs. Tento súbor sa musí nachádzať v pracovnom adresári, odkiaľ spúšťame netlister. Atribúty môžu byť vymenované v jednom riadku alebo každý na novom riadku. Typický súbor attribs vyzerá takto:

device
value

Všimnite si, že atribút refdes nie je uvedený. Ten sa totiž zobrazí vždy, takže nie je potrebné ho uvádzať

Teraz môžme spustiť vytvorenie zoznamu. Máme dva typy zoznamov. Prvý typ, jednoduchší, získame príkazom:

gnetlist -g bom -o test.bom  test.sch

V súbore test.bom nájdeme zoznam súčiastok:

refdes  device  value
U1      7400    unknown
Q1      BC847   BC847
R4      R0217   1k
R3      R0805   1k
R2      R0805   1k
R1      R0805   5k

Všimnime si, že každá súčiastka je na zvlášť riadku. Ak by sme chceli zoznam, v ktorom budú všetky súčiastky s rovnakými atribútmi zhrnuté na jednom riadku a bude tam uvedený ich počet (čo je trochu obvyklejší spôsob), môžme si vytvoriť zoznam súčiastok druhého typu:

gnetlist -g bom2 -o test.bom  test.sch

V súbore test.bom nájdeme zoznam súčiastok v takomto tvare:

refdes:device:value:qty
R1:R0805:5k:1
R2,R3:R0805:1k:2
R4:R0217:1k:1
Q1:BC847:BC847:1
U1:7400:unknown:1

Tento zoznam nie je síce pekne čitateľný, ale vieme si ho poľahky upraviť.

Pokiaľ nechceme niektorú súčiastku v zozname súčiastok, pripojme k jej symbolu atribút nobom=1. To ju vyradí zo zoznamu. U -g bom2 stačí existencia atribútu nobom. U -g bom musí mať hodnotu nobom=1 – ak má inú hodnotu, tak sa súčiastka do zoznamu zaradí. Takže univerzálnym riešením je pripojiť atribút nobom=1 alebo atribút nedefinovať.

Text „unknown“ zodpovedá situácii, ak sa daný atribút pri symbole nenachádza. Riešením je nahradenie tohoto textu vo vygenerovanom výstupe alebo pridaním neexistujúceho atribútu (programom gattrib je to rýchlo a bez problémov) – v našom prípade pridáme k súčiastke U1 atribút value=- (ku komponentu so slotom slot=1).

Posledná poznámka k výstupnému súboru: ak špecifikujeme ako výstupný súbor „“ (-o –), výstup sa vypíše na obrazovku miesto do súboru. Toto ale platí len pri zozname súčiastok (bom aj bom2).

Zdroj

http://geda.seul.org/wiki
http://www.geda.seul.org/wiki/geda:gnetlist_ug

 

Print Friendly, PDF & Email
8 309 zobrazení