다음 코드는 Mips
CPU는
LIBRARY ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
ENTITY instructionMemory IS
generic (delay :time :=10 ns);
PORT(a : INOUT STD_LOGIC_VECTOR (31 downto 0);
output: OUT STD_LOGIC_VECTOR(31 downto 0)
);
END ENTITY;
ARCHITECTURE instructionMemory OF instructionMemory IS
type MemMatrix is array (0 to 7) of std_logic_vector(31 downto 0); -- instruction from memory
signal Mem:MemMatrix := (x"00000000",x"00000001",x"00000000",x"00000001",x"00000001",x"00000001",x"00000001",x"00000001");
BEGIN
output <= Mem(conv_integer(a(6 downto 2)));
END instructionMemory;
에서 간단한 명령 Memory
입니다 형 std.standard.integer로 슬라이스 이름을 확인할 수 있습니까의 Mem이 Memory
가정 및 일부 값을 initilized. 이 데이터를 읽고 출력에 할당하고 싶습니다.
그러나 그것은 나에게 다음과 같은 오류를주는 것 :
Mem(a(6 downto 2));
그러나 다시는 나에게 또 다른 오류가 있습니다 :
no feasible entries for subprogram conv_integer
나는이에 오류 줄을 변경
cannot resolve slice name to type std.standard.integer
내가 어떤이를 이 문제를 해결하는 방법, 어떤 몸도 나를 도울 수 있습니까?
두 경우 모두 괄호가 맞지 않습니다. – fru1tbat
흠, 고마워,하지만 문제가 아냐 :) – Amir
conv_integer 신호에 대한 임시 신호 할당을 만들어보십시오. 그런 다음이 새로운 신호로 메모리에 액세스하십시오. 나는 때때로 이러한 함수가 배열에 문제가 있음을 발견했다. – Russell