Popis gsim
Pre simuláciu elektronických systémov existuje v súčasnosti množstvo komerčne dostupných aplikácií líšiacich sa oblasťou použitia a pochopiteľne aj cenou. Pre využitie v pedagogickej praxi sú väčšinou nepoužiteľné z dôvodov najrozličnejších obmedzení, vo výskumnej sfére prekážajú uzatvorené formáty a nemožnosť verifikácie implementovaných algoritmov a postupov. Závažným nedostatkom komerčných produktov býva nemožnosť tvorby vlastných natívnych komponentov a ich integrácia do simulačného systému. Na Katedre informatiky FM preto vznikol projekt gsim, ktorý by mal vhodnou formou sprístupniť simulačné nástroje dostupné pod licenciou GNU-GPL do pedagogickej resp. výskumnej praxe.
Projekt gsim v súčasnej verzii integruje výhradne open-sourcové nástroje na platforme Linux do spoločného simulačného prostredia s možnosťou riadenia procesu simulácie v jazyku vysokej úrovne - python. Súčasťou gsim sú
- gschem, editor elektronických obvodov z projektu gEDA
- gnetlist, generátor prepojení z projektu gEDA
- ngspice, simulačný engine založený na simulátore spice-3f5 s rozšírením Xspice pre blokovú a digitálnu simuláciu
- scipy, knižnica (Python) numerických metód
- matplotlib, knižnica (Python) pre generovanie 2D a 3D grafických výstupov
Riadnie procesu simulácie a spracovanie výsledkov (pre/post procesor) je jadrom projektu gsim a je implementované v programovom vybavení napísanom v jazyky python. Súčasťou projektu je aj zbierka grafických komponentov pre gschem, ktorých funkcionalita je implementovaná v gsim.
Projekt gsim umožňuje dva základné módy simulácie
- dávkový mód - proces simulácie je riadený priamo zadaním vybraných grafických elementov do schémy zapojenia. Okrem štandardných komponentov sú súčasťou zapojenia aj grafické elementy reprezentujúce podmienky simulácie a typ grafického zobrazenia výstupných dát. Nevyžaduje znalosť programovacieho jazyka Python.
- interaktívny mód - grafický editor zapojenia gschem slúži na primárne zadanie simulačnej schémy, simulácia a spracovanie výsledkov simulácie je riadené uživateľom v interaktívnom prostredí jazyka python. Pre spracovanie výsledkov je možné využívať všetky dostupné knižnice jazyka python. V interaktívnom móde sú výstupné komponenty ignorované, takže je možné to isté zapojenie používať v oboch módoch.