{"id":85,"date":"2013-10-15T13:27:01","date_gmt":"2013-10-15T10:27:01","guid":{"rendered":"http:\/\/www.scozturk.com\/?p=85"},"modified":"2025-08-27T10:17:00","modified_gmt":"2025-08-27T10:17:00","slug":"xilinx-ise-nedir-nasil-kullanilir","status":"publish","type":"post","link":"http:\/\/18.193.70.38\/?p=85&lang=tr","title":{"rendered":"Xilinx ISE nedir? Nas\u0131l kullan\u0131l\u0131r?"},"content":{"rendered":"<p align=\"justify\"><em><strong>1- Xilinx ISE Webpack Nedir?<\/strong><\/em><\/p>\n<p align=\"justify\">Xilinx ISE Webpack Xilinx firmas\u0131n\u0131n bedava da\u011f\u0131tt\u0131\u011f\u0131 ve Xilinx FPGAlar\u0131n\u0131n \u00fczerinde \u00e7al\u0131\u015f\u0131lmas\u0131n\u0131 sa\u011flayan bir yaz\u0131l\u0131md\u0131r. Verilog veya VHDL ile yaz\u0131lan kod sentezlenebilir ve Webpack arac\u0131l\u0131\u011f\u0131yla FPGA geli\u015ftirme ortam\u0131na y\u00fcklenebilir.<\/p>\n<p align=\"justify\">Xilinx ISE Webpack yaz\u0131l\u0131m\u0131n\u0131 indirmek i\u00e7in <a href=\"http:\/\/web.archive.org\/web\/20101123162448\/http:\/\/www.xilinx.com\/ise\/logic_design_prod\/webpack.htm\">http:\/\/www.xilinx.com\/ise\/logic_design_prod\/webpack.htm<\/a> adresine gitmeniz ve<br \/>\nkaydolman\u0131z gerekmektedir. Kay\u0131t olduktan sonra yaz\u0131l\u0131m\u0131 indirip bilgisayar\u0131n\u0131za<br \/>\nkurabilirsiniz.<\/p>\n<p align=\"justify\">Yaz\u0131l\u0131m\u0131 bilgisayar\u0131n\u0131za kurduktan sonra gerekli ISE Webpack yaz\u0131l\u0131m g\u00fcncellemelerini yapmay\u0131 unutmay\u0131n\u0131z.<\/p>\n<p align=\"justify\"><strong><em>2- Xilinx ISE Webpack Kullan\u0131m\u0131 &#8211; Sentez<\/em><\/strong><\/p>\n<p align=\"justify\">Yaz\u0131l\u0131m\u0131n kullan\u0131m\u0131n\u0131 g\u00f6stermenin en iyi (ve kolay) y\u00f6ntemi bir \u00f6rnek olaca\u011f\u0131ndan bu b\u00f6l\u00fcmde Verilog dili ile bir kod yaz\u0131p sentezleyece\u011fiz. Yazd\u0131\u011f\u0131m\u0131z kod Spartan S3E Starter Kit \u00fczerindeki LED\u2019leri a\u00e7\u0131p kapamaya yarayacak.<\/p>\n<p align=\"justify\">\n<p align=\"justify\">\u00d6ncelikle bilgisayar\u0131m\u0131za kurdu\u011fumuz ISE Webpack yaz\u0131l\u0131m\u0131n\u0131 a\u00e7al\u0131m. A\u015fa\u011f\u0131daki pencere ile kar\u015f\u0131la\u015faca\u011f\u0131z:<\/p>\n<p><a title=\"s0_3_1.JPG\" href=\"http:\/\/web.archive.org\/web\/20101123162448\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_1.JPG\"><img decoding=\"async\" alt=\"s0_3_1.JPG\" src=\"http:\/\/web.archive.org\/web\/20101123162448im_\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_1.kucukresim.JPG\" \/><\/a><\/p>\n<p align=\"justify\">Herhangi bir kod yazmadan \u00f6nce bir proje olu\u015fturmam\u0131z gerekmektedir. Bunu yapmak i\u00e7in pencerenin yukar\u0131s\u0131ndaki men\u00fcden <em>File -&gt; New Project<\/em> i se\u00e7elim. Se\u00e7ti\u011fimiz zaman a\u015fa\u011f\u0131daki pencere ile kar\u015f\u0131la\u015faca\u011f\u0131z.<\/p>\n<p align=\"justify\"><a title=\"s0_3_2.JPG\" href=\"http:\/\/web.archive.org\/web\/20101123162448\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_2.JPG\"><img decoding=\"async\" alt=\"s0_3_2.JPG\" src=\"http:\/\/web.archive.org\/web\/20101123162448im_\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_2.kucukresim.JPG\" \/><\/a><\/p>\n<p align=\"justify\">Bu pencerede <em>Project Name <\/em>kutucu\u011funa istedi\u011fimiz proje ad\u0131n\u0131 girelim. Ard\u0131ndan sa\u011fdaki <em>Project Location <\/em>kutucu\u011funa da proje dosyalar\u0131m\u0131z\u0131 konumland\u0131raca\u011f\u0131m\u0131z klas\u00f6r\u00fc belirtelim. <em>Top-Level Source Type<\/em> i\u00e7in ise <em>HDL<\/em>\u2018i se\u00e7elim. \u015eimdi <em>Next\u2019<\/em>e basabiliriz. A\u015fa\u011f\u0131daki pencere ile kar\u015f\u0131la\u015faca\u011f\u0131z:<\/p>\n<p><a title=\"s0_3_3.JPG\" href=\"http:\/\/web.archive.org\/web\/20101123162448\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_3.JPG\"><img decoding=\"async\" alt=\"s0_3_3.JPG\" src=\"http:\/\/web.archive.org\/web\/20101123162448im_\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_3.kucukresim.JPG\" \/><\/a> Bu pencerede kulland\u0131\u011f\u0131m\u0131z FPGA\u2019n\u0131n \u00f6zelliklerini se\u00e7ece\u011fiz. <em>Product Category<\/em> olarak <em>General Purpose <\/em>se\u00e7elim. Bu se\u00e7imi yapmam\u0131z\u0131n nedeni Xilinx firmas\u0131n\u0131n <em>Spartan 3E<\/em>\u2018yi <em><br \/>\ngeneral purpose<\/em> kategorisine koymas\u0131d\u0131r. Ard\u0131ndan <em>Family<\/em> olarak <em>Spartan3E<\/em>\u2018yi se\u00e7elim. E\u011fer elinizde ba\u015fka bir FPGA var ise uygun olan FPGA\u2019y\u0131 listeden se\u00e7iniz. Ard\u0131ndan <em>Device<\/em> kutucu\u011funa <em>Spartan3E<\/em>\u2018nin hangi tipini kulland\u0131\u011f\u0131m\u0131z\u0131 yazmam\u0131z gerekiyor. <em>S3E Starter Kit<\/em> \u00fczerinde bulunan <em>S3E XC3S500E<\/em>\u2018dir. Bu y\u00fczden bu kutucuk i\u00e7in <em>XC3S500E <\/em>se\u00e7imini yapal\u0131m. <em>Package<\/em> kutucu\u011funa ise <em>FG320<\/em> girelim. E\u011fer elinizdeki <em>S3E Starter Kit<\/em> de\u011filse bu se\u00e7imi de farkl\u0131 yapman\u0131z gerekebilir. <em>Speed<\/em> olarak ise <em>-4<\/em> se\u00e7imini yapal\u0131m. <em>Synthesis<br \/>\ntool<\/em> olarak <em>Webpack<\/em> ile beraber gelen <em>XST (VHDL\/Verilog) <\/em>se\u00e7imini yapal\u0131m. E\u011fer elinizde farkl\u0131 bir sentez program\u0131 var ise onu da kullanman\u0131z m\u00fcmk\u00fcn. Simulator olarak da yine <em>Webpack<\/em> ile beraber gelen <em>ISE Simulator (VHDL\/Verilog)<\/em>\u2018u se\u00e7elim. <em>Preferred Language<\/em> olarak ise <em>Verilog<\/em> se\u00e7elim. Di\u011fer ayarlar\u0131 da yukar\u0131daki resimdeki gibi yapt\u0131ktan sonra <em>Next<\/em>\u2018e basal\u0131m. A\u015fa\u011f\u0131daki pencere ile kar\u015f\u0131la\u015f\u0131yoruz:<\/p>\n<p align=\"center\">\n<p><a title=\"s0_3_4.JPG\" href=\"http:\/\/web.archive.org\/web\/20101123162448\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_4.JPG\"><img decoding=\"async\" alt=\"s0_3_4.JPG\" src=\"http:\/\/web.archive.org\/web\/20101123162448im_\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_4.kucukresim.JPG\" \/><\/a><\/p>\n<p align=\"justify\">Bu pencere bizim proje dosyalar\u0131m\u0131z i\u00e7in<br \/>\nbir kaynak dosya olu\u015fturmam\u0131z\u0131 sa\u011fl\u0131yor. E\u011fer bir \u015fey de\u011fi\u015ftirmeden <em>Next<\/em><br \/>\nderseniz kaynak dosyalar\u0131n\u0131z\u0131 sonradan da olu\u015fturabilirsiniz. Biz burada \u00f6rnek<br \/>\nte\u015fkil etmesi a\u00e7\u0131s\u0131ndan yukar\u0131daki <em>New Source\u2026<\/em> d\u00fc\u011fmesine basarak kaynak<br \/>\ndosyam\u0131z\u0131 olu\u015ftural\u0131m. A\u015fa\u011f\u0131daki pencere ile kar\u015f\u0131la\u015f\u0131yoruz:<\/p>\n<p><a title=\"s0_3_5.JPG\" href=\"http:\/\/web.archive.org\/web\/20101123162448\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_5.JPG\"><img decoding=\"async\" alt=\"s0_3_5.JPG\" src=\"http:\/\/web.archive.org\/web\/20101123162448im_\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_5.kucukresim.JPG\" align=\"left\" \/><\/a><\/p>\n<p align=\"justify\">Soldaki listeden <em>Verilog Module<\/em>\u2018\u00fc se\u00e7tikten sonra <em>File Name<\/em> kutucu\u011funa dosyam\u0131z\u0131n ad\u0131n\u0131 girelim. Ard\u0131ndan da dosyam\u0131z\u0131n konumunu <em>Location<\/em> kutucu\u011funa girelim (e\u011fer bir terslik yok ise zaten sizin i\u00e7in proje klas\u00f6r\u00fcn\u00fcz\u00fcn adresi bu kutucu\u011fa otomatik olarak yaz\u0131lacakt\u0131r). Bu penceredeki Next\u2019 et\u0131klayal\u0131m ve bir sonraki pencereye ge\u00e7elim:<\/p>\n<p align=\"justify\"><a title=\"s0_3_6.JPG\" href=\"http:\/\/web.archive.org\/web\/20101123162448\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_6.JPG\"><img decoding=\"async\" alt=\"s0_3_6.JPG\" src=\"http:\/\/web.archive.org\/web\/20101123162448im_\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_6.kucukresim.JPG\" \/><\/a><\/p>\n<p align=\"justify\">Bu pencere yard\u0131m\u0131yla tasar\u0131m\u0131m\u0131zdaki<br \/>\ni\u011fneleri belirtebiliyoruz. Bu a\u015famada bo\u015f b\u0131rak\u0131p ge\u00e7memizin herhangi bir<br \/>\nsak\u0131ncas\u0131 yok ama yine \u00f6rnek te\u015fkil etmesi i\u00e7in bu pencerede saat darbemizi ve<br \/>\nLED \u00e7\u0131k\u0131\u015f\u0131m\u0131z\u0131 belirtelim. \u0130lk olarak saat darbesi i\u011fnesini belirtelim. Bunun<br \/>\ni\u00e7in <em>Port Name<\/em> kutucu\u011funa <em>SAAT<\/em> yazal\u0131m. \u0130stedi\u011finiz ba\u015fka bir ad\u0131<br \/>\nda girebilirsizin. <em>Direction<\/em> yani iletim y\u00f6n\u00fc i\u00e7in<em> input<\/em> yani<\/p>\n<p><em>girdi<\/em>\u2018yi se\u00e7elim. Di\u011fer ayarlar\u0131 (<em>Bus, MSB,LSB<\/em>) bo\u015f b\u0131rakabiliriz.<br \/>\nArd\u0131ndan kullanaca\u011f\u0131m\u0131z LED\u2019in i\u011fnesini belirtelim. Bunun i\u00e7in <em>Port Name<\/em>\u2018e<br \/>\nLED yazal\u0131m ve <em>Direction<\/em> olarak <em>output<\/em> yani <em>\u00e7\u0131kt\u0131<\/em>\u2018y\u0131<br \/>\nse\u00e7elim. Yine di\u011fer alanlar\u0131 bo\u015f b\u0131rakabiliriz. Yukar\u0131daki anlat\u0131lanlar\u0131<br \/>\nyapt\u0131\u011f\u0131m\u0131zda penceremiz a\u015fa\u011f\u0131daki hali al\u0131yor.<\/p>\n<p><a title=\"s0_3_7.JPG\" href=\"http:\/\/web.archive.org\/web\/20101123162448\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_7.JPG\"><img decoding=\"async\" alt=\"s0_3_7.JPG\" src=\"http:\/\/web.archive.org\/web\/20101123162448im_\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_7.kucukresim.JPG\" \/><\/a><\/p>\n<p align=\"justify\">\u015eimdi <em>Next<\/em>\u2018e t\u0131klayarak di\u011fer<br \/>\npencereye ge\u00e7elim.<\/p>\n<p align=\"justify\"><a title=\"s0_3_8.JPG\" href=\"http:\/\/web.archive.org\/web\/20101123162448\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_8.JPG\"><img decoding=\"async\" alt=\"s0_3_8.JPG\" src=\"http:\/\/web.archive.org\/web\/20101123162448im_\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_8.kucukresim.JPG\" \/><\/a><\/p>\n<p align=\"justify\">Bu pencerede az \u00f6nce olu\u015fturdu\u011fumuz kaynak<br \/>\ndosyam\u0131z ve kap\u0131 bilgileri hakk\u0131nda bilgi veriliyor. <em>Finish<\/em>\u2018e<br \/>\nbasabiliriz. <em>Finish<\/em>\u2018e bast\u0131\u011f\u0131m\u0131zda e\u011fer proje klas\u00f6r\u00fcn\u00fcz ger\u00e7ekte yok ise<br \/>\nolmad\u0131\u011f\u0131na ama olu\u015fturulaca\u011f\u0131na dair bir uyar\u0131 alacaks\u0131n\u0131z. Aksi takdirde<br \/>\nherhangi bir uyar\u0131 almayacaks\u0131n\u0131z. A\u015fa\u011f\u0131daki pencere ile kar\u015f\u0131la\u015f\u0131yoruz:<\/p>\n<p><a title=\"s0_3_9.JPG\" href=\"http:\/\/web.archive.org\/web\/20101123162448\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_9.JPG\"><img decoding=\"async\" alt=\"s0_3_9.JPG\" src=\"http:\/\/web.archive.org\/web\/20101123162448im_\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_9.kucukresim.JPG\" \/><\/a><\/p>\n<p align=\"justify\">Olu\u015fturmu\u015f oldu\u011fumuz Verilog kayna\u011f\u0131n\u0131 listede g\u00f6rebiliyoruz. Bu \u00f6rnekte daha fazla mod\u00fcl olu\u015fturmak istemedi\u011fimizden<\/p>\n<p><em>Next<\/em>\u2018e basarak bir sonraki pencereye ge\u00e7elim.<\/p>\n<p><a title=\"s0_3_10.JPG\" href=\"http:\/\/web.archive.org\/web\/20101123162448\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_10.JPG\"><img decoding=\"async\" alt=\"s0_3_10.JPG\" src=\"http:\/\/web.archive.org\/web\/20101123162448im_\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_10.kucukresim.JPG\" \/><\/a><\/p>\n<p align=\"justify\">Yukar\u0131daki pencere ile kar\u015f\u0131la\u015f\u0131yoruz.<br \/>\nE\u011fer \u00f6nceden olu\u015fturdu\u011funuz bir kaynak dosyas\u0131n\u0131 olu\u015fturmakta oldu\u011funuz projeye<br \/>\neklemek isterseniz bunu buradan yapabilirsiniz. Biz bu \u00f6rnekte bunu yapmayaca\u011f\u0131z<br \/>\nve Next\u2019e basaca\u011f\u0131z. Projenize yeni dosya ekleme ve var olan dosya ekleme<br \/>\ni\u015flemlerini sorunsuz olarak projenizi olu\u015fturduktan sonra da yapabilirsiniz,<br \/>\nunuttu\u011funuz herhangi bir \u015fey var ise panik yapmay\u0131n sonra da ekleyebilirsiniz.<br \/>\nNext\u2019e t\u0131klayal\u0131m.<\/p>\n<p><a title=\"s0_3_11.JPG\" href=\"http:\/\/web.archive.org\/web\/20101123162448\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_11.JPG\"><img decoding=\"async\" alt=\"s0_3_11.JPG\" src=\"http:\/\/web.archive.org\/web\/20101123162448im_\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_11.kucukresim.JPG\" \/><\/a><\/p>\n<p align=\"justify\">Yukar\u0131daki pencerede projemizin genel<br \/>\n\u00f6zellikleri hakk\u0131nda bilgilendiriliyoruz. E\u011fer \u00f6nceki a\u015famalarda yapt\u0131\u011f\u0131n\u0131z<br \/>\nayarlardan emin de\u011filseniz bu pencere yard\u0131m\u0131yla bunlar\u0131 kontrol edebilirsiniz.<br \/>\n<em>Finish<\/em>\u2018e t\u0131klayal\u0131m. Ana penceremiz a\u015fa\u011f\u0131daki hali al\u0131yor:<\/p>\n<p><a title=\"s0_3_12.JPG\" href=\"http:\/\/web.archive.org\/web\/20101123162448\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_12.JPG\"><img decoding=\"async\" alt=\"s0_3_12.JPG\" src=\"http:\/\/web.archive.org\/web\/20101123162448im_\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_12.kucukresim.JPG\" \/><\/a><\/p>\n<p align=\"justify\">Yukar\u0131daki resimde 1 ile i\u015faretlenmi\u015f k\u0131s\u0131mda proje dosyalar\u0131n\u0131z\u0131 ve dosyalar\u0131n\u0131z aras\u0131ndaki ba\u011flant\u0131lar\u0131 g\u00f6rebilirsiniz. E\u011fer projenizin genel \u00f6zelliklerinde de\u011fi\u015fiklik yapman\u0131z gerekirse <em>xc3s500e-4fg320<\/em> se\u00e7ene\u011fine sa\u011f t\u0131klay\u0131p <em>Properties<\/em>\u2018i se\u00e7ip ayarlar\u0131n\u0131z\u0131 de\u011fi\u015ftirebilirsiniz.<\/p>\n<p align=\"justify\">Resimde 2 ile i\u015faretlenmi\u015f b\u00f6l\u00fcmde ise 1\u2032de se\u00e7ti\u011finiz dosya \u00fczerinde yapabilece\u011finiz i\u015flemler listelenmektedir. Buraya biraz sonra d\u00f6nece\u011fiz.<\/p>\n<p align=\"justify\">Resimde 3 ile i\u015faretlenmi\u015f k\u0131s\u0131m ise dosyan\u0131z\u0131 i\u00e7eri\u011finin g\u00f6r\u00fcnt\u00fclendi\u011fi yerdir. Dikkat edecek olursan\u0131z \u015fu an <em>Design Summary<\/em> dosyas\u0131n\u0131 g\u00f6rmekteyiz. Bu <em>Webpack ISE<\/em>\u2018\u0131n bize otomatik olarak olu\u015fturdu\u011fu bir penceredir. Bu pencerede tasar\u0131m\u0131m\u0131z hakk\u0131nda detayl\u0131<br \/>\nbilgi edinebilece\u011fiz. Buraya da az sonra geri d\u00f6nece\u011fiz.<\/p>\n<p align=\"justify\">\u201cana.v\u201d dosyas\u0131n\u0131 se\u00e7elim. Penceremiz a\u015fa\u011f\u0131daki \u015fekli al\u0131yor.<\/p>\n<p><a title=\"s0_3_13.JPG\" href=\"http:\/\/web.archive.org\/web\/20101123162448\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_13.JPG\"><img decoding=\"async\" alt=\"s0_3_13.JPG\" src=\"http:\/\/web.archive.org\/web\/20101123162448im_\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_13.kucukresim.JPG\" \/><\/a><\/p>\n<p align=\"justify\">G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi <em>Webpack<\/em> otomatik<br \/>\nolarak girdi \u00e7\u0131kt\u0131 kap\u0131lar\u0131m\u0131z\u0131 ayarlam\u0131\u015f ve mod\u00fcl tan\u0131mlamam\u0131z\u0131 yapm\u0131\u015f. Bunun<br \/>\nnedeni projeyi olu\u015ftururken gerekli bilgileri girmemizdir. Girmeseydik bize bo\u015f<br \/>\nbir dosya verecekti. Yorum sat\u0131rlar\u0131n\u0131 silelim ve dosyay\u0131 kaydedelim. Ard\u0131ndan<br \/>\nsol \u00fcstteki k\u0131s\u0131mdan <em>ana<\/em>\u2018y\u0131 se\u00e7elim. Sol alttaki k\u0131sm\u0131n otomatik olarak<br \/>\nde\u011fi\u015fti\u011fini g\u00f6rece\u011fiz:<\/p>\n<p><a title=\"s0_3_14.JPG\" href=\"http:\/\/web.archive.org\/web\/20101123162448\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_14.JPG\"><img decoding=\"async\" alt=\"s0_3_14.JPG\" src=\"http:\/\/web.archive.org\/web\/20101123162448im_\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_14.kucukresim.JPG\" \/><\/a><\/p>\n<p align=\"justify\"><em>User Constraints, Synthesize &#8211; XST,<br \/>\nImlement Design, Generate Programming File<\/em> gibi se\u00e7eneklerin \u00e7\u0131kt\u0131\u011f\u0131n\u0131<br \/>\ng\u00f6r\u00fcyoruz. Kodumuzu sentezleyebilmek i\u00e7in <em>Synthesize &#8211; XST<\/em>\u2018ye \u00e7ift<br \/>\nt\u0131klamam\u0131z yeterli olacakt\u0131r. Bu a\u015famada t\u0131klamam\u0131z\u0131n herhangi bir anlam\u0131 yok<br \/>\n\u00e7\u00fcnk\u00fc mod\u00fcl\u00fcm\u00fcz herhangi bir \u015fey yapm\u0131yor. Birka\u00e7 sat\u0131r kod yazmaya ge\u00e7elim.<\/p>\n<p align=\"justify\">Bir tane yazma\u00e7 tan\u0131mlayal\u0131m. Bu yazmac\u0131 saya\u00e7 olarak kullanaca\u011f\u0131z. Kodumuz a\u015fa\u011f\u0131daki \u015fekli al\u0131yor:<\/p>\n<p align=\"justify\">\n<div>\n<ol start=\"1\">\n<li>&lt;\/p&gt;<\/li>\n<li><\/li>\n<li>&lt;p\u00a0align=&#8221;justify&#8221;&gt;\u00a0&lt;code&gt;`timescale\u00a01ns\u00a0\/\u00a01ps&lt;\/code&gt;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0module\u00a0ana(SAAT,\u00a0LED);<\/li>\n<li>\/\/\u00a0girdi\u00a0kap\u0131lar\u0131<\/li>\n<li>input\u00a0SAAT;<\/li>\n<li>\/\/\u00a0\u00e7\u0131kt\u0131\u00a0kap\u0131lar\u0131<\/li>\n<li>output\u00a0LED;\/\/\u00a0yazma\u00e7lar<\/li>\n<li>reg\u00a0[25:0]\u00a0sayac;endmodule<\/li>\n<li>&lt;p\u00a0align=&#8221;justify&#8221;&gt;<\/li>\n<\/ol>\n<\/div>\n<table id=\"table1\" width=\"1\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td width=\"100%\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p align=\"justify\">G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi sayac\u0131m\u0131z\u0131 26 bitlik<br \/>\ntan\u0131mlad\u0131k. Bunu yapmam\u0131z\u0131n nedeni sayac\u0131m\u0131z\u0131n 50 000 000 say\u0131s\u0131na kadar<br \/>\nsayd\u0131rmak istememizdir. Bunu yapmam\u0131z\u0131n nedeni ise saat darbemizin 50Mhz<br \/>\nolmas\u0131d\u0131r. \u015eimdi de yazmac\u0131m\u0131z\u0131n ilk de\u011ferini belirtmek i\u00e7in <em>initial<\/em><br \/>\nkomutunu kullanal\u0131m.<\/p>\n<p align=\"justify\">\n<div>\n<ol start=\"1\">\n<li>&lt;\/p&gt;<\/li>\n<li>&lt;p\u00a0align=&#8221;justify&#8221;&gt;\u00a0&lt;\/p&gt;<\/li>\n<li>&lt;code&gt;`timescale\u00a01ns\u00a0\/\u00a01ps&lt;\/code&gt;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0module\u00a0ana(SAAT,\u00a0LED);<\/li>\n<li>\/\/\u00a0girdi\u00a0kap\u0131lar\u0131<\/li>\n<li>input\u00a0SAAT;\/\/\u00a0\u00e7\u0131kt\u0131\u00a0kap\u0131lar\u0131<\/li>\n<li>output\u00a0LED;<\/li>\n<li>\/\/\u00a0yazma\u00e7lar<\/li>\n<li>reg\u00a0[25:0]\u00a0sayac;\/\/\u00a0yazma\u00e7lara\u00a0ilk\u00a0de\u011ferler\u015f\u00a0vereliminitial\u00a0begin<\/li>\n<li>sayac\u00a0&lt;=\u00a026&#8217;b00000000000000000000000000;<\/li>\n<li>end<\/li>\n<li><\/li>\n<li>endmodule<\/li>\n<li>&lt;p\u00a0align=&#8221;justify&#8221;&gt;<\/li>\n<\/ol>\n<\/div>\n<table id=\"table2\" width=\"2\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td width=\"100%\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p align=\"justify\">\u015eimdi de kodumuzun as\u0131l i\u015flevli k\u0131sm\u0131n\u0131<br \/>\nkodlayal\u0131m. \u00d6ncelikle her pozitif saat darbesinde bir bir i\u015flem yap\u0131lmas\u0131<br \/>\ngerekti\u011fini belirtmek i\u00e7in <em>always<\/em> komutunu <em>posedge <\/em>ile beraber<br \/>\nkullanal\u0131m.<\/p>\n<p align=\"justify\">\n<div>\n<ol start=\"1\">\n<li>&lt;\/p&gt;<\/li>\n<li>&lt;p\u00a0align=&#8221;justify&#8221;&gt;\u00a0&lt;\/p&gt;<\/li>\n<li>&lt;code&gt;`timescale\u00a01ns\u00a0\/\u00a01ps&lt;\/code&gt;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0module\u00a0ana(SAAT,\u00a0LED);<\/li>\n<li>\/\/\u00a0girdi\u00a0kap\u0131lar\u0131<\/li>\n<li>input\u00a0SAAT;<\/li>\n<li>\/\/\u00a0\u00e7\u0131kt\u0131\u00a0kap\u0131lar\u0131<\/li>\n<li>output\u00a0LED;\/\/\u00a0yazma\u00e7lar<\/li>\n<li>reg\u00a0[25:0]\u00a0sayac;\/\/\u00a0yazma\u00e7lara\u00a0ilk\u00a0de\u011ferler\u015f\u00a0verelim<\/li>\n<li>initial\u00a0begin<\/li>\n<li>sayac\u00a0&lt;=\u00a026&#8217;b00000000000000000000000000;end\/\/\u00a0her\u00a0pozitif\u00a0saat\u00a0kenar\u0131nda\u00a0tetiklen<\/li>\n<li>always\u00a0@\u00a0(posedge\u00a0SAAT)\u00a0begin<\/li>\n<li>\/\/\u00a0Kodumuzu\u00a0buraya\u00a0yazaca\u011f\u0131z<\/li>\n<li>end<\/li>\n<li><\/li>\n<li>endmodule<\/li>\n<li>&lt;p\u00a0align=&#8221;justify&#8221;&gt;<\/li>\n<\/ol>\n<\/div>\n<table id=\"table3\" width=\"2\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td width=\"100%\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p align=\"justify\">\u015eimdi de<em> always<\/em> blo\u011funun i\u00e7ine sayac\u0131m\u0131z\u0131 ve kar\u015f\u0131la\u015ft\u0131rmalar\u0131m\u0131z\u0131 kodlayal\u0131m.<\/p>\n<table id=\"table4\" width=\"453\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td width=\"100%\"><code>`timescale 1ns \/ 1ps<\/code> module ana(SAAT, LED);<br \/>\n\/\/ girdi kap\u0131lar\u0131<br \/>\ninput SAAT;\/\/ \u00e7\u0131kt\u0131 kap\u0131lar\u0131<br \/>\noutput LED;<br \/>\n\/\/ yazma\u00e7lar<br \/>\nreg [25:0] sayac;\/\/ yazma\u00e7lara ilk de\u011ferler\u015f vereliminitial begin<br \/>\nsayac &lt;= 26\u2032b00000000000000000000000000;<br \/>\nend\/\/ her pozitif saat kenar\u0131nda tetiklen<br \/>\nalways @ (posedge SAAT) beginif(sayac == 26\u2032b10111110101111000010000000) begin \/\/ 50M e ula\u015ft\u0131k m\u0131?<br \/>\n\/\/ evet sayac\u0131 s\u0131f\u0131rla<br \/>\nsayac &lt;= 0;<br \/>\n\/\/ kodumuzu buraya yazaca\u011f\u0131z<br \/>\n\/\/<br \/>\n\/\/end<br \/>\nelse begin \/\/ 50M e ula\u015famad\u0131k o zaman artt\u0131rmaya devam<br \/>\n\/\/ sayac de\u011ferini artt\u0131r<br \/>\nsayac &lt;= sayac + 1;<br \/>\nend<br \/>\nendendmodule<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p align=\"justify\">Yukar\u0131daki kod ile sayac\u0131n 50000000<br \/>\nde\u011ferine ula\u015f\u0131p ula\u015fmad\u0131\u011f\u0131n\u0131 kontrol ediyoruz ve uygun i\u015flemleri<br \/>\nyapt\u0131r\u0131yoruz. \u015eimdi LED\u2019imizi a\u00e7\u0131p kapayacak kodu yazal\u0131m. LED \u00e7\u0131k\u0131\u015f<br \/>\ni\u011fnesine direk olarak veri yazd\u0131ramad\u0131\u011f\u0131m\u0131zdan bir yazma\u00e7 daha tan\u0131mlayal\u0131m<br \/>\nve bu yazmac\u0131 LED\u2019e ba\u011flayal\u0131m. Yazmac\u0131m\u0131z\u0131n ad\u0131 <em>ledim<\/em> olsun. Her<br \/>\n50000000\u2032da bir <em>ledim<\/em> yazmac\u0131 terslensin. Di\u011fer saya\u00e7 de\u011ferlerinde<br \/>\nde\u011feri sabit kals\u0131n.<\/p>\n<table id=\"table5\" width=\"443\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td width=\"100%\"><code>`timescale 1ns \/ 1ps<\/code> module ana(SAAT, LED);<br \/>\n\/\/ girdi kap\u0131lar\u0131<br \/>\ninput SAAT;\/\/ \u00e7\u0131kt\u0131 kap\u0131lar\u0131<br \/>\noutput LED;<br \/>\n\/\/ yazma\u00e7lar<br \/>\nreg [25:0] sayac;<br \/>\nreg ledim;\/\/ yazma\u00e7lara ilk de\u011ferler\u015f verelim<br \/>\ninitial begin<br \/>\nsayac &lt;= 26\u2032b00000000000000000000000000;<br \/>\nend\/\/ her pozitif saat kenar\u0131nda tetiklenalways @ (posedge SAAT) begin<br \/>\nif(sayac == 26\u2032b10111110101111000010000000) begin \/\/ 50M e ula\u015ft\u0131k m\u0131?<br \/>\n\/\/ evet sayac\u0131 s\u0131f\u0131rla<br \/>\nsayac &lt;= 0;<br \/>\n\/\/ ledim yazmac\u0131n\u0131 tersle<br \/>\nledim &lt;= ~ledim;end<br \/>\nelse begin \/\/ 50M e ula\u015famad\u0131k o zaman artt\u0131rmaya devam<br \/>\n\/\/ sayac de\u011ferini artt\u0131r<br \/>\nsayac &lt;= sayac + 1;<br \/>\n\/\/ ledim yazmac\u0131 de\u011ferini korusun<br \/>\nledim &lt;= ledim;end<br \/>\nendendmodule<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p align=\"justify\">\u015eimdi son olarak yapmam\u0131z gereken <em>LED<\/em><br \/>\n\u00e7\u0131k\u0131\u015f\u0131na <em>ledim<\/em> yazmac\u0131n\u0131 ba\u011flamak. Bunun i\u00e7in <em>assign<\/em> komutunu<br \/>\nkullanal\u0131m.<\/p>\n<table id=\"table6\" width=\"444\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td width=\"100%\"><code>`timescale 1ns \/ 1ps<\/code> module ana(SAT, LED);<br \/>\n\/\/ girdi kap\u0131lar\u0131<br \/>\ninput SAAT;\/\/ \u00e7\u0131kt\u0131 kap\u0131lar\u0131<br \/>\noutput LED;<br \/>\n\/\/ yazma\u00e7lar<br \/>\nreg [25:0] sayac;<br \/>\nreg ledim;\/\/ yazma\u00e7lara ilk de\u011ferler\u015f verelim<br \/>\ninitial begin<br \/>\nsayac &lt;= 26\u2032b00000000000000000000000000;<br \/>\nend\/\/ her pozitif saat kenar\u0131nda tetiklenalways @ (posedge SAAT) begin<br \/>\nif(sayac == 26\u2032b10111110101111000010000000) begin \/\/ 50M e ula\u015ft\u0131k m\u0131?<br \/>\n\/\/ evet sayac\u0131 s\u0131f\u0131rla<br \/>\nsayac &lt;= 0;<br \/>\n\/\/ ledim yazmac\u0131n\u0131 tersle<br \/>\nledim &lt;= ~ledim;end<br \/>\nelse begin \/\/ 50M e ula\u015famad\u0131k o zaman artt\u0131rmaya devam<br \/>\n\/\/ sayac de\u011ferini artt\u0131r<br \/>\nsayac &lt;= sayac + 1;<br \/>\n\/\/ ledim yazmac\u0131 de\u011ferini korusun<br \/>\nledim &lt;= ledim;end<br \/>\nend\/\/ LED \u00e7\u0131k\u0131\u015f\u0131na ledim yazmac\u0131n\u0131 ba\u011fla<br \/>\nassign LED = ledim;endmodule<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p align=\"justify\">Kodumuz \u015fu an haz\u0131r. Herhangi bir hata<br \/>\nolup olmad\u0131\u011f\u0131n\u0131 kontrol edebilmek i\u00e7in kodumuzu sentezleyelim. Bunun i\u00e7in<br \/>\nsoldaki listeden <em>Synthesize<\/em>\u2018a \u00e7ift t\u0131klayal\u0131m (yada sa\u011f t\u0131klay\u0131p <em><br \/>\nRun<\/em>\u2018\u0131 se\u00e7elim). A\u015fa\u011f\u0131daki resimde t\u0131klamam\u0131z gereken se\u00e7enek k\u0131rm\u0131z\u0131 ile<br \/>\n\u00e7er\u00e7evelenmi\u015ftir.<\/p>\n<p><a title=\"s0_3_15.JPG\" href=\"http:\/\/web.archive.org\/web\/20101123162448\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_15.JPG\"><img decoding=\"async\" alt=\"s0_3_15.JPG\" src=\"http:\/\/web.archive.org\/web\/20101123162448im_\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_15.kucukresim.JPG\" \/><\/a><\/p>\n<p align=\"justify\">\u00c7ift t\u0131klad\u0131ktan sonra alttaki konsol penceresinden i\u015flem ak\u0131\u015f\u0131n\u0131 g\u00f6rebiliriz.<\/p>\n<p><a title=\"s0_3_16.JPG\" href=\"http:\/\/web.archive.org\/web\/20101123162448\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_16.JPG\"><img decoding=\"async\" alt=\"s0_3_16.JPG\" src=\"http:\/\/web.archive.org\/web\/20101123162448im_\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_16.kucukresim.JPG\" \/><\/a><\/p>\n<p align=\"justify\">Herhangi bir hata veya uyar\u0131 olu\u015fmad\u0131.<br \/>\nAsl\u0131nda bir uyar\u0131 olu\u015ftu ama Webpack ISE ile alakal\u0131 olan \u00f6nemsiz bir uyar\u0131<br \/>\noldu\u011fundan ald\u0131r\u0131\u015f etmesek de olur. \u015eimdi konsol \u00e7\u0131kt\u0131s\u0131n\u0131 biraz inceleyelim<br \/>\n\u00e7\u00fcnk\u00fc istedi\u011fimiz sonucu al\u0131p almad\u0131\u011f\u0131m\u0131z hakk\u0131nda bilgi edinebilmek i\u00e7in bu<br \/>\nverileri kullanabiliriz. Konsol \u00e7\u0131kt\u0131s\u0131n\u0131 par\u00e7a par\u00e7a inceleyelim.<\/p>\n<table id=\"table7\" width=\"465\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td width=\"100%\"><code>Reading design: ana.prj<\/code>===========================* HDL Compilation *<br \/>\n=======================================================Compiling verilog file \u201cana.v\u201d in library work<br \/>\nModule &lt;ana&gt; compiledNo errors in compilation<br \/>\nAnalysis of file &lt;\u201dana.prj\u201d&gt; succeeded.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p align=\"justify\">Yukar\u0131daki k\u0131s\u0131mda hangi dosyalar\u0131n<br \/>\nderlendi\u011fi ve derleme sonu\u00e7lar\u0131 hakk\u0131nda bilgi veriliyor. G\u00f6r\u00fcld\u00fc\u011f\u00fc gibi burada<br \/>\nherhangi bir sorun yok. Bir sonraki b\u00f6l\u00fcme ge\u00e7elim:<\/p>\n<table id=\"table8\" width=\"447\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td width=\"100%\"><code><br \/>\n=========================================================================<br \/>\n* Design Hierarchy Analysis *<br \/>\n=========================================================================<br \/>\nAnalyzing hierarchy for module &lt;ana&gt; in library &lt;work&gt;.<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p align=\"justify\">Bu k\u0131s\u0131mda proje i\u00e7indeki verilog<br \/>\nmod\u00fclleri ile sentezlenen mod\u00fcl aras\u0131ndaki ba\u011flant\u0131lar inceleniyor. Tek kaynak<br \/>\ndosyam\u0131z ve tek mod\u00fcl\u00fcm\u00fcz oldu\u011fundan burada herhangi bir \u015fey g\u00f6remiyoruz.<\/p>\n<table id=\"table9\" width=\"517\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td width=\"100%\"><code><br \/>\n==================================<\/code> * HDL Analysis *==========================<br \/>\nAnalyzing top module &lt;ana&gt;.<br \/>\nModule &lt;ana&gt; is correct for synthesis.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p align=\"justify\">Bu k\u0131s\u0131mda ise mod\u00fcl\u00fcm\u00fcz\u00fcn<br \/>\nsentezlenebilir olup olmad\u0131\u011f\u0131 kontrol ediliyor. Unutmay\u0131n verilog ile<br \/>\nyaz\u0131lan her kod sentezlenebilir de\u011fildir ve bu da bazen sorunlar<br \/>\nyaratabilir. Zaten kod sentezlenebilir de\u011filse Webpack kodu<br \/>\nsentezleyemeyecektir ve bundan haberiniz olacakt\u0131r. Buna dikkat etmemiz<br \/>\ngerekiyor.<\/p>\n<table id=\"table10\" width=\"518\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td width=\"100%\"><code><br \/>\n====================================================================<\/code> * HDL Synthesis *<br \/>\n===================================================Performing bidirectional port resolution\u2026Synthesizing Unit &lt;ana&gt;.Related source file is \u201cana.v\u201d.<br \/>\nFound 1-bit register for signal &lt;ledim&gt;.<br \/>\nFound 26-bit up counter for signal &lt;sayac&gt;.<br \/>\nSummary:inferred 1 Counter(s).<br \/>\ninferred 1 D-type flip-flop(s).<br \/>\nUnit &lt;ana&gt; synthesized.=====================================================HDL Synthesis ReportMacro Statistics<br \/>\n# Counters : 1<br \/>\n26-bit up counter : 1<br \/>\n# Registers : 11-bit register : 1=====================================================<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p align=\"justify\">Bu k\u0131s\u0131mda HDL sentezi yap\u0131l\u0131yor.<br \/>\nMod\u00fcl\u00fcm\u00fcz hakk\u0131ndaki bilgileri burada g\u00f6rebiliriz. Mesela 1 bitlik <em>ledim<\/em><br \/>\nyazmac\u0131, 26 bitlik <em>sayac<\/em> yazmac\u0131, sayac\u0131m\u0131z ve d tipi flip flobumuzun<br \/>\noldu\u011fu buradan anla\u015f\u0131labiliyor. Konsol \u00e7\u0131kt\u0131s\u0131n\u0131 incelemeyi bitirdi\u011fimizde<br \/>\nsentezlenmi\u015f mod\u00fcl\u00fcm\u00fcz\u00fcn \u015femas\u0131na bakaca\u011f\u0131z. Bir sonraki k\u0131sma bakal\u0131m:<\/p>\n<table id=\"table11\" width=\"564\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td width=\"100%\"><code><br \/>\n=========================================================================<br \/>\n* Advanced HDL Synthesis *<br \/>\n=========================================================================<\/code> Loading device for application Rf_Device from file \u20183s500e.nph\u2019 in<br \/>\nenvironment C:\\Xilinx91i.=======================================================Advanced HDL Synthesis ReportMacro Statistics<br \/>\n# Counters : 126-bit up counter : 1<br \/>\n# Registers : 1<br \/>\nFlip-Flops : 1<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p align=\"justify\">Burada ise daha detayl\u0131 bir sentez<br \/>\nraporu yer al\u0131yor. Mod\u00fcl\u00fcm\u00fcz m\u00fcmk\u00fcn olabilecek en basit mod\u00fcllerden biri<br \/>\noldu\u011fu i\u00e7in herhangi bir fark g\u00f6rmememiz normal.<\/p>\n<table id=\"table12\" width=\"464\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td width=\"100%\"><code><br \/>\n=========================================================================<br \/>\n* Low Level Synthesis *<br \/>\n=========================================================================<\/code> Optimizing unit &lt;ana&gt; \u2026Mapping all equations\u2026<br \/>\nBuilding and optimizing final netlist \u2026<br \/>\nFound area constraint ratio of 100 (+ 5) on block ana, actual ratio is<br \/>\n0.Final Macro Processing \u2026=====================================================Final Register ReportMacro Statistics# Registers : 27<br \/>\nFlip-Flops : 27=====================================================<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p align=\"justify\">Bu k\u0131s\u0131mda ise alt seviye sentez<br \/>\nhakk\u0131nda bilgiler yer al\u0131yor. Eniyileme i\u015flemi ve benzeri i\u015flemler hakk\u0131nda<br \/>\nbilgiyi buradan edinebiliriz.<\/p>\n<table id=\"table13\" width=\"448\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td width=\"100%\"><code><br \/>\n=========================================================================<br \/>\n* Partition Report *<br \/>\n=========================================================================<\/code> Partition Implementation Status<br \/>\n\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014-No Partitions were found in this design.\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014-<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p align=\"justify\">Yukar\u0131daki k\u0131s\u0131mda b\u00f6l\u00fcmlendirme raporu<br \/>\nbulunuyor. Herhangi bir b\u00f6l\u00fcmlendirme kullanmad\u0131\u011f\u0131m\u0131zdan burada da herhangi<br \/>\nbir \u015fey g\u00f6remiyoruz. Zaten raporda da herhangi bir b\u00f6l\u00fcmlendirme<br \/>\nbulunamad\u0131\u011f\u0131na dair bir ibare yer al\u0131yor.<\/p>\n<table id=\"table14\" width=\"600\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td width=\"100%\"><code><br \/>\n=========================================================================<\/code> * Final Report *<br \/>\n=======================================================Clock Information:<br \/>\n\u2014\u2014\u2014\u2014\u2014\u2014<br \/>\n\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2013+\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014+\u2014\u2014-+Clock Signal | Clock buffer(FF name) | Load |<br \/>\n\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2013+\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014+\u2014\u2014-+<br \/>\nSAAT | BUFGP | 27 |<br \/>\n\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2013+\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014+\u2014\u2014-+Asynchronous Control Signals Information:\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014-<br \/>\nNo asynchronous control signals found in this designTiming Summary:<br \/>\n\u2014\u2014\u2014\u2014\u2014<br \/>\nSpeed Grade: -4Minimum period: 5.179ns (Maximum Frequency: 193.101MHz)<br \/>\nMinimum input arrival time before clock: No path found<br \/>\nMaximum output required time after clock: 4.310ns<br \/>\nMaximum combinational path delay: No path found=======================================================WARNING:ProjectMgmt &#8211; \u201cD:\/scozturk_projeler\/s0_3\/proje_1\/ana.ngr\u201d line 0<br \/>\nduplicate design unit: \u2018Module|ana\u2019Process \u201cSynthesize\u201d completed successfully<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p align=\"justify\">Bu k\u0131s\u0131mda ise son rapor var. Burada saat darbesi hakk\u0131nda bilgiler veriliyor ve FPGA\u2019n\u0131n \u00e7al\u0131\u015fabilece\u011fi frekanslar belirtiliyor. Burada dikkat edilmesi gereken bir detaydan<br \/>\nbahsedeyim. Diyelim ki mod\u00fcl\u00fcn\u00fczde bir saat darbesi kullan\u0131yorsunuz. E\u011fer<br \/>\nsaat darbeniz yukar\u0131da listelenmemi\u015fse (dikkat ederseniz SAAT i\u011fnemizin<br \/>\nlistelenmi\u015f oldu\u011funu g\u00f6r\u00fcrs\u00fcn\u00fcz) mod\u00fcl\u00fcn\u00fczde bir sorun vard\u0131r. Webpack b\u00f6yle<br \/>\nbir durumda hata veya uyar\u0131 vermeyebilir ama her \u015feye ra\u011fmen kodunuzda bir<br \/>\nhata veya terslik olabilir ve bu durum kodunuzun d\u00fczg\u00fcn \u00e7al\u0131\u015fmamas\u0131na neden<br \/>\nolabilir. B\u00f6yle bir durum ile kar\u015f\u0131la\u015f\u0131rsan\u0131z kodunuzu tekrar kontrol edin.<br \/>\nYaz\u0131l\u0131ma \u00e7ok fazla g\u00fcvenmeyin.<\/p>\n<p align=\"justify\">\u015eimdi <em>Synthesize<\/em>\u2018\u0131n solundaki + i\u015faretine t\u0131klayal\u0131m ve <em>View RTL Schematic<\/em>\u2018e \u00e7ift t\u0131klayal\u0131m. A\u00e7\u0131lan pencerede mod\u00fcl\u00fcm\u00fcz\u00fcn olu\u015fturulmu\u015f \u015femas\u0131n\u0131 g\u00f6rebiliriz:<\/p>\n<p><a title=\"s0_3_17.JPG\" href=\"http:\/\/web.archive.org\/web\/20101123162448\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_17.JPG\"><img decoding=\"async\" alt=\"s0_3_17.JPG\" src=\"http:\/\/web.archive.org\/web\/20101123162448im_\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_17.kucukresim.JPG\" \/><\/a><\/p>\n<p align=\"justify\">SAAT giri\u015fini ve LED \u00e7\u0131k\u0131\u015f\u0131n\u0131 g\u00f6rebiliyoruz. Daha detayl\u0131 olarak \u015femam\u0131z\u0131 g\u00f6rebilmek i\u00e7in \u015feman\u0131n \u00fczerine \u00e7ift t\u0131klayal\u0131m.<\/p>\n<p><a title=\"s0_3_18.JPG\" href=\"http:\/\/web.archive.org\/web\/20101123162448\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_18.JPG\"><img decoding=\"async\" alt=\"s0_3_18.JPG\" src=\"http:\/\/web.archive.org\/web\/20101123162448im_\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_18.kucukresim.JPG\" \/><\/a><\/p>\n<p align=\"justify\">Yukar\u0131daki resimde devre elemanlar\u0131m\u0131z\u0131 daha rahat bir \u015fekilde g\u00f6rebiliyoruz. E\u011fer sentezledi\u011finiz mod\u00fcl\u00fcn\u00fcz i\u00e7in bir \u015fema olu\u015fturulmuyorsa kodunuzda hata var demektir. <em>Webpack<\/em> bu konuda da sizi uyarmayabilir. Bu y\u00fczden sentezledikten sonra <em>RTL<\/em> \u015feman\u0131z\u0131 kontrol ediniz. \u015eemaya dikkat edecek olursak sayac\u0131m\u0131z\u0131, kar\u015f\u0131la\u015ft\u0131r\u0131c\u0131m\u0131z\u0131 ve flip<br \/>\nflopumuzu g\u00f6rebiliyoruz. Burada baz\u0131 elemanlar\u0131n \u00fczerine \u00e7ift t\u0131klayarak bu<br \/>\nelemanlar hakk\u0131nda daha detayl\u0131 bilgi elde etmemiz m\u00fcmk\u00fcn olabilir. Mesela bu<br \/>\nmod\u00fcl i\u00e7in kar\u015f\u0131la\u015ft\u0131r\u0131c\u0131m\u0131za \u00e7ift t\u0131klarsak i\u00e7eri\u011fini g\u00f6rebiliriz.<\/p>\n<p align=\"justify\">\u015eemay\u0131 kapatabiliriz.<\/p>\n<p align=\"justify\"><strong><em>3- Xilinx ISE Webpack Kullan\u0131m\u0131 &#8211; Ger\u00e7ekle\u015ftirim<\/em><\/strong><\/p>\n<p align=\"justify\">Bu b\u00f6l\u00fcmde sentezlemi\u015f oldu\u011fumuz mod\u00fcl\u00fc<br \/>\nger\u00e7ekle\u015ftirece\u011fiz. Mod\u00fcl\u00fcm\u00fcz\u00fc ger\u00e7ekle\u015ftirebilmek i\u00e7in soldaki se\u00e7eneklerden<\/p>\n<p><em>Implement Design<\/em> se\u00e7ene\u011fine \u00e7ift t\u0131klayal\u0131m (yada sa\u011f t\u0131klay\u0131p <em>Run<\/em>\u2018\u0131<br \/>\nse\u00e7elim).<\/p>\n<p><a title=\"s0_3_19.JPG\" href=\"http:\/\/web.archive.org\/web\/20101123162448\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_19.JPG\"><img decoding=\"async\" alt=\"s0_3_19.JPG\" src=\"http:\/\/web.archive.org\/web\/20101123162448im_\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_19.kucukresim.JPG\" \/><\/a><\/p>\n<p align=\"justify\">\u0130\u015flem bitti\u011finde konsoldan i\u015flemin bitti\u011fine dair bir mesaj alaca\u011f\u0131z. Tabii ki \u015fimdi bir sorunumuz var. Biz fiziksel olarak FPGA\u2019n\u0131n hangi i\u011fnelerine LED ve SAAT i\u011fnelerini atad\u0131\u011f\u0131m\u0131z\u0131 belirtmedik. Bunu belirtmek i\u00e7in <em>UCF<\/em> dosyas\u0131n\u0131 doldurmam\u0131z gerekiyor. <em><br \/>\nUCF<\/em> dosyas\u0131n\u0131 doldurmak i\u00e7in soldaki se\u00e7eneklerden <em>User Constraints<\/em>\u2018in<br \/>\nsolundaki + i\u015faretine t\u0131klayal\u0131m ve <em>Edit Constraints (Text)<\/em>\u2018e \u00e7ift<br \/>\nt\u0131klayal\u0131m. Webpack size UCF dosyas\u0131n\u0131n olu\u015fturulup projeye eklenmesini isteyip<br \/>\nistemedi\u011fini soracak (e\u011fer \u00f6nceden eklemediyseniz). Evet dedikten sonra<br \/>\na\u015fa\u011f\u0131daki pencere ile kar\u015f\u0131la\u015f\u0131yoruz:<\/p>\n<p><a title=\"s0_3_20.JPG\" href=\"http:\/\/web.archive.org\/web\/20101123162448\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_20.JPG\"><img decoding=\"async\" alt=\"s0_3_20.JPG\" src=\"http:\/\/web.archive.org\/web\/20101123162448im_\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_20.kucukresim.JPG\" \/><\/a><\/p>\n<p align=\"justify\">\u015eimdi <em>Spartan S3E Starter Kit <\/em>kullan\u0131m k\u0131lavuzundan saat darbesi i\u00e7in ve LED i\u00e7in UCF bilgilerine bakal\u0131m. <em>Clock Sources<\/em> ba\u015fl\u0131\u011f\u0131n\u0131n alt\u0131ndaki <em>UCF Constraints<\/em> alt ba\u015fl\u0131\u011f\u0131na<br \/>\ngelelim:<\/p>\n<p><a title=\"s0_3_21.JPG\" href=\"http:\/\/web.archive.org\/web\/20101123162448\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_21.JPG\"><img decoding=\"async\" alt=\"s0_3_21.JPG\" src=\"http:\/\/web.archive.org\/web\/20101123162448im_\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_21.kucukresim.JPG\" \/><\/a><\/p>\n<p align=\"justify\">Burada saat darbeleri ile alakal\u0131<br \/>\na\u015fa\u011f\u0131daki <em>UCF<\/em> bilgilerini g\u00f6r\u00fcyoruz:<\/p>\n<table id=\"table15\" width=\"396\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td width=\"100%\"><code><br \/>\nNET \"CLK_50MHZ\" LOC = \"C9\" | IOSTANDARD = LVCMOS33 ;<\/code><br \/>\nNET \u201cCLK_SMA\u201d LOC = \u201cA10\u2033 | IOSTANDARD = LVCMOS33 ;<br \/>\nNET \u201cCLK_AUX\u201d LOC = \u201cB8\u2033 | IOSTANDARD = LVCMOS33 ;<br \/>\nNET \u201cCLK_50MHZ\u201d PERIOD = 20.0ns HIGH 40%;<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p align=\"justify\">Biz sadece 50Mhz\u2019lik saat<br \/>\ndarbesini kullanmak istedi\u011fimizden sadece 50Mhz\u2019lik <em>UCF <\/em>bilgilerini<br \/>\nal\u0131p <em>UCF<\/em> dosyam\u0131za yazal\u0131m. Yazarken <em>CLK_50MHZ<\/em> etiketini<\/p>\n<p><em> SAAT<\/em> etiketiyle de\u011fi\u015ftirmeyi unutmay\u0131n\u0131z.<\/p>\n<p align=\"justify\">Bunun ard\u0131ndan yine kullan\u0131m k\u0131lavuzundan<br \/>\n<em>Switches, Button and Knob<\/em> ba\u015fl\u0131\u011f\u0131ndan <em>Discrete LEDs<\/em> alt ba\u015fl\u0131\u011f\u0131n\u0131<br \/>\nse\u00e7elim ve buradan <em>UCF Location Constraints<\/em> alt ba\u015fl\u0131\u011f\u0131na ge\u00e7elim.<\/p>\n<p><a title=\"s0_3_22.JPG\" href=\"http:\/\/web.archive.org\/web\/20101123162448\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_22.JPG\"><img decoding=\"async\" alt=\"s0_3_22.JPG\" src=\"http:\/\/web.archive.org\/web\/20101123162448im_\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_22.kucukresim.JPG\" \/><\/a><\/p>\n<p align=\"justify\">Biz yukar\u0131daki sekiz LED \u00e7\u0131k\u0131\u015f\u0131ndan sadece tekini kullanaca\u011f\u0131z. Bu y\u00fczden <em>LOC=\u201dF9\u2033<\/em> (F9 i\u011fnesindeki) LED \u00e7\u0131k\u0131\u015f bilgisini <em>UCF<\/em> dosyam\u0131za yazal\u0131m. <em>LED&lt;7&gt;<\/em> olarak girilmi\u015f olan<br \/>\netiketi <em>LED<\/em> olarak de\u011fi\u015ftirmeyi unutmay\u0131n\u0131z.<\/p>\n<p align=\"justify\">UCF dosyam\u0131z \u00fczerinde de\u011fi\u015fiklikleri tamamlay\u0131nca dosyam\u0131z\u0131 kaydetti\u011fimizden emin olal\u0131m. UCF dosyam\u0131z\u0131n son \u015fekli a\u015fa\u011f\u0131dad\u0131r:<\/p>\n<p><a title=\"s0_3_23.JPG\" href=\"http:\/\/web.archive.org\/web\/20101123162448\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_23.JPG\"><img decoding=\"async\" alt=\"s0_3_23.JPG\" src=\"http:\/\/web.archive.org\/web\/20101123162448im_\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_23.kucukresim.JPG\" \/><\/a><\/p>\n<p align=\"justify\">Yukar\u0131daki resimde k\u0131rm\u0131z\u0131 ile i\u015faretlenmi\u015f yerde bir soru i\u015faretinin olu\u015ftu\u011funu g\u00f6receksiniz. Bunun nedeni UCF dosyas\u0131 olu\u015fturup bunu kaydetmi\u015f olmam\u0131zd\u0131r. Ger\u00e7ekle\u015ftirme i\u015fleminde bir UCF dosyas\u0131 var ise UCF dosyas\u0131ndaki bilgileri kullanarak sentezlenmi\u015f kod ger\u00e7ekle\u015ftirilir, yok ise rastgele i\u011fneler kullan\u0131l\u0131r. Yani bu a\u015famada yapmam\u0131z gereken \u015fey kodumuzu yeniden ger\u00e7ekle\u015ftirmektir.<\/p>\n<p align=\"justify\">E\u011fer herhangi bir hata yap\u0131lmam\u0131\u015f ise ger\u00e7ekle\u015ftirme i\u015flemi ba\u015far\u0131 ile sonu\u00e7lanacakt\u0131r. Tabii ki yukar\u0131daki resimdeki UCF dosyas\u0131na dikkat ederseniz etiket olarak LED yazmam gerekirken yanl\u0131\u015fl\u0131kla LCD yazm\u0131\u015f\u0131m. Bu y\u00fczden konsoldan a\u015fa\u011f\u0131daki hatalar\u0131 ald\u0131m:<\/p>\n<table id=\"table16\" width=\"463\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td width=\"100%\"><code><\/code> ERROR:NgdBuild:755 &#8211; \u201cana.ucf\u201d Line 4: Could not find net(s) \u2018LCD\u2019 in<br \/>\nthe<br \/>\nERROR:Parsers:11 &#8211; Encountered unrecognized constraint while parsing.<br \/>\nERROR:NgdBuild:19 &#8211; Errors found while parsing constraint file \u201cana.ucf\u201d.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p align=\"justify\">UCF dosyas\u0131nda gerekli d\u00fczeltmeyi yapt\u0131ktan sonra yeniden ger\u00e7ekle\u015ftirme yaparsak herhangi bir sorun kalmayacakt\u0131r. UCF dosyam\u0131z\u0131n ger\u00e7ek son \u015fekli a\u015fa\u011f\u0131dad\u0131r:<\/p>\n<p><a title=\"s0_3_24.JPG\" href=\"http:\/\/web.archive.org\/web\/20101123162448\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_24.JPG\"><img decoding=\"async\" alt=\"s0_3_24.JPG\" src=\"http:\/\/web.archive.org\/web\/20101123162448im_\/http:\/\/www.scozturk.com\/wp-content\/uploads\/2007\/06\/s0_3_24.kucukresim.JPG\" \/><\/a><\/p>\n<p align=\"justify\">Kodumuz ba\u015far\u0131 ile ger\u00e7eklendi. Bundan bir sonraki a\u015fama <em>Bitstream<\/em> dosyas\u0131n\u0131n <em>Generate Programming File<\/em>\u2018a \u00e7ift t\u0131klanarak olu\u015fturulmas\u0131 ve FPGA geli\u015ftirme kart\u0131na y\u00fcklenmesidir. Tabii ki bundan \u00f6nce <em>Spartan S3E Starter Kit\u2019<\/em>i biraz tan\u0131mam\u0131z gerekiyor.<\/p>\n<p align=\"justify\">Bu makalede yapacaklar\u0131m\u0131z bu kadar.<em> ISE Webpack<\/em> kullan\u0131m\u0131n\u0131 en basit \u015fekliyle g\u00f6rm\u00fc\u015f olduk. <em>Webpack <\/em>kullanarak devremizin sim\u00fclasyonunu yapmak ve <em>Spartan S3E Starter Kit<\/em>\u2018e verileri g\u00f6ndermek hakk\u0131nda bilgi i\u00e7in l\u00fctfen sonraki makaleleri inceleyiniz.<\/p>\n<p align=\"justify\"><strong><em>4- Proje Dosyalar\u0131 (ISE)<\/em><\/strong><\/p>\n<p align=\"justify\"><a href=\"http:\/\/web.archive.org\/web\/20101123162448\/http:\/\/www.scozturk.com\/resimler_sco\/verilog_0\/s0_3.rar\">\u0130ndirmek i\u00e7in buraya t\u0131klay\u0131n\u0131z.<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1- Xilinx ISE Webpack Nedir? Xilinx ISE Webpack Xilinx firmas\u0131n\u0131n bedava da\u011f\u0131tt\u0131\u011f\u0131 ve Xilinx FPGAlar\u0131n\u0131n \u00fczerinde \u00e7al\u0131\u015f\u0131lmas\u0131n\u0131 sa\u011flayan bir yaz\u0131l\u0131md\u0131r. Verilog veya VHDL ile yaz\u0131lan kod sentezlenebilir ve&#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-85","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\/85","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=85"}],"version-history":[{"count":1,"href":"http:\/\/18.193.70.38\/index.php?rest_route=\/wp\/v2\/posts\/85\/revisions"}],"predecessor-version":[{"id":1142,"href":"http:\/\/18.193.70.38\/index.php?rest_route=\/wp\/v2\/posts\/85\/revisions\/1142"}],"wp:attachment":[{"href":"http:\/\/18.193.70.38\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=85"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/18.193.70.38\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=85"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/18.193.70.38\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=85"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}