Konu
:
Verilog Sentezlenebilir Yapılar
Yalnız Mesajı Göster
Verilog Sentezlenebilir Yapılar
08-20-2012
#
1
Prof. Dr. Sinsi
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
Prof. Dr. Sinsi
Kullanıcının Profilini Göster
Prof. Dr. Sinsi Kullanıcısının Web Sitesi
Prof. Dr. Sinsi tarafından gönderilmiş daha fazla mesaj bul