adele.vegan Inserito: 18 gennaio 2016 Segnala Inserito: 18 gennaio 2016 Ciao a tutti, spero sia il posto giusto dove chiedere aiuto, ho appena trovato questo forum su google e non sono pratica di qui. Per un esercizio universitario devo realizzare una funzione utilizzando porte logiche, lookuptable e multiplexer... ma sono bloccata. Ho una sequenza di ingresso di 9 parole composte da 6 bit, formate da un identificativo che occupa 2 bit (Z=00,U=01,D=10,T=11) e un valore numerico da 0 a 15. Ad esempio: T0 D5 U9 D3 Z6 T5 T9 Z2 U7 In uscita devo avere 4 valori, corrispondenti al valore numerico massimo aggregato per identificativo. Nello specifico esempio avrò, aggregando per identificativo: Z: max(6,2)=6 U: max(9,7)=9 D: max(5,3)=5 T: max(0,5,9)=9 Devo disegnare lo schema del circuito: sto provando in mille modi diversi, so che deve esserci una soluzione semplice ma sono andata in tilt e non riesco a trovarla. Qualcuno mi potrebbe dare una mano per favore? Grazie!
Livio Orsini Inserita: 18 gennaio 2016 Segnala Inserita: 18 gennaio 2016 Magari prova a pubblicare il testo integrale dell'esercizio. Da quello che scrivi non si capisce molto.
Ctec Inserita: 19 gennaio 2016 Segnala Inserita: 19 gennaio 2016 (modificato) Penso che ti serva un decoder 2-4 (da 2 bit a 4 linee) per avere su ciascun filo l'identificativo.A questo punto, aprirai una porta per ogni identificativo, che faccia passare i 4 bit del valore. Ora userai un comparatore a 4 bit che ti dice se il valore attuale è maggiore del precedente (il valore iniziale dovrà essere 0, per cui prevedi una procedura/linea di Reset), e se lo è, lo memorizzi.Alla fine del processo (che dovrà avere un qualche segnale di strobe che ti dice che il numero in ingresso è disponibile), ti ritroverai automaticamente i valori massimo per ogni identificativo, fino all'azionamento del Reset.Come integrati di base, per il decoder 2-4 puoi usare un 74xx139, come comparatore a 4 bit un 74xx85, come latch (memoria) un 74xx75 o 74xx77.Ah, bei tempi quando si facevano 'sti bei circuitini cablati... Poi GAL/PAL, micro e FPGA... Modificato: 19 gennaio 2016 da Ctec
adele.vegan Inserita: 23 gennaio 2016 Autore Segnala Inserita: 23 gennaio 2016 @Ctec, credo di aver capito grazie. Almeno in teoria. Nella pratica faccio fatica a immaginarmi lo schema, considerando anche che il resto della rete non è pensata per essere sincrona. @Livio, l'esercizio non riesco a postarlo per intero, fa parte di un ragionamento molto più ampio. Provo comunque a spiegarmi diversamente, ho preparato degli schemi per farmi capire meglio. Il mio circuito ha 9 ingressi e 4 uscite. Sia gli ingressi che le uscite sono parole di 5 bit (non 6 come prima, ho ridotto il numero di informazioni). Facendo un esempio: Avrò i simboli A,B,C,D rappresentanti con 2 bit ciascuno (A=00,B=01,C=10,D=11) ed i valori rappresentati con 3 bit (numeri da 1 a 7); quindi ad esempio C5=10|101 e B4=01|100 (il pipe | serve solo per far capire dove finisce il simbolo e inizia il valore). I 4 valori in uscita sono dati dalla coppia, una per simbolo, del simbolo stesso e del valore massimo tra quelli associati al medesimo. Quindi ad esempio l'uscita legata al simbolo A sarà determinata dal valore massimo tra A7 e A1, quella legata a B determinata dal massimo tra B4 e B0.
Ctec Inserita: 23 gennaio 2016 Segnala Inserita: 23 gennaio 2016 Dunque, cosa intendi che non sono sincroni? Che non saranno tutti contemporanei gli In? Questo lo immagino. Ma in tal caso dovrai avere un segnale che ti dice che il dato è stabile e valido, quello che nel mio post ho chiamato Strobe. Se ti arrivano serializzati, essendo a lunghezza fissa, potrai deserializzarli, ma senza un clock è un po' complicato. Comunque, alla fine di ogni "informazione" te lo saprai e potrai creare un segnale. Purtroppo devi necessariamente memorizzarti il valore precedente di ogni informazione, altrimenti come calcoli il massimo e dove lo metti? O almeno, diciamo che non mi viene in mente nulla di immediato. Forse qualcosa in VHDL per FPGA, ma ho perso la mano in tali sistemi...
adele.vegan Inserita: 23 gennaio 2016 Autore Segnala Inserita: 23 gennaio 2016 sì, il contesto è proprio FPGA e VHDL. effettivamente, non ci pensavo, potrei costruire un blocco in vhdl con all'interno un semplice ciclo for...loop. in questo caso potrebbe essere molto molto semplice. credo almeno... ci provo. grazie intanto
Ctec Inserita: 23 gennaio 2016 Segnala Inserita: 23 gennaio 2016 Bisognerà che mi ripassi il VHDL, sono quasi 10 anni che non ci faccio nulla. Qualcuno ha un testo aggiornato in pdf?
adele.vegan Inserita: 24 gennaio 2016 Autore Segnala Inserita: 24 gennaio 2016 Certo! Qui trovi il "VHDL Cookbook" di Peter J. Ashenden diviso in capitoli http://esd.cs.ucr.edu/vhdlcook/ e qui in un unico pdf http://www.ics.uci.edu/~alexv/154/VHDL-Cookbook.pdf E' la prima edizione del 1990 ma funziona ancora ed è già un bel mattone. E qui http://wl.altera.com/education/training/courses/OHDL1110 trovi un videocorso di 92' sull'argomento.
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