与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