Integer ve Real
Coddy'nin Verilog Journey'sinin Temeller bölümünün bir parçası — ders 8 / 90.
wire ve reg'e ek olarak, Verilog farklı amaçlara yönelik sayılar için başka veri tiplerine sahiptir.
Integer
integer, sayma ve hesaplamalar için genel amaçlı bir değişkendir.
- Varsayılan boyut 32 bittir
- İşaretli (negatif sayıları saklayabilir)
- Esas olarak testbench'lerde ve for döngülerinde kullanılır
Bir integer tanımlama:
integer i; // 32-bit işaretli değişken
integer count; // Negatif sayıları saklayabilirinteger kullanımı:
integer i;
initial begin
i = 0; // 0'dan başla
i = i + 1; // Yukarı say
i = -5; // Negatif değer saklayabilir
$display("i = %d", i); // Yazdırır: i = -5
endReal
real kayan noktalı sayılar (ondalıklı sayılar) içindir.
- Kesirli değerleri saklar
- Hesaplamalar için testbench'lerde kullanılır
- Donanıma sentezlenemez
Bir real tanımlama:
real pi; // Kayan noktalı değişken
real voltage;real kullanımı:
real pi;
initial begin
pi = 3.14159; // Ondalık değer
pi = 22.0 / 7.0; // Bölme sonucu
$display("pi = %f", pi); // Yazdırır: pi = 3.142857
endNerede Kullanılırlar
Testbench'lerde: Tam sayılar (integers) ve reel sayılar (reals); döngü sayaçları, hesaplamalar ve beklenen değerlerin kontrol edilmesi için yaygın olarak kullanılır. Test kodunun yazılmasını ve anlaşılmasını kolaylaştırırlar.
Donanımda: Bu türler genellikle sentezlenebilir değildir; yani gerçek devrelere dönüştürülemezler. Bir FPGA veya çip üzerine yerleştirilecek donanımlar için bunun yerine reg ve wire kullanın.
Görev
Testbench'in çalışması için kodu tamamlayın.
Yapılması gerekenler:
- i adında bir integer bildirin (döngü sayacı için)
- value adında bir real bildirin (hesaplama için)
Kopya kağıdı
integer – sayma/hesaplama işlemleri için 32-bit işaretli değişken (testbench'ler, döngüler):
integer i;
integer count;
initial begin
i = 0;
i = i + 1;
i = -5; // negatif değerleri saklayabilir
endreal – ondalıklı değerler için kayan noktalı değişken (sadece testbench'ler için, sentezlenemez):
real pi;
initial begin
pi = 3.14159;
pi = 22.0 / 7.0;
$display("pi = %f", pi);
endHem integer hem de real sadece testbench'lerde kullanılır. Sentezlenebilir donanım için reg ve wire kullanın.
Kendin dene
module test;
// i adında bir tamsayı tanımla
// value adında bir reel sayı tanımla
initial begin
i = 7;
value = i * 0.5;
$display("i = %0d, value = %f", i, value);
$finish;
end
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ığı