Poszukuję sprzętu i narzędzi deweloperskich FPGA [zamknięte]

38

Zbadano płyty FPGA, ale nie udało się znaleźć płytki o otwartym kodzie źródłowym i neutralnych dla dostawców narzędzi programistycznych FPGA:

  • Producent ORSoC może pochwalić się open-sourcingiem na swojej stronie internetowej, ale tak naprawdę nie mogę znaleźć mocnych dowodów poza webmasteringiem OpenCores.org.
  • Duet: Xilinx reklamuje swoje produkty w konkursie „Open Source Hardware Innovation Contest for China China”. Mimo to ich produkty są zastrzeżone, słabe wsparcie dla * ix -. Podobnie Altera ma słabą obsługę * ix, wystarczy sprawdzić obsługę systemu operacyjnego za pomocą Quartus lub jak uruchomić analizator logiczny na etapie syntezy?
  • Grupa małych graczy - pozwala wskazać najlepszy.

Czy jest jakiś producent silny w zakresie otwartych źródeł, takich jak narzędzia HW i Dev?

hhh
źródło
Powiązane pytanie w SO tutaj .
hhh
3
Dostępny jest teraz zestaw narzędzi open source dla układów FPGA Lattice Semiconductor iCE40, patrz: github.com/cseed/arachne-pnr
Cotton Seed

Odpowiedzi:

8

Niestety, nie ma wiele wolnego oprogramowania dla programowalnego sprzętu. Istnieje kilka narzędzi do syntezy, takich jak Lava (która wymaga w dużej mierze ręcznego ustawiania), Confluence, HDCaml i Atom oraz Icarus Verilog , ale nie ma montera, mapera ani narzędzi do umieszczania i trasowania (absolutnie chciałbym, aby udowodniono, że się mylę to). Opencircuitdesign.com zebrał niektóre narzędzia, ale prawdopodobnie wymaga dokumentacji i generatora strumienia bitów. Z drugiej strony symulacja jest dość dobrze uwzględniona.

Po stronie niewolnej niewolne, ale bezpłatne narzędzia Xilinx ostatnio uległy pewnej poprawie, dodając obsługę libusb i upuszczając Wind / U (okropny niewolny analog winelib) na rzecz Qt (ale nie będą aktualizacja dla wycofanych żetonów). Większość innych narzędzi wydaje się sabotowanych przy użyciu pakietu o nazwie flexlm, w takim stopniu, że trudno jest uruchomić je nawet przy pomocy dostawcy. Mogłem również uruchomić oprogramowanie Lattice Diamond pod Linuksem, ale brakowało symulacji. W przypadku Atmel AT40KAL narzędzie lokalizacji i trasy można uruchomić w Wine, ale biblioteka wymaga niestandardowych komponentów (używa LPM, ale odmawia bramek z 2 wejściami), więc potrzebny byłby rodzaj mapera.

Yann Vernier
źródło
5

Niestety, o ile mi wiadomo, wszystkie narzędzia do syntezy są zamknięte. Zawarty w nich kod stanowi dużą część ich przewagi biznesowej, więc wydaje mi się, że jest mało prawdopodobne, aby wydawało się, że są otwarte.

Xilinx ma bezpłatne łańcuchy narzędzi dla systemów Windows i Linux, a jeśli nie podoba Ci się ich IDE, możesz swobodnie korzystać z narzędzi wiersza poleceń we własnym edytorze. Zrobiłem to już wcześniej, działa dobrze dla małych projektów (np. CPLD), w których nie chcesz wygłupiać się z dużymi złożonymi pakietami oprogramowania.

Altera Wierzę, że oferuje tylko bezpłatne narzędzia dla systemu Windows, ich narzędzia dla systemu Linux są płatne tylko podczas ostatniego sprawdzania (mogło się to zmienić, może minął rok od ostatniego spojrzenia).

davr
źródło
Rozumiem, że synteza - proces implementacji projektu w elementach składowych technologii - jest ostatnią warstwą, na której możliwe jest zastąpienie własnej. Jest to kolejna warstwa - miejsce i trasa, analiza czasowa, która musi z tym iść, oraz generowanie bitów, które następuje, gdzie potrzebne są naprawdę ściśle przechowywane informacje.
Chris Stratton
5

