Yerleşik Kapı Primitifleri
Coddy'nin Verilog Journey'sinin Temeller bölümünün bir parçası — ders 39 / 90.
Verilog, mantık devrelerini gerçek mantık kapısı sembollerini kullanarak tanımlamanıza olanak tanıyan yerleşik gate primitives yapılarına sahiptir. Buna structural modeling denir — tıpkı bir şematik çizermiş gibi, kapıları birbirine bağlayarak devreler oluşturursunuz.
Kapı (gate) ilkselleri (primitives), temel mantık kapılarını modelleyen önceden tanımlanmış anahtar sözcüklerdir. assign out = a & b gibi bir ifade yazmak yerine, bir kapı (gate) örneklersiniz:
and(out, a, b); // çıkışı out, girişleri a ve b olan AND kapısıGenel Sözdizimi
gate_type (output, input1, input2, ...);- İlk bağımsız değişken her zaman output'tur
- Sonraki bağımsız değişkenler inputs'tur (kapıya bağlı olarak 1 veya daha fazla)
Kullanılabilir Mantık Kapısı İlkselleri (Gate Primitives)
| Kapı Türü | Anahtar Kelime | Giriş Sayısı |
|---|---|---|
| AND | and | 2 veya daha fazla |
| OR | or | 2 veya daha fazla |
| NOT | not | 1 |
| NAND | nand | 2 veya daha fazla |
| NOR | nor | 2 veya daha fazla |
| XOR | xor | 2 veya daha fazla |
| XNOR | xnor | 2 veya daha fazla |
Kapı İlkel Öğelerinin (Gate Primitives) Çalışma Şekli
and(out, a, b) yazdığınızda, Verilog a & b işleminin sonucuyla out çıkışını sürekli olarak süren bir AND kapısı oluşturur. a veya b her değiştiğinde, out tıpkı gerçek bir kapı gibi anında güncellenir.
Gate Primitives vs Continuous Assignment
Her iki yöntem de aynı donanımı üretir:
// Kapı primitif
and(out, a, b);
// Sürekli atama (aynı sonuç)
assign out = a & b;Gate primitive'leri, bir devreyi bir gate koleksiyonu (structural tarz) olarak tanımlamak istediğinizde kullanışlıdır. Continuous assignment ise behavioral style (ifadeler) için daha iyidir.
Görev
Ne yapılmalı:
- Bu devrenin çalışmasını sağlamak için `correct` `gate` `primitive` ekleyin. `module`, `a` ve `b` `inputs` değerlerinin AND sonucunu `output` olarak vermelidir. `output` portu zaten `c` olarak adlandırılmıştır.
Kendin dene
module gate_challenge (
input a,
input b,
output c
);
// TODO: Doğru kapı primitifini ekle
// Çıktı c, a AND b olmalıdır
endmoduleBu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temeller bölümündeki tüm dersler
4Operatörler Bölüm 1
Aritmetik OperatörlerModül OperatörüKarşılaştırma OperatörleriÖzet - Basit MatematikBitsel Operatörler7Atama ve Kapılar
Sürekli AtamaOperatörlerle AtamaYerleşik Kapı PrimitifleriAND OR NOT KapılarıXOR XNOR KapılarıÖzet - Mantık Kapısı Devresi10Karar Yapıları
If İfadesiIf - ElseÖzet - Basit KarşılaştırıcıCase İfadesiCasex ve CasezÖzet - ALU Tasarımı5Operatörler Bölüm 2
Mantıksal Operatörlerİndirgeme OperatörleriKaydırma OperatörleriBirleştirme OperatörüKoşullu OperatörÖzet - Operatör Meydan Okuması11Döngüler
For DöngüsüWhile DöngüsüRepeat DöngüsüSonsuz DöngüDevre Dışı Bırakma İfadesiÖzet - Döngü Kalıpları3Sayı Sistemleri
İkilik GösterimBoyutlandırılmış SayılarBoyutlandırılmamış SayılarNegatif SayılarÖzel Değerler X ve ZÖzet - Sayı Formatları6Modüller
Modül YapısıGiriş ve Çıkış PortlarıInout PortlarıModül Örneklendirmeİsme Göre Port EşlemeSıraya Göre Port EşlemeÖzet - Bir Modül Oluşturun9Prosedürel Bloklar
Always BloğuInitial BloğuDuyarlılık ListesiEngelleyici AtamaEngelleyici Olmayan AtamaÖzet - Always vs Initial15Trafik Işığı Kontrolcüsü
Durumları TanımlamaDurum Makinesi Mantığı