Proč další program typu EDA (Electronic Design Automation)

Možná se divíte, proč jsem začal s horizonem EDA v roce 2016, když v té době již existoval funkční program KiCad.

Začněme s citací od Toma Hausherra: PCB Design Perfection Starts in the CAD Library

[…] Perfektní návrh PCB začíná v CAD knihovně

To platí také pro EDA software, kde editor schémat / DPS bude jen tak dobrý jak dobrá bude struktura knihovny. Od definice položek knihovny až po symboly, pouzdra, které jsou základem každého EDA softwaru, změna těchto definic je téměř nemožná bez významné změny téměř ve všech ostatních částí aplikace. Určitá struktura knihovny také vede další vývoj této aplikace EDA.

Používáním KiCadu pro malé a střední projekty, byly mé nejvíce bolestivé body v knihovně postrádající koncept objednatelných součástek bez duplikování symbolu pro každou součástku a schématický editor, který neví o spojích. Zatímco editor desek v KiCadu je docela dobrý jako nástroj pro návrh spojů chyběly expresivní pravidla návrhu. Zejména první a druhý bod se nedal snadno vyřešit bez velkých změn, které by následovalo mnoho diskusí, protože by to byly zlomové změny.

To mě přimělo začít přemýšlet, jak bych navrhl nástroj EDA, který by vyhověl mému přání a byl dostatečně snadný na implementaci od nuly jako show jednoho muže a umožnil splnění snu a experimentování.

Jádrem těchto myšlenek bylo udržování schématu a seznamu spojů (Netlistu) jako reprezentace samostatného návrhu, aby bylo možné použít neschematicky založené postupy takové propojovací tabulky. To vedlo k rozhodnutí definovat vývody a jejich směr signálu v něčem co se nazývá Jednotka (Unit), nikoli ve Značce (Symbolu), který je běžný u mnoha jiných EDA aplikacích. je možné mít více symbolů představujících stejnou součástku (například rezistor) bez jakéhokoli vlivu na seznam spojů. Kromě jména a směru signálu, vývod, jak je definován v jednotce, může mít také více alternativních názvů pro určení více funkcí vývodu, jak jsou obvykle k dispozici na mikroprocesorech (MCU) a programovatelných hradlových polích (FPGA).

Pro definici seznamu spojů (Netlistů) reprezentující skutečnou součástku jsou určeny jednotky (Units)odkazující na něco, čemu se říká entita (Entity). Tento odkaz se nazývá brána (Gate). U jednoduché části, entita odkazuje pouze na jednu jednotku (Unit), která zahrnuje všechny vývody. Pro některé součástky má smysl mít více bran.

Součástky, které obsahují více instancí stejné funkce, jako například čtyřnásobný operační zesilovač pak budou odkazovat na kromě 4krát operační zesilovací jednotku také na jednotku pro napájení.

Na plošném spoji ze strany součástek jsou pouzdra definována jako do značné míry v každé aplikaci EDA - pájecí obrazce a grafické položky jako popisky, referenční označení a montážní obrys. Pájecí obrazce jsou definovány pájecími místy popisujícím měděnou plošku, pájecí masku a další vrstvy v jejich tvarech a mnohoúhelnících. To velmi usnadňují pájecí místa správného tvaru, která mohou být kreslena tak, jak jsou, bez různých obcházení, jako je použití více obrazců, které tvoří jeden skutečný obrazec. Pro každou velikost pájecího obrazce jsou pájecí místa obvykle doprovázeny krátkým skriptem napsané ve vlastním jazyce založeném na zásobníku, abyste mohli upravit jejich velikost a také další vlastnosti, jako je poloměr rohu nebo rozšíření pájecí masky.

Pájecí místa (Pads) pouzdra (Package) jsou mapovány na vývody (piny) definované v jednotkách (Units). na které odkazuje entita v něčem co nazýváme součástka (Part). Aby bylo možné mapovat na něco objednatelné, díly mají pole pro jméno výrobce a číslo dílu výrobce (MPN) mimo jiné podrobnosti, jako je datový list odkaz na internet nebo popis.

Všechny výše uvedené odkazy mezi položkami (například entity odkazující na jednotky) jsou podle jednoznačného identifikačního klíče UUID. V Horizon EDA mají všechny přiřazené položky neměnné UUID v době jejich vytvoření. Toto UUID pak používají další položky k odkazovaní na tuto položku.

Na závěr tohoto úvodu:

Moje největší slabost je v tom, že nakonec obrátím libovolný elektronický projekt do výmluvy pro psaní EDA softwaru (a naopak).

(Převzato z: https://twitter.com/mycoliza/status/824809235632447492)

Dále: Hlavní výhody