diff --git a/docs/compte-rendu.md b/docs/compte-rendu.md index cd056f619d4a6c4caddd9df5b41f43ed435892f3..4f829279e961da3b38715e9059ca76112c541b87 100644 --- a/docs/compte-rendu.md +++ b/docs/compte-rendu.md @@ -9,17 +9,26 @@ ### Question filtre 1 : Combien de processus sont utilisés et de quelles natures sont-ils ? Comment les différenciez-vous ? +Il y a 2 procédés : le premier est séquentiel (il y a une horloge qui donne le rythme), le second est combinatoire (la sortie ne dépend que des entrées). On les différencie grâce à la présence ou non de l’horloge. ### Question filtre 2 : La simulation vous permet-elle de valider votre description VHDL ? Justifiez. +Premièrement, on remarque que la séquence obtenue en sortie du filtre est la même que celle qui est attendue. +D’un point de vue traitement du signal, la simulation suffit. On remarque que l’entrée est un Dirac ce qui permet de récupérer en sortie la réponse impulsionnelle du filtre. Ceci permet de caractériser le filtre. De plus, on a rajouté à la suite des entrées arbitraires pour nous rassurer. +Ainsi pas besoin de faire les 2^19 combinaisons différentes comme un point de vue binaire voudrait. ### Question filtre 3 : Validez-vous la conception de l’unité de contrôle ? +Oui on valide la conception. Le filtre atténue les sons de fréquence élevée (supérieur à 300Hz, la fréquence de coupure). ### Question filtre 4 : Combien de processus sont utilisés et de quelles natures sont-ils ? +Il y a 4 procédés : ils sont tous séquentiels car il y a une horloge qui donne le rythme. ### Question filtre 5 : La simulation vous permet-elle de valider votre description VHDL ? Sinon, quel élément pose problème ? Comment pouvez-vous le corriger ? Justifiez +On remarque que la séquence obtenue en sortie du filtre est la même que celle qui est attendue. Ainsi, notre simulation permet bien de valider notre description VHDL. ### Question filtre 6 : Validez-vous la conception de l’unité opérative ? Sinon, quel élément pose problème ? Comment pouvez-vous le corriger ? + +Oui on valide la conception. Le filtre atténue les sons de fréquence élevée (supérieur à 300Hz, la fréquence de coupure). diff --git a/docs/img/FSM.png b/docs/img/FSM.png index 7f6db881fff5cdfb9351c0348dfec49ff082516d..5abfddaf49d79364d2809e199fc8ce839e5744e3 100644 Binary files a/docs/img/FSM.png and b/docs/img/FSM.png differ diff --git a/src/hdl/operativeUnit.vhd b/src/hdl/operativeUnit.vhd index f188644ffafb06b483e52b86b86a87fb3a23df72..e45cf420ae2e382dfbf12691af4c89703ed2d041 100644 --- a/src/hdl/operativeUnit.vhd +++ b/src/hdl/operativeUnit.vhd @@ -189,20 +189,17 @@ begin -- Taking the 16 MSBs of the 36-bit accumulator, starting from bit 20 -- This allows for proper scaling of the result - if SC_addResult(14) = '1' then - -- Arrondi vers le haut si le bit 14 est à 1 - if SC_addResult(30 downto 15) = (30 downto 15 => '1') then - -- Gestion du cas de débordement (tous les bits à 1) - SR_filteredSample <= (others => '1'); + if SR_sum(14) = '1' then + -- Arrondi vers le haut si le bit 14 est à 1 + SR_filteredSample <= SR_sum(30 downto 15) +1; else - SR_filteredSample <= SC_addResult(30 downto 15) + 1; + -- Pas d'arrondi si le bit 14 est à 0 + SR_filteredSample <= SR_sum(30 downto 15); end if; else - -- Pas d'arrondi si le bit 14 est à 0 - SR_filteredSample <= SC_addResult(30 downto 15); - end if; end if; + end if; end process store_result;