FPGA · Verilog

Verilog Dersleri 2 – D-Flip Flop Tasarımı

Merhabalar,

Bugün verilogda D-FF, sayısal tasarımdaki adıyla register tasarlayacağız. Öncelikle kodumuzu inceleyelim.

module d_ff(a,b,clk);

input a;
input clk;

output reg b;

always@(posedge clk) begin
b<=a;
end

endmodule

Bu kodda diğer kodlardan farklı olarak always yapısı bulunmaktadır. Bu yapı parantez içinde bulunan durum gerçekleştiği anda veya parantez içinde bulunan sinyallerde değişiklik olduğu durumlarda içindeki işlemin yapılmasını sağlar.

Bu örneğimizde görülüğü gibi clk işaretinin yükselen kenarında (posedge- positive edge) aşağıdaki işlemlerin yapılmasını sağlar. İşlemimiz a girişinin b çıkışına atanmasıdır. Aslında a D-FF’in girişi, b çıkışı olmaktadır. Always yapılarında dikkat edilmesi gereken, tüm atama yapılan işaretler (örneğin b sinyali) yukarıda tanımlanırken reg ifadesi ile tanımlanmalıdır. Tasarımımızın RTL şematiği aşağıdadır.

d-ff

Böylece ilk ardışıl (sequential) devremizi yapmış bulunuyoruz. Bir sonraki çalışmada always yapısını kullanımıyla ilgili farklı yapılar sunmaya çalışacağım.

İyi çalışmalar

 

FPGA · Verilog

Verilog 1 – AND ve OR Tasarımı

Merhabalar,

Bugün verilogda and ve or kapılarını tasarlayacağız.

AND Kapısı:

module and_kapisi(a,b,c);

input a,b;
output c;

assign c = a & b;

endmodule

Yukarıdaki kodda “and_kapisi” modülünü tanımladık ve giriş-çıkışları belirttik. Buna göre “a” ve “b” giriş (input) işareti, “c” çıkış (output) işareti oldu.

“assign” komutu ile “c” çıkışına “a” ve “b” nin and işlemi sonucu atanır. Verilogda and işlemi “&” ile yapılır. Verilog kodumuzu Xilinx ISE aracıyla sentezlediğimizde RTL Şematiği aşağıdaki gibi olmaktadır.

ve

 

OR Kapısı:

module or_kapisi(a,b,c);

input a,b;
output c;

assign c = a | b;

endmodule

Bu kodda “or_kapisi” modülünü tanımladık ve giriş-çıkışları belirttik. Giriş ve çıkış işaretlerini yukarıda yaptığımız gibi atadık.

“c” çıkışına “a” ve “b” nin or işlemi sonucunu atadık. Verilogda or işlemi “|” (Alt Gr + tire işareti) ile yapılır. Kodumuzu Xilinx ISE aracıyla sentezlediğimizde RTL Şematiği aşağıdaki gibi olmaktadır.

veya

Böylece Verilog HDL dili ile temel seviye çalışması olarak AND ve OR kapılarını gerçekledik.

Bir sonraki çalışmada görüşmek üzere. İyi günler..

Duyuru-Haber · FPGA · Verilog

Verilog

Merhabalar,

Elimden geldiğince Verilog bilgimi örnek çalışmalarla aktarmaya çalışacağım. Aklıma geldikçe bu blogum altında 10 dakika ayırıp birşeyler karalayacağım.

Verilog sayısal devrelerin tasarımında kullanılan donanım tanımlama dilidir. FPGA tasarımlarında, ASIC tasarımlarında kullanılmaktadır. Birçok uluslararası şirket Verilog dilini kullanmaktadır. Syntax olarak, yani yazım biçimi olarak C programlama diline benzemektedir. Fakat C dili bir programlama diliyken Verilog donanım tanımlama dilidir(Hardware Description Language-HDL).

Bundan sonraki yazılarımda temel örneklerle Verilog dilini anlatmaya çalışacağım. Takipte kalın …

FPGA · Vivado

Vivado Tecrübelerim

Vivadoyu ilk kullanmaya başladığımda temel artılarını incelemeye çalışıyordum. Kullandıkça farkettim ki Vivado birçok programa göre kıyaslanamayacak şekilde farklı bir program. Büyük tasarımları kolayca tasarlamaya imkan vermesi, aslında bu programın bambaşka bir hedefi olduğunu gözler önüne seriyor.

 

Artan performans isterleri, büyük tasarımlar, temel tasarım araçlarının yetersizliğine çözüm olacak bir program geliştirilmiş. Gayet de başarılı gidiyor. Hala geliştirmeler, eklemeler devam ediyor. Bazı sürümlerinde açıklar çok olsa da denemeye değer. Tavsiyem 2013.4 veya 2014.2 versiyonlarını indirip denemeniz. Ancak 2014.1’den kaçmanızı öneririm 🙂

FPGA · Vivado

Xilinx Vivado Design Suite

Bu yazımda Xilinx FPGA üretici firmasının Vivado Design Suite program paketinden bahsetmek istiyorum. Resmi sayfasına buradan ulaşabilirsiniz.

