Skip to content
 

gEDA: Tvorba symbolov pre gEDA

Stručný prehľad pravidiel, ako by mal vyzerať symbol navrhnutý pre gEDA.

Nastavenie prostredia

Od symbolu sa očakáva, že bude navrhnutý v rastri 100mil (2,54mm). Preto je vhodné pred začatím kreslenia nastaviť tento raster (Options -> Snap Grid Spacing [oS])a zapnúť zarovnávanie na raster (Options -> Toggle Snap On/Off [os]). Prázdny súbor potom uložíme pod menom v nasledovnom formáte:

DEVICE-#.sym

Koncovka sym je povinná, symbol # nahraďte číslom varianty symbolu – začnite číslom 1, pokiaľ vytvárate viac grafických reprezentácií pre to isté zariadenie tak ho postupne zvyšujte.

V niektorých prípadoch, ak vytvárame špeciálnu variantu symbolu pre konkrétne puzdro, ostáva otvorená otázka či názov puzdra pridať k názvu súboru alebo iba vytvoriť novú variantu symbolu. Ja osobne preferujem variantu s názvom puzdra – ľahšie sa v symboloch orientuje (napr. DEVICE-TQFP100-1.sym)

Nakreslenie symbolu

Pri kreslení symbolu používajte iba grafické prvky (čiary, obdĺžniky, kruhy, oblúky), text, obrázky, atribúty a piny. Nevsúvajte do symbolu ďalšie symboly, spoje ani zbernice.

Prehľad povolených prvkov a spôsob ich voľby:

Prvok Menu Kláv. skratka
Obdĺžnik Add -> Box b
Čiara Add -> Line l
Kruh Add -> Circle ai
Oblúk Add -> Arc ar
Text Add -> Text ag
Obrázok Add -> Picture at
Atribút Add -> Attribute aa
Pin Add -> Pin ap

Nastavenie atribútov

Atribúty symbolu

V nasledujúcej tabuľke je uvedený zoznam atribútov, ktoré by mali byť obsiahnuté v štandardnom knižničnom symbole. Žiaden by nemal chýbať (pokiaľ nie sú uvedené okolnosti, za ktorých chýbať môže) a ani by nemal obsahovať žiadne atribúty navyše.

Atribút Hodnota Viditeľnosť Popis
device DEVICE nie názov súčiastky, musí byť neviditeľný a nesmie sa použiť ako viditeľný popis
graphical 1 nie čiste grafický symbol, bez elektrického pripojenia, malo by byť nastavené aj device=none
description text nie popis
footprint PACKAGE nie názov puzdra, tak ako je definovené v PCB
refdes U? hodnota Referenčné označenie. V čiste grafických symboloch a termináloch ho urobíme neviditeľným – podrobnosti uvedieme neskôr.
net NET:pin,pin nie Tento atribút je nepovinný, slúži na vytvorenie virtuálnych pinov. Primárne je určený na vytváranie napájacích zberníc.
numslots číslo nie počet slotov, ak symbol nemá sloty, tak treba dať numslots=0
slotdef S:pin,pin… nie definícia priradenia čísla pinov pre sloty; zoznam pinov je v poradí určenom atribútom pinseq
slot 1 nie ak je atribút numslots nenulový, symbol by mal obsahovat aj atribút slot=1; hodnota sa neskôr pri použití symbolu v schéme môže prekryť
value value hodnota tento atribút je dobré definovať pre súčiastky, ktoré majú mnoho rôznych hodnôt, ako sú odpory, kondenzátory, cievky a podobne.

Samotný názov symbolu, ktorý má byť viditeľný (napr. MSP430F1132) definujeme ako text, nie ako atribút. Je dobre, ak je tento popis identický s atribútom device. Natíska sa otázka, prečo by sme nemali zviditeľniť rovno hodnotu atribútu device. Úprimne povedané – neviem.

Všetky atribúty v symbole môžu byť umiestnené kdekoľvek, nepripájajú sa k ničomu. Mechanizmus umiestňovania symbolu do schémy niektoré z nich povýši na pripojené atribúty, ktoré je možné editovať.

Atribúty pinov

V nasledujúcej tabuľke sú uvedené atribúty pinov. Každý pin v knižničnom symbole by mal obsahovať práve tieto atribúty. Ani menej, ani viac.

