Jardines de Viveros FPGA'ler giderek daha popüler hale geldi son zamanlarda. Profesyonel uygulamalar için bile bu çipler sıklıkla kullanılır, ancak aynı zamanda bir çip içinde ayrı bir devre uygulamak isteyen ve bunun tüm avantajlarıyla birlikte yapmak isteyenler için de kullanılır. Düzenlerinizi veya desenlerinizi göndermek ve sizin için özel bir çip imal ettirmek için bir fabrika bulmak ucuz veya kolay değildir.
Bazı dökümhanelerin izin verdiği doğrudur gofret veya çok amaçlı gofret yapın onları test etmek için bireylerden veya üniversitelerden çipler yapmak. Bu tür fabrikalar dediğim gibi bulmak zor, genellikle yurtdışında ve ucuz değiller. Bir süre sonra, çiplerinizin numuneleri kararlaştırılan adrese gönderilir, ancak bunları test etmek veya çalışıp çalışmadığını kontrol etmekle görevli değillerdir. Her şey tasarımınıza bağlı ...
bir buna alternatif çözüm bir FPGA satın almaktır ve çipin içinde uygulamanız gereken her şeyi programlayın ...
FPGA nedir?
FPGA, Alan Programlanabilir Kapı Dizisi anlamına gelir. Pratik olarak her şeyin uygulanmasına izin verecek şekilde yapılandırılabilen dijital cihazlar veya çiplerdir. Yani, başka bir deyişle, "yazabileceğiniz" boş bir çiptir. Bu, bir CPU, bir bellek, bir kontrolör, herhangi bir mantık, vb. Uygulayabileceğiniz anlamına gelir, çok hızlı bir işlem gerçekleştirir ve elektronik elemanlarla değil bir yongaya entegre olmanın tüm avantajlarıyla.
Xilinx'in kurucu ortakları Ross Freeman ve Bernard Vonderschmitt, 1984'te FPGA'yı icat edenlerdi. Bunu o zamanın CPLD yongalarının bir evrimi olarak yaptılar. CPLD programlanabilir çipler, yeni FPGA tasarımlarını çözen bazı eksikliklere sahipti ve o zamandan beri bugüne kadar gelişiyorlar.
FPGA pazarı o kadar verimli ki, şirketler Intel, Xilinx, Altera, Quick Logic, Lattice vb., onlar için daha iyi FPGA'lar ve ayrıca gömülü programlama ortamları veya IDE'ler geliştirmek için çok yatırım yaptılar. Böylece geliştiricilerin veya yapımcıların görevlerini kolaylaştırmak için çok iyi platformlar sağlar.
Şu anda bu üreticiler sadece programlanabilir bir çip sağlamakla kalmıyor, aynı zamanda şunları da içeriyor: çok sayıda yardımcı eleman geliştiricilere daha fazla olanak sağlamak için. Örneğin, flash bellek hücreleri, SDRAM bellek hücreleri vb. İçerirler.
Ne için kullanılıyorlar?
Bu nedenle, bir FPGA bir ASIC'ye benzer olabilir, ancak seçebiliriz ne olacak. Örneğin, onu programlamak ve onu bir CPU'ya, GPU'ya, toplayıcıya, bellek denetleyicisine veya tek bir yonga üzerinde uygulanan herhangi bir mantık devresine dönüştürmek için bir kod oluşturabiliriz.
Olasılıklar oldukça sonsuzdur. Aslında, web sitesini ziyaret etmenizi tavsiye ederim opencores.org, çok sayıda ücretsiz donanım projesi sunmaya adanmış bir site. Kodları VHDL, Verligo, vb. Olarak bulacaksınız. RAM, CPU, GPU, denetleyiciler, ALU'lar, FPU'lar, kod çözücüler ve uzun vb..
Nasıl programlanır?
Bir FPGA programlamak için, Windows için kesinlikle daha fazla geliştirme ortamı olmasına rağmen, GNU / Linux, Windows ve MacOS gibi favori işletim sistemimizden yapabiliriz. Genel olarak, FPGA'yı sunan aynı şirketler Çalışmak için çok eksiksiz IDE ve ihtiyacınız olan tüm araçları aynı yazılım paketinde nerede bulacağınız.
Ayrıca ihtiyacınız olacak FPGA yongası veya kartı ve gerekli kablo veya programlayıcı yazılı kodu FPGA'ya iletmek için FPGA'yı PC'nize bağlayabilirsiniz ve böylece programlanır. Bu, Arduino kartıyla yaptığınız şeye benzer bir şey, Arduino IDE programını mikrodenetleyicinin programlanabilir belleğine yazmak.
Sadece FPGA durumunda, sahip olduğumuz şey bir matris veya bellek hücreleri, AND geçitleri, OR, NOT, Flip-floplar ve diğerleri gibi temel bileşenler dizisidir. dijital elektroniklerin temel öğeleri veya blokları kullanabileceğimiz. Yazılı programla yapacağımız şey, ALU gibi, istediğimiz küçük devreyi oluşturmak için bu temel blokların bir araya getirilme şeklini empoze etmektir.
Yani, IDE'mizde bir toplayıcı programlarsak, bu toplayıcıyı uygulamak için gerekli bloklar bağlantı kuracaklar FPGA'nın içinde doğru şekilde, böylece çip bir toplayıcı olarak çalışır. Basit değil mi? Genel olarak, bu programlama için fiziksel düzeyde bellek veya bu durumda kalıcı bir bağlantı kurmak için sigortalar gibi çeşitli yöntemler kullanılır.
Çalıştıkları hız bağlı olacaktır. saat frekansı Satın aldığımız FPGA'nın eserleri. Örneğin, en temel olanlar genellikle 50 Mhz'de çalışır, diğerleri bunu çok daha yüksek frekanslarda yapar. 50 Mhz FPGA durumunda bu, saniyede 50.000.000 kez çalışacağı anlamına gelir. Örnek olarak verdiğim toplayıcıyla devam edersek, o kadar meblağı bir saniyede yapabileceksiniz ...
Temasıyla devam ediyor ProgramlamaArduino IDE'de yaptığımız gibi kod yazabileceğinizi veya başka bir program geliştirebileceğinizi öğrendikten ve donanım düzeyinde nasıl yapıldığını gördükten sonra, bunun gerçekten böyle bir programlama olmadığını söyleyeceğim. Aksine, bir donanım açıklamasıdır. Aslında, VHDL, Verilog vb. Gibi donanım tanımlama dilleri kullanılır.
ile bu program mantıksal düzeyde tanımlanmıştır uygulamak istediğimiz küçük devre ne yapar. Ve sonra FPGA'ya gider. Bazı platformların FPGA'da bir CPU uygulayabilmek ve ardından belleğe yüklenecek ve söz konusu işlemci tarafından işlenecek programlar oluşturabilmek için C gibi programlama dillerinde programlamaya izin verdiği doğrudur.
Arduino ile entegrasyon
FPGA'lar genellikle ayrı olarak kullanılır, ancak piyasada hayatınızı entegre etmenizi kolaylaştıracak birçok araç ve kit olduğu doğrudur. Arduino platformu ile FPGA. Arduino ile projelerinize FPGA getirecek bir kart örneği, diğerleri olmasına rağmen MKR Vidor 4000'dir.
MKR Görüntüleyici 4000 üç çipli bir tahtadır. Bunlardan biri FPGA, özellikle Intel Cyclone 10'dur. Bluetooth LE veya düşük güç bağlantısı ve ayrıca WiFi uyumluluğu için başka çipler de vardır. Arduino'nuza bağlantı işlevleri sağlamak ve FPGA'da ihtiyacınız olanı uygulayabilmek için iyi bir tamamlayıcı.
Onunla bir özelleştirilebilir donanım, istediğiniz amaç için kendi başınıza yapılandırılmış. Bu sonsuz olasılıklar sunar.
İlk yorumu siz