📥 Command-Line Input in Verilog #
Verilog testbenchlerinde komut satırından değer almak, simülasyonu esnek ve parametreli hale getirmenin yaygın bir yoludur. Bu özellik sayesinde aynı testbench’i farklı senaryolarla çalıştırabilirsiniz — örneğin farklı seed
, mode
, veya testcase
değerleriyle.
🔹 $value$plusargs
#
Kullanıcıdan gelen +ARG=VALUE
biçimindeki girişleri yakalamak için kullanılır.
$value$plusargs("SEED=%d", seed);
Bu ifade, komut satırında +SEED=123
şeklinde bir argüman varsa seed
değişkenine 123 atar ve 1
döner. Yoksa 0
döner.
✅ Örnek: #
integer seed;
initial begin
if (!$value$plusargs("SEED=%d", seed)) begin
seed = 42; // Default value
end
$display("Using seed: %0d", seed);
end
🔹 $test$plusargs
#
Sadece bir bayrak (flag) argümanı olup olmadığını kontrol eder. Değer taşımaz.
if ($test$plusargs("VERBOSE")) begin
$display("Verbose mode is ON.");
end
Komut satırında +VERBOSE
varsa 1
döner, yoksa 0
.
🖥️ Simülasyon Komutu #
vvp a.out +SEED=123 +VERBOSE
🧠 Summary Table #
Kategori | Fonksiyon | Açıklama |
---|---|---|
Değer girişi | $value$plusargs("FORMAT", var) |
Argümanı alır, değişkene atar |
Bayrak kontrolü | $test$plusargs("NAME") |
Flag var mı diye kontrol eder |