I am trying to make a buffer to store 16, 16-bit instructions for a small processor design.
I need a way to load instructions into a buffer from my testbench. So I wanted to use the std_logic_vectors array for this. However, I get a syntax error, and I'm not sure why (or if I am allowed to do this in VHDL, for that matter).
The syntax error is on the line where I declare instructions
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
entity instruction_buffer is
port
(
reset : in std_logic;
instructions : in array(0 to 15) of std_logic_vector(15 downto 0);
instruction_address : in std_logic_vector(3 downto 0);
clk : in std_logic;
instruction_out : out std_logic_vector(15 downto 0)
);
end instruction_buffer;
I also tried to do this, but then I get syntax errors in the mapping of entity ports, saying that it std_logic_vector
is an unknown type. I swear VHDL syntax errors are less significant than C haha
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
package instructionBuffer is
type instructionBuffer is array(0 to 15) of std_logic_vector (15 downto 0);
end package instructionBuffer;
entity instruction_buffer is
port
(
instruction_address : in std_logic_vector(3 downto 0);
clk : in std_logic;
instruction_out : out std_logic_vector(15 downto 0)
);
end instruction_buffer;
source
share