Discussioni di carattere generale sull'elettronica analogica e digitale. Didattica e applicazioni pratiche.
#5328
Salve a tutti :) e grazie mille per l'aiuto che mi state dando
Scusate il ritardo nel rispondervi ma sono stato a pensare alle vostre risposte.
Ciao zioelp ho provato a dare in ingresso al circuito che mi hai postato le varie combinazioni di stringhe con e senza distanza di hamming uguale a 2 e ottengo in uscita quello che dovrei ottenere :)
Però devo essere sincero... non ho capito bene ciò che mi hai scritto nel tuo ultimo post :(
poi ho provato a seguire i passi indicati dall'amico double ed ottengo un circuito che soddisfa la richiesta dell'esercizio.
Dunque in definitiva il ragionamento da fare per risolvere l'esercizio dovrebbe essere il seguente:
confronto con XOR i bit di ugual peso tra le due parole poi confronto la parità (disparità) dei bit in uscita, giusto? Bho anche mentre sto scrivendo non riesco a capire ciò che sto scrivendo...
Double dice di usare la mappa di karnaugh al passo 2) però se l'esercizio mi avesse dato due parole a 10 bit, ad esempio? per i bit in uscita dalle XOR come avrei fatto ad usare le mappe??
Mi sto esaurendo raga :)
Non vorrei dire eresie ma mi sembra più fattibile l'esame di analogica...
#5331
ElettroNewbie ha scritto:Salve a tutti :) ... non ho capito bene ciò che mi hai scritto nel tuo ultimo post :(

Il problema che hai posto prevedeva il riconoscimento del caso in cui la distanza di Hamming tra due stringhe di bit fosse uguale a 2. Il ragionamento per arrivare alla soluzione può essere svolto in due passi: il primo passo confronta bit a bit le due stringhe e individua le posizioni in cui compare la differenza; il secondo passo conta le suddette posizioni e riconosce il caso particolare della quantità 2 richiesta.
Il primo passo può essere affrontato a prescindere dalla lunghezza delle stringhe di bit, poiché hai a disposizione un'unità logica chiamata XOR che ti permette di accettare un bit da ciascuna stringa e fornire direttamente in uscita un bit col significato di uguaglianza o diversità.
Nel caso attuale di soli tre bit, ti bastano tre unità XOR. Se le stringhe fossero state lunghe dieci bit, avresti usato dieci unità XOR.
Il secondo passo è più "rognoso", poiché non può avvalersi di un semplice gruppo di unità logiche identiche, e diventa via via più complicato al crescere della lunghezza delle stringhe di bit.
Lo schema che ho disegnato di getto non fa altro che riconoscere se la quantità di differenze è pari o dispari, e poi, sapendo che le quantità possibili son solo quattro, e cioè zero differenze; una differenza; due differenze; tre differenze; non fa altro che escludere il caso "zero differenze" lasciando passare in uscita la risposta esatta 2.
Il riconoscitore di parità è comunque un circuito espandibile a piacere, semplicemente ponendo in cascata più unità XOR che alla fine diranno sempre "pari" oppure "dispari".
L'esclusione del caso "zero differenze" è anch'essa espandibile, poiché basta aumentare il numero d'ingressi della OR.
Purtroppo, nel confronto di stringhe più lunghe di tre bit, avresti tra i piedi altre quantità pari oltre la 0 che puoi scartare con la OR, e quindi dovresti approntare un circuito più complesso.
Pensaci su :-)
#5336
Salve :)
Ciao zioelp e grazie nuovamente per l'aiuto davvero...sei un grande!!!
Si finalmente ho capitoil funzionamento del circuito :oops:
In pratica in uscita dalle tre XOR ho le combinazioni di bit seguenti:
- ooo che corrisponde ad avere il caso di due parole in ingresso uguali;
- 100 che corrisponde ad avere il caso di due parole in ingresso con distanza di hamming uno;
- 110 che corrisponde ad avere il caso di due parole in ingresso con distanza di hamming due;
- 111 che corrisponde ad avere il caso di due parole in ingresso con distanza tre (cioè le due parole sono completamente diverse tra loro);
Allora la NOR serve per 'filtrare' i casi 110 ed 111 mentre la OR,insieme alla AND finale, serve per 'filtrare' i casi 000 ed 110 essendo poi quest'ultimovquello di interesse.
Il problema ora è che da solo non ci sarei mai arrivato.....Ma tipo non esistono tecniche per cosi dire (come mappe di K ma più veloci) metodiche che mi aiutino in questi esercizi oltre naturalmente al ragionamento??lo so ho fatto una domanda stupida... :roll:
Provo adesso a estendere il circuito per parole in ingresso aventi più di 3 bit.
Grazie ancora per l'aiuto ragazzi.
#5338
ElettroNewbie ha scritto: [CUT] se l'esercizio mi avesse dato due parole a 10 bit, ad esempio? per i bit in uscita dalle XOR come avrei fatto ad usare le mappe?? [CUT]

