BİL 264L
TOBB Ekonomi ve
Teknoloji Üniversitesi
Lab Öncesi
Hazırlık
Bilgisayar Mühendisliği Bölümü
VERILOG HDL Kapı Seviyesinde Modelleme
Verilog dili, günümüzde sayısal devre tasarımı için en çok kullanılan iki dilden bir tanesidir.
Verilog bir HDL (Hardware Description Language) dilidir. Bil264L dersi boyunca şu ana kadar hep Xilinx
ISE’nin schematic editörünü kullanarak yaptığımız tasarımları aslında Verilog diliyle çok daha kolay bir
şekilde yapabiliriz. Aslında testbench için yazdığımız kodlar Verilog dilinde yazılmış test kodlarıydı.
Bundan sonra deneylerimizde Verilog dilini kullanarak sayısal sistem tasarımı yapacağız. Verilog dilini
öğrenmek zorundasınız, çünkü bu haftadan itibaren lablarda schematic editor yerine Verilog modülleri
yazıp kullanacağız.
Bu tutorialde Verilog dilini nasıl kullanacağınız hakkında genel bir bilgi verilecektir. Bu hafta
sadece gate-level (kapı düzeyi) tasarımdan bahsedeceğiz. Verilog’da donanım birimleri “module” olarak
ifade edilir. Aşağıda temel bir Verilog modül templete verilmiştir.
X
Y
Z
deneme
Q
R
module <module_name> ();
Yapacağımız tasarımın ismini “module” keyword’ünden sonra yazıyoruz. Module içerisine sistemin giriş
ve çıkış sinyalleri örnekte verildiği gibi (input wire X, output wire R) yazılır. Daha sonra modulün body
kısmında gate-level tasarım için gerekli kodları yazarız. Module sonuna da “endmodule” keyword’ünü
koymak zorundayız.
Şimdi basit bir devrenin Xilinx ISE’de Verilog modulü kullanarak nasıl yapıldığını göstereceğiz.
X
net2
Q
Y
Z
net1
net3
R
Sistemin giriş sinyalleri (X,Y ve Z), çıkış sinyalleri ise (Q ve R) dir. Verilog’da bütün kapıları teker teker
ifade edeceğimiz için her bir kapının giriş ve çıkış tellerine (wire) isim vermeliyiz. Bazı kapılara dikkat
edecek olursak direk herhangi bir giriş ya da çıkış teline doğrudan bağlı olmadığı gözükmektedir. Bu
durumlar için Verilog’da “wire” keyword’u kullanılır. net1, net2 ve net3 telleri bu şekilde tanımlanmalıdır.
Xilinx ISE’de New Project dedikten sonra karşımıza çıkan pencerede Top-level source type: kısmında
daha önce schematic seçiyorken artık HDL seçmemiz gerekmektedir.
Project Settings kısmını Xilinx Uygulama Tutorialindeki gibi ayarlıyoruz (zaten ayarlıysa değiştirmiyoruz).
Sonra gelen pencerelere next deyip projemizi açıyoruz. Project New Source deyip, schematic yerine
Verilog Module seçiyoruz. Sonra gelen iki pencerede bir şey değiştirmeden Next diyoruz.
Karşımıza şöyle bir pencere gelmesi gerekiyor.
Artık kodumuzu yazıp, tıpkı schematicte olduğu gibi diğer işlemleri (Synthesize, Implement Design ...)
aynen yapıyoruz. Verilog’da gate-level tasarım yaparken aşağıdaki gibi bir yol izlenmelidir:
and <gate_name> (<output>, <input1>, <input2>);
// 2 girişli and (ve) kapısı
nor <gate_name> (<output>, <input1>, <input2>, <input3>);
// 3 girişli nor (veya değil) kapısı
Bu mantıkla hareketle deneme modülünün Verilog kodu aşağıdaki gibi olmalıdır.
Mantıksal kapılar paralel işlem yaptıkları için gate-level implementation yaparken kapıların sırasının bir
önemi yoktur!
Download

Verilog_KapıSeviyesi