Differences

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

Link to this comparison view

soc:laboratoare:07:todo [2024/02/29 14:37]
127.0.0.1 external edit
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.
  
- ​**Task ​03** (2p) Implementați un sumator pe 16 de biți folosind modulul carry-lookahead deja implementat și logica sumatorului ripple-carry.+ ​**Task ​02** (4p) Implementați un sumator pe 16 de biți folosind modulul carry-lookahead deja implementat și logica sumatorului ripple-carry.
  
- ​**Task ​04** (4pImplementati ​un sumator/scazator ​carry-lookahead pe 4 biti cu ajutorul [[http://www.digilentinc.com/Data/Products/NEXYS/Nexys_rm.pdf|placii ​de laborator]]. ​Interactiunea ​cu modulul se va face astfel: + ​**Task ​03** (bonus - 2pImplementaț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:
-    * Intrari: +
-      * operandul A -> 4 switch-uri +
-      * operandul B -> 4 switch-uri +
-      * buton1 ->buton pentru validarea operanzilor +
-      * buton2 -> buton pentru operatia de adunare +
-      * buton3 -> buton pentru operatia de scadere +
-      * buton reset +
-    * Iesiri: +
-      * cele 8 leduri -> pentru afisarea operanzilor +
-      * afisajul cu 7 segmente -> pentru afisarea rezultatului +
-    * Mod de operare: +
-      * trebuie intodusi operanzii cu ajutorul switch-urilor si afisari cu ajutorul led-urilor(cate 4 pentru fiecare operand +
-      * pentru a valida opernazii trebuie apasat butonul "​buton1"​ +
-      * dupa validare: +
-        * la apasarea butonul "​buton2"​ se va afisa cu ajutorul afisajului cu 7 segmente rezultatul adunarii celor doi operanzi +
-        * la apasarea butonul "​buton3"​ se va afisa cu ajutorul afisajului cu 7 segmente rezultatul adunarii celor doi operanzi +
-        * dupa apasarea unui buton, va ramane afisata aceeasi valoare pana la apasarea urmatorului buton +
-      * pentru introducerea altor valori pentru operanzi se va apasa butonul de reset +
  
 +  * Intrări:
 +    * operandul A -> 4 switch-uri
 +    * operandul B -> 4 switch-uri
 +    * 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_leds**)
 +    * afisajul cu 7 segmente -> pentru afișarea rezultatului (**l_r_message**)
 +  * Mod de operare:
 +    * STATE_INITIAL:​
 +      * se introduc valorile celor doi operanzi folosind switch-urile
 +      * pe cele 8 leduri se va afișa valoarea PROGRESS_NONE
 +      * pe afișajul cu 7 segmente se va afișa valoarea unuia dintre operanzi
 +    * la apăsarea lui buton1:
 +      * se salvează în memorie valoarea operanzilor
 +      * se trece în starea STATE_OP_READ
 +    * STATE_OP_READ:​
 +      * 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)
 +    * la apăsarea lui buton2 sau buton3:
 +      * se trece în starea STATE_RESULT_SELECT
 +    * STATE_RESULT_SELECT
 +      * pe cele 8 leduri se va afișa valoarea PROGRESS_RESULT
 +      * pe afișajul cu 7 segmente se va afișa:
 +        * mesajul APAS (PRESS_MESSAGE),​ dacă nu este apăsat nici buton2, nici buton3
 +        * suma celor doi operanzi din memorie, dacă este apăsat buton2
 +        * diferența celor doi operanzi din memorie, dacă este apăsat buton3
 +      * suma și diferența vor fi afișate în zecimal
 +    * 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
  
-<​hidden>​ 
- ​**Task 03** (2p) Găsiți 2 teste relevante în care să fie vizibilă optimizarea adusă de sumatorul carry-lookahead față de cel ripple-carry. 
-</​hidden>​ 
soc/laboratoare/07/todo.1709210248.txt.gz · Last modified: 2024/03/24 11:57 (external edit)
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