logo

Verilog atama beyanı

Atama ifadeleri ağdaki değerleri yönlendirmek için kullanılır. Ve aynı zamanda kullanılır Veri Akışı Modelleme .

Tel tipi veya veri tipindeki sinyaller sürekli bir değer atanmasını gerektirir. Telin bir ucuna +5V akü uygulandığı sürece telin diğer ucuna bağlanan komponent gerekli voltajı alacaktır.

Bu kavram, herhangi bir telin veya diğer benzer telin (veri türlerinin) bir değerle sürekli olarak sürülebildiği atama ifadesi ile gerçekleştirilir. Değer bir sabit olabileceği gibi bir grup sinyalden oluşan bir ifade de olabilir.

Sözdizimi

Atama sözdizimi, atama anahtar sözcüğüyle başlar ve ardından bir sinyal veya farklı sinyal ağlarının bir kombinasyonu olabilen sinyal adı gelir.

sürüş gücü Ve gecikme isteğe bağlıdır ve gerçek donanıma sentezlemek yerine çoğunlukla veri akışı modellemesi için kullanılır.

Sağ taraftaki sinyal değerlendirilir ve sol taraftaki ağa veya ağların ifadesine atanır.

 assign = [drive_strength] [delay] 

Gecikme değerleri, geçitler için gecikmeleri belirlemek için kullanışlıdır ve gerçek donanımdaki zamanlama davranışını modellemek için kullanılır. Değer, ağın değerlendirilen değerle ne zaman atanması gerektiğini belirler.

Tüzük

Atama ifadesinin kullanımı sırasında bazı kurallara uyulması gerekir:

sonraki java tarayıcı
  • LHS her zaman bir skaler, vektör veya skaler ve vektör ağlarının bir kombinasyonu olmalıdır, ancak asla bir skaler veya vektör kaydı olmamalıdır.
  • RHS, skaler veya vektör kayıtları ve işlev çağrıları içerebilir.
  • RHS'deki herhangi bir işlenenin değeri değiştiğinde, LHS yeni değerle güncellenecektir.
  • Atama ifadelerine sürekli atamalar da denir.

Reg Değişkenlerini Ata

Araba kullanamayız veya atayamayız kayıt reg değişkeni veri depolayabildiğinden ve sürekli olarak çalıştırılmadığından, değişkenleri bir atama ifadesiyle yazın.

Reg sinyalleri yalnızca her zaman ve ilk gibi prosedürel bloklarda çalıştırılabilir.

Örtülü Sürekli Atama

Verilen net'e bir değer atamak için bir atama ifadesi kullanıldığında buna bir atama denir. açık atama

Ağ sırasında yapılacak bir atama bildirilirse buna denir. örtülü atama.

 wire [1:0] a; assign a = x & y; // Explicit assignment wire [1:0] a = x & y; // Implicit assignment 

Kombinasyonel Mantık Tasarımı

Birleşimsel kapılardan ve karşılık gelenlerden yapılmış aşağıdaki dijital devreyi göz önünde bulundurun Veri günlüğü kod.

dizeden int'ye dönüştürücü
Verilog atama beyanı

Kombinasyonel mantık, değerin yakalandığı ve saatin kenarında saklandığı flip floplar gibi sıralı elemanların aksine, çıkışı korumak için girişlerin sürekli olarak çalıştırılmasını gerektirir.

Atanan bir ifade amacı karşılar çünkü sağ taraftaki girişlerden herhangi biri değiştiğinde o çıkışı güncellenir.

 // This module takes four inputs and performs a Boolean // operation and assigns output to o. // logic is realized using assign statement. module combo (input a, b, c, d, output o); assign o = ~((a & b) | c ^ d); endmodule 

Donanım Şeması

Tasarım detaylandırması ve sentezinden sonra birleşimsel devre, atama ifadesi tarafından modellenenle aynı şekilde davranır.

Verilog atama beyanı

RHS üzerindeki kombinasyonel ifade doğru olduğunda o sinyali 1 olur.

Benzer şekilde, RHS yanlış olduğunda o 0 olur. Çıkış o, 0ns'den 10ns'ye kadar X'tir çünkü girişler aynı anda X'tir.