Vendor independent FPGA development
Sippola, Eetu (2023)
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2023053015827
https://urn.fi/URN:NBN:fi:amk-2023053015827
Tiivistelmä
Tämä opinnäytetyö tehtiin Danfoss Oy:lle. Opinnäytetyön tavoitteena oli tutkia toimittajasta riippumattoman FPGA-kehityksen mahdollisuuksia ja antaa näkemys FPGA-kehityksen ekosysteemin kypsyydestä toimittajasta riippumattomien menetelmien ympärillä. Toimittajasta riippumattomat menetelmät ovat tavanomaisten sulautettujen järjestelmien ohjelmistokehityksen peruselementtejä, mutta FPGA:n saralla nämä ovat vasta tulossa.
Tässä opinnäytetyössä tehtiin yksinkertainen toimittajariippumaton toteutus
käyttäen vain geneeristä HDL:ää ja toimittajasta riippumatonta prosessoria avoimella käskykanta-arkkitehtuurilla. Tämä toteutus käännettiin sitten onnistuneesti
muutaman eri valmistajan FPGA-piireille käyttämällä EDA-työkalua. Tätä prosessia käytettiin referenssinä kartoittaessa toimittajariippumattomia menetelmiä ja niiden mahdollisuuksia FPGA-kehityksessä. Myös muita lähteitä ja menetelmiä tutkittiin pääasiassa käännösprosessia varten. Tietoa kerättiin itse prosessista,
tieteellisistä artikkeleista, julkaisuista sekä valmistajan käsikirjoista ja dokumentaatiosta.
Tutkimuksen aikana todettiin, että tämän opinnäytetyön menetelmillä on mahdollista toteuttaa ainakin jossain määrin tai jopa kokonaan toimittajariippumattomia projekteja. Toimittajasta riippumattomien menetelmien käyttäminen tuottaa lisätyötä varsinkin, jos projekti on alun perin kehitetty sisältäen toimittajariippuvaisia osia.
Tarve vaihtoehtoiselle käännösprosessille havaittiin, koska toimittajan tarjoaman
EDA-työkalun käyttö vähentää projektin toimittajan riippumattomuutta. Hyväksi
vaihtoehtoiseksi menetelmäksi todettiin toimittajakohtaisten työkalujen skriptaaminen kehittäjien itsensä toimesta. Kaiken kaikkiaan todettiin, että tässä opinnäytetyössä kuvatuilla menetelmillä on mahdollista pyrkiä toimittajariippumattomuuteen. This thesis was done for Danfoss Oy. The objective of the thesis was to research the possibilities of vendor independent FPGA development and offer insight to
the maturity of the ecosystem around vendor independent methods in FPGA development. Vendor independent methods are a staple in conventional software
development in embedded systems but in the field of FPGA these methods are just emerging.
In this thesis a simple vendor independent implementation was done using only generic HDL and vendor independent processor with open instruction set architecture. This implementation was then successfully translated to a couple of different devices using an EDA tool. This process was used as a reference for mapping vendor independent methods and their possibilities in FPGA development. Also, other sources and methods were investigated mainly for the translation process. Information was gathered from the process itself, scientific articles, publications and manufacturer manuals and documentation.
During the research it was concluded that using the methods in this thesis it is fully or at least to some extent possible to have vendor independent projects.
Using vendor independent methods will produce some extra work especially if the project is initially developed having vendor dependent parts.
A need for an alternative process for translating was also discovered since using a vendor provided EDA tool will lessen the vendor independence of a project. For an alternative method scripting the vendor specific tools by the developers themselves was deemed plausible. All in all, it was concluded that it is feasible to
strive for vendor independence using the methods described in this thesis.
Tässä opinnäytetyössä tehtiin yksinkertainen toimittajariippumaton toteutus
käyttäen vain geneeristä HDL:ää ja toimittajasta riippumatonta prosessoria avoimella käskykanta-arkkitehtuurilla. Tämä toteutus käännettiin sitten onnistuneesti
muutaman eri valmistajan FPGA-piireille käyttämällä EDA-työkalua. Tätä prosessia käytettiin referenssinä kartoittaessa toimittajariippumattomia menetelmiä ja niiden mahdollisuuksia FPGA-kehityksessä. Myös muita lähteitä ja menetelmiä tutkittiin pääasiassa käännösprosessia varten. Tietoa kerättiin itse prosessista,
tieteellisistä artikkeleista, julkaisuista sekä valmistajan käsikirjoista ja dokumentaatiosta.
Tutkimuksen aikana todettiin, että tämän opinnäytetyön menetelmillä on mahdollista toteuttaa ainakin jossain määrin tai jopa kokonaan toimittajariippumattomia projekteja. Toimittajasta riippumattomien menetelmien käyttäminen tuottaa lisätyötä varsinkin, jos projekti on alun perin kehitetty sisältäen toimittajariippuvaisia osia.
Tarve vaihtoehtoiselle käännösprosessille havaittiin, koska toimittajan tarjoaman
EDA-työkalun käyttö vähentää projektin toimittajan riippumattomuutta. Hyväksi
vaihtoehtoiseksi menetelmäksi todettiin toimittajakohtaisten työkalujen skriptaaminen kehittäjien itsensä toimesta. Kaiken kaikkiaan todettiin, että tässä opinnäytetyössä kuvatuilla menetelmillä on mahdollista pyrkiä toimittajariippumattomuuteen.
the maturity of the ecosystem around vendor independent methods in FPGA development. Vendor independent methods are a staple in conventional software
development in embedded systems but in the field of FPGA these methods are just emerging.
In this thesis a simple vendor independent implementation was done using only generic HDL and vendor independent processor with open instruction set architecture. This implementation was then successfully translated to a couple of different devices using an EDA tool. This process was used as a reference for mapping vendor independent methods and their possibilities in FPGA development. Also, other sources and methods were investigated mainly for the translation process. Information was gathered from the process itself, scientific articles, publications and manufacturer manuals and documentation.
During the research it was concluded that using the methods in this thesis it is fully or at least to some extent possible to have vendor independent projects.
Using vendor independent methods will produce some extra work especially if the project is initially developed having vendor dependent parts.
A need for an alternative process for translating was also discovered since using a vendor provided EDA tool will lessen the vendor independence of a project. For an alternative method scripting the vendor specific tools by the developers themselves was deemed plausible. All in all, it was concluded that it is feasible to
strive for vendor independence using the methods described in this thesis.