Ik heb verschillende vragen over hoe ik mijn eigen ARM-gebaseerde CPU zou ontwerpen?
- Hoe begin ik met een ARM-licentie en eindigen met een pakket dat klaar is om op een bord te worden gesoldeerd?
- Wat krijg ik van ARM (ik weet zeker dat ze meerdere licentie-opties hebben om uit te delen: architectuurlicentie (Qualcomm Snapdragon-stijl) en Core-licentie (TI OMAP-stijl))?
- Welke tools heb ik nodig om verder te gaan als ik “dat iets” van ARM heb?
- Wat stuur ik naar de fab?
- Ik geloof dat alleen bepaalde grondleggers een vergunning hebben om een ARM-kern op een siliciumwafel te etsen. Heb ik gelijk?
- Kan ik het me als student veroorloven om dit op een FPGA te doen? Hoe kan ik ervaring opdoen voor zoiets als dit?
Reacties
- Het voor de hand liggende antwoord is om met ARM te praten.
- Kijk eens naar opencores.com – er zijn veel verschillende processorkernen in verschillende staten van volledigheid en functionaliteit. Wat betreft het verkrijgen van de werkelijke ARM-kernbron … zoals @OlinLathrop zegt … praat met ARM.
- Ik begrijp de downvotes niet ‘, dit is is misschien een naïeve vraag, maar absoluut legitiem IMO.
- Het probleem is dat uw vraag specifiek is voor een workflow die u niet zult volgen. De workflows die u kunt volgen – met een origineel of vrij beschikbaar ontwerp in een HDL om een FPGA te targeten – zijn net zo verschillend van speculatie als een feit.
- De Cortex-M1 core lijkt bedoeld te zijn om in elke geschikte FPGA te draaien. De belangrijkste FPGA-leveranciers hebben de IP-licentie en leveren deze aan de ontwerper zoals elke andere softcore. Ik neem aan dat het niet gratis is, maar er zijn waarschijnlijk programmas beschikbaar specifiek voor academisch gebruik.
Answer
Hier is hoe bedrijven het doen:
- Haal ongeveer $ 10 miljoen op.
- Onderhandel met ARM om een licentie te krijgen. Dit kost waarschijnlijk minstens $ 1 miljoen.
- Haal de ontwerpbestanden op van ARM. Het zal waarschijnlijk in een of andere vorm van VHDL, Verilog of een “gecodeerde” netlijst zijn.
- Ontwerp je eigen chip met een mix van je eigen logica (voor de randapparatuur) en wat ARM je heeft gegeven. Deze stap vereist waarschijnlijk wat dure CAD-software en een klein team van experts. Verwacht minstens 5 miljoen dollar en meerdere jaren te besteden.
- Koop de maskers die voor de chip zelf zijn gemaakt. Als je een modern halfgeleiderproces gebruikt, kost dit ongeveer $ 1 miljoen.
- Laat de chip zelf maken. De prijs varieert, maar zou minder moeten zijn dan $ 0,5 miljoen.
- Fouten opsporen in de chip die je hebt gemaakt, de bugs verhelpen en vervolgens teruggaan naar stap 5 totdat je iets hebt dat je kunt verkopen.
Hier is hoe JIJ het doet:
- Een diploma behalen computerarchitectuurcursus aan uw plaatselijke universiteit.
- Volg meer cursussen in digitale logica en wat dan ook.
- Ontwerp een geheel nieuwe CPU in VHDL of Verilog.
- Ontwerp een geheel nieuwe CPU.
- Bekijk de ARM-instructieset en ontwerp een compatibele CPU.
- Laat je ARM-compatibele CPU werken in een FPGA.
- Don “Verspreid je VHDL / Verilog-broncode niet tenzij je aangeklaagd wilt worden.
- Gebruik je ARM-ervaring om een goed proefschrift te schrijven voor je doctoraat.
- Gebruik je doctoraat om een baan te krijgen bij ARM, of TI, of wie dan ook. Herhaal vervolgens het proces met behulp van de voorgaande 7 stappen over hoe een bedrijf het doet.
Ok, dus deze lijst is een beetje ironisch, maarhet is eigenlijk correct. Het punt is, doe niet eens de moeite om rechtstreeks met ARM om te gaan, want de kans is groot dat je het geld niet hebt. En doe ook niets waardoor je door ARM wordt aangeklaagd.
Reacties
- +1. Uitstekend antwoord. Wat ik wilde zeggen , maar beter.
- Elke goede cursus zou de basisstructuur van verschillende soorten CPU ‘ s bevatten en hoe ze allemaal werken. Onderwerpen zouden microcode moeten omvatten, instructie decoderen , ALU ‘ s, geheugentoegang, cache, registers, pipelining, data hazzards, instructie prefetch, etc.
- Is er een reden dat de ARM ‘ s instructieset, op zichzelf, zou octrooieerbaarder zijn dan alle andere CPUs waarvan er veel klonen zijn? Er zijn zeker enkele architectonische kenmerken die gepatenteerd zijn, maar als er een is ‘ s doel is om een CPU te ontwerpen die werkt met bestaande compilers. Zou de instructieset zelf een probleem vormen?
- @supercat Normaal gesproken zijn de instructies zelf niet erg octrooieerbaar, tenzij ze archi technische dingen. MIPS deed dit met hun CPU ‘ s, waar ze een aantal instructies patenteerden die woorden zouden laden / opslaan die niet woord-uitgelijnd zijn, evenals wat dingen om dynamisch te schakelen tussen groot en klein endian .Dit werd in de rechtbank aangevochten toen MIPS een MIPS-kloonmaker aanklaagde en MIPS won (rond 2000). Maar de meeste patenten gaan over architectonische vraagstukken. Je kunt ‘ geen CPU maken die compatibel is met bestaande compilers zonder zowel de architectuur als de instructieset te kopiëren, helaas.
- @LordLoh misschien vind je deze vragen nuttig : electronics.stackexchange.com/questions/28686/… electronics.stackexchange.com/a/7051/638
Antwoord
ARM heeft een Universitair DesignStart-programma . Als student heb je alleen toegang tot basis Cortex-M0-materiaal. Maar als je echt geïnteresseerd bent, betrek dan je faculteit erbij en dan krijg je toegang tot veel meer ontwerpmateriaal (Verilog FPGA-code, Evaluation IP, Simulaties, etc.)
Commentaren
- Bedankt 🙂 Ik ‘ zal proberen mijn adviseur een aantal hiervan te laten opvragen.
- WFIW, dit antwoord is nu verouderd, zowel Cortex-M0 als Cortex-M3 zijn beschikbaar, en sommige delen van het product staan open voor niet-studenten / instellingen.
Antwoord
Bekijk deze ARM-kern op OpenCores.
Reacties
- Maar wees gewaarschuwd: dergelijke herimplementaties worden alleen door ARM getolereerd: eetimes.com/author.asp?section_id=36& doc_id = 1287452 , je bent een staakt-het-en-ophouden / rechtszaak verwijderd. Overweeg ook open bogen zoals RISC-V.
Answer
De ARM Cortex-M1 (waarschijnlijk de eenvoudigste van de ARM-processors) is de eerste ARM-processor die specifiek is ontworpen om te worden geïmplementeerd als een zachte processor in FPGAs. Het is geoptimaliseerd voor de volgende FPGA-typen :
Actel (M1 ProASIC3 and M1 Fusion) Altera (Cyclone-II, Stratix-III) Xilinx (Spartan-3, Virtex-5)
ARM maakt zelf een Cortex-M1 Development Kit voor Altera Cyclone III hoewel het een beetje prijzig is op $ 625 van DigiKey . Je krijgt echter wel alle ARM Cortex-M1 IP en een licentie om te ontwikkelen (plus een gratis royaltytoelage voor 1000 boards voor degenen die in productie gaan, best gaaf).
Er kunnen enkele opties zijn voor het verkrijgen van het IP zelf (misschien hebben ze een academische opleiding, iemand anders noemde een universitaire opleiding, maar dat was voor de M0). Dan zou je apart een ontwikkelbord kunnen kopen.
Hier is wat meer informatie over de ARM Cortex-M1 op Altera .
Hier is wat informatie over het plaatsen van een ARM Cortex-M1 op een Actel FPGA.
Ondertussen is er enige interesse in andere versies van de ARM Cortex op FPGA; hier is een paper van iemand die een ARM Cortex-M0 heeft geïmplementeerd op een Xilinx FPGA.
Opmerkingen
- Als je het ontwerp wilt wijzigen, probeer dan een ” eigen ” 32-bits machine. Momenteel leest de ARM 32-bits instructie 8 bits per keer, wat betekent dat de pc met 4 verhoogt voor elke instructie-ophaalactie.
Antwoord
Je kunt nu toegang krijgen tot de Cortex-M3 processor (en een uitbreidbaar AHB / APB subsysteem) via ARMs DesignStart programma.
De Eval-optie biedt een FPGA-doel (simulatie wordt ondersteund, met versluierde RTL van de kern, al het andere in Verilog). Dit is momenteel gericht op de ARM MPS2 + FPGA, met mbed-ondersteuning.
De Pro-versie (alleen beschikbaar voor bedrijven / universiteiten die een licentie kunnen ondertekenen) staat fabricage toe, en omvat de processorkern in Verilog (dit omvat zowel Cortex -M0 en Cortex-M3).