mercredi 23 mars 2016

✪ Spartan 3e FPGA Board Tutoriels ✪

Spartan 3e FPGA Board !!!

Pour ceux qui n'ont pas encore des connaissances sur le domaine FPGA, et qui savent pas encore les liens directs entre ce dernier et VHDL, ainsi comment faire pour configurer et programmer une carte FPGA vous pouvez jette une œil sur mon ancien article Lets Discover FPGA avant de démarrer en si dessous .

Aujourd'hui j'ai choisi  la carte Spartan 3e FPGA pour débuter cette série de tutoriels, alors découvrons d'abord cette dernière.

Un FPGA est un dispositif à semi-conducteurs composé d'une matrice de blocs logiques configurables  connectés par des interconnexions programmables. L'utilisateur détermine ces interconnexions en programmant la mémoire SRAM. Un CLB peut être simple (portes AND, OR, etc.) ou complexe (un bloc de RAM). Le FPGA permet d'apporter des modifications à une conception même après le soudage du dispositif sur un circuit imprimé.
 



La Spartan 3e elle est caractérisée par :



Nombre de portes logiques500000
Nombre d'unités logiques1164
Nombre de registres9312
Nombre de multiplieurs20 (18 x 18)
Type de montageCMS
Type de boîtierFBGA
Nombre de broche320
Nombre de bits de RAM74752 bit
Dimensions19 x 19 x 1.4mm
Hauteur1.4mm
Longueur19mm
Tension d'alimentation fonctionnement maximum1,26 V
Température de fonctionnement minimum0 °C
Température d'utilisation maximum+85 °C
Largeur19mm
Tension d'alimentation de fonctionnement minimum1,14 V


 Afficher l'image d'origine

Alors pour débuter avec Spartan 3e, on a choisi des test simples tels que contrôler les Diodes Led sur la carte. pour ceci comme j'ai déjà expliquer dans mon article précédant je doit utiliser ISE et programmer en VHDL.

Voila le programme qui est capable de faire allumer tout les Led sur Spartan 3e.
// Hello Word !!d
----------------------------------------------------------------------------------
-- Company: 
-- Engineer: Aymen Lachkhem
-- 
-- Create Date:    15:01:03 03/23/2016 
-- Design Name: 
-- Module Name:    Testing_LEDS - Behavioral 
-- Project Name: 
-- Target Devices: 
-- Tool versions: 
-- Description: 
--
-- Dependencies: 
--
-- Revision: 
-- Revision 0.01 - File Created
-- Additional Comments: 
--
----------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

-- Uncomment the following library declaration if using
-- arithmetic functions with Signed or Unsigned values
--use IEEE.NUMERIC_STD.ALL;

-- Uncomment the following library declaration if instantiating
-- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;

entity Testing_LEDS is
    Port ( LED_1 : out  STD_LOGIC;
           LED_2 : out  STD_LOGIC;
           LED_3 : out  STD_LOGIC;
           LED_4 : out  STD_LOGIC;
           LED_5 : out  STD_LOGIC);
end Testing_LEDS;

architecture Behavioral of Testing_LEDS is

begin
LED_1 <= '1';
LED_2 <= '1';
LED_3 <= '1';
LED_4 <= '1';
LED_5 <= '1';

end Behavioral;


et Pour la configurations des pins j'ai fait ça :
NET "LED_1" LOC = "F12";
NET "LED_2" LOC = "E12";
NET "LED_3" LOC = "E11";
NET "LED_4" LOC = "F11";
NET "LED_5" LOC = "C11";
Voici cette vidéo vous expliquerez pas à pas tout les taches faites, et vous montrerez le test pratique.

On va passé maintenant dés d'allumer les leds a les faire controler chaque une par un switcheur inclus dans la carte Spartan 3e, au niveau du programme, il y aura pas beaucoup de changement il faut juste boucler l'allumage par des conditions répétitives de switcheurs.
   

// Leds,Buttons Interfacing----------------------------------------------------------------------------------
-- Company: 
-- Engineer: 
-- 
-- Create Date:    17:13:12 03/23/2016 
-- Design Name: 
-- Module Name:    Button_LEDS - Behavioral 
-- Project Name: 
-- Target Devices: 
-- Tool versions: 
-- Description: 
--
-- Dependencies: 
--
-- Revision: 
-- Revision 0.01 - File Created
-- Additional Comments: 
--
----------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

-- Uncomment the following library declaration if using
-- arithmetic functions with Signed or Unsigned values
--use IEEE.NUMERIC_STD.ALL;

-- Uncomment the following library declaration if instantiating
-- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;

entity Button_LEDS is
    Port ( Button_1 : in  STD_LOGIC;
           Button_2 : in  STD_LOGIC;
           Button_3 : in  STD_LOGIC;
           Button_4 : in  STD_LOGIC;
           Led_1 : out  STD_LOGIC;
           Led_2 : out  STD_LOGIC;
           Led_3 : out  STD_LOGIC;
           Led_4 : out  STD_LOGIC);
end Button_LEDS;

architecture Behavioral of Button_LEDS is

begin
WORK:process
begin
if(Button_1 = '1') then 
Led_1 <= '1';
else 
Led_1 <= '0';
end if;
if(Button_2 = '1') then 
Led_2 <= '1';
else 
Led_2 <= '0';
end if;
if(Button_3 = '1') then 
Led_3 <= '1';
else 
Led_3 <= '0';
end if;
if(Button_4 = '1') then 
Led_4 <= '1';
else 
Led_4 <= '0';
end if;
end process;
end Behavioral;


et Pour la configurations des pins j'ai fait ça :

NET "Button_1" LOC = "N17";

NET "Button_2" LOC = "L13";

NET "Button_3" LOC = "H18";
NET "Button_4" LOC = "L14";
NET "Led_1" LOC = "E9";
NET "Led_2" LOC = "F12";
NET "Led_3" LOC = "E11";
NET "Led_4" LOC = "C11";


Voici cette vidéo vous expliquerez pas à pas tout les taches faites, et vous montrerez le test pratique.





Aucun commentaire:

Enregistrer un commentaire