Kendi ARM tabanlı işlemcilerimi nasıl tasarlarım?


37

Kendi ARM tabanlı işlemcimi nasıl tasarlayacağım hakkında birkaç sorum var?

  • Bir kişi bir ARM lisansıyla başlar ve bir tahtaya lehimlenmeye hazır bir paketle nasıl sonuçlanır?
  • ARM'den ne alabilirim (Dışarıda yemek için birden fazla lisans seçeneğine sahip olduklarından eminim - Mimarlık Lisansı (Qualcomm Snapdragon tarzı) ve Çekirdek Lisansı (TI OMAP tarzı))?
  • ARM'ten “böyle bir şey” aldıktan sonra hangi araçlara devam etmem gerekiyor?
  • Fab'a ne gönderirim?
  • Sadece bazı temellerin bir ARM çekirdeğini silikon bir gofret üzerine oymak için lisanslı olduğuna inanıyorum. Haklı mıyım
  • Bir öğrenci olarak bunu bir FPGA'da yapabilir miyim? Böyle bir şey için nasıl deneyim kazanabilirim?

9
Açık cevap ARM ile konuşmaktır.
Olin Lathrop

3
Opencores.com'a bir göz atın - orada çeşitli bütünlük ve işlevsellik durumlarında çok sayıda işlemci çekirdeği var. Asıl ARM çekirdek kaynağını elde ettiği sürece ... @OlinLathrop'un dediği gibi ... ARM ile konuş.
akohlsmith

6
Olumsuz soruları anlamıyorum, bu naif bir soru olabilir, ama kesinlikle meşru IMO.
Jon L

2
Sorun, sorunuzun takip edemeyeceğiniz bir iş akışına özgü olmasıdır. Bir FPGA'yı hedeflemek için bir HDL'de orijinal veya serbestçe kullanılabilir bir tasarım kullanarak izleyebileceğiniz iş akışları, spekülasyondan çok farklı.
Chris Stratton

2
Korteks-M1 çekirdek herhangi bir müsait şekilde sahip FPGA çalıştırmak amacıyla gibi görünüyor. Büyük FPGA satıcıları IP lisansına sahiptir ve diğer yumuşak çekirdekler gibi tasarımcısına sunar. Ücretsiz olmadığını düşünüyorum, fakat özellikle akademik kullanım için uygun programlar var.
RBerteig

Yanıtlar:


68

İşte şirketler bunu şöyle yapıyor:

  1. Yaklaşık 10 milyon ABD doları artırın.
  2. Lisans almak için ARM ile görüşün. Bu muhtemelen en az 1 milyon dolara mal olacak.
  3. Tasarım dosyalarını ARM'tan alın. Muhtemelen VHDL, Verilog veya "şifreli" bir netlist şeklinde olacaktır.
  4. Kendi mantığınızı (çevre birimleri için) ve ARM'in size verdiğileri kullanarak kendi çipinizi tasarlayın. Bu adım, bazı pahalı CAD yazılımları ve küçük bir uzmanlar ekibi gerektirecektir. En az 5 milyon ABD Doları ve birkaç yıl harcamayı bekleyin.
  5. Çipin kendisi için yapılan maskeleri alın. Herhangi bir modern yarı iletken işlemi kullanırsanız, bu 1 milyon ABD doları civarında olacaktır.
  6. Çipi kendin yap. Fiyat değişebilir, ancak 0,5 milyon ABD dolarından az olmalıdır.
  7. Yarattığınız çipin hatalarını ayıklayın, hataları giderin, sonra satabileceğiniz bir şey olana kadar 5. Adıma geri dönün.

SİZİN nasıl yapılır :

  1. Yerel üniversitenizde yüksek lisans düzeyinde bir bilgisayar mimarlığı kursu alın.
  2. Dijital mantıkta ve başka ne olursa olsun daha fazla ders alın.
  3. VHDL veya Verilog'da sıfırdan bir CPU tasarlayın.
  4. Sıfırdan başka bir işlemci tasarlayın.
  5. ARM komut setine bakın ve uyumlu bir CPU tasarlayın.
  6. ARM-Uyumlu CPU'nuzu bir FPGA'da çalıştırın.
  7. Dava açmak istemediğiniz sürece VHDL / Verilog kaynak kodunuzu dağıtmayın.
  8. Doktora için iyi bir tez yazmak için ARM deneyiminizi kullanın.
  9. Doktora bölümünüzü ARM, TI veya herhangi bir kimsede iş bulmak için kullanın. Ardından, bir şirketin nasıl yaptığı ile ilgili önceki 7 adımı kullanarak işlemi tekrarlayın.

