В настоящее время я работаю с VGA в Vivado на FPGA Basys3, и у меня возникают некоторые проблемы. Я хочу генерировать разные образы (test mires). У меня есть отдельный файл .vhd для каждого из этих изображений и файл верхнего уровня, где я хотел бы использовать мультиплексор для этих изображений, чтобы назначить каждому из них отдельный переключатель. Мой вопрос: как назначить изображение переключателю, если выходы из каждого .vhd-файла представляют собой три цветовых сигнала RGB?VHDL: выбор изображений с помощью переключателей
Что я пробовал, так это то, что я назвал эти 3 выходных сигнала по-разному для каждого изображения и назначил их окончательному выходному сигналу, когда переключатель включен, используя структуру корпуса. Я вставить его часть, чтобы вы, ребята, можете получить идею:
Это верхний объект
entity VGAdraw is
Port (CLK : in STD_LOGIC;
cntHor : in integer range 0 to cstHorTotSize - 1;
cntVer : in integer range 0 to cstVerTotSize - 1;
SW : in STD_LOGIC_VECTOR (15 downto 0);
LED : out STD_LOGIC_VECTOR (15 downto 0);
RED : out STD_LOGIC_VECTOR (3 downto 0);
GREEN : out STD_LOGIC_VECTOR (3 downto 0);
BLUE : out STD_LOGIC_VECTOR (3 downto 0)
);
end VGAdraw;
Это один из образов:
signal red5, green5, blue5, red7, green7, blue7: STD_LOGIC_VECTOR (3 downto 0);
component Checkers is
Port (CLK : in STD_LOGIC;
cntHor : in integer range 0 to cstHorTotSize - 1;
cntVer : in integer range 0 to cstVerTotSize - 1;
red7 : out STD_LOGIC_VECTOR (3 downto 0);
green7 : out STD_LOGIC_VECTOR (3 downto 0);
blue7 : out STD_LOGIC_VECTOR (3 downto 0)
);
end component;
component Checkers
port map (CLK => CLK,
cntHor => cntHor,
cntVer => cntVer,
red7 => RED,
green7 => GREEN,
blue7 => BLUE
);
Дело структура
process
begin
case SW is
when "0000000000100000" => RED <= red7;
GREEN <= green7;
BLUE <= blue7;
when others => RED <= red5;
GREEN <= green5;
BLUE <= blue5;
end case;
end process;
VGADraw - это верхняя сущность, в которой я объявлял каждое изображение как другой компонент. Как и выше. Как назначить каждому из них переключатель на моей плате FPGA, поэтому я могу изменить изображение, которое я хочу, включив коммутатор? Я также пробовал некоторые «если генерировать» утверждения, без каких-либо результатов. Как и в этом случае, имея 16 переключателей на Basys3, включив sw5, я хотел бы получить изображение, нарисованное компонентом Checkers.
Спасибо за любую помощь.
Поскольку вы не показывали нам объявления для 'red1' или экземпляра компонента для Checkers, любая помощь будет только диким угадать. Например, может быть, нет объявления для 'red1'? –