Kas yra visiškas atimėjas: statyba naudojant loginius vartus

Išbandykite Mūsų Instrumentą, Kaip Pašalinti Problemas





Paprastai visas atimėjas yra vienas iš dažniausiai naudojamų ir esminės kombinacinės logikos grandinės . Tai yra pagrindinis elektroninis prietaisas, naudojamas atimant du dvejetainius skaičius. Ankstesniame straipsnyje mes jau pateikėme pagrindinę teoriją pusiau papildytojas ir pilnas papildiklis kuri skaičiavimui naudoja dvejetainius skaitmenis. Lygiai taip pat ir visas atimėjas naudoja dvejetainius skaitmenis, tokius kaip 0,1, atimant. To grandinę galima sukurti naudojant loginius vartus, tokius kaip OR, Ex-OR, NAND vartai. Šio atimties įvestys yra A, B, Bin, o išvestys - D, Bout.

Šiame straipsnyje pateikiama visos subtraktoriaus teorijos idėja, apimanti tokias patalpas kaip atimėjas, dizainas su loginiais vartais, tiesos lentelė ir kt. Šis straipsnis yra naudingas inžinerijos studentams, kurie gali nagrinėti šias temas DTL praktinėje laboratorijoje.




Kas yra subtraktorius?

Dvejetainių skaitmenų atimtis gali būti atliekama atimties grandinės pagalba. Tai yra vienos rūšies kombinacinės loginės grandinės rūšis, naudojama atimant du dvejetainius skaitmenis, tokius kaip 0s ir 1s. Dvejetainių skaitmenų atėmimas nuo 0 iki 0 arba 0 iki 1 rezultato nekeičia, atėmus nuo 1 iki 1 rezultatas bus 0, tačiau atimant 1–0 reikia skolintis.

Pavyzdžiui, dviejų bitų atimties grandinėje yra du įėjimai, tokie kaip A ir B, o išėjimai yra skirtingi ir skolinasi. Ši grandinė gali būti pastatyta su priedais kartu su keitikliais, esančiais tarp kiekvieno duomenų įvedimo, taip pat pasiskolinimo (dėžės) įvesties ankstesniame FA etape.



Subtraktoriai skirstomi į du tipus, tokius kaip pusė subtraktorius ir visiškai subtraktorius. Čia aptariame pilną atimėją.

Kas yra pilnasis atimėjas?

Tai yra elektroninis prietaisas arba loginė grandinė kuris atima du dvejetainius skaitmenis. Tai kombinuota loginė grandinė, naudojama skaitmeninėje elektronikoje. Yra daugybė kombinuotų grandinių integruotų grandinių technologija būtent priedai, kodavimo įrenginiai, dekoderiai ir multiplekseriai. Šiame straipsnyje aptarsime jo konstrukciją naudodami pusę atimties ir tokius terminus kaip „Tiesos lentelė“.


Visiškas atimėjas

Visiškas atimėjas

Tai gali suprojektuoti du pusiniai atimėjai, kurie apima tris įvestis, tokias kaip minuend, subtrahend ir skolintis, skolintis bitą tarp įvesties gaunama atėmus du dvejetainius skaitmenis ir atimama iš kitos aukštesnės eilės poros bitai, išėjimai kaip skirtumas ir skolinkitės.

visa atimties bloko schema yra parodyta žemiau. Svarbiausias pusės atimties trūkumas yra tas, kad mes negalime padaryti skolinimosi bitų šiame atimime. Savo konstrukcijoje iš tikrųjų mes galime sukurti paskolos bitą grandinėje ir atimti iš likusių dviejų i / ps. Čia A yra minuendas, B yra subtrahendas ir Binas skolinasi. Rezultatai yra Difference (Diff) ir Bout (Borrow out). Visą atimties grandinę gali gauti naudodamiesi dviem dalimis atimties su papildomais ARBA vartais.

Visa atimties bloko schema

Visa atimties grandinės schema su loginiais vartais

visiško atimties schema naudojant pagrindinius vartus s yra parodyta šioje blokinėje diagramoje. Šią grandinę galima atlikti dviem pusiau atimties grandinėmis.

