2010-07-26 11 views
9

Zaczynam się uczyć osadzonych w C (i może trochę w C++), a ktoś z biura powiedział, że jest gotów oddać darmowy mikroukład Xilinx, na którym siedzieli na półce. Myślałem o bardziej Arduino, zwłaszcza że tutoriale Arduino i przykładowe projekty są obfite.Jak często używane są układy Xilinx?

  • Czy ktoś może potwierdzić, w jaki sposób żetony xilinx można porównać do arduino? Czy w branży są one znane w jakikolwiek sposób bardziej "realnym światem"? albo nie?

  • Czy są jakieś specyficzne układy Xilinx (może starsze modele), których powinienem unikać, przynajmniej kiedy jeszcze zaczynam?

  • Czy mają stosunkowo stromą krzywą uczenia się niż Arduino z powodu braku samouczków?

Jestem zainteresowany słuchaniem wszystkiego, co przychodzi ci na myśl, kiedy słyszysz Xilinx w przeciwieństwie do Arduino. Niewiele wiem na temat żetonów, nie mówiąc już o tym konkretnym, więc bardzo trudno jest mieć jakiekolwiek świadome porównanie.

Odpowiedz

9

Porównywasz kredę i ser. Xilinx to firma, a nie chip, a Arduino to otwarta platforma programistyczna oparta na mikrokontrolerze AVR firmy Atmel.

Sam też "chip" jest prawdopodobnie bezużyteczny; będzie musiała zostać zamontowana na płytce rozwojowej z komponentami pomocniczymi i zasilaczami itp.

Xilinx tworzy układy FPGA i inne programowalne urządzenia logiczne. Możliwe jest posiadanie FPGA z wbudowanym twardym lub miękkim procesorem rdzenia (tj. Procesor zdefiniowany w bramkach logicznych FPGA), i dla tego rdzenia programowanego w C, ale jeśli zaczynasz, ile piłek chcesz żonglować naraz? Taki rdzeń będzie bezużyteczny, bez możliwości syntezy peryferyjnego sprzętu niezbędnego do zrobienia czegoś pożytecznego. Są używane w wysoce wyspecjalizowanych aplikacjach, gdzie zestaw rdzenia i urządzeń peryferyjnych musi być ściśle powiązany z aplikacją. Są często używane w aplikacjach, w których standardy są wciąż opracowywane (np. Komunikacja bezprzewodowa), w których zarówno oprogramowanie sprzętowe, jak i oprogramowanie mogą wymagać zmiany w terenie w celu obsługi zmian. Innym zastosowaniem układów FPGA jest bezpośrednie wdrażanie algorytmów sprzętowych w celu wykorzystania paralelizmu i układania rur, które umożliwiają masywne przyspieszenie w porównaniu z rozwiązaniami programowymi.

Podczas Arduino, a dokładniej AVR (są inne AVR dostępne platformy programistyczne) mogą być programowane w C i C++, jeśli poważnie myślisz o używaniu C++ w systemach wbudowanych, bardziej odpowiednia może być platforma 32-bitowa (jak również mająca zalety wydajności). Płytka rozwojowa oparta na ARM Cortex-M3 lub ARM 7 byłaby dobrym początkiem, zwłaszcza, że ​​ARM jest również popularnym wyborem dla soft-core procesorów FPGA, jeśli w końcu się do tego zastosujesz.

10

Xilinx jest w branży sprzedaży układów FPGA. Taki chip będzie dla ciebie bezwartościowy bez narzędzi potrzebnych do stworzenia projektu logicznego i wypalenia chipa. Oprzyrządowanie było dość drogie, ale jest dostępne za darmo dla niskich i średnich chipów końcowych (jak wskazano w komentarzach). Google "Verilog" i "Programowanie FPGA".

Zasadniczą różnicą między FPGA i Arduino jest to, że programujesz sprzęt na FPGA, oprogramowanie na Arduino.

+0

@Hans, Yep, Verilog i VHDL dzwonią z rozmowy, którą z nim rozmawiałem. Więc FPGA nie są dobrym wyborem, jeśli nie pracujesz dla firmy, która ma narzędzia do nagrywania? – cooper

+0

@Nathan i @Hans, aby nie wątpić, ale czy jesteś pewien, że C nie może być używany z FPGA? Myślałem, że to jest to, co wielu inżynierów wbudowanych używa co najmniej do przetestowania kodu zanim przeniosą go na chip, czy coś takiego ... – cooper

+2

Część zestawu narzędzi jest symulatorem, umożliwiającym przetestowanie niestandardowego projektu logicznego przed jego spaleniem. Tak, kod to VHDL, a nie C. Programujesz sprzęt, a nie oprogramowanie. –

13

