FPGA Nedir – Programlanabilir Mantığa Giriş | Elektronik Dersleri

FPGA – Programlanabilir Mantık Sistemi Nedir ?

Fpga Nedir ? Mikrodenetleyici Nedir ? CLB Nedir ? Alan programlanabilir kapı dizisi nedir ? Donanım dilleri nedir ? Bu ve benzeri sorulara cevap aradığımız FPGA Nedir – Programlanabilir Mantığa Giriş adlı yazımızda yeni nesil programlanabilir lojik sistemler üzerinde duracağız.

Hesaplamaları gerçekleştirmek, dijital sinyalleri yönlendirmek ve programlanabilir mantık ve FPGA’ları kullanarak gömülü sistemleri kontrol etmek için donanım tabanlı bir yaklaşım hakkında bilgi edinelim.

FPGA, alan programlanabilir kapı dizisi anlamına gelir.Özünde, bir FPGA, ortak işlevleri uygulayan ve aynı zamanda çok yüksek esneklik seviyeleri sunan, birbirine bağlı bir dijital altkümeler dizisidir.

Ancak bir FPGA’nın tam bir resmini elde etmek daha fazla veri gerektirmektedir.Bu yazıda, FPGA’ların arkasındaki kavramlar tanıtılmakta ve mantık kapılarının ne olduğu, bir FPGA’nın nasıl programlanacağı ve bir FPGA’yı tasarımdaki bir mikroişlemciden farklı kılan konular hakkında kısaca bilgi verilecektir.

FPGA vs MİKRODENETLEYİCİ

Bir Mikrodenetleyici ne yapmalı  ve  neden FPGA kullanmalı ?

Mikrodenetleyicilerin modern elektronik tasarımda baskın bir bileşen haline geldiğine hepimiz hemfikir olabiliriz.Ucuz ve çok yönlüdürler ve günümüzde çoğu zaman elektronik dünyasına bir kişinin ilk tanıtımı olarak hizmet ederler.

Bildiğimiz bileşenleri kullanmaya devam etmemiz doğaldır ve mikrodenetleyiciler giderek daha güçlü hale geldikçe, tasarım sorunlarımıza alternatif çözümler bulmak için daha az ihtiyaç vardır.

Bununla birlikte, bir mikro denetleyici bir işlemci etrafında inşa edilir ve işlemciler tanınması gereken ve bazı durumlarda üstesinden gelinmesi gereken temel sınırlamalarla gelir.

Peki bir mühendis ne zaman bir mikrodenetleyici üzerinden FPGA’ya ulaşır? Cevap, yazılım ve donanıma geliyor

Bir işlemci, sıralı bir şekilde talimatları uygulayarak görevlerini yerine getirir.Bu, işlemcinin işlemlerinin doğal olarak kısıtlandığı anlamına gelir ki bu durum da istenen işlevsellik, kullanılabilir yönergelere uyarlanmalı ve çoğu durumda, aynı anda birden çok işlem görevini gerçekleştirmek mümkün değildir.

FPGA vs mikrokontrolör karsılastırma

Komut seti çok yönlü olacak şekilde tasarlanmıştır ve günümüzde bu komutlar son derece yüksek frekanslarda çalıştırılabilir.Bununla birlikte, bu özellikler, dijital tasarıma yazılım tabanlı bir yaklaşımın dezavantajlarını ortadan kaldırmayacaktır.

Alternatif olarak donanım tabanlı bir yaklaşımdır.Her yeni tasarım, sistemin gerektirdiği tam işlevselliği sağlayan bir dijital IC etrafında oluşturulabiliyorsa son derece kullanışlı olacaktır ki bu durumda yazılıma gerek kalmayacak, komut set kısıtlamaları, işlem gecikmeleri olmayacaktır.

Sadece giriş pinleri olan tek bir IC Gerekli işlemlere tam olarak karşılık gelen çıkış pinleri ve dijital devre karşımıza çıkacaktır.Bu metodoloji, tanımlamanın ötesinde pratik değildir, çünkü her kart  bir ASIC (uygulamaya özel entegre devre) tasarlamayı içerecektir.

Bununla birlikte, bu metodolojiyi FPGA’ları kullanarak oluşturabiliriz.

Alan Programlanabilir Kapı Dizisi Nedir?

Bir FPGA bir mantık geçidi dizisidir ve bu dizi programlanabilir (aslında, “yapılandırılmış”), yani, aygıtın kullanıcısı tarafından bu aygıtı tasarlayanlara karşı yapılandırılmış manasındadır.Bu önemli özelliklere daha yakından bakalım.

Mantık kapıları (AND, OR, XOR, vb.) Dijital devrelerin temel yapı taşlarıdır.Bu durumda, yüksek derecede yapılandırılabilir olması amaçlanan (yani, “alan programlanabilir”) bir dijital aygıtın, özelleştirilebilir bir şekilde birbirine bağlanabilen çok sayıda kapıdan oluşması şaşırtıcı değildir.

Bununla birlikte, bir FPGA, bireysel Boolean kapılarının geniş bir koleksiyonu değildir.Bu, yapılandırılabilir mantıksal işlevsellik sağlamak için çok uygun bir yol olacaktır çünkü ortak işlemlerin sabit modüller olarak çok daha verimli bir şekilde uygulanabilmesi avantajını kullanmaz.

