{"id":77,"date":"2013-10-15T13:24:41","date_gmt":"2013-10-15T10:24:41","guid":{"rendered":"http:\/\/www.scozturk.com\/?p=77"},"modified":"2025-08-27T10:17:18","modified_gmt":"2025-08-27T10:17:18","slug":"spartan-3e-starter-kit-ile-nes-kumanda-denetleyicisi","status":"publish","type":"post","link":"http:\/\/18.193.70.38\/?p=77&lang=tr","title":{"rendered":"Spartan 3E Starter Kit ile NES kumanda denetleyicisi"},"content":{"rendered":"<p><strong>1- Giri\u015f:<\/strong><\/p>\n<p>Bu yaz\u0131da elimdeki bir NES (Nintendo Entertainment System &#8211; 1983) kumanday\u0131 Spartan 3E Starter Kit\u2019 e ba\u011flay\u0131p kullanaca\u011f\u0131m. Mesela bas\u0131lan tu\u015flara g\u00f6re Starter Kit \u00fczerinde farkl\u0131 bir LED yakaca\u011f\u0131m. Ba\u015fka herhangi bir kumanda kullanman\u0131z veya kendi kumandan\u0131z\u0131 tasarlay\u0131p Starter Kit\u2019e ba\u011flaman\u0131z da do\u011fal olarak m\u00fcmk\u00fcn. Benim elimde haz\u0131rda NES kumandas\u0131 var ve kullanm\u0131yorum. Bu y\u00fczden onu se\u00e7tim.<\/p>\n<p>Kumanday\u0131 ba\u011flamadan \u00f6nce kumanda hakk\u0131nda biraz bilgi edinmek gerekiyor. Mesela veriyi nas\u0131l veriyor, ka\u00e7 volt ile besleniyor, hangi i\u011fne ne i\u015fe yar\u0131yor ve benzeri.<\/p>\n<p><strong>2- Kumanday\u0131 \u0130nceleyelim:<\/strong><\/p>\n<p>A\u015fa\u011f\u0131da kumandan\u0131n ve soketinin g\u00f6r\u00fcnt\u00fclerini g\u00f6rebilirsiniz.<\/p>\n<p><a title=\"verilog_6_1.jpg\" href=\"http:\/\/web.archive.org\/web\/20100106014732\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/verilog_6_1.jpg\"><img decoding=\"async\" alt=\"verilog_6_1.jpg\" src=\"http:\/\/web.archive.org\/web\/20100106014732im_\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/verilog_6_1.kucukresim.jpg\" \/><\/a><\/p>\n<p><a title=\"verilog_6_3.jpg\" href=\"http:\/\/web.archive.org\/web\/20100106014732\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/verilog_6_3.jpg\"><img decoding=\"async\" alt=\"verilog_6_3.jpg\" src=\"http:\/\/web.archive.org\/web\/20100106014732im_\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/verilog_6_3.kucukresim.jpg\" \/><\/a><\/p>\n<p>Kumandan\u0131n i\u00e7ini a\u00e7t\u0131\u011f\u0131m\u0131zda a\u015fa\u011f\u0131daki manzara ile kar\u015f\u0131la\u015f\u0131yoruz:<\/p>\n<p><a title=\"verilog_6_2.jpg\" href=\"http:\/\/web.archive.org\/web\/20100106014732\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/verilog_6_2.jpg\"><img decoding=\"async\" alt=\"verilog_6_2.jpg\" src=\"http:\/\/web.archive.org\/web\/20100106014732im_\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/verilog_6_2.kucukresim.jpg\" \/><\/a><\/p>\n<p>G\u00f6r\u00fcld\u00fc\u011f\u00fc gibi d\u00fc\u011fmelerin d\u0131\u015f\u0131nda 2 adet diren\u00e7 ve bir tane de entegre (BU4021B) kullan\u0131lm\u0131\u015f. BU4021B entegresini <a href=\"http:\/\/web.archive.org\/web\/20100106014732\/http:\/\/www.google.com.tr\/search?hl=tr&amp;q=BU4021B&amp;btnG=Google%27da+Ara&amp;meta=\" target=\"_blank\">Google<\/a>\u2018da arat\u0131nca entegrenin <a href=\"http:\/\/web.archive.org\/web\/20100106014732\/http:\/\/download.siliconexpert.com\/pdfs\/2004\/0629\/semi_ap\/1\/roh\/qd\/bu4021b.pdf\" target=\"_blank\">veri sayfas\u0131n\u0131<\/a> bulabiliyoruz. Asl\u0131nda bu beni biraz olsun \u015fa\u015f\u0131rtt\u0131. Sonu\u00e7ta eski bir konsolun eski kumandas\u0131n\u0131n i\u00e7inde kullan\u0131lan eski bir entegrenin veri sayfas\u0131n\u0131 \u00e7ok rahat bir \u015fekilde bulabildim. Bu arada BU4021B 8 bitlik kayd\u0131ran bir yazma\u00e7m\u0131\u015f.<\/p>\n<p>Veri sayfas\u0131n\u0131 inceledi\u011fimizde kumandan\u0131n -0.3V ve 18V aras\u0131 gerilimlerle \u00e7al\u0131\u015fabildi\u011fini g\u00f6r\u00fcyoruz. \u0130\u011fne diyagram\u0131na bakarak hangi i\u011fnenin ne oldu\u011funu g\u00f6rebiliyoruz.<\/p>\n<p><a title=\"verilog_6_4.jpg\" href=\"http:\/\/web.archive.org\/web\/20100106014732\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/verilog_6_4.jpg\"><img decoding=\"async\" alt=\"verilog_6_4.jpg\" src=\"http:\/\/web.archive.org\/web\/20100106014732im_\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/verilog_6_4.kucukresim.jpg\" \/><\/a><\/p>\n<p>\u0130\u011fne diyagram\u0131na bakacak olursak CLOCK adl\u0131 bir i\u011fne g\u00f6r\u00fcyoruz. Akla hemen \u015fu soru geliyor:<\/p>\n<p><em>Ka\u00e7 Mhz\u2019lik saat darbesi beslemem ve geriliminin ne olmas\u0131 gerekiyor?<\/em><\/p>\n<p>Bunun cevab\u0131 i\u00e7in veri sayfas\u0131n\u0131 biraz daha incelemek gerekiyor ve a\u015fa\u011f\u0131daki maksimum de\u011fer ile kar\u015f\u0131la\u015f\u0131yoruz:<\/p>\n<p><em>VDD 5V iken maksimum CLOCK frekans\u0131 3Mhz<br \/>\nVDD 10V iken maksimum CLOCK frekans\u0131 6Mhz<br \/>\nVDD 15V iken maksimum CLOCK frekans\u0131 9Mhz<\/em><\/p>\n<p>D\u00fcz mant\u0131k uygulayarak 3.3V\u2019da maksimum frekans\u0131n 1.98Mhz olmas\u0131 gerekti\u011fini s\u00f6yleyebiliriz. Tabii ki bu maksimum frekans de\u011feri, daha d\u00fc\u015f\u00fck bir de\u011fer kullanabiliriz. Biz bu aleti 3.3V\u2019da 1Mhz ile \u00e7al\u0131\u015ft\u0131rmay\u0131 deneyelim. Elimizde 1Mhz\u2019lik kristal yok demeyin. FPGA\u2019imiz var. Yan\u0131p s\u00f6nen LEDlerimizi hat\u0131rlad\u0131n\u0131z umar\u0131m, i\u015fte o mant\u0131\u011f\u0131 1Mhz lik saat darbesini \u00fcretmek i\u00e7in kullanaca\u011f\u0131z.<\/p>\n<p>Bir di\u011fer ilgin\u00e7 i\u011fne ise P\/S i\u011fnesi. P\/S i\u011fnesi entegrenin paralel ve seri kipleri aras\u0131nda ge\u00e7i\u015f yapmaya yar\u0131yor. D\u00fc\u011fmelerden verileri paralel olarak almak i\u00e7in P\/S i\u011fnesi mant\u0131ksal 1 (bir) durumuna getirilmelidir. D\u00fc\u011fme verileri yazmaca aktar\u0131ld\u0131ktan sonra ise P\/S i\u011fnesi mant\u0131ksal 0 (s\u0131f\u0131r) durumuna getirilerek paralel olarak al\u0131nan verinin seri olarak iletilmesi sa\u011flanacakt\u0131r.<\/p>\n<p>Ds i\u011fnesi i\u00e7in ise veri sayfas\u0131nda yaz\u0131l\u0131 olarak bir \u015fey s\u00f6ylenmemi\u015f. Yaln\u0131z veri sayfas\u0131nda entegrenin mant\u0131ksal devre kar\u015f\u0131l\u0131\u011f\u0131na bak\u0131ld\u0131\u011f\u0131nda Ds\u2019in D tipi flip floplar\u0131n birincisine giri\u015f oldu\u011funu g\u00f6r\u00fcyoruz. Bunun \u00fczerine biraz a\u015fa\u011f\u0131daki do\u011fruluk tablolar\u0131na g\u00f6z atarsak Ds\u2019in paralel ileti\u015fimde kullan\u0131lmad\u0131\u011f\u0131n\u0131, seri ileti\u015fimde kullan\u0131ld\u0131\u011f\u0131n\u0131 g\u00f6r\u00fcyoruz. Kumandan\u0131n devresini inceledi\u011fimizde Ds i\u011fnesi mant\u0131ksal 0 (s\u0131f\u0131r) durumuna sabitlenmi\u015f oldu\u011funu g\u00f6r\u00fcyoruz. Yukar\u0131daki bilgiler \u00fczerinde biraz d\u00fc\u015f\u00fcn\u00fcl\u00fcrse asl\u0131nda bu Ds i\u011fnesinin seri veri giri\u015fi i\u00e7in kullan\u0131ld\u0131\u011f\u0131n\u0131 anlayabiliriz.<\/p>\n<p>Devreyi inceledi\u011fimizde <em>Kahverengi<\/em> kablonun toprak hatt\u0131na, <em>Beyaz<\/em> kablonun ise VDD hatt\u0131na ba\u011fl\u0131 oldu\u011funu g\u00f6r\u00fcyoruz. Ayr\u0131ca <em>Turuncu<\/em> tel P\/S giri\u015fine, <em>K\u0131rm\u0131z\u0131<\/em> tel CLOCK giri\u015fine ve <em>Sar\u0131<\/em> tel de veri \u00e7\u0131k\u0131\u015f\u0131na ba\u011fl\u0131d\u0131r.<\/p>\n<p>D\u00fc\u011fmelerin \u00e7\u0131kt\u0131lar\u0131 entegrenin P giri\u015flerine giriyor ve entegrenin \u00e7\u0131kt\u0131lar\u0131 Q6, Q7 ve Q8 \u00e7\u0131k\u0131\u015flar\u0131ndan \u00e7\u0131k\u0131yor. Kumandan\u0131n devresi incelendi\u011finde Q6 ve Q7\u2032nin kullan\u0131lmad\u0131\u011f\u0131 g\u00f6r\u00fcl\u00fcyor.<\/p>\n<p>Kumandan\u0131n \u00e7al\u0131\u015fma prensibini \u00e7\u00f6zd\u00fc\u011f\u00fcm\u00fcze g\u00f6re \u015fimdi madde madde entegreyi \u00f6zetleyelim.<\/p>\n<ol>\n<li>VSS (8. i\u011fne) toprak,<\/li>\n<li>VDD (16. i\u011fne) +3.3V,<\/li>\n<li>Q8 (3. i\u011fne) \u00e7\u0131k\u0131\u015f,<\/li>\n<li>Ds (11. i\u011fne) paralel ileti\u015fim i\u00e7in yani bizim i\u00e7in toprak,<\/li>\n<li>CLOCK (10. i\u011fne) 3.3V 1.5Mhz saat darbesi giri\u015fi,<\/li>\n<li>P1, P2, P3, P4, P5, P6, P7 ve P8 (s\u0131ras\u0131yla 7., 6., 5., 4., 13., 14., 15. ve 1. i\u011fneler) giri\u015fler (bu giri\u015fler d\u00fc\u011fmelere ba\u011fl\u0131)<\/li>\n<\/ol>\n<p>Kumandadan \u00e7\u0131kan tellerin anlamlar\u0131na bakacak olursak:<\/p>\n<ol>\n<li>Turuncu tel: P\/S<\/li>\n<li>K\u0131rm\u0131z\u0131 tel: CLOCK<\/li>\n<li>Kahverengi tel: VSS<\/li>\n<li>Beyaz tel: VDD<\/li>\n<li>Sar\u0131 tel: Q8 (veri \u00e7\u0131k\u0131\u015f\u0131)<\/li>\n<\/ol>\n<p>Ayr\u0131ca hangi d\u00fc\u011fmenin hangi i\u011fneye ba\u011fl\u0131 oldu\u011funu bilmekte fayda var:<\/p>\n<p><a title=\"verilog_6_5.jpg\" href=\"http:\/\/web.archive.org\/web\/20100106014732\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/verilog_6_5.jpg\"><img decoding=\"async\" alt=\"verilog_6_5.jpg\" src=\"http:\/\/web.archive.org\/web\/20100106014732im_\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/verilog_6_5.kucukresim.jpg\" \/><\/a><\/p>\n<p><strong>3- Kumanda Denetleyicimizi Tasarlayal\u0131m:<\/strong><\/p>\n<p>Evet kumandam\u0131z\u0131 inceledikten sonra kumanda denetleyicimizi Verilog ile tasarlamaya ge\u00e7ebiliriz. \u00d6ncelikle temiz bir proje olu\u015ftural\u0131m. Ard\u0131ndan da SAAT ve KUMANDA giri\u015fleri ile CLOCK, PS ve LEDLER \u00e7\u0131k\u0131\u015flar\u0131n\u0131 tan\u0131mlayal\u0131m. Burada SAAT, KUMANDA, PS ve CLOCK 1 bit, LEDLER ise 8 bittir. Ayr\u0131ca \u00e7\u0131k\u0131\u015flar i\u00e7in ilgili yazma\u00e7lar\u0131 da tan\u0131mlayal\u0131m.<\/p>\n<p>Bu i\u015flemleri yapt\u0131\u011f\u0131m\u0131zda a\u015fa\u011f\u0131dakine benzer bir verilog dosyas\u0131 elde edece\u011fiz.<\/p>\n<div>\n<ol start=\"1\">\n<li>`timescale\u00a01ns\u00a0\/\u00a01ps<\/li>\n<li>module\u00a0v6(SAAT,\u00a0KUMANDA,\u00a0LEDLER,\u00a0CLOCK,PS);<\/li>\n<li>\/\/\u00a0Girdi-\u00c7\u0131kt\u0131\u00a0Kap\u0131lar\u0131<\/li>\n<li>input\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0SAAT;<\/li>\n<li>input\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0KUMANDA;<\/li>\n<li>output\u00a0\u00a0\u00a0\u00a0\u00a0[7:0]\u00a0\u00a0\u00a0\u00a0\u00a0LEDLER;<\/li>\n<li>output\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0CLOCK;<\/li>\n<li>output\u00a0PS;<\/li>\n<li><\/li>\n<li>\/\/\u00a0Yazma\u00e7lar<\/li>\n<li>reg\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[7:0]\u00a0\u00a0\u00a0\u00a0\u00a0ledlerim;<\/li>\n<li>reg\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0clockum;<\/li>\n<li>reg\u00a0psim;<\/li>\n<li><\/li>\n<li>\/\/\u00a0Kod\u00a0buraya&#8230;<\/li>\n<li><\/li>\n<li>\/\/\u00a0Yazma\u00e7lar\u0131\u00a0\u00e7\u0131kt\u0131\u00a0kap\u0131lar\u0131na\u00a0ba\u011fla<\/li>\n<li>assign\u00a0LEDLER\u00a0\u00a0\u00a0\u00a0\u00a0=\u00a0ledlerim;<\/li>\n<li>assign\u00a0CLOCK\u00a0\u00a0\u00a0\u00a0\u00a0=\u00a0clockum;<\/li>\n<li>assign\u00a0PS\u00a0=\u00a0psim;<\/li>\n<li><\/li>\n<li>endmodule<\/li>\n<\/ol>\n<\/div>\n<p>\u015eimdi \u00f6ncelikle CLOCK \u00e7\u0131kt\u0131s\u0131na 1Mhz\u2019lik bir saat darbesi uygulayacak d\u00f6ng\u00fcy\u00fc olu\u015ftural\u0131m.<\/p>\n<div>\n<ol start=\"1\">\n<li>`timescale\u00a01ns\u00a0\/\u00a01ps<\/li>\n<li>module\u00a0v6(SAAT,\u00a0KUMANDA,\u00a0LEDLER,\u00a0CLOCK,PS);<\/li>\n<li>\/\/\u00a0Girdi-\u00c7\u0131kt\u0131\u00a0Kap\u0131lar\u0131<\/li>\n<li>input\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0SAAT;<\/li>\n<li>input\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0KUMANDA;<\/li>\n<li>output\u00a0\u00a0\u00a0\u00a0\u00a0[7:0]\u00a0\u00a0\u00a0\u00a0\u00a0LEDLER;<\/li>\n<li>output\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0CLOCK;<\/li>\n<li>output\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0PS;<\/li>\n<li><\/li>\n<li>\/\/\u00a0Yazma\u00e7lar<\/li>\n<li>reg\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[7:0]\u00a0\u00a0\u00a0\u00a0\u00a0ledlerim;<\/li>\n<li>reg\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0clockum;<\/li>\n<li>reg\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[10:0]\u00a0\u00a0\u00a0\u00a0sayac1;<\/li>\n<li>reg\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[7:0]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sayac2;<\/li>\n<li>reg\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[10:0]\u00a0\u00a0\u00a0\u00a0sayac3;<\/li>\n<li>reg\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0psim;<\/li>\n<li>reg\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[7:0]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0veri;<\/li>\n<li><\/li>\n<li>\/\/\u00a0CLOCK\u00a0olu\u015fturucu<\/li>\n<li>always\u00a0@\u00a0(posedge\u00a0SAAT)\u00a0begin\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\u00a0Her\u00a0saat\u00a0darbesinde\u00a0tetiklen<\/li>\n<li>if(sayac1\u00a0==\u00a050)\u00a0begin\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\u00a050\u00a0saat\u00a0darbesi\u00a0oldu\u00a0mu?<\/li>\n<li>clockum\u00a0\u00a0\u00a0\u00a0&lt;=\u00a0~clockum;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\u00a0clockum&#8217;u\u00a0tersle<\/li>\n<li>sayac1\u00a0\u00a0\u00a0\u00a0&lt;=\u00a00;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\u00a0sayac\u0131\u00a0s\u0131f\u0131rla<\/li>\n<li>end<\/li>\n<li>else\u00a0begin<\/li>\n<li>sayac1\u00a0\u00a0\u00a0\u00a0&lt;=\u00a0sayac1\u00a0+\u00a01;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\u00a0sayac\u0131n\u00a0de\u011ferini\u00a0artt\u0131r<\/li>\n<li>clockum\u00a0\u00a0\u00a0\u00a0&lt;=\u00a0clockum;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\u00a0clockum\u00a0de\u011ferini\u00a0korusun<\/li>\n<li>end<\/li>\n<li>end<\/li>\n<li><\/li>\n<li>\/\/\u00a0Yazma\u00e7lar\u0131\u00a0\u00e7\u0131kt\u0131\u00a0kap\u0131lar\u0131na\u00a0ba\u011fla<\/li>\n<li>assign\u00a0LEDLER\u00a0\u00a0\u00a0\u00a0=\u00a0ledlerim;<\/li>\n<li>assign\u00a0CLOCK\u00a0\u00a0\u00a0\u00a0=\u00a0clockum;<\/li>\n<li>assign\u00a0PS\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0=\u00a0psim;<\/li>\n<li><\/li>\n<li>endmodule<\/li>\n<\/ol>\n<\/div>\n<p>\u015eimdi de her CLOCK darbesinde bir kumanda verisini alan kodu yazal\u0131m. Veri al\u0131rken gecikmeleri de g\u00f6z \u00f6n\u00fcnde bulundurarak biraz daha k\u00fc\u00e7\u00fck frekansda verileri alal\u0131m. Unutmay\u0131n toplamda 8 tane veri alaca\u011f\u0131z.<\/p>\n<div>\n<ol start=\"1\">\n<li>`timescale\u00a01ns\u00a0\/\u00a01ps<\/li>\n<li>module\u00a0v6(SAAT,\u00a0KUMANDA,\u00a0LEDLER,\u00a0CLOCK,PS);<\/li>\n<li>\/\/\u00a0Girdi-\u00c7\u0131kt\u0131\u00a0Kap\u0131lar\u0131<\/li>\n<li>input\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0SAAT;<\/li>\n<li>input\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0KUMANDA;<\/li>\n<li>output\u00a0\u00a0\u00a0\u00a0\u00a0[7:0]\u00a0\u00a0\u00a0\u00a0\u00a0LEDLER;<\/li>\n<li>output\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0CLOCK;<\/li>\n<li>output\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0PS;<\/li>\n<li><\/li>\n<li>\/\/\u00a0Yazma\u00e7lar<\/li>\n<li>reg\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[7:0]\u00a0\u00a0\u00a0\u00a0\u00a0ledlerim;<\/li>\n<li>reg\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0clockum;<\/li>\n<li>reg\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[10:0]\u00a0\u00a0\u00a0\u00a0sayac1;<\/li>\n<li>reg\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[7:0]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sayac2;<\/li>\n<li>reg\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[10:0]\u00a0\u00a0\u00a0\u00a0sayac3;<\/li>\n<li>reg\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0psim;<\/li>\n<li>reg\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[7:0]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0veri;<\/li>\n<li><\/li>\n<li>always\u00a0@\u00a0(posedge\u00a0SAAT)\u00a0begin<\/li>\n<li>if(sayac3\u00a0==\u00a0101)\u00a0begin<\/li>\n<li>sayac3\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;=\u00a00;<\/li>\n<li>psim\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;=\u00a00;<\/li>\n<li>if(sayac2\u00a0==\u00a00)\u00a0begin<\/li>\n<li>sayac2\u00a0\u00a0\u00a0\u00a0&lt;=\u00a0sayac2\u00a0+\u00a01;<\/li>\n<li>if(KUMANDA)\u00a0begin<\/li>\n<li>veri[0]\u00a0&lt;=\u00a00;<\/li>\n<li>end<\/li>\n<li>else\u00a0begin<\/li>\n<li>veri[0]\u00a0&lt;=\u00a01;<\/li>\n<li>end<\/li>\n<li>end<\/li>\n<li>else\u00a0if(sayac2\u00a0==\u00a01)\u00a0begin<\/li>\n<li>sayac2\u00a0\u00a0\u00a0\u00a0&lt;=\u00a0sayac2\u00a0+\u00a01;<\/li>\n<li>if(KUMANDA)\u00a0begin<\/li>\n<li>veri[1]\u00a0&lt;=\u00a00;<\/li>\n<li>end<\/li>\n<li>else\u00a0begin<\/li>\n<li>veri[1]\u00a0&lt;=\u00a01;<\/li>\n<li>end<\/li>\n<li>end<\/li>\n<li>else\u00a0if(sayac2\u00a0==\u00a02)\u00a0begin<\/li>\n<li>sayac2\u00a0\u00a0\u00a0\u00a0&lt;=\u00a0sayac2\u00a0+\u00a01;<\/li>\n<li>if(KUMANDA)\u00a0begin<\/li>\n<li>veri[2]\u00a0&lt;=\u00a00;<\/li>\n<li>end<\/li>\n<li>else\u00a0begin<\/li>\n<li>veri[2]\u00a0&lt;=\u00a01;<\/li>\n<li>end<\/li>\n<li>end<\/li>\n<li>else\u00a0if(sayac2\u00a0==\u00a03)\u00a0begin<\/li>\n<li>sayac2\u00a0\u00a0\u00a0\u00a0&lt;=\u00a0sayac2\u00a0+\u00a01;<\/li>\n<li>if(KUMANDA)\u00a0begin<\/li>\n<li>veri[3]\u00a0&lt;=\u00a00;<\/li>\n<li>end<\/li>\n<li>else\u00a0begin<\/li>\n<li>veri[3]\u00a0&lt;=\u00a01;<\/li>\n<li>end<\/li>\n<li>end<\/li>\n<li>else\u00a0if(sayac2\u00a0==\u00a04)\u00a0begin<\/li>\n<li>sayac2\u00a0\u00a0\u00a0\u00a0&lt;=\u00a0sayac2\u00a0+\u00a01;<\/li>\n<li>if(KUMANDA)\u00a0begin<\/li>\n<li>veri[4]\u00a0&lt;=\u00a00;<\/li>\n<li>end<\/li>\n<li>else\u00a0begin<\/li>\n<li>veri[4]\u00a0&lt;=\u00a01;<\/li>\n<li>end<\/li>\n<li>end<\/li>\n<li>else\u00a0if(sayac2\u00a0==\u00a05)\u00a0begin<\/li>\n<li>sayac2\u00a0\u00a0\u00a0\u00a0&lt;=\u00a0sayac2\u00a0+\u00a01;<\/li>\n<li>if(KUMANDA)\u00a0begin<\/li>\n<li>veri[5]\u00a0&lt;=\u00a00;<\/li>\n<li>end<\/li>\n<li>else\u00a0begin<\/li>\n<li>veri[5]\u00a0&lt;=\u00a01;<\/li>\n<li>end<\/li>\n<li>end<\/li>\n<li>else\u00a0if(sayac2\u00a0==\u00a06)\u00a0begin<\/li>\n<li>sayac2\u00a0\u00a0\u00a0\u00a0&lt;=\u00a0sayac2\u00a0+\u00a01;<\/li>\n<li>if(KUMANDA)\u00a0begin<\/li>\n<li>veri[6]\u00a0&lt;=\u00a00;<\/li>\n<li>end<\/li>\n<li>else\u00a0begin<\/li>\n<li>veri[6]\u00a0&lt;=\u00a01;<\/li>\n<li>end<\/li>\n<li>end<\/li>\n<li>else\u00a0begin<\/li>\n<li>sayac2\u00a0\u00a0\u00a0\u00a0&lt;=\u00a00;<\/li>\n<li>ledlerim\u00a0&lt;=\u00a0veri;<\/li>\n<li>psim\u00a0&lt;=\u00a01;<\/li>\n<li>if(KUMANDA)\u00a0begin<\/li>\n<li>veri[7]\u00a0&lt;=\u00a00;<\/li>\n<li>end<\/li>\n<li>else\u00a0begin<\/li>\n<li>veri[7]\u00a0&lt;=\u00a01;<\/li>\n<li>end<\/li>\n<li>end<\/li>\n<li>end<\/li>\n<li>else\u00a0begin<\/li>\n<li>psim\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;=\u00a0psim;<\/li>\n<li>sayac3\u00a0\u00a0\u00a0\u00a0&lt;=\u00a0sayac3\u00a0+\u00a01;<\/li>\n<li>end<\/li>\n<li>end<\/li>\n<li><\/li>\n<li>\/\/\u00a0CLOCK\u00a0olu\u015fturucu<\/li>\n<li>always\u00a0@\u00a0(posedge\u00a0SAAT)\u00a0begin\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\u00a0Her\u00a0saat\u00a0darbesinde\u00a0tetiklen<\/li>\n<li>if(sayac1\u00a0==\u00a050)\u00a0begin\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\u00a050\u00a0saat\u00a0darbesi\u00a0oldu\u00a0mu?<\/li>\n<li>clockum\u00a0\u00a0\u00a0\u00a0&lt;=\u00a0~clockum;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\u00a0clockum&#8217;u\u00a0tersle<\/li>\n<li>sayac1\u00a0\u00a0\u00a0\u00a0&lt;=\u00a00;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\u00a0sayac\u0131\u00a0s\u0131f\u0131rla<\/li>\n<li>end<\/li>\n<li>else\u00a0begin<\/li>\n<li>sayac1\u00a0\u00a0\u00a0\u00a0&lt;=\u00a0sayac1\u00a0+\u00a01;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\u00a0sayac\u0131n\u00a0de\u011ferini\u00a0artt\u0131r<\/li>\n<li>clockum\u00a0\u00a0\u00a0\u00a0&lt;=\u00a0clockum;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\u00a0clockum\u00a0de\u011ferini\u00a0korusun<\/li>\n<li>end<\/li>\n<li>end<\/li>\n<li><\/li>\n<li>\/\/\u00a0Yazma\u00e7lar\u0131\u00a0\u00e7\u0131kt\u0131\u00a0kap\u0131lar\u0131na\u00a0ba\u011fla<\/li>\n<li>assign\u00a0LEDLER\u00a0\u00a0\u00a0\u00a0=\u00a0ledlerim;<\/li>\n<li>assign\u00a0CLOCK\u00a0\u00a0\u00a0\u00a0=\u00a0clockum;<\/li>\n<li>assign\u00a0PS\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0=\u00a0psim;<\/li>\n<li><\/li>\n<li>endmodule<\/li>\n<\/ol>\n<\/div>\n<p>Tasar\u0131m\u0131m\u0131z\u0131 sentezleyelim. Normalde herhangi bir sorun ile kar\u015f\u0131la\u015fmamam\u0131z gerekiyor.<\/p>\n<p>Tasar\u0131m\u0131m\u0131z haz\u0131r oldu\u011funa g\u00f6re \u015fimdi de UCF dosyam\u0131z\u0131 olu\u015ftural\u0131m ve ard\u0131ndan da tasar\u0131m\u0131m\u0131z\u0131 ger\u00e7ekleyelim.<\/p>\n<div>\n<ol start=\"1\">\n<li>NET\u00a0&#8220;SAAT&#8221;\u00a0LOC\u00a0=\u00a0&#8220;C9&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVCMOS33\u00a0;<\/li>\n<li>NET\u00a0&#8220;SAAT&#8221;\u00a0PERIOD\u00a0=\u00a020.0ns\u00a0HIGH\u00a040%;<\/li>\n<li><\/li>\n<li>NET\u00a0&#8220;LEDLER&lt;7&gt;&#8221;\u00a0LOC\u00a0=\u00a0&#8220;F9&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVTTL\u00a0|\u00a0SLEW\u00a0=\u00a0SLOW\u00a0|\u00a0DRIVE\u00a0=8\u00a0;<\/li>\n<li>NET\u00a0&#8220;LEDLER&lt;6&gt;&#8221;\u00a0LOC\u00a0=\u00a0&#8220;E9&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVTTL\u00a0|\u00a0SLEW\u00a0=\u00a0SLOW\u00a0|\u00a0DRIVE\u00a0=8\u00a0;<\/li>\n<li>NET\u00a0&#8220;LEDLER&lt;5&gt;&#8221;\u00a0LOC\u00a0=\u00a0&#8220;D11&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVTTL\u00a0|\u00a0SLEW\u00a0=\u00a0SLOW\u00a0|\u00a0DRIVE\u00a0=8;<\/li>\n<li>NET\u00a0&#8220;LEDLER&lt;4&gt;&#8221;\u00a0LOC\u00a0=\u00a0&#8220;C11&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVTTL\u00a0|\u00a0SLEW\u00a0=\u00a0SLOW\u00a0|\u00a0DRIVE\u00a0=8;<\/li>\n<li>NET\u00a0&#8220;LEDLER&lt;3&gt;&#8221;\u00a0LOC\u00a0=\u00a0&#8220;F11&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVTTL\u00a0|\u00a0SLEW\u00a0=\u00a0SLOW\u00a0|\u00a0DRIVE\u00a0=8;<\/li>\n<li>NET\u00a0&#8220;LEDLER&lt;2&gt;&#8221;\u00a0LOC\u00a0=\u00a0&#8220;E11&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVTTL\u00a0|\u00a0SLEW\u00a0=\u00a0SLOW\u00a0|\u00a0DRIVE\u00a0=8;<\/li>\n<li>NET\u00a0&#8220;LEDLER&lt;1&gt;&#8221;\u00a0LOC\u00a0=\u00a0&#8220;E12&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVTTL\u00a0|\u00a0SLEW\u00a0=\u00a0SLOW\u00a0|\u00a0DRIVE\u00a0=8;<\/li>\n<li>NET\u00a0&#8220;LEDLER&lt;0&gt;&#8221;\u00a0LOC\u00a0=\u00a0&#8220;F12&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVTTL\u00a0|\u00a0SLEW\u00a0=\u00a0SLOW\u00a0|\u00a0DRIVE\u00a0=8;<\/li>\n<li><\/li>\n<li>NET\u00a0&#8220;CLOCK&#8221;\u00a0LOC\u00a0=\u00a0&#8220;B4&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVTTL\u00a0|\u00a0SLEW\u00a0=\u00a0SLOW\u00a0|\u00a0DRIVE\u00a0=\u00a06\u00a0;<\/li>\n<li>NET\u00a0&#8220;PS&#8221;\u00a0LOC\u00a0=\u00a0&#8220;A4&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVTTL\u00a0|\u00a0SLEW\u00a0=\u00a0SLOW\u00a0|\u00a0DRIVE\u00a0=\u00a06\u00a0;<\/li>\n<li>NET\u00a0&#8220;KUMANDA&#8221;\u00a0LOC\u00a0=\u00a0&#8220;C5&#8221;\u00a0|\u00a0IOSTANDARD\u00a0=\u00a0LVTTL;<\/li>\n<\/ol>\n<\/div>\n<p><em>LOC<\/em> de\u011ferlerine dikkat edecek olursan\u0131z kumanday\u0131 J1 ba\u011flant\u0131 noktas\u0131na ba\u011flad\u0131\u011f\u0131m\u0131 g\u00f6receksiniz. Ba\u015fka bir ba\u011flant\u0131 noktas\u0131 da kullanabilirisiniz.<\/p>\n<p>Tasar\u0131m\u0131m\u0131z\u0131 ger\u00e7ekledikten sonra Spartan 3E Starter Kit\u2019e y\u00fckleyelim. Kumandam\u0131z\u0131 da ba\u011fland\u0131ktan sonra kumandam\u0131z\u0131 deneyebiliriz. A\u015fa\u011f\u0131da kurdu\u011fum sistemin resmini bulabilirsiniz.<\/p>\n<p><a title=\"verilog_6_6.jpg\" href=\"http:\/\/web.archive.org\/web\/20100106014732\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/verilog_6_6.jpg\"><img decoding=\"async\" alt=\"verilog_6_6.jpg\" src=\"http:\/\/web.archive.org\/web\/20100106014732im_\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/verilog_6_6.kucukresim.jpg\" \/><\/a><\/p>\n<p><strong>4- Vidyo:<\/strong><\/p>\n<p><a href=\"http:\/\/www.youtube.com\/watch?v=BF_yt7tKaJY\" target=\"_blank\">Vidyo 1 <\/a><\/p>\n<p><strong>5- Son:<\/strong><\/p>\n<p>Uygulamam\u0131z\u0131n sonuna geldik. Sorular\u0131n\u0131z\u0131 ve \u00f6nerilerinizi l\u00fctfen benimle payla\u015f\u0131n. Bu uygulama asl\u0131nda Oyun Konsolu projemin bir par\u00e7as\u0131. G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi tek ba\u015f\u0131na \u00e7ok bir \u015fey ifade etmiyor ama di\u011fer bile\u015fenler de haz\u0131r oldu\u011funda ortaya bir oyun konsolu \u00e7\u0131kacak.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1- Giri\u015f: Bu yaz\u0131da elimdeki bir NES (Nintendo Entertainment System &#8211; 1983) kumanday\u0131 Spartan 3E Starter Kit\u2019 e ba\u011flay\u0131p kullanaca\u011f\u0131m. Mesela bas\u0131lan tu\u015flara g\u00f6re Starter Kit \u00fczerinde farkl\u0131&#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-77","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\/77","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=77"}],"version-history":[{"count":1,"href":"http:\/\/18.193.70.38\/index.php?rest_route=\/wp\/v2\/posts\/77\/revisions"}],"predecessor-version":[{"id":1146,"href":"http:\/\/18.193.70.38\/index.php?rest_route=\/wp\/v2\/posts\/77\/revisions\/1146"}],"wp:attachment":[{"href":"http:\/\/18.193.70.38\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=77"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/18.193.70.38\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=77"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/18.193.70.38\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=77"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}