Jak zaprojektować własne procesory oparte na ARM?

37

Mam kilka pytań dotyczących tego, jak zaprojektować własny procesor ARM?

  • Jak zacząć od licencji ARM, a skończyć na pakiecie gotowym do wlutowania na płytkę?
  • Co otrzymam z ARM (jestem pewien, że mają wiele opcji licencji do wydania - Licencja Architektoniczna (styl Qualcomm Snapdragon) i Licencja Podstawowa (styl TI OMAP))?
  • Jakie narzędzia muszę wykonać, gdy mam „to coś” z ARM?
  • Co mam wysłać do fab?
  • Uważam, że tylko niektórzy założyciele mają licencję na wytrawianie rdzenia ARM na krzemowym waflu. Czy mam rację?
  • Czy jako student mogę sobie na to pozwolić na FPGA? Jak zdobyć praktyczne doświadczenie dla czegoś takiego?
Lord Loh.
źródło
9
Oczywistą odpowiedzią jest rozmowa z ARM.
Olin Lathrop,
3
Spójrz na opencores.com - istnieje wiele różnych rdzeni procesorów w różnych stanach kompletności i funkcjonalności. Jeśli chodzi o uzyskanie rzeczywistego źródła rdzenia ARM ... jak mówi @OlinLathrop ... porozmawiaj z ARM.
akohlsmith,
6
Nie rozumiem głosów negatywnych, to może być naiwne pytanie, ale zdecydowanie uzasadnione IMO.
Jon L
2
Problem polega na tym, że twoje pytanie jest specyficzne dla przepływu pracy, którego nie będziesz w stanie śledzić. Przepływy pracy, które możesz śledzić - używając oryginalnego lub ogólnodostępnego projektu w HDL, aby celować w układ FPGA - są tak różne, jak spekulacje.
Chris Stratton,
2
Cortex-M1 rdzeń wydaje się być przeznaczone do pracy w dowolnym FPGA korzystnie zdolnego. Główni dostawcy FPGA mają licencję IP i dostarczają ją projektantowi, tak jak każdy inny miękki rdzeń. Zakładam, że nie za darmo, ale prawdopodobnie są dostępne programy przeznaczone specjalnie do użytku akademickiego.
RBerteig,

Odpowiedzi:

68

Oto jak to robią firmy:

  1. Zbierz około 10 milionów USD.
  2. Negocjuj z ARM, aby uzyskać licencję. Będzie to prawdopodobnie kosztować co najmniej 1 milion USD.
  3. Pobierz pliki projektu z ARM. Prawdopodobnie będzie to jakaś forma VHDL, Verilog lub „zaszyfrowana” lista sieci.
  4. Zaprojektuj swój własny układ, używając kombinacji własnej logiki (dla urządzeń peryferyjnych) i tego, co dał ci ARM. Ten krok prawdopodobnie będzie wymagał drogiego oprogramowania CAD i niewielkiego zespołu ekspertów. Spodziewaj się wydać co najmniej 5 milionów USD i kilka lat.
  5. Przygotuj maski dla samego układu. Jeśli użyjesz dowolnego nowoczesnego procesu półprzewodnikowego, proces ten potrwa około 1 miliona USD.
  6. Zrób sam chip. Cena jest różna, ale powinna być mniejsza niż 0,5 miliona USD.
  7. Debuguj utworzony układ, napraw błędy, a następnie wróć do kroku 5, aż będziesz mieć coś, co możesz sprzedać.

Oto jak TY to zrobić:

  1. Weź udział w kursie architektury komputerowej dla absolwentów na lokalnym uniwersytecie.
  2. Weź więcej kursów z logiki cyfrowej i cokolwiek innego.
  3. Zaprojektuj procesor od podstaw w VHDL lub Verilog.
  4. Zaprojektuj kolejny procesor od zera.
  5. Spójrz na zestaw instrukcji ARM i zaprojektuj kompatybilny procesor.
  6. Spraw, aby Twój procesor kompatybilny z ARM działał w układzie FPGA.
  7. Nie rozpowszechniaj kodu źródłowego VHDL / Verilog, chyba że chcesz zostać pozwany.
  8. Skorzystaj z doświadczenia ARM, aby napisać dobrą rozprawę doktorską.
  9. Skorzystaj z doktoratu, aby znaleźć pracę w ARM, TI lub kimkolwiek. Następnie powtórz proces, wykonując poprzednie 7 kroków, w jaki sposób firma to robi.

Ok, więc ta lista jest trochę nieprzyzwoita, ale jest w zasadzie poprawna. Chodzi o to, że nawet nie zawracaj sobie głowy bezpośrednim kontaktem z ARM, ponieważ istnieje prawdopodobieństwo, że nie masz pieniędzy. I nie rób nic, co spowoduje, że ARM Cię pozwie.


