LABORATUVAR ÇALIŞMASI – 1
Anahtarlar, Ledler ve Bilgi Seçiciler
Bu çalışmanın amacı, FPGA yongalarının giriş çıkışlarını yönetmek ve devreleri bu giriş çıkışlara nasıl
bağlayacağımızı öğrenmektir. Bu çalışmada anahtarları SW15-0 giriş olarak, ledleri LD15-0 ve 7-parçalı
göstergeleri çıkış olarak kullanacağız.
Uygulama I
Nexys4™ serisi kartlar herhangi bir devreye giriş olarak kullanılabilinecek 16 tane anahtar SW15-0
içerirler. Bunun yanında devrenin çıkışlarını görmek için kullanılabilinecek 16 tanede led LD15-0 barındırırlar.
Anahtarların durumlarını ledler ile gösteren bir Verilog modülü, Sekil-1 te gösterilmiştir. 16 tane anahtar ve led
olmasına rağmen Verilog’da bunları tek bir vektör ile gösterebiliriz. Bununla birlikte bütün ledlere ayrı ayrı
atamalarda yapabiliriz.
assign LD[17] = SW[17];
assign LD[16] = SW[16];
:::
assign LD[0] = SW[0];
Nexys4™ serisi kartların üstündeki anahtar ve ledleri kullanmak için değişken tanımlamak yeterli
değildir. Tanımladığımız değişkenleri FPGA’in Nexys4™ FPGA Board Reference Manual de verilen doğru
pinlerine bağlamamız veya bu isimlerle tanımlamamız gerekir. Örneğin; Nexys4™ serisi kartta SW0 değişkenini
FPGA’in U9 ve LD0 değişkenini ise FPGA’de T8 pinine bağlamamız gerekmektedir. ISE Design Suite te
oluşturulan modülün pin atamaları ISE Project Navigator – Tools – PlanAhead – I/O Pin Planning aracı
kullanılarak yapılır. Açılan PlanAhead sayfasında modülde kullanılan giriş ve çıkışların pin atamaları ve FPGA’in
atama yapılan pinlerinin referans gerilimi (LVCMOS33) ayarlanmalıdır.
// Anahtarların durumunun Ledlere atandığı basit bir modül
module part1 (SW, LD);
input [15:0] SW; // Anahtarlar
output [15:0] LD; // Ledler
assign LD = SW;
endmodule
Şekil-1: Ledlerin ve anahtarların kullanıldığı verilog kodu
Şekil-1’deki kodu FPGA kartında uygulamak için aşağıdaki adımları izleyin:
1) Yeni bir ISE Design Suite projesi oluşturun ve projeyi oluştururken kullandığınız FPGA yongasının aile,
cihaz, paket ve hızını doğru seçmeyi unutmayın.
2) Şekil-1’deki kod için verilog modülü oluşturun ve projenize ekleyin.
3) Projenizin pin atamalarını yapın ve projenizi derleyin.
4) Derlenmiş devreyi FPGA yongasına yükleyin ve anahtarların konumunu değiştirerek ledleri kontrol
edin.
Uygulama II
Şekil-2a s seçici ucuna sahip, 2x1 bilgi seçiciyi çarpımlar toplamı olarak göstermektedir. Eğer s = 0 ise
bilgi seçicinin çıkışı (m) x girişine eşittir. Eğer s = 1 ise çıkış y girişine eşit olacaktır. b şeklinde bilgi seçicinin
doğruluk tablosu c şeklinde ise devre sembolü gösterilmiştir.
a)
2x1 bilgi seçici devresi
b) 2x1 bilgi seçici doğruluk tablosu
c)
2x1 bilgi seçici devre sembolü
Şekil-2: 2x1 bilgi seçici
Bir bilgi seçici verilog kodunda aşağıdaki gibi tanımlanabilir.
assign m = (~s & x) | (s & y);
Bu kod parçasını kullanarak 5 atamadan oluşan Şekil-3a’daki gibi bir devrenin verilog modülünü
oluşturun. Devre iki 5-bitlik girişi ve bir 5-bitlik çıkışa sahip ve eğer s = 0 ise M = X, s = 1 ise M = Y şeklinde
çalışmaktadır. Şekil-3b’de oluşturacağınız 5-bitlik bilgi seçicinin devre sembolü gösterilmiştir. Bu modülü
oluştururken aşağıdaki adımları izleyin.
a)
5 bit 2x1 bilgi seçici devresi
Şekil-3: 5 bit 2x1 bilgi seçici
b) Devrenin sembolü
1) ISE Design Suite programında devreniz için yeni bir proje oluşturun.
2) Oluşturduğunuz 5-bitlik bilgi seçicinin verilog kodunu projeye ekleyin. Burada X için SW4-0 , Y için SW9-5
ve s içinde SW15 anahtarlarını kullanın. Aynı zamanda X ve Y girişlerini LD9-0 ve M çıkışını LD14-10 a
bağlayın.
3) Projenizin pin atamalarını gerçekleştirin ve derleyin.
4) Derlenmiş projeyi FPGA kartına yükleyin ve devrenin işleyişini kontrol edin.
Uygulama III
Uygulama II’de 2x1 bilgi seçici uygulaması gösterilmişti. Ancak bilgi seçiciler ikiden fazla sayıda girişe
sahip olabilmektedir. Şekil-4’te 2x1 bilgi seçiciler yardımıyla nasıl 4x1 bilgi seçici oluşturabileceğiniz
gösterilmiştir. Devrede 2-bitlik seçici uç kullanmaktadır(s1s0). Daha önce 2x1 bilgi seçicide 5-bitlik değişkenler
kullanmıştık, Şekil-5’de 4x1 bilgi seçicide 3-bitlik değişkenlerin kullanıldığı bir örnek gösterilmiştir. Uygulama
II’de yaptığımız gibi bu devreyi de Şekil-4a’daki devrenin kombinasyonu şeklinde oluşturmanız gerekmektedir.
a)
4x1 bilgi seçici devresi
b) 4x1 bilgi seçici doğruluk tablosu
Şekil-4: 4x1 bilgi seçici
c)
4x1 bilgi seçici sembolü
Şekil-5: 3-bit 4x1 bilgi seçici
Bölüm için aşağıdaki adımları izleyin:
1) Devreniz için bir ISE Design Suite projesi oluşturun.
2) Verilogda 3-bitlik değişkenlerin kullanıldığı bir 4x1 bilgi seçici modülü oluşturun ve seçme ucu SW15-14,
diğer girişleri ise SW11-0 uçlarına bağlayın. Anahtarların ve M çıkışının durumlarını görmek için ledleri
kullanın.
3) Projenizin pin atamalarını yapıp derleyin.
4) Derlediğiniz dosyayı FPGA kartına yükleyip devrenizin doğru çalışıp çalışmadığını test edin.
Uygulama IV
Şekil-6’da 3-bit girişli (c2c1c0) bir kod çözücü gösterilmiştir. Kod çözücü 7-parçalı göstergeyi sürmek
üzere 7 çıkışa sahiptir. Tablo 1’de girişin kombinasyonlarına göre göstergede gösterilmesi gereken harfler
verilmiştir.(100 - 111 arasındaki girişler boş olarak ayarlanmalıdır)
Şekil-6: Kod Çözücü
Tablo – 1
a)
Nexys4 kartında bulunan çevreseller ve Artix-7
FPGA’si ile bağlantısı
b) 7 parçalı gösterge
Şekil-7: Artix-7 FPGA
7 parçalı göstergeleri kullanmak için Artix-7 FPGA bağlı çevresel birimlerin bağlanma şeklini bilmeniz
gerekir. Şekil-7a’da Artix-7 FPGA bağlı çevresel birimler gösterilmiştir. Kullanılan 7 parçalı göstergeler ortak
anotludur ve Vcc hatları AN7-0 olarak belirlenmiştir. Ancak dikkat edilmesi gereken unsurlar vardır.
Örneğin; AN7 değişkeni Artix-7 FPGA’de M1 pinine bağlanmıştır. AN7 değişkenine mantık değeri ‘1’
verildiği zaman yani M1 pinine 3.3V gerilim verildiği zaman transistörün bacakları arasında gerilim farkı
oluşmadığı için akım akmaz ve 7 parçalı gösterge beslenemez. AN7 değişkenine mantık değeri ‘0’ verildiği
zaman yani M1 pinine gerilim verilmediği zaman transistörün bacakları arasında gerilim farkı oluşur ve 7 parçalı
göstergeler beslenir.
Diğer bir unsur ise göstergelerin parçalarının yanması için, o parçaların bağlı olduğu pinlere verilmesi
gereken gerilim değeridir. Şekil-7b’de 7 parçalı göstergenin parçalarının bağlanma şekli gösterilmiştir. Örneğin;
CA değişkeni Artix-7 FPGA’de L3 pinine bağlanmıştır ve 7 parçalı göstergenin üstteki parçasını temsil eder. CA
değişkenine mantık değeri ‘1’ verildiği zaman yani L3 pinine 3.3V gerilim verildiği zaman 7 parçalı göstergenin
Vcc düğümü ile L3 pini arasında gerilim farkı oluşmadığı için akım akmaz ve 7 parçalı göstergenin üstteki parçası
yanmaz. CA değişkenine mantık değeri ‘0’ verildiği zaman yani L3 pinine gerilim verilmediği zaman gerilim farkı
oluşur, 7 parçalı göstergenin üstteki parçasından akım akar ve o parça yanmış olur.
Bölüm için aşağıdaki adımları izleyin:
1) Devreniz için bir ISE Design Suite projesi oluşturun.
2) 7 parçalı göstergeyi yazacağız bir verilog modülü oluşturunuz. Girişleri SW2-0 bağlayın ve çıkışı AN0
göstergesinde gözleyiniz.
3) Projenizin pin atamalarını yapıp derleyin.
4) Derlediğiniz dosyayı FPGA kartına yükleyip devrenizin doğru çalışıp çalışmadığını test edin.
Uygulama V
Uygulama III ve Uygulama IV ‘de yapmış olduğunuz modülleri Şekil-8’deki devreyi oluşturacak şekilde
birleştirerek yeni bir devre oluşturmalısınız. Daha sonra kodunuzu Tablo-2’deki gibi “HELLO” kelimesini
gösterecek ve girişin durumuna göre kaydırabilecek şekilde düzenlemelisiniz.
Şekil-8: Dört karakterden birini seçip gösteren devre
Tablo-2: Beş göstergede kayan
"HELLO" yazısı.
Bölüm için aşağıdaki adımları izleyin:
1) Devreniz için bir ISE Design Suite projesi oluşturun.
2) Projeye verilog kodunuzu ekleyin. Girişleri SW ‘lere bağlayın ve sonuçları AN4-0 göstergelerinde
gözlemleyiniz.
3) Projenizin pin atamalarını yapıp derleyin.
4) Derlediğiniz dosyayı FPGA kartına yükleyip devrenizin doğru çalışıp çalışmadığını test edin.
Uygulama VI
Uygulama V’teki kodu tüm 7 parçalı göstergeleri kapsayacak şekilde genişletin. Tablo-3’teki gibi
göstergeleri sürecek modülü oluşturun.
Tablo-3: Sekiz gösterge kayan "HELLO" yazısı.
Bölüm için aşağıdaki adımları izleyin:
1) Devreniz için bir ISE Design Suite projesi oluşturun.
2) Projeye verilog kodunuzu ekleyin. Girişleri SW ‘lere bağlayın ve sonuçları AN7-0 göstergelerinde
gözlemleyiniz.
3) Projenizin pin atamalarını yapıp derleyin.
4) Derlediğiniz dosyayı FPGA kartına yükleyip devrenizin doğru çalışıp çalışmadığını test edin.
Download

lab-1 taslak