Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

VERİLOG-Always.

Benzer bir sunumlar


... konulu sunumlar: "VERİLOG-Always."— Sunum transkripti:

1 VERİLOG-Always

2 Verilog Veri Türleri Data Values: Value : 0,1 Not Care: x
High–impedance : z Wire Used for connecting two points. Used in structural code Synthesizes into wires Reg Used for storing values. Used in procedural code May synthesize into latches, flip-flops or wires Input, Output, inout Defines ports of a module (wire by default) Yazmaç Veri Türleri integer : 2-complement 32 bit signed reg : any size, unsigned time : 64-bit unsigned real, realtime: 64-bit floating point

3 Veri Türleri Örnekleri
wire and_gate_output; reg d_flip_flop_out; reg [7:0] address_bus; reg [31:0] a; // 32 bit wide reg wire [7:0] b; // 8 bit wide wire wire temp; // 1 bit net type signal

4 Verilog-Procedure-Davranışsal Yapıda
Modüller istenen sayıda procedure içerebilir. Procedur’ler iki tür blok ile ifade edilirler: 1-initial: Sadece bir kez işlenir. Sentezlenebilir değildir. Simulasyon için kullanılır. 2-always : Sonsuza kadar işlenir. Sentezlenebilir. Bu bloklarda yalnızca reg tipi sinyallere değer atanabilir.

5 Verilog-Always Davranışsal tarzda, tasarlanmak istenen sistemin davranışı «always» blokları içinde ifade edilerek yapılabilir. Always içerisinde sadece reg tipinde sinyallere atama yapılabilir. wire türlerine atama yapılamaz! Bir duyarlılık listesine sahiptir Duyarlılık listesindeki herhangi bir değişken değiştiğinde her zaman işlenir. Verilog 2001‟de ile blok içindeki referans edilen tüm sinyaller duyarlılık listesine dahil edilebilir. İçerisinde “=” seri(blocking) ve “<=” paralel(blocking) atamaları yapılabilir. İçerisinde if/else, case gibi procedural yapılar kullanılabilir.

6 Verilog – Bloklu Atama “=” ile gerçekleştirilir
Bloklu atamalar sıralı gerçekleştirilir. Örnek: begin b = 0; c = 0; b = a + a; c = b + a; d = c + a; end

7 Verilog – Bloksuz Atama
“<=” ile gerçekleştirilir. İşlemler paralel bir şekilde aynı anda yapılır. Örnek: begin b <= 0; c <= 0; b <= a + a; c <= b + a; d <= c + a; end Bu örnek sentezlemede hata verir. Aynı sinyal(b,c) birden fazla sürücüye sahiptir.

8 Verilog – Yapısal module full_adder (input A, B, CI, output Sum, Cout) ; wire S1, C1, C2; half_add HA1 (A, B, S1, C1); half_add HA2 (S1, CI, Sum, C2); or P1 (Cout, C1, C2); endmodule

9 Verilog – Synchronous Logic
Saat sinyalinin yükselen kenarı: posedge düşen kenarı: negedge Örnek: D-Flip Flop module DFF (input d,clk, output reg q); clk) begin q <= d; end endmodule


"VERİLOG-Always." indir ppt

Benzer bir sunumlar


Google Reklamları