Atribút Hodnota Viditeľnosť Popis
pinseq číslo nie poradové číslo pinu, určuje poradie, v akom sa piny objavia v netliste. Takisto určuje poradie, v akom sa priraďujú čísla pinov pri použití slotov
pinnumber č. pinu hodnota číslo pinu, toto číslo je použité netlisterom na prepojenie s púzdrom
pinlabel názov pinu hodnota Zobrazený názov pinu. U súčiastok, kde na názve pinu nezáleží alebo jeho funkcia je zrejmá z grafiky symbolu sa zobrazovať samozrejme nemusí (odpory, diódy)
pintype typ pinu nie in,out,io,oc,oe,pas,tp,tri,clk,pwr

Všetky atribúty pinov sú pripojené k pinom.

Trochu sa pristavme pri atribúte net. Tento atribút je primárne určený na definovanie virtuálnych pinov – pinov, ktoré nie sú na symbole nakreslené ale na súčiastke existujú. Používa sa najmä na definovanie napájacích pinov a zeme. Pomocou tohoto atribútu dokážeme definovať aj viacnásobné piny (napríklad, ak má súčiastka zem na pinoch 7 a 20, zadefinujeme ju ako net=GND:7,20). Virtuálny pin definovaný pomocou atribútu net súčasne nanucuje meno sieti, ktorá je k nemu pripojená. Nie je povolené, aby existujúci nakreslený pin v symbole bol súčasne definovaný pomocou atribútu net.

Pri použití atribútu net si treba uvedomíť, že ak použijeme symbol s atribútom net niekoľkokrát, príslušné piny týchto symbolov budú navzájom prepojené. Samozrejme, v schéme ho môžme prekryť novodefinovaným atribútom net, pripojeným k symbolu.

Pomocou atribútu net môžeme definovať aj iné siete ako je napájanie. Musíme si ale uvedomiť dve významné obmedzenia

  • piny definované pomocou atribútu net majú typ pwr. Zatiaľ neexistuje spôsob, ako typ pinu zmeniť, nakoľko je natvrdo zadefinovaný v netlisteri.
  • pri použití hierarchického návrhu sa s atribútom net môže zaobchádzať špeciálnym spôsobom – dá sa špecifikovať, aby sa siete pomenované atribútom net nepremenovávali v každej inštancii podschémy, čo môže mať za následok nežiadúce prepojenie signálov v inštanciách funkčného bloku (táto vlastnosť sa využíva pri definovaní globálnych sietí, napríklad napájania). Viac informácii nájdete v článku o hierarchickom designe (až bude nepísaný)

Doladenie štýlu

Štýl (farba, font) je podrobne popísaný na http://geda.seul.org/wiki/geda:gschem_symbol_creation . Tu uvediem len stručný prehľad:

Text

  • Veľkosť textov zvoliíme 10pt
  • Viditeľný text (nie atribúty) by mal mať farbu č. 9 (Text – zelená)
  • Ak chceme zobrazit negáciu ako čiaru nad textom, treba použiť zápis („pinlabel=\_Reset\_“)

Atribúty

  • Čísla pinov (atribút pinnumber) by mali mať veľkosť 8pt
  • Pripojené atribúty (s výnimkou pinlabel) by mali mať farbu č. 5 (Attribute – žltá)
  • Pripojený atribút pinlabel by mal mať farbu č. 9 (Text – zelená)
  • Nepripojené atribúty by mali mať farbu č. 8 (Detached attribute – červená)
  • Nepripojený atribút value by mal mať farbu č. 9 (Text – zelená)

Grafika symbolu

  • Všetky grafické prvky by mali mať farbu č. 3 (Graphic – zelená)
  • Symboly typu signálu (polarita, hodiny) by mali mať farbu č. 6 (Logic bubble – svetlomodrá)

Piny

  • Piny by mali byť dlhé 300mil (3 okienka mriežky)
  • Piny s pripojenou bublinou by mali byť dlhé 200mil (2 okienka mriežky) a bublina by mala mať priemer 100mil.
  • Červená bodka na pine je miesto, kam sa pripájajú spoje
  • Červená boidka musí ležať na mriežke, ináč nastanú prblémy s pripájaním spojov
  • Piny by mali mať farbu č. 1 (Pins – biela)

Rozdelenie symbolov na viac častí

Niekedy sa môže zdať, že je lepšie jeden symbol rozdeliť na niekoľko častí – napríklad pri CPLD dať napájacie piny do jedného symbolu, JTAG interface do iného symbolu a IO piny do tretieho symbolu. Takýto prístup umožní mať napríklad celú napájaciu časť v jednom rohu schémy a nemusí sa motať pomedzi ostatné signály.

