【发布时间】:2014-04-24 17:16:15
【问题描述】:
SystemVerilog 中用于数组和结构的比特流转换似乎不是很安全。
例如,以下铸造问题只会在运行时(可能是模拟的几个小时)被发现:
bit [31:0] bit_queue[$];
logic [31:0] logic_array[5];
for (int i = 0; i < 10; i++) begin
bit_queue[i] = $urandom;
end
if (catch_issue) begin
typedef logic [31:0] logic_array_t [5];
logic_array = logic_array_t'(bit_queue); // <-- ISSUE
end
是否有适当的“安全”程序来进行比特流转换?哪里可以在编译时发现任何问题或在运行时安全处理?还是在这种情况下语言被破坏了?
EDA Playground 上的示例代码:http://www.edaplayground.com/x/2tp
【问题讨论】:
标签: arrays casting system-verilog bitstream