Pradinėje pusiau atimties grandinėje dvejetainiai įėjimai yra A ir B. Kaip jau aptarėme ankstesniame pusiau atimties straipsnyje, tai sukurs du išėjimus, būtent skirtumą (dif.) Ir skolinimąsi.

Visiškas subtraktorius, naudojantis loginius vartus

Visiškas subtraktorius, naudojantis loginius vartus

Kairiosios atimties skirtumas o / p nurodomas kairiosios pusės atimties grandinei. Diferencinė išvestis pateikiama dešinės pusės atimties grandinės įėjimui. Mes pasiūlėme skolintis bitais kitose kito i / p pusės atimties grandinė . Dar kartą tai suteiks „Diff“, taip pat skolinsis šiek tiek. Galutinė šio atimties išvestis yra difuzinė išvestis.

Kita vertus, skolinimasis iš abiejų pusių atimties grandinių yra prijungtas prie ARBA loginių vartų. Vėliau, nei duodami ARBA logikos dviem atimties bitų išvesties bitams, mes gauname galutinę skolą iš atimties. Paskutinis skolinimasis reiškia MSB (svarbiausias bitas).

Stebėdami to vidinę grandinę, galime pamatyti du Pusiau atimėjus su NAND vartais ir XOR vartus su papildomais ARBA vartais.

Visa atimties tiesos lentelė

Tai atimties grandinė atima iš dviejų bitų atėmimą, kuris turi 3 įėjimus (A, B ir Bin) ir du išėjimus (D ir Bout). Čia įvestys nurodo manoend, subtrahend ir ankstesnį skolinimąsi, o du išėjimai žymimi kaip skolintis o / p ir skirtumas. Šiame paveikslėlyje parodyta pilnos atimties tiesos lentelė.

Įvestys

Rezultatai

Minuend (A)

Subtrahend (B) Skolintis (šiukšliadėžė) Skirtumas (D)

Skolintis (Bout)

0

000

0

0

0111
0101

1

0110

1

1

0010
1010

0

1

1000

1

111

1

K žemėlapis

Programos supaprastinimas visas atimties K žemėlapis dėl aukščiau nurodyto skirtumo ir skolinimosi parodytas žemiau.

K- skirtumų žemėlapis

Žemiau pateikiamos skirtumo lygtys, taip pat Bin.

K- Bout žemėlapis

Skirtumo išraiška yra,

D = A’B’Bin + AB’Bin ’+ A’BBin’ + ABBin

„Borrow“ išraiška yra

Bout = A’Bin + A’B + BBin

Viso subtraktoriaus grandinės pakopos

Anksčiau mes aptarėme tokios konstrukcijos apžvalgą, grandinės schemą su loginiais vartais. Bet jei mes norime atimti dar du kitaip 1 bitų skaičius, ši atimties schema yra labai naudinga pakopuoti vieno bitų skaičius ir atimti daugiau nei du dvejetainius skaičius. Tokiais atvejais, naudojant NOT logikos vartus, naudojama visa papildymo pakopinė grandinė. Grandinės konversija iš pilnosios sumos į pilnąją atimėją gali būti atliekama naudojant 2 komplemento techniką.

Paprastai invertuokite subtrahend įvestis visam sumaišytojui naudodami NOT gate, kitaip inverterį. Pridėjus šį Minuend (neinvertuotas įvestis) ir Subtrahend (apverstas įvestis), FA grandinės LSB (nešimo įvestis) yra 1, o tai reiškia „Logic High“, kitaip mes atimame du dvejetainius skaitmenis, naudodami 2 papildymo techniką. FA išvestis yra Diff bitų, o jei mes apversime vykdymą, mes galime gauti MSB, kitaip Skolos bitą. Tiesą sakant, mes galime sukurti grandinę taip, kad būtų galima stebėti išvestį.

„Verilog“ kodas

Kalbant apie kodavimo dalį, pirmiausia turime patikrinti loginės grandinės schemos struktūrinį modeliavimo būdą. To loginę schemą galima sukurti naudojant AND vartus, pusės atimties grandines ir loginių vartų, tokių kaip AND, OR, NOT, XOR, vartus. Kaip ir struktūriniame modeliavime, mes paaiškiname įvairius kiekvieno elemento išdėstymo modulius. Šiame kode kiekvienam vartui galima nustatyti skirtingus modulius.

