Mikä on 74181: n aritmeettisten toimintojen syy?

En ymmärrä miksi 74181 toimii samalla tavalla kuin se. tarjoaa kaikki loogiset toiminnot (AND, NAND, OR, NOR, XOR, shift), mutta sen aritmeettiset toiminnot eivät ole niin selkeitä. Esimerkiksi, se ei sisällä A - B ja A + B samassa tilassa.

Voisitteko antaa historiataustaa sen suunnittelusta?

Kommentit

  • hyvä kysymys, mutta en mielestäni ' usko, että kukaan meistä chiphacker-käyttäjistä tietäisi minkä tahansa TI-motiivista sen lisäksi, mitä on taulukossa tai wikipediassa fi.wikipedia.org/wiki/74181
  • @Jason: kiitos kommentistasi. sitten missä on hyvä paikka tähän kysymykseen?
  • ole varma … tarkista TI-myyntiedustajalta? Ehkä he voisivat ottaa sinuun yhteyttä vanhaan ajastimeen, joka työskenteli 74181: n parissa jo vuonna 1970 ' s.

vastaus

Tiedän, että tämä on vanha kysymys, mutta olen äskettäin suunnitellut käännöksen 74181 ja voin selittää yksityiskohtaisesti, miksi sillä on toiminnot se tekee.

74181 on 4-bittinen ALU-siru, joka tarjoaa 16 logiikkatoimintoa ja 16 aritmeettista funktiota sen operanteilla A ja B. Monet loogisista funktioista ovat mitä voit odottaa (AND, OR, XOR), mutta on myös epätavallisia, kuten A OR NOT B. Aritmeettiset toiminnot ovat vieläkin omituisempia. Vaikka sinulla on A PLUS B ja A Miinus B, jotkut, kuten (A OR B) PLUS (A JA EI B), näyttävät melko satunnaisilta.

Tälle toiminnolle on itse asiassa syy. Logiikkatoiminnot tarjoavat kaikki 16 Boolen funktiota f (A, B). Aritmeettiset toiminnot kaikki kiehuvat A PLUS f (A, B) PLUS -kuljetukseksi.

Astu taaksepäin saadaksesi selville, miksi on 16 Jos sinulla on Boolen funktio f (A, B) yksibittisissä tuloissa, totuustaulukossa on 4 riviä. Jokainen rivi voi tuottaa 0 tai 1. Joten on 2 ^ 4 = 16 mahdollista toimintoa. Laajenna näitä 4 bittiin, ja nämä ovat täsmälleen 74181: n 16 logiikkatoimintoa triviaalista 0: sta ja 1: stä odotettuun logiikkaan, kuten A ja B, keksittyihin operaatioihin, kuten EI A ja B.

Aritmeettiset funktiot ovat yksinkertaisesti näitä 16 toimintoa, jotka lisätään A: han, kun siirto lisätään. Esimerkiksi, jos f (A, B) = B, saat A PLUS B PLUS -kuljetuksen. Jos f (A, B) = EI B, saat A PLUS NOT B PLUS -kuljetus, joka kahdessa ”s-komplementtilogiikassa muuttuu A MINUS B-MINUS 1 PLUS -kuljetukseksi.

Muu aritmeettinen fu toiminnot vievät hieman enemmän analyysiä. Oletetaan, että f (A, B) = EI (A TAI B). Sitten A PLUS f: n (A, B) jokainen bitti on aina 1 lukuun ottamatta tapausta, jossa A on 0 ja B on 1. Joten tulos on A TAI EI B. Vaikka teetkin lisäystä, tulos on looginen funktio. Muut outot aritmeettiset funktiot voidaan selittää samalla tavalla.

Yksi asia on huomata, että PLUS PLUS A antaa sinulle vasemman siirtymän, mutta 74181: ssä ei ole mahdollista tehdä oikeaa siirtymää.

Toteutuksessa 74181: llä on neljä valintariviä, jotka valitsevat mitä 16 f (A, B) -toiminnosta käytetään. Sirun piirien ensimmäinen puolisko laskee A: n neljä 1-bittistä summaa f: llä (A, B). (Tarkemmin sanottuna se luo Generate and Propagate -signaaleja, joita käytetään carry lookahead . Tämä antaa 74181: n työskennellä rinnakkain sen sijaan, että käyttäisi aaltoilevaa kantoa.) Sirun piirin toinen puoli tuottaa kaikki kannot rinnakkain ja laskee lopullisen summan.

Sisäisesti logiikkatoiminnot toteutetaan suorittamalla lisäys siten, että sisäiset kantavat kaikki M-linjan pakottamat korkeat: A PLUS f (A, B) kaikkien kantojen kanssa. On yksinkertaista nähdä, että tämä luo edelleen 16 ainutlaatuista loogista funktiota. Se kuitenkin läpäisee järjestyksen, minkä vuoksi jos tarkastellaan tietolomaketta, logiikkatoimintojen ja aritmeettisten funktioiden välillä ei ole selvää yhteyttä.

Jos haluat ymmärtää 74181: n sisäosat, katso ensin 7483 4-bittinen summain, joka ilmestyi kaksi vuotta aiemmin. Siinä käytetään sama kantolaskentatekniikka, mutta sen ymmärtäminen on yksinkertaisempaa, koska se tarjoaa yhden toiminnon, ei 32. Voit ajatella, että 74181 on 7483: n yleistys.

Vastaus

A minus B minus 1 käytetään vähennykseen, ja kantolipun täydennystä voidaan tarkastella lainalippuna.

Kommentit

  • Itse asiassa jopa AVR: t käyttävät tätä – heillä ei ole välitöntä lisäohjeita (vain välitön vähennys), koska voit muuntaa ne helposti toisiksi. Jos molemmat arvot tulevat rekistereistä sitten molemmat su b ja add ovat mukavia ja nopeita, mutta yksi ei silti ole ehdottoman välttämätöntä.
  • Kyllä, katso stackoverflow.com/questions/1337831/…

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *