FPGA Tic Tac Toe (1 / 10 steg)
Steg 1: Single LED-Controller
För detta steg, kommer att vi skapa en liten controller för varje enskild LED.
Vi kommer att använda den grundläggande D - Flip Flop med en synkron aktivera och en asynkron återställning.
Eftersom våra LED är fancy RGB LED, är det bättre att använda en 2-bitars buss för att bestämma vilken färg blir aktiverat. Till gör så, behöver vi 2 D Flip Flops--en för varje färg led.
Var en flip flops kommer att dela en klocka, tillförsel av knappen och en återställningsknapp. Dock får var och D flip flops ett D värde bestäms av den multi-LEDs controller.
Genom att trycka på knappen kommer spärren i D värdet för varje flip flop och utgångar det. Produktionen kommer att vara en 2-bitars buss bildas av enskilda Q utdata för varje flip flop och en annan 2-bitars buss bildas av Q inversen av varje flip flop.
2 bitar bussen bestående av Q omvänd utdata ska anslutas direkt till LED utsignalen. Under tiden kommer att 2 bitar bussen bestående av utgången Q gå till multi-LEDs styrenheten att avgöra vilken spelare som får att gå nästa.
Vi kommer att använda 9 dessa flip flops för varje knapp.
enhet Single_LED_Controller är
port (Clock: i std_logic;
Knapp: i std_logic;
Reset: i std_logic;
Player1: i std_logic;
Spelare2: i std_logic;
LED_Output: ut std_logic_vector (1 CEN. 0);
Handle_Input: ut std_logic_vector (1 CEN. 0));
slutet Single_LED_Controller;
arkitekturen är av Single_LED_Controller
komponent D_FlipFlop är
port (aktiverar: i std_logic;
D: i std_logic;
Reset: i std_logic;
Klocka: i std_logic;
Q: ut std_logic);
slutet komponent;
signal temp1, temp2: std_logic;
börja
D_FF_Main_1: D_FlipFlop port karta (knappen Player1, Reset, klocka, temp1);
D_FF_Main_2: D_FlipFlop port karta (knappen spelare2, Reset, klocka, temp2);
LED_Output(0) < = not(temp1);
LED_Output(1) < = not(temp2);
Handle_Input(0) < = temp1;
Handle_Input(1) < = temp2;
slutet kontroller;