česky english Vítejte, dnes je středa 24. duben 2024

Porovnání plné verze ModelSim a jeho klon od výrobců FPGA

08.10. 2019 | Zprávy
Autor: Radek Řezníček
ModelSimVyrobciAPlny.png

Program pro HDL simulace poskytuje výrobcům FPGA snadný a nákladově efektivní způsob, jak urychlit vývoj FPGA bez nutnosti vytváření fyzického prototypu. ModelSim je prakticky standardem, také díky dodávání spolu s obvody od předních výrobců FPGA, jako Microsemi nebo Intel, a spoluprací s těmito společnostmi. Dostupná je zdarma také studentská verze. Jak se tedy liší tyto verze, dodávané zadarmo nebo obecně levněji než to, co by se dalo označit za plný ModelSim?

Obecně jsou u levnějších nebo verzí zcela zdarma omezené velikosti vytvářených projektů, případně se omezují na knihovny od daného dodavatele. Velikost projektů je specifikovaná, například na stránkách Intelu, jako 10 000 řádků proveditelného kódu nebo 3 000 instancí. V často kladených otázkách se potom můžete dočíst, že podporují pouze vlastní knihovny a nejsou dostupné další volitelné funkce. Na stránkách Microsemi jsou o něco specifičtější, jaké funkce nejsou podporovány (Code Coverage, C debugger, Assertions, …). Označení volitelné je však zavádějící, jelikož jsou obsaženy v základním vybavení plného ModelSimu.

Plný ModelSim nabízí jednak nezávislost na výrobci FPGA obvodu, přičemž použití kompilace a simulačních skriptů z verzí od výrobců je možné. Je 2x až 3x rychlejší, v závislosti na struktuře a složitosti programu a samozřejmě jako správná plná verze nemá omezení na velikost projektu (neomezený počet řádků kódu). Mimo tyto rozdíly disponuje plný program moduly pro code nebo functional coverage, Assertions, profiling, Dataflow window, porovnání průběhů, zobrazení paměti čipu či zakódování zdrojového kódu a další.

Právě code coverage spolu s Assertions je výraznou výhodou v případě ověřování správnosti kódu a rychlejšího odhalování chyb. Vyhledávání další chyby je druhým největším a nejvýrazněji se prodlužujícím (v rozmezí minulých dvou let) zdržením při vývoji.

Code coverage kontroluje, zda se kód provedl a/nebo splnil naše představy. Rozděluje se do několika skupin, kde každá část reviduje kód jiným přístupem. Můžeme kontrolovat jednotlivé řádky (výrazy), zda byly provedeny – Statement Coverage; větvení programu, zda byly provedeny všechny alternativy příkazů jako if nebo switch – Branch coverage; kolikrát a jak se změnil stav konečného automatu – FSM coverage; a další.

Assertions jsou podmínky průchodu programem, které by měli být splněny. Zjednodušená analogie může být: Pokud byly dveře právě otevřeny, potom musí být za určitý počet kroků programu zase zavřeny. Když tato podmínka (assertion) není splněna, nachází se v ovládacím programu chyba.

Další schopnosti programu ModelSim a jeho vyšší verze Questa, které dále zjednodušují odhalování chyb bez nutnosti prototypu, se můžete dozvědět na stránkách společnosti CADware.cz nebo přímo u výrobce.

radek@cadware.cz