#vhdl #fpga
Вопрос:
У меня есть этот код для моей платы FPGA с 5 кнопками и 4 переключателями (sw(0), sw(1), sw(2) и sw(3)). Когда вы нажимаете одну кнопку на плате FPGA, на экране отображается один символ ASCII. Как я могу переписать этот код, чтобы он делал следующее: когда sw(0) равно 0, кнопки ничего не делают; когда sw(0) равно 1, все кнопки должны работать нормально. Использую ли я блок процесса или? Я уже включил вектор sw в первый порт.
Заранее спасибо
library ieee; use ieee.std_logic_1164.all; entity slova is port ( btn_left, btn_right, btn_up, btn_down, btn_f1: in std_logic; rs232_tx: out std_logic; clk_25m: in std_logic; sw: in std_logic_vector(3 downto 0); led: out std_logic_vector(7 downto 0) ); end slova; architecture behavioral of slova is signal code: std_logic_vector(7 downto 0); signal btns: std_logic_vector(4 downto 0); begin btns lt;= btn_f1 amp; btn_left amp; btn_down amp; btn_up amp; btn_right; with btns select code lt;= "00000000" when "00000", -- ASCII NULL "01000001" when "01000", "01110010" when "00100", "01101101" when "00010", "01101001" when "00001", "01001011" when "11000", "01100001" when "10100", "01101110" when "10010", "01110100" when "10001", "--------" when others; led lt;= code; serializer: entity serial_tx port map ( clk =gt; clk_25m, byte_in =gt; code, ser_out =gt; rs232_tx ); end architecture;
Комментарии:
1. Любое количество способов сделать это — вы можете использовать процесс, но вам это не нужно.
2. Наряду с одновременным назначением выбранного сигнала, которое уточняется до эквивалента оператора case в процессе, существует также одновременное назначение условного сигнала, которое содержит оператор if в эквиваленте разработки процесса. Параллельные операторы представляют либо процессы, либо операторы блоков, обеспечивающие иерархию и процессы проектирования.