Differences

This shows you the differences between two versions of the page.

Link to this comparison view

soc:laboratoare:07:todo [2024/04/17 23:47]
stefan.maruntis Imbunatatit explicatii ex4
soc:laboratoare:07:todo [2025/04/25 10:55] (current)
filip.dumitrascu
Line 1: Line 1:
 Pentru fiecare dintre exerciții va trebui să faceți atât **implementarea** cât și **simularea** cu seturi de date relevante. (**minim 3 cazuri de test**) Pentru fiecare dintre exerciții va trebui să faceți atât **implementarea** cât și **simularea** cu seturi de date relevante. (**minim 3 cazuri de test**)
  
- ​**Task ​01** (3p) Implementați un sumator carry-lookahead pe 4 biți.+ ​**Task ​00** (4p) Implementați un sumator carry-lookahead pe 4 biți.
  
- ​**Task ​02** (1p) Implementați un scăzător carry-lookahead pe 4 biți, pornind de la punctul precedent.+ ​**Task ​01** (2p) Implementați un scăzător carry-lookahead pe 4 biți, pornind de la punctul precedent.
  
-<​hidden>​ + ​**Task 02** (4p) Implementați un sumator pe 16 de biți folosind modulul carry-lookahead deja implementat și logica sumatorului ripple-carry.
-Complementul față de 2 al unui număr: ​-X = ~X + 1 +
-</​hidden>​+
  
- ​**Task 03** (2p) Implementați un sumator pe 16 de biți folosind modulul carry-lookahead deja implementat și logica sumatorului ripple-carry. + ​**Task 03** (bonus - 2p) Implementați un sumator/​scăzător carry-lookahead pe 4 biti cu ajutorul [[https://​digilent.com/​reference/​_media/​reference/​programmable-logic/​nexys-a7/​nexys-a7_rm.pdf|plăcii de laborator]]. Interacțiunea cu modulul se va face astfel:
- +
- ​**Task 04** (4p) Implementați un sumator/​scăzător carry-lookahead pe 4 biti cu ajutorul [[https://​digilent.com/​reference/​_media/​reference/​programmable-logic/​nexys-a7/​nexys-a7_rm.pdf|plăcii de laborator]]. Interacțiunea cu modulul se va face astfel:+
  
   * Intrări:   * Intrări:
Line 21: Line 17:
     * buton reset     * buton reset
   * Ieșiri:   * Ieșiri:
-    ​* cele 8 leduri -> pentru afisarea operanzilor +    * cele 8 leduri -> pentru afisarea progresului (**o_r_leds**)
-    * afisajul cu 7 segmente -> pentru afișarea rezultatului +
-  * Mod de operare: +
-    * în starea inițială:​ +
-      * se vor introduce operanzii A și B cu ajutorul switch-urilor +
-      * ledurile vor afișa valoarea operanzilor (aprins pentru bit de 1, stins pentru bit de 0) +
-    * la apăsarea butonului buton1: +
-      * se salvează valoarea operanzilor în memorie  +
-      * se trece în starea următoare, pentru afișarea rezultatelor +
-    * în starea pentru afișarea rezultatelor:​ +
-      * pe displayul cu 7 segmente va fi afisat rezultatul:​ +
-        * textul APAS, dacă nu sunt apăsate nici buton2, nici buton3 +
-        * suma A + B, dacă este apăsat buton2 +
-        * diferența A - B, dacă este apăsat buton3 +
-    * pentru introducerea altor valori pentru operanzi se va apăsa butonul de reset +
- +
-<​hidden>​ +
-  * Intrări: +
-    * 4 switch-uri -> pentru selectarea operanzilor +
-    * buton1 -> buton pentru validarea operanzilor +
-    * buton2 -> buton pentru operația de adunare +
-    * buton3 -> buton pentru operația de scădere +
-    * buton reset +
-  * Ieșiri: +
-    ​* cele 8 leduri -> pentru afisarea progresului (**o_r_progress**)+
     * afisajul cu 7 segmente -> pentru afișarea rezultatului (**l_r_message**)     * afisajul cu 7 segmente -> pentru afișarea rezultatului (**l_r_message**)
   * Mod de operare:   * Mod de operare:
     * STATE_INITIAL:​     * STATE_INITIAL:​
-      * se introduce valoarea primului operand ​folosind switch-urile+      * se introduc valorile celor doi operanzi ​folosind switch-urile
       * pe cele 8 leduri se va afișa valoarea PROGRESS_NONE       * pe cele 8 leduri se va afișa valoarea PROGRESS_NONE
-      * pe afișajul cu 7 segmente se va afișa valoarea ​operandului în zecimal+      * pe afișajul cu 7 segmente se va afișa valoarea ​unuia dintre operanzi
     * la apăsarea lui buton1:     * la apăsarea lui buton1:
-      * se salvează în memorie valoarea ​primului operand +      * se salvează în memorie valoarea ​operanzilor 
-      * se trece în starea ​STATE_OP1_READ +      * se trece în starea ​STATE_OP_READ 
-    * STATE_OP1_READ:​ +    * STATE_OP_READ:
-      * se introduce valoarea celui de-al doilea operand folosind switch-urile +
-      * pe cele 8 leduri se va afișa valoarea PROGRESS_ONE_OPERAND +
-      * pe afișajul cu 7 segmente se va afișa valoarea operandului în zecimal +
-    * la apăsarea lui buton1: +
-      * se salvează în memorie valoarea celui de-al doilea operand +
-      * se trece în starea STATE_OP2_READ  +
-    * STATE_OP2_READ:+
       * pe cele 8 leduri se va afișa valoarea PROGRESS_BOTH_OPERANDS       * pe cele 8 leduri se va afișa valoarea PROGRESS_BOTH_OPERANDS
       * pe afișajul cu 7 segmente se va afișa mesajul APAS (PRESS_MESSAGE)       * pe afișajul cu 7 segmente se va afișa mesajul APAS (PRESS_MESSAGE)
-    * la apăsarea lui buton1 sau buton2:+    * la apăsarea lui buton2 ​sau buton3:
       * se trece în starea STATE_RESULT_SELECT       * se trece în starea STATE_RESULT_SELECT
     * STATE_RESULT_SELECT     * STATE_RESULT_SELECT
Line 76: Line 41:
     * pentru introducerea altor valori pentru operanzi se va apăsa butonul de reset     * pentru introducerea altor valori pentru operanzi se va apăsa butonul de reset
     * pentru a realiza operațiile veți folosi modulele create la exercițiile anterioare     * pentru a realiza operațiile veți folosi modulele create la exercițiile anterioare
- 
-<note tip>​Puteți porni de la soluția voastră pentru exercițiul 4 de la laboratorul precedent (chiar dacă nu este completă).</​note>​ 
-</​hidden>​ 
- 
  
soc/laboratoare/07/todo.1713386826.txt.gz · Last modified: 2024/04/17 23:47 by stefan.maruntis
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0