【PalladiumZ2 使用专栏 3 -- 信号值的获取与设置 及 memory dump 与 memory load】
文章目录
- Overview
- force 命令语法
- value 命令语法
- memory load
- memory dump
Overview
在调试问题的时,有时需要将某些信号强制设置为某个值,或者某几个信号强制设置为某个值,这里就要用到 force 命令。
force 命令语法
force -h
force <name> <value>
force -allff 0 | 1 | random [-seed <number>]) [-instance <in:stance_name>]
force -prep <textfile>
force -file <textfile.dat>
最常用也就是force <name> <value>
,找到某个信号的拓扑结构,然后后面跟上要设定的值:
force signal_demo.arst_n 1'b0
run 2us
force signal_demo.arst_n 1'b1
value 命令语法
经常遇到需要查看某个信号的值,比如寄存器的值,比如复位信号的值,这时就可以使用value
命令来进行查看:
value [-file <filename>] [-short] [-verbose] [<format>] <object_names>
某人输出的是二进制值,如果想显示16进制可以使用类似下面的命令:
value %h signal
40'h00064780
如果加上-short
参数的话就会把前面的位宽给去掉:
value -short %h signal
00064780
如果加上-verbose
就会输出更详细的内容:
value -verbose %h signal
signal[39:0] = 40'h00064780
memory load
我们经常需要将某些文件加载到 memory中,比如将编译好的镜像烧写到 memory或者 sram 中或者 flash 这个时候就会用到 memory load 这个命令:
memory -load soc_top.spi.mem_array -file image.hex
当然也可以指定起始地址和结束地址,但是需要注意的是不能使用绝对物理地址。
memory load 可以将 image 先 load 到 memory (sram、ddr)中,load 需确认 memory 大小和 IO 位宽 width。如 4096 x128
, 表示容量4096X128 bit = 64kByte
. IO width 128bit=16Byte. bin 文件转dat文件时,需要每行16Byte的格式。
memory dump
memory -dump soc_top.ilm.mem_array -start 0 -end 100 -file test.log