T e c h n i q u e n u m é r i q u e

Dimension: px
Commencer à balayer dès la page:

Download "T e c h n i q u e n u m é r i q u e"

Transcription

1 T e c h n i q u e n u m é r i q u e Projet intégré Jeu Simon Développement, description VHDL et tests des composants Groupe 3 Didier Crausaz I1-a Projet intégré / D.Crausaz page 1

2 Table des matières 1. Introduction Ctrl_joueur... 4 Description... 4 Diagramme d état... 5 VHDL... 7 Tests Memoire_seq Description Diagramme d état VHDL Tests Show_seq Description Fonction Diagramme d états VHDL Tests Compare_seq Description Fonction VHDL Tests Affichage_color Description Table de vérité VHDL Tests Conclusion Projet intégré / D.Crausaz page 2

3 1. Introduction La troisième étape de ce projet est la partie individuelle, qui consiste à développement les composants décrit dans la partie Conception/architecture. Après la distribution des composantes entre les membres du groupe, je dois m occuper des composants. - Ctrl_joueur - Memoire_seq - Show_seq - Compare_seq - Affichage_color Les quatre premiers seront réalisés avec des circuits séquentiels synchrones. Le cinquième est un circuit combinatoire. Les entrées sont déjà décrites dans le document précédent. Pour certains composants des entrée ont été ajoutées pour Les test ne peuvent pas être tous faits dû à la complexité de certains composants, ils seront Pour avoir des diagrammes d état à peu près visible, je n ai mis que les entrées qui étaient utiles lors des changements d états. Sinon il aurait fallu beaucoup de bits pour chaque flèche et il aurait aussi fallu beaucoup plus de flèches. Projet intégré / D.Crausaz page 3

4 2. Ctrl_joueur Description Le composant est actif uniquement lorsqu on est en mode deux joueurs. Si le premier joueur fait une faute (error=1) alors on le deuxième doit faire la séquence correctement pour gagner. Si c est le deuxième joueur qui fait une faute, alors le joueur 1 gagne. Projet intégré / D.Crausaz page 4

5 Diagramme d état E= 1 E Projet intégré / D.Crausaz page 5

6 Table de sorties Joueur_en_cours Winner Found_winner Inactif Joueur1_joue Joueur2_joue Joueur1_error_and_ Joueur2_joue Egalite_impuls Egalite Joueur2_win_impuls Joueur2_win Joueur1_win_impuls Joueur1_win Projet intégré / D.Crausaz page 6

7 VHDL library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity Ctrl_joueur is Port ( Etat_general : in STD_LOGIC_VECTOR (2 downto 0); Mode : in STD_LOGIC_VECTOR (1 downto 0); Compare_seq_finish : in STD_LOGIC; Error : in STD_LOGIC; Reset : in STD_LOGIC; Clock : in STD_LOGIC; Joueur_en_cours : out STD_LOGIC; Winner : out STD_LOGIC_VECTOR (1 downto 0); Found_winner : out STD_LOGIC); end Ctrl_joueur; architecture Ctrl_joueur_archi of Ctrl_joueur is type etats is (inactif, joueur1_joue, joueur2_joue, joueur1_error_and_joueur2_joue, egalite_impuls, egalite, joueur2_win_impuls, joueur2_win, joueur1_win_impuls, joueur1_win); signal etat_present, etat_futur : etats; begin combi:process(etat_general, Mode, Compare_seq_finish, Error, etat_present) begin case etat_present is when inactif => if (Etat_general="010" or Etat_general="001") and Mode(1)='1' then etat_futur<=joueur1_joue; etat_futur<=inactif; when joueur1_joue => if (Etat_general="010" or Etat_general="001") and Mode(1)='1' then if Compare_seq_finish='1' then etat_futur<=joueur2_joue; elsif Error='1' then etat_futur<=joueur1_error_and_joueur2_joue; etat_futur<=joueur1_joue; etat_futur<=inactif; when joueur2_joue => if (Etat_general="010" or Etat_general="001") and Mode(1)='1' then if Compare_seq_finish='1' then etat_futur<=joueur1_joue; elsif Error='1' then etat_futur<=joueur1_win_impuls; etat_futur<=joueur2_joue; etat_futur<=inactif; when joueur1_error_and_joueur2_joue => if (Etat_general="010" or Etat_general="001") and Mode(1)='1' then if Compare_seq_finish='1' then etat_futur<=joueur2_win_impuls; elsif Error='1' then etat_futur<=egalite_impuls; etat_futur<=joueur1_error_and_joueur2_joue; Projet intégré / D.Crausaz page 7

