Päätöskehikko toimintojen jakamiseen FPGA-logiikan ja sulautetun ohjelmiston välillä niin, että rajapinnat, verifiointi ja toimitusriskit pysyvät näkyvissä.
Käsittele laitteistoa ja ohjelmistoa yhtenä järjestelmänä
FPGA-pohjaisessa tuotteessa ratkaisevin arkkitehtuuripäätös ei usein ole prosessori tai työkaluketju vaan se, missä kukin toiminto suoritetaan. Ohjelmoitavaan logiikkaan sijoitettu toiminto voi saada deterministisen rinnakkaisuuden ja pienen viiveen, mutta sen muuttaminen ja verifiointi on kalliimpaa. Ohjelmistossa sama toiminto voi olla helpompi päivittää ja havainnoida, mutta ajoitus-, läpäisy- tai tehoraja voi ylittyä.
Laitteiston ja ohjelmiston yhteissuunnittelu tekee rajasta tietoisen päätöksen myöhäisen luovutuksen sijaan. Tiimit arvioivat koko järjestelmän käyttäytymistä, jakavat toiminnot yhteisillä kriteereillä ja verifioivat rajapinnan osana tuotetta. Tämä korostuu, kun sulautettu C tai C++, Python-työkalut ja VHDL tai muu laitteiston kuvauskieli kehittyvät rinnakkain.
Asiakkaan saama tulos on kokonaisuus, joka täyttää rajoitteet ilman että kaikki vaativat toiminnot viedään automaattisesti laitteistoon tai kaikki muutettava ohjelmistoon. Jaon pitää perustua mittauksiin, kirjattuihin oletuksiin ja mahdollisuuteen muuttaa ratkaisua epävarmuuden aikana.