- Messaggi: 23
- Ringraziamenti ricevuti 0
[LA] Linux avanzato 2008
- COM_EASYSOCIAL_GUEST_NAME
-
- Visitatori
-
17 Anni 8 Mesi fa #66741
da COM_EASYSOCIAL_GUEST_NAME
Fai l'automa e lo sintetizzi....come facevamo a reti logiche..
Risposta da COM_EASYSOCIAL_GUEST_NAME al topic [LA] Linux avanzato 2008
ciao! potrei chiederti come hai fatto questo esercizio?LA06/07 SCRITTO 31/3/2007
1 - Disegnare il circuito di un contatore modulo 8 basato su flip flop RS.
Il modo + semplice, con FF di tipo T, è di metterne 8 in serie, far entrare su tutti T=1 ed usare il clock esterno solo per il primo FF, mentre gli altri ricevono come clock l'uscita negata(Q') del precedente. Dovendo usare flip flop RS, ed essendo ogni ff riconducibile ad una rete combinatoria in cui è presente quest'ultimo tipo di FF, si sarebbe potuto partire dalla configurazione che ho scritto sopra per il FF T e sostituire a ciascuno di questi la sua realizzazione mediante FF RS (che prevede in pratica l'aggiunta di 2 porte AND per ogni FF)?
grazie per l'aiuto ciao!
Fai l'automa e lo sintetizzi....come facevamo a reti logiche..
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Massimiliano Bontempi
-
- Offline
- Junior Member
-
Riduci
Di più
17 Anni 8 Mesi fa #66980
da Massimiliano Bontempi
Risposta da Massimiliano Bontempi al topic [LA] Linux avanzato 2008
Di seguito il listato per una semplice funzione stampa la cui printf prende la stringa di formattazione da una variabile globale.
Normalmente una stringa si caricherebbe con $.LC2 (e modificando il listato funziona).
Qualcuno sa cosa succede quando viene eseguito "movl Sstring, %edx"?
In Edx che cosa ci finisce? un puntatore ?!?!?
[/code]
Normalmente una stringa si caricherebbe con $.LC2 (e modificando il listato funziona).
Qualcuno sa cosa succede quando viene eseguito "movl Sstring, %edx"?
In Edx che cosa ci finisce? un puntatore ?!?!?
.globl Sstring
.section .rodata
.align 4
.LC2:
.string "i = %03d , addr = %p ,\t valore = %d,\t valore = %p\n"
.data
.align 4
.type Sstring, @object
.size Sstring, 4
Sstring:
.long .LC2
.text
.globl stampa
.type stampa, @function
stampa:
pushl %ebp
movl %esp, %ebp
subl $24, %esp
movl Sstring, %edx
movl 8(%ebp), %eax
movl %eax, 12(%esp)
movl $9, 8(%esp)
movl $7, 4(%esp)
movl %edx, (%esp)
call printf
leave
ret
.size stampa, .-stampaSi prega Accedi o Crea un account a partecipare alla conversazione.
- COM_EASYSOCIAL_GUEST_NAME
-
- Visitatori
-
17 Anni 8 Mesi fa #67001
da COM_EASYSOCIAL_GUEST_NAME
Risposta da COM_EASYSOCIAL_GUEST_NAME al topic [LA] Linux avanzato 2008
si per l'esercizio di reti logiche bisogna fare tutto il lavoretto di sintesi per benino, E' l'UNICO metodo che davvero è consigliato, perchè tutto sommato è anche un po meccanico e si applica sempre. Non si dovrebbe disegnare a mano di getto a intuito.
per contare modulo 8 servivano 3 flip-flop rs.
io l'ho fatto in una maniera che non consiglio a nessuno, nel senso che l'ho inventato di sana pianta senza fare alcun lavoro; ho usato dei Multiplexer e dei Demultiplexer che lui NON VUOLE; mi mise C, alzato poi a B per quella domanda perchè comunque mi dovette riconoscere che sembrava funzionare.
Insomma fatevi un po di esercizi fatti bene
per contare modulo 8 servivano 3 flip-flop rs.
io l'ho fatto in una maniera che non consiglio a nessuno, nel senso che l'ho inventato di sana pianta senza fare alcun lavoro; ho usato dei Multiplexer e dei Demultiplexer che lui NON VUOLE; mi mise C, alzato poi a B per quella domanda perchè comunque mi dovette riconoscere che sembrava funzionare.
Insomma fatevi un po di esercizi fatti bene
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Massimiliano Bontempi
-
- Offline
- Junior Member
-
Riduci
Di più
- Messaggi: 23
- Ringraziamenti ricevuti 0
17 Anni 8 Mesi fa #67012
da Massimiliano Bontempi
Risposta da Massimiliano Bontempi al topic [LA] Linux avanzato 2008
Ho seguito il consiglio della sintesi... fatto un mezzo pastrocchio, mi sono arreso ed ho trovato questa traccia
ospitiweb.indire.it/puglia/pug03 ... mod8ud.htm
un po' complicata ma con qualche aggiustamento si riporta all'uso dei 3 FF-RS
Poi però sono stato illuminato: il problema potrebbe essere visto in modo ricorsivo siccome ogni flip flop deve scattare 0-1 in base a quello che fa il precedente (il primo è autonomo)....
Se immaginiamo di contare i clic di un pulsante, il primo FF deve contate cambiare stato ad ogni clic, il secondo ogni volta che il primo ridiventa 0, il terzo ogni volta che il secondo ridiventa 0.
Ve la faccio corta....
FF 1) S1 = clic AND !Q1 , R1 = clic AND Q1
quando clic è basso i due and disabilitano tutto, quando clic è alto
o è set o un reset
FF 2) S2 = !Q1 AND !Q2 , R2 = !Q1 AND Q2
idem come sopra Q1 sostiuisce il clic ma negato perché deve
diventare alto quando FF1 è basso
FF 3 e tutti gli altri che si vogliono mettere sono delle copie esatte
L'uscita è Q3+Q2+Q1
L'unico problema è che, ad inizio sequenza, il valore non è 000 ma 010.
Ci vuole qualcosa per dire "il FF prima di me è diventato 1 almeno una volta". Io lo fare con un FF di supporto con R scollegato e S = Q1 per cui
FF i) Si = !Q(i-1) AND !Q(i) AND Qsupp(i),
Ri = !Q(i-1) AND Q(i) AND Qsupp(i)
Non l'ho testato, l'ho appena abbozzato su carta... che ne dite???
ospitiweb.indire.it/puglia/pug03 ... mod8ud.htm
un po' complicata ma con qualche aggiustamento si riporta all'uso dei 3 FF-RS
Poi però sono stato illuminato: il problema potrebbe essere visto in modo ricorsivo siccome ogni flip flop deve scattare 0-1 in base a quello che fa il precedente (il primo è autonomo)....
Se immaginiamo di contare i clic di un pulsante, il primo FF deve contate cambiare stato ad ogni clic, il secondo ogni volta che il primo ridiventa 0, il terzo ogni volta che il secondo ridiventa 0.
Ve la faccio corta....
FF 1) S1 = clic AND !Q1 , R1 = clic AND Q1
quando clic è basso i due and disabilitano tutto, quando clic è alto
o è set o un reset
FF 2) S2 = !Q1 AND !Q2 , R2 = !Q1 AND Q2
idem come sopra Q1 sostiuisce il clic ma negato perché deve
diventare alto quando FF1 è basso
FF 3 e tutti gli altri che si vogliono mettere sono delle copie esatte
L'uscita è Q3+Q2+Q1
L'unico problema è che, ad inizio sequenza, il valore non è 000 ma 010.
Ci vuole qualcosa per dire "il FF prima di me è diventato 1 almeno una volta". Io lo fare con un FF di supporto con R scollegato e S = Q1 per cui
FF i) Si = !Q(i-1) AND !Q(i) AND Qsupp(i),
Ri = !Q(i-1) AND Q(i) AND Qsupp(i)
Non l'ho testato, l'ho appena abbozzato su carta... che ne dite???
Si prega Accedi o Crea un account a partecipare alla conversazione.
- COM_EASYSOCIAL_GUEST_NAME
-
- Visitatori
-
17 Anni 8 Mesi fa #67017
da COM_EASYSOCIAL_GUEST_NAME
Risposta da COM_EASYSOCIAL_GUEST_NAME al topic [LA] Linux avanzato 2008
ciao! io dopo la sparata iniziale di sostituire i FF T con gli SR lo feci seguendo queste slides (del politecnico di milano, altro che angelaccio!
)
corsi.dei.polimi.it/RetiLogicheA ... tatori.pdf
e mi venne che
Ri=Q0*Q1*..*Qi-1
Si=(Qi XOR Qi-1)*Qi-2*...*Q0
lo avevo fatto un po' di fretta in caso ci riprovo dopo aver finito di ristudiare sistemi operativi!
PS: Il tuo esercizio assembler non l'ho mica capito... tra parentesi leggendo la dispensa non ho capito nemmeno il significato di quasi tutte le etichette tipo .section .rodata . text ecc
ciao e buona (quasi) pasqua!
corsi.dei.polimi.it/RetiLogicheA ... tatori.pdf
e mi venne che
Ri=Q0*Q1*..*Qi-1
Si=(Qi XOR Qi-1)*Qi-2*...*Q0
lo avevo fatto un po' di fretta in caso ci riprovo dopo aver finito di ristudiare sistemi operativi!
PS: Il tuo esercizio assembler non l'ho mica capito... tra parentesi leggendo la dispensa non ho capito nemmeno il significato di quasi tutte le etichette tipo .section .rodata . text ecc
ciao e buona (quasi) pasqua!
Ho seguito il consiglio della sintesi... fatto un mezzo pastrocchio, mi sono arreso ed ho trovato questa traccia
ospitiweb.indire.it/puglia/pug03 ... mod8ud.htm
un po' complicata ma con qualche aggiustamento si riporta all'uso dei 3 FF-RS
Poi però sono stato illuminato: il problema potrebbe essere visto in modo ricorsivo siccome ogni flip flop deve scattare 0-1 in base a quello che fa il precedente (il primo è autonomo)....
Se immaginiamo di contare i clic di un pulsante, il primo FF deve contate cambiare stato ad ogni clic, il secondo ogni volta che il primo ridiventa 0, il terzo ogni volta che il secondo ridiventa 0.
Ve la faccio corta....
FF 1) S1 = clic AND !Q1 , R1 = clic AND Q1
quando clic è basso i due and disabilitano tutto, quando clic è alto
o è set o un reset
FF 2) S2 = !Q1 AND !Q2 , R2 = !Q1 AND Q2
idem come sopra Q1 sostiuisce il clic ma negato perché deve
diventare alto quando FF1 è basso
FF 3 e tutti gli altri che si vogliono mettere sono delle copie esatte
L'uscita è Q3+Q2+Q1
L'unico problema è che, ad inizio sequenza, il valore non è 000 ma 010.
Ci vuole qualcosa per dire "il FF prima di me è diventato 1 almeno una volta". Io lo fare con un FF di supporto con R scollegato e S = Q1 per cui
FF i) Si = !Q(i-1) AND !Q(i) AND Qsupp(i),
Ri = !Q(i-1) AND Q(i) AND Qsupp(i)
Non l'ho testato, l'ho appena abbozzato su carta... che ne dite???
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Massimiliano Bontempi
-
- Offline
- Junior Member
-
Riduci
Di più
- Messaggi: 23
- Ringraziamenti ricevuti 0
17 Anni 8 Mesi fa #67018
da Massimiliano Bontempi
Risposta da Massimiliano Bontempi al topic [LA] Linux avanzato 2008
correggo.... forse basterebbe prendere le uscite dirette e negate in modo alternato
ciao ciao
ciao ciao
Si prega Accedi o Crea un account a partecipare alla conversazione.