Newsgroup: it.hobby.elettronica.digitale
Titolo: forma canonica

ciao
ho controllato la prima forma canonica e ho capito che per esempio
A    B        C
0    0          0
0    1          1
1    0          0
1    1          1
C= (A_*B) + (A*B)  e se ho capito bene anche che  C= B+(A_*A) dovrebbe
essere giusto.
L'unica cosa è che poi non riesco a trasmutare il tutto in un circuito
Dicevamo di usare l'AND (per la moltiplica) e l'OR (per la somma)
Allora io metto un AND tra A_ e B e un altro AND tra A e B e li unisco con
un OR ma poi non mi torna... in pratica io devo fare sì che qualunque input
io metta in A e B mi torni la tabella di verità e questo credo fosse palese.
Evidentemente pur riuscendo a scrivere tutto correttamente in forma
letterale quando si tratta di mettere giù il circuito non so dove girarmi...
ovvero provo a cortocircuitare gli AND, a usare un AND solo e
cortocircuitare l'OR ma nulla.... perche io metto i due AND (per le
moltipliche) che confluiscono nell'OR.
Da dove devo partire per scrivere il circuito? Dalla prima parentesi,
prendere la seconda con un altro circuito e fare confluire tutto nell'OR
oppure AND+OR+AND (cortocircuitato?).
Sono un po' in confusione....
Excelsior
Stefano

io metta in A e B mi torni la tabella di verità e questo credo fosse palese.
Non funziona? In teoria dovrebbe.
Boiler

>un OR ma poi non mi torna...
Cosa non ti torna di preciso?
Marco / iw2nzm

 Cosa non ti torna di preciso?
Evidentemente sbaglio a indicare il valore A_ perchè io metto un AND e i
valori che arrivano al primo AND non hanno filtri. Invece se ho capito bene
devo mettere un NOT sull'A dell'AND e non mettere nulla sulla B. Per quanto
riguarda il contatto del punto 4) invece devo lasciare solo un AND semplice.
Poi congiungere tutto con un OR.
AND n.1:
sul canale A l'AND ha un NOT a monte. ora se io metto come input A=0 passo
dal NOT e divento A=1. B=1 Passo dall'AND e ho output C=1 E fin qui ok.
AND n.2
sul canale A ho A=1 e sul canale B ho B=1. PAsso dall'AND e ho output C=0
OR
devo gestire gli output e ho A=1 B=0. Secondo la tabella di verità dovrei
avere con A e B_ output C=0 e invece l'OR mi fa C=1 (giustamente
poveretto!!)
Dove ho sbagliato??
Devo forse dare per assunto che visto che a me sul secondo AND mi serve solo
l'output C=1 devo forzare l'1 come output ovvero fare in modo di avere solo
l'1 come output nell'AND n.2??
Excelsior
Stefano

 sul canale A ho A=1 e sul canale B ho B=1. PAsso dall'AND e ho output C=0
why? se è una AND: 1*1 = 1 = C
Marco / iw2nzm

 ha scritto nel messaggio
news:WdQ1f.845$75.2...@twister1.libero.it...