8 etat_futur<=inactif; when egalite_impuls => if (Etat_general="010" or Etat_general="001") and Mode(1)='1' then etat_futur<=egalite; etat_futur<=inactif; when egalite => if (Etat_general="010" or Etat_general="001" or Etat_general="001" or Etat_general="011" or Etat_general="100") and Mode(1)='1' then etat_futur<=egalite; etat_futur<=inactif; when joueur2_win_impuls => if (Etat_general="010" or Etat_general="001") and Mode(1)='1' then etat_futur<=joueur2_win; etat_futur<=inactif; when joueur2_win => if (Etat_general="010" or Etat_general="001" or Etat_general="011" or Etat_general="100") and Mode(1)='1' then etat_futur<=joueur2_win; etat_futur<=inactif; when joueur1_win_impuls => if (Etat_general="010" or Etat_general="001") and Mode(1)='1' then etat_futur<=joueur1_win; etat_futur<=inactif; when joueur1_win => if (Etat_general="010" or Etat_general="001 or Etat_general="011" or Etat_general="100") and Mode(1)='1' then etat_futur<=joueur1_win; etat_futur<=inactif; when others => etat_futur<=inactif; end case; end process; registre:process(clock, Reset) begin if Reset='1' then etat_present <= inactif; elsif rising_edge(clock) then etat_present<=etat_futur; end process; decodeur: process(etat_present) begin if (etat_present = joueur1_joue or etat_present = inactif) then Joueur_en_cours<= '0'; Winner<= "00"; Found_winner<= '0'; elsif(etat_present = joueur2_joue) then Joueur_en_cours<= '1'; Winner<= "00"; Found_winner<= '0'; Projet intégré / D.Crausaz page 8

9 elsif(etat_present = joueur1_error_and_joueur2_joue) then Joueur_en_cours<= '1'; Winner<= "00"; Found_winner<= '0'; elsif(etat_present = egalite_impuls) then Joueur_en_cours<= '0'; Winner<= "11"; Found_winner<= '1'; elsif(etat_present = egalite) then Joueur_en_cours<= '0'; Winner<= "11"; Found_winner<= '0'; elsif(etat_present = joueur2_win_impuls) then Joueur_en_cours<= '0'; Winner<= "01"; Found_winner<= '1'; elsif(etat_present = joueur2_win) then Joueur_en_cours<= '0'; Winner<= "01"; Found_winner<= '0'; elsif(etat_present = joueur1_win_impuls) then Joueur_en_cours<= '0'; Winner<= "10"; Found_winner<= '1'; elsif(etat_present = joueur1_win) then Joueur_en_cours<= '0'; Winner<= "10"; Found_winner<= '0'; Joueur_en_cours<= '0'; Winner<= "00"; Found_winner<= '0'; end process; end Ctrl_joueur_archi; Tests On simule une partie ou le joueur 2 est gagnant. #on intialise les entrées et faisons un reset force -freeze sim:/ctrl_joueur/etat_general force -freeze sim:/ctrl_joueur/mode 00 0 force -freeze sim:/ctrl_joueur/compare_seq_finish 0 0 force -freeze sim:/ctrl_joueur/error 0 0 force -freeze sim:/ctrl_joueur/reset 0 0 force -freeze sim:/ctrl_joueur/clock 1 0, 0 {50 ps} -r 100 force -freeze sim:/ctrl_joueur/reset 1 0 force -freeze sim:/ctrl_joueur/reset 0 0 A #on passe en mode deux joueur normal et somme en train de comparer force -freeze sim:/ctrl_joueur/etat_general force -freeze sim:/ctrl_joueur/mode ns Projet intégré / D.Crausaz page 9

10 #Joueur 1 fini de jouer, une impulsion est envoyée force -freeze sim:/ctrl_joueur/compare_seq_finish 1 0 force -freeze sim:/ctrl_joueur/compare_seq_finish ns #Joueur 2 a à son tour fini de jouer, en revoie une impulsion force -freeze sim:/ctrl_joueur/compare_seq_finish 1 0 force -freeze sim:/ctrl_joueur/compare_seq_finish ns # #Joueur 1 s est trompé, reste à Joueur 2 de joueur # force -freeze sim:/ctrl_joueur/error 1 0 force -freeze sim:/ctrl_joueur/error ns # #Joueur 2 réussi la séquence, c est lui le vainqueur # force -freeze sim:/ctrl_joueur/compare_seq_finish 1 0 force -freeze sim:/ctrl_joueur/compare_seq_finish ns ##le test s exécute comment prévu : réussi #Idem que en A force -freeze sim:/ctrl_joueur/etat_general force -freeze sim:/ctrl_joueur/mode 00 0 force -freeze sim:/ctrl_joueur/compare_seq_finish 0 0 force -freeze sim:/ctrl_joueur/error 0 0 force -freeze sim:/ctrl_joueur/reset 0 0 force -freeze sim:/ctrl_joueur/clock 1 0, 0 {50 ps} -r 100 force -freeze sim:/ctrl_joueur/reset 1 0 force -freeze sim:/ctrl_joueur/reset 0 0 force -freeze sim:/ctrl_joueur/etat_general force -freeze sim:/ctrl_joueur/mode ns force -freeze sim:/ctrl_joueur/compare_seq_finish 1 0 force -freeze sim:/ctrl_joueur/compare_seq_finish ns B #Joueur 2 fait directement une erreur force -freeze sim:/ctrl_joueur/error 1 0 force -freeze sim:/ctrl_joueur/error ns ##le test s exécute comment prévu : réussi Projet intégré / D.Crausaz page 10

11 A B Projet intégré / D.Crausaz page 11

12 3. Memoire_seq Description J ai rajouté la sortie parcourt_finish, qui est à 1 lorsque toute la mémoire a été lue (soit par le composant show_seq, soit par compare_seq) et l entrée Need_memoire_2 qui est une sortie du composant. En etat_general =001, on demande une couleur et dès que celle-ci est disponible, on enregistre la couleur dans la mémoire. Ensuite on parcourt la mémoire pour afficher les leds correspondant jusqu à ce qu on a tout parcouru. Une fois que tout est parcouru, on passe en etat_general=010 (comparaison) et on reparcourt la mémoire au fur et à mesure jusqu à ce qu elle soit entièrement parcouru. Lorsqu on repasse à l etat_general=001, on ajoute un nouvelle couleur. Projet intégré / D.Crausaz page 12

13 Diagramme d état Projet intégré / D.Crausaz page 13

14 Table des sorties c.f au process : decodeur du code VDHL. VHDL library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity Memoire_seq is Port ( Etat_general : in STD_LOGIC_VECTOR (2 downto 0); Mode : in STD_LOGIC_VECTOR (1 downto 0); New_color : in STD_LOGIC_VECTOR (2 downto 0); Dispo_new_color : in STD_LOGIC; Need_memoire : in STD_LOGIC; Need_memoire2 : in STD_LOGIC; Pressed_color : in STD_LOGIC_VECTOR (2 downto 0); Reset : in STD_LOGIC; Clock : in STD_LOGIC; Next_color : out STD_LOGIC_VECTOR (2 downto 0); Next_color_dispo : out STD_Logic; Need_color : out STD_LOGIC; Memoire_finish : out STD_LOGIC; parcourt_finish : out STD_LOGIC); end Memoire_seq; architecture Memoire_seq_archi of Memoire_seq is type etats is (configr, need_new_color, attente_color, enregistre_color, attente, parcourt_registre, parcourt_finish_seq, parcourt_finish_compare, no_seq_show, memoire_dispo, memoire_dispo_and_finish, end_game); signal etat_present, etat_futur : etats; signal cnt : integer range 0 to 92; signal cnt_parcourt : integer range 0 to 92; signal testregistre : Std_logic_vector(0 to 91); begin combi:process(etat_general, Mode, New_color, Dispo_new_color, Need_memoire, Need_memoire2, cnt_parcourt, cnt, etat_present) begin case etat_present is when configr => if Etat_general="001" then if Mode="11" then etat_futur<=parcourt_finish_seq; etat_futur<=need_new_color; elsif Etat_general="011" or Etat_general="100" then etat_futur<=end_game; etat_futur<=configr; when need_new_color => if Etat_general="001" then etat_futur<=attente_color; elsif Etat_general="011" or Etat_general="100" then etat_futur<=end_game; etat_futur<=configr; when attente_color => if Etat_general="001" then if Dispo_new_color='0' then etat_futur<=attente_color; etat_futur<=enregistre_color; Projet intégré / D.Crausaz page 14

15 elsif Etat_general="011" or Etat_general="100" then etat_futur<=end_game; etat_futur<=configr; when enregistre_color => if Etat_general="001" or Etat_general="010" then if Mode="01" and cnt<42 then etat_futur<=need_new_color; elsif Mode="11" then etat_futur<=no_seq_show; etat_futur<=attente; elsif Etat_general="011" or Etat_general="100" then etat_futur<=end_game; etat_futur<=configr; when no_seq_show => if Etat_general="001" then if Mode="11" then etat_futur<=no_seq_show; etat_futur<=attente; elsif Etat_general="010" then etat_futur<=attente; elsif Etat_general="011" or Etat_general="100" then etat_futur<=end_game; etat_futur<=configr; when attente => if Etat_general="001" or Etat_general="010" then if Need_memoire='1' then etat_futur<=parcourt_registre; elsif Need_memoire2='0' then etat_futur<=attente; etat_futur<=need_new_color; elsif Etat_general="011" or Etat_general="100" then etat_futur<=end_game; etat_futur<=configr; when parcourt_registre => if Etat_general="001" or Etat_general="010" then if cnt_parcourt=3 then etat_futur<=memoire_dispo_and_finish; etat_futur<=memoire_dispo; elsif Etat_general="011" or Etat_general="100" then etat_futur<=end_game; etat_futur<=configr; when memoire_dispo => if Etat_general="001" or Etat_general="010" then etat_futur<=attente; elsif Etat_general="011" or Etat_general="100" then etat_futur<=end_game; etat_futur<=configr; Projet intégré / D.Crausaz page 15

16 when memoire_dispo_and_finish => if Etat_general="001" then etat_futur<=parcourt_finish_seq; elsif Etat_general="010" then etat_futur<=parcourt_finish_compare; elsif Etat_general="011" or Etat_general="100" then etat_futur<=end_game; etat_futur<=configr; when parcourt_finish_seq => if Etat_general="001" then etat_futur<=parcourt_finish_seq; elsif Etat_general="010" then if Mode="11" then etat_futur<=parcourt_finish_compare; etat_futur<=attente; elsif Etat_general="011" or Etat_general="100" then etat_futur<=end_game; etat_futur<=configr; when parcourt_finish_compare => if Etat_general="001" then if mode="11" then etat_futur<=enregistre_color; etat_futur<=need_new_color; elsif Etat_general="010" then etat_futur<=parcourt_finish_compare; elsif Etat_general="011" or Etat_general="100" then etat_futur<=end_game; etat_futur<=configr; when others => etat_futur<=configr; end case; end process; registre:process(clock, Reset) begin if Reset='1' then etat_present <= configr; testregistre<=(others=>'0'); cnt<=0; cnt_parcourt<=0; elsif rising_edge(clock) then if(etat_present=enregistre_color) then testregistre(3 to 91)<=testregistre(0 to 88); if mode="11" then testregistre(0)<=pressed_color(2); testregistre(1)<=pressed_color(1); testregistre(2)<=pressed_color(0); testregistre(0)<=new_color(2); testregistre(1)<=new_color(1); testregistre(2)<=new_color(0); cnt<= cnt+3; cnt_parcourt<=cnt+3; elsif(etat_present=parcourt_registre) then cnt_parcourt<=cnt_parcourt-3; Next_color<=testregistre(cnt_parcourt-3 to cnt_parcourt-1); elsif(etat_present=parcourt_finish_seq) then Projet intégré / D.Crausaz page 16

17 cnt_parcourt<=cnt; elsif(etat_present=parcourt_finish_compare) then if mode="01" then cnt<=0; cnt_parcourt<=0; etat_present<=etat_futur; end process; decodeur: process(etat_present) begin if (etat_present = configr) then Next_color_dispo<='0'; Need_color<='0'; Memoire_finish<='0'; parcourt_finish<='0'; elsif(etat_present = need_new_color) then Next_color_dispo<='0'; Need_color<='1'; Memoire_finish<='0'; parcourt_finish<='0'; elsif(etat_present = attente_color) then Next_color_dispo<='0'; Need_color<='0'; Memoire_finish<='0'; parcourt_finish<='0'; elsif(etat_present = enregistre_color) then Next_color_dispo<='0'; Need_color<='0'; Memoire_finish<='0'; parcourt_finish<='0'; elsif(etat_present = no_seq_show) then Next_color_dispo<='0'; Need_color<='0'; Memoire_finish<='0'; parcourt_finish<='1'; elsif(etat_present = attente) then Next_color_dispo<='0'; Need_color<='0'; Memoire_finish<='1'; parcourt_finish<='0'; elsif(etat_present = parcourt_registre) then Next_color_dispo<='0'; Need_color<='0'; Memoire_finish<='1'; parcourt_finish<='0'; elsif(etat_present = memoire_dispo) then Next_color_dispo<='1'; Need_color<='0'; Memoire_finish<='1'; parcourt_finish<='0'; elsif(etat_present = memoire_dispo_and_finish) then Next_color_dispo<='1'; Need_color<='0'; Memoire_finish<='1'; parcourt_finish<='1'; elsif(etat_present = parcourt_finish_compare or etat_present = parcourt_finish_seq) then Next_color_dispo<='0'; Need_color<='0'; Memoire_finish<='1'; parcourt_finish<='1'; Next_color_dispo<='0'; Need_color<='0'; Memoire_finish<='0'; Projet intégré / D.Crausaz page 17

18 parcourt_finish<='0'; end process; end Memoire_seq_archi; Tests Memorisation et parcourt de la mémoire (mode 00 - Normal) #Initialisation force -freeze sim:/memoire_seq/reset 1 0 force -freeze sim:/memoire_seq/clock 1 0, 0 {50 ps} -r 100 force -freeze sim:/memoire_seq/etat_general force -freeze sim:/memoire_seq/mode 00 0 force -freeze sim:/memoire_seq/new_color force -freeze sim:/memoire_seq/dispo_new_color 0 0 force -freeze sim:/memoire_seq/need_memoire2 0 0 force -freeze sim:/memoire_seq/need_memoire 0 0 force -freeze sim:/memoire_seq/pressed_color ns #On va en état affichage/mémorisation force -freeze sim:/memoire_seq/etat_general force -freeze sim:/memoire_seq/reset ns #On ajoute la couleur sur new_color (ici : 000) force -freeze sim:/memoire_seq/dispo_new_color 1 0 force -freeze sim:/memoire_seq/dispo_new_color ns #On demande la première couleur de la mémoire force -freeze sim:/memoire_seq/need_memoire 1 0 force -freeze sim:/memoire_seq/need_memoire 0 0 #On passe en état comparaison et demand la première coluleur 0.6ns force -freeze sim:/memoire_seq/etat_general ns force -freeze sim:/memoire_seq/need_memoire 1 0 force -freeze sim:/memoire_seq/need_memoire ns #On repasse en état affichage/mémorisation force -freeze sim:/memoire_seq/etat_general ns force -freeze sim:/memoire_seq/new_color force -freeze sim:/memoire_seq/dispo_new_color 1 0 force -freeze sim:/memoire_seq/dispo_new_color ns Projet intégré / D.Crausaz page 18

19 force -freeze sim:/memoire_seq/need_memoire 1 0 force -freeze sim:/memoire_seq/need_memoire ns force -freeze sim:/memoire_seq/need_memoire 1 0 force -freeze sim:/memoire_seq/need_memoire ns Projet intégré / D.Crausaz page 19

20 (suite) Projet intégré / D.Crausaz page 20

21 Memorisation et parcourt de la mémoire (mode 01 Countdown) force -freeze sim:/memoire_seq/reset 1 0 force -freeze sim:/memoire_seq/clock 1 0, 0 {50 ps} -r 100 force -freeze sim:/memoire_seq/etat_general force -freeze sim:/memoire_seq/mode 11 0 force -freeze sim:/memoire_seq/new_color force -freeze sim:/memoire_seq/dispo_new_color 0 0 force -freeze sim:/memoire_seq/need_memoire 0 0 force -freeze sim:/memoire_seq/need_memoire2 0 0 force -freeze sim:/memoire_seq/reset 0 0 force -freeze sim:/memoire_seq/mode 01 0 force -freeze sim:/memoire_seq/etat_general # #on demande d'ajouter une couleur (15x) # force -freeze sim:/memoire_seq/dispo_new_color 1 0 force -freeze sim:/memoire_seq/dispo_new_color ns force -freeze sim:/memoire_seq/new_color force -freeze sim:/memoire_seq/dispo_new_color 1 0 force -freeze sim:/memoire_seq/dispo_new_color ns force -freeze sim:/memoire_seq/dispo_new_color 1 0 force -freeze sim:/memoire_seq/dispo_new_color ns force -freeze sim:/memoire_seq/dispo_new_color 1 0 force -freeze sim:/memoire_seq/dispo_new_color ns force -freeze sim:/memoire_seq/dispo_new_color 1 0 force -freeze sim:/memoire_seq/dispo_new_color ns force -freeze sim:/memoire_seq/dispo_new_color 1 0 force -freeze sim:/memoire_seq/dispo_new_color ns force -freeze sim:/memoire_seq/dispo_new_color 1 0 force -freeze sim:/memoire_seq/dispo_new_color ns force -freeze sim:/memoire_seq/dispo_new_color 1 0 force -freeze sim:/memoire_seq/dispo_new_color ns force -freeze sim:/memoire_seq/dispo_new_color 1 0 force -freeze sim:/memoire_seq/dispo_new_color ns force -freeze sim:/memoire_seq/dispo_new_color 1 0 force -freeze sim:/memoire_seq/dispo_new_color ns force -freeze sim:/memoire_seq/dispo_new_color 1 0 force -freeze sim:/memoire_seq/dispo_new_color ns force -freeze sim:/memoire_seq/dispo_new_color 1 0 force -freeze sim:/memoire_seq/dispo_new_color ns force -freeze sim:/memoire_seq/dispo_new_color 1 0 Projet intégré / D.Crausaz page 21

22 force -freeze sim:/memoire_seq/dispo_new_color ns force -freeze sim:/memoire_seq/dispo_new_color 1 0 force -freeze sim:/memoire_seq/dispo_new_color ns force -freeze sim:/memoire_seq/dispo_new_color 1 0 force -freeze sim:/memoire_seq/dispo_new_color 0 0 force -freeze sim:/memoire_seq/dispo_new_color 1 0 force -freeze sim:/memoire_seq/dispo_new_color 0 0 #on parcourt la mémoire pour l'affichage des leds couleurs force -freeze sim:/memoire_seq/need_memoire 1 0 force -freeze sim:/memoire_seq/need_memoire 0 0 force -freeze sim:/memoire_seq/need_memoire 1 0 force -freeze sim:/memoire_seq/need_memoire 0 0 force -freeze sim:/memoire_seq/need_memoire 0 0 force -freeze sim:/memoire_seq/need_memoire 1 0 force -freeze sim:/memoire_seq/need_memoire 0 0 force -freeze sim:/memoire_seq/need_memoire 1 0 force -freeze sim:/memoire_seq/need_memoire 0 0 force -freeze sim:/memoire_seq/need_memoire 1 0 force -freeze sim:/memoire_seq/need_memoire 0 0 force -freeze sim:/memoire_seq/need_memoire 1 0 force -freeze sim:/memoire_seq/need_memoire 0 0 force -freeze sim:/memoire_seq/need_memoire 1 0 force -freeze sim:/memoire_seq/need_memoire 0 0 force -freeze sim:/memoire_seq/need_memoire 1 0 force -freeze sim:/memoire_seq/need_memoire 0 0 #On parcourt la mémoire pour la comparaison force -freeze sim:/memoire_seq/etat_general force -freeze sim:/memoire_seq/need_memoire 1 0 force -freeze sim:/memoire_seq/need_memoire 0 0 force -freeze sim:/memoire_seq/need_memoire 1 0 force -freeze sim:/memoire_seq/need_memoire 0 0 force -freeze sim:/memoire_seq/need_memoire 0 0 force -freeze sim:/memoire_seq/need_memoire 1 0 force -freeze sim:/memoire_seq/need_memoire 0 0 force -freeze sim:/memoire_seq/need_memoire 1 0 force -freeze sim:/memoire_seq/need_memoire 0 0 Projet intégré / D.Crausaz page 22

23 force -freeze sim:/memoire_seq/need_memoire 1 0 force -freeze sim:/memoire_seq/need_memoire 0 0 force -freeze sim:/memoire_seq/need_memoire 1 0 force -freeze sim:/memoire_seq/need_memoire 0 0 force -freeze sim:/memoire_seq/need_memoire 1 0 force -freeze sim:/memoire_seq/need_memoire 0 0 force -freeze sim:/memoire_seq/need_memoire 1 0 force -freeze sim:/memoire_seq/need_memoire 0 0 #on retourne en mode affichage et les anciennes couleurs sont remplacées par les nouvelles. force -freeze sim:/memoire_seq/etat_general force -freeze sim:/memoire_seq/new_color force -freeze sim:/memoire_seq/dispo_new_color 1 0 force -freeze sim:/memoire_seq/dispo_new_color 0 0 force -freeze sim:/memoire_seq/dispo_new_color 1 0 force -freeze sim:/memoire_seq/dispo_new_color 0 0 force -freeze sim:/memoire_seq/dispo_new_color 1 0 force -freeze sim:/memoire_seq/dispo_new_color 0 0 Projet intégré / D.Crausaz page 23

24 On met 15 couleurs dans la mémoire Lors du parcours, on obtient la valeur mémorisée.. Fin Projet intégré / D.Crausaz page 24

25 4. Show_seq Description Le composant Show_seq va lire dans la mémoire une fois que la mémoire est utilisable (Memoire_finish= 1 et Etat_general= "001"). En donnant une impulsion à l état haut en sortie sur Need_memoire, l entrée Next_color sera mise à jour et la couleur sera disponible lorsque Next_color_dispo= 1. L entrée Parcourt_finish vient à 1 lorsque toutes les couleurs de la mémoire ont été parcourues. Le niveau spécifie le temps d allumage du led de couleur, c est-à-dire le temps que show_color_dispo est à 1. Etat_general (Eg) 3 Mode(M) 2 Memoire_finish( Mf) Parcourt_finish (Pf) Next_color_dispo (Ncd) Next_color (Nc) 3 Niveau (Nv) 2 Reset Clock Show_seq Showed_color 3 Showed_color_dispo Need_memoire Show_seq_finish Fonction On part de l état inactif puis si on doit afficher une couleur, on va dans l état besoin_memoire et ensuite dans l état attend où on attend que la couleur demandé soit disponible. Lorsqu elle est disponible, on affiche la couleur pendant un temps dépendant du niveau choisi (ou du mode s il s agit d un mode sans niveau), ensuite on retourne dans besoin_memoire et si on recommence l opération pour la couleur suivante. Si il n y a plus de couleur on va dans l état fini_impuls pour envoyer une impulsion comme quoi on a fini et on attend que l état général change. Si on est en mode multijoueur mixte, on envoie directement l impulsion indiquant que le composant a fini son travail sans rien afficher. Projet intégré / D.Crausaz page 25

26 En cas de changement d état général durant l opération d affichage (c-à-d : on a appuyé sur back pendant 3 secondes et on revient dans l état configuration) on revient dans l état inactif. Nous avons pris une fréquence de 65kHz et utilisons un compteur pour contrôler le nombre de coup d horloge et donc le temps d allumage pour chaque couleur, ainsi voici les temps d affichage. Niveau Temps Compteur Easy 3 secondes Normal (ou par défaut) 1.5 secondes Hard 2/3 secondes A chaque coup d horloge dans l état show_color le compteur est incrémenté. Lorsque le compteur dépasse la valeur du compteur dans l état show_color, on passe à l état besoin_color et on remet le compteur à 0. Projet intégré / D.Crausaz page 26

27 Diagramme d états Projet intégré / D.Crausaz page 27

28 Description des sorties Showed_color Showed_color_ Need_memoire Show_seq_finish dispo inactif besoin_memoire attend show_color next_color fini_impuls fini VHDL library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity Show_seq is Port ( etat_general : in STD_LOGIC_VECTOR (2 downto 0); mode : in STD_LOGIC_VECTOR (1 downto 0); memoire_finish : in STD_LOGIC; parcourt_finish : in STD_LOGIC; next_color_dispo : in STD_LOGIC; next_color : in STD_LOGIC_VECTOR (2 downto 0); niveau : in STD_LOGIC_VECTOR (1 downto 0); reset : in STD_LOGIC; clock : in STD_LOGIC; showed_color : out STD_LOGIC_VECTOR(2 downto 0); showed_color_dispo : out STD_LOGIC; need_memoire : out STD_LOGIC; show_seq_finish: out STD_LOGIC); end Show_seq; architecture Show_seq_archi of Show_seq is type etats is (inactif, besoin_memoire, attend, show_color, fini_impuls, fini); signal etat_present, etat_futur : etats; signal cnt : integer; begin combi: process(etat_present, etat_general, mode, memoire_finish, parcourt_finish, next_color_dispo, next_color, niveau, cnt) begin if(etat_general/="001") then etat_futur<=inactif; case etat_present is when inactif => if(memoire_finish='1') then if(mode="11") then etat_futur<=fini_impuls; etat_futur<=besoin_memoire; etat_futur<=inactif; when besoin_memoire => if(parcourt_finish='0') then etat_futur<=attend; etat_futur<=fini_impuls; Projet intégré / D.Crausaz page 28

29 when attend => if(next_color_dispo='1') then etat_futur<=show_color; etat_futur<=attend; when show_color => if(cnt>43333 and mode(1)='0' and niveau="10") then etat_futur<=besoin_memoire; elsif(cnt> and mode(1)='0' and niveau="00") then etat_futur<=besoin_memoire; elsif(cnt>97500 and (mode(1)='1' or niveau="01")) then etat_futur<=besoin_memoire; etat_futur<=show_color; when fini_impuls => etat_futur<=fini; when fini => etat_futur<=fini; when others => etat_futur<=inactif; end case; end process; registre:process(clock, Reset) begin if Reset='1' then etat_present <= inactif; cnt<=0; elsif rising_edge(clock) then if(etat_present = show_color) then cnt<=cnt+1; if(etat_present = besoin_memoire or etat_present=inactif) then cnt<=0; etat_present<=etat_futur; end process; decodeur: process(etat_present) begin if(etat_present = besoin_memoire) then showed_color<="000"; showed_color_dispo<='0'; need_memoire<='1'; show_seq_finish<='0'; elsif(etat_present = show_color) then showed_color<=next_color; showed_color_dispo<='1'; need_memoire<='0'; show_seq_finish<='0'; elsif(etat_present = fini_impuls) then showed_color<="000"; showed_color_dispo<='0'; need_memoire<='0'; show_seq_finish<='1'; showed_color<="000"; showed_color_dispo<='0'; need_memoire<='0'; show_seq_finish<='0'; end process; end Show_seq_archi; Projet intégré / D.Crausaz page 29

30 Tests On teste un affichage d une séquence en mode normal niveau Easy avec une seule couleur. #Initialisation force -freeze sim:/show_seq/etat_general force -freeze sim:/show_seq/mode 00 0 force -freeze sim:/show_seq/memoire_finish 0 0 force -freeze sim:/show_seq/parcourt_finish 0 0 force -freeze sim:/show_seq/next_color_dispo 0 0 force -freeze sim:/show_seq/next_color force -freeze sim:/show_seq/niveau 00 0 force -freeze sim:/show_seq/reset 0 0 force -freeze sim:/show_seq/clock 1 0, 0 {50 ps} -r ns #On va dans l état affichage de sequence mais la memoire n est pas encore prête force -freeze sim:/show_seq/etat_general ns #On reçoit un signal indiquant que la memoire est prête force -freeze sim:/show_seq/memoire_finish ns #On reçoit un signal indiquant que la couleur demandé est prête est prête force -freeze sim:/show_seq/next_color_dispo 1 0 force -freeze sim:/show_seq/next_color force -freeze sim:/show_seq/parcourt_finish 1 0 #On fait des coups d horloge durant plus de 3 secondes ##A ce moment, on s aperçoit que le composant est en état fini. Il attend un changement d état général pour revenir état inactif. ##Test comme prévu : réussi Projet intégré / D.Crausaz page 30

31 (après 3 secondes) Projet intégré / D.Crausaz page 31

32 5. Compare_seq Description J ai dû ajouter deux entrées au composant, l entrée next_color_dispo qui est une impulsion provenant du composant Memoire_seq qui est à 1 dès que la couleur sur l entrée Next_color est disponible et l entrée Parcourt_finish (provenant aussi de Memoire_seq) qui indique lorsque toutes les couleurs de la mémoire ont déjà été comparées en étant à l état haut. Il a aussi fallu une sortie Need_memoire2 pour envoyer une impulsion lorsqu on veut lire la couleur suivante. Need_Memoire2 Parcourt_finish Fonction Dès qu on est en état comparaison, ce composant s active et attend qu une couleur soit sélectionnée par l utilisateur. Si la couleur correspond à la couleur de la mémoire alors on envoie une impulsion pour indiquer que c est correct. Sinon on envoie une impulsion pour indiquer une erreur. Lorsque toutes les couleurs sont correctes, une impulsion est envoyée pour dire que la séquence est finie. Un compteur est utilisé (lors de l état attend_color) pour le mode normal individuel et countdown, si le joueur met trop de temps entre deux pressions de bouton, une erreur est envoyée. Ce temps dépend du niveau configuré. Niveau Temps Compteur Easy illimité - Medium 8 secondes Hard 2 secondes Projet intégré / D.Crausaz page 32

33 Diagramme d états Projet intégré / D.Crausaz page 33

34 VHDL library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity Compare_seq is Port ( Etat_general : in STD_LOGIC_VECTOR (2 downto 0); Mode : in STD_LOGIC_VECTOR (1 downto 0); Next_color : in STD_LOGIC_VECTOR (2 downto 0); Next_color_dispo : in STD_LOGIC; Parcourt_finish : in STD_LOGIC; Niveau : in STD_LOGIC_VECTOR (1 downto 0); Button_color_red : in STD_LOGIC; Button_color_blue : in STD_LOGIC; Button_color_green : in STD_LOGIC; Button_color_yellow : in STD_LOGIC; Button_color_purple : in STD_LOGIC; Reset : in STD_LOGIC; Clock : in STD_LOGIC; Error : out STD_LOGIC; Compare_color_finish : out STD_LOGIC; Compare_seq_finish : out STD_LOGIC; Pressed_color : out STD_LOGIC_VECTOR (2 downto 0); Need_Memoire2 : out STD_LOGIC); end Compare_seq; architecture compare_seq_archi of Compare_seq is type etats is (inactif, attend_color, need_color_impuls, need_color, compare, compare_ok, attend_add_color, compare_finish, fini, erreur); signal etat_present, etat_futur : etats; signal color_from_joueur, color_from_memoire : STD_LOGIC_VECTOR(2 downto 0); signal cnt : Integer; begin process(etat_general, Mode, Next_color, Next_color_dispo, Parcourt_finish, Niveau, Button_color_red, Button_color_blue, Button_color_green, Button_color_yellow, Button_color_purple, etat_present, cnt, color_from_memoire, color_from_joueur) begin if etat_general/="010" then etat_futur<=inactif; case etat_present is when inactif => etat_futur<=attend_color; when attend_color => if mode="11" and parcourt_finish='1' then etat_futur<=attend_add_color; elsif Button_color_red='1' then etat_futur<=need_color; elsif Button_color_blue='1' then etat_futur<=need_color; elsif Button_color_green='1' then etat_futur<=need_color; elsif Button_color_yellow='1' then etat_futur<=need_color; elsif Button_color_purple='1' then etat_futur<=need_color; elsif Mode(1)='0' and ((Niveau="10" and cnt>=130000) or (Niveau="01" and cnt>=520000)) then etat_futur<=erreur; etat_futur<=attend_color; when need_color_impuls => Projet intégré / D.Crausaz page 34

35 etat_futur<=need_color; when need_color => if next_color_dispo='1' then etat_futur<=compare; etat_futur<=need_color; when compare => if color_from_memoire=color_from_joueur then etat_futur<=compare_ok; etat_futur<=erreur; when compare_ok => if parcourt_finish='0' then etat_futur<=attend_color; elsif parcourt_finish='1' and mode="11" then etat_futur<=attend_add_color; etat_futur<=compare_finish; when attend_add_color => if Button_color_red='1' then etat_futur<=compare_finish; elsif Button_color_blue='1' then etat_futur<=compare_finish; elsif Button_color_green='1' then etat_futur<=compare_finish; elsif Button_color_yellow='1' then etat_futur<=compare_finish; elsif Button_color_purple='1' then etat_futur<=compare_finish; etat_futur<=attend_add_color; when compare_finish erreur => etat_futur<=fini; when fini => etat_futur<=fini; when others => etat_futur<=inactif; end case; end process; process(clock, Reset) begin if reset='1' then etat_present<=inactif; pressed_color<= (others=>'0'); color_from_joueur<="000"; color_from_memoire<="000"; elsif rising_edge(clock) then etat_present<=etat_futur; if(etat_present=attend_color) then cnt<=cnt+1; if Button_color_red='1' then color_from_joueur<="000"; elsif Button_color_blue='1' then color_from_joueur<="001"; elsif Button_color_green='1' then color_from_joueur<="010"; elsif Button_color_yellow='1' then color_from_joueur<="011"; elsif (etat_present=need_color) then if next_color_dispo='1' then color_from_memoire<=next_color; Projet intégré / D.Crausaz page 35

36 cnt<=0; elsif (etat_present=attend_add_color) then if Button_color_red='1' then pressed_color<="000"; elsif Button_color_blue='1' then pressed_color<="001"; elsif Button_color_green='1' then pressed_color<="010"; elsif Button_color_yellow='1' then pressed_color<="011"; elsif Button_color_purple='1' then pressed_color<="100"; elsif etat_present=inactif or etat_present=erreur then cnt<=0; end process; decodeur: process(etat_present) begin if etat_present=compare_ok then Compare_color_finish<='1'; Compare_seq_finish<='0'; Error<='0'; Need_Memoire2<='0'; elsif etat_present=compare_finish then Compare_color_finish<='0'; Compare_seq_finish<='1'; Error<='0'; Need_Memoire2<='0'; elsif etat_present=need_color_impuls then Compare_color_finish<='0'; Compare_seq_finish<='0'; Error<='0'; Need_Memoire2<='1'; elsif etat_present=erreur then Compare_color_finish<='0'; Compare_seq_finish<='0'; Error<='1'; Need_Memoire2<='0'; elsif etat_present=erreur then Compare_color_finish<='0'; Compare_seq_finish<='0'; Error<='1'; Need_Memoire2 <='0'; Compare_color_finish<='0'; Compare_seq_finish<='0'; Error<='0'; Need_color2<='0'; end process; end compare_seq_archi; Tests On simule une comparaison lorsqu on est en mode normal niveau EASY #on force toutes les entrées à 0 et initialize la clock force -freeze sim:/compare_seq/etat_general Projet intégré / D.Crausaz page 36

37 force -freeze sim:/compare_seq/mode 00 0 force -freeze sim:/compare_seq/next_color force -freeze sim:/compare_seq/next_color_dispo 0 0 force -freeze sim:/compare_seq/parcourt_finish 0 0 force -freeze sim:/compare_seq/niveau 00 0 force -freeze sim:/compare_seq/button_color_red 0 0 force -freeze sim:/compare_seq/button_color_blue 0 0 force -freeze sim:/compare_seq/button_color_green 0 0 force -freeze sim:/compare_seq/button_color_yellow 0 0 force -freeze sim:/compare_seq/button_color_purple 0 0 force -freeze sim:/compare_seq/reset 0 0 force -freeze sim:/compare_seq/clock 1 0, 0 {50 ps} -r 100 #on fait le reset (toutes les sorties sont à 0) force -freeze sim:/compare_seq/reset 1 0 force -freeze sim:/compare_seq/reset 0 0 force -freeze sim:/compare_seq/etat_general #on va en etat comparaison force -freeze sim:/compare_seq/etat_general ns #on attend que le joueur appuie sur une couleur force -freeze sim:/compare_seq/button_color_blue 1 0 force -freeze sim:/compare_seq/button_color_blue ns #on attent que la mémoire met à jour la couleur force -freeze sim:/compare_seq/next_color force -freeze sim:/compare_seq/next_color_dispo 1 0 force -freeze sim:/compare_seq/next_color_dispo 0 0 #les deux couleurs sont comparés et correspondent #on refait le même processus, mais cette fois les couleur ne correspondent pas force -freeze sim:/compare_seq/button_color_yellow 1 0 force -freeze sim:/compare_seq/button_color_yellow 0 0 force -freeze sim:/compare_seq/next_color force -freeze sim:/compare_seq/next_color_dispo 1 0 force -freeze sim:/compare_seq/next_color_dispo 0 0 ##### Projet intégré / D.Crausaz page 37

38 #on envoie une impulsion erreur et on fini ##### ##### #on revient dans l état inactif lors d un changement d état gérnéral ##### force -freeze sim:/compare_seq/etat_general #test comme prévu : réussi Projet intégré / D.Crausaz page 38

39 Voici le chronogramme correspondant Projet intégré / D.Crausaz page 39

40 En mode normal niveau HARD force -freeze sim:/compare_seq/etat_general force -freeze sim:/compare_seq/mode 00 0 force -freeze sim:/compare_seq/next_color force -freeze sim:/compare_seq/next_color_dispo 0 0 force -freeze sim:/compare_seq/parcourt_finish 0 0 force -freeze sim:/compare_seq/niveau 10 0 force -freeze sim:/compare_seq/button_color_red 0 0 force -freeze sim:/compare_seq/button_color_blue 0 0 force -freeze sim:/compare_seq/button_color_green 0 0 force -freeze sim:/compare_seq/button_color_yellow 0 0 force -freeze sim:/compare_seq/button_color_purple 0 0 force -freeze sim:/compare_seq/reset 0 0 force -freeze sim:/compare_seq/clock 1 0, 0 {50 ps} -r 100 force -freeze sim:/compare_seq/reset 1 0 force -freeze sim:/compare_seq/reset 0 0 force -freeze sim:/compare_seq/etat_general force -freeze sim:/compare_seq/etat_general #résultats attend : test réussi Sur le chronogramme suivant, on remarque qu une erreur est envoyée après du 2 secondes, si le joueur n appuye pas sur le bouton Projet intégré / D.Crausaz page 40

41 Impulsion d erreur Projet intégré / D.Crausaz page 41

42 Mode mixte : les joueurs ajoutent leurs propres couleurs à la fin de la séquence force -freeze sim:/compare_seq/etat_general force -freeze sim:/compare_seq/mode 11 0 force -freeze sim:/compare_seq/next_color force -freeze sim:/compare_seq/next_color_dispo 0 0 force -freeze sim:/compare_seq/parcourt_finish 1 0 force -freeze sim:/compare_seq/niveau 00 0 force -freeze sim:/compare_seq/button_color_red 0 0 force -freeze sim:/compare_seq/button_color_blue 0 0 force -freeze sim:/compare_seq/button_color_green 0 0 force -freeze sim:/compare_seq/button_color_yellow 0 0 force -freeze sim:/compare_seq/button_color_purple 0 0 force -freeze sim:/compare_seq/reset 0 0 force -freeze sim:/compare_seq/clock 1 0, 0 {50 ps} -r 100 force -freeze sim:/compare_seq/reset 1 0 force -freeze sim:/compare_seq/reset 0 0 force -freeze sim:/compare_seq/etat_general force -freeze sim:/compare_seq/etat_general force -freeze sim:/compare_seq/button_color_purple 1 0 force -freeze sim:/compare_seq/button_color_purple 0 0 ##test comme prévu : réussi Si on a fini de parcourir la mémoire on ajoute une couleur On a l impulsion qui est envoyé sur compare_seq_finish et le bus pressed_color mis à jour Puis le composant à fini son travail. Projet intégré / D.Crausaz page 42

43 6. Affichage_color Description Suite à notre discussion durant la dernière séance, les entrées de ce composant ont passablement changés. L entrée Showed_color_dispo est à 1 lorsque la couleur sur le bus Showed_color est disponible. De plus nous avons maintenant en entrées les couleurs non synchronisées (de ce fait nous avons plus de raison de passer le mode en entrée). Ceci nous permettra d afficher l allumer le led correspondant à la couleur pressée pendant toute la durée de la pression sur la touche couleur. En état affichage de séquence(etat_general="001"), on affichera la couleur sur le bus Showed_color pour autant que la couleur est disponible(showed_color_dispo= 1 ). En état comparaison, on allumera les boutons qui sont en cours de pression. La figure 1 représente notre composant affichge_color. Etat_general 3 Showed_color 2 Showed_color_dispo Button_color_red Button_color_blue Affichage_color Led_color_red Led_color_blue Led_color_green Led_color_blue Button_color_green Button_color_yellow Led_color_purple Button_color_purple Figure 1 : Composant Affichage_color Si deux ou plusieurs touches Button_color_xxx sont appuyées en même temps, tous les leds correspondants à chacune des touches s allument également en même temps (Ceci lors de l état général comparaison). Ceci est plus logique fait que l impulsion est envoyé lors du relâchement du bouton. Projet intégré / D.Crausaz page 43

44 Table de vérité La table de vérité se trouve sur deux lignes, faute de place. Entrées : Etat_ general(2) Etat_ general(1) Etat_ general(0) Showed_ color(2) Showed_ color(1) Showed_ color(0) Showed_ color_ dispo Button_ color_ red Button_ color_ blue Button_ color_ green Button_ color_ yellow 1) x x x x x x x x x 2) x x x 0 x x x x x 3) x x x x x 4) x x x x x 5) x x x x x 6) x x x x x 7) x x x x x 8) x x x x x x x x x 9) x x x x x x x x x 10) x x x x x x x x x Led_color_red Led_color_blue Led_color_green Led_color_yellow Led_color_purple 1) ) ) ) ) ) ) )* Button_color_red Button_color_blue Button_color_green Button_color_yellow Button_color_purple 9) ) Button_ color_ purple * la ligne 8 veut simplement dire que la sortie Led_color_xxx prend la valeur de Button_color_xxx correspondant à la même couleur Projet intégré / D.Crausaz page 44

