Professional Documents
Culture Documents
ELEKTRİK-ELEKTRONİK FAKÜLTESİ
ELEKTRONİK VE HABERLEŞME MÜHENDİSLİĞİ BÖLÜMÜ
Tez/Proje Danışmanı :
Prof. Dr. Herman SEDEF
Arş. Gör. Murathan ALPAY
04014044
Faruk BAYHAN
İstanbul, 2009
ÖZET
Dönemin başlangıcından ara raporun teslimine kadar sistemin gerçeklenmesi için gerekli
hazırlıklar yapılmış, edinilmesi gereken bilgiler öğrenilmiş ve tasarım sürecinde gerekli
adımlar atılmıştır. Bitirme tezinin son taslağının teslimine kadar geçecek süre içinde tasarımın
gerçeklenmesi hedeflenmektedir.
ii
1
1. GİRİŞ
1 saniyedeki periyot sayısını ölçen ölçü aletlerine frekans metre denir. 1 işaretin
periyodunu ölçen alete ise periyotmetre denmektedir. Projede tasarım yapılırken bu iki
ölçü aleti arasındaki ilişkiden faydalanılmıştır. FPGA üzerinde periyotmetre
gerçeklenmesi hedeflenmiş 1 saniye süredeki periyot sayısını ölçerek frekansı
hesaplamanın ise periyot bilgilerinin gönderildiği bir kişisel bilgisayar üzerinde
yapılmasına karar verilmiştir.[1]
Raporun devamında projenin amacı, hedefleri, blok diyagramı, kullanılacak donanım kiti
hakkında bilgi ve şemalar, içinde bulunulan tarihe kadar yapılan işlemler hakkında kısaca
bilgi verilecektir.
2
2. AMAÇ
3. HEDEFLER
Projenin diğer hedefi olan FPGA teknolojisi; temel FPGA içerikleri, Toplayıcılar,
Çarpıcılar, Flip/Flop’lar vb. elemanların tasarımının ve kullanımının öğrenilmesi, bu
nedenlerden dolayı önem kazanmaktadır.
4. PROJE ÇIKTILARI
Bitirme projesi ara raporu teslim tarihinden itibaren yürütülen ve yürütülecek olan proje
planı hazırlanmış ve Tablo - 1 de verilmiştir.
4
- VHDL eğitimlerinin tamamına katılındı, verilen tüm ödevler yapıldı, birçok proje
sentezlendi ve simülasyonları incelendi.
Tam Toplayıcı
Modulo 1000000 sayıcı
Sayıları çarpıp, çarpımları toplayan devre
Dizi detektörü
8 bit sayıp “7 segment” te çıkış veren devre
- Frekans, periyot gibi kavramlar araştırıldı. Bu kavramlar hakkında elde edilen bilgileri
şöyle özetleyebiliriz:
Pals: Yarım peryota pals denir. 1 peryotta birisi pozitif, diğeri negatif olmak üzere iki
adet pals vardır.
Frekansın birimi: HERTZ vaya SAYKIL olarak belirtilir. Değerinin askatları yoktur,
fakat üs katları vardır.
Periyotun birimi: Saniye olarak ifade edilir. Bunu şöyle ifade edebiliriz:
1 hertzlik frekans 1 saniyede 1 devir yapıyor demektir, yani 1 saniyede 1 peryot
bulunmaktadır. Bu bizi, şu sonuca ulaştırır: 1 periyot 1 saniyedir.
Peryotun biriminin as katları bulunmaktadır.
6
- Kullanılacak FPGA kiti “Celoxica RC 10” asistan hocalardan temin edildi. Kitin
kullanımı çok kolay olan programlama ara yüzü “FT3” kuruldu. Kullanım kılavuzu ve
şematik dosyaları ayrıntılı bir şekilde incelendi.
- Sistemin 48 MHz lik saat çıkışını kullanan ancak bunun gözle görülebilmesi için
düzenlemeler yapılmış 8 bit bir sayıcı kitin ledlerinden çıkış verilerek çalıştırıldı daha
sonra 8 bit ikili değerin 16 lık karşılığı 2 basamaklı “7 segment” te de gösterildi. Çalışan
devrenin bir fotoğrafı Resim -1 de verilmiştir.
8
Resim – 1
entity fbyaz is
Port ( clk : in STD_LOGIC;
butonas : in STD_LOGIC;
sseg : out STD_LOGIC_VECTOR (15 downto 0);
ledout : out STD_LOGIC_VECTOR (7 downto 0));
end fbyaz;
-- noktalar 7 ve 11
signal charfb : STD_LOGIC_VECTOR (15 downto 0) :="1111000100010111";
signal char00 : STD_LOGIC_VECTOR (15 downto 0) :="1011011101111101";
signal HEXL : STD_LOGIC_VECTOR (3 downto 0) :="0000";
signal HEXH : STD_LOGIC_VECTOR (3 downto 0) :="0000";
signal LEDL : STD_LOGIC_VECTOR (6 downto 0) :="0000000";
signal LEDH : STD_LOGIC_VECTOR (6 downto 0) :="0000000";
signal cntr : STD_LOGIC_VECTOR (23 downto 0) :="000000000000000000000000";
9
process (clk)
begin
if clk='1' and clk'event then
cntr <= cntr + 1;
end if;
end process;
process (cntr(23))
begin
if cntr(23)='1' and cntr(23)'event then
im_ledout <= im_ledout + 1;
end if;
end process;
process (butonas)
begin
if butonas='0' then
sseg <= char00;
else
sseg <= charfb;
end if;
end process;
HEXL <= im_ledout(3) & im_ledout(2) & im_ledout(1) & im_ledout(0);
HEXH <= im_ledout(7) & im_ledout(6) & im_ledout(5) & im_ledout(4);
--HEX-to-seven-segment decoder
-- HEX: in STD_LOGIC_VECTOR (3 downto 0);
-- LED: out STD_LOGIC_VECTOR (6 downto 0);
--
10
-- segment encoinputg
-- 0
-- ---
-- 5 | | 1
-- --- <- 6
-- 4 | | 2
-- ---
-- 3
with HEXL SELect
LEDL<="0000110" when "0001", --1
"1011011" when "0010", --2
"1001111" when "0011", --3
"1100110" when "0100", --4
"1101101" when "0101", --5
"1111101" when "0110", --6
"0000111" when "0111", --7
"1111111" when "1000", --8
"1101111" when "1001", --9
"1110111" when "1010", --A
"1111100" when "1011", --b
"0111001" when "1100", --C
"1011110" when "1101", --d
"1111001" when "1110", --E
"1110001" when "1111", --F
"0111111" when others; --0
end Behavioral;
Daha sonra tasarlanan devredeki giriş ve çıkış pinleri “Plan Ahead” adlı programda
FPGA çipi üzerine, kullandığımız kit olan “RC10” a bağımlı olarak, atamaları yapıldı
Resim – 2 de “Plan Ahead” programından bir görüntü görülmektedir.
12
Resim – 2
8. SONUÇLAR
Bitirme projesi ara raporunda proje hakkında detaylı bilgiler verilmiş, projenin
öneminden bahsedilmiştir. Projeyi gerçekleştirebilmek için yapılan çalışmalar,
ilerlemeler, alınan sonuçlar, devre tasarımları ve oluşturulan donanım anlatılmıştır.
Neden FPGA teknolojisinin seçildiği hakkında bilgiler verilmiştir, çalışma prensibi,
yapılmış çalışmalarda gerçeklenen devreler hakkında bilgiler verilmiştir. Tasarımda
kullanılabilecek bilgisayar programları açıklanmıştır. Tasarlanacak devrenin blok
diyagramı verilmiştir.
Projenin tasarımı için gerekli kaynaklara ulaşılmıştır. Bu aşamada ilk önce FPGA
üzerinde “Sayıcı” , “Yazmaç” gibi elementlerin tasarımı gerçeklenmiş, bunlar kit
üzerinde çalıştırılmıştır. Şimdi bu elementlerin birleşimiyle Frekansmetre / Periyotmetre
tasarımının gerçeklenmesi hedeflenmektedir.
Projenin yeni hedeflerine ulaşabilmek için FPGA ile bir kişisel bilgisayarı seri port
üzerinden haberleştirebilmek gerekmektedir. Bunun için gerekli kaynaklara ulaşılmıştır.
Ayrıca bilgisayar üzerinde de çalışacak bir de ara yüz tasarlanmalıdır.
9. KAYNAKLAR
[1] http://www.teknomerkez.net/makale.asp?k=141
[2] Ece OLCAY GÜNEŞ ve Berna ÖRS YALÇIN, (2008) “VHDL Eğitim sunumları”