Differences

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

Link to this comparison view

soc:laboratoare:07:overview [2024/04/16 23:46]
stefan.maruntis
soc:laboratoare:07:overview [2024/04/16 23:50] (current)
stefan.maruntis
Line 24: Line 24:
 <spoiler Implementarea bitului de propagare cu XOR> <spoiler Implementarea bitului de propagare cu XOR>
  
-Uneori (dar nu și in laboratorul de față) se folosește și o altă definiție a propagării. Exprimarea lui P<​sub>​i</​sub>​ = A<​sub>​i</​sub>​ + B<​sub>​i</​sub>​ va propaga carry-ul (daca numai unul dintre A<​sub>​i</​sub>​ și B<​sub>​i</​sub>​ este 1), dar va propaga și atunci când sumatorul **generează** carry (A<​sub>​i</​sub>​ și B<​sub>​i</​sub>​ sunt ambele 1). Rezultatul final este corect, însă preferăm să nu propagăm atunci când generăm carry. Astfel, putem folosi operatorul XOR, pentru a propaga carry-ul atunci când numai unul dintre biții A<​sub>​i</​sub>​ și B<​sub>​i</​sub> ​sunt 1, dar nu ambii:+Uneori (dar nu și în laboratorul de față) se folosește și o altă definiție a propagării. Exprimarea lui P<​sub>​i</​sub>​ = A<​sub>​i</​sub>​ + B<​sub>​i</​sub>​ va propaga carry-ul (dacă numai unul dintre A<​sub>​i</​sub>​ și B<​sub>​i</​sub>​ este 1), dar va propaga și atunci când sumatorul **generează** carry (A<​sub>​i</​sub>​ și B<​sub>​i</​sub>​ sunt ambele 1). Rezultatul final este corect ​oricum, însă preferăm să nu propagăm atunci când generăm carry. Astfel, putem folosi operatorul XOR, pentru a propaga carry-ul atunci când numai unul dintre biții A<​sub>​i</​sub>​ și B<​sub>​i</​sub> ​este 1, dar nu ambii:
   * P'<​sub>​i</​sub>​(A<​sub>​i</​sub>,​ B<​sub>​i</​sub>​) = A<​sub>​i</​sub>​ ⊕ B<​sub>​i</​sub>​   * P'<​sub>​i</​sub>​(A<​sub>​i</​sub>,​ B<​sub>​i</​sub>​) = A<​sub>​i</​sub>​ ⊕ B<​sub>​i</​sub>​
  
Line 33: Line 33:
 Rescriind ecuația (1) cu P<​sub>​i</​sub>​ si G<​sub>​i</​sub>,​ rezultă: ​ Rescriind ecuația (1) cu P<​sub>​i</​sub>​ si G<​sub>​i</​sub>,​ rezultă: ​
   * **c<​sub>​i+1</​sub>​ = G<​sub>​i</​sub>​ | P<​sub>​i</​sub>​ & c<​sub>​i</​sub>​**   * **c<​sub>​i+1</​sub>​ = G<​sub>​i</​sub>​ | P<​sub>​i</​sub>​ & c<​sub>​i</​sub>​**
 +<​note>​
 Pentru o comparație mai tangibilă a întârzierilor celor 2 sumatoare (ripple-carry și carry-lookahead),​ puteți folosi aceste 2 simulatoare cu întârziere setabilă pentru porțile folosite (se pot observa întârzieri semnificative ale lui ripple-carry față de carry-lookahead pentru numere reprezentabile pe 32 de biți): Pentru o comparație mai tangibilă a întârzierilor celor 2 sumatoare (ripple-carry și carry-lookahead),​ puteți folosi aceste 2 simulatoare cu întârziere setabilă pentru porțile folosite (se pot observa întârzieri semnificative ale lui ripple-carry față de carry-lookahead pentru numere reprezentabile pe 32 de biți):
   * [[http://​www.ecs.umass.edu/​ece/​koren/​arith/​simulator/​Add/​ripple/​ripple.html|Ripple-carry]]   * [[http://​www.ecs.umass.edu/​ece/​koren/​arith/​simulator/​Add/​ripple/​ripple.html|Ripple-carry]]
-  * [[http://​www.ecs.umass.edu/​ece/​koren/​arith/​simulator/​Add/​lookahead/​|Carry-lookahead]] ​+  * [[http://​www.ecs.umass.edu/​ece/​koren/​arith/​simulator/​Add/​lookahead/​|Carry-lookahead]] 
 +</​note>​
soc/laboratoare/07/overview.1713300409.txt.gz · Last modified: 2024/04/16 23:46 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