45 VHDL Comme il y a beaucoup d entrées, je ne vais pas simplifier les équations à l aide des tables de Karnaugh mais décrire les sorties avec affection avec condition, comme nous l avions fait lorsque nous avions décrit l encodeur de priorité(tp6). library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity Affichage_color is Port ( Etat_general : in STD_LOGIC_VECTOR (2 downto 0); Showed_color : in STD_LOGIC_VECTOR (2 downto 0); Showed_color_dispo : in STD_LOGIC; Button_color_red : in STD_LOGIC; Button_color_blue : in STD_LOGIC; Button_color_green : in STD_LOGIC; Button_color_yellow : in STD_LOGIC; Button_color_purple : in STD_LOGIC; Led_color_red : out STD_LOGIC; Led_color_blue : out STD_LOGIC; Led_color_green : out STD_LOGIC; Led_color_yellow : out STD_LOGIC; Led_color_purple : out STD_LOGIC); end Affichage_color; architecture Behavioral of Affichage_color is begin Led_color_red<= '1' when (Etat_general="001" and Showed_color="000" and Showed_color_dispo='1') Button_color_red when Etat_general="010" '0'; Led_color_blue<= '1' when (Etat_general="001" and Showed_color="001" and Showed_color_dispo='1') Button_color_blue when Etat_general="010" '0'; Led_color_green<= '1' when (Etat_general="001" and Showed_color="010" and Showed_color_dispo='1') Button_color_green when Etat_general="010" '0'; Led_color_yellow<= '1' when (Etat_general="001" and Showed_color="011" and Showed_color_dispo='1') Button_color_yellow when Etat_general="010" '0'; Led_color_purple<= '1' when (Etat_general="001" and Showed_color="100" and Showed_color_dispo='1') Button_color_purple when Etat_general="010" '0'; end Behavioral; Projet intégré / D.Crausaz page 45

