배열 및 구조체에 대한 SystemVerilog의 비트 스트림 캐스팅이 매우 안전하지 않은 것처럼 보입니다.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 놀이터에 : http://www.edaplayground.com/x/2tp