Využití HLS jazyků (C++, SystemC) přináší programování hardwaru větší abstrakci a zkracuje vývojový cyklus návrhu také díky rychlosti simulace v porovnání se simulací na úrovni RTL (100x rychlejší). Problém ovšem vyvstává v okamžiku určení pokrytí kódu testováním (code coverage), kdy je třeba využít specifické metriky, které berou v potaz i hardware.
Code coverage, tedy (míra) otestování kódu se používá v programování v běžných (HLS) jazycích stejně jako v HDL kódu pro detekci, do jaké míry byl kód (naprogramovaný výraz) otestován, zda byl v rámci testu proveden a s jakým výsledkem. Chyby můžeme testováním nalézt pouze v provedeném kódu. Pokrytí kódu (code coverage) nám navíc, k testu, zda kód obsahuje chyby, říká, jakou jeho část jsme otestovali.
HLS popíše chování za použití méně řádků kódu než RTL, i díky tomu se testování zrychlí. Dalšími výhodami jsou již zmíněná vyšší míra abstrakce, a tedy i možnost popisu širších funkcí než v případě RTL. Nicméně pro ověření takového kódu se návrháři uchylují zpět k softwarovému testování pokrytí kódu. Softwarová řešení nemají povědomí o popisovaném hardwaru, a proto nemusí poskytovat spolehlivé výsledky.
Kýženým postupem by mělo být ověření pokrytí zdrojového kódu HLS a poté stejnými testy provedenými nad RTL strukturou (generovanou tímto kódem) dosáhnout shodného pokrytí. Touto cestou funguje spojení platformy Catapult (s integrovaným systémem Calypto) s Questou RTL obojí od společnosti Mentor, a Siemens Business. Ověření pokrytí kódu s využitím těchto programů funguje v šesti krocích:
Princip ověření pokrytí HLS kódu s povědomím hardwaru za pomocí platforem Catapult a Questa
Využití HLS jazyků na místo RTL zvyšuje produktivitu a snižuje časovou náročnost a tím i cenu návrhu hardwaru. Může být ovšem chybou využívat softwarové ověřování takového kódu, jelikož nemá povědomí o vytvářeném hardwaru. Přenos pokrytí z HLS (s povědomím hardwaru) do RTL prostřednictvím platformy Catapult je dalším krokem v navrhování hardwaru pomocí HLS.
Pro více informací si můžete prohlédnout celý článek nebo odborné pojednání o tématu.
radek@cadware.cz