Šis modulis skirtas OR vartams.

ĮVADAS: a0, b0

IŠĖJIMAS: c0

Galiausiai sujungsime šiuos tikslius vartų modulius į vienintelį modulį. Tam mes naudojame modulio greitinimą. Dabar šį momentą galima naudoti, kai norime pakartoti tikslų modulį ar funkciją įvairiems įvesties rinkiniams. Pirma, mes suprojektuojame pusę atimties, tada šis modulis naudojamas pilnam atimėjui įgyvendinti. Norėdami tai įgyvendinti, mes naudojame OR vartus, kad sujungtume Bout kintamojo o / ps. verilogo kodas visam atimėjui yra parodyta žemiau

modulis or_gate (a0, b0, c0)

įvestis a0, b0

išėjimas c0

priskirti c0 = a0 | b0

endmodulis

modulis xor_gate (a1, b1, c1)

įvestis a1, b1

išėjimas c1

priskirti c1 = a1 ^ b1

endmodulis

modulis and_gate (a2, b2, c2)

įvestis a2, b2

išėjimas c2

priskirti c2 = a2 ir b2

endmodulis

modulis not_gate (a3, b3)

įvestis a3

išvestis b3

priskirti b3 = ~ a3

endmodulis

modulio pusiau subtraktorius (a4, b4, c4, d4)

įvestis a4, b4

išėjimas c4, d4

viela x

xor_gate u1 (a4, b4, c4)

and_gate u2 (x, b4, d4)

not_gate u3 (a4, x)

endmodulis

modulis full_subtractor (A, B, Dėžutė, D, Bout)

įvestis A, B, šiukšliadėžė

išėjimas D, Bout

viela p, q, r

pusinis subtraktorius u4 (A, B, p, q)

pusinis subtraktorius u5 (p, šiukšliadėžė, D, r)

or_gate u6 (q, r, Bout)

endmodulis

Visiškas atimėjas, naudodamas 4X1 multipleksorių

Atimtis gali būti atliekama naudojant dviejų komplemento metodą. Taigi mums reikia naudoti 1-XOR vartus, kurie naudojami 1 bitų inversijai ir įtraukti juos į nešimo bitą. DIFFERENCE išvestis yra panaši į išvestį SUM visoje suminėtojo grandinėje, tačiau BARROW o / p nėra panaši į viso papildytojo nešimo išvestį, tačiau ji yra apversta ir komplimentuota, pavyzdžiui, A - B = A + (-B) = A + du B papildai

Tai naudojant 4X1 multipleksorių dizainas parodytas šioje loginėje diagramoje. Šį dizainą galima atlikti atlikus šiuos veiksmus.

4X1 multiplekseris

4X1 multiplekseris

  • 1 žingsnyje yra du išėjimai, tokie kaip „Sub“ ir „Borrow“. Taigi turime pasirinkti 2 multiplekserius.
  • 2 etape tiesos lentelę galima įdiegti kartu su K žemėlapiais
  • 3 žingsnyje du kintamuosius galima pasirinkti kaip pasirinktą eilutę. Pavyzdžiui, šiuo atveju yra „B & C“.

Tiesos lentelė

pilno atimėjo tiesos lentelė grandinę, naudojančią 4X1 multiplekserį, apima:

Į

B C Sub

Pasiskolink

0

0000
0011

1

0101

1

0

1101
1001

0

1

0100
1100

0

1

111

1

Visiškas atimėjas naudojant dekoderį

Suprojektuoti pilną atimtuvą naudojant 3-8 dekoderius galima naudojant aktyvius mažus išėjimus. Tarkime, kad dekoderis veikia naudodamas šią loginę diagramą. Dekoderyje yra trys įėjimai 3-8 dekoderiuose. Remdamiesi tiesos lentele, galime parašyti skirtumų ir skolinimosi rezultatų mintermus.

Iš pirmiau pateiktos tiesos lentelės

Skirtingoms tiesos lentelės funkcijoms minterms gali būti parašyta 1,2,4,7, o panašiai, kaip paskolai, minterms gali būti parašyta kaip 1,2,3,7. 3-8 dekoderiuose yra trys įėjimai, taip pat 8 išėjimai, panašūs į 7 skaičius.

3–8 dekoderis

3–8 dekoderis

