Mi az oka a 74181 számtani függvényeinek?

Nem értem, hogy a 74181 miért működik úgy, ahogy működik. biztosítja a logikai funkcionalitás teljes készletét (AND, NAND, OR, NOR, XOR, shift), de aritmetikai funkciói nem annyira egyértelműek. Például nem tartalmaz A - B és A + B ugyanabban a módban.

Tudna valamilyen előzményi hátteret adni a tervezéséről?

Megjegyzések

  • jó kérdés, de nem gondolom, hogy bármelyik chiphacker felhasználó tudná bármelyik TI motívumot azon túl, ami az adatlapon vagy a wikipédián található. hu.wikipedia.org/wiki/74181
  • @Jason: köszönöm a megjegyzésedet. akkor hol a jó hely erre a kérdésre?
  • nem biztos … kérdezze meg egy TI értékesítési képviselőtől? talán kapcsolatba léphetnek Önnel az egyik régi idős emberrel, aki még az 1970-es években dolgozott a 74181-en. ' s.

Válasz

Tudom, hogy ez egy régi kérdés, de a közelmúltban megterveztem a 74181-et, és részletesen elmagyarázhatom, miért vannak funkciói megteszi.

A 74181 egy 4 bites ALU chip, amely 16 logikai függvényt és 16 aritmetikai függvényt biztosít az A és B operandusokon. Számos logikai függvényre számíthatunk (ÉS, VAGY, XOR), de vannak olyan szokatlanok is, mint az A VAGY NEM. A számtani függvények még furcsábbak. Míg van A PLUS B és A MINUS B, néhány olyan, mint (A OR B) PLUS (A ÉS NEM B), elég véletlenszerűnek tűnik.

Ennek a műveletsorozatnak valójában oka van. A logikai függvények mind a 16 logikai függvényt ellátják f (A, B). Az aritmetikai függvények mind A PLUS f (A, B) PLUS hordozásig forrnak.

Lépjen vissza, hogy megnézze, miért van 16 függvények. Ha egy bites bemeneten van egy B (F, A, B) függvény, az igazságtáblázatban 4 sor található. Minden sor 0 vagy 1 értéket adhat ki. Tehát 2 ^ 4 = 16 lehetséges függvény van. 4 bitig, és pontosan ezek a 74181 16 logikai függvénye, a triviális 0-tól és 1-től az elvárt logikáig, mint például A és B, olyan mesterkélt műveletekig, mint a NOT A és B.

Az aritmetikai függvények egyszerűen ezek 16 függvény hozzáadva A-hoz, hozzáadva a hordozást. Például, ha f (A, B) = B, akkor kap egy A PLUS B PLUS hordozást. Ha f (A, B) = NEM B, akkor kap egy A PLUS-t NOT B PLUS átvitel, amely két “s-komplementer logikában A MINUS B MINUS 1 PLUS hordozássá válik.

Egyéb számtani fu a kapcsolatok egy kicsit több elemzést igényelnek. Tegyük fel, hogy f (A, B) = NEM (A VAGY B). Ekkor az A PLUS f (A, B) minden bitje mindig 1 lesz, kivéve azt az esetet, amikor A értéke 0 és B értéke 1. Tehát az eredmény A VAGY NEM B. Annak ellenére, hogy összeadunk, az eredmény egy logikai függvény. A többi furcsa számtani függvény hasonlóan magyarázható.

Egy dolog, amit meg kell jegyezni: A PLUSZ A bal bal eltolást ad, de a 74181-nél nem lehet jobbra eltolni.

Végrehajtásakor a 74181 négy választó vonallal rendelkezik, amelyek kiválasztják a 16 f (A, B) funkció közül melyiket használják. A chip áramkörének első fele kiszámítja az A négy 1 bites összegét f-vel (A, B). (Pontosabban létrehozza azokat a Generate és Propagate jeleket, amelyeket a carry lookahead . Ez lehetővé teszi a 74181 párhuzamos működését, ahelyett, hogy egy hullámos hordozást használna.) A chip áramkörének második fele párhuzamosan generálja az összes hordozást és kiszámítja a végösszeget.

A logikai funkciókat belülről úgy hajtják végre, hogy összeadást hajtanak végre úgy, hogy a belső hordozó mindet magasra kényszeríti az M vonal: A PLUS f (A, B) minden hordozással. Egyszerű látni, hogy ez még mindig 16 egyedi logikai függvényt generál. Ez azonban áthatja a sorrendet, ezért ha az adatlapot nézzük, nincs nyilvánvaló kapcsolat a logikai függvények és az aritmetikai függvények között.

Ha meg szeretné érteni a 74181 belső elemét, először nézze meg a két évvel korábban megjelent 7483 4 bites összeadót. ugyanazokat a számítási technikákat hordozza, de megértése egyszerűbb, mivel egy funkciót biztosít, nem pedig a 32. A 74181-re úgy gondolhat, mint a 7483 általánosítására.

Válasz

A minus B minus 1 kivonásra szolgál, és a carry flag kiegészítése kölcsön kölcsönzőként tekinthető meg.

Comments

  • Valójában még az AVR-ek is használják ezt – nincs hozzá azonnali hozzáadási utasításuk (csak azonnali kivonás), mivel könnyen konvertálhatjátok egymásba. Ha mindkét érték regiszterekből származik akkor mind a su A b és az add szép és gyors, de az egyik még mindig nem feltétlenül szükséges.
  • Igen, lásd: stackoverflow.com/questions/1337831/…

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük