You are on page 1of 5

6th International Advanced Technologies Symposium (IATS11), 16-18 May 2011, Elaz, Turkey

VHDL Programlama Dili ve Saysal Elektronik


Devrelerin FPGA Tabanl Uygulamas
S. Uzun1, M. R. Canal2, M. C. Kaar3
Erzincan niversitesi, Erzincan, Trkiye, suzun@erzincan.edu.tr
Gazi niversitesi, Ankara, Trkiye, mrcanal@gazi.edu.tr
3
Bayburt niversitesi, Bayburt, Trkiye, mckacar@bayburt.edu.tr
1

olarak tasarlanp FPGA ierisine nasl yerletirileceinden


bahsedilmektedir.

VHDL Programming Language and Aplication


of FPGA Based Logic Electronics Circuit
AbsractIn this paper, digital circuit applications are realized
with FPGA (Field Programmable Gate Array) produced by
Xilinx Company. At the present day, although to design circuit
with either PLD (Programmable Logic Device) or other
integrateds are highly simple and inexpensive, there are some
disadvantages like huge circuit dimensions and not being
developed rapidly. FPGAs accomplish these disadvantages.
FPGAs a lot of advantages. These advantages can be ordered as
follow. FPGAs dissipated less power, programmable simply,
faster, have higly performance and have highly small dimensions.
Key WordsVHDL, Digital Electronics Circuit Design, FPGA

I. GIRI
Gnmzde teknolojinin hzla gelimesine paralel olarak
kullanlan elektronik devreler de daha karmak hale
gelmektedir. Geleneksel olarak kullanlan yntemler ile bu
devreleri tasarlamak olduka zor hale gelmektedir. Bu ihtiyac
karlamak iin yeni teknolojiler gelitirilmektedir. FPGA lar
da bu teknolojilerden biridir. FPGA lar programlanabilir
saysal bloklar ve balantlarn ieren yar iletken cihazlardr.
Programlanabilen bu saysal kaplar sayesinde karmak
tasarmlar kolay bir ekilde gelitirilmektedir.
FPGA lar programlamak iin Xilinx firmas tarafndan
gelitirilen ISEWebPack program kullanlr. Bu program
kullancya ayr programlama seenei sunmaktadr. VHDL
programlama dili FPGA lar programlama da kullanlan
program seeneklerinden sadece bir tanesidir. VHDL bir
donanm tanmlama dilidir. Dier bir programlama seenei
ematik programlamadr. Bu programlama seenei bize
saysal kaplar, flip-filoplar, mux lar, vb. elemanlar
kullanarak devre tasarmlarmz yapmamza olanak salar.
Dier bir programlama seenei ak diyagram eklinde
programlamadr. Bu almada ematik programlama ve kod
ile programlama kullanlacaktr.

II. FPGA(FIELD PROGRAMMING GATE ARRAY- APKD- ALAN


PROGRAMLAMALI KAPI DIZILERI)
FPGAlar dier teknolojilerden ok farkldrlar ve daha yksek
mantk kapasitesi sunarlar. Mantk bloklar dizisinden oluan
bir FPGA programlanabilir giri-k bloklar ile
evrelenmitir ve programlanabilir dahili veri yollar
(interconnect) ile balantldr. Tipik bir FPGA on binlerce
mantksal bloktan ve daha byk sayda flip-flop tan oluur.
ou FPGAlar mantksal bloklar arasnda %100 balant
salayamazlar. (Bunu yapmak ok masrafldr.) Bunun yerine
PCB otomatik ynlendirici ve gelimi yazlmlar kullanrlar.
Bir FPGAnn genel tanm, programlama devresi, dhili
mantk blou dizisi, giri-k bloklar ve bunlarn balant
ekli aada gsterilmitir. Bu grup iinde alt mimari eitleri
vardr. Devre iindeki younluk ve performansn srr mantk
bloklarnn performansndan ve ynlendirme mimarisinin
verimliliinden geer [1].
A. FPGA larn Mimarisi
FPGAlar temelde bloktan oluur:
Saysal Bloklar(CLB)
Giri-k Bloklar(I/O)
Balant Bloklar

Bu almann ilk blmnde FPGA lar hakknda genel


bilgiler verilmekte, ikinci blmde VHDL programlama dili
hakknda genel bilgiler verilmekte, nc blmde bitlik
yukar-aa sayc devresi tasarm hem kod hem de ematik

105

ekil 1.FPGA Yaps

S.Uzun, M.R. Canal, M.C. Kaar


1) Saysal Bloklar

Long
Line

Saysal bloklar(CLB) Boolen fonksiyonlarnn gereklendii


yaplardr; kk taneli(fine-grain) ve kaba taneli(coarsegrain) olarak adlandrlan iki snfa ayrlrlar. Bu
snflandrmada; CLBnin oluumunda kullanlan transistr
says, saysal bloun gerekleyebilecei Boolen fonksiyon
says veya saysal bloun giri-k says byklk lt
olarak kullanlabilir.

CLB

CLB

CLB

CLB

General
Purpose

ekil 4. Balant Bloklar


FPGA mimarileri balant kanallarnn yapsna gre; Simetrik
Dizi Mimarisi (Symmetrical Array), Sra Tabanl
Mimari(Row-Based Array) ve Kap Deniz Mimarisi( Sea of
Gate) olmak zere ana guruba ayrlr.
ekil 2 CLB i Yaps
Sekil 2de iyaps verilen CLB, kk taneli bloklar,
genellikle iki girili bir saysal kapya veya bir ka girili bir
oklaycya elik eden saklama elemanndan oluur. Kaba
taneli saysal bloklarn yaplar ok eitlilik gstermelerine
karn yaygn olarak ekil 3 ile gsterilen doruluk tablosu
(LUT) veya oklayc (Multiplexer) gibi daha byk saklama
elemanlarndan oluur.
Doruluk Tablosu
Mantksal olarak 16x1 lik ROM a Eit
Giriler
0000
0001
0010
0011

klar
0
1
1
0

B. FPGA Kullanarak Gerekletirilen Devrelerin Tasarm


Sreci
Tasarm sreci, gereklenen devre fonksiyonlarnn, szel veya
ematik olarak tanmlanmas ile balar. Szde tasarmda
genellikle yksek seviyeli donanm tasarsm dilleri (Hardware
Description Language, HDL) kullanlr. ematik tanmlamada
ise bir ok firma tarafndan gerekletirilmi ematik editr
programlarndan faydalanlr. Tanmlama ne ekilde olursa
olsun, derleme ilemi sonrasnda, tm tanmlamalar, standart
balant listesi (netlist) biimine evrilir. Yaplan
tanmlamalarn, istenilen fonksiyonlar yerine getirip
getirmedii fonksiyonel benzetim( Functional Simulation)
yaplarak test edilir. Benzetim sonucuna gre, tanmlamada
gerekli deiiklikler yaplr. ekil 5 de tasarm srecinin ak
emas verilmitir [2].

III. VHDL PROGRAMLAMA DILI

ekil 3. CLB yi Oluturan LUT Eleman


2) Balant Bloklar
ekil 4 de verilen balant bloklar saysal bloklarla giri-k
bloklar arasndaki balanty salayan yaplardr. Bu yaplar,
yollandrma kanallar ve programlanabilir anahtarlardan
oluur.

VHDL, Very High Speed Integrated Circuits Hardware


Description Language ngilizce kelimelerin ba harflerinden
oluan Yksek Hzl Entegre Devreleri Donanm Tanmlama
Dili anlamna gelen bir programlama dilidir. Gnmzde
donanm tanmlama dillerinden en ok kullanlandr. Amerika
savunma bakanl ve IEEE (Amerikan Elektrik ve Elektronik
Mhendisleri Enstits) tarafndan 1980 lerde gelitirilmi bir
donanm tanmlama dilidir. 1987 de IEEE standart
oluturulmu (VHDL-87) daha sonra bu standart 1993 de
gelitirilmitir (VHDL-93) [5]. Xilinx firmas tarafndan
gelitirilen ISEWebPack program kullanclara farkl
programlama seenei sunmaktadr. ematik programlama,
kod ile programlama, ak diyagram eklinde programlama.
Ayrca ematik olarak yaptnz tasarmlarnzn VHDL
kodlarn rettirip bundan sonra yolunuza kodlar kullanarak
da devam etmenize olanak salamaktadr. stediiniz zaman
kod istediiniz zaman ematik olarak programlama yapabilme
esnekliini bizlere sunmaktadr. Bu zellik donanm aklama
dilleri arasnda onu ayrcalkl klmaktadr.

106

VHDL Programlama Dili ve Saysal Elektronik Devrelerin FPGA Tabanl Uygulamas


saymasn salamakta, a sayma kontrol ucu ise sayc
devresinin aaya doru yani 111 dan 000 a kadar
saymasn salamaktadr. Sadece bizler sayc devresini hangi
yne saymasn istiyorsak ilgili kontrol ucuna lojik 1
uygulamamz yetecektir. rnein sayc devresinin yukarya
doru saymasn istiyorsak yukar sayma kontrol ucunu lojik 1
yapmamz yeterlidir. Aada 3 bitlik senkron yukar-aa
saycnn VHDL kodlar grlmektedir.

Tasarm htiyac
Tanmlama
ematik/HDL
Derleme

Fonksiyonel
Benzetim