Tamam, yani bu liste yanaklı bir dil ama temelde doğru. Mesele şu ki, doğrudan ARM ile uğraşma zahmetine girme çünkü paranız yok. Ayrıca sizi ARM tarafından dava açacak hiçbir şey yapmayın.


1
+1. Mükemmel cevap Ne diyecektim ama daha iyi.
Rocketmagnet

1
İyi bir kurs, farklı tür CPU'ların temel yapısını ve hepsinin nasıl çalıştığını içerir. Konular microcode, komut çözme kodları, ALU'lar, bellek erişimi, önbellek, yazmaçlar, boru hatları, veri tehlikeleri, talimat

3
ARM'in talimat setinin kendi başına, klonlarının bol olduğu diğer CPU'lardan herhangi birine göre daha patentli olması için herhangi bir sebep var mı? Kuşkusuz, patentli bazı mimari özelliklere sahip olma eğilimi vardır, ancak eğer birinin amacı mevcut derleyicilerle çalışacak bir CPU tasarlamaksa, talimat setinin kendisi sorun çıkarır mı?
supercat,

1
@supercat Normalde talimatlar, bazı mimari şeyler içermediği sürece patent patentine uygun değildir. MIPS bunu CPU'ları ile yaptı; burada kelime hizalı olmayan sözcükleri yükleyen / depolayan bazı talimatların yanı sıra büyük ve küçük endian arasında dinamik olarak geçiş yapmak için bazı şeyler de patentlendi. Bu MIPS bir MIPS klon yapımcısına dava açtığında ve MIPS kazandı (2000 civarında). Ancak çoğu patent mimari konularla ilgilidir. Ne yazık ki hem mimari hem de komut setini kopyalamaksızın mevcut derleyicilerle uyumlu bir CPU oluşturamazsınız.


32

ARM, bir Üniversite DesignStart Programına sahiptir . Bir öğrenci olarak, yalnızca temel Cortex-M0 materyallerine erişebilirsiniz. Ancak, gerçekten ilgileniyorsanız, fakültenizi dahil edin ve daha sonra çok sayıda tasarım malzemesine erişebilirsiniz (Verilog FPGA kodu, Değerlendirme IP'si, Simülasyonlar, vb.).


4
Teşekkürler :-) Bunlardan bazılarını istemek için danışmanımı almaya çalışacağım.
Lord Loh.

WFIW, bu cevap şimdi modası geçmiş, hem Cortex-M0 hem de Cortex-M3 mevcuttur ve ürünün bazı bölümleri öğrencilere / kurumlara açıktır.
Sean Houlihane,


3

ARM Cortex-M1 (muhtemelen ARM işlemcilerin en basiti) FPGA'larda yumuşak bir işlemci olarak özel olarak tasarlanmış ilk ARM işlemcidir. Aşağıdaki FPGA tipleri için optimize edilmiştir :

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

ARM, Altera Cyclone III için Cortex-M1 Geliştirme Kiti üretiyor, ancak DigiKey'den 625 $ ' a biraz pahalı . Tüm ARM Cortex-M1 IP'lerini ve geliştirme için bir lisans alıyorsunuz (artı üretime giren kullanıcılar için 1000 anakart için ücretsiz telif hakkı ödeneği).

IP'yi kendi başına almak için bazı seçenekler olabilir (belki bir akademik programa sahipler, bir başkası bir üniversite programından bahsetti ama bu M0 içindi). O zaman ayrıca bir geliştirme kurulu satın alabilirsiniz.

Altera'daki ARM Cortex-M1 hakkında daha fazla bilgi .

İşte Actel FPGA'ya bir ARM Cortex-M1 koymakla ilgili bazı bilgiler .

Bu arada FPGA üzerindeki ARM Cortex'in diğer versiyonlarına da ilgi var; Xilinx FPGA üzerinde ARM Cortex-M0 uygulayan birinin makalesi .


Tasarımı değiştirmek istiyorsanız, "uygun" bir 32 bit makine yapmayı deneyin. Şu anda, ARM bir seferde 32 bit komut 8 biti okur, yani PC her komut alımı için 4 artar.
Alan Campbell,

1

Artık Cortex-M3 işlemciye (ve genişletilebilir AHB / APB alt sistemine) ARM's DesignStart programı ile erişebilirsiniz.

Değerlendirme seçeneği bir FPGA hedefi sağlar (simülasyon, çekirdeğin RTL'sinde karışık olan Verilog'da bulunan diğer her şey ile desteklenir). Bu şu anda mbed desteği ile ARM MPS2 + FPGA'yı hedeflemektedir.

Pro sürümü (yalnızca lisans imzalayabilen şirketler / üniversiteler için geçerlidir) üretime izin verir ve Verilog'daki işlemci çekirdeğini içerir (bu hem Cortex-M0 hem de Cortex-M3'ü kapsar).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.