Могу предложить решение на VHDL
Ну для начала нужно определиться с частотой опроса клавиатуры. Сформировать такой сигнал можно на обычном делителе зависит от внутренней частоты в ПЛИС:
Код
signal cnt : std_logic_vector(20 downto 0);
signal scan_keyboard : std_logic;
cnt : process (clk)
begin
if (clk=1 and clk'event) then
cnt <= cnt+1;
end if;
end process;
scan_keyboard <= cnt(20);
тут входной clk поделили на 2^20
а потом запускаться от сигнала scan_keyboard и считывать состояние со входных пинов к которым подключены кнопки:
если в entity объявлен сигнал типа:
Код
key : in std_logic_vector(16 downto 1);
то выполняем что то типа:
Код
scan : process (scan_keyboard)
begin
if (scan_keyboard=1 and scan_keyboard'event) then
send_scaned_key <= key;
end if;
end process;
Дальше останется только выдать параллельный код send_scaned_key последовательно, можно так же самостоятельно написать на VHDL процесс, а можно запортмапить сдвиговый регистр, в библиотеке у Xilinx их предостаточно.
Ну конечно возможны модификации, типа: слать когда нажимают кнопки, но это потребует незначительной модификации кода.
Настрочил, а потом прочитал:
Цитата
ПЛИСку умею програмировать пока только в графическом режиме.Подскажите,плиз, с какого боку подходить к решению данной задачи.Заранее спасибо
Ну тут еще проще, читай мануал.