VHDL 코드에서 정수에 대해 몇 가지 수학 연산을 수행하려고합니다.하지만 컴파일하려고 할 때 "0 정의 연산자"+ "여기에 일치"라고 표시됩니다. 다음은 내가하려는 일입니다.vhdl에서 정수에 대한 산술 연산
for i in 0 to arr_size - 1 loop
for j in 0 to arr_size - 1 loop
for k in 0 to arr_size - 1 loop
for l in 0 to arr_size - 1 loop
for m in 0 to arr_size - 1 loop
mega_array(i)(j)(k)(l)(m) <= i*(arr_size**4) + j*(arr_size**3) + k*(arr_size**2) + l*(arr_size**1) + m*(arr_size**0);
end loop;
end loop;
end loop;
end loop;
end loop;
mega_array가 설정된 줄에서 문제가 발생했습니다. 이 전체 블록은 프로세스에 있음을 유의하십시오. 또한
는 :
arr_size : integer := 4;
sig_size : integer := 32
type \1-line\ is array (arr_size - 1 downto 0) of unsigned (sig_size - 1 downto 0);
type square is array (arr_size - 1 downto 0) of \1-line\;
type cube is array (arr_size - 1 downto 0) of square;
type hypercube is array (arr_size - 1 downto 0) of cube;
type \5-cube\ is array (arr_size - 1 downto 0) of hypercube;
signal mega_array : \5-cube\;
문제는 Library/Use 절 또는 mega_array 선언에있을 수 있습니다. 질문에 추가 할 가치가 있습니다. "0 정의 일치"는 너무 많은 중복 "사용"절이 있기 때문에 2 개 이상의 가시적 인 (모호한) 정의가 있음을 의미합니다. –