Neden donanım kullanıyoruz? Daha hızlı (Performans) Paralel Düşük güç tüketimi Maliyet Boyut Her yere bilgisayar?
FPGA Nedir? Field Programmable Gate Array Ne işe yarar? Yapısı? Giriş çıkış birimleri Hesaplama birimleri Kombinezonsal devre tasarımı Ardışıl devre tasarımı
FPGA üzerinde nasıl devre oluşturacağız? Xilinx ISE HDL: Hardware Description Language – Verilog – VHDL Verilog için kitap: FPGA Prototyping by Verilog Examples – Pong P. Chu VHDL için kitap: Circuit Design with VHDL – V.A. Pedroni
X X X X W1(7:0) W2(7:0) W3(7:0) W4(7:0) + x1 x2 x3 x4 (7:0) (14:0) (17:0) y Perceptron Test Devresi Sadece bir test devresi ne kadar anlamlı?
İşaretli Ondalık Sayıları İkili Tabanda Nasıl Temsil Edeceğiz? İşaret biti Tam sayı kısmı Kesirli Sayı 0_1101_010 Pozitif Sayı =+(1*2 0 +1*2 2 +1*2 3 +1*2 -2 )=13,25 1_0010_101 Negatif Sayı 2’ye tümleyenini alalım: 1_0010_101^1111_ =0_1101_010+1=0_1101_ =-(1*2 0 +1*2 2 +1*2 3 +1* *2 -3 )=-13,375
Peki çarpma sonrasında ne oldu? İşaret biti Tam sayı kısmı Kesirli Sayı 0_1101_010*0_1101_010=0_ _ Nasıl Yaptık? Oluşan sayı kaç bit?
Full Adder Yapalım AB Full Adder Cin Cout S Cout= (A.B) + (Cin (A^B)) S= A^B^Cin O zaman exor, and ve or’a ihtiyacımız var
AND module AND( input in1, input in2, output o ); assign o = in1 & in2; endmodule
OR module OR( input in1, input in2, output o ); assign o = in1 | in2; endmodule
EXOR module EXOR( input in1, input in2, output o ); reg res; begin if ((in1 == 1 && in2 == 0) || (in1 ==0 && in2==1) ) begin res <= 1'b1; end else begin res <= 1'b0; end assign o = res; endmodule
Full Adder module FullAdder( input A, input B, input Cin, output S, output Cout ); wire ResExor1; EXOR exor1 (A,B,ResExor1); EXOR exor2 (ResExor1,Cin,S); AND and1 (A,B,ResAnd1); AND and2 (ResExor1,Cin,ResAnd2); OR or1 (ResAnd1,ResAnd2,Cout); endmodule
Yazdıklarımız Doğru mu Peki? Isim Simülatörünü kullanacağız
Ödev? Size verilen çarpma ve toplama bloklarını istenilen işi yapacak biçimde birbirine bağlayın Ağırlıkları oluşturun (reg kullanarak) ve MATLAB ile bulduğunuz değerleri atayın Aktivasyon fonksiyonunu kendiniz oluşturup toplama bloğu ve çıkışa bağlayın
Peki FPGA ile her şey güzel mi? Tabii ki değil!! FPGA’in kaynakları sınırlı Kendi içinde sadece 4 tane fiziksel olarak hazır çarpma bloğu var ve hepsini kullandık. Ya daha fazla boyut isteseydik? Device Utilization Summary (estimated values)[-] Logic UtilizationUsedAvailable Utilizati on Number of Slices % Number of 4 input LUTs % Number of bonded IOBs336650% Number of MULT18X18SIOs 44100%
Peki ya tasarım sonrası? CMOS teknolojisi IC tasarımı