46 Tests Voici la macro : force -freeze sim:/affichage_color/etat_general force -freeze sim:/affichage_color/showed_color force -freeze sim:/affichage_color/showed_color_dispo 0 0 force -freeze sim:/affichage_color/button_color_red 0 0 force -freeze sim:/affichage_color/button_color_blue 0 0 force -freeze sim:/affichage_color/button_color_green 0 0 force -freeze sim:/affichage_color/button_color_yellow 0 0 force -freeze sim:/affichage_color/button_color_purple 0 0 force -freeze sim:/affichage_color/button_color_blue 1 0 force -freeze sim:/affichage_color/button_color_purple 1 0 force -freeze sim:/affichage_color/button_color_purple 0 0 force -freeze sim:/affichage_color/button_color_blue 0 0 force -freeze sim:/affichage_color/etat_general force -freeze sim:/affichage_color/button_color_yellow 1 0 force -freeze sim:/affichage_color/showed_color force -freeze sim:/affichage_color/showed_color_dispo 1 0 force -freeze sim:/affichage_color/showed_color_dispo 0 0 force -freeze sim:/affichage_color/button_color_yellow 0 0 force -freeze sim:/affichage_color/etat_general force -freeze sim:/affichage_color/button_color_green 1 0 force -freeze sim:/affichage_color/button_color_yellow 1 0 Projet intégré / D.Crausaz page 46

