将多个变量存储为一个十六进制字符串

Store multiple variables as a single hex string

我正在寻找一种将几个变量存储在一个变量中的方法,这样我就可以输出一个字符串。例如,我有变量:

int flow_val = "128";
int numb_val = "104";
int size_val = "256";

我可以像这样使用 $display 将它们放在一起:

$display("32'h%0h%0h_%4h", flow_val, numb_val, size_val);

打印出来:

32'h8068_0100

有没有办法获取该输出并将其放入变量中,例如 hex_val

$sformatf可以用。请参阅 IEEE 标准 1800-2012,第 21.3.3 节将数据格式化为字符串

module tb;

int flow_val = 128;
int numb_val = 104;
int size_val = 256;
string hex_val;

initial begin
    hex_val = $sformatf("32'h%0h%0h_%4h", flow_val, numb_val, size_val);
    $display(hex_val);
end

endmodule

输出:

32'h8068_0100