• rtl (register transfer level) ya da gate level design ichin kullanilir devre tasariminda.
  • (bkz: vhdl)
  • vhdl'e oranla ogrenmesi ve uygulaması daha kolay hardware tanımlama dili.
  • öğrenmesi gayet basit olan ama yine program yazma kısmında ufacık bir devreyi bile yazarken ana ağlatması nedeniyle hdl'e küfredip istemeden kalbini kırdığınız program..ezik, büzük ama yeteneklidir..
  • şematiklerle bir veya iki defa çalıştıktan sonra ciddi anlamda nimet olduğu görülebilir.
  • öğrenmek isteyen www.asic-world.com sitesine göz atabilir.
  • hata mesajları alabildiğine anlaşılmayacak şekilde hazırlanmış, google'da arasanız bile çözümü bulamayacağınız bir hdl. 3-5 satır kod yazarsanız sonra project istatistiklerine baktığınızda orada 65 flip-flop kullanılmaktadır, yazdığını görünce aslında o flip-flopları elle asla bağlayamacağınızı anladığınızda gökten indiğini düşünebilirsiniz.

    dosya uzantısı .v dir.
  • (bkz: #18949784)
  • hdl (hardware description language) dillerinden en meshuru.. tabi ilk cumleyi okuyan icin cok bir faydasi yok tanimin, hadi bi de guzel bir introduction dokumani linki verelim o zmn:

    http://csit-sun.pub.ro/index.php?op=4&sop=2

    not: verilog slides isimli pdf dostyasi gayet basarili olaya yeni baslayanlar icin..
  • normal yazilim dillerinden farklarindan birisi de ogrenciler tarafindan anlasilmasi ve uygulanmasi ilk basta zor gelen blocking , non-blocking assignment kismidir. asagidaki aciklama bircok soru isaretini giderebilir.

    "the verilog language has two forms of the procedural assignment statement: blocking and non-blocking. the two are distinguished by the = and <= assignment operators. the blocking assignment statement (= operator) acts much like in traditional programming languages. the whole statement is done before control passes on to the next statement. the non-blocking (<= operator) evaluates all the right-hand sides for the current time unit and assigns the left-hand sides at the end of the time unit. for example, the following verilog program

    // testing blocking and non-blocking assignment
    module blocking;
    reg [0:7] a, b;
    initial begin: init1
    a = 3;
    #1 a = a + 1; // blocking procedural assignment
    b = a + 1;
    $display("blocking: a= %b b= %b", a, b );

    a = 3;
    #1 a <= a + 1; // non-blocking procedural assignment
    b <= a + 1;

    #1 $display("non-blocking: a= %b b= %b", a, b );
    end

    endmodule

    produces the following output:

    blocking: a= 00000100 b= 00000101
    non-blocking: a= 00000100 b= 00000100

    the effect is for all the non-blocking assignments to use the old values of the variables at the beginning of the current time unit and to assign the
    registers new values at the end of the current time unit. this reflects how register transfers occur in some hardware systems.
hesabın var mı? giriş yap