Butterfly Board wygląda dobrej trasie otwartej początkujących źródło na FPGA. Przeniesiono już rdzeń AVR8, dzięki czemu można na nim uruchomić szkice Arduino / kod obiektowy AVR, dzięki czemu istnieje rozsądna krzywa uczenia się.

Aktualizacja: Teraz przemianowano na Tablice Papilio .

Myślę, że Xilinx WebPack jest potrzebny i jest dostępny dla systemów Windows i Linux.

Toby Jaffey
źródło
Webpack powinien być również dla ciebie darmowy.
Kortuk
przepraszam, ale tak naprawdę nie mogę zobaczyć, czym jest „open source”. Wolę wrzucić monetę o ponad połowę taniej: item.taobao.com/auction/… .
hhh
3
Chociaż opiera się na zastrzeżonym łańcuchu narzędzi Xilinx, Butterfly One zawiera 1) projekt płytki typu open source, 2) „programator” typu open source (narzędzie bitstream-> flash) oraz 3) wiele adresów IP typu open source jako przykłady . Zalecana!
Może powinieneś zaktualizować swój link, aby wskazywał na Butterfly One? Czy wiesz również, jak dobrze są one obsługiwane (np. Ile osób z nich korzysta i czy są dobre dla początkujących)?
Earlz
Schematy i wszystkie są open source dla Butterfly One i mam to uruchomione całkowicie na moim komputerze Arch Linux. Musisz ręcznie skompilować kilka rzeczy, ale nie powiedziałbym, że trudniej jest zacząć od większości układów FPGA. (i prawdopodobnie łatwiejsze, ponieważ jest zaprogramowane jako softcore AVR
Earlz
3

Narzędzia programistyczne FPGA są ściśle powiązane z samymi urządzeniami FPGA i są całkowicie zależne od zastrzeżonych szczegółów architektury FPGA, w szczególności na poziomie umiejscowienia, routingu i generowania strumienia bitów. W związku z tym neutralność dostawcy w dużej mierze nie istnieje. Narzędzia wyższego poziomu mogą być do pewnego stopnia neutralne dla dostawców (np. Synplify, narzędzia ESL, narzędzia weryfikacyjne itp.), Ale z pewnością nie są open source.

Z drugiej strony istnieje wiele narzędzi akademickich o otwartym kodzie źródłowym. Dopóki nie chcesz tworzyć prawdziwego urządzenia fizycznego, możesz używać łańcucha narzędzi VPR 5.0 .

mrkj
źródło
Nie kupuję wyjaśnienia „ściśle sprzężonego ze sprzętem”. To samo dotyczy różnych zestawów instrukcji dla wbudowanych procesorów.
maxy
@maxy - nie, to naprawdę nie jest. Procesor pozbywa się dużej ilości szczegółów sprzętowych, które są narażone na łańcuch narzędziowy FPGA i muszą go uwzględniać. Kompilator prądu zmiennego tak naprawdę nie musi wiedzieć ani przejmować się, czy wyjście mnożnika przejdzie do następnego rejestru na czas, a nawet projektant płytki musi tylko spojrzeć na maksymalną dozwoloną prędkość zegara, aby to wiedzieć. W przypadku narzędzia FPGA musisz wiedzieć, ile czasu zajmuje mnożnik, jaki jest czas konfiguracji rejestru, a następnie obliczyć opóźnienie między nimi na podstawie tego, gdzie umieścisz je na chipie i jak kierujesz sygnał pomiędzy nimi.
Chris Stratton
3

Ani open source, ani nadal obsługiwane, ale Xilinx oferuje darmowy, wieloplatformowy (Java) interfejs API o nazwie Jbits, który umożliwia bezpośrednie programowanie (i przeprogramowywanie w czasie rzeczywistym) układów FPGA. Wierzę, że obsługiwane są tylko CPLD i do Virtex-II, ale jest to najbliższa rzecz, aby pozwolić deweloperom na tworzenie własnych niestandardowych narzędzi do syntezy. W najbliższej przyszłości planuję trochę z tym pogodzić.


źródło
Jbits było naprawdę fajne.
Prof. Falken,