kappa47 Inserito: 24 novembre 2011 Segnala Inserito: 24 novembre 2011 Devo contare il numero di bit allo stato 1 di un word.Il problema e' che devo farlo utilizzando solo logica combinatoria (AND, OR, XOR, NOT).Ho provato a farlo, ma vengono utilizzati una marea di componenti...Bisognerebbe trovare un algoritmo per ottimizzare il tutto.Ogni proposta e' ben accetta.Ciao a tutti.
Livio Orsini Inserita: 24 novembre 2011 Segnala Inserita: 24 novembre 2011 Non ci sono soluzioni miracolose. Con 2 And si fa un Flip-flop RS; un FF conta per 2, mettendo in cascata alcuni FF si conta per 2, 4, 8, 16, ...e via enumerando.Tutti i contatori son fatti in codesto modo: hanno un gate come cella base. Il fatto che centinaia o migliaia di componenti siano integrati sul silicio compatta il tutto, però quando tu usi una decade di conteggio stai usando un circuito simile a quello che ti ho descritto.Non è questine di algoritmi e questione di integrazione.
Mirko Ceronti Inserita: 24 novembre 2011 Segnala Inserita: 24 novembre 2011 Dunque kappa47....rispiegamelo come se io avessi 6 anni.... Una Word (se non ricordo male) è composta da 16 bit, quindi Tu vorresti contare quanti di questi sono a livello logico "1", rispetto a quelli che sono a "0" ?Esempio 1100010010001101 = 7 bit ad "1" ??? ed il contatore Ti deve indicare 7 ??Scusa sai ma io sono un po'...duro !SalutiMirko
kappa47 Inserita: 24 novembre 2011 Autore Segnala Inserita: 24 novembre 2011 Per Livio:e' sicuramente un errore di battitura: un FF tipo RS lo fai con due NAND.questo FF ha il difetto che se un ingresso rimane fisso a 0, non commuta piu'.Per Mirko:hai capito perfettamente; il tuo esempio e' corretto.Il problema e' che devo contare in una manciata di nasosecondi.
Mirko Ceronti Inserita: 24 novembre 2011 Segnala Inserita: 24 novembre 2011 (modificato) Allora, i nanosecondi...durano poco, ma intanto proverei ad imbastire il discorso con un CD 4067 (oppure col TTL 74154) configurati come multiplexer, e proverei ragionando da lì.Oppure sei obbligato per forza ad usare And ed Or ???SalutiMirko Modificato: 24 novembre 2011 da Mirko Ceronti
Livio Orsini Inserita: 24 novembre 2011 Segnala Inserita: 24 novembre 2011 Si è rimasta la "N" nella tastiera. In quanto al blocco si può fare in modo che non capiti, è una prassi abbastanza usuale. La base dei contatori è sempre la cellula di Eccles-Jordan, ovvero il FF tipo RS. Poi la possibilità di integrare milioni di giunzioni ti permette di fare celle un poco più sofisticate.Se il tuo problema è la velocità di conteggio tieni presente che oggi ci sono logiche integrate che sono in grado di contare frequenze di alcuni Ghz, con tempi di ritardo di alcuni ps (1"^-12).
kappa47 Inserita: 24 novembre 2011 Autore Segnala Inserita: 24 novembre 2011 Purtroppo mi e' permesso usare solo componenti commodity.Ciao.
ludo69 Inserita: 25 novembre 2011 Segnala Inserita: 25 novembre 2011 (modificato) è evidentemente un compito di pura teoria astratta, io una volta risolsi dicendo al mio prof di elettronica: "i bit di entrata li mette in ADDRESS ad una EPROM le cui uscite sono il risultato (NDR: logica combinatoria), per la mappatura della EPROM si ricade nella materia del prof. di "sistemi e laboratorio", ma è parte del programma che non abbiamo ancora fatto...".Si inc...zò un pò, si fece una risata e mi fissò un'altra interrogazione....comunque in genere gli esercizi vengono dati basandosi su quello che è stato spiegato: servono a fissare i concetti trattati, e chiedere una soluzione può servire ad avere un miglior voto, ma non imparerai mai quello che così ti è sfuggito e non acquisirai la "forma mentale" del progettista, che non sarebbe male avere!Se NON fosse un problema teorico, ma reale e pratico:il vero problema è che devi estrarre un'INFORMAZIONE DESCRITTIVA, ovvero un CONCETTO astratto da una parola che ha una marea di possibili configurazioni dove OGNIUNA può cambiare il risultato, ovvero non potrai semplificare facilmente la funzione logica.La cosa più concettualmente semplice da fare sarebbe forse addizzionare in un accumulatore ogni singolo bit, ovvero con degli ADDER sommare tra loro (con riporto) un bit con il successivo (risultato: i bit + carry) che poi andrebbe sommato con il successivo, così via dicendo fino ad arrivare ad una parola da 4 bit contenente il risultato: peccato che questa è una struttura dove si sommano anche i tempi di ritardo dei CARRY.Con la tecnica degli ADDER potresti provare a parallelizzare un poco i carry con una struttura ad albero Modificato: 25 novembre 2011 da ludo69
Nikiki Inserita: 30 novembre 2011 Segnala Inserita: 30 novembre 2011 Ma si tratta veramente di un compito o è un progetto da realizzare?Nel secondo caso, a cosa serve e in che modo dovrebbe essere rappresentato il risultato?Ad esempio se servisse per ricavare una parità piuttosto che "contare" i bit, la logica potrebbe ricavare direttamente il bit di parità desiderato. Oltretutto in questo modo il dato verrebbe fornito alla logica in modo parallelo e il tutto si svolgerebbe in un tempo brevissimo, altrimenti se conteggio deve essere, i bit devono essere forniti in modo seriale, a meno che non si intenda utilizzare una EPROM come suggerito da ludo69.
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora