В настоящее время я работаю с VGA в Vivado на FPGA Basys3, и у меня есть некоторые проблемы. Я хочу генерировать разные изображения (тестовые болота). У меня есть отдельный файл .vhd для каждого из этих образов и файл верхнего уровня, в котором я хотел бы использовать мультиплексор для этих образов, чтобы назначить каждому из них отдельный переключатель. У меня вопрос: как назначить изображение переключателю, если выходы из каждого файла .vhd представляют собой три цветовых сигнала RGB?
Что я пробовал, так это то, что я назвал эти 3 выходных сигнала по-разному для каждого изображения и назначил их конечному выходному сигналу, когда переключатель включен, используя структуру case. Я вставлю часть этого, чтобы вы, ребята, могли получить представление:
Это высшая сущность
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
нет декларации? - person user_1818839   schedule 02.04.2016