與TCL,你不增加二進制數字。您將數字格式設置爲二進制。在此之前8.6,您使用的binary format
和binary scan
組合來進行轉換,如下:
vsim work.decode_shift
add wave -noupdate -format Logic -radix binary /decode_shift/din
add wave -noupdate -format Logic -radix binary /decode_shift/dout
for { set i 0 } { $i<=7 } { incr i } { # Need non-binary literal
# Convert to 8 binary digits, store result in 「i_bin」 variable
binary scan [binary format c $i] B8 i_bin
force din $i_bin; # Assume takes 8 bits; [string range] to trim otherwise
run 100
}
run @500ns
如果你有8.6,你可以這樣做,而不是:
vsim work.decode_shift
add wave -noupdate -format Logic -radix binary /decode_shift/din
add wave -noupdate -format Logic -radix binary /decode_shift/dout
for { set i 0 } { $i<=0b111 } { incr i } { # Binary literal...
force din [format %04b $i]; # width 4 field, zero padded on left
run 100
}
run @500ns
是不是隻是從0到7的循環?如果你需要把它變成二進制字符串,你可以使用格式。 – Julian
是的,以十進制表示。但我如何分配一個小數到二進制din? – user1405165
當我到達'2'時,我得到「錯誤:(vsim-4011)無效的力值:2」。 – user1405165