Soy nuevo en diseño digital, y recientemente compré una placa de desarrollo Bemicro MAX10 FPGA para ayudarme a mojarme los pies. Estoy tratando de aprender VHDL, y he descargado algunos archivos PDF para comenzar. El circuito que estoy tratando de crear es un circuito simple de LED. Hay dos botones que son entradas y dos LED que son las salidas. La idea es que, cuando se presiona el botón_0 o el botón_1 en el tablero, se enciende el LED_1. Cuando se presionan ambos botones, se encienden ambos LED. Aquí está el código que he escrito para lograr esto:
library IEEE;
use IEEE.std_logic_1164.ALL;
entity Button_LEDs is
Port ( button_0 : in std_logic;
button_1 : in std_logic;
LED_0 : out std_logic;
LED_1 : out std_logic);
end Button_LEDs;
architecture Behavorial of Button_LEDs is
begin
LED_0 <= (button_0 AND button_1);
LED_1 <= (button_0 OR button_1);
end Behavorial;
El problema es que cuando se presiona button_0 o button_1, LED_0 se enciende en lugar de LED_1. La linea
LED_0 <= (button_0 AND button_1);
se está comportando como una puerta OR en lugar de una puerta AND. Ambos LED se encienden cuando se presionan ambos botones, lo que se espera. He verificado dos veces las asignaciones de pines, y estoy seguro de que se han asignado correctamente, por lo que estoy muy confundido por esta lógica.