Sari la conținut
ELFORUM - Forumul electronistilor

Implementare decodificator binar-zecimal


bodo_b

Postări Recomandate

Dupa cum am scris in titlu as vrea sa fac un decofificator din cod binar in cod zecimal, activ pe nivel logic 0, cu 4 intrari de selectie si 16 iesiri. Acest decodificator trebuie implementat cu porti logice inversoare ( NU ) si porti logice SI-NU.

Am idee cum se face. Dupa ce m-am jucat cu diagrama Karnaugh am obtinut pentru o iesire urmatoarea functie:

f(15) - una din iesiri ( ultima iesire < am numerotat de la f(0) -> f(15) )

 

f(15) = (I1)*(I0) + (I1)*I0 + I1*(I0) + (I3)*I1 + (I2)*I1

 

Obs. am notat : I1 - intrare si (I1) - intrare negata

 

Ce nu stiu eu este cum sa implementez functia data doar cu porti inversoare NU si cu porti SI-NU cu cate 2 intrari. Mi-ar fi fost foarte usor sa folosesc porti NU, SAU, SI cu cate 2 intrari.

Astept pareri.

Link spre comentariu
  • Răspunsuri 15
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • bodo_b

    6

  • cirip

    4

  • Laci

    2

  • EmyRulz

    1

Top autori în acest subiect

Din cate imi aduc eu aminte, daca vrei sa implementezi cu porti si-nu/sau-nu din diagrama K iei pentru minimizare 0-rile in loc de 1, iar din functia SAU este rel. usor de facut SI, cu formula De-Morgan: !(a+b) = !a*!b, daca ai functia a+b si vrei sa-l faci cu porti SI si INV => !!(a+b)= !(!a*!b)

Link spre comentariu

Ce nu stiu eu este cum sa implementez functia data doar cu porti inversoare

Nu cred ca este posibil asa ceva. Inversorul accepta o singura variabila de intrare (operator unar, parca se cheama), in timp ce functia ta este de mai multe variabile.Cirip
Link spre comentariu

Ms ptr link. Stiu relatiile lui De Morgan. Dar vezi tu ... ca sa obtin inmultirea a doua intrari trebuie sa folosesc SAU-NU. Iar eu trebuie sa folosesc numai porti NU si porti SI-NU. Asta e durerea. Daca folosesc porti SI-NU obtin adunarea a doua intrari. Cum am dat si exemplul de mai sus, nu pot obtine cu porti SI-NU ceva de genu : (I1)*(I0) pentru ca mai tarziu sa le pot aduna, iar inmulti si sa minimizez functia.

Link spre comentariu

Porti NU si porti SI-NU. Doar aceste 2 tipuri mi s-au impus sa le folosesc....Dar vezi tu ... ca sa obtin inmultirea a doua intrari trebuie sa folosesc SAU-NU. Iar eu trebuie sa folosesc numai porti NU si porti SI-NU. Asta e durerea....

A, ok. Pai atunci De Morgan te scoate. Cu el convertesti suma in inmultire si reciproc. Sau imi scapa ceva?
Link spre comentariu

Pai hai sa le luam pe rand. Am functia asta f(15) = (I1)*(I0) + (I1)*I0 + I1*(I0) + (I3)*I1 + (I2)*I1Eu pot folosi doar porti NU si porti SI-NU.introduc (I1)*(I0) in poarta SI-NU si voi obtine I1 + I0 introduc (I1)*I0 in alta poarta SI-NU si voi obtine I1 + (I0)introduc I1*(I0) in alta poarta SI-NU si voi obtine (I1) + I0introduc (I3)*I1 in alta poarta SI-NU si voi obtine I3 + (I1)introduc (I2)*I1 in alta poarta SI-NU si voi obtine I2 + (I1)Dupa care voi avea nevoie de porti SAU si nu am facut nici o minimizare, dapai sa ajung la iesire.Este asa sau nu m-am gandit eu bine ?

Link spre comentariu

Pai hai sa le luam pe rand. [...]Dupa care voi avea nevoie de porti SAU si nu am facut nici o minimizare, dapai sa ajung la iesire.Este asa sau nu m-am gandit eu bine ?

Imi e greu sa urmaresc, dar mi se pare ca rationamentul nu este dus pana la capat. E ca o ecuatie la care faci o parte din calcule si apoi te opresti. Nu ai ajuns inca la rezultatul final.Pe de alta parte, nu cred ca poti indeplini simultan cerinta de minimizare si restrictia tipului de porti. Daca vrei numai un anumit tip de porti, implementarea nu mai este minimala.Du transformarile pana la capat. Fa in asa fel incat expresia sa contina numai NU si SI-NU si dupa aia incerci sa minimizezi prin factorizare si alte cele, fara De Morgan.
Link spre comentariu

Porti NU si porti SI-NU. Doar aceste 2 tipuri mi s-au impus sa le folosesc.

...

Dar vezi tu ... ca sa obtin inmultirea a doua intrari trebuie sa folosesc SAU-NU. Iar eu trebuie sa folosesc numai porti NU si porti SI-NU. Asta e durerea.

...

 

A, ok. Pai atunci De Morgan te scoate. Cu el convertesti suma in inmultire si reciproc. Sau imi scapa ceva?
asta imi aduce aminte ca z80 nu facea inmultiri, ca nu putea, putea face impartiri, adunari, si scaderi.

ca sa faci inmultiri, pur si simplu adunai pana la x valoare, o puneai in acumulator, si urmau restul operatiilor...

 

de-aia inmultirea era lenta si scrisa in asm... si cum grafica fluenta depinde de viteza cu care se calculeaza niste inmultiri...!!!

z80 era, cui nu stie, procesor pe 8 biti...

Link spre comentariu

eu nu ma prea pricep la DeMorgan ala, dara asa ceva vrei tu ?

Ha ha, cred ca asta e schema lui 7447 sau 4511, dar cred ca bodo_b are de facut o tema sau un proiect, ceva, si la alea tre' demonstrat de ce e schema asa cum e. :)
Link spre comentariu

Am functia asta f(15) = (I1)*(I0) + (I1)*I0 + I1*(I0) + (I3)*I1 + (I2)*I1 ?? de ce nu notezi cu literef(15) = (!b*!a) + (!b*a) + (b*!a) + (!d*b) + (!c*b)a = i0b = i1...(a) = !af(15) cu porti si-nu: !!(f(15), si dezvolti => f(15)= !( !(!b*!a) * !(!b*a) * !(b*!a) * !(!d*b) * !(!c*b) ) ta-da, ai numai si-nu, si inv.

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări