Geri Git   ForumSinsi - 2006 Yılından Beri > Genel Kültür & Serbest Forum > ForumSinsi Ansiklopedisi

Yeni Konu Gönder Yanıtla
 
Konu Araçları
sentezlenebilir, verilog, yapılar

Verilog Sentezlenebilir Yapılar

Eski 08-20-2012   #1
Prof. Dr. Sinsi
Varsayılan

Verilog Sentezlenebilir Yapılar




Sentezlenebilir Yapılar
Daha önce de belirtildiği gibi, donanımı tanımlamak için birkaç temel taslak kullanılabilir

// Çoklayıcı Örnekleri -Aynı işlemi yapmanın 3 farklı yolu
// İlk örnek sürekli atamayı kullanmaktadır
wire out ;
assign out = sel ? a : b;

// İkinci örnek aynı işlemi gerçekleştirmek için izlek(prosedür)
// kullanmaktadır

reg out;
always @(a or b or sel)
begin
case(sel)
1'b0: out = b;
1'b1: out = a;
endcase
end

// İzlek yapısında If/else
// kullanılabilir
reg out;
always @(a or b or sel)
if (sel)
out = a;
else
out = b;


Sonraki ilginç yapı ise saydam mandaldır (transparent latch)Kapı işareti "geç" olarak ayarlandığında girişi çıkışa gönderecektir Eğer kapı işareti "tut" olarak ayarlamışsa, çıkış işareti girişten bağımsız olarak aynı durumda kalacaktır

// Saydam Mandal Örneği

reg out;
always @(gate or din)
if(gate)
out = din; // İlet durumu
// Burada "else" ifadesine gerek yoktur "Gate" "high" durumdayken "out"
// "din" değişkenini takip edecektir
// "Gate" "LOW" olduğu zaman "out" durumunu koruyacaktır


D Flip-Flop en basit yapılardan biridir

reg q;
always @(posedge clk)
q <= d;

Örnekte tıkanmasız atama kullanıldığına dikkat edilmelidir Temel kurallardan biri "always" yapısı içerisinde "posedge" (pozitif kenar) veya "negedge" (negatif kenar) ifadeleri kullanıldığında "<=" işlecini kullanmaktır
D flip-flop'un bir değişik türü, zamanuyumsuz sıfırlama (asynchronous reset) ile gerçekleştirilendir Reset ifadesi geleneksel olarak yapı içerisindeki ilk "if" ifadesi olarak tanımlanmaktadır

reg q;
always @(posedge clk or posedge reset)
if(reset)
q <= 0;
else
q <= d;

Bir sonraki değişik yapıda, hem zaman uyumsuz sıfırlama hem de zaman uyumsuz değer ataması kullanmaktadır Geleneksel olarak "reset" terimi "set" terimi (değer ataması) ile takip edilmektedir

reg q;
always @(posedge clk or posedge reset or posedge set)
if(reset)
q <= 0;
else if(set)
q <= 1;
else
q <= d;

Son değişik D flip-flop tipi ise girişini bir çoklayıcıdan alan tiptir

// Temel yapı geri besleme ile yapılmaktadır
always @(posedge clk)
if(gate)
q <= d;
else
q <= q; // açık geri besleme yolu
always @(posedge clk)
if(gate)
q <= d; // "else" çoklayıcı gerçekleştirildi

Kaynak : Wikipedia

Alıntı Yaparak Cevapla
 
Üye olmanıza kesinlikle gerek yok !

Konuya yorum yazmak için sadece buraya tıklayınız.

Bu sitede 1 günde 10.000 kişiye sesinizi duyurma fırsatınız var.

IP adresleri kayıt altında tutulmaktadır. Aşağılama, hakaret, küfür vb. kötü içerikli mesaj yazan şahıslar IP adreslerinden tespit edilerek haklarında suç duyurusunda bulunulabilir.

« Önceki Konu   |   Sonraki Konu »


forumsinsi.com
Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ForumSinsi.com hakkında yapılacak tüm şikayetlerde ilgili adresimizle iletişime geçilmesi halinde kanunlar ve yönetmelikler çerçevesinde en geç 1 (Bir) Hafta içerisinde gereken işlemler yapılacaktır. İletişime geçmek için buraya tıklayınız.