한다고 가정 우리는 128 비트 등록이 있습니다의 Verilog : 비트 슬라이스 벡터 두 번
reg [127:0] line;
그리고 우리는 먼저 그것의 32 비트 단어를 선택하고,이 단어에서 모든 사용하여 슬라이스를 바이트를 선택
word = line[(127-32*byte_addr[3:2])-:32];
byte = word[7:0];
잘 작동합니다. 그러나 두 사업자를 합치 지 않으면 동일한 라인에서 허용되지 않는 것으로 보입니다.
mybyte = line[(127-32*byte_addr[3:2])-:32][7:0]; //all the hell breaks loose
불행하게도 나는이 금지 SV의 3.1A 사양의 명확한 규칙을 찾을 수 없습니다.
정확히 무엇이 오류입니까? 어떤 도구를 사용하고 있습니까? – mkrieger1
"구문 오류입니다. 토큰은 '[' 'VCS입니다. – artemonster
오류가 정확합니다. 'line'은 1 차원 배열로 선언 되었기 때문에 하나의 인덱스 선택기 만 사용할 수 있습니다. – Serge