Żetony Xilinx są bardzo często używane, ale nie na to, co chcesz. Xilinx tworzy FPGA i CPLD, które są zaprogramowane z VHDL i Verilog (nie odpowiednio, oba są programowane z obydwoma). Są one wykorzystywane do przekształcania prototypów układów logicznych w układy scalone. Jeśli chciałbyś stworzyć własny układ ARM, na przykład, możesz kupić kod z ARM i umieścić go na FPGA od Xilinx, a następnie zaprogramować wynik w C. Nie polecam tego, tylko próbuję dać ci pomysł o to, po co te zwierzęta są. W każdym razie Arduino to solidna platforma dla tego, czego chcesz. Idź z tym.

+1

Istnieje także SystemC dla opisu sprzętu, który zyskuje na popularności. Ale nadal nie jest to, czego chce Cooper. –

4

Xilinx tworzy FPGA i związane z nimi narzędzia programowe. Układy FPGA to - abstrakcyjnie - mnóstwo bramek NAND skonfigurowanych z tabelami wyszukiwania. Często są one używane zamiast niestandardowych układów krzemowych dla bardzo szybkiej logiki, gdy liczba jednostek nie wystarcza do uzasadnienia utworzenia ASIC.

Układy FPGA są programowane w języku VHDL lub Verilog, które są - abstrakcyjnie - językami opisu sprzętu. Są one , a nie, podobnie jak von Neumann lub języki funkcyjne.

Pamiętaj, że możesz załadować opis "soft-core" zwykłego procesora i programu z C procesorem, który załadował FPGA .... nie chcesz tego robić, gdy uczysz się osadzony. Możesz skończyć, potrzebując do debugowania swojego procesora CPU. Co, cóż, może być zabawne. Jeśli chcesz to zrobić.

W przypadku prac wbudowanych Arduino to obecnie popularny układ. Możesz go zaprogramować za pomocą C.

+0

Czy Arduino jest chipem? Myślałem, że to po prostu deska do hobbisty/studenta. –

+2

Arduino jest czymś w rodzaju pakietu. Opiera się na serii AVR Atmel, o ile pamiętam. Zastosowana architektura to 16-bitowy Harvard. –

+0

ostatnie? Oprogramowanie arduino zawiera kompilator g ++, więc dostępnych jest wiele funkcji C++. zawsze możesz jednak użyć zewnętrznego kompilatora AVR g ++ – Anycorn

1

Tak wielu tutaj już powiedziało, że Xilinx to FPGA. FPGA są "softlogiczne" w tym, że używasz procesu rozwoju simalar do opracowania ASIC, ale możesz przetestować swój projekt na sprzęcie, nie wymagając przy tym zakładu produkcyjnego. Kompromis to szybkość, implementują "meta-logikę" zamiast układu, który składa się z tradycyjnej logiki "nand-nand" lub "nor-nor", mają programowalne tablice przeglądowe, które można zaprogramować do realizacji dowolnych bramek logicznych. Jest to pojęciem symulującym uruchomienie interpretera dla procesora zamiast kodu natywnego.

Chociaż nie można osiągnąć takiej samej wydajności, jak w przypadku produktu asic, pozwala to na to, aby produkty o małej pojemności miały większość zalet asic bez kosztów produkcji w zakładzie FAB. Ponadto można traktować FPGA bardziej jak projekt oprogramowania i ładować różne strumienie bitowe dla różnych trybów działania. Zarówno Xilinx, jak i Altera mają zestawy programistyczne, które pozwalają przechowywać projekt na kompaktowej lampie błyskowej i wybierać różne obrazy podczas startu systemu.

Dla projektów osadzonych FPGA pozwala na coś, czego zwykle nie można wydostać z procesora półki, Twój projekt może mieć sprzęt EXACT, którego potrzebujesz, nie musisz patrzeć na 1000 różnych mikrosków, aby znaleźć "idealne dopasowanie!" Poza tym widziałem stare systemy, które wykorzystywały procesory 16-bitowe lub 32-bitowe, przenoszone do FPGA i osiągały lepszą wydajność, niższy koszt i niższą moc niż projekty oparte na procesorach. Jest coś, o czym można powiedzieć, włączając w to "odpowiedni" sprzęt.

Zarówno VHDL, jak i Verilog są językami wysokiego poziomu i chociaż różnią się od C i C++, nie są znacznie trudniejsze, tylko inne i wymagają innego procesu myślowego. Nie masz wielu wbudowanych bibliotek, aby zrobić wszystko za Ciebie, więc możesz skończyć się otrzymywaniem "Rdzeni" z witryn takich jak "OpenCores.com" i łączeniem ich razem w celu realizacji projektów z dodatkową logiką, której potrzebujesz. Kod FPGA będzie generalnie równoległy, musisz konkretnie zaimplementować zachowania seryjne i musisz wziąć pod uwagę etapy i opóźnienia potokowe. Więc podczas gdy same języki nie są trudniejsze, niektóre z nich mogą być. Ale są też bardziej satysfakcjonujące, tak jak budowanie domu, zamiast pisać o domu.

Powiązane problemy