47 Voici le chronogramme, j ai uniquement modifié les entrées afin d observer l effet sur les sorties. Etat_general = "000" Les sorties sont toujours toutes à 0 Etat_general = "001" Lorsque Showed_color_dispo = 1, les sorties correspondent à la couleur codée sur Showed_color, sinon les sorties sont toutes à 0 Etat_general = "010" Les sorties correspondent aux couleurs pressés Projet intégré / D.Crausaz page 47

48 7. Conclusion Il était intéressant de voir comment développer les différents composants. Cependant je pense que nous n avons pas suffisamment séparé les états généraux dès le départ et nous nous retrouvons avec des composants trop grands, à l intérieur desquels nous devons traiter énormément de cas différents. Exemple : les composants agissent différemment suivant le mode choisi Je pense qu il ne sera pas facile à assembler les composants lors du montage final, car à mon avis certains cas n ont pas été traiter et la communication entre les composants risque également de poser des problèmes. Projet intégré / D.Crausaz page 48

Manipulations du laboratoire

Manipulations du laboratoire Manipulations du laboratoire 1 Matériel Les manipulations de ce laboratoire sont réalisées sur une carte électronique comprenant un compteur 4-bit asynchrone (74LS93) avec possibilité de déclenchement

Plus en détail

Le langage VHDL. Eduardo Sanchez EPFL

Le langage VHDL. Eduardo Sanchez EPFL Le langage VHDL Eduardo Sanchez EPFL Livres conseillés: John F. Wakerly Digital design (4th edition) Prentice Hall, 2005 Peter J. Ashenden The designer's guide to VHDL (3rd edition) Morgan Kaufmann, 2008

Plus en détail

T. BLOTIN Lycée Paul-Eluard 93206 SAINT-DENIS

T. BLOTIN Lycée Paul-Eluard 93206 SAINT-DENIS T. BLOTIN Lycée Paul-Eluard 93206 SAINT-DENIS SOMMAIRE I. Le VHDL pour qui, pourquoi, quand, comment? A. Le VHDL!...... 1 B. Pourquoi un langage de description?...... 1 C. Les limites actuelles...... 2

Plus en détail

SIN-FPGA DESCRIPTION PAR SCHEMA

SIN-FPGA DESCRIPTION PAR SCHEMA SIN-FPGA DESCRIPTION PAR SCHEMA Documents ressources: http://www.altera.com/literature/lit-index.html Introduction to Quartus II : intro_to_quartus2.pdf Documentation QUARTUS II : quartusii_handbook.pdf

Plus en détail

VIII- Circuits séquentiels. Mémoires

VIII- Circuits séquentiels. Mémoires 1 VIII- Circuits séquentiels. Mémoires Maintenant le temps va intervenir. Nous avions déjà indiqué que la traversée d une porte ne se faisait pas instantanément et qu il fallait en tenir compte, notamment

Plus en détail

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits Architecture des ordinateurs TD1 - Portes logiques et premiers circuits 1 Rappel : un peu de logique Exercice 1.1 Remplir la table de vérité suivante : a b a + b ab a + b ab a b 0 0 0 1 1 0 1 1 Exercice

Plus en détail

IFT1215 Introduction aux systèmes informatiques

IFT1215 Introduction aux systèmes informatiques Introduction aux circuits logiques de base IFT25 Architecture en couches Niveau 5 Niveau 4 Niveau 3 Niveau 2 Niveau Niveau Couche des langages d application Traduction (compilateur) Couche du langage d

Plus en détail

COMMANDER A DISTANCE LE ROBOT-PONG ETUDE DE LA TELECOMMANDE (2 nde PARTIE)

COMMANDER A DISTANCE LE ROBOT-PONG ETUDE DE LA TELECOMMANDE (2 nde PARTIE) SIN STI2D - Système d'information et Numérique TD TP Cours Synthèse Devoir Evaluation Projet Document ressource COMMANDER A DISTANCE LE ROBOT-PONG ETUDE DE LA TELECOMMANDE (2 nde PARTIE) 1 GESTION DES

Plus en détail

GPA770 Microélectronique appliquée Exercices série A

GPA770 Microélectronique appliquée Exercices série A GPA770 Microélectronique appliquée Exercices série A 1. Effectuez les calculs suivants sur des nombres binaires en complément à avec une représentation de 8 bits. Est-ce qu il y a débordement en complément

Plus en détail

Conception Systèmes numériques VHDL et synthèse automatique des circuits

Conception Systèmes numériques VHDL et synthèse automatique des circuits Année 2011-2012 Conception Systèmes numériques VHDL et synthèse automatique des circuits Travaux pratiques WIDEMACV1 LAAS-CNRS 2011 Présentation du simulateur VHDL sous environnement Cadence Présentation