Smelo do toho. Ak všetky časti dostanú to isté referenčné číslo (atribút refdes), všetko bude fungovať podľa očakávania – po prehnaní gsch2pcb všetky časti budú priradené jednému púzdru. Jedinou malou nepríjemnosťou je jediná vec: symbolom treba priradiť referenčné číslo ručne – utility refdes-renum ani grenum nepoznajú spôsob, ako priradiť jedno referenčné číslo skupine symbolov. Takisto treba dávať pozor pri prečíslovaní (refdes-renum -f) – čísla bude treba dodatočne ručne upraviť.

Jeden pin na viac fyzických vývodoch

Často sa vyskytne situácia, keď jeden signál je vyvedený na viac vývodov, napríklad napájanie alebo zem. Tak to je zlé. Neexistuje pre to žiadna rozumná podpora.

Najjednoduchšie riešenie je nakresliť toľko pinov, koľko ich je tesne vedľa seba a použiť len jedno spoločné označenie signálu. Samozrejme v schéme ich nesmieme zabudnúť spojiť dohromady.

Tento prístup nám skomplikuje život v prípade, že máme súčiastku v dvoj alebo trojvývodovom puzdre (napríklad dióda). Vtedy si musíme vytvoriť dve varianty symbolu. Čo už, nič nie je dokonalé.

Samozrejme, natíska sa otázka, či by nebolo možné vývody spojiť priamo v symbole. Nie – to je považované za chybu a je ťažko zaručiť správne chovanie schémy pri generovaní netlistu. Takisto ich virtuálne prepojenie pomocou atribútu net nie je dobrým riešením – keďže atribút net by nemal popisovať fyzicky existujúce piny. Okrem toho, pri viacnásobnom použití symbolu v schéme by sa nám všetky takto definované piny navzájom poprepájali (pokiaľ by sme symbolu nepriradili novú sieť ďalším atribútom net)

Zvláštne prípady symbolov

V praxi sa vyskytujú tri prípady zvláštnych symbolov, ktoré nereprezentujú žiadnu reálnu súčiastku. Prvým prípadom je čiste grafický symbol. Tento symbol nemá žiaden vplyv na schému, nemá vplyv na elektrické prepojenia. Takýto symbol by mal mať nastavené atribúty graphical=1, device=none a atribút refdes musí byť neviditeľný.

Druhým zvláštnym prípadom je terminál. Jedná sa o symbol, ktorý graficky nahrádza prepojenie napájania alebo pinov. Tento symbol typicky obsahuje jeden pin s číslom 1 a atribút device=none. Takisto je dobré, aby obsahoval atribút value, ktorý bude obsahovať názov terminálu. Aj u tohoto symbolu atribút refdes musí byť neviditeľný.

Aby terminál plnil svoju funkciu, musíme ho po umiestnení do schémy pomenovať – v skutočnosti musíme pomenovať sieť, ktorú reprezentuje (názov v atribúte value nevytvára elektrické prepojenie). Môžme použiť dva spôsoby:

  • pomenovať sieť, na ktorú je terminál pripojený (atribútom netname) – toto je čisté riešenie, avšak ak chceme dosiahnuť obvyklý vzhľad schémy, musíme skryť atribút netname, čo môže mať za následok, že dôjde k nekonzistencii medzi pomenovaním terminálu a názvom siete. Tento spôsob by sa mal používať pre pomenovanie všetkých signálov, okrem napájacích
  • pridať atribút net k symbolu – toto riešenie porušuje odporúčanie neprekrývať fyzický pin atribútom net. Avšak jeho výhodou je, že pomenovanie siete sa presúva spolu so symbolom. Toto riešenie sa používa pri napájacích pinoch. Pre iné signály sa neodporúča, vzhľadom k pevne priradenému typu pwr a možným problémom pri hierarchickom návrhu.

Atribut netname nemôže byť súčasťou symbolu a ani atribút net by nemal byť súčasťou symbolu. To nám dáva možnosť po umiestnení terminálu do schémy slobodne sa rozhodnúť, ktoré riešenie použijeme.

Posledným špeciálnym prípadom symbolu je DRC direktíva. Pokiaľ je takýto symbol pripojený k sieti, dá sa modifikovať chovanie kontroly správnosti (DRC). DRC direktíva je grafickým symbolom (atribút grapical=1) a obsahuje atribút device=DRC_Directive – tým je symbol definovaný ako DRC direktíva. Samotné chovanie direktívy určuje atribút value. Ak má hodnotu value=NoConnection, DRC nekontroluje, či sieť spája nejaké piny. Tento typ direktívy môžme využiť v symbole označujúcom nezapojené piny. Ak nadobúda hodnotu value=DontCheckPintypes, tak DRC nekontroluje kompatibilitu typov pinov zapojených v sieti. A ak nadobúda hodnotu value=DontCheckIfDriven, tak sa nekontroluje, či je v sieti obsahujúcej vstupné piny aspoň jeden výstupný. A samozrejme aj u tohoto symbolu atribút refdes musí byť neviditeľný.