Aynı prensip, ayrık dijital IC’lerin dünyasında belirgindir.AND kapıları, OR kapıları ve benzerlerini içeren IC’leri satın alabilirsiniz – ancak tek tek kapılardan bir kaydırma registerları oluşturmak istemezsiniz.Bunun yerine, bir kaydırma registerlarına sahip bir IC satın alırsınız.

Bir FPGA, bir dizi kapıdan çok daha fazlasıdır.Çok yüksek düzeyde esneklik sunarken, ortak işlevleri verimli bir şekilde uygulayan, dikkatle tasarlanmış ve birbirine bağlı bir dizi dijital altkümedir.

Dijital alt döngüler, yapılandırılabilir mantık blokları (CLB’ler) olarak adlandırılır ve FPGA’nın programlanabilir mantıksal yeteneklerinin temelini oluştururlar

CLB’lerin birbirleriyle ve harici devre ile etkileşime girmesi gerekmektedir. Bu amaçlar için, FPGA bir programlanabilir ara bağlantı ve giriş / çıkış (I / O) blokları matrisi kullanır. FPGA’nın “programı” CLB’lerin işlevselliğini etkileyen ve bağlantı yollarını oluşturan anahtarları kontrol eden SRAM hücrelerinde saklanır.

Genel fikir, CLB’lerin, arama tabloları, depolama öğeleri (flip-floplar veya yazmaçlar) ve CLB’nin Boole, veri depolama ve aritmetik işlemleri gerçekleştirmesine izin veren çoklayıcılar içermesidir.

Bir G / Ç bloğu, CLB’ler ve karttaki diğer bileşenler arasındaki iletişimi kolaylaştıran çeşitli bileşenlerden oluşur.Bunlar arasında çekme/aşağı çekme dirençleri, tamponlar ve invertörler bulunur.

Alan Programlanabilir Mantık (Veya, Bir FPGA Nasıl Programlanabilir?)

Bir dizi CLB’yi, istediğimiz şeyi tam olarak yapan bir dijital devreye dönüştürmeyi nasıl başarabiliriz? İlk bakışta, oldukça karmaşık bir iş gibi görünüyor.

Gerçekten de, FPGA uygulaması genellikle bir mikrodenetleyicinin programlanmasından daha zor kabul edilir.

Bununla birlikte, FPGA geliştirme, bir mikroişlemci geliştirme işleminin işlemci dili talimatlarını veya dahili kontrol sinyallerini tam olarak bilmesini gerektirmediği gibi, CLB işlevselliği veya iç ara bağlantıların özenli bir şekilde düzenlenmesini gerektirmez.

Aslında, bir FPGA’yı bağımsız bir bileşen olarak sunmak biraz yanıltıcıdır.FPGA’lar, bir donanım tasarımını, ara bağlantıların ve CLB’lerin davranışlarını belirleyen programlama bitlerine dönüştürmenin karmaşık sürecini yürüten geliştirme yazılımı tarafından her zaman desteklenir.

Bu da bizi önemli bir soruyla karşı karşıya bırakıyor.Yine de, FPGA donanımının yapması gereken yazılımları “nasıl” açıklarız?

Donanım Dilleri Açıklaması : 

İnsanların donanımı “tanımlamak” için bize izin veren diller;  donanım tanımlama dilleri (HDL) ve en yaygın iki VHDL ve Verilogtur.HDL kodu ve yüksek seviyeli bir yazılım programlama dilinde yazılmış kod arasındaki belirgin benzerliğe rağmen, ikisi temelde farklıdır.Yazılım kodu bir dizi işlem belirler, HDL kodu ise bileşenleri tanıtmak ve ara bağlantılar oluşturmak için metin kullanan bir şema gibidir.

Örnek :

library  Derstagram  ;

use Derstagram.STD_LOGIC_1164.ALL;

entity circuit_2 is

Port ( a : in STD_LOGIC;

b : in STD_LOGIC;

c : in STD_LOGIC;

d : in STD_LOGIC;

out1 : out STD_LOGIC;

out2 : out STD_LOGIC);

end circuit_2;

architecture Behavioral of circuit_2 is

signal sig1 : std_logic;

begin

sig1 <= (a and b);

out1 <= (sig1 or c);

out2 <= (not d);

end Behavioral ;

AAC içerisinde, HDL teknikleriyle aşina olmanıza yardımcı olabilecek birkaç makale bulabilirsiniz.FPGA’lara başlamakla ilgili makalemiz, Verilog’la ilgileniyorsanız başlamak için iyi bir başlangıç noktasıdır ve bu girişte VHDL’ye ilişkin donanım açıklama dilleri hakkında daha fazla bilgi edinebilirsiniz.

FPGA Nedir – Programlanabilir Mantığa Giriş Sonuç :

Bugünki yazımızda FPGA Nedir -Programlanabilir Mantığa Giriş adlı yazımızı sizlerle paylaştık.Artık programlanabilir-mantık cihazlarının temel özelliklerini ve işlemci tabanlı sistemlere göre potansiyel avantajlarını anladığınızı umuyorum.

Modern FPGA’lar, veri toplamak, ASIC’leri kontrol etmek ve matematiksel işlemleri gerçekleştirmek için mikrodenetleyiciler kullanmaya alışkın olanlar için biraz korkutucu olabilecek yüksek performanslı cihazlardır.

Bununla birlikte, bazı uygulamalarda gelişmiş performansın ve çok yönlülüğün ek tasarım çabasına değer olduğunu görebilirsiniz.

İyi Çalışmalar

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.