Bence bir FPGA'nın gerçekte ne olduğu ve tasarımlarda ne zaman kullanıldığına dair bir yanılgı olabilir. Önce o kısmı açıklamaya çalışayım.
FPGA'lar ve birinin sahip olması istendiğinde ...
Basitleştirme riski altında bir FPGA, 'yeniden yapılandırılabilir' bir işlemciden biraz daha fazlasıdır.
Neden birisi 'yeniden yapılandırılabilir' bir mikroişlemci istiyor? Çünkü, bir, iki, hatta iki yüz yonga için bir silikon işlemci üretmek için çok pahalıya mal oluyor. Ekonomik olarak uygulanabilir hale getirmek için binlerce yonga toplu çalıştırmanız gerekir.
İlk seferde hiçbir tasarım hatasız olmadığından, silikon rotasına gitmek, bir şirketi daha fazla test çalıştırması olmasa bile, en büyük üretim maliyetleriyle en az iki kişiye etkili bir şekilde taahhüt eder.
Bu aslında çok az ticari şirketin, yeterince geniş ticari çekiciliğe sahip çip dışında herhangi bir şeyi tasarlamak ve üretmeye ilgi duyacağı anlamına geliyor.
Yani, meşrulaştırdığı özel mikroişlemci, o zaman o parlak tasarımı ile gelip eğer olabilir fiili çip sadece kapıları topluluğudur FPGA, bunu uygulayarak kısıtlı bir bütçeyle hayata fikrinizi getirmeyi deneyin ve 'program' (genellikle VHDL veya Verilog) bu kapıları gerçek bir mikroişlemciye yerleştirir.
Ama bu tamamen farklı (mikroişlemci tasarımı!) Bir yolun oldukça yolu ...
Bu da beni
... FPGA'lar robotik için gerekli değildir - en azından başlangıçta
Robotik için ihtiyacınız olan şey bir işlemcidir . FPGA sadece özel bir tür işlemcidir (yeniden yapılandırılabilir).
'Yapmanız' gerekip gerekmediğini mi soruyorsunuz? Peki bu bilginize ve gerçek ilgi alanlarınızın nereye bağlı olduğuna bağlıdır - önce mikroişlemci tasarımı mı yoksa robotik mi?
Mikroişlemciler tutkunuzsa, elbette! Ve robotik, özel mikroişlemciler için harika bir uygulama alanıdır - belki de doğrudan donanımda ele alınan birçok paralel karar yoluna sahip bir vizyon korteksi veya donanımda özel tensör çarpımı - temel olarak genel işlemcilerin hazır olmadığı her şey.
Ancak FPGA'larda mikroişlemci tasarımlarına gidecekseniz, elbette bahsettiğiniz tüm düşük seviyeli bilgilere ve daha fazlasına sahip olmanız gerekir - çünkü temel olarak kendi işlemcinizi tasarlayacaksınız. Hedef uygulamanız robotik olsa bile, robotlarla gerçekten ilgisi yoktur.
Çoğu tasarımcı muhtemelen ihtiyaç duyduklarının çoğunu yapacak mevcut bir işlemci bulabilir.
Bu yüzden muhtemelen bir FPGA'ya ihtiyacınız olmadığını düşünüyorum .
Bir başlangıç yol haritası: ticari yeteneklerden bir FPGA'ya (belki) ...
Bence ilk amaç, tüm yaratıcı konseptlerinizi çalışan bir robot haline getirmeye çalışmaktır (kendi başına oldukça yoğun bir zorluk).
Tasarımınızda özel ve önemli işleme darboğazlarınız olduğunu fark ederseniz, bir sonraki hedef, işlemcilerinizin seçimini / tasarımını, yine de ticari olarak mevcut olan yongaları optimize etmektir. Belki daha büyük, daha hızlı (güç çekimi, ısı dağılımı ile değiş tokuş). Belli görevleri yerine getiren ve ana beyinle arayüz oluşturan belki daha küçük, özel çipler (algoritma / mantık komplikasyonlarıyla değiş tokuş).
Sadece ticari yongaları işlemeyemeyeceğiniz yetenekler varsa, o zaman bir FPGA içine özel bir işlemci uygulamayı düşünebilirsiniz, çünkü o noktada kendi 'yuvarlayarak' elde etmeyi umduğunuz çok açık avantajlar olacaktır. ve tasarımınızın geri kalanı için doğru arayüzlerle bu yetenekleri uygulamaya odaklanabilirsiniz.
Aksi takdirde, ana hedefinizden yan izlemeniz muhtemeldir (ki aslında bir robot inşa etmek olduğunu varsayacağım!)
Alt satır: FPGA'lar, robotik yolda başlamanın bir yolu olana kadar - robotikte başlamaktan dikkat dağıtıcı bir unsurdur - ve dijital elektronik / mikroişlemci tasarımında yol boyunca bir yerlerde güçlü kesimler elde ettiler.