Plus en détail

Projet # 3 Serrure à deux clés

Projet # 3 Serrure à deux clés Département d électronique industrielle Projet # 3 Serrure à deux clés Semaines 8 et 9, 10 Session 1 Circuits logiques 243-206-RA Automne 2010 Tables des matières 1 OBJECTIFS DE L ACTIVITÉ... 3 1.1 COMPÉTENCES

Plus en détail

Algorithmique & programmation

Algorithmique & programmation Algorithmique & programmation Type structuré Article, Enregistrement, Structure Définition de nouveaux types!! On a vu les types simples "! entier, booléen, caractère, chaîne de caractères!! Comment gérer

Plus en détail

Conception Systèmes numériques VHDL et synthèse automatique des circuits

Conception Systèmes numériques VHDL et synthèse automatique des circuits Année 2008-2009 Conception Systèmes numériques VHDL et synthèse automatique des circuits Travaux pratiques Pentium4 Présentation du simulateur VHDL sous environnement Cadence Présentation de l outil Synopsys

Plus en détail

FONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE

FONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE I/ GÉNÉRALITÉS I.1/ Fonction Un compteur binaire est utilisé : -pour compter un certain nombre d'évènements binaires -pour diviser la fréquence d'un signal logique par 2 m Page 1 FONCTION COMPTAGE BINAIRE

Plus en détail

Circuit comportant plusieurs boucles

Circuit comportant plusieurs boucles Sommaire de la séquence 3 Séance 1 Qu est-ce qu un circuit comportant des dérivations? A Les acquis du primaire B Activités expérimentales C Exercices d application Séance 2 Court-circuit dans un circuit

Plus en détail

Exercice 1. Partie 1. Questions

Exercice 1. Partie 1. Questions Exercice 1 Partie 1 Considérons un réveille-matin simplifié : 1. On peut mettre l alarme on ou off ; 2. Quand l heure courante devient égale à l heure d alarme, le réveil sonne sans s arrêter. 3. On peut

Plus en détail

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Jade. Projet Intelligence Artificielle «Devine à quoi je pense» Jade Projet Intelligence Artificielle «Devine à quoi je pense» Réalisé par Djénéba Djikiné, Alexandre Bernard et Julien Lafont EPSI CSII2-2011 TABLE DES MATIÈRES 1. Analyse du besoin a. Cahier des charges

Plus en détail

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview. ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview. Sciences et Technologies de l Industrie et du Développement Durable Formation des enseignants parcours : ET24 Modèle de

Plus en détail

SUR MODULE CAMÉRA C38A (OV7620)

SUR MODULE CAMÉRA C38A (OV7620) Applications maquette d'étude EP10K20 DÉMULTIPLEXEUR BT.656 SUR MODULE CAMÉRA C38A OV7620 SCHÉMAS ET DESCRIPTIONS AHDL 1. Schéma principal Le démultiplexeur proprement dit est la fonction "Decod_BT656_1".

Plus en détail

- affichage digital - aiguille

- affichage digital - aiguille . Lire l heure On peut lire l heure sur une horloge, un réveil, une montre à : - affichage digital - aiguille A) La lecture sur un système digital est très simple, il suffit de lire les nombres écrits

Plus en détail

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE ARDUINO DOSSIER RESSOURCE POUR LA CLASSE Sommaire 1. Présentation 2. Exemple d apprentissage 3. Lexique de termes anglais 4. Reconnaître les composants 5. Rendre Arduino autonome 6. Les signaux d entrée

Plus en détail

lundi 3 août 2009 Choose your language What is Document Connection for Mac? Communautés Numériques L informatique à la portée du Grand Public

lundi 3 août 2009 Choose your language What is Document Connection for Mac? Communautés Numériques L informatique à la portée du Grand Public Communautés Numériques L informatique à la portée du Grand Public Initiation et perfectionnement à l utilisation de la micro-informatique Microsoft Document Connection pour Mac. Microsoft Document Connection

Plus en détail

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes PLAN CYCLE DE VIE D'UN LOGICIEL EXPRESSION DES BESOINS SPÉCIFICATIONS DU LOGICIEL CONCEPTION DU LOGICIEL LA PROGRAMMATION TESTS ET MISE AU POINT DOCUMENTATION CONCLUSION C.Crochepeyre Génie Logiciel Diapason

Plus en détail

Programme. 048884-EcranTactile-01 MANUEL DE MISE EN ŒUVRE

Programme. 048884-EcranTactile-01 MANUEL DE MISE EN ŒUVRE Programme d application 048884-EcranTactile-01 MANUEL DE MISE EN ŒUVRE Sommaire 4 5 7 10 11 13 14 18 19 21 22 Description des fonctionnalités du produit Généralité concernant le fonctionnement Utilisation

Plus en détail

Initiation à LabView : Les exemples d applications :

Initiation à LabView : Les exemples d applications : Initiation à LabView : Les exemples d applications : c) Type de variables : Créer un programme : Exemple 1 : Calcul de c= 2(a+b)(a-3b) ou a, b et c seront des réels. «Exemple1» nom du programme : «Exemple

Plus en détail

QUESTION 1 {2 points}

QUESTION 1 {2 points} ELE4301 Systèmes logiques II Page 1 de 8 QUESTION 1 {2 points} En se servant de paramètres électriques donnés dans le Tableau 1 ci-dessous, on désire déterminer la fréquence d opération du compteur présenté

Plus en détail

TP - Alarme de voiture / Approche fonctionnelle

TP - Alarme de voiture / Approche fonctionnelle TP - Alarme de voiture / Approche fonctionnelle Tous les objets techniques, même les plus compliqués, sont étudiés à l aide d une méthode appelée : étude fonctionnelle ou systémique. 1/ Présentation du

Plus en détail

SYSTEME DE PALPAGE A TRANSMISSION RADIO ETUDE DU RECEPTEUR (MI16) DOSSIER DE PRESENTATION. Contenu du dossier :

SYSTEME DE PALPAGE A TRANSMISSION RADIO ETUDE DU RECEPTEUR (MI16) DOSSIER DE PRESENTATION. Contenu du dossier : SYSTEME DE PALPAGE A TRANSMISSION RADIO ETUDE DU RECEPTEUR (MI16) DOSSIER DE PRESENTATION Contenu du dossier : 1. PRESENTATION DU SYSTEME DE PALPAGE A TRANSMISSION RADIO....1 1.1. DESCRIPTION DU FABRICANT....1

Plus en détail

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques.

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques. Logique binaire I. L'algèbre de Boole L'algèbre de Boole est la partie des mathématiques, de la logique et de l'électronique qui s'intéresse aux opérations et aux fonctions sur les variables logiques.

Plus en détail

GOL-502 Industrie de services. Travaux Pratique / Devoir #7

GOL-502 Industrie de services. Travaux Pratique / Devoir #7 GOL-502 Industrie de services Travaux Pratique / Devoir #7 Version 2012 Modélisation à l'aide du langage UML 1) Diagramme de cas d'utilisation 2) Diagramme de classes 3) Diagramme de séquence 4) Diagramme

Plus en détail

Présentation et installation PCE-LOG V4 1-5

Présentation et installation PCE-LOG V4 1-5 PCE-LOG V4 version borne externe type PC50 mesures U, I + 3 TS version coffret mural mesures U, U, I + 3TS PRESENTATION 1-5 1 Presentation PCE-LOG V4 est un datalogger pour la télésurveillance de la protection

Plus en détail

Cours de Programmation en Langage Synchrone SIGNAL. Bernard HOUSSAIS IRISA. Équipe ESPRESSO

Cours de Programmation en Langage Synchrone SIGNAL. Bernard HOUSSAIS IRISA. Équipe ESPRESSO Cours de Programmation en Langage Synchrone SIGNAL Bernard HOUSSAIS IRISA. Équipe ESPRESSO 24 septembre 2004 TABLE DES MATIÈRES 3 Table des matières 1 Introduction 5 1.1 La Programmation Temps Réel.........................

Plus en détail

Jeux mathématiques en maternelle. Activités clés. Jeu des maisons et des jardins (Yvette Denny PEMF)

Jeux mathématiques en maternelle. Activités clés. Jeu des maisons et des jardins (Yvette Denny PEMF) Activités clés NIVEAU : PS/MS Jeu des maisons et des jardins (Yvette Denny PEMF) Compétences Construire les premiers nombres dans leur aspect cardinal Construire des collections équipotentes Situation

Plus en détail

VMT Mod : Ventilation modulée pour le tertiaire

VMT Mod : Ventilation modulée pour le tertiaire Notice de Montage VMT Mod : Ventilation modulée pour le tertiaire VC 100876 - D920_a - RCS 956 506 828 - Imprimé en France/Printed in France VMT Mod est un système de ventilation intelligent à destination

Plus en détail

Manuel d utilisation de l outil collaboratif

Manuel d utilisation de l outil collaboratif Manuel d utilisation de l outil collaboratif Réf OCPD-V2 Page 1 / 24 a mis en œuvre un outil collaboratif qui permet de partager des informations entre collaborateurs. Il permet à des utilisateurs travaillant

Plus en détail

Fiche technique CPU 314SC/DPM (314-6CG13)

Fiche technique CPU 314SC/DPM (314-6CG13) Fiche technique CPU 314SC/DPM (3146CG13) Données techniques N de commande 3146CG13 Type CPU 314SC/DPM Information générale Note Caractéristiques SPEEDBus Technologie SPEED7 24 x DI, 16 x DO, 8 x DIO, 4

Plus en détail

ASR1 TD7 : Un microprocesseur RISC 16 bits

ASR1 TD7 : Un microprocesseur RISC 16 bits {Â Ö Ñ º ØÖ Ý,È ØÖ ºÄÓ Ù,Æ ÓÐ ºÎ ÝÖ Ø¹ ÖÚ ÐÐÓÒ} Ò ¹ÐÝÓÒº Ö ØØÔ»»Ô Ö Óº Ò ¹ÐÝÓÒº Ö» Ö Ñ º ØÖ Ý»¼ Ö½» ASR1 TD7 : Un microprocesseur RISC 16 bits 13, 20 et 27 novembre 2006 Présentation générale On choisit

Plus en détail

SD1+ SD1+ SD1+ ENT ESC

SD1+ SD1+ SD1+ ENT ESC SD SD SD A B 4 5 6 C 7 8 9 D ENT 0 ESC Sommaire Options du Menu SD........ Généralités...... Raccordements.......... Mot de Passe........... Type de Mot de Passe........... Sortie Programmable...........

Plus en détail

Evolutions dans FFBClubNet v. 23.1.0 :

Evolutions dans FFBClubNet v. 23.1.0 : Evolutions dans FFBClubNet v. 23.1.0 : 1. envoi par email au service assistance de la F.F.B. (assistance.club@ffbridge.net) de la sauvegarde générale du club sur demande du service... 2 2. envoi des résultats

Plus en détail

ELP 304 : Électronique Numérique. Cours 1 Introduction

ELP 304 : Électronique Numérique. Cours 1 Introduction ELP 304 : Électronique Numérique Cours 1 Introduction Catherine Douillard Dépt Électronique Les systèmes numériques : généralités (I) En électronique numérique, le codage des informations utilise deux

