Verilog İle Tek Bit Toplayıcı

Verilog elektronik sistemleri modellemek için kullanılan bir donanım tanımlama dilidir. Verilog Hardware Description Language(VHDL) olarak da adlandırılır. Verilog ile tasarım yaptığımızda projemizi ister FPGA kartlar ile test edebilir, istersek de Simulator üzerinde çalıştırabiliriz. Bunun için bazı programlar geliştirilmiştir, Xilinx’in güncel sürümünü buradan indirebilirsiniz.

Verilogda module kullanımını ve portları örnek programlarla görelim:

İlk programımız kapı seviyesinde tam toplayıcı tasarımı. Bu devremizi tek module kullanarak tasarlıyoruz, aşağıda modüllere ayırarak tasarım da gösterilmiştir.
[cc lang=’verilog’ ]
//modulümüzü tanımlarken kullanılacak olan giriş/çıkış birimleri burada belirtilir
module birbitlikToplayici(S,Cout,A,B,Cin);
//giriş birimlerimiz input portuyla tanımlanır(A sayı1, B sayı2, Cin giriş eldesi.
//Cin toplama işleminde herzaman 0 değerini alır
input A, B, Cin;
//çıkış birimlerimiz output portuyla tanımlarız(S toplamın sonucu, Cout işlem sonucunda oluşan eldemizdir)
output S, Cout;
//wire etiketiyle devremizde giriş/çıkış olmayan birimler oluşturarak işlemlerde oluşacak karmaşıklığı önlüyoruz
wire x, y, z;
//primitivelerde yazılan ilk değer sonuç, sonraki değerler işleme giren elemanlardır.
xor (x, A, B);
and (y, A, B);
xor (S, x, Cin);
and (z, x, Cin);
or (Cout, x, Cin);
//modulümüzü “endmodule” etiketiyle kapatıyoruz
endmodule
[/cc]

Programımızı yazarken yapılacak olan her alt devreyi ayrı ayrı modullere ayırabiliriz. Mesela tam toplayıcı tasarlarken, yarım toplayıcı modulünü kullanabiliriz.

[cc lang=’verilog’ ]
module tamToplayici(S, Cout, Cin, A, B);
input Cin, A, B;
output S, Cout;
wire x, y, z;
yarimToplayici tt1(x, y, A, B);
yarimToplayici tt2(S, z, x, Cin);
or(Cout, y, z);
endmodule
module yarimToplayici(S, Cout, A, B);
input A, B;
output S, Cout; xor(S, A, B);
and(Cout, A, B);
endmodule[/cc]

Bir cevap yazın

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