Hayr

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity UP_DOWN is
port(CLK, CNT_UP, CNT_DOWN: in Bit
Q0, Q1, Q2: buffer Bit);
end UP_DOWN;
architecture COUNTER of UP_DOWN is
Component JK_FF
port(J, K, CK: in Bit
Q, QN: buffer Bit);
end Component;
Signal S1, S2, S3, S4, S5, S6, S7, S8: BIT;
begin
JK1: JK_FF port map ('1', '1', CLK, Q0, S1);
A1: AND2 port map (CNT_UP, Q0, S2);
A2: AND2 port map (S1, CNT_DOWN, S3);
O1: OR2 port map(S2, S3, S4);
JK2: JK_FF port map ('1', '1', S4, Q1, S5);

Tasarm
Doru
mu?

Evet
Lojik Sentezleme

Yerletirme
&Yollandrma
Serim sonras
Benzetim

Hayr

Tasarm
Doru
mu?

Evet
Component AND2
port(A, B: in Bit;
C: out Bit);
end Component;

FPGA
Programlanmas

ekil 5. FPGA Kullanlarak tasarm srecinin genel ak


diyagram
Bir tasarmn yapsn tamamen VHDL programlama dilini
kullanarak yapmak mmkndr. Bu tasarm paralarna ayrp
bu paralar tek tek oluturup birbirleri ile balamak
mmkndr. Yaplan tasarmlar hayat geirmeden nce sanal
ortamda benzetimini yapmakta mmkndr.
VHDL programlama dili ile SPLD leri de programlamak
mmkndr.

ncelikle VHDL kodlarnn bulunduu ktphaneler


programa dahil edilerek bu ktphane ierisindeki kodlar
kullanlmaktadr. Bu ktphane arma ilemi;
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

IV. FPGA TABANLI TASARIM


FPGA ile gerekletirilen rnek bir tasarm, Xilinx firmasnn
gelitirdii
ISE
WebPack
program
kullanlarak
gelitirilmektedir. ncelikle tasarm ematik olarak
gerekletirilmekte ve daha sonra ayn tasarm VDL kodlar ile
gerekletirilmektedir.

eklinde
yaplmaktadr.
Daha
sonra
Entity(Varlk)
tanmlamas yaplmaktadr. Bu tanmlama tasarmmzda
bulunan btn giri ve klarmz ve bu giri ve klarn
veri tipleri tanmlamaktadr. Bu tanmlama ilemi aada
grld gibi yaplmaktadr.

A. 3 Bitlik Senkron Yukar-Aa saycnn VHDL kodlar ile


Tasarm
3- bitlik yukar-aa sayc devresi ileri ve geri sayma ilemini
yapabilen senkron saycs tasarlanmaktadr. Bizim
yapacamz tasarmda yukar sayma ve aa sayma diye iki
adet kontrol ucu bulunmaktadr. Yukar sayma kontrol ucu
sayc devresinin yukarya doru yani 000 dan 111 e kadar

107

entity UP_DOWN is
port(CLK, CNT_UP, CNT_DOWN: in
Bit
Q0, Q1, Q2: buffer Bit);
end UP_DOWN;

S.Uzun, M.R. Canal, M.C. Kaar


Bu aamadan sonra Architecture (mimari) tanmlamas
yaplmaktadr. Bu aamada tasarmnzn ne i yapmasn
itiyorsanz bu tanmlama altnda kodlarla belirtilmelidir. Bizler
ncelikle tasarmmzda kullanacamz saysal elemanlarn
her birinin tanmlamasn Component (Eleman) tanmlamas ile
ayr ayr tanmlayacaz. JK filp-filop u aada olduu gibi
tanmlanmaktadr;

dier kodlarn devamna yaptrarak tasarmn tamamlaya


bilir.
Ayn ekilde VHDL kodlarn program iinde derleyerek
ematiini karttrarak dier ematie ekleyebilir. Aada
VHDL kodlarnn ematik haline dntrlm klf
eklindeki hali grlmektedir.

Component JK_FF
port(J, K, CK: in Bit
Q, QN: buffer Bit);
end Component;
Kodlarda grld gibi JK flip-filopun girileri ve klar
bit olarak tanmlanm ayrca girileri belirtmek iin in ,
klar belirtmek iin out kullanlmaktadr. Ayn ekilde
AND(VE) ve OR(VEYA) saysal kaplarda tanmlanmaktadr.
ekil 6. VHDL Kodlarnn ematik haline dnm RTL
emas

Component AND2
port(A, B: in Bit;
C: out Bit);
end Component;

Bu klf eklinin ierisinde senkron 3 Bitlik aa yukar sayc