scusa ho scritto male... ho A=1 e B=1 e C=1
quindi mi dici di forzare l'output a 1 nel AND n.2 ??? cioè per farlo
funzionare come voglio io sopra sono a posto (AND n.1, mentre sotto devo
mettere sempre C=1 se voglio che vada... quindo devo mettere un circuito che
dia sempre 1 come output alla seconda parte?
Excelsior
Stefano

 dia sempre 1 come output alla seconda parte?
Scusa ma non riesco a seguirti.
La funzione da implementare (didatticamente, perchè abbiamo visto si può 
semplificare con C = B) è
C = (A_*B) + (A*B)
La rete logica che traduce questa funzione è:
[FIDOCAD]
MC 15 20 0 0 680
TY 10 5 5 3 0 0 0 * A
TY 60 5 5 3 0 0 0 * B
MC 65 20 0 0 680
MC 105 45 0 0 690
MC 105 75 0 0 690
MC 145 60 0 0 710
LI 130 50 135 50
LI 135 50 135 60
LI 135 60 145 60
LI 130 80 135 80
LI 135 80 135 70
LI 135 70 145 70
LI 10 15 10 115
LI 10 20 15 20
LI 35 20 35 115
LI 60 15 60 115
LI 65 20 60 20
LI 85 20 85 30
LI 85 30 85 115
LI 105 45 35 45
LI 105 55 60 55
SA 35 45
SA 60 55
LI 105 75 10 75
LI 105 85 60 85
SA 10 75
SA 60 85
SA 10 20
SA 60 20
TY 175 60 5 3 0 0 0 * C
Se c'è ancora qualcosa di non chiaro chiedi.
Marco / iw2nzm

 C = (A_*B) + (A*B)
dunque l'AND 1 è a posto ho provato e funziona e da come output  0 o 1 a
seconda. qui sono a posto.
l'AND 2 da come output o 0 o 1 a seconda dell'input-
abbiamo visto che anoi serve solo il caso di input A=1 e B=1. quindi per
bypassare il problema devo mettere un circuito che nella parte dove prima
avevo un AND (l'AND 2) mi dia come output fisso l'1 (un NAND con uno XNOR
cortocircuitato)- in questo modo ho sempre C=1 e a prescindere da quello che
avrò nella parte superiore (AND n.1) avrò per l'OR finale:
A=0 B=1    C=1
A=1 B=1    C=1
quindi direi che ci siamo.
volevo solo sapere se la procedura è corretta...
ma quello che hai scritto sotto che è??
Ti ringrazio comunque perchè mi hai fatto prendere la strada giusta (credo)!
Stefano
l'OR a questo punto risp

 ma quello che hai scritto sotto che è??
ah... mi pareva che non l'avessi letto... scaricati FidoCAD:
http://www.enetsystems.com/~lorenzo/fidocad_win.asp
fai copia incolla di quanto scritto sotto e ti si aprirà un mondo... 
forse riuscirai anche a sciogliere i tuoi dubbi sull'esercizio ;)
Marco / iw2nzm

ciao
bellissimo programmino!! Lo propagherò anche al lavoro!!! ;-))
ho controllato ma non mi trovo lo stesso...
comunque sia il 2° AND può dare risultati differenti da 1 e pertanto non
rispetta la tabella di verità.
Così l'OR può avere:
A=1 B=0 e io devo ottenere C=0 e invece ho C=1... è qui che mi sbaglio
credo...
Stefano

 Stefano
Ricontrolliamo:
C = A_B + AB
A B C
0 0 0
0 1 1
1 0 0
1 1 1
1a riga:
Uscita 1a AND -> 0
Uscita 2a AND -> 0
Uscita OR     -> 0  OK
2a riga:
Uscita 1a AND -> 1
Uscita 2a AND -> 0
Uscita OR     -> 1  OK
3a riga:
Uscita 1a AND -> 0
Uscita 2a AND -> 0
Uscita OR     -> 0  OK
4a riga:
Uscita 1a AND -> 0
Uscita 2a AND -> 1
Uscita OR     -> 1  OK
Marco / iw2nzm


sono io che non riesco a leggere lo schema allora. scusami ma ho i limiti
del ragioniere! :-((
perň ci sto lavorando sopra...!!
Excelsior
Stefano

ho capito!!! scusami ma io applicavo gli input separatamente ad ogni AND e
non ad ogni A in tutti gli AND!!!
Ecco dov'era l'errore concettuale! E dire che avevo già risolto stamattina
il tutto!! GRAZIE! Stai certo che ora che ho afferrato farò gli esercizi
semza problemi.
Poi il trasformare tutto in porte NAND e NOR e XNOR come chiede il
professore è un dettaglio, basta negare le porte alla fine con un NAND
cortocircuitato...
Ti ringrazio veramente per la pazienza!!!
Excelsior
Stefano
PS: ovviamente il circuito era perfetto, solo non capisco il NOT che hai
messo all'input B...a che serve?

 messo all'input B...a che serve?
A... niente! E' lì solo per formalità, come esempio di come conviene 
disporre gli ingressi per non perdersi con le negazioni... Se alla fine 
scopri che non ti serve lo puoi tranquillamente togliere!
Io preferisco questo modo anzichè aggiungere i pallini di negazione 
davanti all'ingresso di ogni porta.
Ciao,
Marco / iw2nzm