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.