Professional Documents
Culture Documents
Lab Ozet PDF
Lab Ozet PDF
OSMAN KUCU
100207038
indekiler
NDEKLER ....................................................................................................................... i
GR ................................................................................................................................ 1
PROJE KAPSAMINDA GEREKLETRLEN UYGULAMALAR ................................................. 2
FPGA NEDR? .................................................................................................................... 4
NEXYS4 ARTIX-7 FPGA .................................................................................................... 6
XILINX ISE DESIGN SUITE ................................................................................................... 9
PLAN AHEAD.................................................................................................................... 12
LABORATUVAR UYGULAMALARI - 1 ................................................................................. 13
LABORATUVAR UYGULAMALARI - 2 ................................................................................. 14
LABORATUVAR UYGULAMALARI - 3 ................................................................................. 15
LABORATUVAR UYGULAMALARI - 4 ................................................................................. 16
LABORATUVAR UYGULAMALARI - 5 ................................................................................. 17
LABORATUVAR UYGULAMALARI - 6 ................................................................................. 18
LABORATUVAR UYGULAMALARI - 7 ................................................................................. 19
LABORATUVAR UYGULAMALARI - 8 ................................................................................. 20
LABORATUVAR UYGULAMALARI - 9 ................................................................................. 21
LABORATUVAR UYGULAMALARI - 10 ............................................................................... 22
LABORATUVAR UYGULAMALARI - 11 ............................................................................... 23
LABORATUVAR UYGULAMALARI - 12 ............................................................................... 24
KAYNAKLAR ..................................................................................................................... 25
Laboratuvar Uygulamalar 7
Bu uygulamada sonlu durum makineleri (FSM) alma mant ve nasl kullanlmas
gerektii zerinde allmtr. Nexys4 Artix-7 FPGA kart zerindeki anahtarlar, ledler,
butonlar ve 7-paral gstergeler kullanlmtr.
Laboratuvar Uygulamalar 8
Bu uygulamada bilgisayar sistemlerinde kullanlan hafza birimlerinin (RAM-ROM) FPGA
kart zerinde nasl kullanlmas gerektii ve kullancnn kendisine ait hafza birimlerini nasl
oluturmas gerektii zerinde allmtr ve Nexys4 Artix-7 FPGA kart zerindeki
anahtarlar, ledler, butonlar, 7-paral gstergeler ve hafza birimleri (RAM-ROM)
kullanlmtr.
Laboratuvar Uygulamalar 9
Bu uygulamada FPGA kartnda bir mikroilemcinin nasl tasarlanmas gerektii ve gerekli
devrelerde kullanlmas zerinde almalar yaplm ve Nexys4 Artix-7 FPGA kart
zerindeki anahtarlar, ledler, butonlar, 7-paral gstergeler ve hafza birimleri (RAM-ROM)
kullanlmtr.
Laboratuvar Uygulamalar 10
Bu uygulamada Laboratuvar Uygulamalar 9 da tasarlanan mikroilemci biraz daha
gelitirilerek devrelerde gereklenmitir ve Nexys4 Artix-7 FPGA kart zerindeki anahtarlar,
ledler, butonlar, 7-paral gstergeler ve hafza birimleri (RAM-ROM) kullanlmtr.
Laboratuvar Uygulamalar 11
Bu uygulamada algoritmik durum makineleri (ASM) alma mant ve nasl kullanlmas
gerektii zerinde allmtr. Nexys4 Artix-7 FPGA kart zerindeki anahtarlar, ledler,
butonlar, 7-paral gstergeler ve hafza birimleri (RAM-ROM) kullanlmtr.
Laboratuvar Uygulamalar 12
Bu uygulamada FPGA kartnda saysal iaretleri incelemenin nasl yaplmas gerektii,
dardan alnan analog bir iaretin dijital bir iarete dntrlp incelenmesi ve tekrar
analog bir iarete dntrlp gzlenmesi amalanmtr. Uygulamada FPGA kartndaki
mikrofon giriinde alnan ve ilenen sesin ses kna balanan hoparlr ile duyulmas
gerenlenmitir. Nexys4 Artix-7 FPGA kart zerindeki mikrofon, ses k ve hafza birimleri
(RAM-ROM) kullanlmtr.
2. FPGA NEDR?
FPGA (Field Programmable Gate Array) programlanabilen bir yongadr (entegre veya
ipdir). Trkede bu entegrelere "Alanda Programlanabilir Kap Dizini" denilmektedir.
FPGA'lerin ierisinde saysal(dijital) devre tasarlamak iin kullanlabilen temel devre
elemanlar bulunur. Flip-flop, AND, OR kaplar vb. Bu devre elemanlar VHDL veya Verilog
gibi donanm tanmlama dilleri (Hardware Description Language - HDL) kullanlarak veya
ematik tasarm yaplarak birbirlerine balanr. Bylece istenilen saysal devre sadece bir
FPGA entegresi kullanarak oluturulabilir.
FPGA'lerin en nemli zelliklerinden birisi tekrar programlanabilir olmalardr. Yani
tasarmnda bir hata tespit ettiiniz zaman FPGA kodunuzu tekrar tasarlayp testini
gerekletirdikten sonra kart zerindeyken FPGA'e ykleyebilirsiniz. Bu esnek tasarm
zelliklerinden dolay, baz entegre reticileri, tasarmlarn nce FPGA ile denerler ve son
aamada FPGA zerinde dorulanm olan bu tasarm ASIC tasarma dntrp
entegrelerini piyasaya sunarlar.
FPGA entegreleri genelde paralel ilem gerektiren yksek performansl zel tasarmlar
iin kullanlmaktadr. Grnt ileme, saysal iaret ileme (Digital Signal Processing - DSP)
ilemleri buna rnek olarak verilebilir. Ama tasarmnz sral bir ilem akna uygun ise
mikroilemci kullanmak daha mantkl olacaktr. Bu noktada unutulmamas gereken udur:
Mikroilemcilerin i mimarisi sabittir ve kod deiiklikleri temelde bu mimari zerinde komut
aknn deiimi anlamna gelir ve FPGA'lere gre test ve dorulama ilemleri daha kolay
gerekletirilebilir. FPGA'lerde ise, tasarmnz, entegrenin iindeki donanm yapsn ifade
eder. Her kod deiiklii mimari ve sinyal zamanlamalar asndan farkl yaplar ile
sonulanabilir. Ayn zamanda FPGA tasarm srasnda bir veya birden fazla tasarm yazlm
kullanmanz gerekebilir (tasarm girii, sentez ve benzeim admlar iin). Bundan dolay FPGA
tasarmlarnda yaplan kod/tasarm deiikliklerini dorulamak daha uzun zaman alabilir ve
uzmanlama gerektirir.
FPGAi, iindeki transistrleri birbirinden bamsz ve serbest olarak retilmi ham bir
entegre olarak dnebiliriz. Bizim belirlediimiz fonksiyona gre FPGA iindeki transistrler
birbirlerine balanr ve bu sayede istediimiz fonksiyonu gerekletirir. Yani teorik olarak
transistr kapasitesi dhilinde aklmza gelen herhangi bir entegrenin yapt ii FPGA ile
yapabiliriz.
rnein gerek zamanl yksek znrlkl bir video grnts zerinde filtreleme
ilemi yapmak istiyoruz. Video aslnda pe pee sralanan resimlerdir ve bu resimlerin her
birine frame denilmektedir. En basit haliyle bunun iin videonun bir resim karesini giri
portlarndan almamz, onu filtrelememiz ve k portlarndan gndermemiz gerekir. Sonra
ikinci resim iin de ayn ilemleri gerek zamanl olarak tekrarlamak durumundayz. Standart
entegreler (rnein bir mikroilemci) kullanrsak bu ilemi (alma, filtreleme, gnderme)
srayla yapp bitirdikten sonra gelen ikinci resmi almaya balarz. Eer bu ilemleri yeterince
hzl yapamazsak sradaki resmi karabiliriz. FPGAde ise bu ilemler paralel olarak devam
eder. rnein ilk resmi alp filtreleme ilemini yaparken ikinci resmi almaya balarz. lk resmi
gnderirken ikinci resmi filtrelemeye ve nc resmi almaya balarz. Bunun yannda,
filtreleme ilemi genel olarak youn arpm gerektirmektedir. Standart bir ilemci ile bu
arpma ilemlerini de srayla yapmak zorundayz. Oysaki FPGA ile bu ilemleri de paralel
olarak yani ok hzl bir ekilde yapabiliriz.
zet olarak, FPGAler bize paralel ilem kabiliyeti sunan ve iyapsn istediimiz
fonksiyon ve uygulamaya gre deitirebildiimiz donanm-programlanabilir entegrelerdir.
FPGA ile mikroilemci arasndaki en byk ve temel fark FPGAin donanmsal olarak sabit
bir yapya sahip olmayp kullanc uygulamasna gre programlanabilir olmasdr. lemciler
ise sabit bir donanm yapsna sahiptir. Yani ierisindeki tm transistr, bellek, evrebirimi
yaplar ve balantlar sabittir. lemcinin yapabilecei ilemler (toplama, arpma, I/O
kontrol, vs) nceden tanmldr ve kullanc yazlmla bu ilemleri kendi amacna uygun olarak
sral bir ekilde ilemciye yaptrabilir.
FPGAde ise donanm yaps sabit deildir ve kullanc tarafndan tanmlanr. FPGA
ierisindeki mantk hcreleri sabit olmakla birlikte bunlarn gerekletirdii fonksiyonlar ve
aralarndaki balantlar kullanc tarafndan belirlenir. Dolaysyla FPGAin yapabilecei
ilemler nceden tanmlanm deildir. Yazlan HDL koduna gre istediiniz ilemleri paralel
olarak yani ayn anda yaptrabilirsiniz. Paralel ilem yapabilme yetenei FPGAyi ilemciden
ayran ve birok alanda stn klan en nemli zelliklerdendir.
1
2
3
4
5
6
7
8
9
10
11
12
G Seim Balants
UART/JTAG USB Portu
Yaplandrlm SD/USB Balants
PMOD Konektr
Mikrofon
G Kayna Test Noktas
Ledler (16)
Anahtarlar (16)
7-Paral Gstergeler (8)
JTAG Portu in D Kablo
Butonlar (5)
Scaklk Sensr
13
14
15
16
17
18
19
20
21
22
23
24
NEXYS4 kart zerinde bulunan baz birimlerin Artix-7 FPGA yongasna balanma
ekilleri ve FPGA yongasna bal olduklar pin numaralar aadaki ekilde belirtilmitir.
ekilde gsterilen Artix-7 FPGA yongasna bal birimleri kullanmak iin yaplmas gereken baz
hususlar vardr. rnein; 7-paral gstergeleri kullanmak iin FPGA yongas zerinde bizim
kullanmmza ak M1,L1,N4,N2 pinleri vardr. AN7 deikeni Artix-7 FPGA yongasnda M1
pinine balanmtr. AN7 deikenine mantk deeri 1 verildii zaman yani M1 pinine 3.3V
gerilim verildii zaman transistrn bacaklar arasnda gerilim fark olumad iin akm
akmaz ve 7 paral gsterge beslenemez. AN7 deikenine mantk deeri 0 verildii zaman
yani M1 pinine gerilim verilmedii zaman transistrn bacaklar arasnda gerilim fark oluur
ve 7 paral gsterge beslenir. Baka bir rnek verecek olursak Artix-7 FPGA yongasnda
kullanma ak 16 tane led baldr. Bu ledler FPGA yongasnn T8,V9,R8, pinlerine
balanmtr. T8 pinine mantk deeri 0 verildii zaman ledin bal olduu telden akm
akmayacak, dolaysyla led yanmayacaktr. Fakat T8 pinine mantk deeri 1 yani o pine 3.3V
gerilim verilirse ledin bal olduu telden akm akacak ve led yanacaktr. Bir baka rnekte
anahtarlarn alma ekline bakalm. FPGA yongasnn R7 pinine anahtar balanmtr.
Anahtar 0 konumunda iken R7 pini toprak ile balantldr. Fakat anahtar 1 konumunda
iken R7 pini 3.3V gerilim deerine sahiptir.
Artix-7 FPGA yongasna bal kullanma ak hafza birimleri de aadaki ekilde
gsterilmitir.
Projenin bu aamasnda ise Verilog programlama dili ile oluturulan almann Artix-7
FPGA yongasna nasl gnderileceinden bahsedeceim.
FPGA yongasna ISE Design Suite programnda oluturulan projeyi gndermek iin
IMPACT aracn kullanyoruz. ncelikli amacmz projemizin ISE Design Suite program
tarafndan doru bir ekilde sentezlenmesidir. Sentezleme ilemi tamamlandktan sonra
aadaki ekilde gsterilen Manage Configuration Project (IMPACT) blmne geilmelidir.
Alan pencerede Boundary Scan
blmne geilip Add Xilinx Device
seilerek projemiz IMPACT aracna
yklenmelidir.
Sonraki admda ise aadaki ekilde
sembol olarak gsterilen FPGA
yongasna sa tklanp Program
seilerek
FPGA
yongasnn
programlanmas beklenmelidir.
5. PLAN AHEAD
Bu blmde Verilog programlama dili ile oluturduumuz almann FPGA yongasnda
gerekleebilmesi iin, FPGAin oluturduumuz almada kullanacamz pinlerinin
belirtilmesinden bahsedeceim.
Verilog programlama dili ile NEXYS4 kart zerindeki bir ledi yakmak iin Artix-7 FPGA
yongasnda o ledin bal olduu pine mantk deeri 1 verilmesi gerektiini daha nce
belirtmitim. Pinlerin oluturduumuz almada hangi deikene karlk geldii
belirtilmelidir. Aksi takdirde projemiz ISE Design Suite program tarafndan zaten
derlenemeyecektir.
Verilog programlama dili ile oluturulan projede deikenlerin hangi pinlere karlk
geldiinin ayarlanmas Plan Ahead program sayesinde yaplmaktadr.
6. LABORATUVAR UYGULAMALARI 1
Laboratuvar Uygulamalar 1 blmnde FPGA yongalarnn pinlerine erimek ve
eriilen pinlerdeki giri ve klar kontrol etmek amalanmtr.
Yaplan uygulamalarda ncelikle anahtarlarn durumlar ledlerde gzlenmitir. Bylelikle
FPGA pinlerine doru bir ekilde eriildii anlalmtr. Dier uygulamalarda ise verilog
programlama dilinde bilgi seici modl oluturulup anahtarlarla belirlenen bilgi iaretleri
yine anahtarlarla seilerek klarda (led) sonular gzlenmitir. Anahtarlarla belirlenen
bilgiler baz uygulamalarda say, baz uygulamalarda ise H-E-L-O harfleri gstergelerde
gzlenmitir. Bilgi seici modl kullanlarak kayan yaz H-E-L-L-O uygulamas yaplmtr.
7. LABORATUVAR UYGULAMALARI 2
Laboratuvar Uygulamalar 2 blmnde kombinasyonel devreler tasarlanarak
NEXYS4 kart zerindeki anahtar, led ve gstergeler kullanlmtr.
Yaplan uygulamalarda ncelikle anahtarla girilen saylarn onaltlk tabanda ve onluk
tabandaki deerleri gstergelerde gzlenmitir. Dier uygulamalarda ise anahtarlar ile girilen
saylarn toplamlar nce ledlerde daha sonra gstergelerde gzlenmitir. Saylar ilk
aamalarda tek basamakl seilirken sonraki aamalarda 2 basamakl istenmitir.
8. LABORATUVAR UYGULAMALARI 3
Laboratuvar Uygulamalar 3 blmnde yaz-boz ve kaydediciler zerinde almalar
yaplmtr.
Yaplan almalarda SR-Latch yaps zerinde simlasyonlar yaplp istenen devreler
gereklenmitir. Bizden istenen SR-Latch ve gereklenen devreler aadaki ekillerde
belirtilmitir.
9. LABORATUVAR UYGULAMALARI 4
Laboratuvar Uygulamalar 4 blmnde saya tasarmlar, sayalarn FPGA yongasnda
kullanmlar ile ilgili uygulamalar yaplmtr.
Yaplan uygulamalarda ncelikle kullanc kontroll sayc modl tasarlanmtr. clock
sinyali kullanc tarafndan butonlarla salanmtr. Sonular gstergelerde gzlenmitir.
Dier uygulamalarda ise sayc kullanc kontrolnden karlp saniyede bir artmas
istenmitir ve sonular gstergelerde gzlenmitir. Laboratuvar Uygulamalar 1 blmnde
bilgi seici modl ile yaplan kayan yaz H-E-L-L-O uygulamas bu blmde tekrar
uygulanmtr. Ancak bu sefer bilgi seici modl yerine saniyede bir artmas istenmitir.
mikroilemcinin
Yaplan ilk almada anahtarlarla girilen veriler ve yine anahtarlarla girilen komutlar
FPGA yongasnda gerekletirilip gstergeler ve ledler zerinde gzlenmitir. mv komutu ile
bir kaydedici iindeki veri dier kaydediciye yazlmtr. mvi komutu ile dardan yada RAM
dan alnan veri kaydediciye yazlmtr. add ve sub komutlar ile iki kaydedicinin barndrd
veriler toplanp yada kartlp kaydedicilerden birine yazlmtr.
Laboratuvar Uygulamalar 9 blmnde basit dzeyde bir mikroilemci FPGA
yongasnda tasarlanp gereklenmitir.
KAYNAKLAR
http://www.xilinx.com/
http://www.xilinx.com/products/silicon-devices/fpga/artix-7/index.htm
http://www.altera.com/education/univ/materials/manual/unv-lab-manual.html
http://www.altera.com/devices/fpga/cyclone2/cy2-index.jsp
http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,1184&Prod=NEXYS4
http://objectmix.com/verilog/189666-help-switch-debouncing.html
http://forums.xilinx.com/