{"id":83,"date":"2013-10-15T13:26:22","date_gmt":"2013-10-15T10:26:22","guid":{"rendered":"http:\/\/www.scozturk.com\/?p=83"},"modified":"2025-08-27T10:17:04","modified_gmt":"2025-08-27T10:17:04","slug":"s3e-starter-kit-ile-dugme-verilerinin-alimi-ve-ledlerin-kullanimi","status":"publish","type":"post","link":"http:\/\/18.193.70.38\/?p=83&lang=tr","title":{"rendered":"S3E Starter Kit ile d\u00fc\u011fme verilerinin al\u0131m\u0131 ve LEDlerin kullan\u0131m\u0131"},"content":{"rendered":"<p align=\"left\"><em><strong>A- Giri\u015f:<\/strong><\/em><\/p>\n<p align=\"justify\">Bu uygulamada<em> S3E SK<\/em> n\u0131n \u00fczerinde bulunan LED leri ve d\u00fc\u011fmeleri kullanaca\u011f\u0131z. LED ler bir say\u0131y\u0131 g\u00f6stermeye yarayacak ve d\u00fc\u011fmeler de bu say\u0131 \u00fczerinde oynama yapmaya yarayacak.<\/p>\n<p align=\"justify\">Kullanaca\u011f\u0131m\u0131z LED ler S3E SK kullan\u0131m k\u0131lavuzunda \u201cDiscrete LEDs\u201d olarak ge\u00e7en LEDlerdir. Bu LED leri S3E SK\u2019n\u0131n sa\u011f alt k\u00f6\u015fesinde bulabilirsiniz.<\/p>\n<p><a title=\"s1_1_ledler.JPG\" href=\"http:\/\/web.archive.org\/web\/20101029183154\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s1_1_ledler.JPG\"><img decoding=\"async\" alt=\"s1_1_ledler.JPG\" src=\"http:\/\/web.archive.org\/web\/20101029183154im_\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s1_1_ledler.kucukresim.JPG\" \/><\/a><\/p>\n<p align=\"justify\">Kullan\u0131m klavuzundan al\u0131nan yukar\u0131daki resimde LEDler g\u00f6sterilmi\u015ftir. Ayr\u0131ca i\u011fne bilgileri de verilmi\u015ftir (F9 &#8211; D9 &#8211; D11 &#8211; C11 &#8211; F11 &#8211; E11 &#8211; E12 &#8211; F12).<\/p>\n<p align=\"justify\">Kullanaca\u011f\u0131m\u0131z d\u00fc\u011fmeler ise kullan\u0131m k\u0131lavuzunda \u201cPush Button Switches\u201d olarak ge\u00e7en d\u00fc\u011fmelerdir.<\/p>\n<p><a title=\"s1_1_butonlar.JPG\" href=\"http:\/\/web.archive.org\/web\/20101029183154\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s1_1_butonlar.JPG\"><img decoding=\"async\" alt=\"s1_1_butonlar.JPG\" src=\"http:\/\/web.archive.org\/web\/20101029183154im_\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s1_1_butonlar.kucukresim.JPG\" \/><\/a><\/p>\n<p align=\"justify\">Ayn\u0131 \u015fekilde kullan\u0131m k\u0131lavuzundan al\u0131nan yukar\u0131daki resimde d\u00fc\u011fmeleri ve ilgili i\u011fne bilgilerini g\u00f6rebiliyoruz. Biz bu uygulamada yukar\u0131daki <em>BTN_NORTH, BTN_EAST, BTN_SOUTH<\/em> ve<em> BTN_WEST <\/em>d\u00fc\u011fmelerinikullanaca\u011f\u0131z. <em>ROT_A, ROT_B<\/em> ve <em>ROT_CENTER<\/em>\u2018\u0131 bir sonraki uygulamam\u0131zda kullanaca\u011f\u0131z.<\/p>\n<p align=\"justify\">\n<p>Ayr\u0131ca LEDler \u00fczerinde de\u011fi\u015fiklik yaparken d\u00fczg\u00fcn bir \u015fey g\u00f6rebilmek i\u00e7in LEDleri saniyede bir kez yenileyece\u011fiz. Aksi takdirde S3E SK\u2019n\u0131n saat darbesine g\u00f6re \u00e7al\u0131\u015f\u0131rsak d\u00fczg\u00fcn sonu\u00e7lar elde etsek bile g\u00f6remeyece\u011fiz. Bunun i\u00e7in S3E SK saat darbesini kullanarak 52000000 da bir ledlerin durumlar\u0131n\u0131 de\u011fi\u015ftirece\u011fiz. S3E SK nin saat darbesini 50Mhz oldu\u011fu i\u00e7in 52000000 say\u0131s\u0131n\u0131 kullan\u0131yoruz. Asl\u0131nda bu say\u0131 yakla\u015f\u0131k bir say\u0131d\u0131r. Tam olarak 1 saniyede bir tetiklenmeyecektir. Kullanaca\u011f\u0131m\u0131z aat darbesi kullan\u0131m k\u0131lavuzunda <em>CLK_50MHZ<\/em> olarak tan\u0131mlanan saat darbesi i\u011fnesidir. A\u015fa\u011f\u0131daki resimde saat darbesini \u00fcretmekte kullan\u0131lan 50Mhz lik kristali g\u00f6rebilirsiniz (IC17 etiketli devre eleman\u0131).<\/p>\n<p><a title=\"s1_1_clk.JPG\" href=\"http:\/\/web.archive.org\/web\/20101029183154\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s1_1_clk.JPG\"><img decoding=\"async\" alt=\"s1_1_clk.JPG\" src=\"http:\/\/web.archive.org\/web\/20101029183154im_\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s1_1_clk.kucukresim.JPG\" \/><\/a><\/p>\n<p align=\"left\"><em><strong>B- Uygulama:<\/strong><\/em><\/p>\n<p align=\"justify\">Yeni bir proje olu\u015ftural\u0131m ve gerekli ayarlar\u0131 yapal\u0131m (seviye 0 daki bilgileri kullanarak). Yeni bir Verilog dosyas\u0131 olu\u015ftural\u0131m ve projeye ekleyelim. Ben \u201cana.v\u201d ad\u0131nda bir dosya olu\u015fturdum. Siz farkl\u0131 bir\u015fey yapabilirsiniz. Sayfan\u0131n alt\u0131ndaki .rar\u2019in i\u00e7inde ana.v olarak benim dosyam\u0131 bulabilirsiniz.<\/p>\n<p align=\"justify\">\u0130lk olarak kullanaca\u011f\u0131m\u0131z girdi-\u00e7\u0131kt\u0131 kap\u0131lar\u0131m\u0131z\u0131 ve yazma\u00e7lar\u0131m\u0131z\u0131 tan\u0131mlayal\u0131m ve mod\u00fcl i\u011fne listesine ekleyelim.<\/p>\n<p><em>S3E SK <\/em>saat darbesini <em>CLK<\/em> i\u011fnesinden alaca\u011f\u0131z. Kullanaca\u011f\u0131m\u0131z d\u00f6rt d\u00fc\u011fmeyi<br \/>\n<em>DUGME1, DUGME2, DUGME3<\/em> ve <em>DUGME4<\/em> i\u011fnelerinden okuyaca\u011f\u0131z.<\/p>\n<p>Kullanaca\u011f\u0131m\u0131z LEDleri ise yedi bitlik <em>LED <\/em>veriyolundan y\u00f6netece\u011fiz. T\u00fcm bunlar\u0131 yapacak olursak a\u015fa\u011f\u0131daki kodu elde ederiz:<\/p>\n<div>\n<ol start=\"1\">\n<li>`timescale\u00a01ns\u00a0\/\u00a01ps<\/li>\n<li><\/li>\n<li>module\u00a0ana(CLK,\u00a0DUGME1,DUGME2,DUGME3,DUGME4,LED);\u00a0\/\/\u00a0mod\u00fcl\u00a0ba\u015f\u0131<\/li>\n<li>\/\/\u00a0Girdi\u00a0kap\u0131lar\u0131<\/li>\n<li>input\u00a0CLK;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\u00a0Saat\u00a0darbesi<\/li>\n<li>input\u00a0DUGME1;\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\u00a0Do\u011fu\u00a0d\u00fc\u011fmesi<\/li>\n<li>input\u00a0DUGME2;\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\u00a0Bat\u0131\u00a0d\u00fc\u011fmesi<\/li>\n<li>input\u00a0DUGME3;\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\u00a0Kuzey\u00a0d\u00fc\u011fmesi<\/li>\n<li>input\u00a0DUGME4;\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\u00a0G\u00fcney\u00a0d\u00fc\u011fmesi<\/li>\n<li><\/li>\n<li>\/\/\u00a0\u00c7\u0131kt\u0131\u00a0kap\u0131lar\u0131<\/li>\n<li>output\u00a0[7:0]\u00a0LED;\u00a0\/\/\u00a0S3E\u00a0SK\u00a0ledleri<\/li>\n<li><\/li>\n<li>\/\/\u00a0Yazma\u00e7lar<\/li>\n<li>reg\u00a0[7:0]\u00a0ledler;<\/li>\n<li>reg\u00a0[25:0]\u00a0saat_sayac;<\/li>\n<li><\/li>\n<li>\/\/<\/li>\n<li>\/\/\u00a0Kodumuzun\u00a0devam\u0131n\u0131\u00a0buraya\u00a0yazaca\u011f\u0131z<\/li>\n<li>\/\/<\/li>\n<li><\/li>\n<li>endmodule\u00a0\/\/\u00a0mod\u00fcl\u00fc\u00a0sonland\u0131r<\/li>\n<\/ol>\n<\/div>\n<p align=\"justify\">Kullanaca\u011f\u0131m\u0131z saat sayac\u0131na ilk de\u011feri verelim. Bunu yapmak i\u00e7in <em>initial<\/em> komutunu kullanabiliriz.<\/p>\n<p align=\"justify\">\n<div>\n<ol start=\"1\">\n<li>initial\u00a0begin<\/li>\n<li>saat_sayac\u00a0&lt;=\u00a026&#8217;b00000000000000000000000000;<\/li>\n<li>end<\/li>\n<\/ol>\n<\/div>\n<p align=\"left\">Elli iki milyonda bir kez d\u00fc\u011fmelerin durumunu kontrol edip ona g\u00f6re i\u015flem yapan kodumuz a\u015fa\u011f\u0131dad\u0131r.<\/p>\n<div>\n<ol start=\"1\">\n<li>always\u00a0@\u00a0(posedge\u00a0CLK)\u00a0begin<\/li>\n<li>if(saat_sayac\u00a0==\u00a026&#8217;b11000110010111010100000000)\u00a0begin<\/li>\n<li>if(DUGME1)\u00a0begin<\/li>\n<li>ledler\u00a0&lt;=\u00a0ledler\u00a0+\u00a08&#8217;b00000001;\/\/\u00a0ledler\u00a0yazmac\u0131n\u0131\u00a0bir\u00a0artt\u0131r<\/li>\n<li>end<\/li>\n<li>else\u00a0if\u00a0(DUGME2)\u00a0begin<\/li>\n<li>ledler\u00a0&lt;=\u00a0ledler\u00a0&#8211;\u00a08&#8217;b00000001;\/\/\u00a0ledler\u00a0yazmac\u0131n\u0131\u00a0bir\u00a0azalt<\/li>\n<li>end<\/li>\n<li>else\u00a0if\u00a0(DUGME3)\u00a0begin<\/li>\n<li>ledler\u00a0&lt;=\u00a0~ledler;\/\/\u00a0ledler\u00a0yazmac\u0131n\u0131\u00a0tersle<\/li>\n<li>end<\/li>\n<li>else\u00a0if\u00a0(DUGME4)\u00a0begin<\/li>\n<li>ledler\u00a0&lt;=\u00a08&#8217;b00000000;\/\/\u00a0ledler\u00a0yazmac\u0131n\u0131\u00a0s\u0131f\u0131rla<\/li>\n<li>end<\/li>\n<li>else\u00a0begin<\/li>\n<li>ledler\u00a0&lt;=\u00a0ledler;\/\/\u00a0ledler\u00a0de\u011ferlerini\u00a0korusun<\/li>\n<li>end<\/li>\n<li>saat_sayac\u00a0&lt;=\u00a026&#8217;b00000000000000000000000000;\/\/\u00a0saat\u00a0sayac\u0131n\u0131\u00a0s\u0131f\u0131rla<\/li>\n<li>end<\/li>\n<li>else\u00a0begin<\/li>\n<li>saat_sayac\u00a0&lt;=\u00a0saat_sayac\u00a0+\u00a01;\/\/\u00a0saat\u00a0sayac\u0131n\u0131n\u00a0de\u011ferini\u00a0artt\u0131r<\/li>\n<li>end<\/li>\n<li>end<\/li>\n<\/ol>\n<\/div>\n<p align=\"justify\">Yukar\u0131daki kod saat darbesinin artan kenar\u0131nda tetiklenmekte ve ger\u00e7eklenmektedir. <em>saat_sayac<\/em> yazmac\u0131n\u0131n de\u011ferinin 52000000\u2032a e\u015fit olup olmad\u0131\u011f\u0131 kontrol edilmektedir. E\u011fer e\u015fit ise o zaman bu saya\u00e7 s\u0131f\u0131rlanmakta ve d\u00fc\u011fme durumlar\u0131 kontrol edilmektedir. Aksi halde ise <em>saat_sayac<\/em> yazmac\u0131n\u0131n de\u011feri artt\u0131r\u0131lmaktad\u0131r.<\/p>\n<p align=\"justify\">Kodda g\u00f6r\u00fcld\u00fc\u011f\u00fc gibi <em>DUGME1, DUGME2, DUGME3 ve DUGME4<\/em>\u2018\u00fcn de\u011ferleri ayr\u0131 ayr\u0131 kontrol edilmektedir ve uygun i\u015flemler yap\u0131lmaktad\u0131r. <em>DUGME1<\/em>\u2018e bas\u0131ld\u0131\u011f\u0131 zaman <em>ledler<\/em> yazmac\u0131n\u0131n de\u011feri bir artarken, <em>DUGME2<\/em>\u2018ye bas\u0131ld\u0131\u011f\u0131nda bir azalmaktad\u0131r. Ayn\u0131 \u015fekilde <em>DUGME3<\/em>\u2018e bas\u0131ld\u0131\u011f\u0131nda <em>ledler <\/em>yazmac\u0131 terslenmektedir.<\/p>\n<p><em>DUGME4\u2032<\/em>e bas\u0131ld\u0131\u011f\u0131nda ise<em> ledler <\/em>yazmac\u0131 s\u0131f\u0131rlanmaktad\u0131r. Di\u011fer durumlarda ise <em>ledler<\/em> yazmac\u0131n\u0131n de\u011ferini korunmaktad\u0131r.<\/p>\n<p>S\u0131rada yapmam\u0131z gereken i\u015flem<em> ledler <\/em>yazmac\u0131n\u0131 <em>LED<\/em> veriyoluna ba\u011flamakt\u0131r. Bunun i\u00e7in <em>assign<\/em> komutunu kullanabiliriz.<\/p>\n<div>\n<ol start=\"1\">\n<li>assign\u00a0LED\u00a0=\u00a0ledler;\u00a0\/\/\u00a0ledler\u00a0yazmac\u0131n\u0131\u00a0LED\u00a0i\u011fnelerine\u00a0ba\u011fla<\/li>\n<\/ol>\n<\/div>\n<p align=\"justify\">Kodumuzu sentezleyip ger\u00e7ekle\u015ftirebiliriz. Kodu S3E SK\u2019ya y\u00fckleyince elde edece\u011finiz sonucu a\u015fa\u011f\u0131daki vidyoda g\u00f6rebilirsiniz.<\/p>\n<p align=\"justify\"><strong><em>C<\/em><\/strong><em><strong>&#8211; UCF dosyas\u0131n\u0131n olu\u015fturulmas\u0131 (Xilinx ISE): <\/strong><\/em><\/p>\n<p align=\"justify\">Burada sadece bu uygulamaya \u00f6zel olarak (sonraki uygulamalarda art\u0131k bu konuya de\u011finmeyece\u011fiz) UCF dosyas\u0131n\u0131n nas\u0131l olu\u015fturulaca\u011f\u0131n\u0131 g\u00f6rece\u011fiz. \u00d6ncelikle girdi-\u00e7\u0131kt\u0131 i\u011fnelerimizi ve veriyollar\u0131m\u0131z\u0131 listeleyelim ve yanlar\u0131na bu i\u011fnelerin ne i\u00e7in kulland\u0131\u011f\u0131m\u0131z\u0131 yazal\u0131m:<\/p>\n<p align=\"justify\">CLK : Saat darbesi<br \/>\nDUGME1: D\u00fc\u011fme<br \/>\nDUGME2: D\u00fc\u011fme<br \/>\nDUGME3: D\u00fc\u011fme<br \/>\nDUGME4: D\u00fc\u011fme<\/p>\n<p>LED: 8 adet LED<\/p>\n<p align=\"justify\">\u015eimdi b\u00fct\u00fcn bunlar\u0131 ortaya koyduktan sonra S3E SK kullan\u0131m k\u0131lavuzunu a\u00e7al\u0131m ve saat darbesi i\u00e7in ne kullanabilece\u011fimize bakal\u0131m. \u201cClock Sources\u201d adl\u0131 b\u00f6l\u00fcm\u00fcn \u201cUCF Constraints\u201d adl\u0131 alt b\u00f6l\u00fcm\u00fcn\u00fc a\u00e7al\u0131m. Orada a\u015fa\u011f\u0131daki UCF bilgilerini g\u00f6r\u00fcyoruz:<\/p>\n<div>\n<ol start=\"1\">\n<li>NET\u00a0&#8220;CLK_50MHZ&#8221;\u00a0LOC=\u00a0&#8220;C9&#8221;\u00a0|\u00a0IOSTANDARD=\u00a0LVCMOS33\u00a0;<\/li>\n<li>NET\u00a0&#8220;CLK_SMA&#8221;\u00a0LOC=\u00a0&#8220;A10&#8221;\u00a0|\u00a0IOSTANDARD=\u00a0LVCMOS33\u00a0;<\/li>\n<li>NET\u00a0&#8220;CLK_AUX&#8221;\u00a0LOC\u00a0=\u00a0&#8220;B8&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVCMOS33\u00a0;<\/li>\n<\/ol>\n<\/div>\n<p align=\"justify\">S3E SK\u2019da 50Mhz lik kristal haz\u0131r geldi\u011finden ve SMA ve AUX\u2019a herhangi bir sinyal \u00fcreteci veya kristal takmad\u0131\u011f\u0131m\u0131zdan CLK i\u011fnemiz i\u00e7in a\u015fa\u011f\u0131daki UCF k\u0131s\u0131t\u0131n\u0131 kullanaca\u011f\u0131z. (Not: Yukar\u0131daki CLK_50MHZ etiketini kendi projemizde kulland\u0131\u011f\u0131m\u0131z CLK etiketi ile de\u011fi\u015ftirmeyi unumay\u0131n\u0131z.)<\/p>\n<div>\n<ol start=\"1\">\n<li>NET\u00a0&#8220;CLK&#8221;\u00a0LOC=\u00a0&#8220;C9&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVCMOS33\u00a0;<\/li>\n<\/ol>\n<\/div>\n<p><span style=\"font-family: Courier; font-size: xx-small;\"><br \/>\nKullanmak istedi\u011fimiz d\u00fc\u011fmeler ise sayfan\u0131n ba\u015f\u0131nda belirtti\u011fimiz gibi <\/span> <em>BTN_NORTH, BTN_EAST, BTN_SOUTH<\/em> ve<em> BTN_WEST <\/em>d\u00fc\u011fmeleridir. Bu d\u00fc\u011fmelerin UCF k\u0131s\u0131tlar\u0131n\u0131 \u00f6\u011frenebilmek i\u00e7in \u201cSwitches, buttons, knob\u201d ba\u015fl\u0131\u011f\u0131n\u0131n \u201cPush-button switches\u201d alt ba\u015fl\u0131\u011f\u0131n\u0131n \u201cUCF Constraints\u201d alt ba\u015fl\u0131\u011f\u0131n\u0131 a\u00e7al\u0131m. A\u015fa\u011f\u0131daki de\u011ferlerle kar\u015f\u0131la\u015f\u0131yoruz:<\/p>\n<div>\n<ol start=\"1\">\n<li>NET\u00a0&#8220;BTN_EAST&#8221;\u00a0LOC=\u00a0&#8220;H13&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVTTL\u00a0|\u00a0PULLDOWN\u00a0;<\/li>\n<li>NET\u00a0&#8220;BTN_NORTH&#8221;\u00a0LOC\u00a0=\u00a0&#8220;V4&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVTTL\u00a0|\u00a0PULLDOWN\u00a0;<\/li>\n<li>NET\u00a0&#8220;BTN_SOUTH&#8221;\u00a0LOC\u00a0=\u00a0&#8220;K17&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVTTL\u00a0|\u00a0PULLDOWN\u00a0;<\/li>\n<li>NET\u00a0&#8220;BTN_WEST&#8221;\u00a0LOC\u00a0=\u00a0&#8220;D18&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVTTL\u00a0|\u00a0PULLDOWN\u00a0;<\/li>\n<\/ol>\n<\/div>\n<p align=\"justify\">Kullanmak istedi\u011fimiz UCF k\u0131s\u0131tlar\u0131 da zaten bunlar olduklar\u0131ndan etiketlerini kendi projemize uyarl\u0131yoruz:<\/p>\n<div>\n<ol start=\"1\">\n<li>NET\u00a0&#8220;DUGME1&#8221;\u00a0LOC\u00a0=\u00a0&#8220;H13&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVTTL\u00a0|\u00a0PULLDOWN;<\/li>\n<li>NET\u00a0&#8220;DUGME3&#8221;\u00a0LOC\u00a0=\u00a0&#8220;V4&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVTTL\u00a0|\u00a0PULLDOWN\u00a0;<\/li>\n<li>NET\u00a0&#8220;DUGME4&#8221;\u00a0LOC\u00a0=\u00a0&#8220;K17&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVTTL\u00a0|\u00a0PULLDOWN\u00a0;<\/li>\n<li>NET\u00a0&#8220;DUGME2&#8221;\u00a0LOC\u00a0=\u00a0&#8220;D18&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVTTL\u00a0|\u00a0PULLDOWN\u00a0;<\/li>\n<\/ol>\n<\/div>\n<p align=\"justify\">Kullanaca\u011f\u0131m\u0131z LEDlerin UCF k\u0131s\u0131tlar\u0131n\u0131 \u00f6\u011frenmek i\u00e7in ise kullan\u0131m k\u0131lavuzunun \u201cSwitches,Buttons, and Knob\u201d ba\u015fl\u0131\u011f\u0131n\u0131n \u201cDicrete LEDs\u201d alt ba\u015fl\u0131\u011f\u0131n\u0131n \u201cUCF Constraints\u201d ba\u015fl\u0131\u011f\u0131n\u0131 a\u00e7al\u0131m. A\u015fa\u011f\u0131daki UCF k\u0131s\u0131tlar\u0131 ile kar\u015f\u0131la\u015f\u0131yoruz:<\/p>\n<div>\n<ol start=\"1\">\n<li>NET\u00a0&#8220;LED&lt;7&gt;&#8221;\u00a0LOC\u00a0=\u00a0&#8220;F9&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVTTL\u00a0|\u00a0SLEW\u00a0=\u00a0SLOW\u00a0|\u00a0DRIVE\u00a0=\u00a08;<\/li>\n<li>NET&#8221;LED&lt;6&gt;&#8221;\u00a0LOC\u00a0=\u00a0&#8220;E9&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVTTL\u00a0|\u00a0SLEW\u00a0=\u00a0SLOW\u00a0|\u00a0DRIVE\u00a0=\u00a08;<\/li>\n<li>NET\u00a0&#8220;LED&lt;5&gt;&#8221;\u00a0LOC\u00a0=\u00a0&#8220;D11&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVTTL\u00a0|\u00a0SLEW\u00a0=\u00a0SLOW\u00a0|\u00a0DRIVE\u00a0=\u00a08;<\/li>\n<li>NET\u00a0&#8220;LED&lt;4&gt;&#8221;\u00a0LOC\u00a0=\u00a0&#8220;C11&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVTTL\u00a0|\u00a0SLEW\u00a0=\u00a0SLOW\u00a0|\u00a0DRIVE\u00a0=\u00a08;<\/li>\n<li>NET\u00a0&#8220;LED&lt;3&gt;&#8221;\u00a0LOC\u00a0=\u00a0&#8220;F11&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVTTL\u00a0|\u00a0SLEW\u00a0=\u00a0SLOW\u00a0|\u00a0DRIVE\u00a0=\u00a08;<\/li>\n<li>NET\u00a0&#8220;LED&lt;2&gt;&#8221;\u00a0LOC\u00a0=\u00a0&#8220;E11&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVTTL\u00a0|\u00a0SLEW\u00a0=\u00a0SLOW\u00a0|\u00a0DRIVE\u00a0=\u00a08;<\/li>\n<li>NET\u00a0&#8220;LED&lt;1&gt;&#8221;\u00a0LOC\u00a0=\u00a0&#8220;E12&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVTTL\u00a0|\u00a0SLEW\u00a0=\u00a0SLOW\u00a0|\u00a0DRIVE\u00a0=\u00a08;<\/li>\n<li>NET\u00a0&#8220;LED&lt;0&gt;&#8221;\u00a0LOC\u00a0=\u00a0&#8220;F12&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVTTL\u00a0|\u00a0SLEW\u00a0=\u00a0SLOW\u00a0|\u00a0DRIVE\u00a0=\u00a08;<\/li>\n<\/ol>\n<\/div>\n<p align=\"justify\">Yukar\u0131daki UCF k\u0131s\u0131tlar\u0131 bizim kullanmak istedi\u011fimiz k\u0131s\u0131tlard\u0131r. Neden mi? \u00c7\u00fcnk\u00fc S3E SK \u00fczerinde kullanabilece\u011fimiz ba\u015fka LED yok. LED&lt;7&gt; etiketinin anlam\u0131 LED adl\u0131 bir veriyolunun sekizinci bitidir. E\u011fer her LED\u2019e arkl\u0131 bir etiket verirsek o zaman projemizde bu LEDlerin de\u011ferlerini tek tek de\u011fi\u015ftirmemiz gerekir. Biz uygulamam\u0131z da LED \u00e7\u0131k\u0131\u015f\u0131n\u0131 tan\u0131mlarken:<\/p>\n<div>\n<ol start=\"1\">\n<li>output\u00a0[7:0]\u00a0LED;<\/li>\n<\/ol>\n<\/div>\n<p align=\"justify\">ifadesini kulland\u0131\u011f\u0131m\u0131zdan LED ad\u0131nda 8 bitlik bir veri yolunu \u00e7\u0131k\u0131\u015f olarak tan\u0131mlam\u0131\u015f olduk. Kullan\u0131m k\u0131lavuzunda da ayn\u0131 \u015fekilde LED ad\u0131nda bir veri yolu kullan\u0131ld\u0131\u011f\u0131ndan etiketlerde herhangi bir de\u011fi\u015fiklik yapmadan kullanabilece\u011fiz. Ama biz LED yerine LAMBA etiketini kullansayd\u0131k o zaman a\u015fa\u011f\u0131dakine benzer bir de\u011fi\u015fiklik yapmam\u0131z gerekirdi:<\/p>\n<div>\n<ol start=\"1\">\n<li>NET\u00a0&#8220;LAMBA&lt;7&gt;&#8221;\u00a0LOC\u00a0=\u00a0&#8220;F9&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVTTL\u00a0|\u00a0SLEW\u00a0=SLOW\u00a0|\u00a0DRIVE\u00a0=\u00a08;<\/li>\n<li>NET\u00a0&#8220;LAMBA&lt;6&gt;&#8221;\u00a0LOC\u00a0=\u00a0&#8220;E9&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVTTL\u00a0|\u00a0SLEW\u00a0=SLOW\u00a0|\u00a0DRIVE\u00a0=\u00a08;<\/li>\n<li>NET\u00a0&#8220;LAMBA&lt;5&gt;&#8221;\u00a0LOC\u00a0=\u00a0&#8220;D11&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVTTL\u00a0|\u00a0SLEW\u00a0=SLOW\u00a0|\u00a0DRIVE=\u00a08;<\/li>\n<li>NET\u00a0&#8220;LAMBA&lt;4&gt;&#8221;\u00a0LOC\u00a0=\u00a0&#8220;C11&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVTTL\u00a0|\u00a0SLEW\u00a0=SLOW\u00a0|\u00a0DRIVE=\u00a08;<\/li>\n<li>NET\u00a0&#8220;LAMBA&lt;3&gt;&#8221;\u00a0LOC\u00a0=\u00a0&#8220;F11&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVTTL\u00a0|\u00a0SLEW\u00a0=SLOW\u00a0|\u00a0DRIVE=\u00a08;<\/li>\n<li>NET\u00a0&#8220;LAMBA&lt;2&gt;&#8221;\u00a0LOC\u00a0=\u00a0&#8220;E11&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVTTL\u00a0|\u00a0SLEW\u00a0=SLOW\u00a0|\u00a0DRIVE=\u00a08;<\/li>\n<li>NET\u00a0&#8220;LAMBA&lt;1&gt;&#8221;\u00a0LOC\u00a0=\u00a0&#8220;E12&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVTTL\u00a0|\u00a0SLEW\u00a0=SLOW\u00a0|\u00a0DRIVE=\u00a08;<\/li>\n<li>NET\u00a0&#8220;LAMBA&lt;0&gt;&#8221;\u00a0LOC\u00a0=\u00a0&#8220;F12&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVTTL\u00a0|\u00a0SLEW\u00a0=SLOW\u00a0|\u00a0DRIVE=\u00a08;<\/li>\n<\/ol>\n<\/div>\n<p align=\"justify\">Tabii ki LAMBA de\u011fil LED kulland\u0131\u011f\u0131m\u0131zdan b\u00f6yle bir de\u011fi\u015fiklik yapmaya ihtiyac\u0131m\u0131z yok.<\/p>\n<p align=\"justify\">UCF dosyas\u0131n\u0131n tamam\u0131n\u0131 g\u00f6rmek i\u00e7in a\u015fa\u011f\u0131daki proje dosyas\u0131n\u0131 bilgisayar\u0131n\u0131za indirip inceleyebilirsiniz.<\/p>\n<p align=\"justify\">UCF dosyalar\u0131 haz\u0131rlan\u0131rken dikkat edilmesi gereken en \u00f6nemli \u015fey asl\u0131nda LOC \u00f6zelli\u011fidir. LOC bir etiketin hangi i\u011fneye ba\u011flanaca\u011f\u0131n\u0131 belirtir. Mesela LED&lt;7&gt; i\u011fnesi ger\u00e7ekte F9 i\u011fnesine ba\u011fl\u0131 olacakt\u0131r. \u201cLED&lt;7&gt; i\u011fnesi\u201d kullan\u0131m\u0131 burda biraz kafalar\u0131 kar\u0131\u015ft\u0131rabilir. Burada kastedilen LED&lt;7&gt; i\u011fne etiketidir. Yani donan\u0131msal olarak bir i\u011fne temsil etmez. Ama F9 donan\u0131msal bir i\u011fnedir. FPGA entegresinin belirli, g\u00f6r\u00fcnen, \u201cger\u00e7ek\u201d bir i\u011fnesidir. FPGA d\u0131\u015f d\u00fcnya ile bu i\u011fne sayesinde ileti\u015fir.<\/p>\n<p align=\"justify\">E\u011fer kulland\u0131\u011f\u0131n\u0131z FPGA geli\u015ftirme kiti veya direk FPGA farkl\u0131 ise yani Spartan S3E Starter Kit de\u011filse LOC de\u011ferinde de\u011fi\u015fiklik yapman\u0131z gerekir. E\u011fer kitiniz Spartan S3E Starter Kit ise yine de dikkat etmeniz gerekir. \u0130nsan hata yapabildi\u011finden UCF dosyas\u0131 kod FPGA kitine yollanmadan bir daha kontrol edilmelidir. Aksi takdir \u00e7\u0131k\u0131\u015f ve giri\u015fler kar\u0131\u015fabilir ve hem FPGA\u2019ya hem de \u00e7evre birimlerine kal\u0131c\u0131 zarar verilebilir.<\/p>\n<p align=\"justify\">UCF dosyas\u0131n\u0131 ve atamalar\u0131n\u0131 kontrol etmenin bir yolu UCF dosyas\u0131n\u0131 direk olarak kontrol etmektir. Di\u011fer bir yolu ise Xilinx ISE\u2019nin aray\u00fcz\u00fcnden kod sentezlendikten ve ger\u00e7eklendikte sonra \u201cPinout Report\u201d a bakmakt\u0131r. Programda anl\u0131k bir hata olu\u015fabilece\u011fini ve kod ger\u00e7eklenirken UCF dosyas\u0131n\u0131n yanl\u0131\u015f veya eksik okunabilece\u011fini g\u00f6z \u00f6n\u00fcnde bulundurarak her iki y\u00f6ntem ile kontrol etmek ak\u0131ll\u0131ca olacakt\u0131r. E\u011fer bir etiket i\u00e7in herhangi bir UCF k\u0131s\u0131t\u0131 yok ise o zaman ISE ger\u00e7ekle\u015ftiricisi otomatik olarak bir i\u011fneyi o etikete at\u0131yacakt\u0131r ve bu genelde istedi\u011fimiz i\u011fne olmayacakt\u0131r.<\/p>\n<p align=\"left\"><em><strong>D- Kod ve Proje Dosyalar\u0131 (Xilinx ISE):<\/strong><\/em><\/p>\n<p><a href=\"http:\/\/web.archive.org\/web\/20101029183154\/http:\/\/www.scozturk.com\/resimler_sco\/verilog_1\/s1_1.rar\" target=\"_blank\">\u0130ndirmek i\u00e7in t\u0131klay\u0131n\u0131z.<\/a><\/p>\n<p align=\"center\">*Elinizdeki FPGA kitine g\u00f6re kodda baz\u0131 de\u011fi\u015fiklikler yapman\u0131z gerekebilir.<\/p>\n<p align=\"left\"><strong><em>E- Vidyo:<\/em><\/strong><\/p>\n<p align=\"left\"><a href=\"http:\/\/www.youtube.com\/watch?v=pqTux1keLBw\" target=\"_blank\">Vidyo 1<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A- Giri\u015f: Bu uygulamada S3E SK n\u0131n \u00fczerinde bulunan LED leri ve d\u00fc\u011fmeleri kullanaca\u011f\u0131z. LED ler bir say\u0131y\u0131 g\u00f6stermeye yarayacak ve d\u00fc\u011fmeler de bu say\u0131 \u00fczerinde oynama yapmaya&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[207,209],"tags":[],"class_list":["post-83","post","type-post","status-publish","format-standard","hentry","category-donanim-tr","category-verilog-tr"],"_links":{"self":[{"href":"http:\/\/18.193.70.38\/index.php?rest_route=\/wp\/v2\/posts\/83","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/18.193.70.38\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/18.193.70.38\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/18.193.70.38\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/18.193.70.38\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=83"}],"version-history":[{"count":1,"href":"http:\/\/18.193.70.38\/index.php?rest_route=\/wp\/v2\/posts\/83\/revisions"}],"predecessor-version":[{"id":1143,"href":"http:\/\/18.193.70.38\/index.php?rest_route=\/wp\/v2\/posts\/83\/revisions\/1143"}],"wp:attachment":[{"href":"http:\/\/18.193.70.38\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=83"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/18.193.70.38\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=83"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/18.193.70.38\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=83"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}