Non e' un caso che l'esercizio prevedesse parole di soli 3 bit: l'esercizio serviva a farvi ragionare sul significato della distanza di hamming ed a farvi trovare un metodo di approccio.

Nel caso di parole di 10 bit sicuramente non bastano le reti combinatorie (si può anche fare ma non è efficiente) occorre passare alle reti sequenziali. Se il vincolo è usare componenti elementari (quindi niente microcontrollori e simili) a sentimento col bicchiere di vino in mano io userei un registro a scorrimento (una rete di 10 Flip Flop in cascata) in cui caricare in parallelo l'uscita dei 10 xor e la cui uscita seriale entra in un contatore per 10 ( nel caso generale con parole di 10 bit la distanza di hamming può variare da 0 a 10!) quindi servono altri 4 flip flop per contare quanti 1 c'erano nel registro. Terminato lo shift dei 10 bit si legge il contatore e si verifica se il conteggio è arrivato esattamente a 2 (o alla distanza di hamming voluta) , stavolta serve una piccola rete combinatoria a 4 ingressi. Sicuramente ci sono metodi molto più efficienti, se poi capita che il numero di differenze/errori da trovare (->distanza di hammig) sia dispari, ci sono dei trucchetti da sfruttare (li ho studiati troppi anni fa, non me li ricordo più!)

Tieni duro, impegnati e soprattutto ragiona in modo razionale cercando di scomporre ogni problema in parti più semplici.
A questo che serve l'università, ad insegnarvi a ragionare in termini generali partendo dai mattoni. Il fatto che oggi in un chip ci siano decine di migliaia di porte logiche e di flipflop non sposta di una virgola l'approccio mentale.
#5348
Anch'io certe cose le ho studiate secoli fa e fatico a ricordare proprio tutto, però, ragionandoci un po' sopra, qualche spiraglio si è mentalmente aperto ed ho partorito questo schema che fa esattamente quello che cerchi, inoltre a differenza di quello proposto da ziohelp, che resta ad ogni modo valido, in termini pratici si risparmierebbe un Integrato utilizzando quasi completamente gli stadi contenuti...

3bitWord-2bitHammingDistance(GioRock).png
Aggiungi descrizione


Le differenze sostanziali sono:

@zioelp

Codice: Seleziona tutto2 x 4 XOR 2-Input = 2 IC
1 x 2  OR 3-Input = 1 IC
1 x 4 NOT 1-Input = 1 IC
1 x 4 AND 2-Input = 1 IC
________________________
                    5 IC


@GioRock

Codice: Seleziona tutto1 x 4  XOR 2-Input = 1 IC
1 x 2 NAND 3-Input = 1 IC
1 x 4 NAND 2-Input = 1 IC
1 x 4  AND 2-Input = 1 IC
________________________
                     4 IC