źródło
1
+1. Doskonała odpowiedź. Co chciałem powiedzieć, ale lepiej.
Rocketmagnet
1
Każdy dobry kurs obejmowałby podstawową strukturę różnych rodzajów procesorów i sposób ich działania. Tematy powinny obejmować mikrokod, dekodowanie instrukcji, ALU, dostęp do pamięci, pamięć podręczną, rejestry, potokowanie, zagrożenia danych, pobieranie instrukcji itp.
3
Czy jest jakiś powód, dla którego zestaw instrukcji ARM sam w sobie byłby bardziej patentowalny niż jakikolwiek inny procesor, którego klonów jest mnóstwo? Na pewno są pewne opatentowane funkcje architektoniczne, ale jeśli celem jest zaprojektowanie procesora, który będzie działał z istniejącymi kompilatorami, czy sam zestaw instrukcji stanowiłby problem?
supercat,
1
@ supercat Zwykle same instrukcje nie są bardzo opatentowane, chyba że zawierają pewne elementy architektoniczne. MIPS zrobiło to ze swoimi procesorami, gdzie opatentowali niektóre instrukcje, które ładowałyby / przechowywały słowa, które nie są wyrównane, a także niektóre rzeczy, które dynamicznie przełączały się między dużymi i małymi endianami. Zostało to zakwestionowane w sądzie, gdy MIPS pozwała twórcę klonów MIPS, a MIPS wygrał (około 2000 r.). Ale większość patentów dotyczy zagadnień architektonicznych. Niestety nie można stworzyć procesora kompatybilnego z istniejącymi kompilatorami bez skopiowania zarówno architektury, jak i zestawu instrukcji.
1
@LordLoh mogą okazać się przydatne następujące pytania: electronics.stackexchange.com/questions/28686/… electronics.stackexchange.com/a/7051/638
W5VO
32

ARM ma program University DesignStart . Jako student masz dostęp tylko do podstawowego materiału Cortex-M0. Ale jeśli jesteś naprawdę zainteresowany, zaangażuj swój wydział, a wtedy będziesz mieć dostęp do znacznie większej ilości materiałów projektowych (kod FPGA Verilog, IP oceny, symulacje itp.)

embedded.kyle
źródło
4
Dzięki :-) Postaram się, aby mój doradca poprosił o niektóre z nich.
Lord Loh.
WFIW, ta odpowiedź jest obecnie nieaktualna, zarówno Cortex-M0, jak i Cortex-M3 są dostępne, a niektóre części produktu są otwarte dla osób niebędących studentami / instytucjami.
Sean Houlihane,
3

ARM Cortex-M1 (prawdopodobnie najprostszy z procesorów ARM) to pierwszy procesor ARM zaprojektowany specjalnie do implementacji jako procesor miękki w układach FPGA. Jest zoptymalizowany dla następujących typów FPGA :

Actel (M1 ProASIC3 and M1 Fusion)
Altera (Cyclone-II, Stratix-III)
Xilinx (Spartan-3, Virtex-5)

Sam ARM produkuje zestaw rozwojowy Cortex-M1 dla Altera Cyclone III, choć jest on trochę drogi od DigiKey za 625 USD . Dostajesz jednak cały ARM Cortex-M1 IP i licencję na programowanie (plus darmową dotację na 1000 płyt dla osób rozpoczynających produkcję, całkiem fajnie).

Mogą istnieć pewne opcje uzyskania samego IP (być może mają program akademicki, ktoś inny wspomniał o programie uniwersyteckim, ale to było dla M0). Następnie możesz kupić płytę programistyczną osobno.

Oto kilka dodatkowych informacji na temat ARM Cortex-M1 na Altera .

Oto kilka informacji na temat umieszczania ARM Cortex-M1 na FPGA Actel.

Tymczasem istnieje zainteresowanie innymi wersjami ARM Cortex na FPGA; oto artykuł od kogoś, kto zaimplementował ARM Cortex-M0 na FPGA Xilinx.

tcrosley
źródło
Jeśli chcesz zmienić projekt, spróbuj stworzyć „odpowiednią” maszynę 32-bitową. Obecnie ARM odczytuje 32-bitową instrukcję 8 bitów na raz, co oznacza przyrost PC o 4 dla każdego pobrania instrukcji.
Alan Campbell
1

Możesz teraz uzyskać dostęp do procesora Cortex-M3 (i rozszerzalnego podsystemu AHB / APB) za pośrednictwem programu DesignStart firmy ARM.

Opcja Eval zapewnia cel FPGA (obsługiwana jest symulacja, z zaciemnionym RTL rdzenia, wszystko inne w Verilog). Obecnie dotyczy to ARM MPS2 + FPGA, z obsługą mbed.

Wersja Pro (dostępna tylko dla firm / uniwersytetów, które mogą podpisać licencję) umożliwia produkcję i obejmuje rdzeń procesora w Verilog (dotyczy to zarówno Cortex-M0, jak i Cortex-M3).

Sean Houlihane
źródło