Newsgroup: it.hobby.elettronica.digitale
Titolo: nand, xnor & nor

ciao,
sono nuovo e alle prime armi!!
devo trovare un modo di scrivere usando solo NAND, XNOR e NOR tutte le  16
combinazioni booleane
per esempio
se cerco di ottenere solo 1 come risultato quale che sia l'input
Input        Output
A      B        C
0       0        1
0       1        1
1       0        1
1       1        1
ho usato un NAND che mi da una o 1 o 0 e poi ho unito i contatti d uno XNOR
e ottengo solo 1 dalle coppie 0 0 e 1 1
Il problema nasce quando devo fare la seguente:
Input        Output
A      B        C
0       0        0
0       1        0
1       0        1
1       1        0
ho aggiunto al circuito dei "soli 1" un NOT finale fatto da un NAND con i
contatti uniti e ho ottenuto un cricuito con risultato solo 0
Ho messo il primo circuito come input dell'A e il secondo come input di B
Cosě ho solo il caso che mi interessa... ma il modo di procedere č corretto?
Cosě facendo escludo gli altri casi... come posso fare per ottenere qualcosa
di meglio?
E cosa mi consigliate per la seguente?
Input        Output
A      B        C
0       0        0
0       1        0
1       0        1
1       1        1
Grazie 1000
Excelsior
Stefano

 1       1        0
[cut]
Scherzi a parte, è un esercizio di scuola immagino. Beh, io mi scriverei 
la funzione logica da implementare, eventualmente minimizzata con 
Karnaugh o De Morgan e poi esprimerei i vari minterm con le porte che ti 
servono. Questa è la strada 'meccanica'.
Se invece vuoi arrivarci a naso, allora puoi sempre guardare la tabella 
di verità e trovare le porte che servono, ma appena la cosa si complica 
un po' di più non credo sia poi così agevole...
Marco / iw2nzm


anche io... ma... devo farli sti esercizi!!!
Excelsior
Stefano

 anche io... ma... devo farli sti esercizi!!!
uhm... vediamo un po' allora:
Input            Output
A      B         C
0       0        1
0       1        1
1       0        1
1       1        1
Qui rimango dell'idea di mettere l'uscita fissa a 1. E' la soluzione più 
semplice, economica e corretta :)
Se proprio vuoi usare porte logiche puoi usare una AND sommata ( = OR) a 
una NAND o una NOR sommata a una OR. La porta non negata la ottieni con 
una NAND i cui ingressi sono cortocircuitati.
Input            Output
A       B        C
0       0        0
0       1        0
1       0        1
1       1        0
Qui devi avere uscita 1 se A = 1 e B = 0. Quindi ti prendi A, B negato e 
li mandi a una AND. Come prima: usa tutte NAND o NOR per realizzare le 
funzioni elementari.
A       B        C
0       0        0
0       1        0
1       0        1
1       1        1
Procedi allo stesso modo (che poi è più o meno quanto dicevo nel primo 
post anche se fatto senza conoscere la teoria! :) )
Indico con _ la negazione: es. A_ => A negato
C = AB_ + AB
Il prodotto lo fai con la AND, la somma con la OR...
Se esprimi la funzione da implementare come 'somma di prodotti', ovvero 
prendi ogni '1' della colonna C e vedi come deve essere ottenuto non 
sbagli mai, anche con tabelle molto complesse.
Ovviamente non sono 'ottimizzate' queste implementazioni ma se sono solo 
di esercizio vanno bene. Ma almeno la prima forma canonica ve l'hanno 
spiegata?
Marco / iw2nzm


prima di tutto ti ringrazio della minima imboccata.
siamo al primo anno di informatica all'università e io provengo da ragineria
dove questa roba non l'abbiamo fatta.
ora anche se sono del '74 ho deciso di iscrivermi (meglio tardi che mai :-))
e sono quel 10 anni che non prendo in mano libri di matematica dove tra
l'altro non è indicato nulla di tutto ciò.
Il professore haspiegato però dando per sott'inteso che molti sapessero
quello che stava dicendo. Ora se devo applicare la matematica booleana per
trovarmi più tranquillo non lo so, so solo che vorrei evitare di fare sì che
ogni tabella di verità (oltre le 16 combinazioni non credo si andrà)
rappresenti un'ostacolo.
Insomma vorrei sapere come comportarmi.
Per ora provo a ragionare su quanto mi hai detto, sono contento però di
sapere che la parte fatta da me con l'1 forzato nel mio primo caso era
formalmente corretta!!! ;-)) Posso passare più tranquillamente adesso a fare
il resto sperando di non prendere qualche topica e di aver capito il
meccanismo.
Ovviamente se non capisco... io busso qui!!! ;-))
Excelsior
Stefano

 Stefano
Ciao e buono studio!
Marco / iw2nzm