{"id":73,"date":"2013-10-15T13:23:03","date_gmt":"2013-10-15T10:23:03","guid":{"rendered":"http:\/\/www.scozturk.com\/?p=73"},"modified":"2025-08-27T10:17:29","modified_gmt":"2025-08-27T10:17:29","slug":"verilog-ile-boru-hatti-nasil-dosenir","status":"publish","type":"post","link":"http:\/\/18.193.70.38\/?p=73&lang=tr","title":{"rendered":"Verilog ile boru hatt\u0131 nas\u0131l d\u00f6\u015fenir?"},"content":{"rendered":"<p><strong>1- Giri\u015f:<\/strong><\/p>\n<p>Bu yaz\u0131da bir Verilog tasar\u0131m\u0131n\u0131 h\u0131zland\u0131rmak amac\u0131yla boru hatt\u0131 tekni\u011finin kullan\u0131m\u0131 g\u00f6rece\u011fiz.<\/p>\n<p>Boru hatt\u0131 iyi g\u00fczel de o nedir diyorsan\u0131z Vikipedi\u2019nin \u201c<a href=\"http:\/\/web.archive.org\/web\/20090810003442\/http:\/\/tr.wikipedia.org\/wiki\/Boru_hatt%C4%B1_%28bilgisayar%29\" target=\"_blank\">Boru Hatt\u0131 (Bilgisayar)<\/a>\u201d ba\u015fl\u0131\u011f\u0131na bakabilirsiniz.<\/p>\n<p>\u015eimdi laf\u0131 daha fazla uzatmadan (kimimiz i\u00e7in \u201cdaha\u201d kelimesi burada fazla olabilir) bir \u00f6rnekle boru hatt\u0131 tekni\u011fini uygulayal\u0131m.<\/p>\n<p><strong>2- \u00d6rnek:<\/strong><\/p>\n<p>4 tane say\u0131n\u0131n birbiriyle \u00e7arp\u0131laca\u011f\u0131n\u0131 ve her saat darbesinde mod\u00fcl\u00fcm\u00fcze \u00e7arp\u0131lmak \u00fczere yeni say\u0131lar\u0131n geldi\u011fini d\u00fc\u015f\u00fcnelim.<\/p>\n<p>\u00d6ncelikle boru hatt\u0131 olmayan a\u015fa\u011f\u0131daki tasar\u0131m\u0131 ISE ortam\u0131nda sentezleyip elde edebilece\u011fimiz h\u0131za bakal\u0131m.<\/p>\n<p>&nbsp;<\/p>\n<div>\n<ol start=\"1\">\n<li>`timescale\u00a01ns\u00a0\/\u00a01ps<\/li>\n<li>module\u00a0boruhatti(saat,ilklendir,sayi1,sayi2,sayi3,sayi4,sonuc);<\/li>\n<li>\/\/\u00a0veri\u00a0geni\u015fli\u011fi\u00a0parametresini\u00a0tan\u0131mla<\/li>\n<li>parameter\u00a0VERI_GENISLIGI\u00a0=\u00a08;<\/li>\n<li><\/li>\n<li>\/\/\u00a0girdi-\u00e7\u0131kt\u0131-yazma\u00e7\u00a0ve\u00a0telleri\u00a0tan\u0131mla<\/li>\n<li>input\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\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\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ilklendir;<\/li>\n<li>input\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[VERI_GENISLIGI-1:0]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sayi1;<\/li>\n<li>input\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[VERI_GENISLIGI-1:0]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sayi2;<\/li>\n<li>input\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[VERI_GENISLIGI-1:0]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sayi3;<\/li>\n<li>input\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[VERI_GENISLIGI-1:0]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sayi4;<\/li>\n<li>output\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[2*VERI_GENISLIGI-1:0]\u00a0\u00a0sonuc;<\/li>\n<li>reg\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[2*VERI_GENISLIGI-1:0]\u00a0\u00a0sonuc_y;<\/li>\n<li>reg\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[VERI_GENISLIGI-1:0]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sayi1_y;<\/li>\n<li>reg\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[VERI_GENISLIGI-1:0]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sayi2_y;<\/li>\n<li>reg\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[VERI_GENISLIGI-1:0]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sayi3_y;<\/li>\n<li>reg\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[VERI_GENISLIGI-1:0]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sayi4_y;<\/li>\n<li><\/li>\n<li>always\u00a0@\u00a0(posedge\u00a0saat)\u00a0begin<\/li>\n<li>if(ilklendir)\u00a0begin<\/li>\n<li>sonuc_y\u00a0\u00a0\u00a0\u00a0\u00a0&lt;=\u00a00;<\/li>\n<li>sayi1_y\u00a0&lt;=\u00a0sayi1;<\/li>\n<li>sayi2_y\u00a0&lt;=\u00a0sayi2;<\/li>\n<li>sayi3_y\u00a0&lt;=\u00a0sayi3;<\/li>\n<li>sayi4_y\u00a0&lt;=\u00a0sayi4;<\/li>\n<li>end<\/li>\n<li>else\u00a0begin<\/li>\n<li>sonuc_y\u00a0&lt;=\u00a0sayi1_y\u00a0*\u00a0sayi2_y\u00a0*\u00a0sayi3_y\u00a0*\u00a0sayi4_y;<\/li>\n<li>end<\/li>\n<li>end<\/li>\n<li><\/li>\n<li>assign\u00a0sonuc\u00a0=\u00a0sonuc_y;<\/li>\n<li><\/li>\n<li>\/\/\u00a0\u00a0\u00a0\u00a0Minimum\u00a0period:\u00a014.309ns\u00a0(Maximum\u00a0Frequency:\u00a069.886MHz)<\/li>\n<li>\/\/\u00a0\u00a0\u00a0Minimum\u00a0input\u00a0arrival\u00a0time\u00a0before\u00a0clock:\u00a02.838ns<\/li>\n<li>\/\/\u00a0\u00a0\u00a0Maximum\u00a0output\u00a0required\u00a0time\u00a0after\u00a0clock:\u00a04.040ns<\/li>\n<li>\/\/\u00a0\u00a0\u00a0Maximum\u00a0combinational\u00a0path\u00a0delay:\u00a0No\u00a0path\u00a0found<\/li>\n<li><\/li>\n<li>endmodule<\/li>\n<\/ol>\n<\/div>\n<p>G\u00f6r\u00fcld\u00fc\u011f\u00fc gibi sentez arac\u0131m\u0131z\u0131n verdi\u011fi frekans de\u011feri 69.886MHz. Bu tasar\u0131mda \u00f6ncelikle \u201cilklendir\u201d giri\u015finin gelmesiyle yazma\u00e7lar\u0131n de\u011ferleri y\u00fckleniyor. Ard\u0131ndan da bir saat darbesi i\u00e7inde 4 say\u0131 birbiriyle \u00e7arp\u0131l\u0131yor ve sonu\u00e7 d\u0131\u015far\u0131 veriliyor.<\/p>\n<p>\u015eimdi de tasar\u0131m\u0131m\u0131za boru hatt\u0131 d\u00f6\u015feyelim:<\/p>\n<div>\n<ol start=\"1\">\n<li>`timescale\u00a01ns\u00a0\/\u00a01ps<\/li>\n<li>module\u00a0boruhatti(saat,ilklendir,sayi1,sayi2,sayi3,sayi4,sonuc);<\/li>\n<li>\/\/\u00a0veri\u00a0geni\u015fli\u011fi\u00a0parametresini\u00a0tan\u0131mla<\/li>\n<li>parameter\u00a0VERI_GENISLIGI\u00a0=\u00a08;<\/li>\n<li><\/li>\n<li>\/\/\u00a0girdi-\u00e7\u0131kt\u0131-yazma\u00e7\u00a0ve\u00a0telleri\u00a0tan\u0131mla<\/li>\n<li>input\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\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\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ilklendir;<\/li>\n<li>input\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[VERI_GENISLIGI-1:0]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sayi1;<\/li>\n<li>input\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[VERI_GENISLIGI-1:0]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sayi2;<\/li>\n<li>input\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[VERI_GENISLIGI-1:0]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sayi3;<\/li>\n<li>input\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[VERI_GENISLIGI-1:0]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sayi4;<\/li>\n<li>output\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[2*VERI_GENISLIGI-1:0]\u00a0\u00a0sonuc;<\/li>\n<li>reg\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[2*VERI_GENISLIGI-1:0]\u00a0\u00a0sonuc_y;<\/li>\n<li><\/li>\n<li>reg\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[VERI_GENISLIGI-1:0]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sayi1_y;<\/li>\n<li>reg\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[VERI_GENISLIGI-1:0]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sayi2_y;<\/li>\n<li>reg\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[VERI_GENISLIGI-1:0]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sayi3_y;<\/li>\n<li>reg\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[VERI_GENISLIGI-1:0]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sayi4_y;<\/li>\n<li><\/li>\n<li>reg\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[2*VERI_GENISLIGI-1:0]\u00a0\u00a0sonuc_a_y;<\/li>\n<li>reg\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[2*VERI_GENISLIGI-1:0]\u00a0\u00a0sonuc_b_y;<\/li>\n<li><\/li>\n<li>always\u00a0@\u00a0(posedge\u00a0saat)\u00a0begin<\/li>\n<li>if(ilklendir)\u00a0begin<\/li>\n<li>sonuc_y\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;=\u00a00;<\/li>\n<li>sayi1_y\u00a0\u00a0\u00a0\u00a0\u00a0&lt;=\u00a0sayi1;<\/li>\n<li>sayi2_y\u00a0\u00a0\u00a0\u00a0\u00a0&lt;=\u00a0sayi2;<\/li>\n<li>sayi3_y\u00a0\u00a0\u00a0\u00a0\u00a0&lt;=\u00a0sayi3;<\/li>\n<li>sayi4_y\u00a0\u00a0\u00a0\u00a0\u00a0&lt;=\u00a0sayi4;<\/li>\n<li>end<\/li>\n<li>else\u00a0begin<\/li>\n<li>sonuc_a_y\u00a0\u00a0\u00a0&lt;=\u00a0sayi1_y\u00a0*\u00a0sayi2_y;<\/li>\n<li>sonuc_b_y\u00a0\u00a0\u00a0&lt;=\u00a0sayi3_y\u00a0*\u00a0sayi4_y;<\/li>\n<li>sonuc_y\u00a0\u00a0\u00a0\u00a0\u00a0&lt;=\u00a0sonuc_a_y\u00a0*\u00a0sonuc_b_y;<\/li>\n<li>end<\/li>\n<li>end<\/li>\n<li><\/li>\n<li>assign\u00a0sonuc\u00a0=\u00a0sonuc_y;<\/li>\n<li><\/li>\n<li>\/\/\u00a0\u00a0\u00a0Minimum\u00a0period:\u00a05.074ns\u00a0(Maximum\u00a0Frequency:\u00a0197.083MHz)<\/li>\n<li>\/\/\u00a0\u00a0\u00a0Minimum\u00a0input\u00a0arrival\u00a0time\u00a0before\u00a0clock:\u00a03.320ns<\/li>\n<li>\/\/\u00a0\u00a0\u00a0Maximum\u00a0output\u00a0required\u00a0time\u00a0after\u00a0clock:\u00a04.504ns<\/li>\n<li>\/\/\u00a0\u00a0\u00a0Maximum\u00a0combinational\u00a0path\u00a0delay:\u00a0No\u00a0path\u00a0found<\/li>\n<li><\/li>\n<li>endmodule<\/li>\n<\/ol>\n<\/div>\n<p>Boru hatt\u0131 tekni\u011fi kulland\u0131\u011f\u0131m\u0131zda ise tasar\u0131m\u0131m\u0131z\u0131n frekans de\u011ferinin 197.083MHz\u2019e \u00e7\u0131kt\u0131\u011f\u0131n\u0131 g\u00f6r\u00fcyoruz. Boru hatt\u0131 kullanmad\u0131\u011f\u0131m\u0131z tasar\u0131m\u0131n aksine sonu\u00e7 ilk saat darbesi ile de\u011fil, ikinci saat darbesi ile veriliyor. Bu durum ba\u015flang\u0131\u00e7ta boru hatt\u0131n\u0131n i\u015fleri yava\u015flatt\u0131\u011f\u0131 veya istenen h\u0131zda cevap veremedi\u011fi d\u00fc\u015f\u00fcncesini geli\u015ftirebilir. Fakat 4 de\u011fil de aral\u0131ks\u0131z olarak 100 tane say\u0131n\u0131n (yani mod\u00fcl\u00fcm\u00fcz 4*25\u2032den 25 kere \u00e7al\u0131\u015ft\u0131r\u0131lmak istenirse) \u00e7arp\u0131laca\u011f\u0131 durum d\u00fc\u015f\u00fcn\u00fcl\u00fcrse boru hatl\u0131 tasar\u0131m\u0131n d\u00fcz tasar\u0131m\u0131 h\u0131z olarak katlayaca\u011f\u0131 a\u00e7\u0131kt\u0131r, \u00e7\u00fcnk\u00fc her saat darbesinde yeni bir d\u00f6rtl\u00fc al\u0131nacak ve her saat darbesinde bir \u00f6nceki d\u00f6rtl\u00fcn\u00fcn sonucu verilecektir.<br \/>\n<strong>3- Son:<\/strong><\/p>\n<p>Bu yaz\u0131da tasar\u0131m\u0131m\u0131za boru hatt\u0131 d\u00f6\u015feyerek h\u0131zland\u0131rmay\u0131 g\u00f6rd\u00fck. Umar\u0131m i\u015finize yarar. Kolay gelsin. \u0130yi kodlamalar.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1- Giri\u015f: Bu yaz\u0131da bir Verilog tasar\u0131m\u0131n\u0131 h\u0131zland\u0131rmak amac\u0131yla boru hatt\u0131 tekni\u011finin kullan\u0131m\u0131 g\u00f6rece\u011fiz. Boru hatt\u0131 iyi g\u00fczel de o nedir diyorsan\u0131z Vikipedi\u2019nin \u201cBoru Hatt\u0131 (Bilgisayar)\u201d ba\u015fl\u0131\u011f\u0131na bakabilirsiniz&#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-73","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\/73","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=73"}],"version-history":[{"count":1,"href":"http:\/\/18.193.70.38\/index.php?rest_route=\/wp\/v2\/posts\/73\/revisions"}],"predecessor-version":[{"id":1148,"href":"http:\/\/18.193.70.38\/index.php?rest_route=\/wp\/v2\/posts\/73\/revisions\/1148"}],"wp:attachment":[{"href":"http:\/\/18.193.70.38\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=73"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/18.193.70.38\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=73"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/18.193.70.38\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=73"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}