Skip to content
Snippets Groups Projects
Commit ac60efb1 authored by Clement LERICHE's avatar Clement LERICHE
Browse files

tp_presque_termine

parent fa616e8b
Branches main
No related tags found
No related merge requests found
......@@ -23,22 +23,27 @@ Les signaux à renseigner sont la clock et le reset car il n'y a pas besoin de
## Question Loto 5 : Que se passe-t-il si le test est incomplet, c’est-à-dire s’il ne couvre pas toutes les combinaisons d’entrées du module ? Est-ce grave ici ?
Toutes les combinaisons binaires possibles ne sont pas testées. Le test n'est pas complet car il n'y a pas d'interet.
Toutes les combinaisons binaires possibles ne sont pas testées. Le test n'est pas complet car il n'y a pas d'interet (on ne va pas tester les 64 valeurs possibles). Il doit permettre de réflechir aux conditions critiques désirées.
## Question Loto 6 : Ce test est-il concluant ? Est-il suffisant pour valider le module ? Justifiez.
Le test est concluant car les sorties sont en modulo 6. Quand I_block = 1, le compteur s'arrete jusqu'à ce que I_block = 0, alors le comptage reprend au prochain front montant.
## Question Loto 7 : Combien de processus avez-vous décris ?
1
## Question Loto 8 : De quel(s) type(s) sont-ils
Sequentiel
## Question Loto 9 : Serait-il possible de décrire cette machine d'état de manière différente, en terme de nombre et de type de process ?
Pour les étudiants SEH : pas notre cas
## Question Loto 10 : Ce test est-il concluant ? Justifiez.
Oui, on observe tous les changements d'état associé aux evenements bouton. Alternance rouge/vert à la fin.
## Question Loto 11 : Le circuit inféré par l’outil est-il conforme à l’attendu ? Sinon, en quoi diffère-t-il et est-ce lié à une erreur de description VHDL ?
......
......@@ -36,10 +36,9 @@ begin
process (I_clk, I_rst)
begin
if(I_rst = '1')then
__BLANK_TO_FILL__
SR_STATE <= st_wait_success;
elsif rising_edge(I_clk)then
case SR_STATE is
case SR_STATE is
when st_wait_success =>
O_l_green <= '1';
......@@ -50,9 +49,67 @@ begin
SR_STATE <= st_counting;
end if;
when __BLANK_TO_FILL__
when st_counting =>
O_l_green <= '0';
O_l_red <= '0';
O_counting <= '1';
O_store <= '0';
if I_button = '0' then
SR_STATE <= st_compar;
end if;
when st_compar =>
O_l_green <= '0';
O_l_red <= '0';
O_counting <= '0';
O_store <= '0';
if I_invalide = '0' then
SR_STATE <= st_store;
else
SR_STATE <= st_wait_failed;
end if;
when st_store =>
O_l_green <= '0';
O_l_red <= '0';
O_counting <= '0';
O_store <= '1';
if I_end = '0' then
SR_STATE <= st_wait_success;
end if;
if I_end = '1' then
SR_STATE <= st_end_red;
end if;
__BLANK_TO_FILL__
when st_end_red =>
O_l_green <= '0';
O_l_red <= '1';
O_counting <= '0';
O_store <= '0';
if I_clk_display = '1' then
SR_STATE <= st_end_green;
end if;
when st_end_green =>
O_l_green <= '1';
O_l_red <= '0';
O_counting <= '0';
O_store <= '0';
if I_clk_display = '0' then
SR_STATE <= st_end_red;
end if;
when st_wait_failed =>
O_l_green <= '0';
O_l_red <= '1';
O_counting <= '0';
O_store <= '0';
if I_button = '1' then
SR_STATE <= st_counting;
end if;
end case;
end if;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment