Blame view

7Segment_display/README.md 2.64 KB
baf5e4b6   rduhr   7Segment_display ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  # 7 Segment display
  
  1. But du projet
  1. I/O utilisées
  1. Explication de l'algorithme principal
  
  > 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:
  
  - Créer un compteur à l'aide des 4 affichages allant donc de 0 à 9999. En cas de dépassement ou d'appuye sur un bouton reset le compteur redémarrera à 0. 
  
  ## I/O utilisées
  
  Tout d'abord, voyons les entrées/sortie que nous avons utilisé.
122d531c   rduhr   7Segment_display ...
18
19
20
21
22
23
24
  
  ```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 ...
25
       an : out STD_LOGIC_VECTOR{3 downto 0}
122d531c   rduhr   7Segment_display ...
26
27
28
       };
  end display;
  ```
baf5e4b6   rduhr   7Segment_display ...
29
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
62
63
64
65
66
67
68
69
70
71
72
73
  
  - 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]}]
     ```
     > exemple : aff[7] contrôlera la led du point de l'afficheur séléctionné. 
  
  - 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]}]
     ```
  
  ## Explication de l'algorithme