Jei atimties įvestis yra 000, išėjimas „0“ bus aktyvus, o jei įvestis yra „001“, tada bus aktyvus išėjimas „1“.

Dabar atimties išvestis gali būti paimta iš 1, 2, 4 ir 7, kad prijungtumėte ją prie NAND vartų, tada išvestis bus skirtumas. Šie išėjimai gali būti prijungti prie kitų NAND loginių vartų, kur išvestis keičiasi į skolintą.

Pavyzdžiui, jei įvestis yra 001, tada išvestis bus 1, o tai reiškia, kad ji yra aktyvi. Taigi išėjimas yra aktyvus mažas, o išvestį galima gauti iš NAND vartų, vadinamų skirtumo funkcija, pavyzdžiui, aukštas, o skolinimosi funkcija taip pat gali būti aukšta. Todėl gauname pageidaujamą išėjimą. Taigi pagaliau dekoderis veikia kaip visas atimėjas.

Privalumai ir trūkumai

atimėjo privalumai įtraukti šiuos dalykus.

  • Subtraktoriaus projektavimas yra labai paprastas, taip pat jį įgyvendinti
  • Galios išskaičiavimas per DSP (skaitmeninis signalo apdorojimas)
  • Skaičiavimo užduotis galima atlikti dideliu greičiu.

atimėjo trūkumai įtraukti šiuos dalykus.

  • Pusiau atimant nėra sąlygų priimti į „Borrow“ panašų įvestį iš ankstesnio etapo.
  • Atimties greitis gali būti dalinis per vėlavimą grandinėje.

Programos

Kai kurie iš pilnos atimties programos įtraukti šiuos dalykus

  • Jie paprastai naudojami kompiuteriuose esančiam ALU (aritmetinės logikos vienetui) atimti kaip procesorių ir GPU grafikos programoms, kad sumažėtų grandinės sunkumai.
  • Atimėjai dažniausiai naudojami atliekant aritmetines funkcijas, pvz., Atimant, elektroniniuose skaičiuotuvuose ir skaitmeniniuose įrenginiuose.
  • Tai taip pat taikoma skirtingi mikrovaldikliai aritmetiniam atimimui, laikmačiams ir programų skaitikliui (PC)
  • Procesoriuose atimėjai naudojami skaičiuojant lenteles, adresus ir kt.
  • Tai taip pat naudinga DSP ir tinklais pagrįstoms sistemoms.
  • Jie dažniausiai naudojami kompiuterių ALU, norint atimti grafikos programoms, pvz., Procesorių ir GPU, siekiant sumažinti grandinės sudėtingumą.
  • Jie daugiausia naudojami atliekant aritmetines funkcijas, pvz., Atimant skaitmeninius prietaisus, skaičiuotuvus ir kt.
  • Šie atimėjai taip pat tinka įvairiems laikmačių mikrovaldikliams, kompiuteriui (programų skaitikliui) ir aritmetinei atimčiai
  • Jie naudojami procesoriams apskaičiuoti adresus, lenteles ir kt.
  • Tai galima realizuoti naudojant tokius loginius vartus kaip NAND & NOR, naudojant bet kokią pilną atimties logikos grandinę, nes abu NOR & NAND vartai vadinami universaliaisiais vartais.

Remiantis aukščiau pateikta informacija, įvertinant sumuotoją, pilną atimtuvą, naudojant dvi pusės atimties grandines, ir jo lentelių formas, galima pastebėti, kad pilnosios atimties „Dout“ yra tiksliai panašus į „Sout of the full-sumder“. Vienintelis variantas yra tas, kad A (įvesties kintamasis) yra papildomas visiškai atimtuoju. Taigi galima pakeisti visos sumos grandinę į pilną atimėją tiesiog papildant i / p A, kol ji bus suteikta loginiai vartai generuoti paskutinį skolinimosi bitų išvestį („Bout“).

Naudojant bet kokią pilnos atimties logikos schemą, gali būti įgyvendintas visas atimėjas, naudojant NAND vartus, ir visiškai atimantis, naudojant nei vartus, nes tiek NAND, tiek NOR vartai traktuojami kaip universalūs vartai. Štai jums klausimas, kuo skiriasi pusiau atimtasis ir visiškai atimtasis?