A prečo vlastne tieto symboly musia obsahovať atribút refdes ako neviditeľný? Jednoducho preto, aby sa nám neobjavovali v zozname súčiastok (BOM – Bill Of Material).

Zbernicový pin

V posledných verziách sa objavila novinka – zbernicový pin. Tento typ pinu slúži presne na to isté, ako zbernica. Združuje viac funkčne podobných pinov pod jeden grafický symbol. Bohužiaľ, podpora pre tento typ pinu je minimálna – hlavne netlister ho zatiaľ úspešne ignoruje.

Aj to je jeden z dôvodov, prečo tento typ pinu nie je veľmi propagovaný, dalo by sa povedať, že je skrytý. Ale napriek tomu sa dá použiť.

Pin označíme ako zbernicový (bus pin) cez kontextové menu (pravé tlačítko myši) – v menu sa objsví voľba Edit pin type… . Zbernicový pin vyzerá ako obyčajný pin, akurát je podstatne hrubší. Aby sme tento pin vedeli využiť, potrebujeme správne nastaviť atribúty. Bohužiaľ, pretože podpora pre zbernicový pin je stále vo vývoji, atribúty pre tento pin sa môžu v budúcnosti zmeniť. Nasledujúce atribúty zodpovedajú odporúčaniam jedného z kľúčových vývojárov.

Atribút Hodnota Viditeľnosť Poznámka
pinseq číslo nie poradové číslo pinu, určuje poradie, v akom sa piny objavia v netliste
pinnumber zoznam č. pinov nie čísla pinov, v poradí, ako sú priradené zbernici, napríklad 3,4,5,6,10,9,8,7 – pin 3 zodpovedá signálu D[7] a pin 7 zodpovedá signálu D[0]
pinlabel názov zbernice hodnota Zobrazený názov zbernice, napríklad D[7:0]. Formát odporúčam dodržať – hranaté zátvorky, rozsah oddelený dvojbodkou. Odporúča sa radiť piny od najväčšieho čísla po najmenšie
pintype typ pinu nie in,out,io,oc,oe,pas,tp,tri,clk,pwr – predpokladá sa, že všetky signály zbernice majú rovnaký typ

V súčasnom stave netlistera zbernica ani zbernicový pin nevytvárajú elektrické spojenie. Ak chceme jednotlivé signály zbernice prepojiť, môžme skúsiť využiť atribút net a jednotlivé signály vytvoriť ako virtuálne piny. Pre náš príklad by sme vytvorili osem atribútov net:

net=D[7]:3
net=D[6]:4
net=D[5]:5
net=D[4]:6
net=D[3]:10
net=D[2]:9
net=D[1]:8
net=D[0]:7

Tieto atribúty rozumne usporiadame a ponecháme ich viditeľné. Atribúty nepripájame k žiadnemu pinu, ani k tomu zbernicovému. To nám umožní po umiestnení symbolu do schémy atribúty zeditovať (zmeniť meno zbernice) a následne ich schovať. Znova upozorňujem: piny definované pomocou atribútu net majú typ pwr a v hierarchickom návrhu nám môžu pripraviť nepríjemné prekvapenia.

Viac si o použití symbolov so zbernicovým pinom povieme v článku gEDA: Ako pospájať symboly

Každopádne, zbernicový pin je treba považovať za experimentálnu vec.

Kontrola symbolu

Na záver je vhodné vytvorený symbol skontrolovať pomocou programu gsymcheck:

gsymcheck [parametre] <file>

Program pozná tieto parametre:

  • -h help – vypíše zoznam parametrov
  • -qquiet – nevypisuje žiadne správy. O výsledku nám povie iba návratový kód programu:
    • 0 – žiadne cyby a varovania
    • 1 – varovania
    • 2 – chyby
  • -v verbose – vypíše chyby
  • -vv very verbose – vypíše chyby a varovania
  • -vvv very very verbose – vypíše chyby, varovania a info správy.

Odporúčam odstrániť všetky varovania a prebehúť symbol aspoň raz s parametrom -vvv – informácie občas obsahujú zaujímavé odporúčania.

Referenčná karta

Na záver maličkosť – malá tabuľka, ktorá pomôže pri kontrole definovaní a symbolov. Stiahnite si ju, vytlačte a majte ju po ruke.

Zdroj

http://geda.seul.org/wiki
http://geda.seul.org/wiki/geda:gschem_symbol_creation

 

Print Friendly, PDF & Email
8 496 zobrazení