Plus en détail

IFIPS 5 / Nouvelles Architectures Logicielles Projet : Bus de web services avec «moteur» BPEL

IFIPS 5 / Nouvelles Architectures Logicielles Projet : Bus de web services avec «moteur» BPEL IFIPS 5 / Nouvelles Architectures Logicielles Projet : Bus de web services avec «moteur» BPEL Un bus de services Un bus de services (ESB) permet d assembler des web services existants, le résultat de cet

Plus en détail

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0

Plus en détail

Manuel d installation du clavier S5

Manuel d installation du clavier S5 1 Manuel d installation du clavier S5 Table des matières 1. Contenu de l emballage... 3 2. Guide de programmation... 3 3. Description... 4 4. Caractéristiques techniques du clavier S5... 4 5. Spécifications

Plus en détail

WEBVIEW. Serveur Web embarqué dans DIRIS G NOTICE D UTILISATION. www.socomec.com. http://www.socomec. com/webview_ software

WEBVIEW. Serveur Web embarqué dans DIRIS G NOTICE D UTILISATION. www.socomec.com. http://www.socomec. com/webview_ software NOTICE D UTILISATION WEBVIEW Serveur Web embarqué dans DIRIS G FR http://www.socomec. com/webview_ software www.socomec.com FR SOMMAIRE 1. DOCUMENTATION...3 2. OPÉRATIONS PRÉALABLES...3 3. PRÉSENTATION...3

Plus en détail

Les liaisons SPI et I2C

Les liaisons SPI et I2C DAMÉCOURT BENJAMIN AVRIL 28 Liaisons synchrones Les liaisons SPI et I2C Face arrière d un imac : trois ports USB, un port Firewire 4 et un port Firewire 8 CHRONOLOGIE ANNÉES 7 La liaison SPI et la création

Plus en détail

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores INTRODUCTION AUX SYSTEMES D EXPLOITATION TD2 Exclusion mutuelle / Sémaphores Exclusion mutuelle / Sémaphores - 0.1 - S O M M A I R E 1. GENERALITES SUR LES SEMAPHORES... 1 1.1. PRESENTATION... 1 1.2. UN

Plus en détail

Projet Active Object

Projet Active Object Projet Active Object TAO Livrable de conception et validation Romain GAIDIER Enseignant : M. Noël PLOUZEAU, ISTIC / IRISA Pierre-François LEFRANC Master 2 Informatique parcours MIAGE Méthodes Informatiques

Plus en détail

Travaux pratiques avec RapidMiner

Travaux pratiques avec RapidMiner Travaux pratiques avec RapidMiner Master Informatique de Paris 6 Spécialité IAD Parcours EDOW Module Algorithmes pour la Fouille de Données Janvier 2012 Prise en main Généralités RapidMiner est un logiciel

Plus en détail

Arbres binaires de recherche

Arbres binaires de recherche 1 arbre des comparaisons 2 recherche dichotomique l'arbre est recalculé à chaque recherche 2 5 3 4 7 9 1 6 1 2 3 4 5 6 7 9 10 conserver la structure d'arbre au lieu de la reconstruire arbre binaire de

Plus en détail

LIVRET DE RÈGLES. @AsmadiGames. facebook.com/asmadigames

LIVRET DE RÈGLES. @AsmadiGames. facebook.com/asmadigames LIVRET DE RÈGLES @AsmadiGames facebook.com/asmadigames VOUS JOUEZ À RED La règle pour gagner au Rouge est simple : avoir la plus haute carte! Mais jouerez-vous toujours au même jeu lorsque votre tour prendra

Plus en détail

Recherche dans un tableau

Recherche dans un tableau Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6

Plus en détail

L équilibre Ressources Emplois de biens et services schématisé par une balance

L équilibre Ressources Emplois de biens et services schématisé par une balance IV) l équilibre ressources - emplois et son interprétation Cet article fait suite à ceux du 19 janvier et du 18 février 2013. Il en est le complément logique sur les fondamentaux macro- économiques d un

Plus en détail

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/2011. 1.1 Présentation. 1.2 Ressources

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/2011. 1.1 Présentation. 1.2 Ressources Master Maths Finances 2010/2011 Data Mining janvier 2011 RapidMiner 1 Introduction 1.1 Présentation RapidMiner est un logiciel open source et gratuit dédié au data mining. Il contient de nombreux outils

Plus en détail

Expérience 3 Formats de signalisation binaire

Expérience 3 Formats de signalisation binaire Expérience 3 Formats de signalisation binaire Introduction Procédures Effectuez les commandes suivantes: >> xhost nat >> rlogin nat >> setenv DISPLAY machine:0 >> setenv MATLABPATH /gel/usr/telecom/comm_tbx

Plus en détail

ESPACE COLLABORATIF SHAREPOINT

ESPACE COLLABORATIF SHAREPOINT Conseil de l Europe Service des Technologies de l Information ESPACE COLLABORATIF SHAREPOINT DOSSIER D UTILISATEUR 1/33 Sommaire 1. Présentation de SharePoint... 3 1.1. Connexion... 4 2. Les listes...

Plus en détail

Centrale d alarme DA996

Centrale d alarme DA996 Centrale d alarme DA996 Référence : 7827 La DA-996 est une centrale d alarme pour 6 circuits indépendants les uns des autres, avec ou sans temporisation, fonctions 24 heures, sirène, alerte et incendie.

Plus en détail

Exercices de dénombrement

Exercices de dénombrement Exercices de dénombrement Exercice En turbo Pascal, un entier relatif (type integer) est codé sur 6 bits. Cela signifie que l'on réserve 6 cases mémoires contenant des "0" ou des "" pour écrire un entier.

Plus en détail

Algorithmique et programmation : les bases (VBA) Corrigé

Algorithmique et programmation : les bases (VBA) Corrigé PAD INPT ALGORITHMIQUE ET PROGRAMMATION 1 Cours VBA, Semaine 1 mai juin 2006 Corrigé Résumé Ce document décrit l écriture dans le langage VBA des éléments vus en algorithmique. Table des matières 1 Pourquoi

Plus en détail

IV- Comment fonctionne un ordinateur?

IV- Comment fonctionne un ordinateur? 1 IV- Comment fonctionne un ordinateur? L ordinateur est une alliance du hardware (le matériel) et du software (les logiciels). Jusqu à présent, nous avons surtout vu l aspect «matériel», avec les interactions

Plus en détail

Alfstore workflow framework Spécification technique

Alfstore workflow framework Spécification technique Alfstore workflow framework Spécification technique Version 0.91 (2012-08-03) www.alfstore.com Email: info@alfstore.com Alfstore workflow framework 2012-10-28 1/28 Historique des versions Version Date

Plus en détail

2.1 Le point mémoire statique Le point mémoire statique est fondé sur le bistable, dessiné de manière différente en Figure 1.

2.1 Le point mémoire statique Le point mémoire statique est fondé sur le bistable, dessiné de manière différente en Figure 1. Mémoires RAM 1. LOGIUE STATIUE ET LOGIUE DYNAMIUE Le point mémoire est l élément de base, capable de mémoriser un bit. Il y a deux approches possibles. L approche statique est fondée sur la l'utilisation

Plus en détail

AP1.1 : Montages électroniques élémentaires. Électricité et électronique

AP1.1 : Montages électroniques élémentaires. Électricité et électronique STI2D Option SIN Terminale AP1.1 : Montages électroniques élémentaires Électricité et électronique Durée prévue : 3h. Problématique : connaître les composants élémentaires de l'électronique Compétences

Plus en détail

RÉALISATION ET MISE AU POINT D UN SYSTÈME DE TÉLÉSURVEILLANCE VIDÉO

RÉALISATION ET MISE AU POINT D UN SYSTÈME DE TÉLÉSURVEILLANCE VIDÉO E.N.S.E.R.B. Romain COMBELAS Frédéric BONNIN 3ème année. Option TIC MÉMOIRE DE FIN D ÉTUDES RÉALISATION ET MISE AU POINT D UN SYSTÈME DE TÉLÉSURVEILLANCE VIDÉO Encadré par : M. Patrice KADIONIK M. Yannick

Plus en détail

Manuel d utilisation

Manuel d utilisation F524 Energy IP data logger www.legrand.com Table des matières Energy IP data logger Introduction et fonctions de base 5. Concepts fondamentaux 5.2 Utilisation du Energy IP data logger avec pages Web 6.2.

Plus en détail

Écriture de journal. (Virement de dépense)

Écriture de journal. (Virement de dépense) Écriture de journal (Virement de dépense) SERVICE DES FINANCES Équipe de formation PeopleSoft version 8.9 Août 2014 TABLES DES MATIERES AVERTISSEMENT... 3 INTRODUCTION... 4 RAISONS JUSTIFIANT LA CRÉATION

Plus en détail

COURS WINDEV NUMERO 3

COURS WINDEV NUMERO 3 COURS WINDEV NUMERO 3 01/02/2015 Travailler avec un fichier de données Etude du gestionnaire d analyse, Manipulation des tables mémoires, Manipulation de données, Création d états, Pré requis : Cours WinDev

Plus en détail

Guide de programmation FLEXIVOZ PABX OD308

Guide de programmation FLEXIVOZ PABX OD308 Guide de FLEXIVOZ PABX OD308 1 SOMMAIRE Introduction 3 Installation 4 Programmation du système 5 IMPORTANT Lignes externes 6 Réglage date et heure par l horloge interne 6 Appels entrants : Affectation

Plus en détail

Génie Logiciel avec Ada. 4 février 2013

Génie Logiciel avec Ada. 4 février 2013 Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre

Plus en détail

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES TRAVAUX PRATIQUES Le présent travail vise à développer une interface visuelle de programmation des entrées- sorties du port LPT d un PC à l aide du logiciel VISUAL BASIC. I- EDITION ET TEST DU PROGRAMME

Plus en détail

Export vers le format WAV dans ArtemiS SUITE

Export vers le format WAV dans ArtemiS SUITE 9/14 dans ArtemiS SUITE Export vers WAV dans le Projet 2 Réglage 2 Type de données et résolution 4 Export des informations d'impulsions tachymétriques 4 Fondu 5 Fichier Résultat 6 Paramètres pour l'export

Plus en détail

Neu. Technique d installation / de surveillance. VARIMETER RCM Contrôleur différentiel type B IP 5883

Neu. Technique d installation / de surveillance. VARIMETER RCM Contrôleur différentiel type B IP 5883 Technique d installation / de surveillance VARIMETER RCM Contrôleur différentiel type IP 5883 0249636 X1 A1 X1 i2 11 Alarm 12 Neu IP 5583 N 5018/035 N 5018/030 escription du produit Le contrôleur différentiel

Plus en détail

KL5121. Pour activer des sorties en fonction de la position d'un codeur

KL5121. Pour activer des sorties en fonction de la position d'un codeur KL5121 Pour activer des sorties en fonction de la position d'un codeur VERSION : 1.0 / PH DATE : 07 Février 2006 Sommaire Ce manuel explique de manière pratique les étapes successives pour mettre en œuvre

