System verilog Systemverilog分配-逻辑数组到字节数组
我正在尝试赋值System verilog Systemverilog分配-逻辑数组到字节数组,system-verilog,System Verilog,我正在尝试赋值逻辑l_数据[31:0]到字节数据[] data=l_数据不是合法的SystemVerilog分配。如何做到这一点?使用比特流转换(LRM第6.24.3节)。您需要为强制转换创建一个typedef,但无论如何,对所有变量声明使用typedef是一个好主意 typedef byte unsigned dynamic_byte_array_t[]; typedef logic fixed_logic_array_t[31:0]; dynamic_byte_array_t data;
逻辑l_数据[31:0]代码>到字节数据[]代码>
data=l_数据代码>不是合法的SystemVerilog分配。如何做到这一点?使用比特流转换(LRM第6.24.3节)。您需要为强制转换创建一个typedef,但无论如何,对所有变量声明使用typedef是一个好主意
typedef byte unsigned dynamic_byte_array_t[];
typedef logic fixed_logic_array_t[31:0];
dynamic_byte_array_t data;
fixed_logic_array_t l_data;
data = dynamic_byte_array_t'(l_data);
几点注意:
小心使用字节
,默认情况下它是有符号的
我在所有类型基本名称中添加了一个\u t
后缀
我建议使用比我在这里使用的更有意义的类型名
比特流转换有一个从左向右移动比特的特定顺序。如果需要更复杂的位排序(第11.4.14节),请使用流式操作符
使用比特流转换(LRM第6.24.3节)。您需要为强制转换创建一个typedef,但无论如何,对所有变量声明使用typedef是一个好主意
typedef byte unsigned dynamic_byte_array_t[];
typedef logic fixed_logic_array_t[31:0];
dynamic_byte_array_t data;
fixed_logic_array_t l_data;
data = dynamic_byte_array_t'(l_data);
几点注意:
小心使用字节
,默认情况下它是有符号的
我在所有类型基本名称中添加了一个\u t
后缀
我建议使用比我在这里使用的更有意义的类型名
比特流转换有一个从左向右移动比特的特定顺序。如果需要更复杂的位排序(第11.4.14节),请使用流式操作符
数据为8位l_数据为32位宽。您希望将哪些l_数据位分配给数据?数据为8位l_数据为32位宽。您希望将哪些l_数据位分配给数据?