FPGA üzerinde gömülü linux


10

FPGA'larla çok sınırlı deneyimim var (Altera - sadece görsel tasarım araçlarını kullandı).

FPGA'ya ihtiyacım olan yeni bir proje planlıyorum ve aynı tahtada çalışan gerçek bir linux'dan çok faydalanabiliyorum (çoğunlukla TCP iletişimi ve bazı DSP için).

Benim sorum, bunun için desteklenen bir gömülü linux içeren önerilen bir FPGA var mı? hiçbir fantezi sürücüleri (sadece ethernet, wifi bir artı olabilir, ...). FPGA'da bir mikro denetleyici olacağını hayal ediyorum (bu, FPGA'nın çoğunu yiyeceği ve daha büyük bir FPGA'ya ihtiyaç duyacağım anlamına geliyor).

Yanıtlar:


15

Linux'un no-mmu sürümünü çalıştırabilen bir ders kitabı 32 bit RISC işlemci çekirdeği aslında o kadar büyük olmak zorunda değildir - ihtiyacınız olan gerçek kaynak herhangi bir FPGA'da bulunandan çok daha fazla RAM'dir (10s megabayt), Muhtemelen kartta SDRAM ve FPGA'da bir kontrolör isteyeceksiniz.

Bununla birlikte, önemsiz bir performans seviyesinden başka bir şey istiyorsanız, muhtemelen bazı optimizasyonlara sahip bir çekirdek istersiniz (boru hattı, vb.) Ve bu da boyutu biraz artırmaya başlar. Tam bir mmu eklemek, bellek (yeniden) tahsisini daha verimli hale getirir ve normal yazma üzerine çatal () davranışını etkinleştirir.

Her iki büyük FPGA satıcısı, mevcut linux portlu yumuşak işlemci çekirdeğine sahiptir - Xilinx için Microblaze, Altera için Nios II. Elbette zamanla hareket eden bir hedef olduğu için belirli platform önerileri için dokümanlarını okumalısınız. Üçüncü taraf bir çekirdek tasarımı, daha taşınabilir bir şekilde yazılmışsa ve belirli bir FPGA ailesi için özel olarak optimize edilmemişse, benzer performans için biraz daha büyük olabilir.

Tarihsel olarak, hem sabit işlemci çekirdeğini (genellikle powerpc) yapılandırılabilir FPGA kumaş bölgesi ile birleştiren çipler mevcuttu. Bakmak için başka bir seçenek de FPGA ile aynı kartta ayrı bir işlemci (muhtemelen ARM) olacaktır.

Kararın çoğu, işlemciyi ve FPGA'yı ne kadar sıkı bir şekilde bağlamanız gerektiğine bağlı olacaktır. Sorunu yapılandırma kayıtlarına ve bir veri akışına indirgeyebilirseniz, BeagleBoard veya RasberryPi gibi gömülü bir linux kartının USB ana bilgisayar bağlantı noktasından hızlı bir USB yongasına sahip bir FPGA kartını asmak kadar modüler olabilir. Daha sıkı entegrasyon için FPGA'nın aynı kartta olmasını ve işlemcinin harici veriyolunda oturmasını isteyebilirsiniz. Veya düşük veri hızları için, bir FPGA'ya bir SPI kayıt arabirimi koymak önemsizdir ve UART arabirimleri biraz daha zor olsa da tamamen yapılabilir.

Son olarak, aslında linux gibi tam bir işletim sistemine ihtiyacınız olup olmadığı veya daha fazla bellek gerektirirken daha "mikro denetleyici boyutunda" gömülü bir TCP yığını sorununuzu çözüp çözmeyeceği sorusu vardır.


6

Xilinx'in Microblaze Linux'u gayet iyi çalışıyor, amaçlarınız için yeterince hızlı olduğu varsayılarak - daha ucuz cihazlarda sadece yüksek 10 MIPS, pahalı ailelerde 100-200 MIPS yapacak.

Xilinx'in bir git repo'su var veya birkaç Xilinx'e özgü dağılım var. FPGA esnekliği, hafıza haritanız ve IRQ eşlemeleriniz veya hatta mevcut geliştiriciler bile proje geliştirme sırasında değişebileceği için biraz acı ve nimet olabilir.

Petalinux , bu tür şeyleri yönetmek ve en son ve en iyi sistem tasarımınıza göre önemli olan çekirdek yapılandırmasının bitlerini güncellemek için komut dosyalarına sahiptir.


4

Xilinx'in Virtex serisi, sabit çekirdekli PowerPC'lere sahip FPGA sürümlerine sahiptir. Linux'u PowerPC'de çalıştırmak oldukça kolaydır, öğrencilerim birçok üst düzey tasarım projesi için bunu yapmıştır. Donanım tasarımınızın doldurması için hala yapılandırılabilir kumaşa sahiptirler.

Virtex2 Pro değerlendirme kurulu eğitim ve akademik araştırma projelerinde çok yaygın idi. Xilinx, son sürüm araçlarında bu sürüm çipi için desteği düşürdüğü için, birini oldukça ucuza alabilirsiniz. 9.x sürümüne kadar desteklendiğine inanıyorum. Hmm. Bu birkaç yıl önce, belki biraz nostaljik oluyorum. Her halükarda, hala bu panoları ilgilenen öğrencilere onlarla istedikleri her şeyi yapmalarına izin vermek için geçiriyorum.


1
Çok yanılmıyorsam, Virtex xilinx.com/onlinestore/v2pro_boards.htm
Ali

1
@Ali - Yanıldığını sanmıyorum ve iddian için oldukça güvenilir bir referansın var. Lütfen bu gibi durumlarda düzenleme önermekten çekinmeyin!
Kevin Vermeer

3

Actel'in SmartFusion özelliği, bir FPGA'yı sabit IP ARM Cortex-M3 çekirdeği ve gelişmiş bir analog motorla tek bir yonga cihazında birleştiriyor.

uClinux, SmartFusion'ın Cortex-M3 çekirdeğinde oldukça iyi çalışır. Daha fazla bilgi için bu siteyi kontrol edin .


2

Zaman diliminize bağlı olarak, ARM işlemcisini Artix-7 veya Kintex-7 ile birleştiren Xilinx'in yeni Zynq-7000 serisine de bakabilirsiniz. Xilinx, 2012'nin ikinci yarısında üretim miktarları göndereceklerini iddia ediyor.

Diğer satıcıların benzer ürünleri olabilir. Xilinx'in ücretsiz ISE WebPack'e Zynq desteğini getirip getirmeyeceğini veya ne zaman getireceğini bilmiyorum; şu anda ISE Embedded Edition'a ihtiyacınız olduğunu iddia ediyorlar.


Neden bu cevap topluluğu wiki yaptınız? Muhtemelen gereksizdi.
Kevin Vermeer
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.