Sahada programlanabilir kapı dizisi
Alan programlanabilir kapı dizisi (genellikle FPGA olarak kısaltılır), yeniden yapılandırılabilir dijital devreler oluşturmak için kullanılan elektronik bir bileşendir. Bu, bir FPGA'nın bir mantık kapısından farklı olduğu anlamına gelir, çünkü bir mantık kapısının sabit bir işlevi vardır. Buna karşılık bir FPGA'nın üretim sırasında tanımlanmamış bir işlevi vardır. FPGA'nın bir devrede kullanılabilmesi için önce programlanması, yani yeniden yapılandırılması gerekir.
FPGA'lar, programlanabilir mantık cihazları veya PLD'ler kategorisinde yer alan entegre devrelerdir. FPGA'lar PLD türleri arasında en yüksek performanslı, en esnek ve aynı zamanda en pahalı olanlardır. FPGA'ların diğer PLD'lere kıyasla bir dezavantajı, güç kesildiğinde tasarımlarını hatırlamamalarıdır. Bu nedenle bir FPGA, FPGA tasarımını tutan ayrı bir yapılandırma bellek yongasına ihtiyaç duyar. Güç FPGA'ya geri verildiğinde FPGA'nın sabit bir parçası konfigürasyon bellek yongasından konfigürasyonu okur. FPGA yapılandırıldıktan sonra tasarım tarafından kendisine verilen işlevi yerine getirebilecektir.
Bir FPGA, bir mikroişlemci veya mikrodenetleyiciden farklıdır. Temel haliyle bir FPGA yazılım çalıştıramaz. Sadece FPGA'ya bir işlemci mimarisi içeren bir konfigürasyon verildiğinde yazılım çalıştırma yeteneğine sahip olur.
FPGA üreticileri, FPGA'lar için tasarımlar geliştirmek üzere Windows ve bazen de Linux için mühendislik yazılımları sağlamaktadır. Tasarım genellikle Donanım Tanımlama Dili (HDL) adı verilen insan tarafından okunabilir bilgisayar dosyalarında yazılır. En popüler olanları VHDL ve Verilog'dur. Donanım tanımlama dilleri, programlama dilleriyle büyük ölçüde karşılaştırılabilir. Ancak HDL'lerin amacı, programlama dilleri yazılım tasarlarken dijital mantık devreleri tasarlamaktır.
FPGA mühendislik yazılımı, soyut HDL kodunu seçilen FPGA'da bulunan mantık elemanlarına çevirmelidir. Buna mantık sentezi denir. Daha sonra mantık elemanlarını FPGA'da konumlandırmak için bir yerleştirme ve yönlendirme işlemi yapılır. Sonuç, FPGA'ya veya yapılandırma belleğine programlanabilen bir bit dosyasıdır. Bu genellikle FPGA'nın JTAG portuna bağlı bir USB programlayıcı ile yapılır.
FPGA entegre bir devre olduğu için, FPGA üreticisi yaygın olarak kullanılan diğer entegre devre bileşenlerini eklemeye karar verebilir. Bu sabit parçalara çekirdek adı verilir. Bunlar örneğin Ethernet kontrolörleri veya hatta tam bir işlemci mimarisidir. Savunma, tıp, iletişim ve robotik gibi farklı pazar segmentleri için FPGA üreticisi bu ek çekirdeklerin en değerli setini eklemeye çalışır.
İç yapı
FPGA'lar genellikle programlanabilir mantık elemanları ve programlanabilir ara bağlantılar üzerine inşa edilir. Mantık elemanlarının bir yapı taşı programlanabilir bir Arama Tablosudur (LUT). Bir LUT, giriş değerleri verilen herhangi bir değerin çıktısını almak üzere programlanabilir. Bu şekilde, bir LUT aynı sayıda giriş ve çıkışa sahip herhangi bir mantık türü olacak şekilde programlanabilir. Örneğin, 2 girişli, 1 çıkışlı bir LUT, 2 girişli bir AND, OR, NAND, NOR, XOR vb. mantığını taklit edecek şekilde programlanabilir. Bu LUT'un çıkışı bir yazmaç kullanılarak kaydedilebilir ya da diğer LUT'ların girişine bağlanabilir. Programlanabilir bir mux kullanarak, FPGA kayıtlı veya kayıtsız çıkışı seçmek için programlanabilir. Bir LUT, bir register ve bir mux'tan oluşan bu kombinasyon, bir mantık elemanının genel yapısıdır.
Bu mantık elemanlarını birbirine bağlamak için geçiş transistörleri kullanılır. Transistör bir sinyali bağlayacak ya da bağlamayacak şekilde programlanabilir, böylece FPGA'ya mantık elemanlarını çok özel olarak birbirine bağlama yeteneği kazandırır. Örneğin, bir mantık elemanının çıkışı diğerinin girişini besleyecekse, geçiş transistörü bu iki kabloyu birbirine bağlayacak ve belirtilen mantıkla eşleşecek şekilde programlanabilir. Mantık elemanları ve geçiş transistörleri arasında, bir derleyici bir HDL'den bir donanım tanımı alabilir, mantık elemanları için mantık oluşturabilir ve geçiş transistörlerini kullanarak bunları birbirine bağlayabilir.
Sorular ve Yanıtlar
S: Sahada programlanabilir kapı dizisi (FPGA) nedir?
C: Sahada programlanabilir kapı dizisi (FPGA), yeniden yapılandırılabilir dijital devreler oluşturmak için kullanılan elektronik bir bileşendir. Üretim sırasında tanımlanmamış bir işlevi vardır ve bir devrede kullanılmadan önce programlanması veya yeniden yapılandırılması gerekir.
S: Bir FPGA'nın bir mantık kapısından farkı nedir?
C: Bir FPGA bir mantık kapısından farklıdır çünkü bir mantık kapısı sabit bir işleve sahipken bir FPGA üretim sırasında tanımlanmamış bir işleve sahiptir.
S: FPGA ne tür bir entegre devredir?
C: FPGA, programlanabilir mantık cihazları veya PLD'ler kategorisinde yer alan bir entegre devredir.
S: Diğer PLD'lere kıyasla FPGA kullanmanın bazı dezavantajları nelerdir?
C: Diğer PLD'lere kıyasla FPGA kullanmanın bir dezavantajı, güç kesildiğinde tasarımlarını hatırlamamalarıdır, bu nedenle tasarımı tutan ayrı bir yapılandırma bellek yongasına ihtiyaç duyarlar. Ayrıca diğer PLD türlerine göre daha pahalıdırlar.
S: Bir FPGA nasıl programlanır?
C: Bir FPGA'yı programlamak için mühendisler VHDL ve Verilog gibi donanım tanımlama dillerinde yazılmış tasarımlar geliştirmek üzere Windows veya Linux için mühendislik yazılımı kullanırlar. Yazılım daha sonra bu kodu seçilen FGPA'larda bulunan mantık elemanlarına çevirir ve bunları yerleştirme ve yönlendirme işlemleriyle konumlandırır, bu da yapılandırma belleğine veya JTAG bağlantı noktasına bağlı bir USB programlayıcı ile doğrudan FGPA'nın kendisine programlanabilen bir bit dosyası oluşturur.
S: Mikroişlemciler ve mikrodenetleyiciler FGPA'lara benzer mi?
C: Hayır, mikroişlemciler ve mikrodenetleyiciler FGPA'lardan farklıdır çünkü temel haliyle yazılım çalıştıramaz; yalnızca işlemci mimarisini içeren bir yapılandırma verildiğinde bu yeteneğe sahip olur.