Tasarlanan donanımların paketlenmesini kolaylaştıran, blok seviyesinde tasarım yapmayı sağlayan, Matlab üzerinden donanım tasarlatan, C dili ile belli bir kurala göre yazılan kodu donanıma çeviren birçok programı içinde bulunduran bu paket güncellemeler geldikçe hatalarını giderip hızlanarak FPGA tasarımı konusunda büyük bir çözüm olmayı başardı. En son EDK 14.5’i çıkaran Xilinx Vivado’nun gelişmesiyle EDK’nın ve ISE’nin geliştirilmesini durdurdu. Böylece Xilinx, Vivado ile birçok alandaki çözümleri bir pakette toplayarak tasarımcılara büyük bir kolaylık sağladı.

Benim gördüğüm en büyük sorun programın hala hantallıktan kurtulamamış olması. Ama birçok artısı sayesinde bu sorununu göz ardı ettirebiliyor. Şimdilik genel olarak görüşüm bu. Vakit geçtikçe daha ayrıntılı paylaşımlar yapmaya çalışacağım.

Herkese kolay gelsin, iyi çalışmalar 🙂

Duyuru-Haber · FPGA

Haberler

Bloga sık yazmayı planlamamdan bu zamana uzun bi vakit geçmiş. O yüzden bu sefer çok yazmayı planladığımdan bahsetmek yerine zaman buldukça birkaç konuda kısa kısa yazacağım.

Bir diğer konu bu aralar bloga VHDL-FPGA konusunda bilgi edinmek için girenlerin sayısının arttığını farkettim. Eğer bu arkadaşlar FPGA, VHDL, Verilog hakkında temel seviyede bir yazı dizisi isterlerse vaktimi ayırıp öğretici bir yazı dizisine başlayacağım. Lütfen yorum aracılığıyla bu konudaki isteğinizi belirtin.

Diğer

Tavsiye-Küçük programlar

Buraya yazmadığım iki yıl boyunca çok işime yarayan iki programdan bahsetmek istiyorum 🙂

Bu programların ilki f.lux. Bu program konumunuza göre kendini ayarlayarak gündüz saatlerinde ekranın parlak, gece saatlerinde ise ekranın mat olmasını sağlıyor. Böylece ekran başında vakit geçirenlerin göz ağrısına bir miktar da olsa yardımcı oluyor. Sitesine buradan ulaşabilirsiniz.

Diğer program ise fences. Bu program da benim gibi bilgisayarda birçok işlem yapan ve bunlara masaüstünden direk olarak ulaşmak isteyenler için birebir. Tabi masaüstü dağınık olanlar için de ideal bir toparlama aracı 🙂 . Masaüstünde çitler (fences) oluşturarak masaüstündeki simgeleri toplamaya yarıyor. Örneğin bir çit oluşturup ona iş, diğer çite okul, öbürüne fotoğraflar diyerek simgeleri çitler içerisinde toplayabiliyorsunuz. Daha ayrıntılı bilgi için sitesine buradan uğramanızı tavsiye ederim.

Böyle bildiğiniz kullanışlı programlar varsa bana da tavsiye ederseniz sevinirim 🙂 .

Diğer

Uzun bir aradan sonra

Uzun süredir buraya birşeyler yazamıyorum. Bunun nedenini yoğunluğuma bağlasam da aslında asıl sebep başka. Buraya hiçbir beklentim olmadan yazıyorum fakat her blog sahibi gibi yazdıklarımla ilgili yorum bekliyorum, yanlışlarımın düzeltilmesini, yardımcı olduğum insanları görerek mutlu olmak istiyorum.

Bu noktada bir istatistik paylaşmak istiyorum. Paylaştığım bilgilerin üzerinden yaklaşık 2 yıl geçmiş ve bu sürede toplam 2518 kişi siteyi ziyaret etmiş ve 0 yorum var. Blog aracılığıyla bana mail atarak ulaşan kişi sayısı 2.

Tüm bu istatistikler bir yana, bundan sonra burada birçok konuda paylaşımlar yapmayı planlıyorum. Bağlantı kurmak, soru sormak, tavsiye vermek, eleştirmek isteyen lütfen iletişime geçmekten çekinmesin.

İyi akşamlar diliyorum ve paylaşımlara başlıyorum 🙂

FPGA

FPGA Nedir?

Bu yazımda FPGA nın en temel tanıtımını yapmaktan ziyade FPGA konusunda bazı detay bilgiler vermeyi planlıyorum. Temel bilgi için wiki sayfasına bakılabilir.

FPGA bir mikrodenetleyici gibi içerisine gerekli temel modüller eklenmiş programlanarak direk uygulamalarda kullanılan bir sistem değildir. İçerisinde temel bölmeler içeren, bu bölmeleri temel sayısal tasarım işlemleri ile kapı olarak, hafıza elemanı olarak kullandırtan daha çok deneme işleri için kullanılan bir yapıdır. “FPGA Nedir?” yazısını okumaya devam et

Görüntü İşleme

Visual Studio 2010 ile OpenCV

Görüntü işleme konusunda temel mantık oturduysa artık bizi birçok zahmetten kurtaran Opencv ye geçebiliriz. Opencv ile ilgili bilgiye buradan, opencv yi VS  2010 da kullanma konusuna buradan ulaşabilirsiniz.

Opencv yi VS de kullanma işlemini hallettikten sonra( ki bu iş cidden sıkıntılı, bu konuda Türkçe kaynaklar eksik yada hatalı oluyor, tavsiyem verdiğim linkte İngilizceyi anlayarak yapmanız) ilk iş olarak herhangi bir yerdeki görüntüyü nesneye atamak ve görüntülemek.

İşte kodlar: “Visual Studio 2010 ile OpenCV” yazısını okumaya devam et