LAB-5: Registerlar LAB NOTU

LAB -­‐ 5 BİL 321 Mantık Devreleri Tasarımı Adı Soyadı : Numarası : LAB-5: Registerlar
1. Registerların Verilog ile Modellenmesi:
1.1.
Yeni bir proje oluşturunuz. Projenizin ismi lab5 olsun.
1.2.
Yeni bir Verilog modülü oluşturunuz. Modülünüzün ismi my_register olsun. Bu modüle 4-Bitlik
asenkron silmeli (reset) ve senkron yüklemeli (load) register elemanının Verilog HDL kodunu
yazınız.
1.3.
Yeni bir Verilog modülü oluşturunuz ve bu modüle Şekil-1’de verilen saat bölücü kodunu yazınız.
Saat bölücü modülü clk saat işaretini N’e bölerek yeni bir saat işareti oluşturmaktadır. Bu modülün
giriş saat işareti (clk) Spartan 3E kartı üzerindeki saat sinyalinden alınacaktır. Bu saat sinyalinin
frekansı 50 MHz’dir. Modülün çıkış saat işareti (yeni_clk) 1 Hz’lik bir frekansa sahip olacak şekilde N
değerini hesaplayarak modülde yazınız.
1.4.
Yeni bir Verilog modülü oluşturunuz. Bu modülün ismi register_uyg olsun. Bu modülde Şekil-2’de
verilen yapıyı gerçekleyiniz.
1.5.
Spartan 3E kartınızı bilgisayara bağlayınız.
1.6.
register_uyg modülünün clk girişine Spartan 3E kartının saat sinyali uygulanmalı (C9) ve rst girişi ile
kart üzerindeki bir anahtar arasında bağlantı sağlanmalıdır. Modülün 4 bitlik çıkışı kart üzerindeki
LED’ler ile bağlanmalıdır.
1.7.
Modülünüz Spartan 3E kartına yüklenerek çalıştırınız.
module saat_bol(input clk,
output reg yeni_clk);
reg [22:0] N, sayac;
register_uyg
initial begin
N <= 23'd2;
sayac <= 23'd0;
yeni_clk <= 0;
end
always @(posedge clk) begin
if(sayac == N-1) begin
yeni_clk <= ~yeni_clk;
sayac <= 0;
end
else sayac <= sayac + 1;
end
endmodule
Şekil – 1. Saat bölücü modülü
my_register
D[0]
D[1]
D[2]
D[3]
clk
saat_bol
clk
Şekil – 2. Üst modül
Saat bölücü modülü yazıldı
Uygulama modülü yazıldı
proje çalıştı
clk
Register modülü yazıldı
Karta yükleme yapıldı
LED[0]
LED[1]
LED[2]
LED[3]
yeni_clk
Değerlendirme:
Pin atama yapıldı
Q[0]
Q[1]
Q[2]
Q[3]
LAB NOTU