Plus en détail

Guide d utilisation commandes des pièces de rechange Rev.1.0.3

Guide d utilisation commandes des pièces de rechange Rev.1.0.3 SECLI Ver.2.3 Guide d utilisation commandes des pièces de rechange Rev.1.0.3 Ce document est constamment actualisé: vérifiez le n de la version pour savoir s il existe d éventuelles mises à jour Futura

Plus en détail

REALISATION d'un. ORDONNANCEUR à ECHEANCES

REALISATION d'un. ORDONNANCEUR à ECHEANCES REALISATION d'un ORDONNANCEUR à ECHEANCES I- PRÉSENTATION... 3 II. DESCRIPTION DU NOYAU ORIGINEL... 4 II.1- ARCHITECTURE... 4 II.2 - SERVICES... 4 III. IMPLÉMENTATION DE L'ORDONNANCEUR À ÉCHÉANCES... 6

Plus en détail

Algorithmique des Systèmes Répartis Protocoles de Communications

Algorithmique des Systèmes Répartis Protocoles de Communications Algorithmique des Systèmes Répartis Protocoles de Communications Master Informatique Dominique Méry Université de Lorraine 1 er avril 2014 1 / 70 Plan Communications entre processus Observation et modélisation

Plus en détail

DovAdis. Objet Rapprochement bancaire Métier Gérance. Siège social SPI 1, rond-point du Flotis Bât IV 31 240 St Jean

DovAdis. Objet Rapprochement bancaire Métier Gérance. Siège social SPI 1, rond-point du Flotis Bât IV 31 240 St Jean DovAdis Objet Rapprochement bancaire Métier Gérance Siège social SPI 1, rond-point du Flotis Bât IV 31 240 St Jean Facturation SPI ZAC du Parkway 5, rue des Tiredous 64 000 Pau Tél. 05 62 27 95 30 Fax.

Plus en détail

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS 1. Introduction Nous allons aborder la notion de surcouche procédurale au sein des SGBDS relationnels tels que Oracle (PLSQL)

Plus en détail

SNT4U16 - Initiation à la programmation 2014-2015. TD - Dynamique de POP III - Fichiers sources

SNT4U16 - Initiation à la programmation 2014-2015. TD - Dynamique de POP III - Fichiers sources SNT4U16 - Initiation à la programmation Licence SVT 2 ème année 2014-2015 TD - Dynamique de POP III - Fichiers sources contacts : mathias.gauduchon@univ-amu.fr, melika.baklouti@univ-amu.fr, xavier.giraud@univ-amu.fr,

Plus en détail

Systèmes de transmission

Systèmes de transmission Systèmes de transmission Conception d une transmission série FABRE Maxime 2012 Introduction La transmission de données désigne le transport de quelque sorte d'information que ce soit, d'un endroit à un

Plus en détail

V- Manipulations de nombres en binaire

V- Manipulations de nombres en binaire 1 V- Manipulations de nombres en binaire L ordinateur est constitué de milliards de transistors qui travaillent comme des interrupteurs électriques, soit ouverts soit fermés. Soit la ligne est activée,

Plus en détail

Importantes instructions de sécurité

Importantes instructions de sécurité RCR-5 D Version 1 1. 2. Importantes instructions de sécurité Lire les instructions Toutes les instructions de sécurité et d utilisation doivent être lues avant d utiliser l appareil. Conserver les instructions

Plus en détail

Master IAC 2013-2014. Philippe Caillou DÉVELOPPEMENT DE SMA. Cours 1b

Master IAC 2013-2014. Philippe Caillou DÉVELOPPEMENT DE SMA. Cours 1b DÉVELOPPEMENT DE SMA Cours 1b Je veux développer mon application.. Comme toujours, j utilise Java/Python/C#/ Mais : Est-ce que je ne reprogramme pas exactement la même chose que quelqu un d autre? (en

Plus en détail

IUT BREST UN LOGICIEL SCADA : PC VUE 2010 DEP.GMP

IUT BREST UN LOGICIEL SCADA : PC VUE 2010 DEP.GMP IUT BREST DEP.GMP UN LOGICIEL SCADA : PC VUE 2010 Table des matières 1. Introduction à la supervision- logiciel SCADA... 4 1.A. Définition d un logiciel SCADA /Supervision... 4 1.B. Ou trouve-t-on des

Plus en détail

LES TOUT PREMIERS PAS

LES TOUT PREMIERS PAS DESMODO, un logiciel de gestion d idées http://www.desmodo.net/ LES TOUT PREMIERS PAS Desmodo est un logiciel (libre) qui permet, entre autre, de visualiser et de synthétiser, de manière organisée, sous

Plus en détail

NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE

NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE Une application se construit par étapes 1) CAHIER DES CHARGES + ANALYSE FONCTIONNELLE = organisation fonctionnelle (QUE FAIRE) 2) ANALYSE OPERATIONNELLE

Plus en détail

Genie Logiciel Avancé Projet :Gestion d une chaîne hotelier low cost

Genie Logiciel Avancé Projet :Gestion d une chaîne hotelier low cost Institut Galilée Vivien Boyi-Banga INFO 2 Genie Logiciel Avancé Projet :Gestion d une chaîne hotelier low cost Enseignant : M.Feiz Année 2009-2010 1. Définir la borne de notre système Le système est composé

Plus en détail

Les outils de SEO (Référencement naturel) et les Sites SharePoint Public sur Office 365

Les outils de SEO (Référencement naturel) et les Sites SharePoint Public sur Office 365 Les outils de SEO (Référencement naturel) et les Sites SharePoint Public sur Office 365 Bonjour, comme beaucoup d entre vous j ai créé mon site public sur Office 365. Je suis comme vous je pense à la recherche

Plus en détail

Premiers Pas avec OneNote 2013

Premiers Pas avec OneNote 2013 Premiers Pas avec OneNote 2 Présentation de OneNote 3 Ouverture du logiciel OneNote 4 Sous Windows 8 4 Sous Windows 7 4 Création de l espace de travail OneNote 5 Introduction 5 Présentation des différentes

Plus en détail

Network musical jammin

Network musical jammin Network musical jammin Projet PC2R - 2015 Pour ce projet, nous allons réaliser une application permettant d effectuer des jams sessions en temps-réel entre des musiciens répartis à travers le monde. Le

Plus en détail

TEPZZ 568448A_T EP 2 568 448 A1 (19) (11) EP 2 568 448 A1 (12) DEMANDE DE BREVET EUROPEEN. (51) Int Cl.: G07F 7/08 (2006.01) G06K 19/077 (2006.

TEPZZ 568448A_T EP 2 568 448 A1 (19) (11) EP 2 568 448 A1 (12) DEMANDE DE BREVET EUROPEEN. (51) Int Cl.: G07F 7/08 (2006.01) G06K 19/077 (2006. (19) TEPZZ 68448A_T (11) EP 2 68 448 A1 (12) DEMANDE DE BREVET EUROPEEN (43) Date de publication: 13.03.2013 Bulletin 2013/11 (1) Int Cl.: G07F 7/08 (2006.01) G06K 19/077 (2006.01) (21) Numéro de dépôt:

Plus en détail

COMMUTEL PRO VM3 INTERFACE GSM VOIX POUR EMULATION DE LIGNE RTC ET TRANSMETTEUR DE SMS D ALERTES ET TECHNIQUES.

COMMUTEL PRO VM3 INTERFACE GSM VOIX POUR EMULATION DE LIGNE RTC ET TRANSMETTEUR DE SMS D ALERTES ET TECHNIQUES. COMMUTEL PRO VM3 INTERFACE GSM VOIX POUR EMULATION DE LIGNE RTC ET TRANSMETTEUR DE SMS D ALERTES ET TECHNIQUES. 1. DESCRIPTION DU PRODUIT COMMUTEL PRO VM3 est un Secours GSM Canal Voix et un transmetteur

Plus en détail

Ordinateurs, Structure et Applications

Ordinateurs, Structure et Applications Ordinateurs, Structure et Applications Cours 10, Les interruptions Etienne Tremblay Université Laval, Hiver 2012 Cours 10, p.1 Les interruptions du 8086 Une interruption interrompt l exécution séquentielle

Plus en détail

NOTICE SIMPLIFIEE ER-A280F. I Initialisation avec Remise à Zéro de la caisse : ENTER PASSWORD ER-A280V. Ver1.02

NOTICE SIMPLIFIEE ER-A280F. I Initialisation avec Remise à Zéro de la caisse : ENTER PASSWORD ER-A280V. Ver1.02 NOTICE SIMPLIFIEE ER-A280F I Initialisation avec Remise à Zéro de la caisse : A faire absolument au déballage de la caisse avant de commencer à programmer. Cette étape ne nécessite pas la mise en place

Plus en détail

TER Licence 3 Electronique des Télécoms Transmission GSM

TER Licence 3 Electronique des Télécoms Transmission GSM Université de Savoie Module TER (Travaux d études et réalisation) TER Licence 3 Electronique des Télécoms Transmission GSM Note : L ensemble des documents du projet se trouve sur l espace étudiant du site

Plus en détail

sommaire Archives... Archiver votre messagerie... Les notes... Les règles de messagerie... Les calendriers partagés... 15 Les listes de diffusions...

sommaire Archives... Archiver votre messagerie... Les notes... Les règles de messagerie... Les calendriers partagés... 15 Les listes de diffusions... sommaire Votre solution de messagerie Futur Office évolue. Pour préparer au mieux la migration qui aura lieu le week-end du 23-24 Juin, nous vous conseillons de réaliser les actions préalables décrites

Plus en détail

Notice d installation de la Centrale VIGIK DGM1

Notice d installation de la Centrale VIGIK DGM1 Notice d installation de la Centrale VIGIK DGM1 Version 3.5 NOTICE DE MONTAGE ET D UTILISATION N homologation : PS 200306-01 MS 200306-02 Informations préliminaires Présentation des possibilités de la

Plus en détail

TD Architecture des ordinateurs. Jean-Luc Dekeyser

TD Architecture des ordinateurs. Jean-Luc Dekeyser TD Architecture des ordinateurs Jean-Luc Dekeyser Fiche 1 Nombres de l informatique Exercice 1 Une entreprise désire réaliser la sauvegarde de ses données sur un site distant. Le volume de données à sauvegarder

Plus en détail

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition Surveillance de Scripts LUA et de réception d EVENT avec LoriotPro Extended & Broadcast Edition L objectif de ce document est de présenter une solution de surveillance de processus LUA au sein de la solution

Plus en détail

Propagation sur réseau statique et dynamique

Propagation sur réseau statique et dynamique Université de la Méditerranée UFR Sciences de Luminy Rapport de stage informatique pour le Master 2 de Physique, Parcours Physique Théorique et Mathématique, Physique des Particules et Astroparticules.

Plus en détail

Etude et développement d un moteur de recherche

Etude et développement d un moteur de recherche Ministère de l Education Nationale Université de Montpellier II Projet informatique FLIN607 Etude et développement d un moteur de recherche Spécifications fonctionnelles Interface utilisateur Responsable

Plus en détail