devresi bulunmaktadr. Bu klf ISE WebPac programnn
ktphanesine kaydedilmekte ve istenilen herhangi bir
tasarmda kullanlabilmektedir. Bu RTL emasnn iyaps
aada grlmektedir. ISE WebPack programn salam
olduu bu esneklik sayesinde tasarmlar ne kadar karmak
olursa olsun ok kolay bir ekilde stesinden geline
bilinmektedir.

Component OR2
port(A, B: in Bit;
C: out Bit);
end Component;
Bu tanmlamalardan sonra begin.end bloklar arasna
kodlar yazlmaktadr. Yazlan kodlar xilinx firmasna ait ISE
WebPack programnda derlenerek JTAG kablo yardmyla
entegre ierisine gmlmektedir.
B. 3 Bitlik Senkron Yukar-Aa saycnn ematik Tasarm
Bu tasarm Xilinx firmasna ait ISE WebPack programnn
Schematic (ematik) programlama seenei kullanlarak
gerekle-tirilmektedir.
Program ierisinde bulunan saysal elemanlar alma ekranna
ktphaneden seilerek yerletirilir ve gerekli balantlar kolay
bir ekilde yaplmaktadr. Bu tasarmn VHDL kodlarna
bakacak olursak aada yaplan tasarm aama aama kodlara
nasl dkldn ve ne kadar kolay olduu grlmektedir.
ematik programlama basit tasarmlarda kullanmak avantajl
olabilir fakat karmak devrelerin tasarmlarnda kullanmak
olduka zordur. Bunun yerine VHDL kodlarn kullanmak
daha avantajldr. ISE WebPack program kullanclarna her
iki programlama seeneini ayn anda kullanma ansn da
vermektedir. rnein kullanc tasarmnn bir ksmn VHDL
kodlarn kullanmakta. Bir ksmnda ise ematik
programlamay kullanmaktadr. te bu durumda ematik
olarak tasarlad
ksmn program
iinde derleyerek
programa VHDL kodlarn retirir ve bu kodlar kopyalayp

V. SONU
Bu almada Xilinx firmas tarafndan retilen FPGA lar, bu
FPGAlarn
programlanmasnda
kullanlan
VHDL
programlama dili ve rnek olarak da 3 bitlik senkron yukaraa sayc devresi anlatlmaktadr. Yaplan tasarm zerinden
VHDL programlama seenekleri anlatlmakta ve kullancya
salad faydalara deinilmektedir.
FPGA, saysal devrelerinin hayata geirilmesi iin olduka
kullanl ve basittir. Kullanclar hem saysal devre tasarm
hem de bu tasarmlarnn VHDL kodlarn e zamanda
yapabilmekte ve uygulamaya geirebilmektedir. Sadece saysal
devrelerde deil her trl tasarmlar uygulamaya geirmekte
de olduka kullanldr. Ayrca gerekletirilen tasarmlarn
gelitirilmesi VHDL programlama dili ve FPGA sayesinde
olduka kolay hale gelmektedir.
Burada gerekletirilen tasarmlar xilinx firmasna ait
XC3S700A entegresinde, Spartan 3A Starter Kit deneme
kartna uygulanmtr.

108

VHDL Programlama Dili ve Saysal Elektronik Devrelerin FPGA Tabanl Uygulamas

ekil 7. 3-Bitlik Senkron Yukar-Aa Saycnn ISE


WebPack programnda Schematic Programlama seenei
kullanlarak oluturulmu devre emas [6]
KAYNAKLAR
[1]

[2]

[3]
[4]

[5]
[6]
[7]
[8]
[9]

UZUN, S., XC95XX CPLD sinin ncelenmesi ve Programlama Kart


Tasarm , Lisans Tezi, Gazi niversitesi Teknik Eitim Fakltesi,
Ankara, 32, 34,2008.
AVULU, M. A., FPGA ile Yapay Sinir A Eitiminin Donanmsal
Gereklenmesi, Lisans Tezi, Kocaeli niversitesi Mhendislik
Fakltesi, Kocaeli, 33-35, 38, 2006
PARNELL, K., METHA, N., Programmable Logic Design Quick Start
Handbook, Xilinx, USA, 1-190, 2003.
WANG, F., ZHANG, W., YU, S., Implementation of Hdtv Pes
Combiner Based on Horizantal Six-Block Sementation, IEEE
Transactions on Broadcasting, 49(2): 217-220, 2003.
www.cs.ucr.edu, 12.03.2009.
www.async.elen.utah.edu, 18.08.2009.
www.xilinx.com, 22.06.2009.
www.altera.com, 21.05.2009.
J.BHASKER , A VHDL Primer Third Edition, Editr: Kathleen M.
Caren, Pearson Education, 07458, New Jersey, A.B.D., 132-136, 1999.

109

You might also like