Académique Documents
Professionnel Documents
Culture Documents
2021 – 2022
I. Objectif
Une led (à afficher sur l'écran) consiste en un rectangle de pixels dont la couleur n'est pas
noire (voir TD1). Ce rectangle est caractérisé par sa position décrite par les valeurs x_rect et
y_rect et par ses dimensions décrites par les valeurs delta_x et delta_y. Dans le TD1, ces
valeurs ont été fixées dans la description VHDL. Dans ce TD, la valeur de x_rect est
déterminée et incrémentée par l'application à implémenter sur le picoBlaze (voir
implémentation logicielle) afin d'avoir l'effet d'un chenillard.
On aligne toutes les leds à la même hauteur (elles ont la même valeur de y_rect à savoir
y_rect=200). Les leds ont des côtés de 32 pixels (delta_x=delta_y=32) et sont espacées les
unes des autres de 50 pixels. Le coin en haut à gauche de l'écran correspond aux
coordonnées(0,0) et le coin en bas à droite correspond aux coordonnées (639,479). La led n°0
sera la led à gauche de l'écran et la led n°7 sera la led à droite de l'écran. On suppose que la
led n°0 est placée à la position (x_rect=17, y_rect=200). Toutes les leds ont la même couleur
qui est choisie à travers trois switches.
L'architecture du système est donnée par la figure 2.
Le travail sera divisé en deux parties: la première partie est consacrée à l'implémentation
matérielle et la deuxième partie est consacrée à l'implémentation logicielle.
Institut Supérieur d'Informatique A.U. 2021 – 2022
Figure 2 : Architecture du système affichant un chenillard à 8 leds sur écran VGA piloté par
picoBlaze
Dans ce TD, seule la valeur x_rect du rectangle (led) est déterminée et communiquée par le
microcontrôleur picoBlaze (voir figure 2). Le picoBlaze et la mémoire associée (la mémoire
qui contient les instructions à exécuter doit être incluse dans l'architecture matérielle comme
le montre la figure 2.
Le décodeur permet de récupérer le LSB ou le MSB de la valeur x_rect (selon l'adresse sur le
port ID_port du picoblaze) et ce en mettant à '1' l'entrée enable du registre Reg_1 ou Reg_2.
Le bloc concat permet de faire la concaténation du LSB et des deux bits de poids faible du
MSB pour fournir un résultat sur 10 bits.
2
Institut Supérieur d'Informatique A.U. 2021 – 2022
4. Ecrire le code assembleur d'un sous-programme delai qui permet d'introduire un délai
d'attente d'une demi-seconde.
5. Ecrire le code assembleur du programme principal qui fait appel au sous-programme delai.
Program Control Group Arithmetic Group Logical Group Shift and Rotate Group
3
Institut Supérieur d'Informatique A.U. 2021 – 2022
Component kcpsm3
port( address : out std_logic_vector (9 downto 0);
instruction : in std_logic_vector (17 downto 0);
port_id : out std_logic_vector (7 downto 0);
write_strobe : out std_logic;
out_port : out std_logic_vector (7 downto 0);
read_strobe : out std_logic;
in_port : in std_logic_vector (7 downto 0);
interrupt : in stad_logic;
interrupt_a ck : out std_logic;
reset : in std_logic;
clk : in std_logic);
end component;