Blame view

7Segment_display/README.md 3.11 KB
baf5e4b6   rduhr   7Segment_display ...
1
2
3
4
  # 7 Segment display
  
  1. But du projet
  1. I/O utilisées
45802ae2   rduhr   7Segment_display ...
5
6
  1. Explication de l'algorithme
  1. Résultats
baf5e4b6   rduhr   7Segment_display ...
7
8
9
10
11
12
13
  
  > L'ensemble des codes, images et vidéos sont compris dans ce répertoire.
  
  ## But du projet
  
  Nous avons décider de nous intéresser à l'affichage 7 segments grâce au but suivant:
  
e3f42ce5   rduhr   7Segment_display ...
14
  - Créer un compteur de 0 à 9999 à l'aide des 4 afficheurs. En cas de dépassement ou d'appuye sur un bouton reset le compteur redémarrera à 0. 
baf5e4b6   rduhr   7Segment_display ...
15
16
17
18
  
  ## I/O utilisées
  
  Tout d'abord, voyons les entrées/sortie que nous avons utilisé.
122d531c   rduhr   7Segment_display ...
19
20
21
22
23
24
25
  
  ```vhdl
  entity display is
       port {
       clk_fpga : in STD_LOGIC;
       reset : in STD_LOGIC;
       aff : out STD_LOGIC_VECTOR{7 downto 0};
baf5e4b6   rduhr   7Segment_display ...
26
       an : out STD_LOGIC_VECTOR{3 downto 0}
122d531c   rduhr   7Segment_display ...
27
28
29
       };
  end display;
  ```
baf5e4b6   rduhr   7Segment_display ...
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
  
  - clk_fpga : le signal de clock du fpga
  
     Dans le fichier de contrainte :
     ```
     ## Clock signal
     set_property -dict { PACKAGE_PIN W5   IOSTANDARD LVCMOS33 } [get_ports clk_fpga]
     create_clock -add -name sys_clk_pin -period 10.00 -waveform {0 5} [get_ports clk]
     ```
  
  - reset : le signal permettant de remettre le compteur à zéro grâce à un bouton
  
    Dans le fichier de contrainte :
    ```
    ## Switches
    set_property -dict { PACKAGE_PIN R2    IOSTANDARD LVCMOS33 } [get_ports reset]
    ```
  - aff : un tableau de 8 bits relier à chaque led d'un segment à afficher (en ajoutant le point de l'afficheur)
  
     Dans le fichier de contrainte : 
     ```
     ##7 Segment Display
     set_property -dict { PACKAGE_PIN W7   IOSTANDARD LVCMOS33 } [get_ports {aff[0]}]
     set_property -dict { PACKAGE_PIN W6   IOSTANDARD LVCMOS33 } [get_ports {aff[1]}]
     set_property -dict { PACKAGE_PIN U8   IOSTANDARD LVCMOS33 } [get_ports {aff[2]}]
     set_property -dict { PACKAGE_PIN V8   IOSTANDARD LVCMOS33 } [get_ports {aff[3]}]
     set_property -dict { PACKAGE_PIN U5   IOSTANDARD LVCMOS33 } [get_ports {aff[4]}]
     set_property -dict { PACKAGE_PIN V5   IOSTANDARD LVCMOS33 } [get_ports {aff[5]}]
     set_property -dict { PACKAGE_PIN U7   IOSTANDARD LVCMOS33 } [get_ports {aff[6]}]
  
     set_property -dict { PACKAGE_PIN V7   IOSTANDARD LVCMOS33 } [get_ports {aff[7]}]
     ```
33423a82   rduhr   7Segment_display ...
62
     > exemple : aff à "11111110" allumera la led du point de l'afficheur séléctionné. 
baf5e4b6   rduhr   7Segment_display ...
63
64
65
66
67
68
69
70
71
72
73
  
  - an : un tableau comprenant 4 bits permettant de sélectionner l'un des 4 afficheurs 7 segments 
  
     Dans le fichier de contrainte :
     ```
     set_property -dict { PACKAGE_PIN U2   IOSTANDARD LVCMOS33 } [get_ports {an[0]}]
     set_property -dict { PACKAGE_PIN U4   IOSTANDARD LVCMOS33 } [get_ports {an[1]}]
     set_property -dict { PACKAGE_PIN V4   IOSTANDARD LVCMOS33 } [get_ports {an[2]}]
     set_property -dict { PACKAGE_PIN W4   IOSTANDARD LVCMOS33 } [get_ports {an[3]}]
     ```
  
33423a82   rduhr   7Segment_display ...
74
75
     > exemple : an à "1110" sélectionnera l'afficheur le plus à droite.
  
45802ae2   rduhr   7Segment_display ...
76
77
78
79
  ## Explication de l'algorithme
  
  ## Résultats
  
78d80e83   rduhr   7Segment_display ...
80
  - Nous avons dans un premier temps essayer d'afficher sur les 4 afficheurs sans recouvrement. C'est pour cela qu'il a fallu baisser la clock.
45802ae2   rduhr   7Segment_display ...
81
  
9b8bb3da   rduhr   7Segment_display ...
82
83
  ![img1](img1.jpg)
  
78d80e83   rduhr   7Segment_display ...
84
  - Ensuite il a fallu donner du sens à ce que nous affichions. C'est pourquoi nous avons tenté d'afficher 1 2 3 4.
9b8bb3da   rduhr   7Segment_display ...
85
  
3d1a916a   rduhr   7Segment_display ...
86
87
88
89
  ![img2](img2.jpg)
  
  - Enfin il a fallu implémanter un simple algorithme pour le compteur.
  
d8ca565d   rduhr   7Segment_display ...
90
  ![counter](counter.gif)