Ovvio che è solo una delle possibile idee alternative, quindi devi valutare quello che più risponde alle tue necessità...

P.S. Volevo usare Karnaugh ma non mi ha completamente soddisfatto, così ho seguito questo metodo dopo aver compilato la tabella della verità...
#5352
Salve a tutti :) e grazie ancora per le risposte e l'attenzione che mi date!!!
Ciao double innanzitutto grazie per l'incoraggiamento ed il preziso consiglio ;) in effetti sono riuscito ad estendere il circuito postato dall'amico zioelp semplicemente aumentando le XOR ed la parte di circuito relativa al 'parity detector' .
Però come dici tu double se l'esercizio mi chiedesse di verificare se le due parole (ad esempio a 10 bit) abbiano distanza 4, come dovrei fare?O addirittura chiedesse di progettare una rete logicca che ricevendo in ingresso due parole (ad esempio a 10bit) dia uscita attiva alta uqnado la distanza di hamming è compresa tra 3 ed 7?Penso che in questi casi si debba ricorrere ad elementi sequenziali come dici tu...Bho :|
Va be comunque non credo che il prof possa proporre esercizi cosi difficili (almeno sin'ora non l'ha mai fatto) :roll:
Ciao GioRock mmhh ci sto ancora pensando sul perchè della tua soluzione :oops:
#5355
ElettroNewbie ha scritto:Va be comunque non credo che il prof possa proporre esercizi cosi difficili (almeno sin'ora non l'ha mai fatto) :roll:

Non dovresti pensare al prof come ad un "distributore di esercizi" più o meno difficili da risolvere.
Il prof dovrebbe rispondere alle domande che non trovi già elencate e descritte nei libri.
Se risolvi un esercizio applicando alla lettera le nozioni studiate un attimo o due pagine prima, acquisisci una conoscenza specifica legata al contesto (il come) senza legarla per bene a ciò che già sai (il perché), e rischi di ritrovarti, come tu stesso hai affermato in messaggi pecedenti, a "non arrivarci da solo".
Purtoppo, e questo è il "difetto" più grave che, a mio parere, la scuola ha e ha sempre avuto, il prof NON ha modo di sapere che cosa passi per la testa degli studenti, e quindi, anche volendo, NON può rispondere alle domande che non gli vengon poste.
Le domande, di solito, non vengono poste per pigrizia, per mancanza di tempo, per evitare brutte figure, per non rischiare di rimettere in discussione eventuali traguardi già raggiunti.
In assenza di domande dirette, l'unico modo che il prof ha per farsi un'idea del grado di "saturazione nozionistica" raggiunto dagli studenti è, manco a dirlo, proporre esercizi.
Gli esercizi precostituiti non sono altro che puzzle da comporre, cioè mettere insieme sapendo già che tutti i pezzi necessari ci sono.
La spinta al ragionamento, secondo me, dovrebbe nascere cercando di comporre un puzzle senza avere la certezza che tutti i pezzi necessari ci siano, ma dato che un puzzle del genere scatenerebbe le ire degli studenti ed esporrebbe il prof a critiche e/o boicottaggi, la scuola ne fa volentieri a meno :-)
#5359
Mi avete fatto venir voglia di rispolverare le mappe di Karnaugh!
Immagine
Poichè la coppia 11 (distanza hammingh=2) puo' presentarsi in qualunque coppia di ingressi, il circuito iniziale deve necessariamente essere simmetrico rispetto ai punti intermedi A,B,C. Poi ci si può sbizzarrire a modificarlo con il teorema di de morgan trasformando and in nor e or in nand se serve utilizzare integrati commerciali.
GioRock, Bios ringraziano
#5361
Non l'ho ancora verificato ma vado a fiducia, la mappa è ad ogni modo corretta, quindi lo dovrebbe essere anche lo schema suppongo!!! :lol:

Sono comuni interruttori a levetta DPDT. Se le due[…]

Visita il nostro canale telegram